2 txs
3 calls
constructor
No constructor.
functions
addressList
viewfunction addressList(uint256) view returns (address)
FEE_DENOM
viewfunction FEE_DENOM() view returns (uint256)
liquidatorAddress
viewfunction liquidatorAddress() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
changeLiquidatorAddress
nonpayablefunction changeLiquidatorAddress(address account)
renounceOwnership
nonpayablefunction renounceOwnership()
swap
payablefunction swap(tuple tokenInfo, bytes pathDefinition, address executor, tuple referralInfo) payable returns (uint256 amountOut)
swapCompact
payablefunction swapCompact() payable returns (uint256)
swapMulti
payablefunction swapMulti(tuple[] inputs, tuple[] outputs, bytes pathDefinition, address executor, tuple referralInfo) payable returns (uint256[] amountsOut)
swapMultiCompact
payablefunction swapMultiCompact() payable returns (uint256[] amountsOut)
swapMultiPermit2
payablefunction swapMultiPermit2(tuple permit2, tuple[] inputs, tuple[] outputs, bytes pathDefinition, address executor, tuple referralInfo) payable returns (uint256[] amountsOut)
swapPermit2
nonpayablefunction swapPermit2(tuple permit2, tuple tokenInfo, bytes pathDefinition, address executor, tuple referralInfo) returns (uint256 amountOut)
swapRouterFunds
nonpayablefunction swapRouterFunds(tuple[] inputs, tuple[] outputs, bytes pathDefinition, address executor) returns (uint256[] amountsOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferRouterFunds
nonpayablefunction transferRouterFunds(address[] tokens, uint256[] amounts, address dest)
writeAddressList
nonpayablefunction writeAddressList(address[] addresses)
events
LiquidatorAddressChanged
event LiquidatorAddressChanged(address indexed account)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Swap
event Swap(address sender, uint256 inputAmount, address inputToken, uint256 amountOut, address outputToken, int256 slippage, uint64 referralCode, uint64 referralFee, address referralFeeRecipient)
SwapMulti
event SwapMulti(address sender, uint256[] amountsIn, address[] tokensIn, uint256[] amountsOut, address[] tokensOut, int256[] slippage, uint64 referralCode, uint64 referralFee, address referralFeeRecipient)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001d3362000023565b62000091565b600180546001600160a01b03191690556200003e8162000041565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b613cae80620000a16000396000f3fe60806040526004361061010d5760003560e01c806384a7f3dd11610095578063cab3473111610064578063cab3473114610291578063e30c3978146102b1578063e5dae17d146102cf578063f2fde38b146102ef578063fef828dc1461030f57600080fd5b806384a7f3dd1461022b5780638da5cb5b146102335780639828146914610251578063b810fb431461027157600080fd5b80634886c675116100dc5780634886c675146101a5578063715018a6146101c157806375c111f2146101d657806379ba50971461020e57806383bd37f91461022357600080fd5b8063108e3a7714610119578063174da6211461014257806330f80b4c146101645780633596f9a21461018557600080fd5b3661011457005b600080fd5b61012c6101273660046132ad565b610322565b60405161013991906133be565b60405180910390f35b34801561014e57600080fd5b5061016261015d36600461341c565b6107cb565b005b610177610172366004613539565b61093a565b604051908152602001610139565b34801561019157600080fd5b506101626101a03660046135a7565b610953565b3480156101b157600080fd5b50610177670de0b6b3a764000081565b3480156101cd57600080fd5b506101626109d8565b3480156101e257600080fd5b506003546101f6906001600160a01b031681565b6040516001600160a01b039091168152602001610139565b34801561021a57600080fd5b506101626109ec565b610177610a66565b61012c610c5f565b34801561023f57600080fd5b506000546001600160a01b03166101f6565b34801561025d57600080fd5b5061012c61026c3660046135e8565b610ed5565b34801561027d57600080fd5b506101f661028c36600461367b565b6114ea565b34801561029d57600080fd5b506101776102ac366004613694565b611514565b3480156102bd57600080fd5b506001546001600160a01b03166101f6565b3480156102db57600080fd5b506101626102ea366004613734565b6115e1565b3480156102fb57600080fd5b5061016261030a366004613734565b611633565b61012c61031d36600461374f565b6116a4565b606061034860405180606001604052806060815260200160008152602001600081525090565b6060600080341161035a578951610368565b60018a516103689190613808565b90506040518060600160405280826001600160401b0381111561038d5761038d612f1f565b6040519080825280602002602001820160405280156103d257816020015b60408051808201909152600080825260208201528152602001906001900390816103ab5790505b5081526020018c6020015181526020018c604001518152509250806001600160401b0381111561040457610404612f1f565b60405190808252806020026020018201604052801561044957816020015b60408051808201909152600080825260208201528152602001906001900390816104225790505b509150506000805b8a5181101561071a5760006001600160a01b03168b82815181106104775761047761381b565b6020026020010151600001516001600160a01b0316036104ff578a81815181106104a3576104a361381b565b6020026020010151602001516000036104da57348b82815181106104c9576104c961381b565b602002602001015160200181815250505b8a81815181106104ec576104ec61381b565b6020026020010151602001519150610708565b8a81815181106105115761051161381b565b6020026020010151602001516000036105ce578a81815181106105365761053661381b565b6020908102919091010151516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ab9190613831565b8b82815181106105bd576105bd61381b565b602002602001015160200181815250505b600082156105e6576105e1600183613808565b6105e8565b815b90508b82815181106105fc576105fc61381b565b6020026020010151600001518560000151828151811061061e5761061e61381b565b60209081029190910101516001600160a01b0390911690528b518c908390811061064a5761064a61381b565b6020026020010151602001518560000151828151811061066c5761066c61381b565b602002602001015160200181815250508b828151811061068e5761068e61381b565b6020026020010151604001518482815181106106ac576106ac61381b565b60209081029190910101516001600160a01b0390911690528b518c90839081106106d8576106d861381b565b6020026020010151602001518482815181106106f6576106f661381b565b60200260200101516020018181525050505b806107128161384a565b915050610451565b508034146107435760405162461bcd60e51b815260040161073a90613863565b60405180910390fd5b50895160608b015160405163edd9444b60e01b81526001600160a01b039092169163edd9444b9161077d9186918691339190600401613929565b600060405180830381600087803b15801561079757600080fd5b505af11580156107ab573d6000803e3d6000fd5b505050506107bd8989898989896116b4565b9a9950505050505050505050565b6003546001600160a01b03163314806107ee57506000546001600160a01b031633145b6108305760405162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81b9bdd08185b1b1bddd959606a1b604482015260640161073a565b8382146108785760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210333ab73239903a3930b739b332b960511b604482015260640161073a565b60005b84811015610932576109208686838181106108985761089861381b565b90506020020160208101906108ad9190613734565b838686858181106108c0576108c061381b565b905060200201356000146108ec578686858181106108e0576108e061381b565b9050602002013561228f565b61091b8989868181106109015761090161381b565b90506020020160208101906109169190613734565b612205565b61228f565b8061092a8161384a565b91505061087b565b505050505050565b60006109498686868686612350565b9695505050505050565b61095b61246d565b60005b818110156109d357600283838381811061097a5761097a61381b565b905060200201602081019061098f9190613734565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055806109cb8161384a565b91505061095e565b505050565b6109e061246d565b6109ea60006124c7565b565b60015433906001600160a01b03168114610a5a5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161073a565b610a63816124c7565b50565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260408051606081018252600080825260208201819052918101919091526000366000610b36565b600080823560f01c808015610b0d5760018114610b18577f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acc8201549350600285019250610b2f565b600285019250610b2f565b6001600160a01b03853560501c1693506016850192505b5050915091565b60006004610b4381610ac5565b91509150818752610b5381610ac5565b606089018290529092506001810191503560f81c8015610b82578135600882602003021c602089015280820191505b50803560f81c6001820191508135600882602003021c8060808a01528183019250823560e81c915062ffffff8262ffffff0382020460a08a01525050600381019050610bcd81610ac5565b91509450610bda81610ac5565b909250905081610be8578491505b816040880152610bf781610ac5565b60c089810192909252803590911c8752600881013560f81c925060090190508115610c3757803560c01c6020870152600881013560601c6040870152601c015b6001810193503560f81c6020029150610c5590508583838688612350565b9550505050505090565b606060008180600660043560f890811c90600535901c816001600160401b03811115610c8d57610c8d612f1f565b604051908082528060200260200182016040528015610cd857816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610cab5790505b509450806001600160401b03811115610cf357610cf3612f1f565b604051908082528060200260200182016040528015610d4557816020015b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610d115790505b509350610d5183610ac5565b9096506003810193503560e81c600080805b85811015610dd0576020808202018901519150610d7f87610ac5565b8184526001810198509093503560f81c8015610daa578735600882602003021c602084015280880197505b50610db487610ac5565b9750925082610dc1578992505b60408201839052600101610d63565b5060005b84811015610e47576020808202018801519150610df087610ac5565b97509250828252863560f81c6001880197508735600882602003021c806020850152818901985062ffffff8662ffffff0382020460408501525050610e3487610ac5565b6060840182905297509250600101610dd4565b505050505050610e70604080516060810182526000808252602082018190529181019190915290565b813560c01c8152600982019136906000906008013560f81c8015610eac57843560c01c6020850152600885013560601c6040850152601c909401935b505050600182016020833560f81c02610ec9868684848b886124e0565b97505050505050505090565b6003546060906001600160a01b0316331480610efb57506000546001600160a01b031633145b610f3d5760405162461bcd60e51b81526020600482015260136024820152721059191c995cdcc81b9bdd08185b1b1bddd959606a1b604482015260640161073a565b600086516001600160401b03811115610f5857610f58612f1f565b604051908082528060200260200182016040528015610f81578160200160208202803683370190505b509050600087516001600160401b03811115610f9f57610f9f612f1f565b604051908082528060200260200182016040528015610fc8578160200160208202803683370190505b50905060005b885181101561111b57888181518110610fe957610fe961381b565b6020026020010151600001518282815181106110075761100761381b565b60200260200101906001600160a01b031690816001600160a01b0316815250508881815181106110395761103961381b565b60200260200101516020015160001461106f5788818151811061105e5761105e61381b565b602002602001015160200151611091565b6110918282815181106110845761108461381b565b6020026020010151612205565b8382815181106110a3576110a361381b565b6020026020010181815250506111098282815181106110c4576110c461381b565b60200260200101518a83815181106110de576110de61381b565b6020026020010151604001518584815181106110fc576110fc61381b565b602002602001015161228f565b806111138161384a565b915050610fce565b50600087516001600160401b0381111561113757611137612f1f565b604051908082528060200260200182016040528015611160578160200160208202803683370190505b509050600088516001600160401b0381111561117e5761117e612f1f565b6040519080825280602002602001820160405280156111a7578160200160208202803683370190505b50905060005b895181101561124a578981815181106111c8576111c861381b565b6020026020010151600001518282815181106111e6576111e661381b565b60200260200101906001600160a01b031690816001600160a01b03168152505061121b8282815181106110845761108461381b565b83828151811061122d5761122d61381b565b6020908102919091010152806112428161384a565b9150506111ad565b5060405163cb70e27360e01b81526001600160a01b0387169063cb70e27390600090611280908c908c908a9033906004016139df565b6000604051808303818588803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505088516001600160401b038111156112cb576112cb612f1f565b6040519080825280602002602001820160405280156112f4578160200160208202803683370190505b50945060005b8951811015611451578281815181106113155761131561381b565b60200260200101516113328383815181106110845761108461381b565b61133c9190613808565b86828151811061134e5761134e61381b565b60200260200101818152505089818151811061136c5761136c61381b565b60200260200101516040015186828151811061138a5761138a61381b565b602002602001015110156113b05760405162461bcd60e51b815260040161073a90613a37565b61143f8a82815181106113c5576113c561381b565b60200260200101516000015160006001600160a01b03168c84815181106113ee576113ee61381b565b6020026020010151606001516001600160a01b03161461142b578b838151811061141a5761141a61381b565b60200260200101516060015161142d565b335b8884815181106110fc576110fc61381b565b806114498161384a565b9150506112fa565b507f2c96555a96d94780f3a97aeb724514e80e331842f3143742d85da5aa68df9d3033858588858e516001600160401b0381111561149157611491612f1f565b6040519080825280602002602001820160405280156114ba578160200160208202803683370190505b5060008060006040516114d599989796959493929190613aa7565b60405180910390a15050505095945050505050565b600281815481106114fa57600080fd5b6000918252602090912001546001600160a01b0316905081565b85516040805160a08101825287516001600160a01b0390811660608084019182526020808c0180516080870152928552808d015181860152858d015185870152855180870187528c870151851681529251908301528b0151935163187945bd60e11b815260009592909216936330f28b7a93611597939092913391600401613b4e565b600060405180830381600087803b1580156115b157600080fd5b505af11580156115c5573d6000803e3d6000fd5b505050506115d68686868686612726565b979650505050505050565b6115e961246d565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f1535fa8f7275b71050af30bf7f74391b45be7ba2b545fd28279dafe9b50f642490600090a250565b61163b61246d565b600180546001600160a01b0383166001600160a01b0319909116811790915561166c6000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60606115d68787878787876124e0565b6060600087516001600160401b038111156116d1576116d1612f1f565b6040519080825280602002602001820160405280156116fa578160200160208202803683370190505b509050600088516001600160401b0381111561171857611718612f1f565b604051908082528060200260200182016040528015611741578160200160208202803683370190505b50905060005b895181101561195b578981815181106117625761176261381b565b6020026020010151602001518382815181106117805761178061381b565b60200260200101818152505089818151811061179e5761179e61381b565b6020026020010151600001518282815181106117bc576117bc61381b565b60200260200101906001600160a01b031690816001600160a01b03168152505060005b81811015611894578a81815181106117f9576117f961381b565b6020026020010151600001516001600160a01b03168b83815181106118205761182061381b565b6020026020010151600001516001600160a01b0316036118825760405162461bcd60e51b815260206004820152601760248201527f4475706c696361746520736f7572636520746f6b656e73000000000000000000604482015260640161073a565b8061188c8161384a565b9150506117df565b5060005b8951811015611948578981815181106118b3576118b361381b565b6020026020010151600001516001600160a01b03168b83815181106118da576118da61381b565b6020026020010151600001516001600160a01b0316036119365760405162461bcd60e51b8152602060048201526017602482015276105c989a5d1c9859d9481b9bdd081cdd5c1c1bdc9d1959604a1b604482015260640161073a565b806119408161384a565b915050611898565b50806119538161384a565b915050611747565b50600088516001600160401b0381111561197757611977612f1f565b6040519080825280602002602001820160405280156119a0578160200160208202803683370190505b50905060005b8951811015611bad578981815181106119c1576119c161381b565b6020026020010151602001518a82815181106119df576119df61381b565b6020026020010151604001511115611a395760405162461bcd60e51b815260206004820152601a60248201527f4d696e696d756d2067726561746572207468616e2071756f7465000000000000604482015260640161073a565b60008a8281518110611a4d57611a4d61381b565b60200260200101516040015111611a9f5760405162461bcd60e51b81526020600482015260166024820152754d696e696d756d206f7574707574206973207a65726f60501b604482015260640161073a565b60005b81811015611b57578a8181518110611abc57611abc61381b565b6020026020010151600001516001600160a01b03168b8381518110611ae357611ae361381b565b6020026020010151600001516001600160a01b031603611b455760405162461bcd60e51b815260206004820152601c60248201527f4475706c69636174652064657374696e6174696f6e20746f6b656e7300000000604482015260640161073a565b80611b4f8161384a565b915050611aa2565b50611b7e8a8281518110611b6d57611b6d61381b565b602002602001015160000151612205565b828281518110611b9057611b9061381b565b602090810291909101015280611ba58161384a565b9150506119a6565b5060405163cb70e27360e01b81526001600160a01b0387169063cb70e273903490611be2908c908c90899033906004016139df565b6000604051808303818588803b158015611bfb57600080fd5b505af1158015611c0f573d6000803e3d6000fd5b5050505050600089516001600160401b03811115611c2f57611c2f612f1f565b604051908082528060200260200182016040528015611c58578160200160208202803683370190505b50905089516001600160401b03811115611c7457611c74612f1f565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50865190955060201c61ffff166000819003611cb85750611f405b612710811115611cfd5760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642052656620436f646560801b604482015260640161073a565b60005b8b518110156120f857838181518110611d1b57611d1b61381b565b6020026020010151611d388d8381518110611b6d57611b6d61381b565b611d429190613808565b878281518110611d5457611d5461381b565b602002602001018181525050600088602001516001600160401b03161115611f315760408801516001600160a01b0316611dc55760405162461bcd60e51b8152602060048201526012602482015271139d5b1b08199959481c9958da5c1a595b9d60721b604482015260640161073a565b611dd86032670de0b6b3a7640000613bc7565b88602001516001600160401b03161115611e235760405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b604482015260640161073a565b60408801516001600160a01b03163014611eba57611eba8c8281518110611e4c57611e4c61381b565b6020026020010151600001518960400151670de0b6b3a7640000612710611e739190613be9565b858c602001516001600160401b03168c8781518110611e9457611e9461381b565b6020026020010151611ea69190613be9565b611eb09190613be9565b61091b9190613bc7565b670de0b6b3a764000088602001516001600160401b0316670de0b6b3a7640000611ee49190613808565b888381518110611ef657611ef661381b565b6020026020010151611f089190613be9565b611f129190613bc7565b878281518110611f2457611f2461381b565b6020026020010181815250505b8b8181518110611f4357611f4361381b565b602002602001015160200151878281518110611f6157611f6161381b565b6020026020010151611f739190613c00565b838281518110611f8557611f8561381b565b6020026020010181815250506000838281518110611fa557611fa561381b565b6020026020010151138015611fbf5750875160301c600116155b15612001578b8181518110611fd657611fd661381b565b602002602001015160200151878281518110611ff457611ff461381b565b6020026020010181815250505b8b81815181106120135761201361381b565b6020026020010151604001518782815181106120315761203161381b565b602002602001015110156120575760405162461bcd60e51b815260040161073a90613a37565b6120e68c828151811061206c5761206c61381b565b60200260200101516000015160006001600160a01b03168e84815181106120955761209561381b565b6020026020010151606001516001600160a01b0316146120d2578d83815181106120c1576120c161381b565b6020026020010151606001516120d4565b335b8984815181106110fc576110fc61381b565b806120f08161384a565b915050611d00565b505060008a516001600160401b0381111561211557612115612f1f565b60405190808252806020026020018201604052801561213e578160200160208202803683370190505b50905060005b8b518110156121a7578b818151811061215f5761215f61381b565b60200260200101516000015182828151811061217d5761217d61381b565b6001600160a01b03909216602092830291909101909101528061219f8161384a565b915050612144565b50865160208801516040808a015190517f2c96555a96d94780f3a97aeb724514e80e331842f3143742d85da5aa68df9d30936121ee9333938b938b938e938a938c93613aa7565b60405180910390a150505050509695505050505050565b60006001600160a01b03821661221c575047919050565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015612260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122849190613831565b92915050565b919050565b6001600160a01b03831661233c576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146122ea576040519150601f19603f3d011682016040523d82523d6000602084013e6122ef565b606091505b50509050806123365760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161073a565b50505050565b6109d36001600160a01b0384168383612be2565b84516000906001600160a01b03166123a157856020015160000361237957346020870152612460565b8560200151341461239c5760405162461bcd60e51b815260040161073a90613863565b612460565b34156123bf5760405162461bcd60e51b815260040161073a90613863565b856020015160000361243c5785516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612412573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124369190613831565b60208701525b604086015160208701518751612460926001600160a01b0390911691339190612c45565b6109498686868686612726565b6000546001600160a01b031633146109ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161073a565b600180546001600160a01b0319169055610a6381612c7d565b60606000805b88518110156126ec5760006001600160a01b031689828151811061250c5761250c61381b565b6020026020010151600001516001600160a01b031603612594578881815181106125385761253861381b565b60200260200101516020015160000361256f573489828151811061255e5761255e61381b565b602002602001015160200181815250505b8881815181106125815761258161381b565b60200260200101516020015191506126da565b8881815181106125a6576125a661381b565b602002602001015160200151600003612663578881815181106125cb576125cb61381b565b6020908102919091010151516040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561261c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126409190613831565b8982815181106126525761265261381b565b602002602001015160200181815250505b6126da338a83815181106126795761267961381b565b6020026020010151604001518b84815181106126975761269761381b565b6020026020010151602001518c85815181106126b5576126b561381b565b6020026020010151600001516001600160a01b0316612c45909392919063ffffffff16565b806126e48161384a565b9150506124e6565b5080341461270c5760405162461bcd60e51b815260040161073a90613863565b61271a8888888888886116b4565b98975050505050505050565b600085608001518660a0015111156127805760405162461bcd60e51b815260206004820152601a60248201527f4d696e696d756d2067726561746572207468616e2071756f7465000000000000604482015260640161073a565b60008660a00151116127cd5760405162461bcd60e51b81526020600482015260166024820152754d696e696d756d206f7574707574206973207a65726f60501b604482015260640161073a565b85606001516001600160a01b031686600001516001600160a01b0316036128305760405162461bcd60e51b8152602060048201526017602482015276105c989a5d1c9859d9481b9bdd081cdd5c1c1bdc9d1959604a1b604482015260640161073a565b600061283f8760600151612205565b604080516001808252818301909252919250600091906020808301908036833701905050905087602001518160008151811061287d5761287d61381b565b602090810291909101015260405163cb70e27360e01b81526001600160a01b0386169063cb70e2739034906128bc908b908b90879033906004016139df565b6000604051808303818588803b1580156128d557600080fd5b505af11580156128e9573d6000803e3d6000fd5b5050505050816128fc8960600151612205565b6129069190613808565b60208501519093506001600160401b031615612ab85760408401516001600160a01b031661296b5760405162461bcd60e51b8152602060048201526012602482015271139d5b1b08199959481c9958da5c1a595b9d60721b604482015260640161073a565b61297e6032670de0b6b3a7640000613bc7565b84602001516001600160401b031611156129c95760405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b604482015260640161073a565b835160201c61ffff1660008190036129e05750611f405b612710811115612a255760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642052656620436f646560801b604482015260640161073a565b60408501516001600160a01b03163014612a7657612a7689606001518660400151670de0b6b3a7640000612710612a5c9190613be9565b8489602001516001600160401b031689611ea69190613be9565b670de0b6b3a764000085602001516001600160401b0316670de0b6b3a7640000612aa09190613808565b612aaa9086613be9565b612ab49190613bc7565b9350505b6000886080015184612aca9190613c00565b9050600081138015612ae15750845160301c600116155b15612aee57886080015193505b8860a00151841015612b125760405162461bcd60e51b815260040161073a90613a37565b606089015160c08a0151612b4191906001600160a01b031615612b39578a60c00151612b3b565b335b8661228f565b6020808a01518a516060808d015189518a8601516040808d01518151338152988901979097526001600160a01b03958616908801529286018a9052908316608086015260a085018690526001600160401b0390811660c08601521660e0840152166101008201527f69db20ca9e32403e6c56e5193b3e3b2827ae5c430ccfdea392ba950d2d1ab2bc906101200160405180910390a150505095945050505050565b6040516001600160a01b0383166024820152604481018290526109d390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612ccd565b6040516001600160a01b03808516602483015283166044820152606481018290526123369085906323b872dd60e01b90608401612c0e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000612d22826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d9f9092919063ffffffff16565b8051909150156109d35780806020019051810190612d409190613c27565b6109d35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161073a565b6060612dae8484600085612db6565b949350505050565b606082471015612e175760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161073a565b600080866001600160a01b03168587604051612e339190613c49565b60006040518083038185875af1925050503d8060008114612e70576040519150601f19603f3d011682016040523d82523d6000602084013e612e75565b606091505b50915091506115d68783838760608315612ef0578251600003612ee9576001600160a01b0385163b612ee95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161073a565b5081612dae565b612dae8383815115612f055781518083602001fd5b8060405162461bcd60e51b815260040161073a9190613c65565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715612f5757612f57612f1f565b60405290565b604051606081016001600160401b0381118282101715612f5757612f57612f1f565b604051601f8201601f191681016001600160401b0381118282101715612fa757612fa7612f1f565b604052919050565b80356001600160a01b038116811461228a57600080fd5b600060808284031215612fd857600080fd5b612fe0612f35565b9050612feb82612faf565b8152602080830135818301526040830135604083015260608301356001600160401b038082111561301b57600080fd5b818501915085601f83011261302f57600080fd5b81358181111561304157613041612f1f565b613053601f8201601f19168501612f7f565b9150808252868482850101111561306957600080fd5b808484018584013760008482840101525080606085015250505092915050565b60006001600160401b038211156130a2576130a2612f1f565b5060051b60200190565b600082601f8301126130bd57600080fd5b813560206130d26130cd83613089565b612f7f565b828152606092830285018201928282019190878511156130f157600080fd5b8387015b858110156131465781818a03121561310d5760008081fd5b613115612f5d565b61311e82612faf565b815285820135868201526040613135818401612faf565b9082015284529284019281016130f5565b5090979650505050505050565b600082601f83011261316457600080fd5b813560206131746130cd83613089565b82815260079290921b8401810191818101908684111561319357600080fd5b8286015b848110156131f457608081890312156131b05760008081fd5b6131b8612f35565b6131c182612faf565b815281850135858201526040808301359082015260606131e2818401612faf565b90820152835291830191608001613197565b509695505050505050565b60008083601f84011261321157600080fd5b5081356001600160401b0381111561322857600080fd5b60208301915083602082850101111561324057600080fd5b9250929050565b80356001600160401b038116811461228a57600080fd5b60006060828403121561327057600080fd5b613278612f5d565b905061328382613247565b815261329160208301613247565b60208201526132a260408301612faf565b604082015292915050565b6000806000806000806000610100888a0312156132c957600080fd5b87356001600160401b03808211156132e057600080fd5b6132ec8b838c01612fc6565b985060208a013591508082111561330257600080fd5b61330e8b838c016130ac565b975060408a013591508082111561332457600080fd5b6133308b838c01613153565b965060608a013591508082111561334657600080fd5b506133538a828b016131ff565b9095509350613366905060808901612faf565b91506133758960a08a0161325e565b905092959891949750929550565b600081518084526020808501945080840160005b838110156133b357815187529582019590820190600101613397565b509495945050505050565b6020815260006133d16020830184613383565b9392505050565b60008083601f8401126133ea57600080fd5b5081356001600160401b0381111561340157600080fd5b6020830191508360208260051b850101111561324057600080fd5b60008060008060006060868803121561343457600080fd5b85356001600160401b038082111561344b57600080fd5b61345789838a016133d8565b9097509550602088013591508082111561347057600080fd5b5061347d888289016133d8565b9094509250613490905060408701612faf565b90509295509295909350565b600060e082840312156134ae57600080fd5b60405160e081018181106001600160401b03821117156134d0576134d0612f1f565b6040529050806134df83612faf565b8152602083013560208201526134f760408401612faf565b604082015261350860608401612faf565b60608201526080830135608082015260a083013560a082015261352d60c08401612faf565b60c08201525092915050565b6000806000806000610180868803121561355257600080fd5b61355c878761349c565b945060e08601356001600160401b0381111561357757600080fd5b613583888289016131ff565b909550935061359790506101008701612faf565b915061349087610120880161325e565b600080602083850312156135ba57600080fd5b82356001600160401b038111156135d057600080fd5b6135dc858286016133d8565b90969095509350505050565b60008060008060006080868803121561360057600080fd5b85356001600160401b038082111561361757600080fd5b61362389838a016130ac565b9650602088013591508082111561363957600080fd5b61364589838a01613153565b9550604088013591508082111561365b57600080fd5b50613668888289016131ff565b9094509250613490905060608701612faf565b60006020828403121561368d57600080fd5b5035919050565b6000806000806000806101a087890312156136ae57600080fd5b86356001600160401b03808211156136c557600080fd5b6136d18a838b01612fc6565b97506136e08a60208b0161349c565b96506101008901359150808211156136f757600080fd5b5061370489828a016131ff565b909550935061371890506101208801612faf565b915061372888610140890161325e565b90509295509295509295565b60006020828403121561374657600080fd5b6133d182612faf565b60008060008060008060e0878903121561376857600080fd5b86356001600160401b038082111561377f57600080fd5b61378b8a838b016130ac565b975060208901359150808211156137a157600080fd5b6137ad8a838b01613153565b965060408901359150808211156137c357600080fd5b506137d089828a016131ff565b90955093506137e3905060608801612faf565b9150613728886080890161325e565b634e487b7160e01b600052601160045260246000fd5b81810381811115612284576122846137f2565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561384357600080fd5b5051919050565b60006001820161385c5761385c6137f2565b5060010190565b6020808252600f908201526e57726f6e67206d73672e76616c756560881b604082015260600190565b600081518084526020808501945080840160005b838110156133b3576138c687835180516001600160a01b03168252602090810151910152565b60409690960195908201906001016138a0565b60005b838110156138f45781810151838201526020016138dc565b50506000910152565b600081518084526139158160208601602086016138d9565b601f01601f19169290920160200192915050565b60808152600060e082018651606060808501528181518084526101008601915060209350838301925060005b8181101561398e5761397b83855180516001600160a01b03168252602090810151910152565b9284019260409290920191600101613955565b50508289015160a0860152604089015160c0860152848103838601526139b4818961388c565b925050506139cd60408401866001600160a01b03169052565b82810360608401526115d681856138fd565b60608152836060820152838560808301376000608085830101526000601f19601f86011682016080838203016020840152613a1d6080820186613383565b91505060018060a01b038316604083015295945050505050565b60208082526017908201527f536c697070616765204c696d6974204578636565646564000000000000000000604082015260600190565b600081518084526020808501945080840160005b838110156133b35781516001600160a01b031687529582019590820190600101613a82565b6001600160a01b038a8116825261012060208301819052600091613acd8483018d613383565b91508382036040850152613ae1828c613a6e565b91508382036060850152613af5828b613383565b91508382036080850152613b09828a613a6e565b915083820360a0850152613b1d8289613383565b6001600160401b0397881660c08601529590961660e084015250509216610100909201919091529695505050505050565b6000610100613b7183885180516001600160a01b03168252602090810151910152565b6020870151604084015260408701516060840152613ba5608084018780516001600160a01b03168252602090810151910152565b6001600160a01b03851660c084015260e083018190526115d6818401856138fd565b600082613be457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417612284576122846137f2565b8181036000831280158383131683831282161715613c2057613c206137f2565b5092915050565b600060208284031215613c3957600080fd5b815180151581146133d157600080fd5b60008251613c5b8184602087016138d9565b9190910192915050565b6020815260006133d160208301846138fd56fea2646970667358221220ba44eb0325916ee8a9ad20434ed10e3c55d6b5dbcbeebc7d71a5d9e5d82486ad64736f6c63430008130033