1 tx
2 calls
constructor
No constructor.
functions
getSalt
viewfunction getSalt(address factory, address weth, address vieVault, address positionManager, address poolManager, address platformFeeRecipient, address permit2, uint256 initialSalt) view returns (address hookAddress, bytes32 salt)
deployHook
nonpayablefunction deployHook(address factory, address weth, address vieVault, address positionManager, address poolManager, address platformFeeRecipient, address permit2, bytes32 salt, address expectedAddress) returns (address hookAddress)
events
HookDeployed
event HookDeployed(address indexed hookAddress, bytes32 salt, uint160 flags)
errors
No errors.
creation bytecode
0x608080604052346015576132fc908161001b8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806389ef74c7146100375763e9f1f83d1461003257600080fd5b610170565b346100ba576101203660031901126100ba576100b661009c6100576100bf565b61005f6100d5565b906100686100eb565b610070610101565b610078610117565b61008061012d565b91610089610143565b93610092610159565b9660e4359661033e565b6040516001600160a01b0390911681529081906020820190565b0390f35b600080fd5b600435906001600160a01b03821682036100ba57565b602435906001600160a01b03821682036100ba57565b604435906001600160a01b03821682036100ba57565b606435906001600160a01b03821682036100ba57565b608435906001600160a01b03821682036100ba57565b60a435906001600160a01b03821682036100ba57565b60c435906001600160a01b03821682036100ba57565b61010435906001600160a01b03821682036100ba57565b346100ba576101003660031901126100ba5761020c61018d6100bf565b6101e36101986100d5565b916101d56101a46100eb565b6101ac610101565b6101b4610117565b6101bc61012d565b916101c5610143565b9360405198899760208901610229565b03601f19810183528261026c565b60405190612cda6101f7602082018461026c565b8083526105ed602084013960e43591306104e4565b604080516001600160a01b03939093168352602083019190915290f35b6001600160a01b039182168152918116602083015291821660408201529181166060830152918216608082015291811660a083015290911660c082015260e00190565b90601f8019910116810190811067ffffffffffffffff82111761028e57604052565b634e487b7160e01b600052604160045260246000fd5b906102b2604051928361026c565b565b9081519160005b8381106102cc575050016000815290565b80602080928401015181850152016102bb565b156102e657565b60405162461bcd60e51b815260206004820152602a60248201527f566965546f6b656e506f6f6c486f6f6b4465706c6f7965723a206164647265736044820152690e640dad2e6dac2e8c6d60b31b6064820152608490fd5b6103bd9161038e6103c3926101d57f39d0525d520cafd00870e463ca998fd15b74fbe5bac80182dba27b4ec4c3f64e9a6104059a6103d49a8e9f9e999a6103c89b60405198899760208901610229565b6101d5612cda916103a1602084016102a4565b928084526105ed602085013960405194859360208501906102b4565b906102b4565b61040b565b6001600160a01b031690565b936001600160a01b03808616946103ed911685146102df565b60408051918252612840602083015290918291820190565b0390a290565b6020815191016000f5906001600160a01b0382161561046557813b1561042d57565b60405162461bcd60e51b815260206004820152601060248201526f435245415445323a206e6f20636f646560801b6044820152606490fd5b60405162461bcd60e51b815260206004820152602b60248201527f566965546f6b656e506f6f6c486f6f6b4465706c6f7965723a206465706c6f7960448201526a1b595b9d0819985a5b195960aa1b6064820152608490fd5b90620272bc82018092116104ce57565b634e487b7160e01b600052601160045260246000fd5b916103bd916101d56105039296959660405194859360208501906102b4565b835b61050e856104be565b81101561054d57610520828285610592565b612840613fff82161480610544575b61053c5750600101610505565b945092915050565b50803b1561052f565b60405162461bcd60e51b815260206004820152601e60248201527f486f6f6b4d696e65723a20636f756c64206e6f742066696e642073616c7400006044820152606490fd5b90916020815191012060405192602084019260ff60f81b84526bffffffffffffffffffffffff199060601b16602185015260358401526055830152605582526105dc60758361026c565b905190206001600160a01b03169056fe60e0604052346103da57604051601f612cda38819003918201601f19168301916001600160401b038311848410176103df5780849260e0946040528339810103126103da5761004d81610415565b9061005a60208201610415565b9061006760408201610415565b61007360608301610415565b9061008060808401610415565b9361009960c061009260a08701610415565b9501610415565b6001600160a01b0390951660805260006101a06100b46103f5565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152015260006101a06101136103f5565b60018152826020820152600160408201528260608201528260808201528260a08201528260c0820152600160e082015282610100820152826101208201528261014082015282610160820152826101808201520152612000301615156001148015906103cd575b80156103bc575b80156103af575b80156103a2575b8015610395575b8015610389575b8015610379575b801561036d575b8015610361575b8015610355575b8015610349575b801561033d575b8015610331575b61031c5733156103065760008054336001600160a01b0319821681178355604051989290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36001805560c0526001600160a01b0390811660a052600380546001600160a01b031990811693831693909317905560048054831693821693909317909255611388600255600680548216938316939093179092556005805490921692169190911790556128b0908161042a823960805181818161023e015281816102be0152818161030e015281816107d101528181611036015281816116a30152818161194701528181611a2401528181611bee0152611d33015260a05181818161041501528181610dc1015281816110920152611aaf015260c0518181816103b10152610fae0152f35b631e4fbdf760e01b600052600060045260246000fd5b630732d7b560e51b6000523060045260246000fd5b506001301615156101ce565b506002301615156101c7565b506004301615156101c0565b506008301615156101b9565b506010301615156101b2565b506020301615156101ab565b50604030161515600114156101a4565b5060803016151561019d565b5061010030161515610196565b506102003016151561018f565b5061040030161515610188565b506108003016151560011415610181565b506110003016151561017a565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604051906101c082016001600160401b038111838210176103df57604052565b51906001600160a01b03821682036103da5756fe608080604052600436101561001357600080fd5b600090813560e01c90816312261ee714611db6575080631871e24314611d7157806321d0ee7014611d1c578063259982e514611bd75780632f0b52f014611b9257806331e2f92914611b69578063368af48814611ade5780633fc8cef314611a9957806354df0e1514611a5e578063575e24b4146119c95780636b1972441461199f5780636b26d36f146119815780636c2bbe7e1461168c5780636fe7e6eb14611908578063715018a6146118ae578063791b98bc146118855780638da5cb5b1461185e5780639456fbcc1461174957806399e80442146116e35780639f063efc1461168c578063a1773d7e14611659578063b47b2fb114610fdd578063b6a8b0fa14610227578063c45a015514610f98578063c4e833ce14610e30578063c4e9e4dc1461033d578063dc4c90d3146102f8578063dc98354e14610289578063e1b4af6914610227578063eb13554f146101fe5763f2fde38b1461017657600080fd5b346101fb5760203660031901126101fb5761018f611ddb565b6101976121a3565b6001600160a01b031680156101e75781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b80fd5b50346101fb57806003193601126101fb576006546040516001600160a01b039091168152602090f35b50346101fb5760049061023936611f3d565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061027d91505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346101fb5760e03660031901126101fb576102a3611ddb565b5060a03660231901126101fb576004906102bb611f17565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361027d57630636a15760e11b8152fd5b50346101fb57806003193601126101fb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101fb5760803660031901126101fb57610357611ddb565b602435906044356001600160a01b03811690819003610c2857606435916001600160a01b03831690818403610e2c578560806040516103958161200b565b82815260208101839052604081018390526060810183905201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610e1d576401000276a382108015610e00575b610df1576001600160a01b03169283158015610dbe575b610daf578215610da057604051947f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691906104488761200b565b858752602087019383855261271060408901526064606089015230608089015260a0882092838a52600860205260018060a01b0360408b20541615801590610d8b575b610d7c5773fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611610d685760201b640100000000600160c01b0316808015610d645760ff826001600160801b031060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c821060031b177f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be85831c1c601f161a1716916080831015600014610d585750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c6780000000000000001690607f190160401b1717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa919810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b908181146000149261072793610d3457509050612221565b938460020b94620d899f198612610d2557906107448a9392612260565b96610751620d89a0612260565b6001600160a01b03808a16999185918390829081168d11610d1a575b506001600160a01b0384168c11610cbb5750610788926126ae565b905b8585526008602052604080862080546001600160a01b0319169092179091555163313b65df60e11b81526107c1600482018c611f95565b60a4810189905260208160c481887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610cb057610c6d575b506109389161087a6108c38c6108b58b61081e612061565b604051600160f91b6020820152600d60f81b602182015260028152909a90976001600160801b039061085160228b612027565b604051933060208601526020855261086a604086612027565b6040519889976020890190611f95565b60c0870152620d89a060e0870152166101008501528961012085015261014084015230610160840152610180808401526101a083019061209c565b03601f198101835282612027565b6108cc866120dd565b526108d6856120dd565b508a519051604080516001600160a01b03938416602082015292909116828201528152610904606082612027565b61090d85612100565b5261091784612100565b5061092a60405194859260208401612130565b03601f198101845283612027565b60055460405163095ea7b360e01b81526001600160a01b039091166004820152602481018290526020816044818d8c5af18015610b9457610c40575b506005546004544260018101926001600160a01b039081169216908310610c2c57908b9291813b15610c285760848b85809465ffffffffffff60405197889687956387517c4560e01b87526004870152602486015260018060a01b038b1660448601521660648401525af18015610c1d57610c04575b50506040516370a0823160e01b81523060048201526020816024818b5afa908115610b94578a91610bd2575b5010610b9f5760018060a01b036004541660405191631d5e528f60e21b8352602083600481855afa928315610b94578a93610b5b575b506014420191824211610b475790818b923b15610b4357610a8c918360405180968195829463dd46508f60e01b845260406004850152604484019061209c565b90602483015203925af18015610b3857610b1f575b50918160e09593897fd076a429c8ac3a91c7a30ef4744d6b4ac059a408af71bf4b9d8131ed0251685a98969460a09b5260096020528160408220558281526007602052604043912055604051958652602086015260408501526060840152608083015260648683015260c0820152a1610b1d6040518092611f95565bf35b610b2a898092612027565b610b345738610aa1565b8780fd5b6040513d8b823e3d90fd5b8280fd5b634e487b7160e01b8b52601160045260248bfd5b9092506020813d602011610b8c575b81610b7760209383612027565b81010312610b8757519138610a4c565b600080fd5b3d9150610b6a565b6040513d8c823e3d90fd5b60405162461bcd60e51b815260206004820152600b60248201526a1d5b99195c999d5b99195960aa1b6044820152606490fd5b90506020813d602011610bfc575b81610bed60209383612027565b81010312610b87575138610a16565b3d9150610be0565b81610c0e91612027565b610c195788386109ea565b8880fd5b6040513d84823e3d90fd5b8380fd5b634e487b7160e01b8c52601160045260248cfd5b610c619060203d602011610c66575b610c598183612027565b810190612049565b610974565b503d610c4f565b6020813d602011610ca8575b81610c8660209383612027565b81010312610ca45751918260020b8303610ca4579150610938610806565b8480fd5b3d9150610c79565b6040513d87823e3d90fd5b91906001600160a01b0381168c1015610d0e578291610cdd91610ce3946126ae565b92612675565b6001600160801b0381166001600160801b03831610600014610d0757505b9061078a565b9050610d01565b915050610d0191612675565b93509050803861076d565b631eebd15d60e11b8a5260048afd5b6001600160a01b03610d4584612260565b1611610d515750612221565b9050612221565b905081607f031b610564565b8a80fd5b6318521d4960e21b8a52600482905260248afd5b630188c99160e11b8a5260048afd5b50838a52600760205260408a2054151561048b565b630842278560e41b8652600486fd5b63c9ca01c960e01b8652600486fd5b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316841015610405565b631eebd15d60e11b8652600486fd5b5073fffd8963efd1fc6a506488495d951d5263988d2682116103ee565b630636a15760e11b8652600486fd5b8580fd5b50346101fb57806003193601126101fb576020816101c0926101a0604051610e5781611fd8565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152015280604051610eb581611fd8565b600181528381018281526040820160018152606083018481526080840185815260a0850186815260c086019087825260e0870192600184526101008801948986526101208901968a88526101408a01988b8a526101a06101608c019b8d8d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346101fb57806003193601126101fb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101fb576101603660031901126101fb57610ff8611ddb565b5060a03660231901126101fb5760603660c31901126101fb576101443567ffffffffffffffff81116115fb57611032903690600401611e1b565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361164a576024356001600160a01b03811690818103610b4357506044356001600160a01b03811690818103610c2857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316810361163b57604051600160f81b6020820152601160f81b6021820152600281526110e6602282612027565b60a06110f136612591565b20845260096020526040842054611106612061565b9061114c6040519187835261111c602084612027565b6108b5604051938492602084015289604084015289606084015289608084015260a08084015260c083019061209c565b611155826120dd565b5261115f816120dd565b5060018060a01b03600354169160405185602082015284604082015283606082015260608152611190608082612027565b61119983612100565b526111a382612100565b5085604051926370a0823160e01b84528460048501526020846024818a5afa938415610c1d578294611607575b50604051946370a0823160e01b86526004860152602085602481895afa948515610c1d5782956115cf575b506004546001600160a01b0316803b15610b435761123093836040518096819582946312bf8e4f60e21b845260048401612130565b03925af180156115c4576115b0575b506003546040516370a0823160e01b81526001600160a01b039091166004820181905291602082602481895afa801561157157879061157c575b6112839250612618565b6040516370a0823160e01b8152600481018390529092602082602481885afa801561157157879061153d575b6112b99250612618565b91859086938790889280611518575b50806114f3575b5060a06112db36612591565b2088526008602052604080892054905160a09590916001600160a01b03166113038784612027565b60048352601f19870190813660208601376040516113218982612027565b60048152823660208301376040519161133a8a84612027565b60048352602083019336853780611350876120dd565b5261135a86612100565b526006546001600160a01b03168061137187612110565b5261137b86612120565b528b611386826120dd565b528a61139182612100565b528b61139c82612110565b528a6113a782612120565b52856113b2836120dd565b52866113bd83612100565b52876113c883612110565b52896113d383612120565b52833b156114ef57918c9391602061141c61140a9795604051988997633f56e73960e01b8952606060048a01526064890190612638565b87810360031901602489015290612638565b858103600319016044870152915180835291019190855b8181106114d3575050508383809203925af18015610b38576114be575b6040897f379fa903bb838c8be613d6e5f4b9535474278e82ebaeb4d6e4d01f499416ba6760e08b8b8b8b8b8b8b8361148736612591565b20958b5197885260208801528a8701526060860152608085015283015260c0820152a181519063b47b2fb160e01b82526020820152f35b6114c9898092612027565b610b345738611450565b825184528f965087955060209384019390920191600101611433565b8c80fd5b9450905061151161271061150960025487612625565b048095612618565b90386112cf565b9350905061153661271061152e60025486612625565b048094612618565b90386112c8565b506020823d602011611569575b8161155760209383612027565b81010312610b87576112b991516112af565b3d915061154a565b6040513d89823e3d90fd5b506020823d6020116115a8575b8161159660209383612027565b81010312610b87576112839151611279565b3d9150611589565b856115bd91969296612027565b933861123f565b6040513d88823e3d90fd5b9094506020813d6020116115ff575b816115eb60209383612027565b810103126115fb575193386111fb565b5080fd5b3d91506115de565b9093506020813d602011611633575b8161162360209383612027565b810103126115fb575192386111d0565b3d9150611616565b630470eda760e51b8352600483fd5b63570c108560e11b8152600490fd5b50346101fb5760203660031901126101fb57602090600435815260088252604060018060a01b0391205416604051908152f35b50346101fb5760049061169e36611ead565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303935061027d9250505057630a85dc2960e01b8152fd5b50346101fb5760203660031901126101fb5780808080611701611ddb565b6117096121a3565b6117116121cc565b47908290821561173f575b6001600160a01b031690f115611733576001805580f35b604051903d90823e3d90fd5b6108fc915061171c565b50346101fb5760403660031901126101fb57611763611ddb565b61176b611df1565b906117746121a3565b61177c6121cc565b6040516370a0823160e01b81523060048201526001600160a01b039190911691602082602481865afa91821561185357849261181d575b5060405163a9059cbb60e01b81526001600160a01b0390911660048201526024810191909152906020908290818581604481015b03925af18015610c1d576117fe575b506001805580f35b6118169060203d602011610c6657610c598183612027565b50386117f6565b91506020823d60201161184b575b8161183860209383612027565b81010312610c28579051906117e76117b3565b3d915061182b565b6040513d86823e3d90fd5b50346101fb57806003193601126101fb57546040516001600160a01b039091168152602090f35b50346101fb57806003193601126101fb576004546040516001600160a01b039091168152602090f35b50346101fb57806003193601126101fb576118c76121a3565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101fb576101003660031901126101fb57611923611ddb565b5060a03660231901126101fb5760049061193b611f17565b50611944611f2d565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361027d57630a85dc2960e01b8152fd5b50346101fb57806003193601126101fb576020600254604051908152f35b50346101fb5760203660031901126101fb5760406020916004358152600983522054604051908152f35b50346101fb576101403660031901126101fb576119e4611ddb565b5060a03660231901126101fb5760603660c31901126101fb576101243567ffffffffffffffff81116115fb5790611a2060049236908401611e1b565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361027d57630a85dc2960e01b8152fd5b50346101fb5760203660031901126101fb57600435611a7b6121a3565b6127108111611a8a5760025580f35b6334f7e3f360e01b8252600482fd5b50346101fb57806003193601126101fb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101fb5760403660031901126101fb57600435611afb611df1565b818352600860205260408320549091906001600160a01b03168015611b5a573303611b4b57825260086020526040822080546001600160a01b0319166001600160a01b0390921691909117905580f35b634fd5decd60e01b8352600483fd5b63586dc50d60e01b8452600484fd5b50346101fb57806003193601126101fb576003546040516001600160a01b039091168152602090f35b50346101fb5760203660031901126101fb57611bac611ddb565b611bb46121a3565b60018060a01b03166bffffffffffffffffffffffff60a01b600354161760035580f35b50346101fb57611be636611e49565b5091925050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303611d0d5760a0813603126115fb5760405190611c338261200b565b611c3c81611e07565b8252611c4a60208201611e07565b6020830152604081013562ffffff81168103610c285760408301526060810135908160020b8203610c2857606083019190915260800135906001600160a01b0382168203610b435760a0916080820152208082526007602052604082205415159081611cd7575b50611cc85760405163259982e560e01b8152602090f35b636f47a98b60e11b8152600490fd5b905081526007602052604081205460028101809111611cf95743111538611cb1565b634e487b7160e01b82526011600452602482fd5b63570c108560e11b8252600482fd5b50346101fb57600490611d2e36611e49565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303915061027d905057630a85dc2960e01b8152fd5b50346101fb5760203660031901126101fb57611d8b611ddb565b611d936121a3565b60018060a01b03166bffffffffffffffffffffffff60a01b600654161760065580f35b9050346115fb57816003193601126115fb576005546001600160a01b03168152602090f35b600435906001600160a01b0382168203610b8757565b602435906001600160a01b0382168203610b8757565b35906001600160a01b0382168203610b8757565b9181601f84011215610b875782359167ffffffffffffffff8311610b875760208381860195010111610b8757565b90610160600319830112610b87576004356001600160a01b0381168103610b87579160a0602319820112610b8757602491608060c319830112610b875760c491610144359067ffffffffffffffff8211610b8757611ea991600401611e1b565b9091565b906101a0600319830112610b87576004356001600160a01b0381168103610b87579160a0602319820112610b8757602491608060c319830112610b875760c49161014435916101643591610184359067ffffffffffffffff8211610b8757611ea991600401611e1b565b60c435906001600160a01b0382168203610b8757565b60e435908160020b8203610b8757565b610120600319820112610b87576004356001600160a01b0381168103610b87579160a0602319830112610b875760249160c4359160e43591610104359067ffffffffffffffff8211610b8757611ea991600401611e1b565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b6101c0810190811067ffffffffffffffff821117611ff557604052565b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff821117611ff557604052565b90601f8019910116810190811067ffffffffffffffff821117611ff557604052565b90816020910312610b8757518015158103610b875790565b604051606091906120728382612027565b6002815291601f19018260005b82811061208b57505050565b80606060208093850101520161207f565b919082519283825260005b8481106120c8575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016120a7565b8051156120ea5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156120ea5760400190565b8051600210156120ea5760600190565b8051600310156120ea5760800190565b906121439060408352604083019061209c565b906020818303910152815180825260208201916020808360051b8301019401926000915b83831061217657505050505090565b9091929394602080612194600193601f19868203018752895161209c565b97019301930191939290612167565b6000546001600160a01b031633036121b757565b63118cdaa760e01b6000523360045260246000fd5b6002600154146121dd576002600155565b633ee5aeb560e01b60005260046000fd5b600291820b910b0390627fffff198212627fffff83131761220b57565b634e487b7160e01b600052601160045260246000fd5b8060020b606481078060020b1561225b57612241600091612250946121ee565b911215612253576064906121ee565b90565b6000906121ee565b505090565b60020b908160ff1d82810118620d89e8811161257c5763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116612560575b60048116612544575b60088116612528575b6010811661250c575b602081166124f0575b604081166124d4575b608081166124b8575b610100811661249c575b6102008116612480575b6104008116612464575b6108008116612448575b611000811661242c575b6120008116612410575b61400081166123f4575b61800081166123d8575b6201000081166123bc575b6202000081166123a1575b620400008116612386575b620800001661236d575b600012612364575b0160201c90565b6000190461235d565b6b048a170391f7dc42444e8fa290910260801c90612355565b6d2216e584f5fa1ea926041bedfe9890920260801c9161234b565b916e5d6af8dedb81196699c329225ee6040260801c91612340565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91612335565b916f31be135f97d08fd981231505542fcfa60260801c9161232a565b916f70d869a156d2a1b890bb3df62baf32f70260801c91612320565b916fa9f746462d870fdf8a65dc1f90e061e50260801c91612316565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161230c565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91612302565b916ff3392b0822b70005940c7a398e4b70f30260801c916122f8565b916ff987a7253ac413176f2b074cf7815e540260801c916122ee565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916122e4565b916ffe5dee046a99a2a811c461f1969c30530260801c916122da565b916fff2ea16466c96a3843ec78b326b528610260801c916122d1565b916fff973b41fa98c081472e6896dfb254c00260801c916122c8565b916fffcb9843d60f6159c9db58835c9266440260801c916122bf565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916122b6565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916122ad565b916ffff97272373d413259a46990580e213a0260801c916122a4565b826345c3193d60e11b60005260045260246000fd5b60a0906023190112610b8757604051906125aa8261200b565b816024356001600160a01b0381168103610b875781526044356001600160a01b0381168103610b8757602082015260643562ffffff81168103610b875760408201526084358060020b8103610b8757606082015260a435906001600160a01b0382168203610b875760800152565b9190820391821161220b57565b8181029291811591840414171561220b57565b906020808351928381520192019060005b8181106126565750505090565b82516001600160a01b0316845260209384019390920191600101612649565b612250916126a3916001600160a01b03808316908216116126a8575b90036001600160a01b031660006126fb565b612855565b90612691565b612250926126a3929091906001600160a01b03808216908316116126f5575b6126e36001600160a01b03828116908416612788565b9190036001600160a01b0316916127d2565b906126cd565b90606082901b90600019600160601b840992828085109403938085039485841115610b875714612781578190600160601b9009818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5091500490565b818102919060001982820991838084109303928084039384600160601b1115610b8757146127c957600160601b910990828211900360a01b910360601c1790565b50505060601c90565b918183029160001981850993838086109503948086039586851115610b87571461284d5790829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b505091500490565b906001600160801b03821680920361286957565b6393dafdf160e01b60005260046000fdfea2646970667358221220bc24d7ac9db980007ab76e147249a34c4d220e8031215b67425b32099a0c38fb64736f6c634300081b0033a264697066735822122002568a1f6cd54af6058e0b4c36a8b005f1236ce904b5c495175eaf91968426da64736f6c634300081b0033