Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method |
Block
|
From
|
To
|
|||
|---|---|---|---|---|---|---|---|
| 0x60806040 | 22483130 | 478 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"}],"name":"DataIndexImplementationNotSet","type":"error"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"DifferentChainExpected","type":"error"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"bytes32","name":"diid","type":"bytes32"}],"name":"DiidDataUnavailable","type":"error"},{"inputs":[{"internalType":"bytes32","name":"expectedRequestId","type":"bytes32"},{"internalType":"bytes32","name":"actualRequestId","type":"bytes32"}],"name":"ExpectedAndActualRequestIdDoNotMatch","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"HandlerAlreadyRegistered","type":"error"},{"inputs":[],"name":"HandlerNotRemoved","type":"error"},{"inputs":[{"internalType":"address","name":"dataIndexImpl","type":"address"}],"name":"IncorrectDataIndexImplementationAddress","type":"error"},{"inputs":[{"internalType":"address","name":"handler","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"IncreaseBalanceCallbackHandlerFailed","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"bytes32","name":"diid","type":"bytes32"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"InsufficientTotalSupply","type":"error"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"address","name":"sender","type":"address"}],"name":"InvalidCaller","type":"error"},{"inputs":[{"internalType":"bytes32","name":"rid","type":"bytes32"}],"name":"InvalidRequestId","type":"error"},{"inputs":[],"name":"NativePaymentNotSupported","type":"error"},{"inputs":[],"name":"NotEnoughGasForBalanceHandlers","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"SenderIsNotOmnichainProxy","type":"error"},{"inputs":[],"name":"TransferConflict","type":"error"},{"inputs":[{"internalType":"uint32","name":"expected","type":"uint32"},{"internalType":"uint32","name":"requested","type":"uint32"}],"name":"UnexpectedChain","type":"error"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"UnknownReadOperation","type":"error"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"UnknownWriteOperation","type":"error"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"UnsupportedChain","type":"error"},{"inputs":[],"name":"UnsupportedDataPointStructure","type":"error"},{"inputs":[],"name":"UnsupportedOmnichainAddressesStructure","type":"error"},{"inputs":[],"name":"WrongOperationArguments","type":"error"},{"inputs":[],"name":"ZeroAddressHandler","type":"error"},{"inputs":[],"name":"ZeroProxyAddress","type":"error"},{"inputs":[],"name":"ZeroRefundAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"DataPoint","name":"dp","type":"bytes32"},{"indexed":false,"internalType":"address","name":"dataIndexImplementation","type":"address"}],"name":"DataIndexImplementationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"DataPoint","name":"dp","type":"bytes32"},{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"DataPointAdminVerificationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"dataIndexImplementation","type":"address"}],"name":"DefaultDataIndexImplementationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"handler","type":"address"},{"indexed":false,"internalType":"bool","name":"added","type":"bool"}],"name":"OmnichainIncreaseBalanceHandlerRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"proxy","type":"address"}],"name":"OmnichainProxySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"originalRid","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"retryRequestRid","type":"bytes32"}],"name":"OmnichainRetryIncompleteOmnichainIncreaseBalanceSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"rid","type":"bytes32"},{"indexed":false,"internalType":"DataPoint","name":"dp","type":"bytes32"},{"indexed":false,"internalType":"OmnichainAddress","name":"from","type":"bytes32"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"address","name":"actualRefundTarget","type":"address"},{"indexed":false,"internalType":"bool","name":"refundAccepted","type":"bool"}],"name":"OmnichainTransferFailedRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"rid","type":"bytes32"},{"indexed":false,"internalType":"DataPoint","name":"dp","type":"bytes32"},{"indexed":false,"internalType":"OmnichainAddress","name":"from","type":"bytes32"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"OmnichainTransferRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"rid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"chainid","type":"uint32"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"OmnichainTransferSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IAccessManagerOmnichain","name":"dataIndex","type":"address"},{"internalType":"uint32[]","name":"chains","type":"uint32[]"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"approveChains","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"OmnichainAddress","name":"from","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"callIncreaseBalanceHandlersAndRevertOnFail","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"OmnichainAddress","name":"from","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"callIncreaseBalanceHandlersAndRevertOnFail","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultDataIndex","outputs":[{"internalType":"contract IDataIndex","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"rid","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"omnichainCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"bytes32","name":"fromDiid","type":"bytes32"},{"internalType":"bytes32","name":"toDiid","type":"bytes32"}],"name":"onDataPointTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"bytes4","name":"operation","type":"bytes4"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"read","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"rid","type":"bytes32"},{"internalType":"address payable","name":"refundAddress","type":"address"}],"name":"retryIncompleteOmnichainIncreaseBalance","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"address","name":"newImpl","type":"address"}],"name":"setDataIndexImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImpl","type":"address"}],"name":"setDefaultDataIndexImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"address","name":"newImpl","type":"address"},{"internalType":"address payable","name":"refundAddress","type":"address"}],"name":"setOmnichainDataIndexImplementation","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"contract OmnichainProxy","name":"proxy_","type":"address"}],"name":"setOmnichainProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawNativeBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"DataPoint","name":"dp","type":"bytes32"},{"internalType":"bytes4","name":"operation","type":"bytes4"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"write","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"}]Contract Creation Code
6080604052346200002b5762000015336200002f565b5060016009556040516144ef9081620000b28239f35b5f80fd5b6001600160a01b03165f8181525f80516020620045a1833981519152602052604090205460ff16620000ac575f8181525f80516020620045a183398151915260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f9056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610164578063248a9ca31461015f57806327b452171461015a57806329cc42ad146101555780632f2ff15d146101505780632ffaf0261461014b57806336568abe146101465780636e5a7157146101415780636ec50a2f1461013c5780636f71c0d414610137578063750f2fbe146101325780637846f8011461012d5780637e55534114610128578063829a2dc01461012357806391d148541461011e57806398977c7014610119578063a217fddf14610114578063b7c0ee221461010f578063d547741f1461010a578063e2e92c8e146101055763e9b4a61414610100575f80fd5b610f11565b610e8d565b610e4e565b610e31565b610e17565b610da1565b610d50565b610bd3565b610a13565b61080f565b610795565b610710565b610649565b610621565b6105cc565b610438565b6103f9565b610391565b610215565b6101d8565b610182565b35906001600160e01b03198216820361017e57565b5f80fd5b3461017e57602036600319011261017e5760043563ffffffff60e01b811680910361017e57602090637965db0b60e01b81149081156101c7575b506040519015158152f35b6301ffc9a760e01b1490505f6101bc565b3461017e57602036600319011261017e576004355f525f6020526020600160405f200154604051908152f35b6001600160a01b0381160361017e57565b3461017e57604036600319011261017e5760043560243561023581610204565b61023e8161148e565b610250825f52600260205260405f2090565b80549091906001600160a01b03906102719082165b6001600160a01b031690565b16806102b757506102896102853385611622565b1590565b61029857610296926116c4565b005b60405163547a689160e11b815260048101849052336024820152604490fd5b331415806102cc5761029857610296926116c4565b506102da6102853385611622565b610289565b9181601f8401121561017e578235916001600160401b03831161017e576020838186019501011161017e57565b606060031982011261017e57600435916024356001600160e01b03198116810361017e5791604435906001600160401b03821161017e5761034f916004016102df565b9091565b91908251928382525f5b84811061037d575050825f602080949584010152601f8019910116010190565b60208183018101518483018201520161035d565b61039a3661030c565b916001600160a01b036103ac85611722565b1633036103da57906103c292916103d6946118c9565b604051918291602083526020830190610353565b0390f35b60405163547a689160e11b815260048101859052336024820152604490fd5b3461017e57604036600319011261017e5761029660243560043561041c82610204565b805f525f602052610433600160405f200154611a9f565b611adf565b606036600319011261017e5760243560043561045382610204565b60443561045f81610204565b600754610474906001600160a01b0316610265565b6001600160a01b03818116156105ba578216156105a8576104fa9160209161049b8661148e565b6104ae6104a786611b6b565b5050611bb1565b6040516326d752bb60e01b815260048101869052336024820152620f42406044820152620186a060648201526001600160a01b03909216608483015290928391908290819060a4820190565b039134905af180156105a35761029693610569925f9261056e575b506040805160208101959095526001600160a01b039190911690840152336060808501919091528352610549608084610aff565b610551610b20565b600181529260208401525f52600860205260405f2090565b61112b565b6105499192506105959060203d60201161059c575b61058d8183610aff565b810190611034565b9190610515565b503d610583565b611043565b60405163334945f560e11b8152600490fd5b604051635d0b813f60e11b8152600490fd5b3461017e57604036600319011261017e576024356105e981610204565b336001600160a01b038216036106055761029690600435611bf0565b60405163334bd91960e11b8152600490fd5b5f91031261017e57565b3461017e575f36600319011261017e576001546040516001600160a01b039091168152602090f35b3461017e57604036600319011261017e576004356024356001600160401b03811161017e5761067c9036906004016102df565b6007549091906001600160a01b031633036106f8576106ab6106a6845f52600860205260405f2090565b61121e565b92600184516106b981611062565b6106c281611062565b036106ee57610296936106e76106e26020935f52600860205260405f2090565b61130c565b0151611d40565b6102969350611c74565b60405163078c49f560e41b8152336004820152602490fd5b3461017e575f36600319011261017e57610728611a49565b47804710610775575f80808093335af13d1561076d573d906107498261182a565b916107576040519384610aff565b82523d5f602084013e5b1561076857005b612b71565b606090610761565b60405163cf47918160e01b81524760048201526024810191909152604490fd5b3461017e57602036600319011261017e576004356107b281610204565b6107ba611a49565b6001600160a01b031680156105ba576020817f71eb9acdb256a6e7688233609a0167c44626beac2b0736a20cb61a51e81a08f1926bffffffffffffffffffffffff60a01b6007541617600755604051908152a1005b60408060031936011261017e576024359060043561082c83610204565b610834612b92565b6001600160a01b038316156109f85761085d610858825f52600b60205260405f2090565b611e49565b8051156109de57808360209201906108758251612bb5565b50916060820190815160018151115f1461097b57506108bb906108ad86850151915193516080860151908a519586948b8b8701611edf565b03601f198101835282610aff565b9563dcf1a74760e01b925b600754610900906108df906001600160a01b0316610265565b9351928851998a9687958695638b0729b760e01b8752309060048801611f16565b039134905af19182156105a3577f843963dea6a9a0f7c5b9bbfb4e724acbc791472e4e2993e484948c76f7d4e48e935f93610956575b5051908152602081019190915280604081015b0390a16102966001600955565b6109499193506109749060203d60201161059c5761058d8183610aff565b9290610936565b91506109cf906108ad61099387860151925194611eb9565b516109a16080870151611eb9565b518a518981018b81526020810195909552604085019690965260608401919091526080830152839160a00190565b956303af76a960e51b926108c6565b50905163a48032d560e01b81526004810191909152602490fd5b815163334945f560e11b8152600490fd5b8015150361017e57565b3461017e57606036600319011261017e57600435610a3081610204565b6024356001600160401b0380821161017e573660238301121561017e57816004013590811161017e573660248260051b8401011161017e5761029692602460443593610a7b85610a09565b019061135b565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610ab157604052565b610a82565b6001600160401b038111610ab157604052565b60c081019081106001600160401b03821117610ab157604052565b602081019081106001600160401b03821117610ab157604052565b90601f801991011681019081106001600160401b03821117610ab157604052565b60405190610b2d82610a96565b565b60405190610b2d82610ac9565b6040519061012082018281106001600160401b03821117610ab157604052565b6001600160401b038111610ab15760051b60200190565b9080601f8301121561017e576020908235610b8d81610b5c565b93610b9b6040519586610aff565b81855260208086019260051b82010192831161017e57602001905b828210610bc4575050505090565b81358152908301908301610bb6565b3461017e5760a036600319011261017e57600480359060243590604435610bf981610204565b6001600160401b0360643581811161017e57610c189036908501610b73565b9060843590811161017e57610c309036908501610b73565b94303303610d2e57610c44610c5291612bf3565b5f52600a60205260405f2090565b938454945f5b868110610c6157005b610c716102656102658385612c45565b6040848a89888a610c98865194859384936318705f0760e01b855260209889978601611456565b03815f6001600160a01b0389165af19182156105a3575f92610d01575b505015610cc6575050600101610c58565b51632eb4ed8b60e21b81526001600160a01b0391821681890190815291871660208301525f6040830181905260608301529081906080010390fd5b610d209250803d10610d27575b610d188183610aff565b81019061140b565b5f80610cb5565b503d610d0e565b6040805163547a689160e11b8152808601928352336020840152918291010390fd5b3461017e57604036600319011261017e57602060ff610d95602435610d7481610204565b6004355f525f845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461017e57606036600319011261017e576004356001600160a01b03610dc682611722565b163303610df757610dde906044359060243590612c59565b15610de557005b6040516321463f5360e01b8152600490fd5b60405163547a689160e11b81526004810191909152336024820152604490fd5b3461017e575f36600319011261017e5760206040515f8152f35b3461017e576103d66103c2610e453661030c565b92919091611f86565b3461017e57604036600319011261017e57610296602435600435610e7182610204565b805f525f602052610e88600160405f200154611a9f565b611bf0565b3461017e57602036600319011261017e577fe831d3df6fd78d681a5af6af6748127409a32ee8850b9767a6deb88e2c569a066020600435610ecd81610204565b610ed5611a49565b6001600160a01b0381169081610f02575b50600180546001600160a01b03191682179055604051908152a1005b610f0b9061148e565b5f610ee6565b3461017e5760a036600319011261017e5760243560443560048035610f3583610204565b60643560843591303303610df757610c44610f4f91612bf3565b938454945f5b868110610f5e57005b610f6e6102656102658385612c45565b604080516395ceaff760e01b81528881018b81526001600160a01b038716602082810191909152818401899052606082018a9052919082908290819060800103815f6001600160a01b0389165af19182156105a3575f92611017575b505015610fdb575050600101610f55565b51632eb4ed8b60e21b81526001600160a01b03918216818901908152918516602083015260408201869052606082018790529081906080010390fd5b61102d9250803d10610d2757610d188183610aff565b5f80610fca565b9081602091031261017e575190565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b6002111561106c57565b61104e565b600282101561106c5752565b90600182811c921680156110ab575b602083101461109757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161108c565b916110ce9183549060031b91821b915f19901b19161790565b9055565b8181106110dd575050565b5f81556001016110d2565b9190601f81116110f757505050565b610b2d925f5260205f20906020601f840160051c83019310611121575b601f0160051c01906110d2565b9091508190611114565b91908051600281101561106c5760ff80198554169116178355600180930190602080910151938451916001600160401b038311610ab15761117683611170865461107d565b866110e8565b602091601f84116001146111b457505081906110ce9394955f926111a9575b50508160011b915f199060031b1c19161790565b015190505f80611195565b95601f929192198416966111cb865f5260205f2090565b935f915b89831061120757505050836001959697106111ef575b505050811b019055565b01515f1960f88460031b161c191690555f80806111e5565b8385015186559485019493810193918101916111cf565b9060405161122b81610a96565b809261123b60ff82541683611071565b60018091019160405192835f8254946112538661107d565b93848452602096876001821691825f146112bf575050600114611283575b505061127f92500384610aff565b0152565b8692505f52815f20905f915b8583106112a757505061127f93508201015f80611271565b8054838a01850152889450879390920191810161128f565b925093505061127f94915060ff191682840152151560051b8201015f80611271565b634e487b7160e01b5f52601160045260245ffd5b90617530918083029283040361130757565b6112e1565b6001905f81550161131d815461107d565b9081611327575050565b81601f5f9311600114611338575055565b908083918252611357601f60208420940160051c8401600185016110d2565b5555565b929192611366611a49565b6001600160a01b031691823b1561017e57929060405193849263e80d2b1b60e01b8452806044850160406004870152526064840192905f905b8082106113db575050505f8381959381931515602483015203925af180156105a3576113c85750565b806113d5610b2d92610ab6565b80610617565b9180955093909293359063ffffffff821680920361017e576001918152602080910195019201869493929161139f565b9081602091031261017e575161142081610a09565b90565b9081518082526020808093019301915f5b828110611442575050505090565b835185529381019392810192600101611434565b92611420949261148092855260018060a01b03166020850152608060408501526080840190611423565b916060818403910152611423565b6040516301ffc9a760e01b808252600482018190526020916001600160a01b038416908381602481855afa9081156105a3575f91611605575b50159182156115b4575b8215611563575b821561150d575b505090506114ea5750565b604051637399908560e11b81526001600160a01b03919091166004820152602490fd5b604051908152639b961c4360e01b600482015291508290829060249082905afa9182156105a3575f92611546575b505015805f806114df565b61155c9250803d10610d2757610d188183610aff565b5f8061153b565b60405181815263d36dc3e760e01b60048201529092508381602481855afa9081156105a3575f91611597575b5015916114d8565b6115ae9150843d8611610d2757610d188183610aff565b5f61158f565b604051818152634c16b73960e01b60048201529092508381602481855afa9081156105a3575f916115e8575b5015916114d1565b6115ff9150843d8611610d2757610d188183610aff565b5f6115e0565b61161c9150843d8611610d2757610d188183610aff565b5f6114c7565b61162b81611b6b565b509190611636612a1e565b63ffffffff90811691168082036116a6575050604051635baeddc760e11b815260048101919091526001600160a01b0392831660248201529160209183916044918391165afa9081156105a3575f9161168d575090565b611420915060203d602011610d2757610d188183610aff565b6044925060405191633e7d56a360e11b835260048301526024820152fd5b82546001600160a01b0319166001600160a01b038316179092557f2c0c357a000a6048d4fe2568a458bd6496a3da51e3f7ff953a0d8340853789e691604080519182526001600160a01b03909216602082015290819081015b0390a1565b5f818152600260205260409020546001600160a01b039081169190821561174857505090565b6001541691508115611758575090565b60249060405190636da56ed360e11b82526004820152fd5b91909160a08184031261017e578035926020820135926040830135926001600160401b0392606082013584811161017e57816117ad918401610b73565b93608083013590811161017e576114209201610b73565b919060a08382031261017e5782356117db81610204565b926020810135926001600160401b0392604083013584811161017e5781611803918501610b73565b93606084013590811161017e5760809161181e918501610b73565b92013561142081610204565b6001600160401b038111610ab157601f01601f191660200190565b6040519061185282610ae4565b5f8252565b908160a091031261017e578035916020820135916040810135916080606083013592013590565b908160a091031261017e57803561189481610204565b916020820135916040810135916080606083013592013561142081610204565b9081602091031261017e573561142081610204565b91906001600160e01b03198116636cc6781d60e01b810361191e5750503461190c5761026581611904946118fe9301906118b4565b90612993565b611420611845565b6040516332a8d1d760e11b8152600490fd5b630a7bf5b160e01b810361194c5750503461190c5761026581611904946119469301906118b4565b90612923565b630df0c55b60e21b81036119b957505061196f816119b0946119aa93019061187e565b95909491939091906001600160a01b0316611988612a1e565b60a01b63ffffffff60a01b166001600160a01b0390911617614f4160f01b1790565b90612695565b50611420611845565b6303af76a960e51b81036119e557505080611420936119d9920190611857565b9493909392919261246a565b630b867c4160e11b8103611a0e57505061196f816119b094611a089301906117c4565b9061237e565b63dcf1a74760e01b03611a3857508061142093611a2c920190611770565b9493909392919261228b565b9291923461190c5761142093612118565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615611a8157565b60405163e2517d3f60e01b81523360048201525f6024820152604490fd5b5f8181526020818152604080832033845290915290205460ff1615611ac15750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16611b65575f818152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b90610bbb60f41b6001600160e01b0319831601611b9f5760018060a01b0382169063ffffffff808460a01c169360c01c1690565b604051631d9e6b1560e21b8152600490fd5b617a694614611bed57611bc2612a1e565b63ffffffff91821691168114611bd55750565b6024906040519063158c54c760e01b82526004820152fd5b50565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615611b65575f818152602081815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b929181019260608285031261017e576020611c90818401610169565b60408401356001600160401b03811161017e5784019086601f8301121561017e578135611cbc8161182a565b92611cca6040519485610aff565b8184528484019885838301011161017e57815f92868093018b37840101526001600160e01b03198116637d8bea8560e01b03611d1c575094611d159186610b2d96975101019061140b565b9135612aca565b60405163100c141b60e21b81526001600160e01b0319919091166004820152602490fd5b909160608280518101031261017e576020820151906060604084015193611d6685610204565b015193611d7285610204565b6001600160a01b039160209082018290031261017e5735611d9281610a09565b15611db657610b2d9350611dae825f52600260205260405f2090565b9216906116c4565b6040805192835293166001600160a01b031660208201527f891753802aef37606a49cfea5320d617c72219e061237d004729d5e3dec680cb929091508190810161171d565b90604051918281549182825260209260208301915f5260205f20935f905b828210611e2f57505050610b2d92500383610aff565b855484526001958601958895509381019390910190611e19565b90604051611e5681610ac9565b60a08193805483526001810154602084015260028101546040840152611e7e60038201611dfb565b6060840152611e8f60048201611dfb565b6080840152600501545f196001831b0116910152565b634e487b7160e01b5f52603260045260245ffd5b805115611ec65760200190565b611ea5565b8051821015611ec65760209160051b010190565b939092611f0892611420969486526020860152604085015260a0606085015260a0840190611423565b916080818403910152611423565b949060e094611f5e939498979863ffffffff6101009316885260018060a01b038096166020890152604088015263ffffffff861b166060870152806080870152850190610353565b94620b71b060a085015262061a8060c085015216910152565b9081602091031261017e573590565b91906001600160e01b03198116636863ae9960e01b8103611fde5750505090611fcc57611420611fb86108ad92612f3f565b604051928391602083019190602083019252565b604051637a30db8560e01b8152600490fd5b631bb0401b60e31b03612009575061142091612003826108ad95611fb8940190611f77565b90612f1f565b6114209392612daf565b9160608383031261017e57823561202981610204565b926001600160401b0392602082013584811161017e578161204b918401610b73565b93604083013590811161017e576114209201610b73565b9060808282031261017e57813561207881610204565b92602083013561208781610204565b926001600160401b0392604082013584811161017e57816120a9918401610b73565b93606083013590811161017e576114209201610b73565b9081606091031261017e5780356120d681610204565b916040602083013592013590565b919082608091031261017e5781356120fb81610204565b91602081013561210a81610204565b916060604083013592013590565b92906001600160e01b03198116637f4c824d60e11b810361215c5750508161214691611904949301906120e4565b9390926001600160a01b0392831692169061346e565b630ab714fb60e11b810361218f5750508161217d91611904949301906120c0565b9290916001600160a01b0316906133ca565b637a94c56560e11b81036121c2575050816121b091611904949301906120c0565b9290916001600160a01b0316906132c9565b6305feb5ff60e21b81036121f9575050816121e39161190494930190612062565b9390926001600160a01b0392831692169061323c565b6219506960e71b810361222b575050816122199161190494930190612013565b9290916001600160a01b031690613122565b637b75893d60e11b03611d1c57508161224a9161190494930190612013565b9290916001600160a01b031690612f71565b6003111561106c57565b908152637d8bea8560e01b602082015260606040820181905261142092910190610353565b92949091936122ac6122a5845f52600c60205260405f2090565b5460ff1690565b6122b58161225c565b61231157805194825186036122ff576122d061142097612bb5565b9190506122dd8287613529565b946122f96122eb8789613d2c565b5f52600660205260405f2090565b966135da565b60405163512509d360e11b8152600490fd5b50506001935061142092506122a5612331915f52600c60205260405f2090565b61233a8161225c565b60408051949091146020850152839081015b0390612360601f1992838101865285610aff565b61237260405194859260208401612266565b03908101835282610aff565b9594939291908251845181036122ff576123b461239a83612bb5565b90506123ae6123a886612bb5565b50611bb1565b89613529565b906123bf828a613d2c565b5f5260209160066020526040805f20915f9160028401925b8581106123ef57505050505050506114209596613d62565b8060051b8780828d010151918d010151815f52858952835f205481811061244157908291600194935f52878b52818103865f205514612430575b50016123d7565b61243a90876140a4565b505f612429565b9250926084955051936301815fa360e21b85526004850152602484015260448301526064820152fd5b9491939093845f52602092600c845260409460ff865f20541661248c8161225c565b6126485761249990612bb5565b9390506124a68489613529565b926124b46122eb858b613d2c565b946124c0848488613d07565b5f6124cd610c448c612bf3565b548061255b57505050509261252a926114209792612372956125096124fc6001965f52600c60205260405f2090565b805460ff19166001179055565b8415612549575b505050508451918291858301919091602081019215159052565b039361253e601f1995868101845283610aff565b519586938401612266565b61255293613ca0565b5f808080612510565b96939094919592965a61256d826112f5565b116126375761257b906112f5565b99303b1561017e578951633a6d298560e21b8152600481018d905260248101989098526001600160a01b039690961660448801526064870181905260848701829052611420996123729761252a97915f90829060a490829084903090f19081612624575b5061260b576125f9612606915f52600c60205260405f2090565b805460ff19166002179055565b612509565b94506126066124fc6001965f52600c60205260405f2090565b806113d561263192610ab6565b5f6125df565b89516317dba36160e01b8152600490fd5b50505050906108ad9060ff612668611420955f52600c60205260405f2090565b5416906126748261225c565b6001815192148483015283825261268a82610a96565b519485938401612266565b9495939290926126bb6126a785612bb5565b90506126b56123a886612bb5565b87613529565b956126c68782613d2c565b5f5260209760068952604097885f209060028201865f52808c528a5f2054918683106128fa575086918691835f528d528181038c5f2055146128e9575b505061270d612b92565b600754612722906001600160a01b0316610265565b6001600160a01b0396909590878716156128d8578a6127738b9c61274a859d9a9b9c9d612bb5565b9b819b518080958194633f75ed0360e21b83526004830191909163ffffffff6020820193169052565b03915afa9a8b156105a3578d915f9c6128b9575b50612790613a8f565b97612799613a8f565b996127a38a611eb9565b526127ad8a611eb9565b52846127b7610b2f565b88815284810186905292830152606082018890526080820189905285166001600160a01b031660a08201526127f48b5f52600b60205260405f2090565b906127fe91613f77565b612806610b3c565b9485528401528983015260608201839052608082018490526001600160a01b031660a082015260c0810186905263ffffffff841660e08201525f61010082015261284f906142e9565b9480860361289957509061288c917f1d436f66290f1c665bb21a4460a37456488615692e829b4ff35e497fc8d7b153959697519485948886614030565b0390a16114206001600955565b8751631e78a91d60e21b8152600481019190915260248101869052604490fd5b6128d1919c50833d851161059c5761058d8183610aff565b9a5f612787565b8951635d0b813f60e11b8152600490fd5b6128f2916140a4565b505f84612703565b60849087848a8f51936301815fa360e21b85526004850152602484015260448301526064820152fd5b61292c90612bf3565b5f52600a60205261294a60405f209160018060a01b031680926140a4565b156129815760407ff3bba0dc5cc8cc686f297080ee99b0e0c904b168ba1ae6668bf6ab926090f0a39181519081525f6020820152a1565b604051631fa82b8560e11b8152600490fd5b6001600160a01b03909116908115612a0c576129ae90612bf3565b5f52600a6020526129c28160405f2061414f565b156129fa5760407ff3bba0dc5cc8cc686f297080ee99b0e0c904b168ba1ae6668bf6ab926090f0a391815190815260016020820152a1565b604051636a06e04560e01b8152600490fd5b6040516373b086e160e11b8152600490fd5b63ffffffff80461115612a4357604051631874ab9360e31b8152466004820152602490fd5b461690565b80545f825580612a56575050565b610b2d915f5260205f20908101906110d2565b90600160401b8111610ab157815490808355818110612a8757505050565b610b2d925f5260205f2091820191016110d2565b60055f91828155826001820155826002820155612aba60038201612a48565b612ac660048201612a48565b0155565b909115612aec5750612ae7610b2d915f52600b60205260405f2090565b612a9b565b81610b2d925f52600b60205260405f209160405192612b0a84610ac9565b805484526001810154602085015260028101546040850152612b2e60038201611dfb565b6060850152612b3f60048201611dfb565b6080850152600501546001600160a01b031660a08401525f828152600b60205260409020612b6c90612a9b565b6137da565b805115612b8057805190602001fd5b60405163d6bda27560e01b8152600490fd5b600260095414612ba3576002600955565b604051633ee5aeb560e01b8152600490fd5b61b0bf60f01b6001600160c01b0319821601612be15763ffffffff60018060a01b0382169160a01c1691565b604051630acd895b60e11b8152600490fd5b5f526002602052600160405f2001908154918215612c0e5750565b915060016003540180600355809255565b8054821015611ec6575f5260205f2001905f90565b805415611ec6575f5260205f205490565b90612c4f91612c1f565b90549060031b1c90565b9190915f526002602052600260405f2001815f5260205260405f205415612c805750505f90565b815f5260405f2054908115612ca3575f5260405f20555f525f6040812055600190565b505050600190565b91909160408184031261017e576001600160401b0392813584811161017e5782019381601f8601121561017e576020948035612ce681610b5c565b91612cf46040519384610aff565b818352878084019260051b8201019185831161017e5788809201905b838210612d3057505050509483013590811161017e576114209201610b73565b8280918335612d3e81610204565b815201910190612d10565b906020611420928181520190611423565b91909160408184031261017e578035612d7281610204565b9260208201356001600160401b03811161017e576114209201610b73565b919082604091031261017e5760208235612da981610204565b92013590565b92906001600160e01b03198116627eeac760e11b8103612df45750506108ad92612de283611fb893611420950190612d90565b916001600160a01b0390911690613c0b565b6357eb484360e11b8103612e3c5750506108ad92612e1b83612e2d93611420950190612d5a565b916001600160a01b0390911690613b7f565b60405192839160208301612d49565b630d8a133d60e41b8103612e695750506108ad92612e6383612e2d93611420950190612cab565b91613adb565b63bd85b03960e01b8103612e965750506108ad92612e9083611fb893611420950190611f77565b90613a86565b63b42394f160e01b8103612ebb5750509050611fcc57611420611fb86108ad92613a7d565b634f558e7960e01b03612efb57506108ad92612ee083612ee693611420950190611f77565b90613a5b565b60408051911515602083015290928391820190565b60405163ae90617760e01b81526001600160e01b0319919091166004820152602490fd5b612f2890613c43565b9015611b65576001915f520160205260405f205490565b612f4890613c43565b9015612f52575490565b505f90565b9190820391821161130757565b9190820180921161130757565b929192835191835183036122ff57612f899082613529565b91612f976122eb8484613d2c565b90612fb2612fa484612bf3565b5f52600560205260405f2090565b915f915f9160019660018601915b83851061308f575050505050815481811061306757039055909290612ff690612fe890612bf3565b5f52600d60205260405f2090565b9281515f925f9460018701915b83871061301b5750505050506110ce91508254612f57565b9091929361305a81968860051b90613048602080848801015193880101519288905f5260205260405f2090565b613053838254612f57565b9055612f64565b9601959493929190613003565b604051636165989f60e11b81525f600482015260248101919091526044810191909152606490fd5b90919293948560051b90818c6020918291010151928c010151916130b585848387613ca0565b6130c78187905f5260205260405f2090565b548381106130fc579183916130eb8d956130f195039189905f5260205260405f2090565b55612f64565b950193929190612fc0565b604051636165989f60e11b81526004810192909252602482015260448101839052606490fd5b929192835191835183036122ff576122eb6131436131499284979597613529565b83613d2c565b93613156612fa483612bf3565b905f905f9060019760018501905b8284106131f35750505050918161318261318994612fe89454612f64565b9055612bf3565b9281515f925f9460018701915b8387106131ae5750505050506110ce91508254612f64565b909192936131e681968860051b906131db602080848801015193880101519288905f5260205260405f2090565b613053838254612f64565b9601959493929190613196565b909192939861322f89899b6131db849b8960051b809160209283910101519401015192613221848289613d07565b87905f5260205260405f2090565b9401929190989698613164565b91909493929485518451036122ff5761325861325f9184613529565b9183613529565b9161326a8282613d2c565b5f526132846122eb602094600660205260405f2093613d2c565b925f5b87518110156132bf57806132b960019260051b8480828d010151918a010151906132b38883838a613ca0565b88613d07565b01613287565b5050505050509050565b906132d76132f39183613529565b6132e18184613d2c565b5f526006602052848460405f20613ca0565b6132ff612fa482612bf3565b600181016133158482905f5260205260405f2090565b548581106133a2578486613332920392905f5260205260405f2090565b55805484811061337a57613357612fe8613372946110ce969488600195039055612bf3565b613362868254612f57565b815501905f5260205260405f2090565b918254612f57565b604051636165989f60e11b815260048101859052602481019190915260448101859052606490fd5b604051636165989f60e11b815260048101869052602481019190915260448101869052606490fd5b906133d86133de9183613529565b82613d2c565b5f52600660205260405f2091805f526002830160205260405f2080549085820180921161130757612fe861346694613421856110ce9860019661345b965561414f565b5061342b81612bf3565b5f52600560205260405f20855f5284810160205260405f2061344e8a8254612f64565b9055613182898254612f64565b613362868254612f64565b918254612f64565b9061348b6134846134a692979695949784613529565b9683613529565b6134958784613d2c565b5f52600660205260405f2092613d2c565b5f52600660205260405f209060028101835f528060205260405f2054968588106134ff575084610b2d96978592835f5260205281810360405f2055146134ee575b5050613d07565b6134f7916140a4565b505f826134e7565b608490868987604051936301815fa360e21b85526004850152602484015260448301526064820152fd5b61357b91602091906001600160a01b0361354283611722565b60405163575c53fb60e11b81526001600160a01b0390931660048401526024830193909352909384929190911690829081906044820190565b03915afa9081156105a3575f91613590575090565b611420915060203d60201161059c5761058d8183610aff565b939092611f089261142096948652602086015260018060a01b0316604085015260a0606085015260a0840190611423565b97959492969391965f5b8781106136d357505f97303b1561017e575f908a6136188787604051968795869563020a68b760e61b8752600487016135a9565b038183305af190816136c0575b506136a2576125f961363f915f52600c60205260405f2090565b8515613669575b50506040805194151560208601529394611420949093508592508201905061234c565b5f5b8581106136785750613646565b8061369c8661368960019486611ecb565b516136948488611ecb565b519088613ca0565b0161366b565b95506136bb6124fc6001975f52600c60205260405f2090565b61363f565b806113d56136cd92610ab6565b5f613625565b806136f66136e360019387611ecb565b516136ee8389611ecb565b519089613d07565b016135e4565b9491926137339361142097959287526020870152604086015260018060a01b0316606085015260c0608085015260c0840190611423565b9160a0818403910152611423565b939260e095600197926137819261378f959b9a9b61010092895260208901526040880152888060a01b038096166060880152806080880152860190611423565b9084820360a0860152611423565b951660c08201520152565b939260e0955f97926137819261378f959b9a9b6101009289526020890152604088015260018060a01b038096166060880152806080880152860190611423565b60a0830180519192916137f6906001600160a01b031684613529565b906138046122eb8386613d2c565b9160608601805151925f5b848110613a34575060409384890195865194613831845160018060a01b031690565b855160808d01978851303b1561017e576138628e915f948d51968795869563020a68b760e61b8752600487016135a9565b038183305af19081613a21575b506139db5790899695949392916138ac6122eb6138a661389f61026561026561389a610c448f612bf3565b612c34565b809b613529565b8d613d2c565b915f5b84811061398d57505050506020999099015186518251909a506001600160a01b0387811692911684519286519c813b1561017e575f80947f57e644b67a1937a9954fe31597528426730324f8673f0b9d94b2a48e7adbaa0f9f613928908c51988997889687956362894fc960e01b8752600487016135a9565b03925af1908161397a575b50613959579451945161171d95906001600160a01b03169151925193519788978861379a565b9451945161171d95906001600160a01b031691519251935197889788613741565b806113d561398792610ab6565b5f613933565b806139b38461399f6001948b51611ecb565b516139ab848d51611ecb565b519086613ca0565b6139d56139c1828a51611ecb565b516139cd838c51611ecb565b519087613d07565b016138af565b5050945190517f145cbbce09f3cfca7f7ee7ca9fda10b4c6191250c8d9d5ba8451426d75c6c722985061171d95506001600160a01b0316915192519351968796876136fc565b806113d5613a2e92610ab6565b5f61386f565b80613a558a6136ee836080613a4c6001978a51611ecb565b51930151611ecb565b0161380f565b613a64906141b2565b9015611b65576001915f520160205260405f2054151590565b612f48906141b2565b612f28906141b2565b60405190613a9c82610a96565b6001825260203681840137565b90613ab382610b5c565b613ac06040519182610aff565b8281528092613ad1601f1991610b5c565b0190602036910137565b91929092805190818551036122ff57613af382613aa9565b935f5b838110613b065750505050909150565b8060019160051b602090613b1f82828c0101518661420f565b9182613b3b575050505f613b338289611ecb565b525b01613af6565b613b4a91870101519185614282565b919015613b77576002613b659201905f5260205260405f2090565b545b613b718289611ecb565b52613b35565b50505f613b67565b929091805190613b8e82613aa9565b935f5b838110613ba15750505050909150565b6001906020808260051b86010151613bb9858b61420f565b80613bd4575050505f613bcc8289611ecb565b525b01613b91565b613bde908b614282565b9015613c02576002915f5201905260405f20545b613bfc8289611ecb565b52613bce565b5050505f613bf2565b90613c16908261420f565b8015613c3c57613c2591614282565b9015611b65576002915f520160205260405f205490565b5050505f90565b613c576001915f52600260205260405f2090565b01548015613c71575f52600d60205260405f209060019190565b505f808052600d602052907f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee90565b9291909160028401835f528060205260405f205491838310613cdd5750835f5260205281810360405f205514613cd4575050565b611bed916140a4565b608490848487604051936301815fa360e21b85526004850152602484015260448301526064820152fd5b815f526002810160205260405f2092835490810180911161130757611bed935561414f565b5f526002602052600260405f2001905f5260205260405f20908154918215613d515750565b915060016004540180600455809255565b9391929093613d6f612b92565b600754613d84906001600160a01b0316610265565b956001600160a01b0394858816156105ba57613d9f81612bb5565b604051633f75ed0360e21b815263ffffffff831660048201529990989197906020908b9060249082905afa998a156105a3575f9a613ef8575b5091613e8b949391613e38613e6b94613e21613df2610b2f565b918883528460208401528560408401528a60608401528b6080840152861660a083019060018060a01b03169052565b613e338d5f52600b60205260405f2090565b613f77565b613e40610b3c565b9485526020850152604084015260608301859052608083018690526001600160a01b031660a0830152565b60c0810187905263ffffffff851660e082015260016101008201526142e9565b94808603613ed757507f1d436f66290f1c665bb21a4460a37456488615692e829b4ff35e497fc8d7b153939291613ec9916040519485948886614030565b0390a190610b2d6001600955565b604051631e78a91d60e21b8152600481019190915260248101869052604490fd5b613e6b93919a5091613e38613f20613e8b97969460203d60201161059c5761058d8183610aff565b9b92945050919394613dd8565b8151916001600160401b038311610ab157613f488383612a69565b6020809101915f5260205f20905f5b848110613f65575050505050565b83518382015592810192600101613f57565b90805182556001602080830151600185015560408301516002850155600384016060840151918251926001600160401b038411610ab157602090613fbb8585612a69565b01915f5260205f20905f5b84811061401f57505050505050906005613ffe60a084613ff06080610b2d97015160048701613f2d565b01516001600160a01b031690565b910180546001600160a01b0319166001600160a01b03909216919091179055565b835183820155928101928501613fc6565b93909263ffffffff611f08936114209795875216602086015260018060a01b0316604085015260a0606085015260a0840190611423565b8054908115614090575f19918201916140808383612c1f565b909182549160031b1b1916905555565b634e487b7160e01b5f52603160045260245ffd5b6001810191805f528260205260405f2054928315155f14614147575f199284840190858211611307578054948501948511611307575f958583614100976140f39503614106575b505050614067565b905f5260205260405f2090565b55600190565b61413061412a9161411a61413e9487612c1f565b90549060031b1c92839187612c1f565b906110b5565b85905f5260205260405f2090565b555f80806140eb565b505050505f90565b6001810190825f528160205260405f2054155f14613c3c578054600160401b811015610ab15761419f614189826001879401855584612c1f565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b6141c66001915f52600260205260405f2090565b015480156141e0575f52600560205260405f209060019190565b505f8080526005602052907f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc90565b6142188161440d565b9015613c3c5760405163575c53fb60e11b60208201526001600160a01b03939093166024840152604480840192909252908252614269919061425b606483610aff565b6001600160a01b031661444f565b9015612f52578060208061142093518301019101611034565b6142966002915f52600260205260405f2090565b01905f5260205260405f205480156142ba575f52600660205260405f209060019190565b505f8080526006602052907f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f890565b610100810151156143a157602060c082015161432482840151916108ad60408601516060870151608088015191604051968795898701611edf565b9163dcf1a74760e01b905b600754614344906001600160a01b0316610265565b9061435660e082015163ffffffff1690565b815160a09092015161438a906001600160a01b0316604051638b0729b760e01b815297889687958695309060048801611f16565b039134905af19081156105a3575f91613590575090565b602060c08201516143fe82840151916108ad60408601516143c56060880151611eb9565b516143d36080890151611eb9565b5160408051898101968752602087019890985285019290925260608401526080830152839160a00190565b916303af76a960e51b9061432f565b5f908152600260205260409020546001600160a01b0390811691908215614436575b5060019190565b6001541691508115614448575f61442f565b5f91508190565b919091803b1561449e576040519261446684610a96565b5f8060209283875283870194843687378482519201906132c8fa913d91808311614496575b505f908286523e9190565b91505f61448b565b5060405191506144ad82610ae4565b5f82525f3681375f919056fea2646970667358221220b01abed8796462427948eb8a3872152766a8a422ddb4df560f2a779a7734b52764736f6c63430008180033ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5
Deployed Bytecode
0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a714610164578063248a9ca31461015f57806327b452171461015a57806329cc42ad146101555780632f2ff15d146101505780632ffaf0261461014b57806336568abe146101465780636e5a7157146101415780636ec50a2f1461013c5780636f71c0d414610137578063750f2fbe146101325780637846f8011461012d5780637e55534114610128578063829a2dc01461012357806391d148541461011e57806398977c7014610119578063a217fddf14610114578063b7c0ee221461010f578063d547741f1461010a578063e2e92c8e146101055763e9b4a61414610100575f80fd5b610f11565b610e8d565b610e4e565b610e31565b610e17565b610da1565b610d50565b610bd3565b610a13565b61080f565b610795565b610710565b610649565b610621565b6105cc565b610438565b6103f9565b610391565b610215565b6101d8565b610182565b35906001600160e01b03198216820361017e57565b5f80fd5b3461017e57602036600319011261017e5760043563ffffffff60e01b811680910361017e57602090637965db0b60e01b81149081156101c7575b506040519015158152f35b6301ffc9a760e01b1490505f6101bc565b3461017e57602036600319011261017e576004355f525f6020526020600160405f200154604051908152f35b6001600160a01b0381160361017e57565b3461017e57604036600319011261017e5760043560243561023581610204565b61023e8161148e565b610250825f52600260205260405f2090565b80549091906001600160a01b03906102719082165b6001600160a01b031690565b16806102b757506102896102853385611622565b1590565b61029857610296926116c4565b005b60405163547a689160e11b815260048101849052336024820152604490fd5b331415806102cc5761029857610296926116c4565b506102da6102853385611622565b610289565b9181601f8401121561017e578235916001600160401b03831161017e576020838186019501011161017e57565b606060031982011261017e57600435916024356001600160e01b03198116810361017e5791604435906001600160401b03821161017e5761034f916004016102df565b9091565b91908251928382525f5b84811061037d575050825f602080949584010152601f8019910116010190565b60208183018101518483018201520161035d565b61039a3661030c565b916001600160a01b036103ac85611722565b1633036103da57906103c292916103d6946118c9565b604051918291602083526020830190610353565b0390f35b60405163547a689160e11b815260048101859052336024820152604490fd5b3461017e57604036600319011261017e5761029660243560043561041c82610204565b805f525f602052610433600160405f200154611a9f565b611adf565b606036600319011261017e5760243560043561045382610204565b60443561045f81610204565b600754610474906001600160a01b0316610265565b6001600160a01b03818116156105ba578216156105a8576104fa9160209161049b8661148e565b6104ae6104a786611b6b565b5050611bb1565b6040516326d752bb60e01b815260048101869052336024820152620f42406044820152620186a060648201526001600160a01b03909216608483015290928391908290819060a4820190565b039134905af180156105a35761029693610569925f9261056e575b506040805160208101959095526001600160a01b039190911690840152336060808501919091528352610549608084610aff565b610551610b20565b600181529260208401525f52600860205260405f2090565b61112b565b6105499192506105959060203d60201161059c575b61058d8183610aff565b810190611034565b9190610515565b503d610583565b611043565b60405163334945f560e11b8152600490fd5b604051635d0b813f60e11b8152600490fd5b3461017e57604036600319011261017e576024356105e981610204565b336001600160a01b038216036106055761029690600435611bf0565b60405163334bd91960e11b8152600490fd5b5f91031261017e57565b3461017e575f36600319011261017e576001546040516001600160a01b039091168152602090f35b3461017e57604036600319011261017e576004356024356001600160401b03811161017e5761067c9036906004016102df565b6007549091906001600160a01b031633036106f8576106ab6106a6845f52600860205260405f2090565b61121e565b92600184516106b981611062565b6106c281611062565b036106ee57610296936106e76106e26020935f52600860205260405f2090565b61130c565b0151611d40565b6102969350611c74565b60405163078c49f560e41b8152336004820152602490fd5b3461017e575f36600319011261017e57610728611a49565b47804710610775575f80808093335af13d1561076d573d906107498261182a565b916107576040519384610aff565b82523d5f602084013e5b1561076857005b612b71565b606090610761565b60405163cf47918160e01b81524760048201526024810191909152604490fd5b3461017e57602036600319011261017e576004356107b281610204565b6107ba611a49565b6001600160a01b031680156105ba576020817f71eb9acdb256a6e7688233609a0167c44626beac2b0736a20cb61a51e81a08f1926bffffffffffffffffffffffff60a01b6007541617600755604051908152a1005b60408060031936011261017e576024359060043561082c83610204565b610834612b92565b6001600160a01b038316156109f85761085d610858825f52600b60205260405f2090565b611e49565b8051156109de57808360209201906108758251612bb5565b50916060820190815160018151115f1461097b57506108bb906108ad86850151915193516080860151908a519586948b8b8701611edf565b03601f198101835282610aff565b9563dcf1a74760e01b925b600754610900906108df906001600160a01b0316610265565b9351928851998a9687958695638b0729b760e01b8752309060048801611f16565b039134905af19182156105a3577f843963dea6a9a0f7c5b9bbfb4e724acbc791472e4e2993e484948c76f7d4e48e935f93610956575b5051908152602081019190915280604081015b0390a16102966001600955565b6109499193506109749060203d60201161059c5761058d8183610aff565b9290610936565b91506109cf906108ad61099387860151925194611eb9565b516109a16080870151611eb9565b518a518981018b81526020810195909552604085019690965260608401919091526080830152839160a00190565b956303af76a960e51b926108c6565b50905163a48032d560e01b81526004810191909152602490fd5b815163334945f560e11b8152600490fd5b8015150361017e57565b3461017e57606036600319011261017e57600435610a3081610204565b6024356001600160401b0380821161017e573660238301121561017e57816004013590811161017e573660248260051b8401011161017e5761029692602460443593610a7b85610a09565b019061135b565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b03821117610ab157604052565b610a82565b6001600160401b038111610ab157604052565b60c081019081106001600160401b03821117610ab157604052565b602081019081106001600160401b03821117610ab157604052565b90601f801991011681019081106001600160401b03821117610ab157604052565b60405190610b2d82610a96565b565b60405190610b2d82610ac9565b6040519061012082018281106001600160401b03821117610ab157604052565b6001600160401b038111610ab15760051b60200190565b9080601f8301121561017e576020908235610b8d81610b5c565b93610b9b6040519586610aff565b81855260208086019260051b82010192831161017e57602001905b828210610bc4575050505090565b81358152908301908301610bb6565b3461017e5760a036600319011261017e57600480359060243590604435610bf981610204565b6001600160401b0360643581811161017e57610c189036908501610b73565b9060843590811161017e57610c309036908501610b73565b94303303610d2e57610c44610c5291612bf3565b5f52600a60205260405f2090565b938454945f5b868110610c6157005b610c716102656102658385612c45565b6040848a89888a610c98865194859384936318705f0760e01b855260209889978601611456565b03815f6001600160a01b0389165af19182156105a3575f92610d01575b505015610cc6575050600101610c58565b51632eb4ed8b60e21b81526001600160a01b0391821681890190815291871660208301525f6040830181905260608301529081906080010390fd5b610d209250803d10610d27575b610d188183610aff565b81019061140b565b5f80610cb5565b503d610d0e565b6040805163547a689160e11b8152808601928352336020840152918291010390fd5b3461017e57604036600319011261017e57602060ff610d95602435610d7481610204565b6004355f525f845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461017e57606036600319011261017e576004356001600160a01b03610dc682611722565b163303610df757610dde906044359060243590612c59565b15610de557005b6040516321463f5360e01b8152600490fd5b60405163547a689160e11b81526004810191909152336024820152604490fd5b3461017e575f36600319011261017e5760206040515f8152f35b3461017e576103d66103c2610e453661030c565b92919091611f86565b3461017e57604036600319011261017e57610296602435600435610e7182610204565b805f525f602052610e88600160405f200154611a9f565b611bf0565b3461017e57602036600319011261017e577fe831d3df6fd78d681a5af6af6748127409a32ee8850b9767a6deb88e2c569a066020600435610ecd81610204565b610ed5611a49565b6001600160a01b0381169081610f02575b50600180546001600160a01b03191682179055604051908152a1005b610f0b9061148e565b5f610ee6565b3461017e5760a036600319011261017e5760243560443560048035610f3583610204565b60643560843591303303610df757610c44610f4f91612bf3565b938454945f5b868110610f5e57005b610f6e6102656102658385612c45565b604080516395ceaff760e01b81528881018b81526001600160a01b038716602082810191909152818401899052606082018a9052919082908290819060800103815f6001600160a01b0389165af19182156105a3575f92611017575b505015610fdb575050600101610f55565b51632eb4ed8b60e21b81526001600160a01b03918216818901908152918516602083015260408201869052606082018790529081906080010390fd5b61102d9250803d10610d2757610d188183610aff565b5f80610fca565b9081602091031261017e575190565b6040513d5f823e3d90fd5b634e487b7160e01b5f52602160045260245ffd5b6002111561106c57565b61104e565b600282101561106c5752565b90600182811c921680156110ab575b602083101461109757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161108c565b916110ce9183549060031b91821b915f19901b19161790565b9055565b8181106110dd575050565b5f81556001016110d2565b9190601f81116110f757505050565b610b2d925f5260205f20906020601f840160051c83019310611121575b601f0160051c01906110d2565b9091508190611114565b91908051600281101561106c5760ff80198554169116178355600180930190602080910151938451916001600160401b038311610ab15761117683611170865461107d565b866110e8565b602091601f84116001146111b457505081906110ce9394955f926111a9575b50508160011b915f199060031b1c19161790565b015190505f80611195565b95601f929192198416966111cb865f5260205f2090565b935f915b89831061120757505050836001959697106111ef575b505050811b019055565b01515f1960f88460031b161c191690555f80806111e5565b8385015186559485019493810193918101916111cf565b9060405161122b81610a96565b809261123b60ff82541683611071565b60018091019160405192835f8254946112538661107d565b93848452602096876001821691825f146112bf575050600114611283575b505061127f92500384610aff565b0152565b8692505f52815f20905f915b8583106112a757505061127f93508201015f80611271565b8054838a01850152889450879390920191810161128f565b925093505061127f94915060ff191682840152151560051b8201015f80611271565b634e487b7160e01b5f52601160045260245ffd5b90617530918083029283040361130757565b6112e1565b6001905f81550161131d815461107d565b9081611327575050565b81601f5f9311600114611338575055565b908083918252611357601f60208420940160051c8401600185016110d2565b5555565b929192611366611a49565b6001600160a01b031691823b1561017e57929060405193849263e80d2b1b60e01b8452806044850160406004870152526064840192905f905b8082106113db575050505f8381959381931515602483015203925af180156105a3576113c85750565b806113d5610b2d92610ab6565b80610617565b9180955093909293359063ffffffff821680920361017e576001918152602080910195019201869493929161139f565b9081602091031261017e575161142081610a09565b90565b9081518082526020808093019301915f5b828110611442575050505090565b835185529381019392810192600101611434565b92611420949261148092855260018060a01b03166020850152608060408501526080840190611423565b916060818403910152611423565b6040516301ffc9a760e01b808252600482018190526020916001600160a01b038416908381602481855afa9081156105a3575f91611605575b50159182156115b4575b8215611563575b821561150d575b505090506114ea5750565b604051637399908560e11b81526001600160a01b03919091166004820152602490fd5b604051908152639b961c4360e01b600482015291508290829060249082905afa9182156105a3575f92611546575b505015805f806114df565b61155c9250803d10610d2757610d188183610aff565b5f8061153b565b60405181815263d36dc3e760e01b60048201529092508381602481855afa9081156105a3575f91611597575b5015916114d8565b6115ae9150843d8611610d2757610d188183610aff565b5f61158f565b604051818152634c16b73960e01b60048201529092508381602481855afa9081156105a3575f916115e8575b5015916114d1565b6115ff9150843d8611610d2757610d188183610aff565b5f6115e0565b61161c9150843d8611610d2757610d188183610aff565b5f6114c7565b61162b81611b6b565b509190611636612a1e565b63ffffffff90811691168082036116a6575050604051635baeddc760e11b815260048101919091526001600160a01b0392831660248201529160209183916044918391165afa9081156105a3575f9161168d575090565b611420915060203d602011610d2757610d188183610aff565b6044925060405191633e7d56a360e11b835260048301526024820152fd5b82546001600160a01b0319166001600160a01b038316179092557f2c0c357a000a6048d4fe2568a458bd6496a3da51e3f7ff953a0d8340853789e691604080519182526001600160a01b03909216602082015290819081015b0390a1565b5f818152600260205260409020546001600160a01b039081169190821561174857505090565b6001541691508115611758575090565b60249060405190636da56ed360e11b82526004820152fd5b91909160a08184031261017e578035926020820135926040830135926001600160401b0392606082013584811161017e57816117ad918401610b73565b93608083013590811161017e576114209201610b73565b919060a08382031261017e5782356117db81610204565b926020810135926001600160401b0392604083013584811161017e5781611803918501610b73565b93606084013590811161017e5760809161181e918501610b73565b92013561142081610204565b6001600160401b038111610ab157601f01601f191660200190565b6040519061185282610ae4565b5f8252565b908160a091031261017e578035916020820135916040810135916080606083013592013590565b908160a091031261017e57803561189481610204565b916020820135916040810135916080606083013592013561142081610204565b9081602091031261017e573561142081610204565b91906001600160e01b03198116636cc6781d60e01b810361191e5750503461190c5761026581611904946118fe9301906118b4565b90612993565b611420611845565b6040516332a8d1d760e11b8152600490fd5b630a7bf5b160e01b810361194c5750503461190c5761026581611904946119469301906118b4565b90612923565b630df0c55b60e21b81036119b957505061196f816119b0946119aa93019061187e565b95909491939091906001600160a01b0316611988612a1e565b60a01b63ffffffff60a01b166001600160a01b0390911617614f4160f01b1790565b90612695565b50611420611845565b6303af76a960e51b81036119e557505080611420936119d9920190611857565b9493909392919261246a565b630b867c4160e11b8103611a0e57505061196f816119b094611a089301906117c4565b9061237e565b63dcf1a74760e01b03611a3857508061142093611a2c920190611770565b9493909392919261228b565b9291923461190c5761142093612118565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615611a8157565b60405163e2517d3f60e01b81523360048201525f6024820152604490fd5b5f8181526020818152604080832033845290915290205460ff1615611ac15750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16611b65575f818152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b90610bbb60f41b6001600160e01b0319831601611b9f5760018060a01b0382169063ffffffff808460a01c169360c01c1690565b604051631d9e6b1560e21b8152600490fd5b617a694614611bed57611bc2612a1e565b63ffffffff91821691168114611bd55750565b6024906040519063158c54c760e01b82526004820152fd5b50565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615611b65575f818152602081815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b929181019260608285031261017e576020611c90818401610169565b60408401356001600160401b03811161017e5784019086601f8301121561017e578135611cbc8161182a565b92611cca6040519485610aff565b8184528484019885838301011161017e57815f92868093018b37840101526001600160e01b03198116637d8bea8560e01b03611d1c575094611d159186610b2d96975101019061140b565b9135612aca565b60405163100c141b60e21b81526001600160e01b0319919091166004820152602490fd5b909160608280518101031261017e576020820151906060604084015193611d6685610204565b015193611d7285610204565b6001600160a01b039160209082018290031261017e5735611d9281610a09565b15611db657610b2d9350611dae825f52600260205260405f2090565b9216906116c4565b6040805192835293166001600160a01b031660208201527f891753802aef37606a49cfea5320d617c72219e061237d004729d5e3dec680cb929091508190810161171d565b90604051918281549182825260209260208301915f5260205f20935f905b828210611e2f57505050610b2d92500383610aff565b855484526001958601958895509381019390910190611e19565b90604051611e5681610ac9565b60a08193805483526001810154602084015260028101546040840152611e7e60038201611dfb565b6060840152611e8f60048201611dfb565b6080840152600501545f196001831b0116910152565b634e487b7160e01b5f52603260045260245ffd5b805115611ec65760200190565b611ea5565b8051821015611ec65760209160051b010190565b939092611f0892611420969486526020860152604085015260a0606085015260a0840190611423565b916080818403910152611423565b949060e094611f5e939498979863ffffffff6101009316885260018060a01b038096166020890152604088015263ffffffff861b166060870152806080870152850190610353565b94620b71b060a085015262061a8060c085015216910152565b9081602091031261017e573590565b91906001600160e01b03198116636863ae9960e01b8103611fde5750505090611fcc57611420611fb86108ad92612f3f565b604051928391602083019190602083019252565b604051637a30db8560e01b8152600490fd5b631bb0401b60e31b03612009575061142091612003826108ad95611fb8940190611f77565b90612f1f565b6114209392612daf565b9160608383031261017e57823561202981610204565b926001600160401b0392602082013584811161017e578161204b918401610b73565b93604083013590811161017e576114209201610b73565b9060808282031261017e57813561207881610204565b92602083013561208781610204565b926001600160401b0392604082013584811161017e57816120a9918401610b73565b93606083013590811161017e576114209201610b73565b9081606091031261017e5780356120d681610204565b916040602083013592013590565b919082608091031261017e5781356120fb81610204565b91602081013561210a81610204565b916060604083013592013590565b92906001600160e01b03198116637f4c824d60e11b810361215c5750508161214691611904949301906120e4565b9390926001600160a01b0392831692169061346e565b630ab714fb60e11b810361218f5750508161217d91611904949301906120c0565b9290916001600160a01b0316906133ca565b637a94c56560e11b81036121c2575050816121b091611904949301906120c0565b9290916001600160a01b0316906132c9565b6305feb5ff60e21b81036121f9575050816121e39161190494930190612062565b9390926001600160a01b0392831692169061323c565b6219506960e71b810361222b575050816122199161190494930190612013565b9290916001600160a01b031690613122565b637b75893d60e11b03611d1c57508161224a9161190494930190612013565b9290916001600160a01b031690612f71565b6003111561106c57565b908152637d8bea8560e01b602082015260606040820181905261142092910190610353565b92949091936122ac6122a5845f52600c60205260405f2090565b5460ff1690565b6122b58161225c565b61231157805194825186036122ff576122d061142097612bb5565b9190506122dd8287613529565b946122f96122eb8789613d2c565b5f52600660205260405f2090565b966135da565b60405163512509d360e11b8152600490fd5b50506001935061142092506122a5612331915f52600c60205260405f2090565b61233a8161225c565b60408051949091146020850152839081015b0390612360601f1992838101865285610aff565b61237260405194859260208401612266565b03908101835282610aff565b9594939291908251845181036122ff576123b461239a83612bb5565b90506123ae6123a886612bb5565b50611bb1565b89613529565b906123bf828a613d2c565b5f5260209160066020526040805f20915f9160028401925b8581106123ef57505050505050506114209596613d62565b8060051b8780828d010151918d010151815f52858952835f205481811061244157908291600194935f52878b52818103865f205514612430575b50016123d7565b61243a90876140a4565b505f612429565b9250926084955051936301815fa360e21b85526004850152602484015260448301526064820152fd5b9491939093845f52602092600c845260409460ff865f20541661248c8161225c565b6126485761249990612bb5565b9390506124a68489613529565b926124b46122eb858b613d2c565b946124c0848488613d07565b5f6124cd610c448c612bf3565b548061255b57505050509261252a926114209792612372956125096124fc6001965f52600c60205260405f2090565b805460ff19166001179055565b8415612549575b505050508451918291858301919091602081019215159052565b039361253e601f1995868101845283610aff565b519586938401612266565b61255293613ca0565b5f808080612510565b96939094919592965a61256d826112f5565b116126375761257b906112f5565b99303b1561017e578951633a6d298560e21b8152600481018d905260248101989098526001600160a01b039690961660448801526064870181905260848701829052611420996123729761252a97915f90829060a490829084903090f19081612624575b5061260b576125f9612606915f52600c60205260405f2090565b805460ff19166002179055565b612509565b94506126066124fc6001965f52600c60205260405f2090565b806113d561263192610ab6565b5f6125df565b89516317dba36160e01b8152600490fd5b50505050906108ad9060ff612668611420955f52600c60205260405f2090565b5416906126748261225c565b6001815192148483015283825261268a82610a96565b519485938401612266565b9495939290926126bb6126a785612bb5565b90506126b56123a886612bb5565b87613529565b956126c68782613d2c565b5f5260209760068952604097885f209060028201865f52808c528a5f2054918683106128fa575086918691835f528d528181038c5f2055146128e9575b505061270d612b92565b600754612722906001600160a01b0316610265565b6001600160a01b0396909590878716156128d8578a6127738b9c61274a859d9a9b9c9d612bb5565b9b819b518080958194633f75ed0360e21b83526004830191909163ffffffff6020820193169052565b03915afa9a8b156105a3578d915f9c6128b9575b50612790613a8f565b97612799613a8f565b996127a38a611eb9565b526127ad8a611eb9565b52846127b7610b2f565b88815284810186905292830152606082018890526080820189905285166001600160a01b031660a08201526127f48b5f52600b60205260405f2090565b906127fe91613f77565b612806610b3c565b9485528401528983015260608201839052608082018490526001600160a01b031660a082015260c0810186905263ffffffff841660e08201525f61010082015261284f906142e9565b9480860361289957509061288c917f1d436f66290f1c665bb21a4460a37456488615692e829b4ff35e497fc8d7b153959697519485948886614030565b0390a16114206001600955565b8751631e78a91d60e21b8152600481019190915260248101869052604490fd5b6128d1919c50833d851161059c5761058d8183610aff565b9a5f612787565b8951635d0b813f60e11b8152600490fd5b6128f2916140a4565b505f84612703565b60849087848a8f51936301815fa360e21b85526004850152602484015260448301526064820152fd5b61292c90612bf3565b5f52600a60205261294a60405f209160018060a01b031680926140a4565b156129815760407ff3bba0dc5cc8cc686f297080ee99b0e0c904b168ba1ae6668bf6ab926090f0a39181519081525f6020820152a1565b604051631fa82b8560e11b8152600490fd5b6001600160a01b03909116908115612a0c576129ae90612bf3565b5f52600a6020526129c28160405f2061414f565b156129fa5760407ff3bba0dc5cc8cc686f297080ee99b0e0c904b168ba1ae6668bf6ab926090f0a391815190815260016020820152a1565b604051636a06e04560e01b8152600490fd5b6040516373b086e160e11b8152600490fd5b63ffffffff80461115612a4357604051631874ab9360e31b8152466004820152602490fd5b461690565b80545f825580612a56575050565b610b2d915f5260205f20908101906110d2565b90600160401b8111610ab157815490808355818110612a8757505050565b610b2d925f5260205f2091820191016110d2565b60055f91828155826001820155826002820155612aba60038201612a48565b612ac660048201612a48565b0155565b909115612aec5750612ae7610b2d915f52600b60205260405f2090565b612a9b565b81610b2d925f52600b60205260405f209160405192612b0a84610ac9565b805484526001810154602085015260028101546040850152612b2e60038201611dfb565b6060850152612b3f60048201611dfb565b6080850152600501546001600160a01b031660a08401525f828152600b60205260409020612b6c90612a9b565b6137da565b805115612b8057805190602001fd5b60405163d6bda27560e01b8152600490fd5b600260095414612ba3576002600955565b604051633ee5aeb560e01b8152600490fd5b61b0bf60f01b6001600160c01b0319821601612be15763ffffffff60018060a01b0382169160a01c1691565b604051630acd895b60e11b8152600490fd5b5f526002602052600160405f2001908154918215612c0e5750565b915060016003540180600355809255565b8054821015611ec6575f5260205f2001905f90565b805415611ec6575f5260205f205490565b90612c4f91612c1f565b90549060031b1c90565b9190915f526002602052600260405f2001815f5260205260405f205415612c805750505f90565b815f5260405f2054908115612ca3575f5260405f20555f525f6040812055600190565b505050600190565b91909160408184031261017e576001600160401b0392813584811161017e5782019381601f8601121561017e576020948035612ce681610b5c565b91612cf46040519384610aff565b818352878084019260051b8201019185831161017e5788809201905b838210612d3057505050509483013590811161017e576114209201610b73565b8280918335612d3e81610204565b815201910190612d10565b906020611420928181520190611423565b91909160408184031261017e578035612d7281610204565b9260208201356001600160401b03811161017e576114209201610b73565b919082604091031261017e5760208235612da981610204565b92013590565b92906001600160e01b03198116627eeac760e11b8103612df45750506108ad92612de283611fb893611420950190612d90565b916001600160a01b0390911690613c0b565b6357eb484360e11b8103612e3c5750506108ad92612e1b83612e2d93611420950190612d5a565b916001600160a01b0390911690613b7f565b60405192839160208301612d49565b630d8a133d60e41b8103612e695750506108ad92612e6383612e2d93611420950190612cab565b91613adb565b63bd85b03960e01b8103612e965750506108ad92612e9083611fb893611420950190611f77565b90613a86565b63b42394f160e01b8103612ebb5750509050611fcc57611420611fb86108ad92613a7d565b634f558e7960e01b03612efb57506108ad92612ee083612ee693611420950190611f77565b90613a5b565b60408051911515602083015290928391820190565b60405163ae90617760e01b81526001600160e01b0319919091166004820152602490fd5b612f2890613c43565b9015611b65576001915f520160205260405f205490565b612f4890613c43565b9015612f52575490565b505f90565b9190820391821161130757565b9190820180921161130757565b929192835191835183036122ff57612f899082613529565b91612f976122eb8484613d2c565b90612fb2612fa484612bf3565b5f52600560205260405f2090565b915f915f9160019660018601915b83851061308f575050505050815481811061306757039055909290612ff690612fe890612bf3565b5f52600d60205260405f2090565b9281515f925f9460018701915b83871061301b5750505050506110ce91508254612f57565b9091929361305a81968860051b90613048602080848801015193880101519288905f5260205260405f2090565b613053838254612f57565b9055612f64565b9601959493929190613003565b604051636165989f60e11b81525f600482015260248101919091526044810191909152606490fd5b90919293948560051b90818c6020918291010151928c010151916130b585848387613ca0565b6130c78187905f5260205260405f2090565b548381106130fc579183916130eb8d956130f195039189905f5260205260405f2090565b55612f64565b950193929190612fc0565b604051636165989f60e11b81526004810192909252602482015260448101839052606490fd5b929192835191835183036122ff576122eb6131436131499284979597613529565b83613d2c565b93613156612fa483612bf3565b905f905f9060019760018501905b8284106131f35750505050918161318261318994612fe89454612f64565b9055612bf3565b9281515f925f9460018701915b8387106131ae5750505050506110ce91508254612f64565b909192936131e681968860051b906131db602080848801015193880101519288905f5260205260405f2090565b613053838254612f64565b9601959493929190613196565b909192939861322f89899b6131db849b8960051b809160209283910101519401015192613221848289613d07565b87905f5260205260405f2090565b9401929190989698613164565b91909493929485518451036122ff5761325861325f9184613529565b9183613529565b9161326a8282613d2c565b5f526132846122eb602094600660205260405f2093613d2c565b925f5b87518110156132bf57806132b960019260051b8480828d010151918a010151906132b38883838a613ca0565b88613d07565b01613287565b5050505050509050565b906132d76132f39183613529565b6132e18184613d2c565b5f526006602052848460405f20613ca0565b6132ff612fa482612bf3565b600181016133158482905f5260205260405f2090565b548581106133a2578486613332920392905f5260205260405f2090565b55805484811061337a57613357612fe8613372946110ce969488600195039055612bf3565b613362868254612f57565b815501905f5260205260405f2090565b918254612f57565b604051636165989f60e11b815260048101859052602481019190915260448101859052606490fd5b604051636165989f60e11b815260048101869052602481019190915260448101869052606490fd5b906133d86133de9183613529565b82613d2c565b5f52600660205260405f2091805f526002830160205260405f2080549085820180921161130757612fe861346694613421856110ce9860019661345b965561414f565b5061342b81612bf3565b5f52600560205260405f20855f5284810160205260405f2061344e8a8254612f64565b9055613182898254612f64565b613362868254612f64565b918254612f64565b9061348b6134846134a692979695949784613529565b9683613529565b6134958784613d2c565b5f52600660205260405f2092613d2c565b5f52600660205260405f209060028101835f528060205260405f2054968588106134ff575084610b2d96978592835f5260205281810360405f2055146134ee575b5050613d07565b6134f7916140a4565b505f826134e7565b608490868987604051936301815fa360e21b85526004850152602484015260448301526064820152fd5b61357b91602091906001600160a01b0361354283611722565b60405163575c53fb60e11b81526001600160a01b0390931660048401526024830193909352909384929190911690829081906044820190565b03915afa9081156105a3575f91613590575090565b611420915060203d60201161059c5761058d8183610aff565b939092611f089261142096948652602086015260018060a01b0316604085015260a0606085015260a0840190611423565b97959492969391965f5b8781106136d357505f97303b1561017e575f908a6136188787604051968795869563020a68b760e61b8752600487016135a9565b038183305af190816136c0575b506136a2576125f961363f915f52600c60205260405f2090565b8515613669575b50506040805194151560208601529394611420949093508592508201905061234c565b5f5b8581106136785750613646565b8061369c8661368960019486611ecb565b516136948488611ecb565b519088613ca0565b0161366b565b95506136bb6124fc6001975f52600c60205260405f2090565b61363f565b806113d56136cd92610ab6565b5f613625565b806136f66136e360019387611ecb565b516136ee8389611ecb565b519089613d07565b016135e4565b9491926137339361142097959287526020870152604086015260018060a01b0316606085015260c0608085015260c0840190611423565b9160a0818403910152611423565b939260e095600197926137819261378f959b9a9b61010092895260208901526040880152888060a01b038096166060880152806080880152860190611423565b9084820360a0860152611423565b951660c08201520152565b939260e0955f97926137819261378f959b9a9b6101009289526020890152604088015260018060a01b038096166060880152806080880152860190611423565b60a0830180519192916137f6906001600160a01b031684613529565b906138046122eb8386613d2c565b9160608601805151925f5b848110613a34575060409384890195865194613831845160018060a01b031690565b855160808d01978851303b1561017e576138628e915f948d51968795869563020a68b760e61b8752600487016135a9565b038183305af19081613a21575b506139db5790899695949392916138ac6122eb6138a661389f61026561026561389a610c448f612bf3565b612c34565b809b613529565b8d613d2c565b915f5b84811061398d57505050506020999099015186518251909a506001600160a01b0387811692911684519286519c813b1561017e575f80947f57e644b67a1937a9954fe31597528426730324f8673f0b9d94b2a48e7adbaa0f9f613928908c51988997889687956362894fc960e01b8752600487016135a9565b03925af1908161397a575b50613959579451945161171d95906001600160a01b03169151925193519788978861379a565b9451945161171d95906001600160a01b031691519251935197889788613741565b806113d561398792610ab6565b5f613933565b806139b38461399f6001948b51611ecb565b516139ab848d51611ecb565b519086613ca0565b6139d56139c1828a51611ecb565b516139cd838c51611ecb565b519087613d07565b016138af565b5050945190517f145cbbce09f3cfca7f7ee7ca9fda10b4c6191250c8d9d5ba8451426d75c6c722985061171d95506001600160a01b0316915192519351968796876136fc565b806113d5613a2e92610ab6565b5f61386f565b80613a558a6136ee836080613a4c6001978a51611ecb565b51930151611ecb565b0161380f565b613a64906141b2565b9015611b65576001915f520160205260405f2054151590565b612f48906141b2565b612f28906141b2565b60405190613a9c82610a96565b6001825260203681840137565b90613ab382610b5c565b613ac06040519182610aff565b8281528092613ad1601f1991610b5c565b0190602036910137565b91929092805190818551036122ff57613af382613aa9565b935f5b838110613b065750505050909150565b8060019160051b602090613b1f82828c0101518661420f565b9182613b3b575050505f613b338289611ecb565b525b01613af6565b613b4a91870101519185614282565b919015613b77576002613b659201905f5260205260405f2090565b545b613b718289611ecb565b52613b35565b50505f613b67565b929091805190613b8e82613aa9565b935f5b838110613ba15750505050909150565b6001906020808260051b86010151613bb9858b61420f565b80613bd4575050505f613bcc8289611ecb565b525b01613b91565b613bde908b614282565b9015613c02576002915f5201905260405f20545b613bfc8289611ecb565b52613bce565b5050505f613bf2565b90613c16908261420f565b8015613c3c57613c2591614282565b9015611b65576002915f520160205260405f205490565b5050505f90565b613c576001915f52600260205260405f2090565b01548015613c71575f52600d60205260405f209060019190565b505f808052600d602052907f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee90565b9291909160028401835f528060205260405f205491838310613cdd5750835f5260205281810360405f205514613cd4575050565b611bed916140a4565b608490848487604051936301815fa360e21b85526004850152602484015260448301526064820152fd5b815f526002810160205260405f2092835490810180911161130757611bed935561414f565b5f526002602052600260405f2001905f5260205260405f20908154918215613d515750565b915060016004540180600455809255565b9391929093613d6f612b92565b600754613d84906001600160a01b0316610265565b956001600160a01b0394858816156105ba57613d9f81612bb5565b604051633f75ed0360e21b815263ffffffff831660048201529990989197906020908b9060249082905afa998a156105a3575f9a613ef8575b5091613e8b949391613e38613e6b94613e21613df2610b2f565b918883528460208401528560408401528a60608401528b6080840152861660a083019060018060a01b03169052565b613e338d5f52600b60205260405f2090565b613f77565b613e40610b3c565b9485526020850152604084015260608301859052608083018690526001600160a01b031660a0830152565b60c0810187905263ffffffff851660e082015260016101008201526142e9565b94808603613ed757507f1d436f66290f1c665bb21a4460a37456488615692e829b4ff35e497fc8d7b153939291613ec9916040519485948886614030565b0390a190610b2d6001600955565b604051631e78a91d60e21b8152600481019190915260248101869052604490fd5b613e6b93919a5091613e38613f20613e8b97969460203d60201161059c5761058d8183610aff565b9b92945050919394613dd8565b8151916001600160401b038311610ab157613f488383612a69565b6020809101915f5260205f20905f5b848110613f65575050505050565b83518382015592810192600101613f57565b90805182556001602080830151600185015560408301516002850155600384016060840151918251926001600160401b038411610ab157602090613fbb8585612a69565b01915f5260205f20905f5b84811061401f57505050505050906005613ffe60a084613ff06080610b2d97015160048701613f2d565b01516001600160a01b031690565b910180546001600160a01b0319166001600160a01b03909216919091179055565b835183820155928101928501613fc6565b93909263ffffffff611f08936114209795875216602086015260018060a01b0316604085015260a0606085015260a0840190611423565b8054908115614090575f19918201916140808383612c1f565b909182549160031b1b1916905555565b634e487b7160e01b5f52603160045260245ffd5b6001810191805f528260205260405f2054928315155f14614147575f199284840190858211611307578054948501948511611307575f958583614100976140f39503614106575b505050614067565b905f5260205260405f2090565b55600190565b61413061412a9161411a61413e9487612c1f565b90549060031b1c92839187612c1f565b906110b5565b85905f5260205260405f2090565b555f80806140eb565b505050505f90565b6001810190825f528160205260405f2054155f14613c3c578054600160401b811015610ab15761419f614189826001879401855584612c1f565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b6141c66001915f52600260205260405f2090565b015480156141e0575f52600560205260405f209060019190565b505f8080526005602052907f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc90565b6142188161440d565b9015613c3c5760405163575c53fb60e11b60208201526001600160a01b03939093166024840152604480840192909252908252614269919061425b606483610aff565b6001600160a01b031661444f565b9015612f52578060208061142093518301019101611034565b6142966002915f52600260205260405f2090565b01905f5260205260405f205480156142ba575f52600660205260405f209060019190565b505f8080526006602052907f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f890565b610100810151156143a157602060c082015161432482840151916108ad60408601516060870151608088015191604051968795898701611edf565b9163dcf1a74760e01b905b600754614344906001600160a01b0316610265565b9061435660e082015163ffffffff1690565b815160a09092015161438a906001600160a01b0316604051638b0729b760e01b815297889687958695309060048801611f16565b039134905af19081156105a3575f91613590575090565b602060c08201516143fe82840151916108ad60408601516143c56060880151611eb9565b516143d36080890151611eb9565b5160408051898101968752602087019890985285019290925260608401526080830152839160a00190565b916303af76a960e51b9061432f565b5f908152600260205260409020546001600160a01b0390811691908215614436575b5060019190565b6001541691508115614448575f61442f565b5f91508190565b919091803b1561449e576040519261446684610a96565b5f8060209283875283870194843687378482519201906132c8fa913d91808311614496575b505f908286523e9190565b91505f61448b565b5060405191506144ad82610ae4565b5f82525f3681375f919056fea2646970667358221220b01abed8796462427948eb8a3872152766a8a422ddb4df560f2a779a7734b52764736f6c63430008180033
🤖 Code Reader
Generate instant answers for your smart contract questions using AI Models. Read more.
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 30 Chains
Tokens
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.


