Source Code
Overview
POL Balance
POL Value
$0.00Cross-Chain Transactions
Loading...
Loading
Heuristics suggest this may be a proxy contract. Verify using the Proxy Contract Checker
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userTargetAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_lockerTargetAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"lockerLockingScript","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"requestIdOfLocker","type":"uint256"}],"name":"BurnDispute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_lockerTargetAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"lockerLockingScript","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"txId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LockerDispute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldLockers","type":"address"},{"indexed":false,"internalType":"address","name":"newLockers","type":"address"}],"name":"NewLockers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldNetworkFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newNetworkFee","type":"uint256"}],"name":"NewNetworkFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldNetworkFeeOracle","type":"address"},{"indexed":false,"internalType":"address","name":"newNetworkFeeOracle","type":"address"}],"name":"NewNetworkFeeOracle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProtocolPercentageFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProtocolPercentageFee","type":"uint256"}],"name":"NewProtocolPercentageFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRelay","type":"address"},{"indexed":false,"internalType":"address","name":"newRelay","type":"address"}],"name":"NewRelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldSlasherPercentageFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSlasherPercentageFee","type":"uint256"}],"name":"NewSlasherPercentageFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTeleBTC","type":"address"},{"indexed":false,"internalType":"address","name":"newTeleBTC","type":"address"}],"name":"NewTeleBTC","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"thirdPartyId","type":"uint256"},{"indexed":false,"internalType":"address","name":"oldThirdPartyAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newThirdPartyAddress","type":"address"}],"name":"NewThirdPartyAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"thirdPartyId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldThirdPartyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newThirdPartyFee","type":"uint256"}],"name":"NewThirdPartyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldTransferDeadline","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTransferDeadline","type":"uint256"}],"name":"NewTransferDeadline","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTreasury","type":"address"},{"indexed":false,"internalType":"address","name":"newTreasury","type":"address"}],"name":"NewTreasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"userScript","type":"bytes"},{"indexed":false,"internalType":"enum ScriptTypes","name":"scriptType","type":"uint8"},{"indexed":false,"internalType":"address","name":"lockerTargetAddress","type":"address"},{"indexed":true,"internalType":"address","name":"userTargetAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"requestIdOfLocker","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"deadline","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"thirdPartyId","type":"uint256"},{"indexed":false,"internalType":"address","name":"inputToken","type":"address"},{"indexed":false,"internalType":"uint256[3]","name":"amounts","type":"uint256[3]"},{"indexed":false,"internalType":"uint256[4]","name":"fees","type":"uint256[4]"}],"name":"NewUnwrap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldWrappedNativeToken","type":"address"},{"indexed":false,"internalType":"address","name":"newWrappedNativeToken","type":"address"}],"name":"NewWrappedNativeToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lockerTargetAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"requestIdOfLocker","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"bitcoinTxId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"bitcoinTxOutputIndex","type":"uint256"}],"name":"PaidUnwrap","type":"event"},{"inputs":[],"name":"bitcoinFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bitcoinFeeOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_version","type":"bytes4"},{"internalType":"bytes","name":"_vin","type":"bytes"},{"internalType":"bytes","name":"_vout","type":"bytes"},{"internalType":"bytes4","name":"_locktime","type":"bytes4"},{"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"internalType":"bytes","name":"_intermediateNodes","type":"bytes"},{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"},{"internalType":"uint256[]","name":"_burnReqIndexes","type":"uint256[]"},{"internalType":"uint256[]","name":"_voutIndexes","type":"uint256[]"}],"name":"burnProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_txId","type":"bytes32"},{"internalType":"address","name":"_lockerTargetAddress","type":"address"},{"internalType":"uint256","name":"_burnReqIndex","type":"uint256"},{"internalType":"uint256","name":"_voutIndex","type":"uint256"}],"name":"burnProofByOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"burnRequestCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"burnRequests","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"burntAmount","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"userScript","type":"bytes"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"isTransferred","type":"bool"},{"internalType":"enum ScriptTypes","name":"scriptType","type":"uint8"},{"internalType":"uint256","name":"requestIdOfLocker","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"},{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"disputeBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"},{"internalType":"bytes4[]","name":"_versions","type":"bytes4[]"},{"internalType":"bytes","name":"_inputVin","type":"bytes"},{"internalType":"bytes","name":"_inputVout","type":"bytes"},{"internalType":"bytes","name":"_outputVin","type":"bytes"},{"internalType":"bytes","name":"_outputVout","type":"bytes"},{"internalType":"bytes4[]","name":"_locktimes","type":"bytes4[]"},{"internalType":"bytes","name":"_inputIntermediateNodes","type":"bytes"},{"internalType":"uint256[]","name":"_indexesAndBlockNumbers","type":"uint256[]"}],"name":"disputeLocker","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startingBlockNumber","type":"uint256"},{"internalType":"address","name":"_relay","type":"address"},{"internalType":"address","name":"_lockers","type":"address"},{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_teleBTC","type":"address"},{"internalType":"uint256","name":"_transferDeadline","type":"uint256"},{"internalType":"uint256","name":"_protocolPercentageFee","type":"uint256"},{"internalType":"uint256","name":"_slasherPercentageReward","type":"uint256"},{"internalType":"uint256","name":"_networkFee","type":"uint256"},{"internalType":"address","name":"_wrappedNativeToken","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lockerTargetAddress","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"isTransferred","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"isUsedAsBurnProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolPercentageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"relay","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lockers","type":"address"}],"name":"setLockers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_networkFee","type":"uint256"}],"name":"setNetworkFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_networkFeeOracle","type":"address"}],"name":"setNetworkFeeOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_protocolPercentageFee","type":"uint256"}],"name":"setProtocolPercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_relay","type":"address"}],"name":"setRelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_slasherPercentageReward","type":"uint256"}],"name":"setSlasherPercentageReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startingBlockNumber","type":"uint256"}],"name":"setStartingBlockNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teleBTC","type":"address"}],"name":"setTeleBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_thirdPartyId","type":"uint256"},{"internalType":"address","name":"_thirdPartyAddress","type":"address"}],"name":"setThirdPartyAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_thirdPartyId","type":"uint256"},{"internalType":"uint256","name":"_thirdPartyFee","type":"uint256"}],"name":"setThirdPartyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferDeadline","type":"uint256"}],"name":"setTransferDeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wrappedNativeToken","type":"address"}],"name":"setWrappedNativeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slasherPercentageReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startingBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_exchangeConnector","type":"address"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"bool","name":"_isFixedToken","type":"bool"},{"internalType":"address[]","name":"_path","type":"address[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"bytes","name":"_userScript","type":"bytes"},{"internalType":"enum ScriptTypes","name":"_scriptType","type":"uint8"},{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"},{"internalType":"uint256","name":"thirdParty","type":"uint256"}],"name":"swapAndUnwrap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"teleBTC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"thirdPartyAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"thirdPartyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_userScript","type":"bytes"},{"internalType":"enum ScriptTypes","name":"_scriptType","type":"uint8"},{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"},{"internalType":"uint256","name":"thirdParty","type":"uint256"}],"name":"unwrap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wrappedNativeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b5061603e80620000216000396000f3fe6080604052600436106101cf5760003560e01c80630e757850146101db57806317fcb39b146101fd5780631812adb6146102335780631876dec4146102575780631e236168146102775780631e7107c7146102b757806333453d15146102d75780633fea4367146102f7578063419cba7f1461031757806344dd6aa51461032d5780634782bc361461034057806350a058361461036057806359fd0b0c146103805780635c4f5f3e146103ad57806361d027b3146103cd57806370872aa5146103ed578063715018a61461040357806373532b2a14610418578063779f7836146104385780637ed55748146104585780637f0f1817146104785780637ffe9a92146104985780638d3d78cd146104b85780638d5fc1d4146104d85780638da5cb5b146104f85780638f9eb78b1461050d578063930a60e81461052d578063a9b682711461055a578063b14d353214610590578063b59589d1146105b0578063b74d0d35146105d0578063bed6a602146105e6578063c780c03f146105fc578063c805f68b1461060f578063cf54ce471461062f578063da058ae31461064f578063ea7326371461066f578063f0f4426014610682578063f2fde38b146106a2578063f47e2240146106c257600080fd5b366101d657005b600080fd5b3480156101e757600080fd5b506101fb6101f636600461552e565b6106f6565b005b34801561020957600080fd5b5060a65461021d906001600160a01b031681565b60405161022a9190615824565b60405180910390f35b34801561023f57600080fd5b5061024960075481565b60405190815260200161022a565b34801561026357600080fd5b5060015461021d906001600160a01b031681565b34801561028357600080fd5b506102a76102923660046151af565b600c6020526000908152604090205460ff1681565b604051901515815260200161022a565b3480156102c357600080fd5b506101fb6102d23660046151af565b610883565b3480156102e357600080fd5b506101fb6102f2366004614f6f565b6108f2565b34801561030357600080fd5b506102496103123660046155d0565b610963565b34801561032357600080fd5b5061024960085481565b61024961033b366004614fa7565b610a7f565b34801561034c57600080fd5b506101fb61035b3660046151af565b610b25565b34801561036c57600080fd5b5060045461021d906001600160a01b031681565b34801561038c57600080fd5b5061024961039b3660046151af565b60a46020526000908152604090205481565b3480156103b957600080fd5b506101fb6103c83660046151af565b610bbf565b3480156103d957600080fd5b5060035461021d906001600160a01b031681565b3480156103f957600080fd5b5061024960055481565b34801561040f57600080fd5b506101fb610d55565b34801561042457600080fd5b506101fb610433366004615340565b610d5f565b34801561044457600080fd5b506101fb6104533660046151df565b611385565b34801561046457600080fd5b506101fb6104733660046151af565b611432565b34801561048457600080fd5b506101fb610493366004614f6f565b6114cb565b3480156104a457600080fd5b506102a76104b33660046150bf565b611565565b3480156104c457600080fd5b5060025461021d906001600160a01b031681565b3480156104e457600080fd5b506101fb6104f33660046154ff565b6115bd565b34801561050457600080fd5b5061021d611661565b34801561051957600080fd5b506101fb610528366004615659565b611670565b34801561053957600080fd5b50610249610548366004614f6f565b600b6020526000908152604090205481565b34801561056657600080fd5b5061021d6105753660046151af565b60a5602052600090815260409020546001600160a01b031681565b34801561059c57600080fd5b506101fb6105ab366004614f6f565b6116d5565b3480156105bc57600080fd5b5060005461021d906001600160a01b031681565b3480156105dc57600080fd5b5061024960095481565b3480156105f257600080fd5b5061024960065481565b6101fb61060a3660046153a5565b61176f565b34801561061b57600080fd5b506101fb61062a366004614f6f565b6118ed565b34801561063b57600080fd5b506101fb61064a3660046151af565b611987565b34801561065b57600080fd5b506101fb61066a366004614f6f565b611a22565b6102a761067d36600461521b565b611a93565b34801561068e57600080fd5b506101fb61069d366004614f6f565b611e04565b3480156106ae57600080fd5b506101fb6106bd366004614f6f565b611e9e565b3480156106ce57600080fd5b506106e26106dd3660046150bf565b611f17565b60405161022a989796959493929190615c65565b600d54610100900460ff16158080156107165750600d54600160ff909116105b806107305750303b1580156107305750600d5460ff166001145b6107985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600d805460ff1916600117905580156107bb57600d805461ff0019166101001790555b6107c3612014565b6107cb612043565b6107d48b610883565b6107dd8a6118ed565b6107e6896116d5565b6107ef88611e04565b6107f8876114cb565b61080186610bbf565b61080a85611432565b61081384610b25565b61081e6102f2611661565b61082783611987565b61083082611a22565b801561087657600d805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b61088b612072565b60055481116108ed5760405162461bcd60e51b815260206004820152602860248201527f4275726e526f757465724c6f6769633a206c6f77207374617274696e67426c6f60448201526731b5a73ab6b132b960c11b606482015260840161078f565b600555565b6108fa612072565b6004546040517f68bf625687194a1bbeeccbaa327c37aa1f9940a3c6c9e8fe84f06f1dc14fd17691610939916001600160a01b03909116908490615838565b60405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b600061096d6120d1565b6002546001600160a01b03166323b872dd33308a6040518463ffffffff1660e01b815260040161099f93929190615852565b602060405180830381600087803b1580156109b957600080fd5b505af11580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f191906150ea565b610a495760405162461bcd60e51b8152602060048201526024808201527f4275726e526f757465724c6f6769633a207472616e7366657246726f6d2066616044820152631a5b195960e21b606482015260840161078f565b600254600090610a68906001600160a01b031689808a8a8a8a8a61212b565b915050610a756001607255565b9695505050505050565b6000610a896120d1565b6000610a9a8e8e8e8e8e8e8e6125d2565b9050610b088d8d6000818110610ac057634e487b7160e01b600052603260045260246000fd5b905060200201358b8b6000818110610ae857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610afd9190614f6f565b838a8a8a8a8a612b2c565b915050610b156001607255565b9c9b505050505050505050505050565b610b2d612072565b806127101015610b7f5760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c69642072657761726400604482015260640161078f565b7faa50b3683e42a13535a5b9c2c32780cccf956fb546b523a3542ac4ad8b544f6760085482604051610bb2929190615c57565b60405180910390a1600855565b600080546040516353bcd1c960e11b815273428351462684f4c9df7ef60b35825471d6d7540a9163a779a39291610c02916001600160a01b031690600401615824565b60206040518083038186803b158015610c1a57600080fd5b505af4158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5291906151c7565b9050610c5c611661565b6001600160a01b0316336001600160a01b03161480610c7c575080600654105b610cc55760405162461bcd60e51b815260206004820152601a602482015279109d5c9b949bdd5d195c931bd9da58ce881b9bc81c195c9b5a5d60321b604482015260640161078f565b808211610d145760405162461bcd60e51b815260206004820152601d60248201527f4275726e526f757465724c6f6769633a206c6f7720646561646c696e65000000604482015260640161078f565b7f92c10a242ca42973030420e2ee32b3ba7818cc643f896958f620c606cf30041660065483604051610d47929190615c57565b60405180910390a150600655565b610d5d612072565b565b610d676120d1565b610d6f612072565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa390610da190869086906004016159cf565b60206040518083038186803b158015610db957600080fd5b505afa158015610dcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df191906150ea565b610e0d5760405162461bcd60e51b815260040161078f90615b8a565b60015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a90610e4090879087906004016159cf565b60206040518083038186803b158015610e5857600080fd5b505afa158015610e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e909190614f8b565b905060005b82518110156113745773428351462684f4c9df7ef60b35825471d6d7540a6315755789600a84868581518110610edb57634e487b7160e01b600052603260045260246000fd5b60209081029190910101516006546000546040516310889dc360e01b815273428351462684f4c9df7ef60b35825471d6d7540a916310889dc391610f2b916001600160a01b031690600401615824565b60206040518083038186803b158015610f4357600080fd5b505af4158015610f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7b91906151c7565b6005546040516001600160e01b031960e089901b16815260048101969096526001600160a01b03909416602486015260448501929092526064840152608483015260a482015260c40160006040518083038186803b158015610fdc57600080fd5b505af4158015610ff0573d6000803e3d6000fd5b50506001546008546001600160a01b038681166000908152600a602052604090208851919093169450631697565b93508692612710929189908890811061104757634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061106d57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600001546110899190615e9b565b6110939190615e7b565b336001600160a01b0387166000908152600a6020526040902088518990889081106110ce57634e487b7160e01b600052603260045260246000fd5b6020026020010151815481106110f457634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160000154600a6000896001600160a01b03166001600160a01b0316815260200190815260200160002089888151811061114b57634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061117157634e487b7160e01b600052603260045260246000fd5b600091825260209091206007909102016002015460405160e087901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094529184166044840152606483015291909116608482015260a401602060405180830381600087803b1580156111e457600080fd5b505af11580156111f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121c91906150ea565b506001600160a01b0382166000818152600a60205260409020845185908490811061125757634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061127d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160020160009054906101000a90046001600160a01b03166001600160a01b03167f58c23b4ae0617be275628875bcfd65759a441263099a256eeb27899fb5dd846d8787600a6000886001600160a01b03166001600160a01b0316815260200190815260200160002088878151811061131357634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061133957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016006015460405161135a939291906159e3565b60405180910390a38061136c81615f7e565b915050610e95565b50506113806001607255565b505050565b61138d6120d1565b611395612072565b6001600160a01b0383166000818152600a602052604090208054600080516020615fe98339815191529190859081106113de57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160060154868460405161140193929190615c41565b60405180910390a26000848152600c60205260409020805460ff1916600117905561142c6001607255565b50505050565b61143a612072565b80612710101561148b5760405162461bcd60e51b815260206004820152601c60248201527b4275726e526f757465724c6f6769633a20696e76616c69642066656560201b604482015260640161078f565b7f7d205f60891f60851c61cd244ba387d72b6589e7c0ac41b9d909ab0ce2c2a53b600754826040516114be929190615c57565b60405180910390a1600755565b6114d3612072565b806001600160a01b0381166114fb5760405163d92e233d60e01b815260040160405180910390fd5b6002546040517f36a4c08a38b736dcecb6c328dba61238529620e83ccb23db2cc43cd34ec260969161153a916001600160a01b03909116908590615838565b60405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166000908152600a6020526040812080548390811061159d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1690505b92915050565b6115c5612072565b600082815260a56020526040908190205490517f1e73962bcff5b98a9ac70c9b0f71fbb31dc0f5a09348c6d3ceab164169a9e7299161162b9185916001600160a01b03169085909283526001600160a01b03918216602084015216604082015260600190565b60405180910390a1600091825260a5602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040546001600160a01b031690565b611678612072565b600082815260a46020526040908190205490517f188adabf806a6b6d814acc1dbd9f09e5a251c8c065d6285749a5824e4579b645916116bb918591908590615c41565b60405180910390a1600091825260a4602052604090912055565b6116dd612072565b806001600160a01b0381166117055760405163d92e233d60e01b815260040160405180910390fd5b6001546040517ffa021c2ec0f46429a53e7f88b88065e40001f50c9d38b2e8b713beaf9828d4c391611744916001600160a01b03909116908590615838565b60405180910390a150600180546001600160a01b0319166001600160a01b0392909216919091179055565b6117776120d1565b61177f612072565b60006117dd896000815181106117a557634e487b7160e01b600052603260045260246000fd5b60200260200101518989876000815181106117d057634e487b7160e01b600052603260045260246000fd5b6020026020010151612b3f565b905073428351462684f4c9df7ef60b35825471d6d7540a63441d3a21600160009054906101000a90046001600160a01b03168c8c60405180606001604052808e81526020018c81526020018b815250600c60065460008054906101000a90046001600160a01b03166005548a8e8e8e6040518d63ffffffff1660e01b81526004016118739c9b9a999897969594939291906158b5565b60006040518083038186803b15801561188b57600080fd5b505af415801561189f573d6000803e3d6000fd5b505050506118d7878b83856002815181106118ca57634e487b7160e01b600052603260045260246000fd5b6020026020010151612ca5565b506118e26001607255565b505050505050505050565b6118f5612072565b806001600160a01b03811661191d5760405163d92e233d60e01b815260040160405180910390fd5b6000546040517f4c28a3f61a715259c4dc930c23e7423b8fa52e13232c061a6e488729c66184f49161195c916001600160a01b03909116908590615838565b60405180910390a150600080546001600160a01b0319166001600160a01b0392909216919091179055565b60045433906001600160a01b031681146119e15760405162461bcd60e51b815260206004820152601b60248201527a4275726e526f757465724c6f6769633a206e6f74206f7261636c6560281b604482015260640161078f565b7f890eb41e398fd9cf425695b34269b781ad56c257422859094a28db47fb78f1b360095483604051611a14929190615c57565b60405180910390a150600955565b611a2a612072565b60a6546040517f4da8064030e901e42f6de0ab04f4c322d7936d0120503addfe8a51f12709068991611a69916001600160a01b03909116908490615838565b60405180910390a160a680546001600160a01b0319166001600160a01b0392909216919091179055565b6000611a9d6120d1565b60015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a90611ace908890600401615a07565b60206040518083038186803b158015611ae657600080fd5b505afa158015611afa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1e9190614f8b565b9050336001600160a01b0382161480611b4a57506004546001600160a01b0316336001600160a01b0316145b611b665760405162461bcd60e51b815260040161078f90615b8a565b73428351462684f4c9df7ef60b35825471d6d7540a6344922b64896005548c600160009054906101000a90046001600160a01b03168a8a518a516040518863ffffffff1660e01b8152600401611bc29796959493929190615d47565b60006040518083038186803b158015611bda57600080fd5b505af4158015611bee573d6000803e3d6000fd5b505050506000611c008d8d8d8d612b3f565b600054604051637ebc232760e01b815291925073428351462684f4c9df7ef60b35825471d6d7540a91637ebc232791611c4f916001600160a01b039091169085908e908e908e90600401615876565b60206040518083038186803b158015611c6757600080fd5b505af4158015611c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9f91906150ea565b611ceb5760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a206e6f742066696e616c697a65640000604482015260640161078f565b6000611cfb828b858f8a8a612e71565b905073428351462684f4c9df7ef60b35825471d6d7540a63191e28dc600c838f8b876040518663ffffffff1660e01b8152600401611d3d959493929190615b11565b60206040518083038186803b158015611d5557600080fd5b505af4158015611d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8d91906150ea565b611de55760405162461bcd60e51b815260206004820152602360248201527f4275726e526f757465724c6f6769633a20696e76616c6964206275726e20707260448201526237b7b360e91b606482015260840161078f565b60019350505050611df66001607255565b9a9950505050505050505050565b611e0c612072565b806001600160a01b038116611e345760405163d92e233d60e01b815260040160405180910390fd5b6003546040517f567657fa3f286518b318f4a29870674f433f622fdfc819691acb13105b22822591611e73916001600160a01b03909116908590615838565b60405180910390a150600380546001600160a01b0319166001600160a01b0392909216919091179055565b611ea6612072565b6001600160a01b038116611f0b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161078f565b611f1481613343565b50565b600a6020528160005260406000208181548110611f3357600080fd5b600091825260209091206007909102018054600182015460028301546003840180549396509194506001600160a01b03169291611f6f90615f49565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9b90615f49565b8015611fe85780601f10611fbd57610100808354040283529160200191611fe8565b820191906000526020600020905b815481529060010190602001808311611fcb57829003601f168201915b505050600484015460058501546006909501549394909360ff8083169450610100909204909116915088565b600d54610100900460ff1661203b5760405162461bcd60e51b815260040161078f90615bbf565b610d5d613393565b600d54610100900460ff1661206a5760405162461bcd60e51b815260040161078f90615bbf565b610d5d6133c3565b3361207b611661565b6001600160a01b031614610d5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161078f565b600260725414156121245760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161078f565b6002607255565b600154604051630f87661560e41b815260009173428351462684f4c9df7ef60b35825471d6d7540a9163f87661509161217a918a918a916001600160a01b03909116908a908a90600401615a1a565b60006040518083038186803b15801561219257600080fd5b505af41580156121a6573d6000803e3d6000fd5b5050505060008060006121f18a88888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506133ea915050565b60025460015460405163095ea7b360e01b81529497509295509093506001600160a01b039081169263095ea7b39261222f92169087906004016159b6565b602060405180830381600087803b15801561224957600080fd5b505af115801561225d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228191906150ea565b506001546040516338463cff60e01b81526001600160a01b03909116906338463cff906122b6908a908a9088906004016159e3565b602060405180830381600087803b1580156122d057600080fd5b505af11580156122e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230891906151c7565b60015460405163626885b560e11b81529195506000916001600160a01b039091169063c4d10b6a90612340908b908b906004016159cf565b60206040518083038186803b15801561235857600080fd5b505afa15801561236c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123909190614f8b565b6000546040516310889dc360e01b8152919250612437918d9188918e918e9173428351462684f4c9df7ef60b35825471d6d7540a916310889dc3916123e1916001600160a01b031690600401615824565b60206040518083038186803b1580156123f957600080fd5b505af415801561240d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243191906151c7565b8661380f565b604080516060810182528d815260208082018e905281830188905282516080810190935260095483528f9260009181016124718a8a615ee3565b8152602080820189905260409182018890526001600160a01b0387166000908152600a909152208054919250906124aa90600190615ee3565b815481106124c857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600401546124e13390565b6001600160a01b03167f6b5c22e69db87534a562352580358411dc7b2d98d24684765342f2ebf2dd8c318f8f88600a60008b6001600160a01b03166001600160a01b031681526020019081526020016000206001600a60008d6001600160a01b03166001600160a01b03168152602001908152602001600020805490506125689190615ee3565b8154811061258657634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600601548f8a8a8a6040516125b0989796959493929190615a68565b60405180910390a35050505050505098975050505050505050565b6001607255565b6002546000906001600160a01b031684846125ee600182615ee3565b81811061260b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906126209190614f6f565b6001600160a01b0316146126465760405162461bcd60e51b815260040161078f90615c0a565b600286146126965760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a2077726f6e6720616d6f756e74730000604482015260640161078f565b34156127e357868660008181106126bd57634e487b7160e01b600052603260045260246000fd5b9050602002013534146127125760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c696420616d6f756e7400604482015260640161078f565b8383600081811061273357634e487b7160e01b600052603260045260246000fd5b90506020020160208101906127489190614f6f565b60a6546001600160a01b039081169116146127755760405162461bcd60e51b815260040161078f90615c0a565b60a660009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b50505050506128c3565b8383600081811061280457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906128199190614f6f565b6001600160a01b03166323b872dd33308a8a600081811061284a57634e487b7160e01b600052603260045260246000fd5b905060200201356040518463ffffffff1660e01b815260040161286f93929190615852565b602060405180830381600087803b15801561288957600080fd5b505af115801561289d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c191906150ea565b505b838360008181106128e457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906128f99190614f6f565b6001600160a01b031663095ea7b3898989600081811061292957634e487b7160e01b600052603260045260246000fd5b905060200201356040518363ffffffff1660e01b815260040161294d9291906159b6565b602060405180830381600087803b15801561296757600080fd5b505af115801561297b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299f91906150ea565b50600080896001600160a01b031663b0bbcd888a8a60008181106129d357634e487b7160e01b600052603260045260246000fd5b9050602002013560648c8c60018181106129fd57634e487b7160e01b600052603260045260246000fd5b90506020020135605a612a109190615e9b565b612a1a9190615e7b565b8989308a8e6040518863ffffffff1660e01b8152600401612a419796959493929190615cc8565b600060405180830381600087803b158015612a5b57600080fd5b505af1158015612a6f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a979190810190615106565b9150915081612ae85760405162461bcd60e51b815260206004820181905260248201527f4275726e526f757465724c6f6769633a2065786368616e6765206661696c6564604482015260640161078f565b8060018251612af79190615ee3565b81518110612b1557634e487b7160e01b600052603260045260246000fd5b602002602001015192505050979650505050505050565b600080611df6898b8a8a8a8a8a8a61212b565b600080612b54612b4f86836139df565b613a03565b9050612b6562ffffff198216613b59565b15612baf5760405162461bcd60e51b815260206004820152601a602482015279109a5d18dbda5b92195b1c195c8e881d9a5b881a5cc81b9d5b1b60321b604482015260640161078f565b6000600287878787604051602001612bca94939291906157b5565b60408051601f1981840301815290829052612be491615808565b602060405180830381855afa158015612c01573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612c2491906151c7565b90506000600282604051602001612c3d91815260200190565b60408051601f1981840301815290829052612c5791615808565b602060405180830381855afa158015612c74573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612c9791906151c7565b93505050505b949350505050565b6000612cb085613b65565b60015460405163626885b560e11b81526001600160401b039290921692506000916001600160a01b039091169063c4d10b6a90612cf1908890600401615a07565b60206040518083038186803b158015612d0957600080fd5b505afa158015612d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d419190614f8b565b6001546008549192506001600160a01b03169063b734de2690839061271090612d6a9087615e9b565b612d749190615e7b565b3360405160e085901b6001600160e01b03191681526001600160a01b0393841660048201526024810192909252909116604482015260648101859052608401602060405180830381600087803b158015612dcd57600080fd5b505af1158015612de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0591906150ea565b507f7ff138134e34ccab071315c38e38eec079f54726b890304ab46e2c5ab6f722bb8186858761271060085488612e3c9190615e9b565b612e469190615e7b565b612e509088615df1565b604051612e61959493929190615975565b60405180910390a1505050505050565b60008080805b85518110156133365780612eb457848181518110612ea557634e487b7160e01b600052603260045260246000fd5b60200260200101519150612f65565b81858281518110612ed557634e487b7160e01b600052603260045260246000fd5b602002602001015111612f3a5760405162461bcd60e51b815260206004820152602760248201527f4275726e526f757465724c6f6769633a20756e2d736f7274656420766f757420604482015266696e646578657360c81b606482015260840161078f565b848181518110612f5a57634e487b7160e01b600052603260045260246000fd5b602002602001015191505b6000868281518110612f8757634e487b7160e01b600052603260045260246000fd5b60200260200101519050600a60008a6001600160a01b03166001600160a01b031681526020019081526020016000208181548110612fd557634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1615801561304457506001600160a01b0389166000908152600a6020526040902080548b91908390811061302f57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016004015410155b15613323576131b18887848151811061306d57634e487b7160e01b600052603260045260246000fd5b6020026020010151600a60008d6001600160a01b03166001600160a01b0316815260200190815260200160002084815481106130b957634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160030180546130d590615f49565b80601f016020809104026020016040519081016040528092919081815260200182805461310190615f49565b801561314e5780601f106131235761010080835404028352916020019161314e565b820191906000526020600020905b81548152906001019060200180831161313157829003601f168201915b5050506001600160a01b038f166000908152600a602052604090208054909250879150811061318d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160050160019054906101000a900460ff16613c08565b6001600160401b0316935083600a60008b6001600160a01b03166001600160a01b03168152602001908152602001600020828154811061320157634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600101541415613323576001600160a01b0389166000908152600a602052604090208054600191908390811061325557634e487b7160e01b600052603260045260246000fd5b60009182526020909120600790910201600501805460ff1916911515919091179055613282856001615df1565b6001600160a01b038a166000818152600a6020526040902080549297509091600080516020615fe98339815191529190849081106132d057634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600601548d89868151811061330357634e487b7160e01b600052603260045260246000fd5b602002602001015160405161331a93929190615c41565b60405180910390a25b508061332e81615f7e565b915050612e77565b5050509695505050505050565b604080546001600160a01b038381166001600160a01b031983168117845592519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600d54610100900460ff166133ba5760405162461bcd60e51b815260040161078f90615bbf565b610d5d33613343565b600d54610100900460ff166125cb5760405162461bcd60e51b815260040161078f90615bbf565b6000806000612710600754876134009190615e9b565b61340a9190615e7b565b600085815260a460205260409020549092506127109061342a9088615e9b565b6134349190615e7b565b600954909150816134458489615ee3565b61344f9190615ee3565b6134599190615ee3565b92506009548310156134ab5760405162461bcd60e51b815260206004820152601b60248201527a109d5c9b949bdd5d195c931bd9da58ce881b1bddc8185b5bdd5b9d602a1b604482015260640161078f565b81156135915760025460035460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926134e79291169086906004016159b6565b602060405180830381600087803b15801561350157600080fd5b505af1158015613515573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061353991906150ea565b6135915760405162461bcd60e51b8152602060048201526024808201527f4275726e526f757465724c6f6769633a20666565207472616e736665722066616044820152631a5b195960e21b606482015260840161078f565b801561369157600254600085815260a560205260409081902054905163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926135da9291169085906004016159b6565b602060405180830381600087803b1580156135f457600080fd5b505af1158015613608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061362c91906150ea565b6136915760405162461bcd60e51b815260206004820152603060248201527f4275726e526f757465724c6f6769633a2074686972642070617274792066656560448201526f081d1c985b9cd9995c8819985a5b195960821b606482015260840161078f565b600954156138065760015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a906136ca908990600401615a07565b60206040518083038186803b1580156136e257600080fd5b505afa1580156136f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371a9190614f8b565b60025460095460405163a9059cbb60e01b81529293506001600160a01b039091169163a9059cbb91613751918591906004016159b6565b602060405180830381600087803b15801561376b57600080fd5b505af115801561377f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a391906150ea565b6138045760405162461bcd60e51b815260206004820152602c60248201527f4275726e526f757465724c6f6769633a206e6574776f726b206665652074726160448201526b1b9cd9995c8819985a5b195960a21b606482015260840161078f565b505b93509350939050565b604080516101008101825260006080820181905260a0820181905260c0820181815260e0830191909152888252602082018890523392820192909252606081018690529084600581111561387357634e487b7160e01b600052602160045260246000fd5b9081600581111561389457634e487b7160e01b600052602160045260246000fd5b9052506006546138a49084615df1565b6080820152600060a082018190526001600160a01b038316808252600b6020818152604084205460e08601819052929093529091526138e4906001615df1565b6001600160a01b038381166000908152600b6020908152604080832094909455600a81528382208054600180820183559184529282902086516007909402019283558582015190830155928401516002820180546001600160a01b0319169190931617909155606083015180518493613964926003850192910190614cdd565b506080820151600482015560a08201516005808301805492151560ff1984168117825560c086015193919261ff001990911661ffff1990921691909117906101009084908111156139c557634e487b7160e01b600052602160045260246000fd5b021790555060e08201518160060155505050505050505050565b8151600090602084016139fa64ffffffffff85168284613e7c565b95945050505050565b60008181613a19815b62ffffff19841690613ec3565b50613a2962ffffff198516613f9d565b6001600160601b0316613a4557613a3e613fac565b9250613b52565b6000613a52856000613fb4565b90506000613a6562ffffff198716613f9d565b6001600160601b031690506001600160401b038216613a8f57613a86613fac565b94505050613b52565b6000613a9a836140fd565b60ff16905060005b836001600160401b0316811015613b1857828210613acd57613ac2613fac565b965050505050613b52565b6000613aed613adc8486615ee3565b60055b62ffffff198c16919061415b565b9050613af881614185565b613b029084615df1565b9250508080613b1090615f7e565b915050613aa2565b50818114613b3257613b28613fac565b9550505050613b52565b613b4c60065b60d81b6301000000600160d81b0389161790565b95505050505b5050919050565b62ffffff199081161490565b600080613b7a613b7584836139df565b6141d9565b9050613b8b62ffffff198216613b59565b15613ba85760405162461bcd60e51b815260040161078f90615b55565b600080613bb6836000613fb4565b6001600160401b0316905060005b81811015613bff57613bd684826142da565b9250613be1836143f1565b613beb9086615e09565b945080613bf781615f7e565b915050613bc4565b50505050919050565b600080613c18613b7587836139df565b9050613c2962ffffff198216613b59565b15613c465760405162461bcd60e51b815260040161078f90615b55565b6000613c5282876142da565b90506000613c5f82614416565b90506005856005811115613c8357634e487b7160e01b600052602160045260246000fd5b1415613ce857613c9c62ffffff19821660026020614467565b604051602001613cae91815260200190565b60405160208183030381529060405280519060200120868051906020012014613cd8576000613ce1565b613ce1826143f1565b9350613e71565b6000856005811115613d0a57634e487b7160e01b600052602160045260246000fd5b1415613d2357613c9c62ffffff19821660016020614467565b6001856005811115613d4557634e487b7160e01b600052602160045260246000fd5b1415613d7f57613d5c62ffffff1982166003614595565b604051602001613cae919060609190911b6001600160601b031916815260140190565b6002856005811115613da157634e487b7160e01b600052602160045260246000fd5b1415613db857613d5c62ffffff1982166002614595565b6003856005811115613dda57634e487b7160e01b600052602160045260246000fd5b1415613df157613d5c62ffffff1982166002614595565b6004856005811115613e1357634e487b7160e01b600052602160045260246000fd5b1415613e7157613e2c62ffffff19821660026020614467565b604051602001613e3e91815260200190565b60405160208183030381529060405280519060200120868051906020012014613e68576000612c97565b612c97826143f1565b505050949350505050565b600080613e898385615df1565b9050604051811115613e99575060005b80613eab5762ffffff19915050613ebc565b5050606083811b8317901b811760181b5b9392505050565b6000613ecf83836145a3565b613f96576000613eee613ee28560d81c90565b64ffffffffff166145c6565b9150506000613f038464ffffffffff166145c6565b6040517f5479706520617373657274696f6e206661696c65642e20476f7420307800000060208201526001600160b01b031960b086811b8216603d8401526c05c408af0e0cac6e8cac84060f609b1b604784015283901b16605482015290925060009150605e015b60405160208183030381529060405290508060405162461bcd60e51b815260040161078f9190615a07565b5090919050565b60181c6001600160601b031690565b62ffffff1990565b600080613fc962ffffff198516846001614672565b905060fc8111613fe457613fdc816146a2565b9150506115b7565b8060fd141561404a5761401261400d613ffe856001615df1565b62ffffff19871690600261470e565b6146a2565b915061401d826140fd565b60ff166003146140455761404361403e62ffffff1986168560036000614851565b6148b7565b505b6140f6565b8060fe141561409f5761407361400d614064856001615df1565b62ffffff19871690600461470e565b915061407e826140fd565b60ff166005146140455761404361403e62ffffff1986168560056000614851565b8060ff14156140f6576140c861400d6140b9856001615df1565b62ffffff19871690600861470e565b91506140d3826140fd565b60ff166009146140f6576140f461403e62ffffff1986168560096000614851565b505b5092915050565b600060fc826001600160401b03161161411857506001919050565b61ffff826001600160401b03161161413257506003919050565b63ffffffff826001600160401b03161161414e57506005919050565b506009919050565b919050565b6000612c9d848461416b87613f9d565b6001600160601b031661417e9190615ee3565b8585614851565b600081600561419381613a0c565b5060006141a1856024613fb4565b9050806001600160401b03166141b6826140fd565b60ff166141c39190615df1565b6141ce906024615df1565b6139fa906004615df1565b600081816141e681613a0c565b506141f662ffffff198516613f9d565b6001600160601b031661420b57613a3e613fac565b6000614218856000613fb4565b9050600061422b62ffffff198716613f9d565b6001600160601b031690506001600160401b03821661424c57613a86613fac565b6000614257836140fd565b60ff16905060005b836001600160401b03168110156142c05782821061427f57613ac2613fac565b600061429561428e8486615ee3565b600e613adf565b90506142a08161493f565b6142aa9084615df1565b92505080806142b890615f7e565b91505061425f565b508181146142d057613b28613fac565b613b4c600f613b38565b600082600f6142e881613a0c565b5060006142f6866000613fb4565b6001600160401b03169050600061431262ffffff198816613f9d565b6001600160601b031690508186106143605760405162461bcd60e51b81526020600482015260116024820152702b37baba103932b0b21037bb32b9393ab760791b604482015260640161078f565b600061436b836140fd565b60ff1690506000805b888110156143c1576143986143898486615ee3565b62ffffff198c1690600e61415b565b91506143a38261493f565b6143ad9084615df1565b92506143ba600182615df1565b9050614374565b506143cf61428e8385615ee3565b905060006143dc8261493f565b9050611df662ffffff198b168483600d614851565b600081600d6143ff81613a0c565b50612c9d61400d62ffffff1986166000600861470e565b600081600d61442481613a0c565b506000614432856008613fb4565b90506139fa614440826140fd565b61444b906008615e34565b62ffffff1987169060ff166001600160401b0384166007614851565b600060ff821661447957506000613ebc565b61448284613f9d565b6001600160601b031661449860ff841685615df1565b11156144e8576144cf6144aa85614988565b6001600160601b03166144bc86613f9d565b6001600160601b0316858560ff16614997565b60405162461bcd60e51b815260040161078f9190615a07565b60208260ff16111561455f5760405162461bcd60e51b815260206004820152603a60248201527f54797065644d656d566965772f696e646578202d20417474656d7074656420746044820152796f20696e646578206d6f7265207468616e20333220627974657360301b606482015260840161078f565b60088202600061456e86614988565b6001600160601b031690506000600160ff1b60001984011d91909501511695945050505050565b6000613ebc83836014614672565b60008164ffffffffff166145b78460d81c90565b64ffffffffff16149392505050565b600080601f5b600f8160ff1611156146245760006145e5826008615eba565b60ff1685901c90506145f681614ac1565b61ffff16841793508160ff1660101461461157601084901b93505b5061461d600182615efa565b90506145cc565b50600f5b60ff8160ff16101561466c5760ff600882021684901c61464781614ac1565b61ffff16831792508160ff1660001461466257601083901b92505b5060001901614628565b50915091565b600061467f826020615efa565b61468a906008615eba565b60ff16614698858585614467565b901c949350505050565b60006001600160401b0382111561470a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b606482015260840161078f565b5090565b6000612c9d61471e858585614467565b60008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff161790506040816001600160401b03600160801b03600160c01b0316901b604082901c6001600160401b03600160801b03600160c01b0316179050608081901b608082901c179050919050565b60008061485d86614988565b6001600160601b0316905061487186614af3565b8461487c8784615df1565b6148869190615df1565b11156148995762ffffff19915050612c9d565b6148a38582615df1565b9050610a758364ffffffffff168286613e7c565b606060006148f56148f0826148e26148d462ffffff198816613f9d565b6001600160601b0316614b20565b62ffffff1987169190614672565b6145c6565b6040517a09cdedc5adad2dcd2dac2d840ecc2e440d2dce85c408edee84060f602b1b60208201526001600160701b0319607083901b16603b82015290925060009150604d01613f6b565b600081600e61494d81613a0c565b50600061495b856008613fb4565b9050806001600160401b0316614970826140fd565b60ff1661497d9190615df1565b6139fa906008615df1565b60781c6001600160601b031690565b606060006149a4866145c6565b91505060006149b2866145c6565b91505060006149c0866145c6565b91505060006149ce866145c6565b604080517f54797065644d656d566965772f696e646578202d204f76657272616e20746865602082015274040ecd2caee5c40a6d8d2c6ca40d2e640c2e84060f605b1b818301526001600160d01b031960d098891b811660558301526e040eed2e8d040d8cadccee8d04060f608b1b605b830181905297891b8116606a8301527f2e20417474656d7074656420746f20696e646578206174206f666673657420306070830152600f60fb1b609083015295881b861660918201526097810196909652951b90921660a68401525050601760f91b60ac8201528151808203608d01815260ad90910190915295945050505050565b6000614ad360048360ff16901c614b81565b60ff1661ffff919091161760081b614aea82614b81565b60ff1617919050565b6000614afe82613f9d565b614b0783614988565b614b119190615e59565b6001600160601b031692915050565b600060ff82111561470a5760405162461bcd60e51b815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2038604482015264206269747360d81b606482015260840161078f565b600060f08083179060ff82161415614b9c5750603092915050565b8060ff1660f11415614bb15750603192915050565b8060ff1660f21415614bc65750603292915050565b8060ff1660f31415614bdb5750603392915050565b8060ff1660f41415614bf05750603492915050565b8060ff1660f51415614c055750603592915050565b8060ff1660f61415614c1a5750603692915050565b8060ff1660f71415614c2f5750603792915050565b8060ff1660f81415614c445750603892915050565b8060ff1660f91415614c595750603992915050565b8060ff1660fa1415614c6e5750606192915050565b8060ff1660fb1415614c835750606292915050565b8060ff1660fc1415614c985750606392915050565b8060ff1660fd1415614cad5750606492915050565b8060ff1660fe1415614cc25750606592915050565b8060ff1660ff1415614cd75750606692915050565b50919050565b828054614ce990615f49565b90600052602060002090601f016020900481019282614d0b5760008555614d51565b82601f10614d2457805160ff1916838001178555614d51565b82800160010185558215614d51579182015b82811115614d51578251825591602001919060010190614d36565b5061470a9291505b8082111561470a5760008155600101614d59565b803561415681615fc5565b60008083601f840112614d89578182fd5b5081356001600160401b03811115614d9f578182fd5b6020830191508360208260051b8501011115614dba57600080fd5b9250929050565b600082601f830112614dd1578081fd5b81356020614de6614de183615dce565b615d9e565b80838252828201915082860187848660051b8901011115614e05578586fd5b855b85811015614e2a57614e1882614e9f565b84529284019290840190600101614e07565b5090979650505050505050565b600082601f830112614e47578081fd5b81356020614e57614de183615dce565b80838252828201915082860187848660051b8901011115614e76578586fd5b855b85811015614e2a57813584529284019290840190600101614e78565b803561415681615fda565b80356001600160e01b03198116811461415657600080fd5b60008083601f840112614ec8578182fd5b5081356001600160401b03811115614ede578182fd5b602083019150836020828501011115614dba57600080fd5b600082601f830112614f06578081fd5b81356001600160401b03811115614f1f57614f1f615faf565b614f32601f8201601f1916602001615d9e565b818152846020838601011115614f46578283fd5b816020850160208301379081016020019190915292915050565b80356006811061415657600080fd5b600060208284031215614f80578081fd5b8135613ebc81615fc5565b600060208284031215614f9c578081fd5b8151613ebc81615fc5565b6000806000806000806000806000806000806101208d8f031215614fc9578788fd5b614fd28d614d6d565b9b506001600160401b0360208e01351115614feb578788fd5b614ffb8e60208f01358f01614d78565b909b50995061500c60408e01614e94565b98506001600160401b0360608e01351115615025578788fd5b6150358e60608f01358f01614d78565b909850965060808d013595506001600160401b0360a08e01351115615058578485fd5b6150688e60a08f01358f01614ef6565b945061507660c08e01614f60565b93506001600160401b0360e08e0135111561508f578283fd5b61509f8e60e08f01358f01614eb7565b81945080935050506101008d013590509295989b509295989b509295989b565b600080604083850312156150d1578182fd5b82356150dc81615fc5565b946020939093013593505050565b6000602082840312156150fb578081fd5b8151613ebc81615fda565b60008060408385031215615118578182fd5b825161512381615fda565b602084810151919350906001600160401b03811115615140578283fd5b8401601f81018613615150578283fd5b805161515e614de182615dce565b80828252848201915084840189868560051b870101111561517d578687fd5b8694505b8385101561519f578051835260019490940193918501918501615181565b5080955050505050509250929050565b6000602082840312156151c0578081fd5b5035919050565b6000602082840312156151d8578081fd5b5051919050565b600080600080608085870312156151f4578182fd5b84359350602085013561520681615fc5565b93969395505050506040820135916060013590565b6000806000806000806000806000806101408b8d03121561523a578384fd5b6152438b614e9f565b995060208b01356001600160401b038082111561525e578586fd5b61526a8e838f01614ef6565b9a5060408d013591508082111561527f578586fd5b61528b8e838f01614ef6565b995061529960608e01614e9f565b985060808d0135975060a08d01359150808211156152b5578586fd5b6152c18e838f01614ef6565b965060c08d0135955060e08d01359150808211156152dd578485fd5b6152e98e838f01614ef6565b94506101008d01359150808211156152ff578384fd5b61530b8e838f01614e37565b93506101208d0135915080821115615321578283fd5b5061532e8d828e01614e37565b9150509295989b9194979a5092959850565b600080600060408486031215615354578081fd5b83356001600160401b038082111561536a578283fd5b61537687838801614eb7565b9095509350602086013591508082111561538e578283fd5b5061539b86828701614e37565b9150509250925092565b60008060008060008060008060006101208a8c0312156153c3578283fd5b89356001600160401b03808211156153d9578485fd5b6153e58d838e01614ef6565b9a5060208c01359150808211156153fa578485fd5b6154068d838e01614dc1565b995060408c013591508082111561541b578485fd5b6154278d838e01614ef6565b985060608c013591508082111561543c578485fd5b6154488d838e01614ef6565b975060808c013591508082111561545d578485fd5b6154698d838e01614ef6565b965060a08c013591508082111561547e578485fd5b61548a8d838e01614ef6565b955060c08c013591508082111561549f578485fd5b6154ab8d838e01614dc1565b945060e08c01359150808211156154c0578384fd5b6154cc8d838e01614ef6565b93506101008c01359150808211156154e2578283fd5b506154ef8c828d01614e37565b9150509295985092959850929598565b60008060408385031215615511578182fd5b82359150602083013561552381615fc5565b809150509250929050565b6000806000806000806000806000806101408b8d03121561554d578384fd5b8a35995060208b013561555f81615fc5565b985060408b013561556f81615fc5565b975060608b013561557f81615fc5565b965060808b013561558f81615fc5565b955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356155bd81615fc5565b809150509295989b9194979a5092959850565b60008060008060008060a087890312156155e8578384fd5b8635955060208701356001600160401b0380821115615605578586fd5b6156118a838b01614ef6565b965061561f60408a01614f60565b95506060890135915080821115615634578384fd5b5061564189828a01614eb7565b979a9699509497949695608090950135949350505050565b6000806040838503121561566b578182fd5b50508035926020909101359150565b6001600160a01b03169052565b6000815180845260208085019450808401835b838110156156c05781516001600160e01b0319168752958201959082019060010161569a565b509495945050505050565b6000826060810183835b60038110156157045783830387526156ee838351615767565b60209788019790935091909101906001016156d5565b509095945050505050565b6000815180845260208085019450808401835b838110156156c057815187529582019590820190600101615722565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000815180845261577f816020860160208601615f1d565b601f01601f19169290920160200192915050565b600681106157b157634e487b7160e01b600052602160045260246000fd5b9052565b600063ffffffff60e01b808716835285516157d7816004860160208a01615f1d565b8551908401906157ee816004840160208a01615f1d565b919094169301600481019390935250506008019392505050565b6000825161581a818460208701615f1d565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60018060a01b038616815284602082015283604082015260a0606082015260006158a360a0830185615767565b90508260808301529695505050505050565b6158bf818e61567a565b610180602082015260006158d761018083018e615767565b82810360408401526158e9818e615687565b905082810360608401526158fd818d6156cb565b90508a60808401528960a084015261591860c084018a61567a565b8760e0840152866101008401528281036101208401526159388187615687565b905082810361014084015261594d8186615767565b9050828103610160840152615962818561570f565b9f9e505050505050505050505050505050565b6001600160a01b038616815260a06020820181905260009061599990830187615767565b604083019590955250606081019290925260809091015292915050565b6001600160a01b03929092168252602082015260400190565b602081526000612c9d60208301848661573e565b6040815260006159f760408301858761573e565b9050826020830152949350505050565b602081526000613ebc6020830184615767565b608081526000615a2d6080830188615767565b615a3a6020840188615793565b6001600160a01b03861660408401528281036060840152615a5c81858761573e565b98975050505050505050565b60006101a0808352615a7c8184018c615767565b9150506020615a8d8184018b615793565b6001600160a01b0389811660408501526060840189905260808401889052861660a084015260c083018560005b6003811015615ad757815183529183019190830190600101615aba565b50505061012083018460005b6004811015615b0057815183529183019190830190600101615ae3565b505050509998505050505050505050565b85815284602082015260a060408201526000615b3060a0830186615767565b8281036060840152615b428186615767565b9150508260808301529695505050505050565b6020808252601b908201527a109a5d18dbda5b92195b1c195c8e881d9bdd5d081a5cc81b9d5b1b602a1b604082015260600190565b6020808252601b908201527a213ab9372937baba32b92637b3b4b19d103737ba103637b1b5b2b960291b604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6020808252601d908201527f4275726e526f757465724c6f6769633a20696e76616c69642070617468000000604082015260600190565b9283526020830191909152604082015260600190565b918252602082015260400190565b888152602081018890526001600160a01b038716604082015261010060608201819052600090615c9783820189615767565b91505085608083015284151560a0830152615cb560c0830185615793565b8260e08301529998505050505050505050565b878152602080820188905260c0604083018190528201869052600090879060e08401835b89811015615d1a578335615cff81615fc5565b6001600160a01b031682529282019290820190600101615cec565b506001600160a01b039790971660608501525050506080810192909252151560a090910152949350505050565b878152602081018790526001600160e01b0319861660408201526001600160a01b038516606082015260e060808201819052600090615d8890830186615767565b60a08301949094525060c0015295945050505050565b604051601f8201601f191681016001600160401b0381118282101715615dc657615dc6615faf565b604052919050565b60006001600160401b03821115615de757615de7615faf565b5060051b60200190565b60008219821115615e0457615e04615f99565b500190565b60006001600160401b03828116848216808303821115615e2b57615e2b615f99565b01949350505050565b600060ff821660ff84168060ff03821115615e5157615e51615f99565b019392505050565b60006001600160601b03828116848216808303821115615e2b57615e2b615f99565b600082615e9657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615615eb557615eb5615f99565b500290565b600060ff821660ff84168160ff0481118215151615615edb57615edb615f99565b029392505050565b600082821015615ef557615ef5615f99565b500390565b600060ff821660ff841680821015615f1457615f14615f99565b90039392505050565b60005b83811015615f38578181015183820152602001615f20565b8381111561142c5750506000910152565b600181811c90821680615f5d57607f821691505b60208210811415614cd757634e487b7160e01b600052602260045260246000fd5b6000600019821415615f9257615f92615f99565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f1457600080fd5b8015158114611f1457600080fdfe7b8cb33b1d4dc1e5d05c58e9945c383eb161ac22029c5b963989d08c3d0ef4daa26469706673582212203330516194d4af5f7560bbc8086707083da199d8aeb6b92a31d2bc43e62ff7b664736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101cf5760003560e01c80630e757850146101db57806317fcb39b146101fd5780631812adb6146102335780631876dec4146102575780631e236168146102775780631e7107c7146102b757806333453d15146102d75780633fea4367146102f7578063419cba7f1461031757806344dd6aa51461032d5780634782bc361461034057806350a058361461036057806359fd0b0c146103805780635c4f5f3e146103ad57806361d027b3146103cd57806370872aa5146103ed578063715018a61461040357806373532b2a14610418578063779f7836146104385780637ed55748146104585780637f0f1817146104785780637ffe9a92146104985780638d3d78cd146104b85780638d5fc1d4146104d85780638da5cb5b146104f85780638f9eb78b1461050d578063930a60e81461052d578063a9b682711461055a578063b14d353214610590578063b59589d1146105b0578063b74d0d35146105d0578063bed6a602146105e6578063c780c03f146105fc578063c805f68b1461060f578063cf54ce471461062f578063da058ae31461064f578063ea7326371461066f578063f0f4426014610682578063f2fde38b146106a2578063f47e2240146106c257600080fd5b366101d657005b600080fd5b3480156101e757600080fd5b506101fb6101f636600461552e565b6106f6565b005b34801561020957600080fd5b5060a65461021d906001600160a01b031681565b60405161022a9190615824565b60405180910390f35b34801561023f57600080fd5b5061024960075481565b60405190815260200161022a565b34801561026357600080fd5b5060015461021d906001600160a01b031681565b34801561028357600080fd5b506102a76102923660046151af565b600c6020526000908152604090205460ff1681565b604051901515815260200161022a565b3480156102c357600080fd5b506101fb6102d23660046151af565b610883565b3480156102e357600080fd5b506101fb6102f2366004614f6f565b6108f2565b34801561030357600080fd5b506102496103123660046155d0565b610963565b34801561032357600080fd5b5061024960085481565b61024961033b366004614fa7565b610a7f565b34801561034c57600080fd5b506101fb61035b3660046151af565b610b25565b34801561036c57600080fd5b5060045461021d906001600160a01b031681565b34801561038c57600080fd5b5061024961039b3660046151af565b60a46020526000908152604090205481565b3480156103b957600080fd5b506101fb6103c83660046151af565b610bbf565b3480156103d957600080fd5b5060035461021d906001600160a01b031681565b3480156103f957600080fd5b5061024960055481565b34801561040f57600080fd5b506101fb610d55565b34801561042457600080fd5b506101fb610433366004615340565b610d5f565b34801561044457600080fd5b506101fb6104533660046151df565b611385565b34801561046457600080fd5b506101fb6104733660046151af565b611432565b34801561048457600080fd5b506101fb610493366004614f6f565b6114cb565b3480156104a457600080fd5b506102a76104b33660046150bf565b611565565b3480156104c457600080fd5b5060025461021d906001600160a01b031681565b3480156104e457600080fd5b506101fb6104f33660046154ff565b6115bd565b34801561050457600080fd5b5061021d611661565b34801561051957600080fd5b506101fb610528366004615659565b611670565b34801561053957600080fd5b50610249610548366004614f6f565b600b6020526000908152604090205481565b34801561056657600080fd5b5061021d6105753660046151af565b60a5602052600090815260409020546001600160a01b031681565b34801561059c57600080fd5b506101fb6105ab366004614f6f565b6116d5565b3480156105bc57600080fd5b5060005461021d906001600160a01b031681565b3480156105dc57600080fd5b5061024960095481565b3480156105f257600080fd5b5061024960065481565b6101fb61060a3660046153a5565b61176f565b34801561061b57600080fd5b506101fb61062a366004614f6f565b6118ed565b34801561063b57600080fd5b506101fb61064a3660046151af565b611987565b34801561065b57600080fd5b506101fb61066a366004614f6f565b611a22565b6102a761067d36600461521b565b611a93565b34801561068e57600080fd5b506101fb61069d366004614f6f565b611e04565b3480156106ae57600080fd5b506101fb6106bd366004614f6f565b611e9e565b3480156106ce57600080fd5b506106e26106dd3660046150bf565b611f17565b60405161022a989796959493929190615c65565b600d54610100900460ff16158080156107165750600d54600160ff909116105b806107305750303b1580156107305750600d5460ff166001145b6107985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600d805460ff1916600117905580156107bb57600d805461ff0019166101001790555b6107c3612014565b6107cb612043565b6107d48b610883565b6107dd8a6118ed565b6107e6896116d5565b6107ef88611e04565b6107f8876114cb565b61080186610bbf565b61080a85611432565b61081384610b25565b61081e6102f2611661565b61082783611987565b61083082611a22565b801561087657600d805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b61088b612072565b60055481116108ed5760405162461bcd60e51b815260206004820152602860248201527f4275726e526f757465724c6f6769633a206c6f77207374617274696e67426c6f60448201526731b5a73ab6b132b960c11b606482015260840161078f565b600555565b6108fa612072565b6004546040517f68bf625687194a1bbeeccbaa327c37aa1f9940a3c6c9e8fe84f06f1dc14fd17691610939916001600160a01b03909116908490615838565b60405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b600061096d6120d1565b6002546001600160a01b03166323b872dd33308a6040518463ffffffff1660e01b815260040161099f93929190615852565b602060405180830381600087803b1580156109b957600080fd5b505af11580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f191906150ea565b610a495760405162461bcd60e51b8152602060048201526024808201527f4275726e526f757465724c6f6769633a207472616e7366657246726f6d2066616044820152631a5b195960e21b606482015260840161078f565b600254600090610a68906001600160a01b031689808a8a8a8a8a61212b565b915050610a756001607255565b9695505050505050565b6000610a896120d1565b6000610a9a8e8e8e8e8e8e8e6125d2565b9050610b088d8d6000818110610ac057634e487b7160e01b600052603260045260246000fd5b905060200201358b8b6000818110610ae857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610afd9190614f6f565b838a8a8a8a8a612b2c565b915050610b156001607255565b9c9b505050505050505050505050565b610b2d612072565b806127101015610b7f5760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c69642072657761726400604482015260640161078f565b7faa50b3683e42a13535a5b9c2c32780cccf956fb546b523a3542ac4ad8b544f6760085482604051610bb2929190615c57565b60405180910390a1600855565b600080546040516353bcd1c960e11b815273428351462684f4c9df7ef60b35825471d6d7540a9163a779a39291610c02916001600160a01b031690600401615824565b60206040518083038186803b158015610c1a57600080fd5b505af4158015610c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5291906151c7565b9050610c5c611661565b6001600160a01b0316336001600160a01b03161480610c7c575080600654105b610cc55760405162461bcd60e51b815260206004820152601a602482015279109d5c9b949bdd5d195c931bd9da58ce881b9bc81c195c9b5a5d60321b604482015260640161078f565b808211610d145760405162461bcd60e51b815260206004820152601d60248201527f4275726e526f757465724c6f6769633a206c6f7720646561646c696e65000000604482015260640161078f565b7f92c10a242ca42973030420e2ee32b3ba7818cc643f896958f620c606cf30041660065483604051610d47929190615c57565b60405180910390a150600655565b610d5d612072565b565b610d676120d1565b610d6f612072565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa390610da190869086906004016159cf565b60206040518083038186803b158015610db957600080fd5b505afa158015610dcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df191906150ea565b610e0d5760405162461bcd60e51b815260040161078f90615b8a565b60015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a90610e4090879087906004016159cf565b60206040518083038186803b158015610e5857600080fd5b505afa158015610e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e909190614f8b565b905060005b82518110156113745773428351462684f4c9df7ef60b35825471d6d7540a6315755789600a84868581518110610edb57634e487b7160e01b600052603260045260246000fd5b60209081029190910101516006546000546040516310889dc360e01b815273428351462684f4c9df7ef60b35825471d6d7540a916310889dc391610f2b916001600160a01b031690600401615824565b60206040518083038186803b158015610f4357600080fd5b505af4158015610f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7b91906151c7565b6005546040516001600160e01b031960e089901b16815260048101969096526001600160a01b03909416602486015260448501929092526064840152608483015260a482015260c40160006040518083038186803b158015610fdc57600080fd5b505af4158015610ff0573d6000803e3d6000fd5b50506001546008546001600160a01b038681166000908152600a602052604090208851919093169450631697565b93508692612710929189908890811061104757634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061106d57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600001546110899190615e9b565b6110939190615e7b565b336001600160a01b0387166000908152600a6020526040902088518990889081106110ce57634e487b7160e01b600052603260045260246000fd5b6020026020010151815481106110f457634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160000154600a6000896001600160a01b03166001600160a01b0316815260200190815260200160002089888151811061114b57634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061117157634e487b7160e01b600052603260045260246000fd5b600091825260209091206007909102016002015460405160e087901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094529184166044840152606483015291909116608482015260a401602060405180830381600087803b1580156111e457600080fd5b505af11580156111f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121c91906150ea565b506001600160a01b0382166000818152600a60205260409020845185908490811061125757634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061127d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160020160009054906101000a90046001600160a01b03166001600160a01b03167f58c23b4ae0617be275628875bcfd65759a441263099a256eeb27899fb5dd846d8787600a6000886001600160a01b03166001600160a01b0316815260200190815260200160002088878151811061131357634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061133957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016006015460405161135a939291906159e3565b60405180910390a38061136c81615f7e565b915050610e95565b50506113806001607255565b505050565b61138d6120d1565b611395612072565b6001600160a01b0383166000818152600a602052604090208054600080516020615fe98339815191529190859081106113de57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160060154868460405161140193929190615c41565b60405180910390a26000848152600c60205260409020805460ff1916600117905561142c6001607255565b50505050565b61143a612072565b80612710101561148b5760405162461bcd60e51b815260206004820152601c60248201527b4275726e526f757465724c6f6769633a20696e76616c69642066656560201b604482015260640161078f565b7f7d205f60891f60851c61cd244ba387d72b6589e7c0ac41b9d909ab0ce2c2a53b600754826040516114be929190615c57565b60405180910390a1600755565b6114d3612072565b806001600160a01b0381166114fb5760405163d92e233d60e01b815260040160405180910390fd5b6002546040517f36a4c08a38b736dcecb6c328dba61238529620e83ccb23db2cc43cd34ec260969161153a916001600160a01b03909116908590615838565b60405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166000908152600a6020526040812080548390811061159d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1690505b92915050565b6115c5612072565b600082815260a56020526040908190205490517f1e73962bcff5b98a9ac70c9b0f71fbb31dc0f5a09348c6d3ceab164169a9e7299161162b9185916001600160a01b03169085909283526001600160a01b03918216602084015216604082015260600190565b60405180910390a1600091825260a5602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040546001600160a01b031690565b611678612072565b600082815260a46020526040908190205490517f188adabf806a6b6d814acc1dbd9f09e5a251c8c065d6285749a5824e4579b645916116bb918591908590615c41565b60405180910390a1600091825260a4602052604090912055565b6116dd612072565b806001600160a01b0381166117055760405163d92e233d60e01b815260040160405180910390fd5b6001546040517ffa021c2ec0f46429a53e7f88b88065e40001f50c9d38b2e8b713beaf9828d4c391611744916001600160a01b03909116908590615838565b60405180910390a150600180546001600160a01b0319166001600160a01b0392909216919091179055565b6117776120d1565b61177f612072565b60006117dd896000815181106117a557634e487b7160e01b600052603260045260246000fd5b60200260200101518989876000815181106117d057634e487b7160e01b600052603260045260246000fd5b6020026020010151612b3f565b905073428351462684f4c9df7ef60b35825471d6d7540a63441d3a21600160009054906101000a90046001600160a01b03168c8c60405180606001604052808e81526020018c81526020018b815250600c60065460008054906101000a90046001600160a01b03166005548a8e8e8e6040518d63ffffffff1660e01b81526004016118739c9b9a999897969594939291906158b5565b60006040518083038186803b15801561188b57600080fd5b505af415801561189f573d6000803e3d6000fd5b505050506118d7878b83856002815181106118ca57634e487b7160e01b600052603260045260246000fd5b6020026020010151612ca5565b506118e26001607255565b505050505050505050565b6118f5612072565b806001600160a01b03811661191d5760405163d92e233d60e01b815260040160405180910390fd5b6000546040517f4c28a3f61a715259c4dc930c23e7423b8fa52e13232c061a6e488729c66184f49161195c916001600160a01b03909116908590615838565b60405180910390a150600080546001600160a01b0319166001600160a01b0392909216919091179055565b60045433906001600160a01b031681146119e15760405162461bcd60e51b815260206004820152601b60248201527a4275726e526f757465724c6f6769633a206e6f74206f7261636c6560281b604482015260640161078f565b7f890eb41e398fd9cf425695b34269b781ad56c257422859094a28db47fb78f1b360095483604051611a14929190615c57565b60405180910390a150600955565b611a2a612072565b60a6546040517f4da8064030e901e42f6de0ab04f4c322d7936d0120503addfe8a51f12709068991611a69916001600160a01b03909116908490615838565b60405180910390a160a680546001600160a01b0319166001600160a01b0392909216919091179055565b6000611a9d6120d1565b60015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a90611ace908890600401615a07565b60206040518083038186803b158015611ae657600080fd5b505afa158015611afa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1e9190614f8b565b9050336001600160a01b0382161480611b4a57506004546001600160a01b0316336001600160a01b0316145b611b665760405162461bcd60e51b815260040161078f90615b8a565b73428351462684f4c9df7ef60b35825471d6d7540a6344922b64896005548c600160009054906101000a90046001600160a01b03168a8a518a516040518863ffffffff1660e01b8152600401611bc29796959493929190615d47565b60006040518083038186803b158015611bda57600080fd5b505af4158015611bee573d6000803e3d6000fd5b505050506000611c008d8d8d8d612b3f565b600054604051637ebc232760e01b815291925073428351462684f4c9df7ef60b35825471d6d7540a91637ebc232791611c4f916001600160a01b039091169085908e908e908e90600401615876565b60206040518083038186803b158015611c6757600080fd5b505af4158015611c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9f91906150ea565b611ceb5760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a206e6f742066696e616c697a65640000604482015260640161078f565b6000611cfb828b858f8a8a612e71565b905073428351462684f4c9df7ef60b35825471d6d7540a63191e28dc600c838f8b876040518663ffffffff1660e01b8152600401611d3d959493929190615b11565b60206040518083038186803b158015611d5557600080fd5b505af4158015611d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8d91906150ea565b611de55760405162461bcd60e51b815260206004820152602360248201527f4275726e526f757465724c6f6769633a20696e76616c6964206275726e20707260448201526237b7b360e91b606482015260840161078f565b60019350505050611df66001607255565b9a9950505050505050505050565b611e0c612072565b806001600160a01b038116611e345760405163d92e233d60e01b815260040160405180910390fd5b6003546040517f567657fa3f286518b318f4a29870674f433f622fdfc819691acb13105b22822591611e73916001600160a01b03909116908590615838565b60405180910390a150600380546001600160a01b0319166001600160a01b0392909216919091179055565b611ea6612072565b6001600160a01b038116611f0b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161078f565b611f1481613343565b50565b600a6020528160005260406000208181548110611f3357600080fd5b600091825260209091206007909102018054600182015460028301546003840180549396509194506001600160a01b03169291611f6f90615f49565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9b90615f49565b8015611fe85780601f10611fbd57610100808354040283529160200191611fe8565b820191906000526020600020905b815481529060010190602001808311611fcb57829003601f168201915b505050600484015460058501546006909501549394909360ff8083169450610100909204909116915088565b600d54610100900460ff1661203b5760405162461bcd60e51b815260040161078f90615bbf565b610d5d613393565b600d54610100900460ff1661206a5760405162461bcd60e51b815260040161078f90615bbf565b610d5d6133c3565b3361207b611661565b6001600160a01b031614610d5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161078f565b600260725414156121245760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161078f565b6002607255565b600154604051630f87661560e41b815260009173428351462684f4c9df7ef60b35825471d6d7540a9163f87661509161217a918a918a916001600160a01b03909116908a908a90600401615a1a565b60006040518083038186803b15801561219257600080fd5b505af41580156121a6573d6000803e3d6000fd5b5050505060008060006121f18a88888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506133ea915050565b60025460015460405163095ea7b360e01b81529497509295509093506001600160a01b039081169263095ea7b39261222f92169087906004016159b6565b602060405180830381600087803b15801561224957600080fd5b505af115801561225d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228191906150ea565b506001546040516338463cff60e01b81526001600160a01b03909116906338463cff906122b6908a908a9088906004016159e3565b602060405180830381600087803b1580156122d057600080fd5b505af11580156122e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230891906151c7565b60015460405163626885b560e11b81529195506000916001600160a01b039091169063c4d10b6a90612340908b908b906004016159cf565b60206040518083038186803b15801561235857600080fd5b505afa15801561236c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123909190614f8b565b6000546040516310889dc360e01b8152919250612437918d9188918e918e9173428351462684f4c9df7ef60b35825471d6d7540a916310889dc3916123e1916001600160a01b031690600401615824565b60206040518083038186803b1580156123f957600080fd5b505af415801561240d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243191906151c7565b8661380f565b604080516060810182528d815260208082018e905281830188905282516080810190935260095483528f9260009181016124718a8a615ee3565b8152602080820189905260409182018890526001600160a01b0387166000908152600a909152208054919250906124aa90600190615ee3565b815481106124c857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600401546124e13390565b6001600160a01b03167f6b5c22e69db87534a562352580358411dc7b2d98d24684765342f2ebf2dd8c318f8f88600a60008b6001600160a01b03166001600160a01b031681526020019081526020016000206001600a60008d6001600160a01b03166001600160a01b03168152602001908152602001600020805490506125689190615ee3565b8154811061258657634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600601548f8a8a8a6040516125b0989796959493929190615a68565b60405180910390a35050505050505098975050505050505050565b6001607255565b6002546000906001600160a01b031684846125ee600182615ee3565b81811061260b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906126209190614f6f565b6001600160a01b0316146126465760405162461bcd60e51b815260040161078f90615c0a565b600286146126965760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a2077726f6e6720616d6f756e74730000604482015260640161078f565b34156127e357868660008181106126bd57634e487b7160e01b600052603260045260246000fd5b9050602002013534146127125760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c696420616d6f756e7400604482015260640161078f565b8383600081811061273357634e487b7160e01b600052603260045260246000fd5b90506020020160208101906127489190614f6f565b60a6546001600160a01b039081169116146127755760405162461bcd60e51b815260040161078f90615c0a565b60a660009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b50505050506128c3565b8383600081811061280457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906128199190614f6f565b6001600160a01b03166323b872dd33308a8a600081811061284a57634e487b7160e01b600052603260045260246000fd5b905060200201356040518463ffffffff1660e01b815260040161286f93929190615852565b602060405180830381600087803b15801561288957600080fd5b505af115801561289d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c191906150ea565b505b838360008181106128e457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906128f99190614f6f565b6001600160a01b031663095ea7b3898989600081811061292957634e487b7160e01b600052603260045260246000fd5b905060200201356040518363ffffffff1660e01b815260040161294d9291906159b6565b602060405180830381600087803b15801561296757600080fd5b505af115801561297b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299f91906150ea565b50600080896001600160a01b031663b0bbcd888a8a60008181106129d357634e487b7160e01b600052603260045260246000fd5b9050602002013560648c8c60018181106129fd57634e487b7160e01b600052603260045260246000fd5b90506020020135605a612a109190615e9b565b612a1a9190615e7b565b8989308a8e6040518863ffffffff1660e01b8152600401612a419796959493929190615cc8565b600060405180830381600087803b158015612a5b57600080fd5b505af1158015612a6f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a979190810190615106565b9150915081612ae85760405162461bcd60e51b815260206004820181905260248201527f4275726e526f757465724c6f6769633a2065786368616e6765206661696c6564604482015260640161078f565b8060018251612af79190615ee3565b81518110612b1557634e487b7160e01b600052603260045260246000fd5b602002602001015192505050979650505050505050565b600080611df6898b8a8a8a8a8a8a61212b565b600080612b54612b4f86836139df565b613a03565b9050612b6562ffffff198216613b59565b15612baf5760405162461bcd60e51b815260206004820152601a602482015279109a5d18dbda5b92195b1c195c8e881d9a5b881a5cc81b9d5b1b60321b604482015260640161078f565b6000600287878787604051602001612bca94939291906157b5565b60408051601f1981840301815290829052612be491615808565b602060405180830381855afa158015612c01573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612c2491906151c7565b90506000600282604051602001612c3d91815260200190565b60408051601f1981840301815290829052612c5791615808565b602060405180830381855afa158015612c74573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612c9791906151c7565b93505050505b949350505050565b6000612cb085613b65565b60015460405163626885b560e11b81526001600160401b039290921692506000916001600160a01b039091169063c4d10b6a90612cf1908890600401615a07565b60206040518083038186803b158015612d0957600080fd5b505afa158015612d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d419190614f8b565b6001546008549192506001600160a01b03169063b734de2690839061271090612d6a9087615e9b565b612d749190615e7b565b3360405160e085901b6001600160e01b03191681526001600160a01b0393841660048201526024810192909252909116604482015260648101859052608401602060405180830381600087803b158015612dcd57600080fd5b505af1158015612de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0591906150ea565b507f7ff138134e34ccab071315c38e38eec079f54726b890304ab46e2c5ab6f722bb8186858761271060085488612e3c9190615e9b565b612e469190615e7b565b612e509088615df1565b604051612e61959493929190615975565b60405180910390a1505050505050565b60008080805b85518110156133365780612eb457848181518110612ea557634e487b7160e01b600052603260045260246000fd5b60200260200101519150612f65565b81858281518110612ed557634e487b7160e01b600052603260045260246000fd5b602002602001015111612f3a5760405162461bcd60e51b815260206004820152602760248201527f4275726e526f757465724c6f6769633a20756e2d736f7274656420766f757420604482015266696e646578657360c81b606482015260840161078f565b848181518110612f5a57634e487b7160e01b600052603260045260246000fd5b602002602001015191505b6000868281518110612f8757634e487b7160e01b600052603260045260246000fd5b60200260200101519050600a60008a6001600160a01b03166001600160a01b031681526020019081526020016000208181548110612fd557634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1615801561304457506001600160a01b0389166000908152600a6020526040902080548b91908390811061302f57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016004015410155b15613323576131b18887848151811061306d57634e487b7160e01b600052603260045260246000fd5b6020026020010151600a60008d6001600160a01b03166001600160a01b0316815260200190815260200160002084815481106130b957634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160030180546130d590615f49565b80601f016020809104026020016040519081016040528092919081815260200182805461310190615f49565b801561314e5780601f106131235761010080835404028352916020019161314e565b820191906000526020600020905b81548152906001019060200180831161313157829003601f168201915b5050506001600160a01b038f166000908152600a602052604090208054909250879150811061318d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160050160019054906101000a900460ff16613c08565b6001600160401b0316935083600a60008b6001600160a01b03166001600160a01b03168152602001908152602001600020828154811061320157634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600101541415613323576001600160a01b0389166000908152600a602052604090208054600191908390811061325557634e487b7160e01b600052603260045260246000fd5b60009182526020909120600790910201600501805460ff1916911515919091179055613282856001615df1565b6001600160a01b038a166000818152600a6020526040902080549297509091600080516020615fe98339815191529190849081106132d057634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600601548d89868151811061330357634e487b7160e01b600052603260045260246000fd5b602002602001015160405161331a93929190615c41565b60405180910390a25b508061332e81615f7e565b915050612e77565b5050509695505050505050565b604080546001600160a01b038381166001600160a01b031983168117845592519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600d54610100900460ff166133ba5760405162461bcd60e51b815260040161078f90615bbf565b610d5d33613343565b600d54610100900460ff166125cb5760405162461bcd60e51b815260040161078f90615bbf565b6000806000612710600754876134009190615e9b565b61340a9190615e7b565b600085815260a460205260409020549092506127109061342a9088615e9b565b6134349190615e7b565b600954909150816134458489615ee3565b61344f9190615ee3565b6134599190615ee3565b92506009548310156134ab5760405162461bcd60e51b815260206004820152601b60248201527a109d5c9b949bdd5d195c931bd9da58ce881b1bddc8185b5bdd5b9d602a1b604482015260640161078f565b81156135915760025460035460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926134e79291169086906004016159b6565b602060405180830381600087803b15801561350157600080fd5b505af1158015613515573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061353991906150ea565b6135915760405162461bcd60e51b8152602060048201526024808201527f4275726e526f757465724c6f6769633a20666565207472616e736665722066616044820152631a5b195960e21b606482015260840161078f565b801561369157600254600085815260a560205260409081902054905163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926135da9291169085906004016159b6565b602060405180830381600087803b1580156135f457600080fd5b505af1158015613608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061362c91906150ea565b6136915760405162461bcd60e51b815260206004820152603060248201527f4275726e526f757465724c6f6769633a2074686972642070617274792066656560448201526f081d1c985b9cd9995c8819985a5b195960821b606482015260840161078f565b600954156138065760015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a906136ca908990600401615a07565b60206040518083038186803b1580156136e257600080fd5b505afa1580156136f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371a9190614f8b565b60025460095460405163a9059cbb60e01b81529293506001600160a01b039091169163a9059cbb91613751918591906004016159b6565b602060405180830381600087803b15801561376b57600080fd5b505af115801561377f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a391906150ea565b6138045760405162461bcd60e51b815260206004820152602c60248201527f4275726e526f757465724c6f6769633a206e6574776f726b206665652074726160448201526b1b9cd9995c8819985a5b195960a21b606482015260840161078f565b505b93509350939050565b604080516101008101825260006080820181905260a0820181905260c0820181815260e0830191909152888252602082018890523392820192909252606081018690529084600581111561387357634e487b7160e01b600052602160045260246000fd5b9081600581111561389457634e487b7160e01b600052602160045260246000fd5b9052506006546138a49084615df1565b6080820152600060a082018190526001600160a01b038316808252600b6020818152604084205460e08601819052929093529091526138e4906001615df1565b6001600160a01b038381166000908152600b6020908152604080832094909455600a81528382208054600180820183559184529282902086516007909402019283558582015190830155928401516002820180546001600160a01b0319169190931617909155606083015180518493613964926003850192910190614cdd565b506080820151600482015560a08201516005808301805492151560ff1984168117825560c086015193919261ff001990911661ffff1990921691909117906101009084908111156139c557634e487b7160e01b600052602160045260246000fd5b021790555060e08201518160060155505050505050505050565b8151600090602084016139fa64ffffffffff85168284613e7c565b95945050505050565b60008181613a19815b62ffffff19841690613ec3565b50613a2962ffffff198516613f9d565b6001600160601b0316613a4557613a3e613fac565b9250613b52565b6000613a52856000613fb4565b90506000613a6562ffffff198716613f9d565b6001600160601b031690506001600160401b038216613a8f57613a86613fac565b94505050613b52565b6000613a9a836140fd565b60ff16905060005b836001600160401b0316811015613b1857828210613acd57613ac2613fac565b965050505050613b52565b6000613aed613adc8486615ee3565b60055b62ffffff198c16919061415b565b9050613af881614185565b613b029084615df1565b9250508080613b1090615f7e565b915050613aa2565b50818114613b3257613b28613fac565b9550505050613b52565b613b4c60065b60d81b6301000000600160d81b0389161790565b95505050505b5050919050565b62ffffff199081161490565b600080613b7a613b7584836139df565b6141d9565b9050613b8b62ffffff198216613b59565b15613ba85760405162461bcd60e51b815260040161078f90615b55565b600080613bb6836000613fb4565b6001600160401b0316905060005b81811015613bff57613bd684826142da565b9250613be1836143f1565b613beb9086615e09565b945080613bf781615f7e565b915050613bc4565b50505050919050565b600080613c18613b7587836139df565b9050613c2962ffffff198216613b59565b15613c465760405162461bcd60e51b815260040161078f90615b55565b6000613c5282876142da565b90506000613c5f82614416565b90506005856005811115613c8357634e487b7160e01b600052602160045260246000fd5b1415613ce857613c9c62ffffff19821660026020614467565b604051602001613cae91815260200190565b60405160208183030381529060405280519060200120868051906020012014613cd8576000613ce1565b613ce1826143f1565b9350613e71565b6000856005811115613d0a57634e487b7160e01b600052602160045260246000fd5b1415613d2357613c9c62ffffff19821660016020614467565b6001856005811115613d4557634e487b7160e01b600052602160045260246000fd5b1415613d7f57613d5c62ffffff1982166003614595565b604051602001613cae919060609190911b6001600160601b031916815260140190565b6002856005811115613da157634e487b7160e01b600052602160045260246000fd5b1415613db857613d5c62ffffff1982166002614595565b6003856005811115613dda57634e487b7160e01b600052602160045260246000fd5b1415613df157613d5c62ffffff1982166002614595565b6004856005811115613e1357634e487b7160e01b600052602160045260246000fd5b1415613e7157613e2c62ffffff19821660026020614467565b604051602001613e3e91815260200190565b60405160208183030381529060405280519060200120868051906020012014613e68576000612c97565b612c97826143f1565b505050949350505050565b600080613e898385615df1565b9050604051811115613e99575060005b80613eab5762ffffff19915050613ebc565b5050606083811b8317901b811760181b5b9392505050565b6000613ecf83836145a3565b613f96576000613eee613ee28560d81c90565b64ffffffffff166145c6565b9150506000613f038464ffffffffff166145c6565b6040517f5479706520617373657274696f6e206661696c65642e20476f7420307800000060208201526001600160b01b031960b086811b8216603d8401526c05c408af0e0cac6e8cac84060f609b1b604784015283901b16605482015290925060009150605e015b60405160208183030381529060405290508060405162461bcd60e51b815260040161078f9190615a07565b5090919050565b60181c6001600160601b031690565b62ffffff1990565b600080613fc962ffffff198516846001614672565b905060fc8111613fe457613fdc816146a2565b9150506115b7565b8060fd141561404a5761401261400d613ffe856001615df1565b62ffffff19871690600261470e565b6146a2565b915061401d826140fd565b60ff166003146140455761404361403e62ffffff1986168560036000614851565b6148b7565b505b6140f6565b8060fe141561409f5761407361400d614064856001615df1565b62ffffff19871690600461470e565b915061407e826140fd565b60ff166005146140455761404361403e62ffffff1986168560056000614851565b8060ff14156140f6576140c861400d6140b9856001615df1565b62ffffff19871690600861470e565b91506140d3826140fd565b60ff166009146140f6576140f461403e62ffffff1986168560096000614851565b505b5092915050565b600060fc826001600160401b03161161411857506001919050565b61ffff826001600160401b03161161413257506003919050565b63ffffffff826001600160401b03161161414e57506005919050565b506009919050565b919050565b6000612c9d848461416b87613f9d565b6001600160601b031661417e9190615ee3565b8585614851565b600081600561419381613a0c565b5060006141a1856024613fb4565b9050806001600160401b03166141b6826140fd565b60ff166141c39190615df1565b6141ce906024615df1565b6139fa906004615df1565b600081816141e681613a0c565b506141f662ffffff198516613f9d565b6001600160601b031661420b57613a3e613fac565b6000614218856000613fb4565b9050600061422b62ffffff198716613f9d565b6001600160601b031690506001600160401b03821661424c57613a86613fac565b6000614257836140fd565b60ff16905060005b836001600160401b03168110156142c05782821061427f57613ac2613fac565b600061429561428e8486615ee3565b600e613adf565b90506142a08161493f565b6142aa9084615df1565b92505080806142b890615f7e565b91505061425f565b508181146142d057613b28613fac565b613b4c600f613b38565b600082600f6142e881613a0c565b5060006142f6866000613fb4565b6001600160401b03169050600061431262ffffff198816613f9d565b6001600160601b031690508186106143605760405162461bcd60e51b81526020600482015260116024820152702b37baba103932b0b21037bb32b9393ab760791b604482015260640161078f565b600061436b836140fd565b60ff1690506000805b888110156143c1576143986143898486615ee3565b62ffffff198c1690600e61415b565b91506143a38261493f565b6143ad9084615df1565b92506143ba600182615df1565b9050614374565b506143cf61428e8385615ee3565b905060006143dc8261493f565b9050611df662ffffff198b168483600d614851565b600081600d6143ff81613a0c565b50612c9d61400d62ffffff1986166000600861470e565b600081600d61442481613a0c565b506000614432856008613fb4565b90506139fa614440826140fd565b61444b906008615e34565b62ffffff1987169060ff166001600160401b0384166007614851565b600060ff821661447957506000613ebc565b61448284613f9d565b6001600160601b031661449860ff841685615df1565b11156144e8576144cf6144aa85614988565b6001600160601b03166144bc86613f9d565b6001600160601b0316858560ff16614997565b60405162461bcd60e51b815260040161078f9190615a07565b60208260ff16111561455f5760405162461bcd60e51b815260206004820152603a60248201527f54797065644d656d566965772f696e646578202d20417474656d7074656420746044820152796f20696e646578206d6f7265207468616e20333220627974657360301b606482015260840161078f565b60088202600061456e86614988565b6001600160601b031690506000600160ff1b60001984011d91909501511695945050505050565b6000613ebc83836014614672565b60008164ffffffffff166145b78460d81c90565b64ffffffffff16149392505050565b600080601f5b600f8160ff1611156146245760006145e5826008615eba565b60ff1685901c90506145f681614ac1565b61ffff16841793508160ff1660101461461157601084901b93505b5061461d600182615efa565b90506145cc565b50600f5b60ff8160ff16101561466c5760ff600882021684901c61464781614ac1565b61ffff16831792508160ff1660001461466257601083901b92505b5060001901614628565b50915091565b600061467f826020615efa565b61468a906008615eba565b60ff16614698858585614467565b901c949350505050565b60006001600160401b0382111561470a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b606482015260840161078f565b5090565b6000612c9d61471e858585614467565b60008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff161790506040816001600160401b03600160801b03600160c01b0316901b604082901c6001600160401b03600160801b03600160c01b0316179050608081901b608082901c179050919050565b60008061485d86614988565b6001600160601b0316905061487186614af3565b8461487c8784615df1565b6148869190615df1565b11156148995762ffffff19915050612c9d565b6148a38582615df1565b9050610a758364ffffffffff168286613e7c565b606060006148f56148f0826148e26148d462ffffff198816613f9d565b6001600160601b0316614b20565b62ffffff1987169190614672565b6145c6565b6040517a09cdedc5adad2dcd2dac2d840ecc2e440d2dce85c408edee84060f602b1b60208201526001600160701b0319607083901b16603b82015290925060009150604d01613f6b565b600081600e61494d81613a0c565b50600061495b856008613fb4565b9050806001600160401b0316614970826140fd565b60ff1661497d9190615df1565b6139fa906008615df1565b60781c6001600160601b031690565b606060006149a4866145c6565b91505060006149b2866145c6565b91505060006149c0866145c6565b91505060006149ce866145c6565b604080517f54797065644d656d566965772f696e646578202d204f76657272616e20746865602082015274040ecd2caee5c40a6d8d2c6ca40d2e640c2e84060f605b1b818301526001600160d01b031960d098891b811660558301526e040eed2e8d040d8cadccee8d04060f608b1b605b830181905297891b8116606a8301527f2e20417474656d7074656420746f20696e646578206174206f666673657420306070830152600f60fb1b609083015295881b861660918201526097810196909652951b90921660a68401525050601760f91b60ac8201528151808203608d01815260ad90910190915295945050505050565b6000614ad360048360ff16901c614b81565b60ff1661ffff919091161760081b614aea82614b81565b60ff1617919050565b6000614afe82613f9d565b614b0783614988565b614b119190615e59565b6001600160601b031692915050565b600060ff82111561470a5760405162461bcd60e51b815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2038604482015264206269747360d81b606482015260840161078f565b600060f08083179060ff82161415614b9c5750603092915050565b8060ff1660f11415614bb15750603192915050565b8060ff1660f21415614bc65750603292915050565b8060ff1660f31415614bdb5750603392915050565b8060ff1660f41415614bf05750603492915050565b8060ff1660f51415614c055750603592915050565b8060ff1660f61415614c1a5750603692915050565b8060ff1660f71415614c2f5750603792915050565b8060ff1660f81415614c445750603892915050565b8060ff1660f91415614c595750603992915050565b8060ff1660fa1415614c6e5750606192915050565b8060ff1660fb1415614c835750606292915050565b8060ff1660fc1415614c985750606392915050565b8060ff1660fd1415614cad5750606492915050565b8060ff1660fe1415614cc25750606592915050565b8060ff1660ff1415614cd75750606692915050565b50919050565b828054614ce990615f49565b90600052602060002090601f016020900481019282614d0b5760008555614d51565b82601f10614d2457805160ff1916838001178555614d51565b82800160010185558215614d51579182015b82811115614d51578251825591602001919060010190614d36565b5061470a9291505b8082111561470a5760008155600101614d59565b803561415681615fc5565b60008083601f840112614d89578182fd5b5081356001600160401b03811115614d9f578182fd5b6020830191508360208260051b8501011115614dba57600080fd5b9250929050565b600082601f830112614dd1578081fd5b81356020614de6614de183615dce565b615d9e565b80838252828201915082860187848660051b8901011115614e05578586fd5b855b85811015614e2a57614e1882614e9f565b84529284019290840190600101614e07565b5090979650505050505050565b600082601f830112614e47578081fd5b81356020614e57614de183615dce565b80838252828201915082860187848660051b8901011115614e76578586fd5b855b85811015614e2a57813584529284019290840190600101614e78565b803561415681615fda565b80356001600160e01b03198116811461415657600080fd5b60008083601f840112614ec8578182fd5b5081356001600160401b03811115614ede578182fd5b602083019150836020828501011115614dba57600080fd5b600082601f830112614f06578081fd5b81356001600160401b03811115614f1f57614f1f615faf565b614f32601f8201601f1916602001615d9e565b818152846020838601011115614f46578283fd5b816020850160208301379081016020019190915292915050565b80356006811061415657600080fd5b600060208284031215614f80578081fd5b8135613ebc81615fc5565b600060208284031215614f9c578081fd5b8151613ebc81615fc5565b6000806000806000806000806000806000806101208d8f031215614fc9578788fd5b614fd28d614d6d565b9b506001600160401b0360208e01351115614feb578788fd5b614ffb8e60208f01358f01614d78565b909b50995061500c60408e01614e94565b98506001600160401b0360608e01351115615025578788fd5b6150358e60608f01358f01614d78565b909850965060808d013595506001600160401b0360a08e01351115615058578485fd5b6150688e60a08f01358f01614ef6565b945061507660c08e01614f60565b93506001600160401b0360e08e0135111561508f578283fd5b61509f8e60e08f01358f01614eb7565b81945080935050506101008d013590509295989b509295989b509295989b565b600080604083850312156150d1578182fd5b82356150dc81615fc5565b946020939093013593505050565b6000602082840312156150fb578081fd5b8151613ebc81615fda565b60008060408385031215615118578182fd5b825161512381615fda565b602084810151919350906001600160401b03811115615140578283fd5b8401601f81018613615150578283fd5b805161515e614de182615dce565b80828252848201915084840189868560051b870101111561517d578687fd5b8694505b8385101561519f578051835260019490940193918501918501615181565b5080955050505050509250929050565b6000602082840312156151c0578081fd5b5035919050565b6000602082840312156151d8578081fd5b5051919050565b600080600080608085870312156151f4578182fd5b84359350602085013561520681615fc5565b93969395505050506040820135916060013590565b6000806000806000806000806000806101408b8d03121561523a578384fd5b6152438b614e9f565b995060208b01356001600160401b038082111561525e578586fd5b61526a8e838f01614ef6565b9a5060408d013591508082111561527f578586fd5b61528b8e838f01614ef6565b995061529960608e01614e9f565b985060808d0135975060a08d01359150808211156152b5578586fd5b6152c18e838f01614ef6565b965060c08d0135955060e08d01359150808211156152dd578485fd5b6152e98e838f01614ef6565b94506101008d01359150808211156152ff578384fd5b61530b8e838f01614e37565b93506101208d0135915080821115615321578283fd5b5061532e8d828e01614e37565b9150509295989b9194979a5092959850565b600080600060408486031215615354578081fd5b83356001600160401b038082111561536a578283fd5b61537687838801614eb7565b9095509350602086013591508082111561538e578283fd5b5061539b86828701614e37565b9150509250925092565b60008060008060008060008060006101208a8c0312156153c3578283fd5b89356001600160401b03808211156153d9578485fd5b6153e58d838e01614ef6565b9a5060208c01359150808211156153fa578485fd5b6154068d838e01614dc1565b995060408c013591508082111561541b578485fd5b6154278d838e01614ef6565b985060608c013591508082111561543c578485fd5b6154488d838e01614ef6565b975060808c013591508082111561545d578485fd5b6154698d838e01614ef6565b965060a08c013591508082111561547e578485fd5b61548a8d838e01614ef6565b955060c08c013591508082111561549f578485fd5b6154ab8d838e01614dc1565b945060e08c01359150808211156154c0578384fd5b6154cc8d838e01614ef6565b93506101008c01359150808211156154e2578283fd5b506154ef8c828d01614e37565b9150509295985092959850929598565b60008060408385031215615511578182fd5b82359150602083013561552381615fc5565b809150509250929050565b6000806000806000806000806000806101408b8d03121561554d578384fd5b8a35995060208b013561555f81615fc5565b985060408b013561556f81615fc5565b975060608b013561557f81615fc5565b965060808b013561558f81615fc5565b955060a08b0135945060c08b0135935060e08b013592506101008b013591506101208b01356155bd81615fc5565b809150509295989b9194979a5092959850565b60008060008060008060a087890312156155e8578384fd5b8635955060208701356001600160401b0380821115615605578586fd5b6156118a838b01614ef6565b965061561f60408a01614f60565b95506060890135915080821115615634578384fd5b5061564189828a01614eb7565b979a9699509497949695608090950135949350505050565b6000806040838503121561566b578182fd5b50508035926020909101359150565b6001600160a01b03169052565b6000815180845260208085019450808401835b838110156156c05781516001600160e01b0319168752958201959082019060010161569a565b509495945050505050565b6000826060810183835b60038110156157045783830387526156ee838351615767565b60209788019790935091909101906001016156d5565b509095945050505050565b6000815180845260208085019450808401835b838110156156c057815187529582019590820190600101615722565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000815180845261577f816020860160208601615f1d565b601f01601f19169290920160200192915050565b600681106157b157634e487b7160e01b600052602160045260246000fd5b9052565b600063ffffffff60e01b808716835285516157d7816004860160208a01615f1d565b8551908401906157ee816004840160208a01615f1d565b919094169301600481019390935250506008019392505050565b6000825161581a818460208701615f1d565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60018060a01b038616815284602082015283604082015260a0606082015260006158a360a0830185615767565b90508260808301529695505050505050565b6158bf818e61567a565b610180602082015260006158d761018083018e615767565b82810360408401526158e9818e615687565b905082810360608401526158fd818d6156cb565b90508a60808401528960a084015261591860c084018a61567a565b8760e0840152866101008401528281036101208401526159388187615687565b905082810361014084015261594d8186615767565b9050828103610160840152615962818561570f565b9f9e505050505050505050505050505050565b6001600160a01b038616815260a06020820181905260009061599990830187615767565b604083019590955250606081019290925260809091015292915050565b6001600160a01b03929092168252602082015260400190565b602081526000612c9d60208301848661573e565b6040815260006159f760408301858761573e565b9050826020830152949350505050565b602081526000613ebc6020830184615767565b608081526000615a2d6080830188615767565b615a3a6020840188615793565b6001600160a01b03861660408401528281036060840152615a5c81858761573e565b98975050505050505050565b60006101a0808352615a7c8184018c615767565b9150506020615a8d8184018b615793565b6001600160a01b0389811660408501526060840189905260808401889052861660a084015260c083018560005b6003811015615ad757815183529183019190830190600101615aba565b50505061012083018460005b6004811015615b0057815183529183019190830190600101615ae3565b505050509998505050505050505050565b85815284602082015260a060408201526000615b3060a0830186615767565b8281036060840152615b428186615767565b9150508260808301529695505050505050565b6020808252601b908201527a109a5d18dbda5b92195b1c195c8e881d9bdd5d081a5cc81b9d5b1b602a1b604082015260600190565b6020808252601b908201527a213ab9372937baba32b92637b3b4b19d103737ba103637b1b5b2b960291b604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6020808252601d908201527f4275726e526f757465724c6f6769633a20696e76616c69642070617468000000604082015260600190565b9283526020830191909152604082015260600190565b918252602082015260400190565b888152602081018890526001600160a01b038716604082015261010060608201819052600090615c9783820189615767565b91505085608083015284151560a0830152615cb560c0830185615793565b8260e08301529998505050505050505050565b878152602080820188905260c0604083018190528201869052600090879060e08401835b89811015615d1a578335615cff81615fc5565b6001600160a01b031682529282019290820190600101615cec565b506001600160a01b039790971660608501525050506080810192909252151560a090910152949350505050565b878152602081018790526001600160e01b0319861660408201526001600160a01b038516606082015260e060808201819052600090615d8890830186615767565b60a08301949094525060c0015295945050505050565b604051601f8201601f191681016001600160401b0381118282101715615dc657615dc6615faf565b604052919050565b60006001600160401b03821115615de757615de7615faf565b5060051b60200190565b60008219821115615e0457615e04615f99565b500190565b60006001600160401b03828116848216808303821115615e2b57615e2b615f99565b01949350505050565b600060ff821660ff84168060ff03821115615e5157615e51615f99565b019392505050565b60006001600160601b03828116848216808303821115615e2b57615e2b615f99565b600082615e9657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615615eb557615eb5615f99565b500290565b600060ff821660ff84168160ff0481118215151615615edb57615edb615f99565b029392505050565b600082821015615ef557615ef5615f99565b500390565b600060ff821660ff841680821015615f1457615f14615f99565b90039392505050565b60005b83811015615f38578181015183820152602001615f20565b8381111561142c5750506000910152565b600181811c90821680615f5d57607f821691505b60208210811415614cd757634e487b7160e01b600052602260045260246000fd5b6000600019821415615f9257615f92615f99565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f1457600080fd5b8015158114611f1457600080fdfe7b8cb33b1d4dc1e5d05c58e9945c383eb161ac22029c5b963989d08c3d0ef4daa26469706673582212203330516194d4af5f7560bbc8086707083da199d8aeb6b92a31d2bc43e62ff7b664736f6c63430008040033
🤖 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 POL
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.

