35 txs
2.3k calls
constructor
constructor(address _vault, address _superformRouter, address _superPositions, address _superRegistry, address owner)
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (uint256)
asset
viewfunction asset() view returns (address)
balanceOf
viewfunction balanceOf(address account, uint256 superformId) view returns (uint256)
getRequestsQueue
viewfunction getRequestsQueue() view returns (bytes32[] requestIds)
hasAllRoles
viewfunction hasAllRoles(address user, uint256 roles) view returns (bool)
hasAnyRole
viewfunction hasAnyRole(address user, uint256 roles) view returns (bool)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
pendingXChainInvests
viewfunction pendingXChainInvests(uint256) view returns (uint256)
receiverImplementation
viewfunction receiverImplementation() view returns (address)
receivers
viewfunction receivers(bytes32) view returns (address)
recoveryAddress
viewfunction recoveryAddress() view returns (address)
RELAYER_ROLE
viewfunction RELAYER_ROLE() view returns (uint256)
requests
viewfunction requests(bytes32) view returns (address controller, uint256 requestedAssets, address receiverAddress, bool hasReceiver)
rolesOf
viewfunction rolesOf(address user) view returns (uint256 roles)
superformRouter
viewfunction superformRouter() view returns (address)
superPositions
viewfunction superPositions() view returns (address)
superRegistry
viewfunction superRegistry() view returns (address)
supportsInterface
purefunction supportsInterface(bytes4 interfaceId) pure returns (bool isSupported)
totalPendingXChainDivests
viewfunction totalPendingXChainDivests() view returns (uint256)
totalpendingXChainInvests
viewfunction totalpendingXChainInvests() view returns (uint256)
vault
viewfunction vault() view returns (address)
addFunction
nonpayablefunction addFunction(bytes4 selector, address implementation, bool forceOverride)
addFunctions
nonpayablefunction addFunctions(bytes4[] selectors, address implementation, bool forceOverride)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
getReceiver
nonpayablefunction getReceiver(bytes32 key) returns (address receiverAddress)
grantRoles
payablefunction grantRoles(address user, uint256 roles) payable
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address operator, address from, uint256[] superformIds, uint256[] values, bytes data) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address operator, address from, uint256 superformId, uint256 value, bytes data) returns (bytes4)
removeFunction
nonpayablefunction removeFunction(bytes4 selector)
removeFunctions
nonpayablefunction removeFunctions(bytes4[] selectors)
renounceOwnership
payablefunction renounceOwnership() payable
renounceRoles
payablefunction renounceRoles(uint256 roles) payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
revokeRoles
payablefunction revokeRoles(address user, uint256 roles) payable
setRouter
nonpayablefunction setRouter(address _superformRouter)
setSuperPositions
nonpayablefunction setSuperPositions(address _superPositions)
setVault
nonpayablefunction setVault(address _vault)
transferOwnership
payablefunction transferOwnership(address newOwner) payable
events
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
ReceiverDeployed
event ReceiverDeployed(bytes32 indexed key, address indexed receiver)
RolesUpdated
event RolesUpdated(address indexed user, uint256 indexed roles)
errors
AlreadyInitialized
error AlreadyInitialized()
InvalidKey
error InvalidKey()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
NotVault
error NotVault()
StaleSharePrice
error StaleSharePrice()
Unauthorized
error Unauthorized()
creation bytecode
0x608080604052346102b0575f9060a08161269980380380916100218285610302565b8339810103126102b05780516001600160a01b03811691908290036102b05760208101516001600160a01b038116908190036102b05760408201516001600160a01b03811692908390036102b05760608101516001600160a01b03811691908290036102b0576020610097608060049301610325565b60017f4fa563f6ad0f2ba943d6492a5a9c8ec6e039cc68444fb93b0b51ea1d78a61ef85582546001600160a01b031916871783556040516338d52e0f60e01b815290969092839182905afa9081156102a5575f916102c8575b50600580546001600160a01b03929092166001600160a01b031992831681179091556002805483169490941790935560018054821685179055600380549091169190911790556040519161087990818401908482106001600160401b038311176102b4576040938593611e208539825260208201520301905ff080156102a5575f80546001600160a01b0319166001600160a01b0392831617905560055460025461019f929081169116610339565b6005546004546101bb916001600160a01b039182169116610339565b6001546002546001600160a01b039182169116813b156102b0575f9160448392604051948593849263a22cb46560e01b84526004840152600160248401525af180156102a557610290575b506001600160a01b038116638b78c6d819819055827f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3638b78c6d8600c5281526020600c209060018254178092557f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600c5160601c9180a3604051611a9e90816103828239f35b61029d9192505f90610302565b5f905f610206565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90506020813d6020116102fa575b816102e360209383610302565b810103126102b0576102f490610325565b5f6100f0565b3d91506102d6565b601f909101601f19168101906001600160401b038211908210176102b457604052565b51906001600160a01b03821682036102b057565b604460105f809360209560145281196034526f095ea7b300000000000000000000000082525af13d1560015f5114171615610374575f603452565b633e3f8f735f526004601cfdfe608060405260043610611973575f3560e01c8062fdd58e1461028a57806301ffc9a714610285578063112e335c1461028057806315916ed81461027b578063183a4f6e146102765780631b6991c7146102715780631c10893f1461026c5780631cd64df41461026757806320a9cd4a1461026257806324c73dda1461025d57806325692962146102585780632de948071461025357806330b88eef1461024e57806330c8472f1461024957806338d52e0f146102445780633bb57df31461023f5780633e9029e21461023a5780634a4ee7b114610235578063514e62fc1461023057806354d1f13d1461022b57806358fe4362146102265780636817031b14610221578063710eb26c1461021c578063715018a61461021757806375b238fc146102125780638da5cb5b1461020d578063926d7d7f146102085780639d86698514610203578063bc197c81146101fe578063c0d78655146101f9578063c904f7c1146101f4578063ed61a911146101ef578063eeda387f146101ea578063f04e283e146101e5578063f08c58a3146101e0578063f23a6e61146101db578063f2fde38b146101d6578063f8ffd889146101d1578063fbfa77cf146101cc5763fee81cf40361197357611192565b61116a565b6110d4565b611095565b611028565b61100b565b610fba565b610ece565b610e73565b610e47565b610dd9565b610d28565b610bba565b610b8d565b610b61565b610b46565b610afd565b610ad5565b610a67565b610a3f565b6109fb565b6109b7565b61098b565b61096e565b610810565b6107e8565b6107c0565b61070f565b6106c3565b61067a565b610652565b610542565b6104c4565b61045e565b610403565b6103e9565b6103bf565b610398565b61035d565b6102a4565b6001600160a01b038116036102a057565b5f80fd5b346102a05760403660031901126102a0576004356102c18161028f565b600154604051627eeac760e11b81526001600160a01b03928316600482015260248035908201529160209183916044918391165afa8015610346575f90610312575b604051908152602090f35b0390f35b506020813d60201161033e575b8161032c60209383610c48565b810103126102a05761030e9051610303565b3d915061031f565b6111c8565b6001600160e01b03198116036102a057565b346102a05760203660031901126102a057602061038460043561037f8161034b565b6111d3565b6040519015158152f35b5f9103126102a057565b346102a0575f3660031901126102a0575f546040516001600160a01b039091168152602090f35b346102a05760203660031901126102a0576004355f526009602052602060405f2054604051908152f35b60203660031901126102a057610401600435336119b8565b005b346102a05760203660031901126102a0576004356104208161034b565b6104375f80516020611a498339815191525461177e565b6001600160e01b0319165f908152600e6020526040902080546001600160a01b0319169055005b60403660031901126102a0576004356104768161028f565b60243590610482611797565b638b78c6d8600c525f526020600c2090815417809155600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3005b346102a05760403660031901126102a05760206104ff6004356104e68161028f565b602435918291638b78c6d8600c525f526020600c205490565b1614604051908152f35b60206040818301928281528451809452019201905f5b81811061052c5750505090565b825184526020938401939092019160010161051f565b346102a0575f3660031901126102a0576105686318fb5864600452600b5f5260245f2090565b80195490604051918260200181156105d4575060011c905f5b8281106105af5750505b80825260051b8101906020820191826040526105aa601f199284610509565b030190f35b8060019183015468fbb67fda52d4bfb8bf8114150260208260051b8701015201610581565b9091805491826105e7575b50505061058b565b9091925060019268fbb67fda52d4bfb8bf811415029052818101548061060e575b806105df565b68fbb67fda52d4bfb8bf81141502604084015260029081015490915080610636575b80610608565b68fbb67fda52d4bfb8bf8114150260608301525060035f610630565b346102a0575f3660031901126102a0576003546040516001600160a01b039091168152602090f35b5f3660031901126102a05763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b346102a05760203660031901126102a05760206106f86004356106e58161028f565b638b78c6d8600c525f526020600c205490565b604051908152f35b6044359081151582036102a057565b346102a05760603660031901126102a05760043561072c8161034b565b6024356107388161028f565b610740610700565b6107575f80516020611a498339815191525461177e565b15610795575b6001600160e01b03199091165f908152600e6020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b6001600160e01b031982165f908152600e60205260409020546001600160a01b03161561075d575f80fd5b346102a0575f3660031901126102a0576001546040516001600160a01b039091168152602090f35b346102a0575f3660031901126102a0576005546040516001600160a01b039091168152602090f35b346102a05760203660031901126102a05760043561082d8161028f565b610835611756565b600154610852906001600160a01b03165b6001600160a01b031690565b60025490919061086a906001600160a01b0316610846565b91803b156102a05760405163a22cb46560e01b81526001600160a01b039390931660048401525f60248401819052908390604490829084905af1918215610346576108d79261095a575b5060018060a01b03166bffffffffffffffffffffffff60a01b6001541617600155565b6001546108ec906001600160a01b0316610846565b600254610901906001600160a01b0316610846565b90803b156102a05760405163a22cb46560e01b81526001600160a01b038316600482015260016024820152905f908290604490829084905af180156103465761094657005b806109545f61040193610c48565b8061038e565b806109545f61096893610c48565b5f6108b4565b346102a0575f3660031901126102a0576020600a54604051908152f35b60403660031901126102a0576104016004356109a68161028f565b602435906109b2611797565b6119b8565b346102a05760403660031901126102a05760206004356109d68161028f565b6109f060243591638b78c6d8600c525f526020600c205490565b161515604051908152f35b5f3660031901126102a05763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b346102a0575f3660031901126102a0576002546040516001600160a01b039091168152602090f35b346102a05760203660031901126102a057610401600435610a878161028f565b610a8f611756565b600554600454610aab916001600160a01b0391821691166117a6565b600480546001600160a01b0319166001600160a01b039283169081179091556005549091166117e4565b346102a0575f3660031901126102a0576006546040516001600160a01b039091168152602090f35b5f3660031901126102a057610b10611797565b5f638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f638b78c6d81955005b346102a0575f3660031901126102a057602060405160018152f35b346102a0575f3660031901126102a057638b78c6d819546040516001600160a01b039091168152602090f35b346102a0575f3660031901126102a057602060405160028152f35b60209060031901126102a05760043590565b346102a057610bc836610ba8565b5f52600d602052608060405f2060ff60018060a01b03825416916004600382015491015490604051938452602084015260018060a01b038116604084015260a01c1615156060820152f35b634e487b7160e01b5f52604160045260245ffd5b60c0810190811067ffffffffffffffff821117610c4357604052565b610c13565b90601f8019910116810190811067ffffffffffffffff821117610c4357604052565b9080601f830112156102a05781359167ffffffffffffffff8311610c43578260051b9060405193610c9e6020840186610c48565b84526020808501928201019283116102a057602001905b828210610cc25750505090565b8135815260209182019101610cb5565b81601f820112156102a05780359067ffffffffffffffff8211610c435760405192610d07601f8401601f191660200185610c48565b828452602083830101116102a057815f926020809301838601378301015290565b346102a05760a03660031901126102a057610d4460043561028f565b602435610d508161028f565b60443567ffffffffffffffff81116102a057610d70903690600401610c6a565b60643567ffffffffffffffff81116102a057610d90903690600401610c6a565b6084359167ffffffffffffffff83116102a05761030e93610db8610dbe943690600401610cd2565b50611222565b6040516001600160e01b031990911681529081906020820190565b346102a05760203660031901126102a057610401600435610df98161028f565b610e01611756565b600554600254610e1d916001600160a01b0391821691166117a6565b600280546001600160a01b0319166001600160a01b039283169081179091556005549091166117e4565b346102a057610e5536610ba8565b5f526007602052602060018060a01b0360405f205416604051908152f35b346102a0576020610e8b610e8636610ba8565b61127a565b6040516001600160a01b039091168152f35b9181601f840112156102a05782359167ffffffffffffffff83116102a0576020808501948460051b0101116102a057565b346102a05760603660031901126102a05760043567ffffffffffffffff81116102a057610eff903690600401610e9d565b9060243591610f0d8361028f565b610f15610700565b15905f5b818110610f2257005b610f2d818386611388565b3590610f388261034b565b83610f505f80516020611a498339815191525461177e565b610f8f575b6001600160e01b03199091165f908152600e6020526040902080546001600160a01b0319166001600160a01b038716179055600101610f19565b6001600160e01b031982165f908152600e60205260409020546001600160a01b031615610f55575f80fd5b60203660031901126102a057600435610fd28161028f565b610fda611797565b63389a75e1600c52805f526020600c209081544211610ffe575f6104019255611816565b636f5e88185f526004601cfd5b346102a0575f3660031901126102a0576020600854604051908152f35b346102a05760a03660031901126102a05761104460043561028f565b6024356110508161028f565b60843560643560443567ffffffffffffffff83116102a05760209361107c611082943690600401610cd2565b50611482565b6040516001600160e01b03199091168152f35b60203660031901126102a0576004356110ad8161028f565b6110b5611797565b8060601b156110c75761040190611816565b637448fbae5f526004601cfd5b346102a05760203660031901126102a05760043567ffffffffffffffff81116102a057611105903690600401610e9d565b5f5b81811061111057005b8061111e6001928486611388565b356111288161034b565b61113f5f80516020611a498339815191525461177e565b6001600160e01b0319165f908152600e6020526040902080546001600160a01b031916905501611107565b346102a0575f3660031901126102a0576004546040516001600160a01b039091168152602090f35b346102a05760203660031901126102a0576004356111af8161028f565b63389a75e1600c525f52602080600c2054604051908152f35b6040513d5f823e3d90fd5b5f91906001600160e01b031916630271189760e51b146111ef57565b60019150565b634e487b7160e01b5f52603260045260245ffd5b805182101561121d5760209160051b010190565b6111f5565b9291905f5b815181101561126b578061126461124060019385611209565b5161124b8387611209565b51905f602061125d6040519182610c48565b5288611482565b5001611227565b5063bc197c8160e01b93505050565b8015611379576112a2611295825f52600760205260405f2090565b546001600160a01b031690565b906001600160a01b038216156112b6575090565b5f54909291506112ce906001600160a01b03166119fd565b916001600160a01b03831690813b156102a057604051639498bd7160e01b8152600481018290525f8160248183875af1801561034657611365575b5061133f84611320835f52600760205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b7f5eb251e783ba28250e9da29022abe8b0418830c9874be62308f8cf79bcc1e6fe5f80a3565b806109545f61137393610c48565b5f611309565b630eda9c3d60e31b5f5260045ffd5b919081101561121d5760051b0190565b908160209103126102a0575190565b519060ff821682036102a057565b51906fffffffffffffffffffffffffffffffff821682036102a057565b51906113dd8261028f565b565b908160c09103126102a057604051906113f782610c27565b805163ffffffff811681036102a0576114549160a09184526020810151602085015260408101516114278161028f565b6040850152611438606082016113a7565b6060850152611449608082016113b5565b6080850152016113d2565b60a082015290565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161147d57565b61145c565b60015490929061149c90610846906001600160a01b031681565b33036116d3576004546114b7906001600160a01b0316610846565b926001600160a01b03908116908416811461171557604051630e50ce0360e21b81528190602081600481855afa5f9181611725575b506116e1575b5050600654611509906001600160a01b0316610846565b036116d357604051632500ed8d60e21b8152600481018390529260c090849060249082905afa928315610346575f936116a2575b5061159161158c611583611559855f52600960205260405f2090565b54955f61156e875f52600960205260405f2090565b5560055485906001600160a01b0316916118bc565b94600854611470565b600855565b6001546115a6906001600160a01b0316610846565b6004549091906115be906001600160a01b0316610846565b90823b156102a057604051637921219560e11b81523060048201526001600160a01b0392909216602483015260448201849052606482015260a060848201525f60a482018190529091829060c490829084905af180156103465761168e575b50600454611633906001600160a01b0316610846565b91823b156102a05760405163014452cf60e01b815260048101929092526024820152905f908290604490829084905af180156103465761167a575b5063f23a6e6160e01b90565b806109545f61168893610c48565b5f61166e565b806109545f61169c93610c48565b5f61161d565b6116c591935060c03d60c0116116cc575b6116bd8183610c48565b8101906113df565b915f61153d565b503d6116b3565b6282b42960e81b5f5260045ffd5b61084660046116fb611709935f52600d60205260405f2090565b01546001600160a01b031690565b1461171557805f6114f2565b5063f23a6e6160e01b9392505050565b61174891925060203d60201161174f575b6117408183610c48565b810190611398565b905f6114ec565b503d611736565b638b78c6d8600c52335f5260016020600c2054161561177157565b6382b429005f526004601cfd5b638b78c6d8600c52335f526020600c2054161561177157565b638b78c6d81954330361177157565b604460105f80936020956014528160345263095ea7b360601b82525af13d1560015f51141716156117d7575f603452565b633e3f8f735f526004601cfd5b604460105f8093602095601452811960345263095ea7b360601b82525af13d1560015f51141716156117d7575f603452565b60018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b91908260409103126102a0576020825192015167ffffffffffffffff811681036102a05790565b8181029291811591840414171561147d57565b60ff16604d811161147d57600a0a90565b81156118a8570490565b634e487b7160e01b5f52601260045260245ffd5b604081810151825160a0840151835163a6c0cacd60e01b815263ffffffff90921660048301526001600160a01b0390811660248301529586166044820152939492939283916064918391165afa92831561034657606061192e611937926119429661193c955f91611945575b5061187a565b93015160ff1690565b61188d565b9061189e565b90565b611967915060403d60401161196c575b61195f8183610c48565b810190611853565b611928565b503d611955565b5f80356001600160e01b0319168152600e60205260409020546001600160a01b031680156102a0575f8091368280378136915af43d5f803e156119b4573d5ff35b3d5ffd5b638b78c6d8600c525f526020600c2090815490811618809155600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3565b6c5af43d3d93803e602a57fd5bf360215260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c5ff0908115611a3b575f602152565b63301164255f526004601cfdfe4fa563f6ad0f2ba943d6492a5a9c8ec6e039cc68444fb93b0b51ea1d78a61ef8a2646970667358221220fed1cabd77cce60c12e1394e8b447a9251b6d4e4308f41d88638121b0f35fb7564736f6c634300081a003360e0346100be57601f61087938819003918201601f19168301916001600160401b038311848410176100c25780849260409485528339810103126100be57610052602061004b836100d6565b92016100d6565b9060a05260c0523360805260405161078e90816100eb8239608051818181610157015281816102d8015281816103ee015281816104b90152610502015260a05181818160a1015281816103a9015261054e015260c0518181816101190152818161029b01526104250152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100be5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146105ac575080633943380c146105905780634d0392a8146104ef5780638ab48d25146104a65780639498bd71146103da578063b69ef8a814610380578063bc197c8114610212578063d107589a146101f4578063f23a6e61146100d35763fcea5e291461008c575f80fd5b346100d057806003193601126100d0576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b50346100d05760a03660031901126100d0576100ed6105e3565b506100f66105f9565b60843567ffffffffffffffff81116101f0576101169036906004016106ad565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101ec576001600160a01b03166100d057807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101e957819060446040518094819363997873d560e01b83528335600484015260643560248401525af180156101de576101c9575b60405163f23a6e6160e01b8152602090f35b6101d482809261060f565b6100d057806101b7565b6040513d84823e3d90fd5b50fd5b5080fd5b8280fd5b50346100d057806003193601126100d0576020600154604051908152f35b50346100d05760a03660031901126100d05761022c6105e3565b506102356105f9565b8160443567ffffffffffffffff81116101ec57610256903690600401610645565b9160643567ffffffffffffffff81116101f057610277903690600401610645565b9060843567ffffffffffffffff811161037c576102989036906004016106ad565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f0576001600160a01b03166101ec577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101f057610334836103469560405196879586948593630479629b60e51b8552604060048601526044850190610725565b83810360031901602485015290610725565b03925af180156101de57610367575b60405163bc197c8160e01b8152602090f35b61037282809261060f565b6100d05780610355565b8380fd5b50346100d057806003193601126100d057306014526370a0823160601b905260208080602460107f00000000000000000000000000000000000000000000000000000000000000005afa601f3d1116815102604051908152f35b50346104a25760203660031901126104a2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316338190036104a2576004355f557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156104a2575f9160448392604051948593849263a22cb46560e01b84526004840152600160248401525af1801561049757610489575080f35b61049591505f9061060f565b005b6040513d5f823e3d90fd5b5f80fd5b346104a25760203660031901126104a2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104a257600435600155005b346104a25760203660031901126104a2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811633036104a25760145260043560345263a9059cbb60601b5f5260205f60446010827f00000000000000000000000000000000000000000000000000000000000000005af13d1560015f5114171615610583575f603452005b6390b8ec185f526004601cfd5b346104a2575f3660031901126104a25760205f54604051908152f35b346104a25760203660031901126104a257600435906001600160e01b0319821682036104a2576105dd602092610703565b15158152f35b600435906001600160a01b03821682036104a257565b602435906001600160a01b03821682036104a257565b90601f8019910116810190811067ffffffffffffffff82111761063157604052565b634e487b7160e01b5f52604160045260245ffd5b9080601f830112156104a25781359167ffffffffffffffff8311610631578260051b9060405193610679602084018661060f565b84526020808501928201019283116104a257602001905b82821061069d5750505090565b8135815260209182019101610690565b81601f820112156104a25780359067ffffffffffffffff821161063157604051926106e2601f8401601f19166020018561060f565b828452602083830101116104a257815f926020809301838601378301015290565b5f91906001600160e01b031916630271189760e51b1461071f57565b60019150565b90602080835192838152019201905f5b8181106107425750505090565b825184526020938401939092019160010161073556fea26469706673582212206a41096d84d33dd613ed4da4b1cde5433582c57a6ea42190672755e7f48d56b564736f6c634300081a0033000000000000000000000000b272e80042634bca5d3466446b0c48ba278a8ae5000000000000000000000000a195608c2306a26f727d5199d5a382a4508308da00000000000000000000000001df6fb6a28a89d6bfa53b2b3f20644abf41767800000000000000000000000017a332dc7b40ae701485023b219e9d6f493a2514000000000000000000000000762fdc3b613e4e7cd3c96df8d0908d52632522dc