Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 107558340 | 1080 days ago | 0.0005161 ETH | ||||
| 107558316 | 1080 days ago | 0.000337783201072 ETH | ||||
| 107558126 | 1080 days ago | 0.000717432869907 ETH | ||||
| 107558083 | 1080 days ago | 0.000813296515628 ETH | ||||
| 107558008 | 1080 days ago | 0.000337580492314 ETH | ||||
| 107557932 | 1080 days ago | 0.000337580492314 ETH | ||||
| 107557814 | 1080 days ago | 0.000337580492314 ETH | ||||
| 107557787 | 1080 days ago | 0 ETH | ||||
| 107557787 | 1080 days ago | 0 ETH | ||||
| 107557784 | 1080 days ago | 0 ETH | ||||
| 107557684 | 1080 days ago | 0.000337580492314 ETH | ||||
| 107557408 | 1080 days ago | 0 ETH | ||||
| 107557408 | 1080 days ago | 0 ETH | ||||
| 107557404 | 1080 days ago | 0 ETH | ||||
| 107557159 | 1080 days ago | 0.000337575559302 ETH | ||||
| 107556963 | 1080 days ago | 0.000337580492314 ETH | ||||
| 107556961 | 1080 days ago | 0.000337580492314 ETH | ||||
| 107556951 | 1080 days ago | 0.000334593553536 ETH | ||||
| 107556908 | 1080 days ago | 0.000718718955854 ETH | ||||
| 107556878 | 1080 days ago | 0 ETH | ||||
| 107556878 | 1080 days ago | 0 ETH | ||||
| 107556873 | 1080 days ago | 0 ETH | ||||
| 107556782 | 1080 days ago | 0.000491441316648 ETH | ||||
| 107556732 | 1080 days ago | 0.000813296515628 ETH | ||||
| 107556662 | 1080 days ago | 0.000491441316648 ETH |
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":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"jobHash","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"}],"name":"AvailableOperatorJob","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"CrossChainMessageSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"FailedOperatorJob","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"jobHash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"operator","type":"address"}],"name":"FinishedOperatorJob","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adminCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"pod","type":"uint256"}],"name":"bondUtilityToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"crossChainMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"executeJob","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getBondedAmount","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getBondedPod","outputs":[{"internalType":"uint256","name":"pod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getBondedPodIndex","outputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBridge","outputs":[{"internalType":"address","name":"bridge","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHolograph","outputs":[{"internalType":"address","name":"holograph","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInterfaces","outputs":[{"internalType":"address","name":"interfaces","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"getJobDetails","outputs":[{"components":[{"internalType":"uint8","name":"pod","type":"uint8"},{"internalType":"uint16","name":"blockTimes","type":"uint16"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint40","name":"startBlock","type":"uint40"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"uint16[5]","name":"fallbackOperators","type":"uint16[5]"}],"internalType":"struct OperatorJob","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"getMessageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMessagingModule","outputs":[{"internalType":"address","name":"messagingModule","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinGasPrice","outputs":[{"internalType":"uint256","name":"minGasPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pod","type":"uint256"}],"name":"getPodBondAmounts","outputs":[{"internalType":"uint256","name":"base","type":"uint256"},{"internalType":"uint256","name":"current","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pod","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"getPodOperators","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pod","type":"uint256"}],"name":"getPodOperators","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pod","type":"uint256"}],"name":"getPodOperatorsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalPods","outputs":[{"internalType":"uint256","name":"totalPods","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUtilityToken","outputs":[{"internalType":"address","name":"utilityToken","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"initPayload","type":"bytes"}],"name":"init","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"jobEstimator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"}],"name":"nonRevertingBridgeCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"recoverJob","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"uint32","name":"toChain","type":"uint32"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"holographableContract","type":"address"},{"internalType":"bytes","name":"bridgeOutPayload","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bridge","type":"address"}],"name":"setBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holograph","type":"address"}],"name":"setHolograph","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"interfaces","type":"address"}],"name":"setInterfaces","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"messagingModule","type":"address"}],"name":"setMessagingModule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minGasPrice","type":"uint256"}],"name":"setMinGasPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"utilityToken","type":"address"}],"name":"setUtilityToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"topupUtilityToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"unbondUtilityToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b50614bf5806100206000396000f3fe6080604052600436106102885760003560e01c80636e9960c31161015357806390ac1866116100cb578063d2197bd31161007f578063ebac15f911610064578063ebac15f914610819578063f851a4401461084d578063ff1370d91461086257600080fd5b8063d2197bd3146107e4578063da8292d9146107f957600080fd5b8063a91ee0dc116100b0578063a91ee0dc1461079e578063b24b2afc146107be578063bf64a82d146107d157600080fd5b806390ac18661461073b57806391e0d46b1461075b57600080fd5b80637868674d116101225780638dd14802116101075780638dd14802146106b85780639013ae08146106d8578063905eceed146106f857600080fd5b80637868674d146106785780638b432e4e1461069857600080fd5b80636e9960c3146105ce578063704b6c0214610602578063761b48ec14610622578063778fd1d11461066557600080fd5b80633fb58819116102015780634ddf47d4116101b55780635ab1bd531161019a5780635ab1bd5314610567578063612a33721461059b578063696af2bf146105bb57600080fd5b80634ddf47d41461050357806357a781221461055457600080fd5b80634827ae0c116101e65780634827ae0c1461046657806348dfc8b71461049a578063493b07ef146104ce57600080fd5b80633fb588191461041f578063409aad691461045357600080fd5b806321cb8f371161025857806325d5cac81161023d57806325d5cac8146103b257806327aa01f5146103d25780632b4a75b4146103ff57600080fd5b806321cb8f371461037d578063254e10621461039f57600080fd5b8062626679146102945780630b239c4e146102ee5780630fffbaf31461031c57806311a33bda1461035057600080fd5b3661028f57005b600080fd5b3480156102a057600080fd5b507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102fa57600080fd5b5061030e610309366004614097565b61089d565b6040519081526020016102e5565b34801561032857600080fd5b507feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546102c4565b34801561035c57600080fd5b5061037061036b366004614097565b610940565b6040516102e591906140b0565b34801561038957600080fd5b5061039d61039836600461416f565b610a19565b005b61039d6103ad3660046141e4565b610bfd565b3480156103be57600080fd5b5061039d6103cd366004614226565b6110b5565b3480156103de57600080fd5b506103f26103ed366004614243565b61118f565b6040516102e5919061426f565b34801561040b57600080fd5b5061039d61041a366004614226565b611352565b34801561042b57600080fd5b507f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05461030e565b61039d6104613660046142db565b61142c565b34801561047257600080fd5b507fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a546102c4565b3480156104a657600080fd5b507f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a546102c4565b3480156104da57600080fd5b506104ee6104e9366004614097565b611a0f565b604080519283526020830191909152016102e5565b34801561050f57600080fd5b5061052361051e3660046143a2565b611a41565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016102e5565b61039d6105623660046141e4565b611cc9565b34801561057357600080fd5b507fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e7546102c4565b3480156105a757600080fd5b5061039d6105b6366004614471565b611e98565b61039d6105c93660046144aa565b61224f565b3480156105da57600080fd5b507f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9546102c4565b34801561060e57600080fd5b5061039d61061d366004614226565b612300565b34801561062e57600080fd5b5061030e61063d366004614226565b73ffffffffffffffffffffffffffffffffffffffff166000908152600e602052604090205490565b61039d6106733660046141e4565b6123da565b34801561068457600080fd5b506103f2610693366004614097565b612ebc565b3480156106a457600080fd5b5061039d6106b33660046144ff565b612fbf565b3480156106c457600080fd5b5061039d6106d3366004614226565b613529565b3480156106e457600080fd5b5061039d6106f3366004614226565b613603565b34801561070457600080fd5b5061030e610713366004614226565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b34801561074757600080fd5b5061039d610756366004614097565b6136dd565b34801561076757600080fd5b5061030e610776366004614226565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b3480156107aa57600080fd5b5061039d6107b9366004614226565b6137b7565b61030e6107cc3660046141e4565b613891565b61039d6107df3660046144aa565b6138eb565b3480156107f057600080fd5b50600b5461030e565b34801561080557600080fd5b5061039d610814366004614226565b6139c6565b34801561082557600080fd5b507fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd1848827546102c4565b34801561085957600080fd5b506102c4613aa0565b34801561086e57600080fd5b5061088261087d366004614534565b613acf565b604080519384526020840192909252908201526060016102e5565b600b54600090821115610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f7420657869737400000060448201526064015b60405180910390fd5b600b61091e6001846145cd565b8154811061092e5761092e6145e4565b60009182526020909120015492915050565b610948613f0d565b50600090815260076020908152604080832054815160c08101835260f882901c8152845461ffff9081168286015263ffffffff60d884901c16865260098552948390205473ffffffffffffffffffffffffffffffffffffffff168184015264ffffffffff60b083901c1660608083019190915267ffffffffffffffff601084901c16608080840191909152845160a0818101875285811c89168252609086901c89169782019790975284821c881695810195909552607084901c87168583015292901c909416908201529082015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610908565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e602052604090208054820190557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810183905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b939190614613565b610bf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b5050565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c6b575073e9e30a0ad0d8af5cf2606ea720052e28d6fcbaaf33145b610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206d6573736167696e67206f6e6c792063616c6c00006044820152606401610908565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820101356000610d217f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05490565b8210905060008484604051610d37929190614635565b604051908190039020600a805463ffffffff808216600101167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790559050600081610dac7f1cda64803f3b43503042e00863791e8d996666552d5855a78d53ee1dd4b3286d80546001019081905590565b60408051602081019390935282015243606082015242608082015260a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905280516020918201209250608083901c916fffffffffffffffffffffffffffffffff841691610e2f91838501910190815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600b549093506000908381610e7c57610e7c614645565b0690506000600b8281548110610e9457610e946145e4565b6000918252602082200154915087610ebb57818481610eb557610eb5614645565b06610ebe565b60005b9050600b8381548110610ed357610ed36145e4565b906000526020600020018181548110610eee57610eee6145e4565b6000918252602080832090910154600a5463ffffffff1683526009909152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055610f5d8382613b14565b6001821115610f8c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101905b4260101b606089610fa857610fa388856005613dd2565b610fab565b60005b901b60708a610fc557610fc089866004613dd2565b610fc8565b60005b901b60808b610fe257610fdd8a876003613dd2565b610fe5565b60005b901b60908c610fff57610ffa8b886002613dd2565b611002565b60005b901b60a08d61101c576110178c896001613dd2565b61101f565b60005b901b60b043901b60d8600a60009054906101000a900463ffffffff1663ffffffff16901b60f88b600101901b171717171717171760001760076000898152602001908152602001600020819055507f4422a85db963f113e500bc4ada8f9e9f1a7bcd57cbec6907fbb2bf6aaf5878ff878c8c6040516110a0939291906146bd565b60405180910390a15050505050505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a55565b600b546060908411156111fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610908565b83611208816146e0565b9450506000600b8581548110611220576112206145e4565b6000918252602090912001549050806112398486614715565b111561124c5761124984826145cd565b92505b8267ffffffffffffffff81111561126557611265614373565b60405190808252806020026020018201604052801561128e578160200160208202803683370190505b50915060005b8381101561134957600b86815481106112af576112af6145e4565b9060005260206000200181866112c59190614715565b815481106112d5576112d56145e4565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838281518110611312576113126145e4565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152806113418161472d565b915050611294565b50509392505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611408576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a55565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20627269646765206f6e6c792063616c6c00000000006044820152606401610908565b600061150c7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5490565b905060008173ffffffffffffffffffffffffffffffffffffffff16638c19a89f898c8c88886040518663ffffffff1660e01b8152600401611551959493929190614765565b602060405180830381865afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611592919061479c565b905060006115be7fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e75490565b73ffffffffffffffffffffffffffffffffffffffff1663949d53a76116017fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f91906147b5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed91906147d2565b9050348210611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a206e6f7420656e6f7567682076616c756500000000006044820152606401610908565b60405173ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084906000818181858888f1935050505015801561179b573d6000803e3d6000fd5b5060007f16f1be7000000000000000000000000000000000000000000000000000000000886117e87fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185691906147b5565b898560008860018d8d604051602401611877999897969594939291906147ef565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090951694909417909352519092506119099183918f918f910161488e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905073ffffffffffffffffffffffffffffffffffffffff8416630a0542ef61195f85346145cd565b8e8e8e8e61196d8a346145cd565b886040518863ffffffff1660e01b815260040161198f969594939291906148b5565b6000604051808303818588803b1580156119a857600080fd5b505af11580156119bc573d6000803e3d6000fd5b50505050507f0f5759b4182507dcfc771071166f98d7ca331262e5134eaa74b676adce2138b781805190602001206040516119f991815260200190565b60405180910390a1505050505050505050505050565b600080611a25611a206001856145cd565b613df2565b9150611a3a611a356001856145cd565b613e15565b9050915091565b6000611a6b7f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a015490565b15611ad2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a20616c726561647920696e697469616c697a656400006044820152606401610908565b60008060008060008087806020019051810190611aef9190614945565b327f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9557feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f98690557fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a8590557fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd18488278490557fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e78390557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c378290557f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc0819055603c600090815568056bc75e2d631000006001908155600280556103e8600355600a60045560646005556040805180820190915260208101928352918252969c50949a5092985090965094509250611c4591600b9190613f49565b5060008052600c60205260017f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e855611c9c60017f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a0155565b507f4ddf47d400000000000000000000000000000000000000000000000000000000979650505050505050565b60008282604051611cdb929190614635565b604080519182900390912060008181526008602052919091205490915060ff16611d61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20696e76616c6964207265636f76657279206a6f62006044820152606401610908565b6000611d8b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95490565b73ffffffffffffffffffffffffffffffffffffffff16348585604051611db2929190614635565b60006040518083038185875af1925050503d8060008114611def576040519150601f19603f3d011682016040523d82523d6000602084013e611df4565b606091505b5050905080611e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f484f4c4f47524150483a207265636f76657279206661696c65640000000000006044820152606401610908565b50600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003611f26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610908565b3373ffffffffffffffffffffffffffffffffffffffff8316146120b557611f4c82613ed3565b611fb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206f70657261746f72206e6f7420636f6e74726163746044820152606401610908565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612014573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203891906147d2565b73ffffffffffffffffffffffffffffffffffffffff16146120b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a2073656e646572206e6f74206f776e657200000000006044820152606401610908565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e60209081526040808320805490849055600c90925290912054612127906120fc906001906145cd565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600d6020526040902054613b14565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af11580156121c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e49190614613565b61224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b505050565b3330146122b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f72206f6e6c792063616c6c0000006044820152606401610908565b602081038260003782608452600080604083036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546040870351f18061039d57600080fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c955565b600082826040516123ec929190614635565b604051809103902090506000600760008381526020019081526020016000205411612473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f484f4c4f47524150483a20696e76616c6964206a6f62000000000000000000006044820152606401610908565b8183017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0013560006124c984610940565b6000858152600760209081526040808320839055338352600e90915290819020549082015191925015159073ffffffffffffffffffffffffffffffffffffffff1615612cef578151600090612520906001906149c2565b60ff1690503373ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1614612c28576000836080015167ffffffffffffffff164261257891906145cd565b90506000846020015161ffff168261259091906149e5565b9050600081116125fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a206f70657261746f72206861732074696d65000000006044820152606401610908565b3a861015612666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20676173207370696b652064657465637465640000006044820152606401610908565b60068110156128125760a08501516000906126826001846145cd565b60058110612692576126926145e4565b602002015161ffff1690506000811180156126ca5750600b84815481106126bb576126bb6145e4565b60009182526020909120015481105b15612792576000600b85815481106126e4576126e46145e4565b9060005260206000200182815481106126ff576126ff6145e4565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905033811461278c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20696e76616c69642066616c6c6261636b00000000006044820152606401610908565b50612810565b8551336000908152600c602052604090205460ff90911614612810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a20706f64206f6e6c792066616c6c6261636b000000006044820152606401610908565b505b600061281d84613df2565b905080600e6000886040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461287291906145cd565b90915550507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8661294e577fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5473ffffffffffffffffffffffffffffffffffffffff16633b19e84a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612925573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294991906147d2565b612950565b335b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044016020604051808303816000875af11580156129c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e69190614613565b5060408087015173ffffffffffffffffffffffffffffffffffffffff166000908152600e60205220548111612b0457600b8481548110612a2857612a286145e4565b6000918252602080832060408a01519201805460018082018355918552919093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055600b805486908110612aa057612aa06145e4565b600091825260209091200154612ab691906145cd565b6040808801805173ffffffffffffffffffffffffffffffffffffffff9081166000908152600d6020908152848220959095558a5192519091168152600c909352912060ff9091169055612c20565b60408087015173ffffffffffffffffffffffffffffffffffffffff166000908152600e60205220548015612c1e5760408781015173ffffffffffffffffffffffffffffffffffffffff166000908152600e602052908120557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375460408089015190517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015612bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1c9190614613565b505b505b505050612ced565b600b8181548110612c3b57612c3b6145e4565b60009182526020808320909101805460018181018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600b805483908110612c9557612c956145e4565b600091825260209091200154612cab91906145cd565b60408085015173ffffffffffffffffffffffffffffffffffffffff166000908152600d6020908152828220939093558551338252600c9093522060ff90911690555b505b600660008154612cfe9061472d565b90915550604080518681523360208201527ffc3963369d694e97f35e33cc03fcd382bfa4dbb688ae43d318fcf344f479425e910160405180910390a1835a11612da3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206e6f7420656e6f75676820676173206c65667400006044820152606401610908565b6040517f696af2bf000000000000000000000000000000000000000000000000000000008152309063696af2bf903490612de59033908c908c90600401614a20565b6000604051808303818588803b158015612dfe57600080fd5b505af193505050508015612e10575060015b612eb35760405133903480156108fc02916000818181858888f19350505050158015612e40573d6000803e3d6000fd5b506000858152600860205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f26dc03e6c4feb5e9d33804dc1646860c976c3aeabb458f4719c53dcbadbf44b590612eaa9087815260200190565b60405180910390a15b50505050505050565b600b54606090821115612f2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610908565b600b612f386001846145cd565b81548110612f4857612f486145e4565b90600052602060002001805480602002602001604051908101604052809291908181526020018280548015612fb357602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612f88575b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c6020526040902054158015613015575073ffffffffffffffffffffffffffffffffffffffff83166000908152600e6020526040902054155b61307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f7220697320626f6e6465640000006044820152606401610908565b61308483613ed3565b1561318d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061311091906147d2565b73ffffffffffffffffffffffffffffffffffffffff160361318d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20636f6e7472616374206e6f74206f776e61626c65006044820152606401610908565b600061319b60018303613e15565b905082811115613207576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20626f6e6420616d6f756e7420746f6f20736d616c6c6044820152606401610908565b600b5482111561327657600b545b828110156132745760408051602081019091526000808252600b8054600181810183559190925261326b927f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99092019190613fa0565b50600101613215565b505b61ffff8016600b6001840381548110613291576132916145e4565b60009182526020909120015410613304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20746f6f206d616e79206f70657261746f72730000006044820152606401610908565b600b600183038154811061331a5761331a6145e4565b6000918252602080832091909101805460018082018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85019081106133ad576133ad6145e4565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff88168352600d8252604080842094909103909355600c8152828220859055600e90522083905561341e7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375490565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810185905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015613499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134bd9190614613565b613523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b50505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146135df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f955565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146136b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c3755565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc055565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461386d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e755565b60006040820383600037600060e353600080604084036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9545af1600181036138e0573d6000803e3d6000fd5b505a60005260206000f35b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146139a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b808260003760008082600034875af13d6000803e8080156139c1573d6000f35b3d6000fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd184882755565b6000613aca7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95490565b905090565b600080600036600080376000803660007f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a545afa3d6000803e8080156139c1573d6000f35b8015610bf9576000600b8381548110613b2f57613b2f6145e4565b906000526020600020018281548110613b4a57613b4a6145e4565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16808352600c82526040808420849055600d909252908220829055600b805491935060019186908110613ba257613ba26145e4565b600091825260209091200154039050828114613ce857600b8481548110613bcb57613bcb6145e4565b906000526020600020018181548110613be657613be66145e4565b600091825260209091200154600b805473ffffffffffffffffffffffffffffffffffffffff9092169186908110613c1f57613c1f6145e4565b906000526020600020018481548110613c3a57613c3a6145e4565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d6000600b8781548110613c9a57613c9a6145e4565b906000526020600020018681548110613cb557613cb56145e4565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020555b600b8481548110613cfb57613cfb6145e4565b906000526020600020018181548110613d1657613d166145e4565b600091825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600b805485908110613d5b57613d5b6145e4565b90600052602060002001805480613d7457613d74614a50565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550505050565b6000824383900340850181613de957613de9614645565b06949350505050565b600060015482600254613e059190614b9f565b613e0f9190614bab565b92915050565b60008060015483600254613e299190614b9f565b613e339190614bab565b600b549091508310613e455792915050565b6000613e52846002614b9f565b600354613e5f91906149e5565b90506000600b8581548110613e7657613e766145e4565b600091825260209091200154905081811115613eca57613e9682826145cd565b905060045481613ea691906149e5565b600554613eb390856149e5565b613ebd9190614bab565b613ec79084614715565b92505b50909392505050565b6000813f8015801590613f0657507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b6040805160c08101825260008082526020820181905291810182905260608101829052608081019190915260a08101613f44614026565b905290565b828054828255906000526020600020908101928215613f90579160200282015b82811115613f90578251613f809083906001613fa0565b5091602001919060010190613f69565b50613f9c929150614044565b5090565b82805482825590600052602060002090810192821561401a579160200282015b8281111561401a57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190613fc0565b50613f9c929150614061565b6040518060a001604052806005906020820280368337509192915050565b80821115613f9c5760006140588282614076565b50600101614044565b5b80821115613f9c5760008155600101614062565b50805460008255906000526020600020908101906140949190614061565b50565b6000602082840312156140a957600080fd5b5035919050565b60006101408201905060ff835116825260208084015161ffff8082168386015273ffffffffffffffffffffffffffffffffffffffff604087015116604086015264ffffffffff606087015116606086015267ffffffffffffffff608087015116608086015260a0860151915060a0850160005b6005811015614142578351831682529284019290840190600101614123565b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461409457600080fd5b6000806040838503121561418257600080fd5b823561418d8161414d565b946020939093013593505050565b60008083601f8401126141ad57600080fd5b50813567ffffffffffffffff8111156141c557600080fd5b6020830191508360208285010111156141dd57600080fd5b9250929050565b600080602083850312156141f757600080fd5b823567ffffffffffffffff81111561420e57600080fd5b61421a8582860161419b565b90969095509350505050565b60006020828403121561423857600080fd5b8135613f068161414d565b60008060006060848603121561425857600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b818110156142bd57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010161428b565b50909695505050505050565b63ffffffff8116811461409457600080fd5b60008060008060008060008060e0898b0312156142f757600080fd5b88359750602089013596506040890135614310816142c9565b955060608901356143208161414d565b94506080890135935060a08901356143378161414d565b925060c089013567ffffffffffffffff81111561435357600080fd5b61435f8b828c0161419b565b999c989b5096995094979396929594505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156143b457600080fd5b813567ffffffffffffffff808211156143cc57600080fd5b818401915084601f8301126143e057600080fd5b8135818111156143f2576143f2614373565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561443857614438614373565b8160405282815287602084870101111561445157600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561448457600080fd5b823561448f8161414d565b9150602083013561449f8161414d565b809150509250929050565b6000806000604084860312156144bf57600080fd5b83356144ca8161414d565b9250602084013567ffffffffffffffff8111156144e657600080fd5b6144f28682870161419b565b9497909650939450505050565b60008060006060848603121561451457600080fd5b833561451f8161414d565b95602085013595506040909401359392505050565b60008060008060006080868803121561454c57600080fd5b8535614557816142c9565b94506020860135935060408601359250606086013567ffffffffffffffff81111561458157600080fd5b61458d8882890161419b565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156145df576145df61459e565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561462557600080fd5b81518015158114613f0657600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006146d7604083018486614674565b95945050505050565b6000816146ef576146ef61459e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600082198211156147285761472861459e565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361475e5761475e61459e565b5060010190565b63ffffffff86168152846020820152836040820152608060608201526000614791608083018486614674565b979650505050505050565b6000602082840312156147ae57600080fd5b5051919050565b6000602082840312156147c757600080fd5b8151613f06816142c9565b6000602082840312156147e457600080fd5b8151613f068161414d565b60006101008b835263ffffffff8b16602084015273ffffffffffffffffffffffffffffffffffffffff808b166040850152808a1660608501528089166080850152508660a084015285151560c08401528060e08401526148528184018587614674565b9c9b505050505050505050505050565b60005b8381101561487d578181015183820152602001614865565b838111156135235750506000910152565b600084516148a0818460208901614862565b91909101928352506020820152604001919050565b86815285602082015263ffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff8416606082015282608082015260c060a0820152600082518060c084015261490e8160e0850160208701614862565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160e001979650505050505050565b60008060008060008060c0878903121561495e57600080fd5b86516149698161414d565b602088015190965061497a8161414d565b604088015190955061498b8161414d565b606088015190945061499c8161414d565b60808801519093506149ad8161414d565b8092505060a087015190509295509295509295565b600060ff821660ff8416808210156149dc576149dc61459e565b90039392505050565b600082614a1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b73ffffffffffffffffffffffffffffffffffffffff841681526040602082015260006146d7604083018486614674565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600181815b80851115614ad857817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614abe57614abe61459e565b80851615614acb57918102915b93841c9390800290614a84565b509250929050565b600082614aef57506001613e0f565b81614afc57506000613e0f565b8160018114614b125760028114614b1c57614b38565b6001915050613e0f565b60ff841115614b2d57614b2d61459e565b50506001821b613e0f565b5060208310610133831016604e8410600b8410161715614b5b575081810a613e0f565b614b658383614a7f565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614b9757614b9761459e565b029392505050565b6000613f068383614ae0565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614be357614be361459e565b50029056fea164736f6c634300080d000a
Deployed Bytecode
0x6080604052600436106102885760003560e01c80636e9960c31161015357806390ac1866116100cb578063d2197bd31161007f578063ebac15f911610064578063ebac15f914610819578063f851a4401461084d578063ff1370d91461086257600080fd5b8063d2197bd3146107e4578063da8292d9146107f957600080fd5b8063a91ee0dc116100b0578063a91ee0dc1461079e578063b24b2afc146107be578063bf64a82d146107d157600080fd5b806390ac18661461073b57806391e0d46b1461075b57600080fd5b80637868674d116101225780638dd14802116101075780638dd14802146106b85780639013ae08146106d8578063905eceed146106f857600080fd5b80637868674d146106785780638b432e4e1461069857600080fd5b80636e9960c3146105ce578063704b6c0214610602578063761b48ec14610622578063778fd1d11461066557600080fd5b80633fb58819116102015780634ddf47d4116101b55780635ab1bd531161019a5780635ab1bd5314610567578063612a33721461059b578063696af2bf146105bb57600080fd5b80634ddf47d41461050357806357a781221461055457600080fd5b80634827ae0c116101e65780634827ae0c1461046657806348dfc8b71461049a578063493b07ef146104ce57600080fd5b80633fb588191461041f578063409aad691461045357600080fd5b806321cb8f371161025857806325d5cac81161023d57806325d5cac8146103b257806327aa01f5146103d25780632b4a75b4146103ff57600080fd5b806321cb8f371461037d578063254e10621461039f57600080fd5b8062626679146102945780630b239c4e146102ee5780630fffbaf31461031c57806311a33bda1461035057600080fd5b3661028f57005b600080fd5b3480156102a057600080fd5b507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102fa57600080fd5b5061030e610309366004614097565b61089d565b6040519081526020016102e5565b34801561032857600080fd5b507feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546102c4565b34801561035c57600080fd5b5061037061036b366004614097565b610940565b6040516102e591906140b0565b34801561038957600080fd5b5061039d61039836600461416f565b610a19565b005b61039d6103ad3660046141e4565b610bfd565b3480156103be57600080fd5b5061039d6103cd366004614226565b6110b5565b3480156103de57600080fd5b506103f26103ed366004614243565b61118f565b6040516102e5919061426f565b34801561040b57600080fd5b5061039d61041a366004614226565b611352565b34801561042b57600080fd5b507f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05461030e565b61039d6104613660046142db565b61142c565b34801561047257600080fd5b507fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a546102c4565b3480156104a657600080fd5b507f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a546102c4565b3480156104da57600080fd5b506104ee6104e9366004614097565b611a0f565b604080519283526020830191909152016102e5565b34801561050f57600080fd5b5061052361051e3660046143a2565b611a41565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016102e5565b61039d6105623660046141e4565b611cc9565b34801561057357600080fd5b507fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e7546102c4565b3480156105a757600080fd5b5061039d6105b6366004614471565b611e98565b61039d6105c93660046144aa565b61224f565b3480156105da57600080fd5b507f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9546102c4565b34801561060e57600080fd5b5061039d61061d366004614226565b612300565b34801561062e57600080fd5b5061030e61063d366004614226565b73ffffffffffffffffffffffffffffffffffffffff166000908152600e602052604090205490565b61039d6106733660046141e4565b6123da565b34801561068457600080fd5b506103f2610693366004614097565b612ebc565b3480156106a457600080fd5b5061039d6106b33660046144ff565b612fbf565b3480156106c457600080fd5b5061039d6106d3366004614226565b613529565b3480156106e457600080fd5b5061039d6106f3366004614226565b613603565b34801561070457600080fd5b5061030e610713366004614226565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b34801561074757600080fd5b5061039d610756366004614097565b6136dd565b34801561076757600080fd5b5061030e610776366004614226565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b3480156107aa57600080fd5b5061039d6107b9366004614226565b6137b7565b61030e6107cc3660046141e4565b613891565b61039d6107df3660046144aa565b6138eb565b3480156107f057600080fd5b50600b5461030e565b34801561080557600080fd5b5061039d610814366004614226565b6139c6565b34801561082557600080fd5b507fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd1848827546102c4565b34801561085957600080fd5b506102c4613aa0565b34801561086e57600080fd5b5061088261087d366004614534565b613acf565b604080519384526020840192909252908201526060016102e5565b600b54600090821115610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f7420657869737400000060448201526064015b60405180910390fd5b600b61091e6001846145cd565b8154811061092e5761092e6145e4565b60009182526020909120015492915050565b610948613f0d565b50600090815260076020908152604080832054815160c08101835260f882901c8152845461ffff9081168286015263ffffffff60d884901c16865260098552948390205473ffffffffffffffffffffffffffffffffffffffff168184015264ffffffffff60b083901c1660608083019190915267ffffffffffffffff601084901c16608080840191909152845160a0818101875285811c89168252609086901c89169782019790975284821c881695810195909552607084901c87168583015292901c909416908201529082015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610908565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e602052604090208054820190557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810183905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b939190614613565b610bf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b5050565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c6b575073e9e30a0ad0d8af5cf2606ea720052e28d6fcbaaf33145b610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206d6573736167696e67206f6e6c792063616c6c00006044820152606401610908565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820101356000610d217f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05490565b8210905060008484604051610d37929190614635565b604051908190039020600a805463ffffffff808216600101167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790559050600081610dac7f1cda64803f3b43503042e00863791e8d996666552d5855a78d53ee1dd4b3286d80546001019081905590565b60408051602081019390935282015243606082015242608082015260a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905280516020918201209250608083901c916fffffffffffffffffffffffffffffffff841691610e2f91838501910190815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600b549093506000908381610e7c57610e7c614645565b0690506000600b8281548110610e9457610e946145e4565b6000918252602082200154915087610ebb57818481610eb557610eb5614645565b06610ebe565b60005b9050600b8381548110610ed357610ed36145e4565b906000526020600020018181548110610eee57610eee6145e4565b6000918252602080832090910154600a5463ffffffff1683526009909152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055610f5d8382613b14565b6001821115610f8c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101905b4260101b606089610fa857610fa388856005613dd2565b610fab565b60005b901b60708a610fc557610fc089866004613dd2565b610fc8565b60005b901b60808b610fe257610fdd8a876003613dd2565b610fe5565b60005b901b60908c610fff57610ffa8b886002613dd2565b611002565b60005b901b60a08d61101c576110178c896001613dd2565b61101f565b60005b901b60b043901b60d8600a60009054906101000a900463ffffffff1663ffffffff16901b60f88b600101901b171717171717171760001760076000898152602001908152602001600020819055507f4422a85db963f113e500bc4ada8f9e9f1a7bcd57cbec6907fbb2bf6aaf5878ff878c8c6040516110a0939291906146bd565b60405180910390a15050505050505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a55565b600b546060908411156111fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610908565b83611208816146e0565b9450506000600b8581548110611220576112206145e4565b6000918252602090912001549050806112398486614715565b111561124c5761124984826145cd565b92505b8267ffffffffffffffff81111561126557611265614373565b60405190808252806020026020018201604052801561128e578160200160208202803683370190505b50915060005b8381101561134957600b86815481106112af576112af6145e4565b9060005260206000200181866112c59190614715565b815481106112d5576112d56145e4565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838281518110611312576113126145e4565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152806113418161472d565b915050611294565b50509392505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611408576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a55565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20627269646765206f6e6c792063616c6c00000000006044820152606401610908565b600061150c7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5490565b905060008173ffffffffffffffffffffffffffffffffffffffff16638c19a89f898c8c88886040518663ffffffff1660e01b8152600401611551959493929190614765565b602060405180830381865afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611592919061479c565b905060006115be7fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e75490565b73ffffffffffffffffffffffffffffffffffffffff1663949d53a76116017fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f91906147b5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed91906147d2565b9050348210611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a206e6f7420656e6f7567682076616c756500000000006044820152606401610908565b60405173ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084906000818181858888f1935050505015801561179b573d6000803e3d6000fd5b5060007f16f1be7000000000000000000000000000000000000000000000000000000000886117e87fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185691906147b5565b898560008860018d8d604051602401611877999897969594939291906147ef565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090951694909417909352519092506119099183918f918f910161488e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905073ffffffffffffffffffffffffffffffffffffffff8416630a0542ef61195f85346145cd565b8e8e8e8e61196d8a346145cd565b886040518863ffffffff1660e01b815260040161198f969594939291906148b5565b6000604051808303818588803b1580156119a857600080fd5b505af11580156119bc573d6000803e3d6000fd5b50505050507f0f5759b4182507dcfc771071166f98d7ca331262e5134eaa74b676adce2138b781805190602001206040516119f991815260200190565b60405180910390a1505050505050505050505050565b600080611a25611a206001856145cd565b613df2565b9150611a3a611a356001856145cd565b613e15565b9050915091565b6000611a6b7f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a015490565b15611ad2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a20616c726561647920696e697469616c697a656400006044820152606401610908565b60008060008060008087806020019051810190611aef9190614945565b327f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9557feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f98690557fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a8590557fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd18488278490557fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e78390557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c378290557f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc0819055603c600090815568056bc75e2d631000006001908155600280556103e8600355600a60045560646005556040805180820190915260208101928352918252969c50949a5092985090965094509250611c4591600b9190613f49565b5060008052600c60205260017f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e855611c9c60017f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a0155565b507f4ddf47d400000000000000000000000000000000000000000000000000000000979650505050505050565b60008282604051611cdb929190614635565b604080519182900390912060008181526008602052919091205490915060ff16611d61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20696e76616c6964207265636f76657279206a6f62006044820152606401610908565b6000611d8b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95490565b73ffffffffffffffffffffffffffffffffffffffff16348585604051611db2929190614635565b60006040518083038185875af1925050503d8060008114611def576040519150601f19603f3d011682016040523d82523d6000602084013e611df4565b606091505b5050905080611e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f484f4c4f47524150483a207265636f76657279206661696c65640000000000006044820152606401610908565b50600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003611f26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610908565b3373ffffffffffffffffffffffffffffffffffffffff8316146120b557611f4c82613ed3565b611fb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206f70657261746f72206e6f7420636f6e74726163746044820152606401610908565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612014573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203891906147d2565b73ffffffffffffffffffffffffffffffffffffffff16146120b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a2073656e646572206e6f74206f776e657200000000006044820152606401610908565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e60209081526040808320805490849055600c90925290912054612127906120fc906001906145cd565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600d6020526040902054613b14565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af11580156121c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e49190614613565b61224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b505050565b3330146122b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f72206f6e6c792063616c6c0000006044820152606401610908565b602081038260003782608452600080604083036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546040870351f18061039d57600080fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c955565b600082826040516123ec929190614635565b604051809103902090506000600760008381526020019081526020016000205411612473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f484f4c4f47524150483a20696e76616c6964206a6f62000000000000000000006044820152606401610908565b8183017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0013560006124c984610940565b6000858152600760209081526040808320839055338352600e90915290819020549082015191925015159073ffffffffffffffffffffffffffffffffffffffff1615612cef578151600090612520906001906149c2565b60ff1690503373ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1614612c28576000836080015167ffffffffffffffff164261257891906145cd565b90506000846020015161ffff168261259091906149e5565b9050600081116125fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a206f70657261746f72206861732074696d65000000006044820152606401610908565b3a861015612666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20676173207370696b652064657465637465640000006044820152606401610908565b60068110156128125760a08501516000906126826001846145cd565b60058110612692576126926145e4565b602002015161ffff1690506000811180156126ca5750600b84815481106126bb576126bb6145e4565b60009182526020909120015481105b15612792576000600b85815481106126e4576126e46145e4565b9060005260206000200182815481106126ff576126ff6145e4565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905033811461278c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20696e76616c69642066616c6c6261636b00000000006044820152606401610908565b50612810565b8551336000908152600c602052604090205460ff90911614612810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a20706f64206f6e6c792066616c6c6261636b000000006044820152606401610908565b505b600061281d84613df2565b905080600e6000886040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461287291906145cd565b90915550507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8661294e577fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5473ffffffffffffffffffffffffffffffffffffffff16633b19e84a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612925573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294991906147d2565b612950565b335b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044016020604051808303816000875af11580156129c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e69190614613565b5060408087015173ffffffffffffffffffffffffffffffffffffffff166000908152600e60205220548111612b0457600b8481548110612a2857612a286145e4565b6000918252602080832060408a01519201805460018082018355918552919093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055600b805486908110612aa057612aa06145e4565b600091825260209091200154612ab691906145cd565b6040808801805173ffffffffffffffffffffffffffffffffffffffff9081166000908152600d6020908152848220959095558a5192519091168152600c909352912060ff9091169055612c20565b60408087015173ffffffffffffffffffffffffffffffffffffffff166000908152600e60205220548015612c1e5760408781015173ffffffffffffffffffffffffffffffffffffffff166000908152600e602052908120557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375460408089015190517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015612bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1c9190614613565b505b505b505050612ced565b600b8181548110612c3b57612c3b6145e4565b60009182526020808320909101805460018181018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600b805483908110612c9557612c956145e4565b600091825260209091200154612cab91906145cd565b60408085015173ffffffffffffffffffffffffffffffffffffffff166000908152600d6020908152828220939093558551338252600c9093522060ff90911690555b505b600660008154612cfe9061472d565b90915550604080518681523360208201527ffc3963369d694e97f35e33cc03fcd382bfa4dbb688ae43d318fcf344f479425e910160405180910390a1835a11612da3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206e6f7420656e6f75676820676173206c65667400006044820152606401610908565b6040517f696af2bf000000000000000000000000000000000000000000000000000000008152309063696af2bf903490612de59033908c908c90600401614a20565b6000604051808303818588803b158015612dfe57600080fd5b505af193505050508015612e10575060015b612eb35760405133903480156108fc02916000818181858888f19350505050158015612e40573d6000803e3d6000fd5b506000858152600860205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f26dc03e6c4feb5e9d33804dc1646860c976c3aeabb458f4719c53dcbadbf44b590612eaa9087815260200190565b60405180910390a15b50505050505050565b600b54606090821115612f2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610908565b600b612f386001846145cd565b81548110612f4857612f486145e4565b90600052602060002001805480602002602001604051908101604052809291908181526020018280548015612fb357602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612f88575b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c6020526040902054158015613015575073ffffffffffffffffffffffffffffffffffffffff83166000908152600e6020526040902054155b61307b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f7220697320626f6e6465640000006044820152606401610908565b61308483613ed3565b1561318d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061311091906147d2565b73ffffffffffffffffffffffffffffffffffffffff160361318d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20636f6e7472616374206e6f74206f776e61626c65006044820152606401610908565b600061319b60018303613e15565b905082811115613207576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20626f6e6420616d6f756e7420746f6f20736d616c6c6044820152606401610908565b600b5482111561327657600b545b828110156132745760408051602081019091526000808252600b8054600181810183559190925261326b927f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99092019190613fa0565b50600101613215565b505b61ffff8016600b6001840381548110613291576132916145e4565b60009182526020909120015410613304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20746f6f206d616e79206f70657261746f72730000006044820152606401610908565b600b600183038154811061331a5761331a6145e4565b6000918252602080832091909101805460018082018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85019081106133ad576133ad6145e4565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff88168352600d8252604080842094909103909355600c8152828220859055600e90522083905561341e7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375490565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810185905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015613499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134bd9190614613565b613523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b50505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146135df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f955565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146136b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c3755565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc055565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461386d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e755565b60006040820383600037600060e353600080604084036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9545af1600181036138e0573d6000803e3d6000fd5b505a60005260206000f35b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146139a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b808260003760008082600034875af13d6000803e8080156139c1573d6000f35b3d6000fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd184882755565b6000613aca7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95490565b905090565b600080600036600080376000803660007f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a545afa3d6000803e8080156139c1573d6000f35b8015610bf9576000600b8381548110613b2f57613b2f6145e4565b906000526020600020018281548110613b4a57613b4a6145e4565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16808352600c82526040808420849055600d909252908220829055600b805491935060019186908110613ba257613ba26145e4565b600091825260209091200154039050828114613ce857600b8481548110613bcb57613bcb6145e4565b906000526020600020018181548110613be657613be66145e4565b600091825260209091200154600b805473ffffffffffffffffffffffffffffffffffffffff9092169186908110613c1f57613c1f6145e4565b906000526020600020018481548110613c3a57613c3a6145e4565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d6000600b8781548110613c9a57613c9a6145e4565b906000526020600020018681548110613cb557613cb56145e4565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020555b600b8481548110613cfb57613cfb6145e4565b906000526020600020018181548110613d1657613d166145e4565b600091825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600b805485908110613d5b57613d5b6145e4565b90600052602060002001805480613d7457613d74614a50565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550505050565b6000824383900340850181613de957613de9614645565b06949350505050565b600060015482600254613e059190614b9f565b613e0f9190614bab565b92915050565b60008060015483600254613e299190614b9f565b613e339190614bab565b600b549091508310613e455792915050565b6000613e52846002614b9f565b600354613e5f91906149e5565b90506000600b8581548110613e7657613e766145e4565b600091825260209091200154905081811115613eca57613e9682826145cd565b905060045481613ea691906149e5565b600554613eb390856149e5565b613ebd9190614bab565b613ec79084614715565b92505b50909392505050565b6000813f8015801590613f0657507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b6040805160c08101825260008082526020820181905291810182905260608101829052608081019190915260a08101613f44614026565b905290565b828054828255906000526020600020908101928215613f90579160200282015b82811115613f90578251613f809083906001613fa0565b5091602001919060010190613f69565b50613f9c929150614044565b5090565b82805482825590600052602060002090810192821561401a579160200282015b8281111561401a57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190613fc0565b50613f9c929150614061565b6040518060a001604052806005906020820280368337509192915050565b80821115613f9c5760006140588282614076565b50600101614044565b5b80821115613f9c5760008155600101614062565b50805460008255906000526020600020908101906140949190614061565b50565b6000602082840312156140a957600080fd5b5035919050565b60006101408201905060ff835116825260208084015161ffff8082168386015273ffffffffffffffffffffffffffffffffffffffff604087015116604086015264ffffffffff606087015116606086015267ffffffffffffffff608087015116608086015260a0860151915060a0850160005b6005811015614142578351831682529284019290840190600101614123565b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461409457600080fd5b6000806040838503121561418257600080fd5b823561418d8161414d565b946020939093013593505050565b60008083601f8401126141ad57600080fd5b50813567ffffffffffffffff8111156141c557600080fd5b6020830191508360208285010111156141dd57600080fd5b9250929050565b600080602083850312156141f757600080fd5b823567ffffffffffffffff81111561420e57600080fd5b61421a8582860161419b565b90969095509350505050565b60006020828403121561423857600080fd5b8135613f068161414d565b60008060006060848603121561425857600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b818110156142bd57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010161428b565b50909695505050505050565b63ffffffff8116811461409457600080fd5b60008060008060008060008060e0898b0312156142f757600080fd5b88359750602089013596506040890135614310816142c9565b955060608901356143208161414d565b94506080890135935060a08901356143378161414d565b925060c089013567ffffffffffffffff81111561435357600080fd5b61435f8b828c0161419b565b999c989b5096995094979396929594505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156143b457600080fd5b813567ffffffffffffffff808211156143cc57600080fd5b818401915084601f8301126143e057600080fd5b8135818111156143f2576143f2614373565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561443857614438614373565b8160405282815287602084870101111561445157600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561448457600080fd5b823561448f8161414d565b9150602083013561449f8161414d565b809150509250929050565b6000806000604084860312156144bf57600080fd5b83356144ca8161414d565b9250602084013567ffffffffffffffff8111156144e657600080fd5b6144f28682870161419b565b9497909650939450505050565b60008060006060848603121561451457600080fd5b833561451f8161414d565b95602085013595506040909401359392505050565b60008060008060006080868803121561454c57600080fd5b8535614557816142c9565b94506020860135935060408601359250606086013567ffffffffffffffff81111561458157600080fd5b61458d8882890161419b565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156145df576145df61459e565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561462557600080fd5b81518015158114613f0657600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006146d7604083018486614674565b95945050505050565b6000816146ef576146ef61459e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600082198211156147285761472861459e565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361475e5761475e61459e565b5060010190565b63ffffffff86168152846020820152836040820152608060608201526000614791608083018486614674565b979650505050505050565b6000602082840312156147ae57600080fd5b5051919050565b6000602082840312156147c757600080fd5b8151613f06816142c9565b6000602082840312156147e457600080fd5b8151613f068161414d565b60006101008b835263ffffffff8b16602084015273ffffffffffffffffffffffffffffffffffffffff808b166040850152808a1660608501528089166080850152508660a084015285151560c08401528060e08401526148528184018587614674565b9c9b505050505050505050505050565b60005b8381101561487d578181015183820152602001614865565b838111156135235750506000910152565b600084516148a0818460208901614862565b91909101928352506020820152604001919050565b86815285602082015263ffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff8416606082015282608082015260c060a0820152600082518060c084015261490e8160e0850160208701614862565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160e001979650505050505050565b60008060008060008060c0878903121561495e57600080fd5b86516149698161414d565b602088015190965061497a8161414d565b604088015190955061498b8161414d565b606088015190945061499c8161414d565b60808801519093506149ad8161414d565b8092505060a087015190509295509295509295565b600060ff821660ff8416808210156149dc576149dc61459e565b90039392505050565b600082614a1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b73ffffffffffffffffffffffffffffffffffffffff841681526040602082015260006146d7604083018486614674565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600181815b80851115614ad857817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614abe57614abe61459e565b80851615614acb57918102915b93841c9390800290614a84565b509250929050565b600082614aef57506001613e0f565b81614afc57506000613e0f565b8160018114614b125760028114614b1c57614b38565b6001915050613e0f565b60ff841115614b2d57614b2d61459e565b50506001821b613e0f565b5060208310610133831016604e8410600b8410161715614b5b575081810a613e0f565b614b658383614a7f565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614b9757614b9761459e565b029392505050565b6000613f068383614ae0565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614be357614be361459e565b50029056fea164736f6c634300080d000a
🤖 Code Reader
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| 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.

