0 txs
20.5k calls
constructor
constructor()
functions
assetTokens
viewfunction assetTokens(uint256) view returns (address)
chain
viewfunction chain() view returns (string)
feeManagers
viewfunction feeManagers(uint256) view returns (address)
getAssetIDs
viewfunction getAssetIDs() view returns (uint256[])
hasAssetID
viewfunction hasAssetID(uint256 assetID) view returns (bool)
issuers
viewfunction issuers(uint256) view returns (address)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
rebalancers
viewfunction rebalancers(uint256) view returns (address)
swap
viewfunction swap() view returns (address)
swaps
viewfunction swaps(uint256) view returns (address)
tokenImpl
viewfunction tokenImpl() view returns (address)
tokenImpls
viewfunction tokenImpls(uint256) view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
vault
viewfunction vault() view returns (address)
createAssetToken
nonpayablefunction createAssetToken(tuple asset, uint256 maxFee, address issuer, address rebalancer, address feeManager, address swap_) returns (address)
initialize
nonpayablefunction initialize(address owner, address vault_, string chain_, address tokenImpl_)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeeManager
nonpayablefunction setFeeManager(uint256 assetID, address feeManager)
setIssuer
nonpayablefunction setIssuer(uint256 assetID, address issuer)
setRebalancer
nonpayablefunction setRebalancer(uint256 assetID, address rebalancer)
setSwap
nonpayablefunction setSwap(uint256 assetID, address swap_)
setTokenImpl
nonpayablefunction setTokenImpl(address tokenImpl_)
setVault
nonpayablefunction setVault(address vault_)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
upgradeTokenImpl
nonpayablefunction upgradeTokenImpl(uint256[] assetIDs_)
events
AssetTokenCreated
event AssetTokenCreated(address assetTokenAddress)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetFeeManager
event SetFeeManager(uint256 assetID, address oldFeeManager, address feeManager)
SetIssuer
event SetIssuer(uint256 assetID, address oldIssuer, address issuer)
SetRebalancer
event SetRebalancer(uint256 assetID, address oldRebalancer, address rebalancer)
SetSwap
event SetSwap(uint256 assetID, address oldSwap, address swap)
SetTokenImpl
event SetTokenImpl(address tokenImpl)
SetVault
event SetVault(address vault)
UpgradeAssetToken
event UpgradeAssetToken(uint256 assetID, address tokenImpl)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100c257306080525f516020612b4f5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051612a8890816100c7823960805181818161103e01526111150152f35b6001600160401b0319166001600160401b039081175f516020612b4f5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c8062a1818514611f80578063074b38ae14611cc857806309c26fb11461191f57806310f0251e14611658578063262610821461162357806328b03e0c1461156f57806348f4f06d146112e65780634f1ef286146110c55780634fa851351461109257806352d1902d1461102b57806361ec30c414610ff85780636817031b14610f83578063715018a614610f1a57806373bacc5b14610ee75780638119c06514610ebe5780638da5cb5b14610e895780639bececae14610ca7578063a5c6febe14610445578063a640937e14610412578063ad3cb1cc146103c9578063bc909e4a14610396578063c763e5a1146102c2578063e48070b3146101f6578063f09c5829146101c3578063f2fde38b14610196578063fbfa77cf1461016d5763ffc4992f14610142575f80fd5b3461016a578060031936011261016a576009546040516001600160a01b039091168152602090f35b80fd5b503461016a578060031936011261016a576007546040516001600160a01b039091168152602090f35b503461016a57602036600319011261016a576101c06101b3612273565b6101bb61260c565b61259b565b80f35b503461016a57602036600319011261016a576020906004358152600b8252604060018060a01b0391205416604051908152f35b503461016a57602036600319011261016a57610210612273565b61021861260c565b6001600160a01b031661022c8115156124b2565b6009546001600160a01b038116821461027d576001600160a01b03191681176009556040519081527f986da79689bb53f74931fd8b83e794e8aa526b9e6adf718394211939689f2c4f90602090a180f35b60405162461bcd60e51b815260206004820152601860248201527f746f6b656e20696d706c206973206e6f74206368616e676500000000000000006044820152606490fd5b503461016a578060031936011261016a576040519080600854906102e582612367565b808552916001811690811561036f5750600114610325575b6103218461030d8186038261229f565b604051918291602083526020830190612343565b0390f35b600881525f516020612a135f395f51905f52939250905b8082106103555750909150810160200161030d826102fd565b91926001816020925483858801015201910190929161033c565b60ff191660208087019190915292151560051b8501909201925061030d91508390506102fd565b503461016a57602036600319011261016a57602090600435815260058252604060018060a01b0391205416604051908152f35b503461016a578060031936011261016a57506103216040516103ec60408261229f565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612343565b503461016a57602036600319011261016a576020906004358152600a8252604060018060a01b0391205416604051908152f35b503461016a5760c036600319011261016a576004356001600160401b038111610a425760806003198236030112610a4257604051608081018181106001600160401b03821117610c93576040528160040135815260248201356001600160401b038111610a90576104bc9060043691850101612325565b916020820192835260448101356001600160401b038111610c8b576104e79060043691840101612325565b90604083019182526064810135906001600160401b038211610c8f57019236602385011215610c8b576004840135936001600160401b038511610c77578460051b906040519561053a602084018861229f565b865260208601918101602401903682116109c15760248101925b828410610b7a575050505060608301938452604435936001600160a01b03851680860361093757610583612289565b6084356001600160a01b03811694919391858203610b765760a435966001600160a01b0388168803610b72576105b761260c565b84151580610b60575b80610b57575b15610b1c576105e189515f52600160205260405f2054151590565b610ae85761065760018060a01b03600954169261063b8b51915193516106296040519586946312ee49ef60e11b6020870152602486015260a0604486015260c4850190612343565b83810360231901606485015290612343565b60243560848301523060a483015203601f19810183528261229f565b6040519161029d808401908482106001600160401b03831117610ad4579284939261068a928f9796946127368639612579565b039083f080156109da576040516320abbe8960e21b81526001600160a01b03919091169990602081600481878f5af1908115610ac9578491610a94575b508a3b15610a9057604051632f2ff15d60e01b815260048101919091526001600160a01b039190911660248201528281604481838e5af1908115610a22578391610a7b575b5060208a600460405180948193630921691f60e31b83525af1908115610a22578391610a46575b50893b156109e557604051632f2ff15d60e01b815260048101919091526001600160a01b03861660248201528281604481838e5af1908115610a22578391610a2d575b5060208a600460405180948193631ca54c9560e01b83525af1908115610a225783916109e9575b50893b156109e557604051632f2ff15d60e01b815260048101919091526001600160a01b039190911660248201528181604481838d5af180156109da576109c5575b505051863b156109c1578760405180926377cb640960e11b8252602482016020600484015281518091526044830190602060448260051b86010193019185905b828210610946575050505081900381838b5af1801561093b57610922575b508451875260026020908152604080892080546001600160a01b03199081166001600160a01b038b81169190911790925588518b5260038452828b208054821690951790945587518a5260048352818a20805485169582169590951790945586518952600582528089208054841690951790945560095486518952600a82528489208054841691851691909117905585518852600b8152929096208054909616921691909117909355516108f09061266a565b507f25cefe544d579b6c36fa9ccf9cff7fc6d488f3b869a09a400627d583aba9fdf482604051838152a1604051908152f35b61092d88809261229f565b610937575f61083d565b8680fd5b6040513d8a823e3d90fd5b9295509260019194506020809160431989820301855287519060808061099d61098b61097b865160a0875260a0870190612343565b8787015186820389880152612343565b60408601518582036040870152612343565b9360ff606082015116606085015201519101529601920192019285938d959361081f565b8780fd5b816109cf9161229f565b6109c157875f6107df565b6040513d84823e3d90fd5b8280fd5b9250506020823d602011610a1a575b81610a056020938361229f565b81010312610a16578991515f61079d565b5f80fd5b3d91506109f8565b6040513d85823e3d90fd5b81610a379161229f565b610a4257815f610776565b5080fd5b9250506020823d602011610a73575b81610a626020938361229f565b81010312610a16578991515f610733565b3d9150610a55565b81610a859161229f565b610a4257815f61070c565b8380fd5b9350506020833d602011610ac1575b81610ab06020938361229f565b81010312610a16578a92515f6106c7565b3d9150610aa3565b6040513d86823e3d90fd5b634e487b7160e01b8e52604160045260248efd5b60405162461bcd60e51b815260206004820152600c60248201526b61737365742065786973747360a01b6044820152606490fd5b60405162461bcd60e51b815260206004820152601360248201527218dbdb9d1c9bdb1b195c9cc81b9bdd081cd95d606a1b6044820152606490fd5b508615156105c6565b506001600160a01b03861615156105c0565b8a80fd5b8980fd5b83356001600160401b038111610b765760049083010160a0601f198236030112610b76576040519160a083018381106001600160401b03821117610c635760405260208201356001600160401b038111610c5f57610bde9060203691850101612325565b835260408201356001600160401b038111610c5f57610c039060203691850101612325565b602084015260608201356001600160401b038111610c5f57610c2b9060203691850101612325565b604084015260808201359260ff84168403610c5f5760a0602094938594606084015201356080820152815201930192610554565b8b80fd5b634e487b7160e01b8c52604160045260248cfd5b634e487b7160e01b86526041600452602486fd5b8480fd5b8580fd5b634e487b7160e01b84526041600452602484fd5b503461016a57602036600319011261016a576004356001600160401b038111610a425736602382011215610a425780600401356001600160401b0381116109e5573660248260051b840101116109e55790610d0061260c565b5f90602090845b84811015610e855760248160051b8301013590610d37610d32835f52600160205260405f2054151590565b61253b565b818752600a845260408720546009546001600160a01b0390811691168114610e405787908382526002865260018060a01b0360408320541690604051610d7d888261229f565b838152883689830137823b15610a9057610db09284928360405180968195829463278f794360e11b845260048401612579565b03925af180156109da57610e2b575b5050600191828060a01b0360095416907f809b0e7a4c592bbb6daa7d5aa9a09a4d3e78e12deabe919f3369028976d941c7604080518381528489820152a18852600a85526040882090838060a01b03166bffffffffffffffffffffffff60a01b82541617905501610d07565b81610e359161229f565b61093757865f610dbf565b60405162461bcd60e51b815260048101869052601c60248201527f617373657420746f6b656e20616c7265616479207570677261646564000000006044820152606490fd5b8580f35b503461016a578060031936011261016a575f5160206129d35f395f51905f52546040516001600160a01b039091168152602090f35b503461016a578060031936011261016a576006546040516001600160a01b039091168152602090f35b503461016a57602036600319011261016a57602090600435815260028252604060018060a01b0391205416604051908152f35b503461016a578060031936011261016a57610f3361260c565b5f5160206129d35f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016a57602036600319011261016a577fd459c7242e23d490831b5676a611c4342d899d28f342d89ae80793e56a930f306020610fc0612273565b610fc861260c565b6001600160a01b0316610fdc81151561246e565b600780546001600160a01b03191682179055604051908152a180f35b503461016a57602036600319011261016a57602090600435815260038252604060018060a01b0391205416604051908152f35b503461016a578060031936011261016a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036110835760206040515f5160206129f35f395f51905f528152f35b63703e46dd60e11b8152600490fd5b503461016a57602036600319011261016a57602090600435815260048252604060018060a01b0391205416604051908152f35b50604036600319011261016a576110da612273565b906024356001600160401b038111610a425736602382011215610a425761110b9036906024816004013591016122ef565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156112c4575b506112b55761114d61260c565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596611281575b5061119257634c9c8ce360e01b84526004839052602484fd5b9091845f5160206129f35f395f51905f52810361126f5750813b1561125d575f5160206129f35f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015611243578083602061123795519101845af43d1561123b573d9161121b836122d4565b92611229604051948561229f565b83523d85602085013e6126d7565b5080f35b6060916126d7565b5050503461124e5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d6020116112ad575b8161129d6020938361229f565b81010312610a165751945f611179565b3d9150611290565b63703e46dd60e11b8252600482fd5b5f5160206129f35f395f51905f52546001600160a01b0316141590505f611140565b503461016a57604036600319011261016a5760043561130361225d565b9061130c61260c565b6001600160a01b03821691821561153357818452600b60205260408420546001600160a01b031683146114ee57611351610d32835f52600160205260405f2054151590565b818452600260205260018060a01b03604085205416906040516231a03760e31b8152602081600481865afa80156114c4576113949187916114cf575b5015612435565b60405163959b13d960e01b815291602083600481845afa9081156114c4576113c960209260049589916114a7575b50156123f8565b60405163243dc4b360e21b815293849182905afa91821561149c577fa1dc9f3559faf45d3f77ce0722ee2c61afdc8ba82152aa5352f9cf3df7991edd9261141891879161146d575b50156124fe565b828552600b602090815260408087205481518681526001600160a01b03918216938101939093529290921691810191909152606090a18252600b6020526040822080546001600160a01b031916909117905580f35b61148f915060203d602011611495575b611487818361229f565b8101906123e0565b5f611411565b503d61147d565b6040513d87823e3d90fd5b6114be9150843d861161149557611487818361229f565b5f6113c2565b6040513d88823e3d90fd5b6114e8915060203d60201161149557611487818361229f565b5f61138d565b60405162461bcd60e51b815260206004820152601760248201527f737761702061646472657373206e6f74206368616e67650000000000000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526014602482015273737761702061646472657373206973207a65726f60601b6044820152606490fd5b503461016a578060031936011261016a576040518060208354918281520180918480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390855b81811061160d57505050826115cc91038361229f565b604051928392602084019060208552518091526040840192915b8181106115f4575050500390f35b82518452859450602093840193909201916001016115e6565b82548452602090930192600192830192016115b6565b503461016a57602036600319011261016a57602061164e6004355f52600160205260405f2054151590565b6040519015158152f35b503461016a57604036600319011261016a5760043561167561225d565b9061167e61260c565b6001600160a01b038216156118da576116aa6116a5825f52600160205260405f2054151590565b61239f565b808352600260205260018060a01b036040842054169060405163243dc4b360e21b8152602081600481865afa801561149c576116ed91869161146d5750156124fe565b80845260056020528360018060a01b0360408220541692604051631ca54c9560e01b815260208160048186865af1908115610a225783916118a5575b50813b156109e55760405163d547741f60e01b815260048101919091526001600160a01b0385166024820152828160448183865af1908115610a22578391611890575b5050604051631ca54c9560e01b81529060208260048186855af1918215610a22578392611859575b50803b156109e557604051632f2ff15d60e01b815260048101929092526001600160a01b038616602483015282908290604490829084905af180156109da57611844575b5081905260056020908152604080862080546001600160a01b0319166001600160a01b0396871690811790915581519384529390941690820152918201527fb8ea40cac510c6a2e798943a7c87ea9b79631b949caf12e3782908c7b835a57d9080606081015b0390a180f35b8161184e9161229f565b610a9057835f6117d8565b925090506020823d602011611888575b816118766020938361229f565b81010312610a1657859151905f611794565b3d9150611869565b8161189a9161229f565b610a4257815f61176c565b9250506020823d6020116118d2575b816118c16020938361229f565b81010312610a16578591515f611729565b3d91506118b4565b60405162461bcd60e51b815260206004820152601a60248201527f6665654d616e61676572206973207a65726f20616464726573730000000000006044820152606490fd5b503461016a57608036600319011261016a57611939612273565b61194161225d565b6044356001600160401b038111610a9057611960903690600401612325565b611968612289565b915f516020612a335f395f51905f52549360ff8560401c1615946001600160401b03811680159081611cc0575b6001149081611cb6575b159081611cad575b50611c9e5767ffffffffffffffff1981166001175f516020612a335f395f51905f52556119e6919086611c72575b506119de61263f565b6101bb61263f565b6119ee61263f565b6001600160a01b031691611a0383151561246e565b6001600160a01b031691611a188315156124b2565b6bffffffffffffffffffffffff60a01b60075416176007558051906001600160401b038211611c5e57611a4c600854612367565b601f8111611bf6575b50602090601f8311600114611b635791807f986da79689bb53f74931fd8b83e794e8aa526b9e6adf718394211939689f2c4f94926020948892611b58575b50508160011b915f199060031b1c1916176008555b600980546001600160a01b031916821790556007546040516001600160a01b0390911681527fd459c7242e23d490831b5676a611c4342d899d28f342d89ae80793e56a930f30908390a1604051908152a1611b005780f35b68ff0000000000000000195f516020612a335f395f51905f5254165f516020612a335f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b015190505f80611a93565b600886525f516020612a135f395f51905f529190601f198416875b818110611bde57509260019285926020967f986da79689bb53f74931fd8b83e794e8aa526b9e6adf718394211939689f2c4f989610611bc6575b505050811b01600855611aa8565b01515f1960f88460031b161c191690555f8080611bb8565b92936020600181928786015181550195019301611b7e565b60088652601f830160051c5f516020612a135f395f51905f52019060208410611c49575b601f0160051c5f516020612a135f395f51905f5201905b818110611c3e5750611a55565b868155600101611c31565b5f516020612a135f395f51905f529150611c1a565b634e487b7160e01b85526041600452602485fd5b68ffffffffffffffffff191668010000000000000001175f516020612a335f395f51905f52555f6119d5565b63f92ee8a960e01b8752600487fd5b9050155f6119a7565b303b15915061199f565b879150611995565b503461016a57604036600319011261016a57600435611ce561225d565b90611cee61260c565b6001600160a01b03821615611f4257611d156116a5825f52600160205260405f2054151590565b808352600260205260018060a01b03604084205416906040516231a03760e31b8152602081600481865afa801561149c57611d579186916114cf575015612435565b80845260036020528360018060a01b03604082205416926040516320abbe8960e21b815260208160048186865af1908115610a22578391611f0d575b50813b156109e55760405163d547741f60e01b815260048101919091526001600160a01b0385166024820152828160448183865af1908115610a22578391611ef8575b50506040516320abbe8960e21b81529060208260048186855af1918215610a22578392611ec1575b50803b156109e557604051632f2ff15d60e01b815260048101929092526001600160a01b038616602483015282908290604490829084905af180156109da57611eac575b5081905260036020908152604080862080546001600160a01b0319166001600160a01b0396871690811790915581519384529390941690820152918201527fb22313599d45968f591dafd09a2124f00d2e293c6923924802d10a993e688e2a90806060810161183e565b81611eb69161229f565b610a9057835f611e42565b925090506020823d602011611ef0575b81611ede6020938361229f565b81010312610a1657859151905f611dfe565b3d9150611ed1565b81611f029161229f565b610a4257815f611dd6565b9250506020823d602011611f3a575b81611f296020938361229f565b81010312610a16578591515f611d93565b3d9150611f1c565b60405162461bcd60e51b8152602060048201526016602482015275697373756572206973207a65726f206164647265737360501b6044820152606490fd5b5034610a16576040366003190112610a1657600435611f9d61225d565b90611fa661260c565b6001600160a01b0382161561221857611fcd6116a5825f52600160205260405f2054151590565b805f52600260205260018060a01b0360405f2054169060405163959b13d960e01b8152602081600481865afa80156121c257612010915f916121ff5750156123f8565b805f52600460205260018060a01b0360405f20541691604051630921691f60e31b81526020816004815f865af19081156121c2575f916121cd575b50813b15610a165760405163d547741f60e01b815260048101919091526001600160a01b03841660248201525f8160448183865af180156121c2576121ad575b50604051630921691f60e31b8152859160208260048186855af1918215610a22578392612176575b50803b156109e557604051632f2ff15d60e01b815260048101929092526001600160a01b038616602483015282908290604490829084905af180156109da57612161575b5081905260046020908152604080862080546001600160a01b0319166001600160a01b0396871690811790915581519384529390941690820152918201527fc8c6d4b1e7cb4852c681854c9c38f1fccde989807651cba597373dcc002205e090806060810161183e565b8161216b9161229f565b610a9057835f6120f7565b925090506020823d6020116121a5575b816121936020938361229f565b81010312610a1657859151905f6120b3565b3d9150612186565b6121ba9195505f9061229f565b5f935f61208b565b6040513d5f823e3d90fd5b90506020813d6020116121f7575b816121e86020938361229f565b81010312610a1657515f61204b565b3d91506121db565b6114be915060203d60201161149557611487818361229f565b60405162461bcd60e51b815260206004820152601a60248201527f726562616c616e636572206973207a65726f20616464726573730000000000006044820152606490fd5b602435906001600160a01b0382168203610a1657565b600435906001600160a01b0382168203610a1657565b606435906001600160a01b0382168203610a1657565b90601f801991011681019081106001600160401b038211176122c057604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116122c057601f01601f191660200190565b9291926122fb826122d4565b91612309604051938461229f565b829481845281830111610a16578281602093845f960137010152565b9080601f83011215610a1657816020612340933591016122ef565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90600182811c92168015612395575b602083101461238157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612376565b156123a657565b60405162461bcd60e51b815260206004820152601260248201527161737365744944206e6f742065786973747360701b6044820152606490fd5b90816020910312610a1657518015158103610a165790565b156123ff57565b60405162461bcd60e51b815260206004820152600e60248201526d697320726562616c616e63696e6760901b6044820152606490fd5b1561243c57565b60405162461bcd60e51b815260206004820152600a60248201526969732069737375696e6760b01b6044820152606490fd5b1561247557565b60405162461bcd60e51b81526020600482015260156024820152747661756c742061646472657373206973207a65726f60581b6044820152606490fd5b156124b957565b60405162461bcd60e51b815260206004820152601a60248201527f746f6b656e20696d706c2061646472657373206973207a65726f0000000000006044820152606490fd5b1561250557565b60405162461bcd60e51b815260206004820152600e60248201526d6973206275726e696e672066656560901b6044820152606490fd5b1561254257565b60405162461bcd60e51b815260206004820152600f60248201526e185cdcd95d081b9bdd08195e1a5cdd608a1b6044820152606490fd5b6001600160a01b03909116815260406020820181905261234092910190612343565b6001600160a01b031680156125f9575f5160206129d35f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206129d35f395f51905f52546001600160a01b0316330361262c57565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020612a335f395f51905f525460401c161561265b57565b631afcd79f60e31b5f5260045ffd5b805f52600160205260405f2054155f146126d2575f54680100000000000000008110156122c05760018101805f558110156126be5781905f805260205f2001555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52603260045260245ffd5b505f90565b906126fb57508051156126ec57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061272c575b61270c575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561270456fe608060405261029d8038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b6040516082908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffdfea2646970667358221220b608a24ad0d830a1aaa7d0525dc7338fcc425a48501ceca462df908e97f96a1e64736f6c634300081c00339016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202e114351cc74ad5751eac2e2354e408b229b3de194b2a03839939a286abf348664736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00