1 tx
2 calls
constructor
constructor()
functions
ArbDbAddr
viewfunction ArbDbAddr() view returns (address)
BatchGetOrderArbSummary
viewfunction BatchGetOrderArbSummary(uint256[] _order_ids) view returns (tuple[])
CanInitiateArb
viewfunction CanInitiateArb(uint256 _order_id) view returns (bool can_initiate, uint256 error_code)
decodeArbData
purefunction decodeArbData(bytes data) pure returns (tuple)
decodeOrderArbStatus
purefunction decodeOrderArbStatus(bytes data) pure returns (tuple)
GetAllArbIdsForOrder
viewfunction GetAllArbIdsForOrder(uint256 _order_id) view returns (uint256[] arb_ids)
GetAllLogIdsForArb
viewfunction GetAllLogIdsForArb(uint256 _arb_id) view returns (uint256[] log_ids)
GetArbCompleteInfo
viewfunction GetArbCompleteInfo(uint256 _order_id, uint256 _arb_id, bool _include_all_data) view returns (tuple)
GetArbLogDataList
viewfunction GetArbLogDataList(uint256 _order_id, uint256 _arb_id, uint256 _page, uint256 _pageSize, bool _IsDesc) view returns (tuple)
GetOrderArbHistory
viewfunction GetOrderArbHistory(uint256 _order_id, uint256 _page, uint256 _pageSize, bool _IsDesc) view returns (tuple)
GetOrderArbSummary
viewfunction GetOrderArbSummary(uint256 _order_id) view returns (tuple)
GetOrderDetail
viewfunction GetOrderDetail(uint256 _order_id) view returns (tuple order_detail, tuple order_token_info)
GetOrderStatistics
viewfunction GetOrderStatistics(uint256 _order_id) view returns (uint256 total_arbs, uint256 completed_arbs, uint256 active_arbs, uint256 total_logs, uint256 total_fees_paid, address primary_fee_token)
GetSystemConfig
viewfunction GetSystemConfig() view returns (tuple)
GetUserArbtr
viewfunction GetUserArbtr(address _user, uint256 _page, uint256 _pageSize) view returns (uint256[] order_ids, tuple[] arb_infos)
OrderContractAddr
viewfunction OrderContractAddr() view returns (address)
owner
viewfunction owner() view returns (address)
parseArbData
purefunction parseArbData(bytes data) pure returns (tuple)
parseArbLogDataComplete
purefunction parseArbLogDataComplete(bytes data) pure returns (tuple)
SetAddr
nonpayablefunction SetAddr(address _ArbDbAddr, address _OrderContractAddr)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561000f575f80fd5b50600280546001600160a01b03191633179055615e2a80620000305f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c80635f992d57116100a9578063cae4f4d51161006e578063cae4f4d514610417578063d6d025cc14610437578063e39b60ab1461044a578063e5b5bd5c1461045d578063fd46b5a41461047d575f80fd5b80635f992d57146103845780638bce8da3146103a45780638da5cb5b146103c457806399f41dc0146103d75780639d47e5e3146103f7575f80fd5b806346e1928d116100ef57806346e1928d146102c957806348edd5c2146102db578063497ae253146102fc57806349a491a3146103455780634c9083d61461036f575f80fd5b806303e2c41e1461012b578063108ed80a1461023d57806311516fe21461026857806316b062731461028957806342ac4ca8146102a9575b5f80fd5b61013361049d565b6040516102349190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e08083015190820152610200808301519082015261022080830151908201526102408083015190820152610260808301519082015261028080830151908201526102a080830151908201526102c091820151918101919091526102e00190565b60405180910390f35b600154610250906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b61027b6102763660046149f2565b610e83565b604051610234929190614b6b565b61029c610297366004614b9f565b610eb2565b6040516102349190614cda565b6102bc6102b7366004614e04565b61130e565b6040516102349190614f33565b5f54610250906001600160a01b031681565b6102ee6102e9366004614f59565b6113fa565b6040516102349291906152e5565b61030f61030a3660046149f2565b611a54565b60408051968752602087019590955293850192909252606084015260808301526001600160a01b031660a082015260c001610234565b6103586103533660046149f2565b611cc5565b604080519215158352602083019190915201610234565b61038261037d366004615309565b611f3e565b005b610397610392366004614e04565b611fb2565b6040516102349190615340565b6103b76103b23660046149f2565b611fd4565b6040516102349190615379565b600254610250906001600160a01b031681565b6103ea6103e536600461538b565b61212e565b60405161023491906153c9565b61040a610405366004614e04565b6124a7565b60405161023491906153e4565b61042a6104253660046153f6565b6125d2565b604051610234919061542c565b6102bc610445366004614e04565b612722565b6103b76104583660046149f2565b612863565b61047061046b3660046149f2565b6129b4565b6040516102349190615507565b61049061048b366004615519565b612e6e565b6040516102349190615587565b6104a56145aa565b6104ad6145aa565b5f8054906101000a90046001600160a01b03166001600160a01b031663b79dca066040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051f91906155e9565b81525f546040805163431271eb60e01b815290516001600160a01b039092169163431271eb916004808201926020929091908290030181865afa158015610568573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058c91906155e9565b6020808301919091525f54604080516305d23aab60e31b815290516001600160a01b0390921692632e91d558926004808401938290030181865afa1580156105d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105fa91906155e9565b6040808301919091525f5481516355badf8760e11b815291516001600160a01b039091169163ab75bf0e9160048083019260209291908290030181865afa158015610647573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066b91906155e9565b60608201525f5460408051633467687760e11b815290516001600160a01b03909216916368ced0ee916004808201926020929091908290030181865afa1580156106b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106db91906155e9565b60808201525f546040805163ef02b7e560e01b815290516001600160a01b039092169163ef02b7e5916004808201926020929091908290030181865afa158015610727573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074b91906155e9565b60a08201525f5460408051636d02af8560e01b815290516001600160a01b0390921691636d02af85916004808201926020929091908290030181865afa158015610797573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb91906155e9565b60c08201525f54604080516309f04dff60e01b815290516001600160a01b03909216916309f04dff916004808201926020929091908290030181865afa158015610807573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082b91906155e9565b60e08201525f546040805163efd4620760e01b815290516001600160a01b039092169163efd46207916004808201926020929091908290030181865afa158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b91906155e9565b6101008201525f546040805163169fa0df60e11b815290516001600160a01b0390921691632d3f41be916004808201926020929091908290030181865afa1580156108e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090c91906155e9565b6101208201525f54604080516303c7fc4760e11b815290516001600160a01b039092169163078ff88e916004808201926020929091908290030181865afa158015610959573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097d91906155e9565b6101408201525f5460408051630156a1f560e71b815290516001600160a01b039092169163ab50fa80916004808201926020929091908290030181865afa1580156109ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ee91906155e9565b6101608201525f546040805163d048940f60e01b815290516001600160a01b039092169163d048940f916004808201926020929091908290030181865afa158015610a3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5f91906155e9565b6101808201525f5460408051633307efc960e11b815290516001600160a01b039092169163660fdf92916004808201926020929091908290030181865afa158015610aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad091906155e9565b6101a08201525f54604080516330a84f5160e01b815290516001600160a01b03909216916330a84f51916004808201926020929091908290030181865afa158015610b1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4191906155e9565b6101c08201525f546040805163cb9ea33760e01b815290516001600160a01b039092169163cb9ea337916004808201926020929091908290030181865afa158015610b8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb291906155e9565b6101e08201525f5460408051625db74960e11b815290516001600160a01b039092169162bb6e92916004808201926020929091908290030181865afa158015610bfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2191906155e9565b6102008201525f54604080516357eb05f360e01b815290516001600160a01b03909216916357eb05f3916004808201926020929091908290030181865afa158015610c6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9291906155e9565b6102208201525f546040805163f9eb2c7560e01b815290516001600160a01b039092169163f9eb2c75916004808201926020929091908290030181865afa158015610cdf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0391906155e9565b6102408201525f546040805163130ae74560e31b815290516001600160a01b03909216916398573a28916004808201926020929091908290030181865afa158015610d50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7491906155e9565b6102608201525f546040805163049ba6dd60e21b815290516001926001600160a01b03169163126e9b749160048083019260209291908290030181865afa158015610dc1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de591906155e9565b610def9190615614565b6102808201525f54604080516307337c2b60e21b815290516001926001600160a01b031691631ccdf0ac9160048083019260209291908290030181865afa158015610e3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6091906155e9565b610e6a9190615614565b6102a0820152610e78612f7a565b6102c0820152919050565b610e8b614641565b610e936146c7565b610e9c83613046565b9150610eab8260c00151613178565b9050915091565b610ee26040518060a00160405280606081526020015f81526020015f81526020015f81526020015f151581525090565b848615801590610ef0575085155b15610f62575f546040516321f0edd560e01b8152600481018990526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015610f3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5f91906155e9565b90505b805f03610fc657604080515f60a0820181815260c0830190935290918291610fa0565b610f8d6146f2565b815260200190600190039081610f855790505b5081526020015f81526020018681526020018581526020015f1515815250915050611305565b5f8054604051620155f160e71b8152600481018490526001600160a01b039091169062aaf88090602401602060405180830381865afa15801561100b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102f91906155e9565b9050805f0361109657604080515f60a0820181815260c083019093529091829161106f565b61105c6146f2565b8152602001906001900390816110545790505b5081526020015f81526020018781526020018681526020015f151581525092505050611305565b5f6110a18688615627565b90505f80876001600160401b038111156110bd576110bd614d2b565b6040519080825280602002602001820160405280156110f657816020015b6110e36146f2565b8152602001906001900390816110db5790505b5090505f5b888110801561110957508883105b15611229575f88156111535785611120838761563e565b1061112b5750611229565b8185611138600189615614565b6111429190615614565b61114c9190615614565b905061116c565b61115d828661563e565b905085811061116c5750611229565b5f805460405163a910c62360e01b8152600481018a9052602481018490526001600160a01b039091169063a910c62390604401602060405180830381865afa1580156111ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111de91906155e9565b90506111e9816132d0565b8486815181106111fb576111fb615651565b6020026020010181905250848061121190615665565b9550505050808061122190615665565b9150506110fb565b505f826001600160401b0381111561124357611243614d2b565b60405190808252806020026020018201604052801561127c57816020015b6112696146f2565b8152602001906001900390816112615790505b5090505f5b838110156112c85782818151811061129b5761129b615651565b60200260200101518282815181106112b5576112b5615651565b6020908102919091010152600101611281565b506040518060a001604052808281526020018681526020018b81526020018a81526020018685876112f9919061563e565b10905296505050505050505b95945050505050565b611316614743565b6101008251101561135f5760405162461bcd60e51b815260206004820152600e60248201526d11185d18481d1bdbc81cda1bdc9d60921b60448201526064015b60405180910390fd5b611367614743565b60208301805191506020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261012081015161012083015261014081015161014083015250604051806040016040528060018152602001603160f81b81525081610100018190525080915050919050565b6060805f60015f9054906101000a90046001600160a01b03166001600160a01b0316637380904d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561144e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147291906155e9565b90505f816001600160401b0381111561148d5761148d614d2b565b6040519080825280602002602001820160405280156114b6578160200160208202803683370190505b5090505f60015b83811015611755575f805460405163ee6eb83d60e01b8152600481018490526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa15801561150c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153091906155e9565b9050805f0361153f575061174d565b5f805b82811015611717575f80546040516302cf91ab60e41b815260048101879052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015611598573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115bc91906155e9565b5f80546040516251971f60e01b81526004810184905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611605573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261162c91908101906156cf565b6001546040516371dba4dd60e11b8152600481018990529192505f9182916001600160a01b03169063e3b749ba9060240160c060405180830381865afa158015611678573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061169c91906157bc565b50509350935050508f6001600160a01b031683602001516001600160a01b031614806116d957508f6001600160a01b0316826001600160a01b0316145b806116f557508f6001600160a01b0316816001600160a01b0316145b15611707576001955050505050611717565b5050600190920191506115429050565b50801561174a578285858151811061173157611731615651565b60209081029190910101528361174681615665565b9450505b50505b6001016114bd565b505f6117618789615627565b90505f876001600160401b0381111561177c5761177c614d2b565b6040519080825280602002602001820160405280156117a5578160200160208202803683370190505b509650876001600160401b038111156117c0576117c0614d2b565b6040519080825280602002602001820160405280156117f957816020015b6117e66147ab565b8152602001906001900390816117de5790505b5095505f5b888110801561180c57508882105b15611926575f61181c828561563e565b905084811061182b5750611926565b5f86828151811061183e5761183e615651565b60209081029190910101515f80546040516321f0edd560e01b81526004810184905292935090916001600160a01b03909116906321f0edd590602401602060405180830381865afa158015611895573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118b991906155e9565b9050818b86815181106118ce576118ce615651565b6020026020010181815250506118e582825f613423565b8a86815181106118f7576118f7615651565b6020026020010181905250848061190d90615665565b955050505050808061191e90615665565b9150506117fe565b505f816001600160401b0381111561194057611940614d2b565b604051908082528060200260200182016040528015611969578160200160208202803683370190505b5090505f826001600160401b0381111561198557611985614d2b565b6040519080825280602002602001820160405280156119be57816020015b6119ab6147ab565b8152602001906001900390816119a35790505b5090505f5b83811015611a42578981815181106119dd576119dd615651565b60200260200101518382815181106119f7576119f7615651565b602002602001018181525050888181518110611a1557611a15615651565b6020026020010151828281518110611a2f57611a2f615651565b60209081029190910101526001016119c3565b50909b909a5098505050505050505050565b5f805460405163ee6eb83d60e01b815260048101849052829182918291829182916001600160a01b03169063ee6eb83d90602401602060405180830381865afa158015611aa3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ac791906155e9565b9550855f03611ae657505f945084935083925082915081905080611cbc565b5f805f5b88811015611cb5575f80546040516302cf91ab60e41b8152600481018d9052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015611b40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b6491906155e9565b5f80546040516251971f60e01b81526004810184905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611bad573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611bd491908101906156cf565b90508060a001518160800151611bea919061563e565b611bf4908661563e565b94506001600160a01b038416611c0c578060e0015193505b61012081015115611c295789611c2181615665565b9a5050611c37565b88611c3381615665565b9950505b5f54604051620155f160e71b8152600481018490526001600160a01b039091169062aaf88090602401602060405180830381865afa158015611c7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c9f91906155e9565b611ca9908961563e565b97505050600101611aea565b5090925090505b91939550919395565b5f805460405163ee6eb83d60e01b815260048101849052829182916001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015611d10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3491906155e9565b9050805f03611d495750600193849350915050565b5f80546040516321f0edd560e01b8152600481018790526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015611d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db491906155e9565b90505f611dc086613ab7565b5f80546040516251971f60e01b81526004810186905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611e09573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e3091908101906156cf565b90508061012001515f14611e4d57505f9660029650945050505050565b81602001516001148015611e6657508160400151600214155b15611e7a57505f9660039650945050505050565b8160400151600203611f2f575f8054604051637adc52f760e01b8152600481018a90526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015611ecd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ef19190615821565b905080602001518360800151611f07919061563e565b421015611f1e57505f976004975095505050505050565b506001976005975095505050505050565b506001965f9650945050505050565b6002546001600160a01b03163314611f855760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b6044820152606401611356565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055565b611fba61488b565b81806020019051810190611fce91906158f1565b92915050565b5f805460405163ee6eb83d60e01b815260048101849052606092916001600160a01b03169063ee6eb83d90602401602060405180830381865afa15801561201d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204191906155e9565b9050806001600160401b0381111561205b5761205b614d2b565b604051908082528060200260200182016040528015612084578160200160208202803683370190505b5091505f5b81811015612127575f546040516302cf91ab60e41b815260048101869052602481018390526001600160a01b0390911690632cf91ab090604401602060405180830381865afa1580156120de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210291906155e9565b83828151811061211457612114615651565b6020908102919091010152600101612089565b5050919050565b61215e6040518060a00160405280606081526020015f81526020015f81526020015f81526020015f151581525090565b5f805460405163ee6eb83d60e01b8152600481018890526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa1580156121a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121c991906155e9565b9050805f0361222f57604080515f60a0820181815260c0830190935290918291612209565b6121f66147ab565b8152602001906001900390816121ee5790505b5081526020015f81526020018681526020018581526020015f151581525091505061249f565b5f61223a8587615627565b90505f80866001600160401b0381111561225657612256614d2b565b60405190808252806020026020018201604052801561228f57816020015b61227c6147ab565b8152602001906001900390816122745790505b5090505f5b87811080156122a257508783105b156123c4575f87156122ec57856122b9838761563e565b106122c457506123c4565b81856122d1600189615614565b6122db9190615614565b6122e59190615614565b9050612305565b6122f6828661563e565b905085811061230557506123c4565b5f80546040516302cf91ab60e41b8152600481018e9052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015612353573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237791906155e9565b90506123848c825f613423565b84868151811061239657612396615651565b602002602001018190525084806123ac90615665565b955050505080806123bc90615665565b915050612294565b505f826001600160401b038111156123de576123de614d2b565b60405190808252806020026020018201604052801561241757816020015b6124046147ab565b8152602001906001900390816123fc5790505b5090505f5b838110156124635782818151811061243657612436615651565b602002602001015182828151811061245057612450615651565b602090810291909101015260010161241c565b506040518060a001604052808281526020018681526020018a8152602001898152602001868587612494919061563e565b109052955050505050505b949350505050565b6124af6146f2565b6124b76148b5565b602083015f5b600b8110156124da576020810282810151908401526001016124bd565b505060408051602080820183525f80835283519182019093528281529091836008602002015111801561251257508451610100840151105b1561252c57612529858460085b6020020151613c02565b91505b6101208301511580159061254557508451610120840151105b15612559576125568584600961251f565b90505b604080516101608101825284518152602080860151908201528482015191810191909152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e08085015190820152610100810192909252610120820152610140918201519181019190915292915050565b6125da6147ab565b8383811580156125e957505f85115b15612666575f80546040516251971f60e01b8152600481018890526001600160a01b03909116906251971f906024015f60405180830381865afa158015612632573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261265991908101906156cf565b5192508591506126fc9050565b85156126eb57845f036126e4575f546040516321f0edd560e01b8152600481018890526001600160a01b03909116906321f0edd590602401602060405180830381865afa1580156126b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126dd91906155e9565b90506126fc565b50836126fc565b6126f3613d06565b9250505061271b565b805f0361270b576126f3613d06565b612716828286613423565b925050505b9392505050565b61272a614743565b6127326148d4565b602083015f5b600c81101561275557602081028281015190840152600101612738565b505060408051602081019091525f81526101008201511580159061277e57508351610100830151105b156127925761278f8483600861251f565b90505b6040805161018081018252835181526020808501516001600160a01b0316908201528382015191810191909152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e0810183600760200201516001600160a01b03168152602001828152602001836009600c811061281a5761281a615651565b6020020151815260200183600a600c811061283757612837615651565b6020020151815260200183600b600c811061285457612854615651565b60200201519052949350505050565b5f8054604051620155f160e71b815260048101849052606092916001600160a01b03169062aaf88090602401602060405180830381865afa1580156128aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128ce91906155e9565b9050806001600160401b038111156128e8576128e8614d2b565b604051908082528060200260200182016040528015612911578160200160208202803683370190505b5091505f5b81811015612127575f5460405163a910c62360e01b815260048101869052602481018390526001600160a01b039091169063a910c62390604401602060405180830381865afa15801561296b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061298f91906155e9565b8382815181106129a1576129a1615651565b6020908102919091010152600101612916565b6129bc6148f3565b6129c46148f3565b8281525f805460405163ee6eb83d60e01b8152600481018690526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015612a0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3291906155e9565b6040830181905280151560208401819052909150612a655750604080515f81526020810190915261014082015292915050565b806001600160401b03811115612a7d57612a7d614d2b565b604051908082528060200260200182016040528015612aa6578160200160208202803683370190505b506101408301525f5b81811015612b52575f546040516302cf91ab60e41b815260048101879052602481018390526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015612b04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2891906155e9565b8361014001518281518110612b3f57612b3f615651565b6020908102919091010152600101612aaf565b505f80546040516321f0edd560e01b8152600481018790526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015612b9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bbe91906155e9565b606084018190529050612bd085613ab7565b60808401819052612be2908690613dad565b60a08401525f80805b84811015612cc8575f805461014088015180516001600160a01b03909216916251971f919085908110612c2057612c20615651565b60200260200101516040518263ffffffff1660e01b8152600401612c4691815260200190565b5f60405180830381865afa158015612c60573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612c8791908101906156cf565b90508060a001518160800151612c9d919061563e565b612ca7908561563e565b93506001600160a01b038316612cbf578060e0015192505b50600101612beb565b5060c085018290526001600160a01b0381811660e08701525f80546040516251971f60e01b815260048101879052919216906251971f906024015f60405180830381865afa158015612d1c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d4391908101906156cf565b6001546040516371dba4dd60e11b8152600481018b90529192505f916001600160a01b039091169063e3b749ba9060240160c060405180830381865afa158015612d8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db391906157bc565b50505060208501516001600160a01b03908116818316146101008c01525f805460405163d0c239b760e01b815293965090945016915063d0c239b790612e0190899060040190815260200190565b602060405180830381865afa158015612e1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e4091906155e9565b90508015612e60575f612e52826132d0565b6060015115156101208a0152505b509598975050505050505050565b60605f826001600160401b03811115612e8957612e89614d2b565b604051908082528060200260200182016040528015612ec257816020015b612eaf6148f3565b815260200190600190039081612ea75790505b5090505f5b83811015612f72573063e5b5bd5c868684818110612ee757612ee7615651565b905060200201356040518263ffffffff1660e01b8152600401612f0c91815260200190565b5f60405180830381865afa158015612f26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f4d9190810190615a4e565b828281518110612f5f57612f5f615651565b6020908102919091010152600101612ec7565b509392505050565b5f8060015f9054906101000a90046001600160a01b03166001600160a01b0316637380904d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ff091906155e9565b90505f60015b8281101561303f575f61300882613ab7565b90508060200151600114801561302357508060400151600214155b15613036578261303281615665565b9350505b50600101612ff6565b5092915050565b61304e614641565b613056614641565b8281526001546040516316c45f7360e31b8152600481018590526001600160a01b039091169063b622fb98906024015f60405180830381865afa9250505080156130c157506040513d5f823e601f3d908101601f191682016040526130be9190810190615b4e565b60015b15611fce57805160208084019190915281015160408084019190915281015160608084019190915281015160808084019190915281015160a0808401919091528101516001600160a01b0390811660c080850191909152820151811660e080850191909152820151811661010080850191909152820151610120808501919091528201516101408085019190915282015116610160808401919091528101516101808084019190915201516101a082015292915050565b6131806146c7565b6131886146c7565b6001600160a01b0383168082526131c557604080518082018252600381526221272160e91b60208083019190915283015260129082015292915050565b826001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa92505050801561322257506040513d5f823e601f3d908101601f1916820160405261321f9190810190615c52565b60015b61325357604051806040016040528060078152602001662aa725a727aba760c91b8152508160200181905250613259565b60208201525b826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156132b3575060408051601f3d908101601f191682019092526132b091810190615c83565b60015b6132c2575f6040820152611fce565b60ff16604082015292915050565b6132d86146f2565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b0316633cd45a6360e01b1790525f805492517f3cd45a63be193ec81bf5621674b01ee313894a608701dd3c70febe2540a485349382916001600160a01b039091169061334f908590615ca3565b5f60405180830381855afa9150503d805f8114613387576040519150601f19603f3d011682016040523d82523d5f602084013e61338c565b606091505b50915091508180156133a157506101e0815110155b1561341b57604051639d47e5e360e01b81523090639d47e5e3906133c9908490600401615cbe565b5f60405180830381865afa92505050801561340557506040513d5f823e601f3d908101601f191682016040526134029190810190615cd0565b60015b61341157613411613ef0565b9695505050505050565b613411613ef0565b61342b6147ab565b6134336147ab565b83815261343f84613f65565b60208201525f5460405163ee6eb83d60e01b8152600481018790526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa15801561348a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134ae91906155e9565b61010082018190526001600160401b038111156134cd576134cd614d2b565b6040519080825280602002602001820160405280156134f6578160200160208202803683370190505b506101808201525f5b8161010001518110156135bd575f80546040516302cf91ab60e41b815260048101899052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa15801561355a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061357e91906155e9565b905080836101800151838151811061359857613598615651565b6020026020010181815250508581036135b45761012083018290525b506001016134ff565b508215613687578061010001516001600160401b038111156135e1576135e1614d2b565b60405190808252806020026020018201604052801561361a57816020015b613607614743565b8152602001906001900390816135ff5790505b506101c08201525f5b81610100015181101561368157613657826101800151828151811061364a5761364a615651565b6020026020010151613f65565b826101c00151828151811061366e5761366e615651565b6020908102919091010152600101613623565b506136bf565b604080515f80825260208201909252906136b7565b6136a4614743565b81526020019060019003908161369c5790505b506101c08201525b5f54604051620155f160e71b8152600481018690526001600160a01b039091169062aaf88090602401602060405180830381865afa158015613703573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061372791906155e9565b61014082018190526001600160401b0381111561374657613746614d2b565b60405190808252806020026020018201604052801561376f578160200160208202803683370190505b506101a08201525f5b816101400151811015613820575f5460405163a910c62360e01b815260048101879052602481018390526001600160a01b039091169063a910c62390604401602060405180830381865afa1580156137d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137f691906155e9565b826101a00151828151811061380d5761380d615651565b6020908102919091010152600101613778565b5082156138ea578061014001516001600160401b0381111561384457613844614d2b565b60405190808252806020026020018201604052801561387d57816020015b61386a6146f2565b8152602001906001900390816138625790505b506101e08201525f5b8161014001518110156138e4576138ba826101a0015182815181106138ad576138ad615651565b60200260200101516132d0565b826101e0015182815181106138d1576138d1615651565b6020908102919091010152600101613886565b50613922565b604080515f808252602082019092529061391a565b6139076146f2565b8152602001906001900390816138ff5790505b506101e08201525b610140810151156139b5575f5460405163d0c239b760e01b8152600481018690526001600160a01b039091169063d0c239b790602401602060405180830381865afa158015613973573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061399791906155e9565b60408201526101408101516139ae90600190615614565b6101608201525b6040810151156139d2576139cc81604001516132d0565b60608201525b6139db85613ab7565b60808201525f54604051637adc52f760e01b8152600481018790526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015613a26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4a9190615821565b60a0820152613a5985826140ac565b60c0820152613a6785613046565b610200820181905260c00151613a7c90613178565b610220820152602081015160e00151613a9490613178565b6102408201526020810151613aaa908690614194565b60e0820152949350505050565b613abf61488b565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b031663116961f360e11b1790525f805492517f22d2c3e6678ac1695368e47b8e866343cdc17198c09b50fcab9a23fc6d92a9869382916001600160a01b039091169062030d4090613b3b908690615ca3565b5f604051808303818686fa925050503d805f8114613b74576040519150601f19603f3d011682016040523d82523d5f602084013e613b79565b606091505b5091509150818015613b8b57505f8151115b15613bf957604051635f992d5760e01b81523090635f992d5790613bb3908490600401615cbe565b60a060405180830381865afa925050508015613bec575060408051601f3d908101601f19168201909252613be9918101906158f1565b60015b61341157613411866143b8565b613411866143b8565b8151606090613c1283602061563e565b1115613c2c575060408051602081019091525f8152611fce565b82820160200151801580613c4157506103e881115b15613c5b57505060408051602081019091525f8152611fce565b835181613c6985602061563e565b613c73919061563e565b1115613c8e57505060408051602081019091525f8152611fce565b5f816001600160401b03811115613ca757613ca7614d2b565b6040519080825280601f01601f191660200182016040528015613cd1576020820181803683370190505b509050604085850101602082015f5b84811015613cfa57808301515f1a81830153600101613ce0565b50919695505050505050565b613d0e6147ab565b613d166147ab565b604080515f80825260208083018452610180850192909252825181815280830184526101a0850152825181815291820190925290613d6a565b613d57614743565b815260200190600190039081613d4f5790505b506101c0820152604080515f8082526020820190925290613da1565b613d8e6146f2565b815260200190600190039081613d865790505b506101e0820152919050565b613db5614960565b613dbd614960565b6020830151600114808252613dd3579050611fce565b5f6020820181905260408481015181840152606080860151908401526080808601519084015281549051637adc52f760e01b8152600481018790526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015613e3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e629190615821565b905083604001515f03613ea85780516080850151613e80919061563e565b60c083018190524210801560a0840152613ea357613e9d856143eb565b60e08301525b612f72565b8360400151600203612f7257600161010083015260208101516080850151613ed0919061563e565b610160830181905242118015610120840152610140830152509392505050565b613ef86146f2565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200160405180602001604052805f815250815260200160405180602001604052805f81525081526020015f815250905090565b613f6d614743565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b03166251971f60e01b1790525f805492517e51971f7b085c3d81e77976dbd7473ca793801bc535c0b23201ad4b9e5dbed79382916001600160a01b0390911690613fe2908590615ca3565b5f60405180830381855afa9150503d805f811461401a576040519150601f19603f3d011682016040523d82523d5f602084013e61401f565b606091505b50915091508180156140345750610180815110155b156140a4576040516335b4097360e21b8152309063d6d025cc9061405c908490600401615cbe565b5f60405180830381865afa92505050801561409857506040513d5f823e601f3d908101601f1916820160405261409591908101906156cf565b60015b6134115761341161452b565b61341161452b565b6140b4614960565b6140bc614960565b608083015160208101516001148083526140d857509050611fce565b5f602083018190526040808301805191850191909152606080840151908501526080808401519085015260a086015190519091036141495780516080830151614121919061563e565b60c084018190524210801560a08501526141445761413e866143eb565b60e08401525b61418a565b816040015160020361418a57600161010084015260208101516080830151614171919061563e565b6101608401819052421180156101208501526101408401525b5090949350505050565b61419c6149bf565b6141a46149bf565b5f5460408481015160e0860151915163036bd55d60e31b81526004810188905260248101919091526001600160a01b039182166044820152911690631b5eaae890606401606060405180830381865afa158015614203573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142279190615dbe565b506001600160a01b0390811660208401529082525f54604085810151905163946c964560e01b815260048101889052602481019190915291169063946c964590604401602060405180830381865afa158015614285573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142a991906155e9565b6040828101919091525f5460e0850151858301519251635d6dbc8f60e01b81526001600160a01b03918216600482015260248101939093521690635d6dbc8f90604401602060405180830381865afa158015614307573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061432b91906155e9565b60608201525f5460e08401516040808601519051639be8eb3960e01b81526001600160a01b0392831660048201526024810191909152911690639be8eb3990604401602060405180830381865afa158015614388573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143ac91906155e9565b60808201529392505050565b6143c061488b565b506040805160a0810182529182525f6020830181905290820181905260608201819052608082015290565b5f80546040516321f0edd560e01b81526004810184905282916001600160a01b0316906321f0edd590602401602060405180830381865afa158015614432573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061445691906155e9565b5f805460405163d0c239b760e01b81526004810184905292935090916001600160a01b039091169063d0c239b790602401602060405180830381865afa1580156144a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144c691906155e9565b90505f6144d2826132d0565b9050806040015160011480156144ea57506060810151155b156144fa57506001949350505050565b6040810151158015614510575080606001516001145b1561452057506002949350505050565b506001949350505050565b614533614743565b6040518061018001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160405180602001604052805f81525081526020015f81526020015f81526020015f815250905090565b604051806102e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f81526020015f6001600160a01b031681526020015f8152602001606081525090565b60405180606001604052805f6001600160a01b03168152602001606081526020015f60ff1681525090565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200160608152602001606081526020015f81525090565b6040518061018001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b03168152602001606081526020015f81526020015f81526020015f81525090565b6040518061026001604052805f81526020016147c5614743565b81526020015f81526020016147d86146f2565b81526020016147e561488b565b815260200161481160405180608001604052805f81526020015f81526020015f81526020015f81525090565b815260200161481e614960565b815260200161482b6149bf565b81526020015f81526020015f81526020015f81526020015f81526020016060815260200160608152602001606081526020016060815260200161486c614641565b81526020016148796146c7565b81526020016148866146c7565b905290565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101600160405280600b906020820280368337509192915050565b604051806101800160405280600c906020820280368337509192915050565b6040518061016001604052805f81526020015f151581526020015f81526020015f815260200161492161488b565b815260200161492e614960565b81526020015f81526020015f6001600160a01b031681526020015f151581526020015f15158152602001606081525090565b6040518061018001604052805f151581526020015f81526020015f81526020015f81526020015f81526020015f151581526020015f81526020015f81526020015f151581526020015f151581526020015f151581526020015f81525090565b6040518060a001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b5f60208284031215614a02575f80fd5b5035919050565b5f5b83811015614a23578181015183820152602001614a0b565b50505f910152565b5f8151808452614a42816020860160208601614a09565b601f01601f19169290920160200192915050565b5f6101c0825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c0830151614aaa60c08601826001600160a01b03169052565b5060e0830151614ac560e08601826001600160a01b03169052565b50610100838101516001600160a01b03811686830152505061012083810151908501526101408084015190850152610160808401516001600160a01b0381168287015250506101808084015181860152506101a080840151828287015261341183870182614a2b565b60018060a01b0381511682525f602082015160606020850152614b546060850182614a2b565b60409384015160ff16949093019390935250919050565b604081525f614b7d6040830185614a56565b82810360208401526113058185614b2e565b8015158114614b9c575f80fd5b50565b5f805f805f60a08688031215614bb3575f80fd5b853594506020860135935060408601359250606086013591506080860135614bda81614b8f565b809150509295509295909350565b5f610160825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015160c085015260e083015160e0850152610100808401518282870152614c4e83870182614a2b565b925050506101208084015185830382870152614c6a8382614a2b565b61014095860151969095019590955250919392505050565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614ccd57601f19868403018952614cbb838351614be8565b98840198925090830190600101614c9f565b5090979650505050505050565b602081525f825160a06020840152614cf560c0840182614c82565b90506020840151604084015260408401516060840152606084015160808401526080840151151560a08401528091505092915050565b634e487b7160e01b5f52604160045260245ffd5b60405161018081016001600160401b0381118282101715614d6257614d62614d2b565b60405290565b60405161016081016001600160401b0381118282101715614d6257614d62614d2b565b6040516101a081016001600160401b0381118282101715614d6257614d62614d2b565b604051601f8201601f191681016001600160401b0381118282101715614dd657614dd6614d2b565b604052919050565b5f6001600160401b03821115614df657614df6614d2b565b50601f01601f191660200190565b5f60208284031215614e14575f80fd5b81356001600160401b03811115614e29575f80fd5b8201601f81018413614e39575f80fd5b8035614e4c614e4782614dde565b614dae565b818152856020838501011115614e60575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f610180825184526020830151614e9f60208601826001600160a01b03169052565b5060408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015160c085015260e0830151614eec60e08601826001600160a01b03169052565b50610100808401518282870152614f0583870182614a2b565b6101208681015190880152610140808701519088015261016095860151959096019490945250929392505050565b602081525f61271b6020830184614e7d565b6001600160a01b0381168114614b9c575f80fd5b5f805f60608486031215614f6b575f80fd5b8335614f7681614f45565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b83811015614fba57815187529582019590820190600101614f9e565b509495945050505050565b8051151582526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015161500660a084018215159052565b5060c081015160c083015260e081015160e08301526101008082015161502f8285018215159052565b5050610120818101511515908301526101408082015115159083015261016090810151910152565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614ccd57601f19868403018952615090838351614e7d565b98840198925090830190600101615074565b5f6105208251845260208301518160208601526150c182860182614e7d565b91505060408301516040850152606083015184820360608601526150e58282614be8565b608085810151805188830152602081015160a0890152604081015160c0890152606081015160e08901529081015161010088015290925090505060a083015180516101208681019190915260208201516101408701526040820151610160870152606082015161018087015260c085015191506101a061516781880184614fc5565b60e0860151805161032089015260208101516001600160a01b031661034089015260408101516103608901526060810151610380890152608001516103a08801526101008601516103c0880152818601516103e088015261014086015161040088015261016086015161042088015261018086015187850361044089015292506151f18484614f8b565b9350808601519250505084820361046086015261520e8282614f8b565b9150506101c083015184820361048086015261522a8282615057565b9150506101e08301518482036104a08601526152468282614c82565b9150506102008301518482036104c08601526152628282614a56565b9150506102208301518482036104e086015261527e8282614b2e565b9150506102408301518482036105008601526113058282614b2e565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614ccd57601f198684030189526152d38383516150a2565b988401989250908301906001016152b7565b604081525f6152f76040830185614f8b565b8281036020840152611305818561529a565b5f806040838503121561531a575f80fd5b823561532581614f45565b9150602083013561533581614f45565b809150509250929050565b60a08101611fce828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602081525f61271b6020830184614f8b565b5f805f806080858703121561539e575f80fd5b84359350602085013592506040850135915060608501356153be81614b8f565b939692955090935050565b602081525f825160a06020840152614cf560c084018261529a565b602081525f61271b6020830184614be8565b5f805f60608486031215615408575f80fd5b8335925060208401359150604084013561542181614b8f565b809150509250925092565b602081525f61271b60208301846150a2565b5f610340825184526020830151615459602086018215159052565b506040838101518582015260608085015181870152608080860151805182890152602081015160a08901529283015160c08801529082015160e08701528101516101008601525060a08301516101206154b481870183614fc5565b60c08501516102a087015260e08501516001600160a01b03166102c087015261010085015115156102e0870152840151151561030086015250610140830151610320850182905261130582860182614f8b565b602081525f61271b602083018461543e565b5f806020838503121561552a575f80fd5b82356001600160401b0380821115615540575f80fd5b818501915085601f830112615553575f80fd5b813581811115615561575f80fd5b8660208260051b8501011115615575575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156155dc57603f198886030184526155ca85835161543e565b945092850192908501906001016155ae565b5092979650505050505050565b5f602082840312156155f9575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611fce57611fce615600565b8082028115828204841417611fce57611fce615600565b80820180821115611fce57611fce615600565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161567657615676615600565b5060010190565b805161568881614f45565b919050565b5f82601f83011261569c575f80fd5b81516156aa614e4782614dde565b8181528460208386010111156156be575f80fd5b61249f826020830160208701614a09565b5f602082840312156156df575f80fd5b81516001600160401b03808211156156f5575f80fd5b908301906101808286031215615709575f80fd5b615711614d3f565b825181526157216020840161567d565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015261576460e0840161567d565b60e0820152610100808401518381111561577c575f80fd5b6157888882870161568d565b9183019190915250610120838101519082015261014080840151908201526101609283015192810192909252509392505050565b5f805f805f8060c087890312156157d1575f80fd5b8651955060208701516157e381614f45565b60408801519095506157f481614f45565b606088015190945061580581614f45565b809350506080870151915060a087015190509295509295509295565b5f60808284031215615831575f80fd5b604051608081018181106001600160401b038211171561585357615853614d2b565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b5f60a08284031215615894575f80fd5b60405160a081018181106001600160401b03821117156158b6576158b6614d2b565b806040525080915082518152602083015160208201526040830151604082015260608301516060820152608083015160808201525092915050565b5f60a08284031215615901575f80fd5b61271b8383615884565b805161568881614b8f565b5f6101808284031215615927575f80fd5b61592f614d3f565b905061593a8261590b565b81526020820151602082015260408201516040820152606082015160608201526080820151608082015261597060a0830161590b565b60a082015260c082015160c082015260e082015160e082015261010061599781840161590b565b908201526101206159a983820161590b565b908201526101406159bb83820161590b565b818301525061016080830151818301525092915050565b5f82601f8301126159e1575f80fd5b815160206001600160401b038211156159fc576159fc614d2b565b8160051b615a0b828201614dae565b9283528481018201928281019087851115615a24575f80fd5b83870192505b84831015615a4357825182529183019190830190615a2a565b979650505050505050565b5f60208284031215615a5e575f80fd5b81516001600160401b0380821115615a74575f80fd5b908301906103408286031215615a88575f80fd5b615a90614d68565b82518152615aa06020840161590b565b60208201526040830151604082015260608301516060820152615ac68660808501615884565b6080820152610120615ada87828601615916565b60a08301526102a084015160c0830152615af76102c0850161567d565b60e0830152615b096102e0850161590b565b610100830152615b1c610300850161590b565b9082015261032083015182811115615b32575f80fd5b615b3e878286016159d2565b6101408301525095945050505050565b5f60208284031215615b5e575f80fd5b81516001600160401b0380821115615b74575f80fd5b908301906101a08286031215615b88575f80fd5b615b90614d8b565b8251815260208301516020820152604083015160408201526060830151606082015260808301516080820152615bc860a0840161567d565b60a0820152615bd960c0840161567d565b60c0820152615bea60e0840161567d565b60e082015261010083810151908201526101208084015190820152610140615c1381850161567d565b9082015261016083810151908201526101808084015183811115615c35575f80fd5b615c418882870161568d565b918301919091525095945050505050565b5f60208284031215615c62575f80fd5b81516001600160401b03811115615c77575f80fd5b61249f8482850161568d565b5f60208284031215615c93575f80fd5b815160ff8116811461271b575f80fd5b5f8251615cb4818460208701614a09565b9190910192915050565b602081525f61271b6020830184614a2b565b5f60208284031215615ce0575f80fd5b81516001600160401b0380821115615cf6575f80fd5b908301906101608286031215615d0a575f80fd5b615d12614d68565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015183811115615d6f575f80fd5b615d7b8882870161568d565b8284015250506101208084015183811115615d94575f80fd5b615da08882870161568d565b91830191909152506101409283015192810192909252509392505050565b5f805f60608486031215615dd0575f80fd5b835192506020840151615de281614f45565b8092505060408401519050925092509256fea26469706673582212205d550c66c8805daaab660ad424c777a0b0285c39ac741e892887bb8f828256dc64736f6c63430008180033