0 txs
0 calls
constructor
constructor(address factory)
functions
getAumAnnualFee
viewfunction getAumAnnualFee() view returns (uint256 aumAnnualFee)
getBalances
viewfunction getBalances() view returns (uint256 amountX, uint256 amountY)
getFactory
viewfunction getFactory() view returns (address)
getIdleBalances
viewfunction getIdleBalances() view returns (uint256 amountX, uint256 amountY)
getLastRebalance
viewfunction getLastRebalance() view returns (uint256 lastRebalance)
getOperator
viewfunction getOperator() view returns (address operator)
getPair
purefunction getPair() pure returns (address)
getPendingAumAnnualFee
viewfunction getPendingAumAnnualFee() view returns (bool isSet, uint256 pendingAumAnnualFee)
getRange
viewfunction getRange() view returns (uint24 lower, uint24 upper)
getTokenX
purefunction getTokenX() pure returns (address)
getTokenY
purefunction getTokenY() pure returns (address)
getVault
purefunction getVault() pure returns (address)
initialize
nonpayablefunction initialize()
rebalance
nonpayablefunction rebalance(uint24 newLower, uint24 newUpper, uint24 desiredActiveId, uint24 slippageActiveId, uint256 amountX, uint256 amountY, bytes distributions)
resetPendingAumAnnualFee
nonpayablefunction resetPendingAumAnnualFee()
setOperator
nonpayablefunction setOperator(address operator)
setPendingAumAnnualFee
nonpayablefunction setPendingAumAnnualFee(uint16 pendingAumAnnualFee)
swap
nonpayablefunction swap(address executor, tuple desc, bytes data)
withdrawAll
nonpayablefunction withdrawAll()
events
AumAnnualFeeSet
event AumAnnualFeeSet(uint256 fee)
AumFeeCollected
event AumFeeCollected(address indexed sender, uint256 totalBalanceX, uint256 totalBalanceY, uint256 feeX, uint256 feeY)
Initialized
event Initialized(uint8 version)
OperatorSet
event OperatorSet(address operator)
PendingAumAnnualFeeReset
event PendingAumAnnualFeeReset()
PendingAumAnnualFeeSet
event PendingAumAnnualFeeSet(uint256 fee)
RangeSet
event RangeSet(uint24 low, uint24 upper)
errors
SafeCast__Exceeds24Bits
error SafeCast__Exceeds24Bits()
SafeCast__Exceeds64Bits
error SafeCast__Exceeds64Bits()
Strategy__ActiveIdSlippage
error Strategy__ActiveIdSlippage()
Strategy__InvalidAmount
error Strategy__InvalidAmount()
Strategy__InvalidFee
error Strategy__InvalidFee()
Strategy__InvalidLength
error Strategy__InvalidLength()
Strategy__InvalidRange
error Strategy__InvalidRange()
Strategy__InvalidReceiver
error Strategy__InvalidReceiver()
Strategy__InvalidToken
error Strategy__InvalidToken()
Strategy__OnlyFactory
error Strategy__OnlyFactory()
Strategy__OnlyOperators
error Strategy__OnlyOperators()
Strategy__OnlyVault
error Strategy__OnlyVault()
Strategy__RangeAlreadySet
error Strategy__RangeAlreadySet()
Strategy__RangeTooWide
error Strategy__RangeTooWide()
Strategy__ZeroAmounts
error Strategy__ZeroAmounts()
Uint256x256Math__MulDivOverflow
error Uint256x256Math__MulDivOverflow()
creation bytecode
0x60a06040523480156200001157600080fd5b506040516200306f3803806200306f833981016040819052620000349162000112565b6200003e62000050565b6001600160a01b031660805262000144565b600054610100900460ff1615620000bd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000110576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012557600080fd5b81516001600160a01b03811681146200013d57600080fd5b9392505050565b608051612ee56200018a600039600081816102440152818161034d015281816107d001528181610aad01528181610b5c01528181610c3601526113c60152612ee56000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063853828b6116100cd578063c1f1b1b511610081578063ddadbf8511610066578063ddadbf85146102e6578063e60d0603146102f9578063e7f43c681461030c57600080fd5b8063c1f1b1b5146102b6578063da10610c146102ce57600080fd5b80638d928af8116100b25780638d928af8146102685780639b85961f1461027d578063b3ab15fb146102a357600080fd5b8063853828b61461023a57806388cc58e41461024257600080fd5b80631c776443116101245780634259524811610109578063425952481461020c5780637942fd471461022a5780638129fc1c1461023257600080fd5b80631c776443146101c057806338acf5cc146101e057600080fd5b8062113e081461015557806305e8746d1461017757806307ed2379146101a357806314af68f6146101b8575b600080fd5b61015d61031d565b604080519283526020830191909152015b60405180910390f35b3660011981013560f01c90036028013560601c5b6040516001600160a01b03909116815260200161016e565b6101b66101b13660046126f9565b610335565b005b61015d6106c0565b6033546601000000000000900461ffff165b60405190815260200161016e565b60335460408051600160901b830460ff1615158152600160801b90920461ffff1660208301520161016e565b60335468010000000000000000900467ffffffffffffffff166101d2565b6101b66107c5565b6101b6610848565b6101b661096e565b7f000000000000000000000000000000000000000000000000000000000000000061018b565b3660011981013560f01c90033560601c61018b565b6033546040805162ffffff8084168252630100000090930490921660208301520161016e565b6101b66102b136600461276a565b610aa2565b3660011981013560f01c90036014013560601c61018b565b3660011981013560f01c9003603c013560601c61018b565b6101b66102f4366004612787565b610b51565b6101b66103073660046127bc565b610c1e565b6034546001600160a01b031661018b565b600080610328610d68565b915091509091565b905090565b6034546001600160a01b031633148015906103e357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b80ec4c76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd919061285d565b6001600160a01b0316336001600160a01b031614155b1561040157604051635f221be360e01b815260040160405180910390fd5b3660011981013560f01c90036028810135606090811c91603c0135901c8161042c602087018761276a565b6001600160a01b031614158061046357506001600160a01b038116610457604087016020880161276a565b6001600160a01b031614155b80156104b857506001600160a01b038116610481602087018761276a565b6001600160a01b03161415806104b857506001600160a01b0382166104ac604087016020880161276a565b6001600160a01b031614155b156104d657604051630bf8774960e11b815260040160405180910390fd5b306104e7608087016060880161276a565b6001600160a01b03161461050e576040516303d612f360e01b815260040160405180910390fd5b60808501351580610521575060a0850135155b1561053f576040516351d334b960e11b815260040160405180910390fd5b610579731111111254eeb25477b68fb85ed929f73a9605826080870135610569602089018961276a565b6001600160a01b03169190610ed8565b6040516312aa3caf60e01b8152731111111254eeb25477b68fb85ed929f73a960582906312aa3caf906105b69089908990899089906004016128ae565b60408051808303816000875af11580156105d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f8919061296f565b506106089050602086018661276a565b604051636eb1769f60e11b8152306004820152731111111254eeb25477b68fb85ed929f73a96058260248201526001600160a01b03919091169063dd62ed3e90604401602060405180830381865afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068c9190612993565b156106b8576106b8731111111254eeb25477b68fb85ed929f73a9605826000610569602089018961276a565b505050505050565b6000803660011981013560f01c90036028013560601c6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561071c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107409190612993565b91503660011981013560f01c9003603c013560601c6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bf9190612993565b90509091565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461080e5760405163086db41760e41b815260040160405180910390fd5b6033805462ffffff60801b191690556040517f65017c96fb2e34ce3e842b20d1416256e348013c42a2226a6e601c33ef08993890600090a1565b600054610100900460ff16158080156108685750600054600160ff909116105b806108825750303b158015610882575060005460ff166001145b6108f95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff19166001179055801561091c576000805461ff0019166101001790555b610924611059565b801561096b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50565b3660011981013560f01c90033560601c331461099d57604051631113e77360e21b815260040160405180910390fd5b60003660011981013560f01c90033560601c90506000806000806000610a47603360009054906101000a900462ffffff16603360039054906101000a900462ffffff16886001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190612993565b6110ce565b94509450945094509450610a5c8383836111b2565b610a8586863660011981013560f01c90036028013560601c5b6001600160a01b0316919061125d565b6106b886853660011981013560f01c9003603c013560601c610a75565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610aeb5760405163086db41760e41b815260040160405180910390fd5b603480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f99d737e0adf2c449d71890b86772885ec7959b152ddb265f76325b6e68e105d390602001610962565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b9a5760405163086db41760e41b815260040160405180910390fd5b6109c48161ffff161115610bc15760405163110d21b960e31b815260040160405180910390fd5b6033805461ffff8316600160801b0262ffffff60801b1990911617600160901b1790556040517f2064b6a31813c8de04af9c12dfbf6ba681b73d537a727b8105b0a148c67f92529061096290839061ffff91909116815260200190565b6034546001600160a01b03163314801590610ccc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b80ec4c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb6919061285d565b6001600160a01b0316336001600160a01b031614155b15610cea57604051635f221be360e01b815260040160405180910390fd5b6000806000610cf761128d565b925092509250610d088383836111b2565b50505060008662ffffff161180610d24575060008562ffffff16115b15610d5e576000610d37898989896116b8565b909a50985090506000610d4c8a8a86866117b8565b9050610d5b8a8a83898961191f565b50505b5050505050505050565b6000803660011981013560f01c90036028013560601c6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190612993565b91503660011981013560f01c9003603c013560601c6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e679190612993565b60335490915062ffffff8082169163010000009004168015610ed2576000610e8f8383611a2e565b9050600080610eb130843660011981013560f01c90036014013560601c611ada565b9092509050610ec082886129c2565b9650610ecc81876129c2565b95505050505b50509091565b801580610f525750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f509190612993565b155b610fc45760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016108f0565b6040516001600160a01b03831660248201526044810182905261105490849063095ea7b360e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611cd3565b505050565b600054610100900460ff166110c45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108f0565b6110cc611db8565b565b6000808080803660011981013560f01c90033560601c6001600160a01b031663cdaa70c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111459190612993565b92506000806111548a8a611e29565b915091508760001480611165575084155b6111845761117485838a612177565b61117f86838b612177565b611188565b6000805b909450925061119784836129da565b96506111a383826129da565b95505050939792965093509350565b8215611054573660011981013560f01c90033560601c82156111eb576111eb81843660011981013560f01c90036028013560601c610a75565b811561120e5761120e81833660011981013560f01c9003603c013560601c610a75565b806001600160a01b031663152c7c4e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561124957600080fd5b505af1158015610d5e573d6000803e3d6000fd5b6040516001600160a01b03831660248201526044810182905261105490849063a9059cbb60e01b90606401610ff0565b6033546000908190819062ffffff80821691630100000090041680156112b5576112b56121a3565b60008061130a84843660011981013560f01c90033560601c6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b919a5098509650909250905061132086836129c2565b915061132c85826129c2565b60335490915068010000000000000000900467ffffffffffffffff16611351426121ed565b6033805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff00000000000000001990921691909117905582158015611394575081155b156113a3575050505050909192565b42811015611600576033546601000000000000900461ffff1680156115fe5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611422573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611446919061285d565b9050600061145484426129da565b9050620151808111611466578061146b565b620151805b9050600061147f6127106301e133806129f1565b60016114916127106301e133806129f1565b61149b91906129da565b836114a6878b6129f1565b6114b091906129f1565b6114ba91906129c2565b6114c49190612a26565b905060006114d86127106301e133806129f1565b60016114ea6127106301e133806129f1565b6114f491906129da565b846114ff888b6129f1565b61150991906129f1565b61151391906129c2565b61151d9190612a26565b90508115611567578b1561154557611536828d8a61221d565b611540908d6129da565b611548565b60005b9b5061156784833660011981013560f01c90036028013560601c610a75565b80156115af578a1561158d5761157e818c8961221d565b611588908c6129da565b611590565b60005b9a506115af84823660011981013560f01c9003603c013560601c610a75565b60408051898152602081018990529081018390526060810182905233907fcc4d0ce3fb359c34f6da690da32e14d8729b5d9e5083ffaef1a594d6354e36c99060800160405180910390a2505050505b505b603354600160901b900460ff16156116ae5760338054660100000000000061ffff600160801b7fffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff841604169081027fffffffffffffffffffffffffff000000ffffffffffffffff0000ffffffffffff909216919091179091556040518181527f75178673635c82410fa05203e5542e564d3a100f7cce424742b38b8cfe6f3ad69060200160405180910390a1505b5050505050909192565b60008060006116c5612255565b92508262ffffff168562ffffff16146117af5760008362ffffff168662ffffff1611156117325783860390508062ffffff168862ffffff161161170957600061170d565b8088035b97508062ffffff168762ffffff161161172757600061172b565b8087035b9650611782565b85840390508062ffffff0362ffffff168862ffffff16116117555780880161175a565b62ffffff5b97508062ffffff0362ffffff168762ffffff161161177a5780870161177f565b62ffffff5b96505b8462ffffff168162ffffff1611156117ad576040516324efa8d560e01b815260040160405180910390fd5b505b50909592505050565b606062ffffff841615806117d557508362ffffff168562ffffff16115b156117f35760405163015115b160e51b815260040160405180910390fd5b60106117ff8686612a48565b61180a906001612a6c565b62ffffff1661181991906129f1565b821461183857604051631acaa1bd60e21b815260040160405180910390fd5b6000611845601084612a26565b90508067ffffffffffffffff81111561186057611860612a93565b604051908082528060200260200182016040528015611889578160200160208202803683370190505b5091506000805b828110156119145760006118a4828a612a6c565b905060008784886118b66010836129c2565b96506118c59287929190612aa9565b6118ce91612ad3565b608081901c91506118e39060c01c82846122cb565b8684815181106118f5576118f5612b0a565b60200260200101818152505050508061190d90612b20565b9050611890565b505050949350505050565b6119298585612305565b81158015611935575080155b1561195357604051637d18bb5560e11b815260040160405180910390fd5b3660011981013560f01c90036014013560601c82156119895761198981843660011981013560f01c90036028013560601c610a75565b81156119ac576119ac81833660011981013560f01c9003603c013560601c610a75565b60405163383d15c560e01b81526001600160a01b0382169063383d15c5906119dc90309088908290600401612b3b565b6000604051808303816000875af11580156119fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a239190810190612bf4565b505050505050505050565b60606000611a3c8484612a48565b611a47906001612a6c565b62ffffff1690508067ffffffffffffffff811115611a6757611a67612a93565b604051908082528060200260200182016040528015611a90578160200160208202803683370190505b50915060005b81811015611ad257611aad8162ffffff87166129c2565b838281518110611abf57611abf612b0a565b6020908102919091010152600101611a96565b505092915050565b60008060005b8451811015611cca576000611b0d868381518110611b0057611b00612b0a565b602002602001015161240d565b604051627eeac760e11b81526001600160a01b03898116600483015262ffffff8316602483015291925060009187169062fdd58e90604401602060405180830381865afa158015611b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b869190612993565b604051630157d2d160e31b815262ffffff8416600482015290915060009081906001600160a01b03891690630abe9688906024016040805180830381865afa158015611bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfa9190612cbf565b60405163bd85b03960e01b815262ffffff871660048201526fffffffffffffffffffffffffffffffff9283169450911691506000906001600160a01b038a169063bd85b03990602401602060405180830381865afa158015611c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c849190612993565b9050611c91848483612177565b611c9b90896129c2565b9750611ca8848383612177565b611cb290886129c2565b9650505050505080611cc390612b20565b9050611ae0565b50935093915050565b6000611d28826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166124339092919063ffffffff16565b8051909150156110545780806020019051810190611d469190612cf2565b6110545760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016108f0565b600054610100900460ff16611e235760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108f0565b60018055565b600080803660011981013560f01c90036014013560601c81611e4b8787612a48565b611e56906001612a6c565b62ffffff16905060008167ffffffffffffffff811115611e7857611e78612a93565b604051908082528060200260200182016040528015611ea1578160200160208202803683370190505b50905060008267ffffffffffffffff811115611ebf57611ebf612a93565b604051908082528060200260200182016040528015611ee8578160200160208202803683370190505b50905062ffffff881615611fde5760005b83811015611fdc576000611f128262ffffff8d166129c2565b604051627eeac760e11b8152306004820152602481018290529091506000906001600160a01b0388169062fdd58e90604401602060405180830381865afa158015611f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f859190612993565b90508015611fd25781858981518110611fa057611fa0612b0a565b60200260200101818152505080848981518110611fbf57611fbf612b0a565b6020026020010181815250508760010197505b5050600101611ef9565b505b841561206d57828514611ff2578482528481525b6040516364c9cfaf60e11b81526001600160a01b0385169063c9939f5e90612024903090819087908790600401612d4f565b6000604051808303816000875af1158015612043573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261206b9190810190612d8d565b505b3660011981013560f01c90036028013560601c6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156120c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ea9190612993565b96503660011981013560f01c9003603c013560601c6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015612145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121699190612993565b955050505050509250929050565b60008060006121868686612442565b915091506121978686868585612461565b925050505b9392505050565b6033805465ffffffffffff1916905560408051600080825260208201527f0fa64089316a7879b6119aa6033906b96b944fd423d71b96b5f904a187b67d29910160405180910390a1565b8067ffffffffffffffff811681146122185760405163cc21feb960e01b815260040160405180910390fd5b919050565b600061222a848484612177565b9050818061223a5761223a612a10565b8385091561219c5761224d6001826129c2565b949350505050565b60003660011981013560f01c90036014013560601c6001600160a01b031663dbe65edc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103309190612e13565b601882901b6affffffffffffffff00000016605884901b72ffffffffffffffff0000000000000000000000161762ffffff8216811761224d565b62ffffff8116158061232057508062ffffff168262ffffff16115b1561233e5760405163015115b160e51b815260040160405180910390fd5b603361234a8383612a48565b612355906001612a6c565b62ffffff16111561237957604051630511ddab60e11b815260040160405180910390fd5b6033546301000000900462ffffff1680156123a7576040516308f39ea160e41b815260040160405180910390fd5b6033805462ffffff85811665ffffffffffff1990921682176301000000918616918202179092556040805191825260208201929092527f0fa64089316a7879b6119aa6033906b96b944fd423d71b96b5f904a187b67d29910160405180910390a1505050565b8062ffffff8116811461221857604051639b63641560e01b815260040160405180910390fd5b606061224d848460008561250e565b6000806000198385098385029250828110838203039150509250929050565b60008161247f5783838161247757612477612a10565b049050612505565b83821061249f576040516313eae71560e01b815260040160405180910390fd5b60008486880960018619810187169687900496600081900381900490910186831190950394850291909503949094049390931792505060026003840281188085028203028085028203028085028203028085028203028085028203028085029091030282025b95945050505050565b6060824710156125865760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016108f0565b600080866001600160a01b031685876040516125a29190612e60565b60006040518083038185875af1925050503d80600081146125df576040519150601f19603f3d011682016040523d82523d6000602084013e6125e4565b606091505b50915091506125f587838387612600565b979650505050505050565b6060831561266c578251612665576001600160a01b0385163b6126655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108f0565b508161224d565b61224d83838151156126815781518083602001fd5b8060405162461bcd60e51b81526004016108f09190612e7c565b6001600160a01b038116811461096b57600080fd5b60008083601f8401126126c257600080fd5b50813567ffffffffffffffff8111156126da57600080fd5b6020830191508360208285010111156126f257600080fd5b9250929050565b60008060008084860361012081121561271157600080fd5b853561271c8161269b565b945060e0601f198201121561273057600080fd5b5060208501925061010085013567ffffffffffffffff81111561275257600080fd5b61275e878288016126b0565b95989497509550505050565b60006020828403121561277c57600080fd5b813561219c8161269b565b60006020828403121561279957600080fd5b813561ffff8116811461219c57600080fd5b62ffffff8116811461096b57600080fd5b60008060008060008060008060e0898b0312156127d857600080fd5b88356127e3816127ab565b975060208901356127f3816127ab565b96506040890135612803816127ab565b95506060890135612813816127ab565b94506080890135935060a0890135925060c089013567ffffffffffffffff81111561283d57600080fd5b6128498b828c016126b0565b999c989b5096995094979396929594505050565b60006020828403121561286f57600080fd5b815161219c8161269b565b80356122188161269b565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101406001600160a01b03808816845286356128cb8161269b565b81811660208601525060208701356128e28161269b565b166040848101919091528601356128f88161269b565b6001600160a01b0381166060850152506129146060870161287a565b6001600160a01b038116608085015250608086013560a084015260a086013560c084015260c086013560e0840152806101008401526129598184016000815260200190565b90508281036101208401526125f5818587612885565b6000806040838503121561298257600080fd5b505080516020909101519092909150565b6000602082840312156129a557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156129d5576129d56129ac565b500190565b6000828210156129ec576129ec6129ac565b500390565b6000816000190483118215151615612a0b57612a0b6129ac565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612a4357634e487b7160e01b600052601260045260246000fd5b500490565b600062ffffff83811690831681811015612a6457612a646129ac565b039392505050565b600062ffffff808316818516808303821115612a8a57612a8a6129ac565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b60008085851115612ab957600080fd5b83861115612ac657600080fd5b5050820193919092039150565b6fffffffffffffffffffffffffffffffff198135818116916010851015611ad25760109490940360031b84901b1690921692915050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612b3457612b346129ac565b5060010190565b6000606082016001600160a01b0380871684526020606081860152828751808552608087019150828901945060005b81811015612b8657855183529483019491830191600101612b6a565b5050809450505080851660408501525050949350505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bc857612bc8612a93565b604052919050565b600067ffffffffffffffff821115612bea57612bea612a93565b5060051b60200190565b600080600060608486031215612c0957600080fd5b835192506020808501519250604085015167ffffffffffffffff811115612c2f57600080fd5b8501601f81018713612c4057600080fd5b8051612c53612c4e82612bd0565b612b9f565b81815260059190911b82018301908381019089831115612c7257600080fd5b928401925b82841015612c9057835182529284019290840190612c77565b80955050505050509250925092565b80516fffffffffffffffffffffffffffffffff8116811461221857600080fd5b60008060408385031215612cd257600080fd5b612cdb83612c9f565b9150612ce960208401612c9f565b90509250929050565b600060208284031215612d0457600080fd5b8151801515811461219c57600080fd5b600081518084526020808501945080840160005b83811015612d4457815187529582019590820190600101612d28565b509495945050505050565b60006001600160a01b03808716835280861660208401525060806040830152612d7b6080830185612d14565b82810360608401526125f58185612d14565b60006020808385031215612da057600080fd5b825167ffffffffffffffff811115612db757600080fd5b8301601f81018513612dc857600080fd5b8051612dd6612c4e82612bd0565b81815260059190911b82018301908381019087831115612df557600080fd5b928401925b828410156125f557835182529284019290840190612dfa565b600060208284031215612e2557600080fd5b815161219c816127ab565b60005b83811015612e4b578181015183820152602001612e33565b83811115612e5a576000848401525b50505050565b60008251612e72818460208701612e30565b9190910192915050565b6020815260008251806020840152612e9b816040850160208701612e30565b601f01601f1916919091016040019291505056fea2646970667358221220cbbd3e98e7a312d5adceb68b9b4e7cc27cab3ceb8e5d6495d91d5d542b6d755e64736f6c634300080a00330000000000000000000000008cce20d17ab9c6f60574e678ca96711d907fd08c