ETH Price: $2,185.10 (-1.36%)
Gas: 0.16 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

PlasmaVaultBase

Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled
Yes with 200 runs
Other Settings
cancun EvmVersion
License
BSL 1.1
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"name":"AccessManagedInvalidAuthority","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"name":"AccessManagedRequiredDelay","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"AccessManagedUnauthorized","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"fuse","type":"address"}],"name":"BalanceFuseAlreadyExists","type":"error"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"fuse","type":"address"}],"name":"BalanceFuseDoesNotExist","type":"error"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"fuse","type":"address"}],"name":"BalanceFuseMarketIdMismatch","type":"error"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"fuse","type":"address"},{"internalType":"uint256","name":"currentBalance","type":"uint256"}],"name":"BalanceFuseNotReadyToRemove","type":"error"},{"inputs":[],"name":"CheckpointUnorderedInsertion","type":"error"},{"inputs":[],"name":"ContextAlreadySet","type":"error"},{"inputs":[],"name":"ContextNotSet","type":"error"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[{"internalType":"uint256","name":"increasedSupply","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"ERC20ExceededCap","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"ERC20InvalidCap","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"ERC2612ExpiredSignature","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC2612InvalidSigner","type":"error"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"},{"internalType":"uint48","name":"clock","type":"uint48"}],"name":"ERC5805FutureLookup","type":"error"},{"inputs":[],"name":"ERC6372InconsistentClock","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"FuseAlreadyExists","type":"error"},{"inputs":[],"name":"FuseDoesNotExist","type":"error"},{"inputs":[{"internalType":"address","name":"fuse","type":"address"}],"name":"FuseUnsupported","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"name":"InvalidAccountNonce","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"uint256","name":"feeInPercentage","type":"uint256"}],"name":"InvalidManagementFee","type":"error"},{"inputs":[{"internalType":"uint256","name":"feeInPercentage","type":"uint256"}],"name":"InvalidPerformanceFee","type":"error"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"MarketLimitSetupInPercentageIsTooHigh","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"PreHooksLibInvalidArrayLength","type":"error"},{"inputs":[],"name":"PreHooksLibInvalidSelector","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[],"name":"UnauthorizedSender","type":"error"},{"inputs":[],"name":"UnsupportedPriceOracleMiddleware","type":"error"},{"inputs":[{"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"VotesExpiredSignature","type":"error"},{"inputs":[],"name":"WrongAddress","type":"error"},{"inputs":[],"name":"WrongArrayLength","type":"error"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"WrongMarketId","type":"error"},{"inputs":[],"name":"WrongValue","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"authority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"address","name":"fuse","type":"address"}],"name":"BalanceFuseAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"address","name":"fuse","type":"address"}],"name":"BalanceFuseRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"handler","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"}],"name":"CallbackHandlerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender_","type":"address"}],"name":"ContextCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender_","type":"address"}],"name":"ContextSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousVotes","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotes","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"newDependenceGraph","type":"uint256[]"}],"name":"DependencyBalanceGraphChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"fuse","type":"address"}],"name":"FuseAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"fuse","type":"address"}],"name":"FuseRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"fuse","type":"address"},{"internalType":"bytes32[]","name":"params","type":"bytes32[]"}],"indexed":false,"internalType":"struct InstantWithdrawalFusesParamsStruct[]","name":"fuses","type":"tuple[]"}],"name":"InstantWithdrawalFusesConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeAccount","type":"address"},{"indexed":false,"internalType":"uint256","name":"feeInPercentage","type":"uint256"}],"name":"ManagementFeeDataConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"MarketLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"bytes32[]","name":"substrates","type":"bytes32[]"}],"name":"MarketSubstratesGranted","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketsLimitsActivated","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketsLimitsDeactivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeAccount","type":"address"},{"indexed":false,"internalType":"uint256","name":"feeInPercentage","type":"uint256"}],"name":"PerformanceFeeDataConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes4","name":"selector","type":"bytes4"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"},{"indexed":false,"internalType":"bytes32[]","name":"substrates","type":"bytes32[]"}],"name":"PreHookImplementationChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newPriceOracleMiddleware","type":"address"}],"name":"PriceOracleMiddlewareChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newRewardsClaimManagerAddress","type":"address"}],"name":"RewardsClaimManagerAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newTotalSupplyCap","type":"uint256"}],"name":"TotalSupplyCapChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activateMarketsLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId_","type":"uint256"},{"internalType":"address","name":"fuse_","type":"address"}],"name":"addBalanceFuse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"fuses_","type":"address[]"}],"name":"addFuses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint48","name":"_key","type":"uint48"},{"internalType":"uint208","name":"_value","type":"uint208"}],"internalType":"struct Checkpoints.Checkpoint208","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearContext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"fuse","type":"address"},{"internalType":"bytes32[]","name":"params","type":"bytes32[]"}],"internalType":"struct InstantWithdrawalFusesParamsStruct[]","name":"fuses_","type":"tuple[]"}],"name":"configureInstantWithdrawalFuses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"feeAccount_","type":"address"},{"internalType":"uint256","name":"feeInPercentage_","type":"uint256"}],"name":"configureManagementFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"feeAccount_","type":"address"},{"internalType":"uint256","name":"feeInPercentage_","type":"uint256"}],"name":"configurePerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"convertToPublicVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deactivateMarketsLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTransferShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAccessManagerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActiveMarketsInBalanceFuses","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId_","type":"uint256"}],"name":"getDependencyBalanceGraph","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFuses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstantWithdrawalFuses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"fuse_","type":"address"},{"internalType":"uint256","name":"index_","type":"uint256"}],"name":"getInstantWithdrawalFusesParams","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getManagementFeeData","outputs":[{"components":[{"internalType":"address","name":"feeAccount","type":"address"},{"internalType":"uint16","name":"feeInPercentage","type":"uint16"},{"internalType":"uint32","name":"lastUpdateTimestamp","type":"uint32"}],"internalType":"struct PlasmaVaultStorageLib.ManagementFeeData","name":"feeData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId_","type":"uint256"}],"name":"getMarketLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId_","type":"uint256"}],"name":"getMarketSubstrates","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPerformanceFeeData","outputs":[{"components":[{"internalType":"address","name":"feeAccount","type":"address"},{"internalType":"uint16","name":"feeInPercentage","type":"uint16"}],"internalType":"struct PlasmaVaultStorageLib.PerformanceFeeData","name":"feeData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"selector_","type":"bytes4"}],"name":"getPreHookImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPreHookSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceOracleMiddleware","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardsClaimManagerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalSupplyCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId_","type":"uint256"},{"internalType":"bytes32[]","name":"substrates_","type":"bytes32[]"}],"name":"grantMarketSubstrates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"assetName_","type":"string"},{"internalType":"address","name":"accessManager_","type":"address"},{"internalType":"uint256","name":"totalSupplyCap_","type":"uint256"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId_","type":"uint256"},{"internalType":"address","name":"fuse_","type":"address"}],"name":"isBalanceFuseSupported","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"fuse_","type":"address"}],"name":"isFuseSupported","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId_","type":"uint256"},{"internalType":"bytes32","name":"substrate_","type":"bytes32"}],"name":"isMarketSubstrateGranted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isMarketsLimitsActivated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId_","type":"uint256"},{"internalType":"address","name":"fuse_","type":"address"}],"name":"removeBalanceFuse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"fuses_","type":"address[]"}],"name":"removeFuses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"rolesIds_","type":"uint64[]"},{"internalType":"uint256[]","name":"delays_","type":"uint256[]"}],"name":"setMinimalExecutionDelaysForRoles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4[]","name":"selectors_","type":"bytes4[]"},{"internalType":"address[]","name":"implementations_","type":"address[]"},{"internalType":"bytes32[][]","name":"substrates_","type":"bytes32[][]"}],"name":"setPreHookImplementations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"priceOracleMiddleware_","type":"address"}],"name":"setPriceOracleMiddleware","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardsClaimManagerAddress_","type":"address"}],"name":"setRewardsClaimManagerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"cap_","type":"uint256"}],"name":"setTotalSupplyCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender_","type":"address"}],"name":"setupContext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"limitInPercentage","type":"uint256"}],"internalType":"struct MarketLimit[]","name":"marketsLimits_","type":"tuple[]"}],"name":"setupMarketsLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"transferRequestSharesFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"handler_","type":"address"},{"internalType":"address","name":"sender_","type":"address"},{"internalType":"bytes4","name":"sig_","type":"bytes4"}],"name":"updateCallbackHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"marketIds_","type":"uint256[]"},{"internalType":"uint256[][]","name":"dependencies_","type":"uint256[][]"}],"name":"updateDependencyBalanceGraphs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"value_","type":"uint256"}],"name":"updateInternal","outputs":[],"stateMutability":"nonpayable","type":"function"}]
6080604052348015600e575f80fd5b50615efe8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061040c575f3560e01c806384b0196e11610221578063bd6bc8f51161012a578063d703ee6c116100b4578063e88fa18911610084578063e88fa18914610988578063ef42276b14610990578063f1127ed8146109a3578063f1a93fdc146109e2578063f2d888df146109ea575f80fd5b8063d703ee6c14610952578063db99bddd14610965578063dd62ed3e1461096d578063e52e29e714610980575f80fd5b8063d1dffb88116100fa578063d1dffb8814610909578063d505accf1461091c578063d61262611461092f578063d6b4f68014610942578063d6e900b51461094a575f80fd5b8063bd6bc8f5146108c8578063bf7e214f146108db578063c3cda520146108e3578063cc53727b146108f6575f80fd5b8063965c501e116101ab578063a462da021161017b578063a462da021461087f578063a81b0b4214610887578063a9059cbb1461088f578063adeb0cdb146108a2578063afb83531146108b5575f80fd5b8063965c501e1461083e578063978dcd38146108515780639879f043146108595780639ab24eb01461086c575f80fd5b80638fb36037116101f15780638fb36037146107be57806390acbe9c146107df57806391ddadf41461080f578063926e07e51461082e57806395d89b4114610836575f80fd5b806384b0196e14610740578063875a26771461075b57806387ef0b87146107985780638e539e8c146107ab575f80fd5b806338923d00116103235780635c19a95c116102ad57806370a082311161027d57806370a08231146106c95780637a28052b146106dc5780637a9e5e4b146107075780637ecebe001461071a5780637f676d151461072d575f80fd5b80635c19a95c14610673578063647bce271461068657806367d920111461068e5780636fcfff45146106a1575f80fd5b806348e37c55116102f357806348e37c55146106075780634a5dc1b71461061a5780634bf5d7e91461062d5780634c49cc0514610635578063587cde1e14610660575f80fd5b806338923d00146105b95780633a46b1a8146105cc5780633d357c40146105df5780633e3a86e0146105f4575f80fd5b80632ede66bc116103a457806331ee80ca1161037457806331ee80ca1461053857806332293ccc14610575578063355274ea146105885780633644e5151461059c57806337099dea146105a4575f80fd5b80632ede66bc146104e357806330b7524414610503578063313ce5671461051657806331d05b1114610525575f80fd5b806318160ddd116103df57806318160ddd146104795780631ce56e7e146104aa57806323b872dd146104bd57806327d9e8b2146104d0575f80fd5b806306fdde0314610410578063095ea7b31461042e57806309f75ba0146104515780630c63abc614610466575b5f80fd5b6104186109fd565b6040516104259190614e8c565b60405180910390f35b61044161043c366004614ebd565b610aa2565b6040519015158152602001610425565b61046461045f366004614ebd565b610ac5565b005b610464610474366004614ee7565b610ae5565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b604051908152602001610425565b6104646104b8366004614fe5565b610afa565b6104416104cb3660046150c0565b610b7c565b6104646104de3660046150fe565b610bab565b6104f66104f136600461516d565b610bc0565b60405161042591906151be565b610464610511366004615217565b610bcb565b60405160128152602001610425565b61046461053336600461516d565b610c1c565b610540610c33565b6040805182516001600160a01b0316815260208084015161ffff16908201529181015163ffffffff1690820152606001610425565b6104646105833660046150c0565b610cd2565b5f80516020615de98339815191525461049c565b61049c610cdd565b6105ac610ce6565b6040516104259190615255565b6104646105c73660046152a1565b610cf0565b61049c6105da366004614ebd565b610e03565b6105e7610e98565b60405161042591906152bc565b610464610602366004615217565b610ea2565b610464610615366004614ee7565b610eee565b6104646106283660046152fc565b610f03565b610418611052565b6106486106433660046153ae565b6110ca565b6040516001600160a01b039091168152602001610425565b61064861066e3660046152a1565b6110d4565b6104646106813660046152a1565b6110fd565b6104f6611112565b61046461069c3660046153c7565b61111c565b6106b46106af3660046152a1565b611189565b60405163ffffffff9091168152602001610425565b61049c6106d73660046152a1565b611193565b61049c6106ea36600461516d565b5f9081525f80516020615e69833981519152602052604090205490565b6104646107153660046152a1565b6111c3565b61049c6107283660046152a1565b61124f565b61046461073b366004615431565b611259565b61074861127a565b60405161042597969594939291906154cd565b5f80525f80516020615e698339815191526020527ff1a5acf64f330322c7b96c9822a41f340e067e2cefe46839a37cd61f2a91150c541515610441565b6104646107a63660046152a1565b611323565b61049c6107b936600461516d565b6113c1565b6107c661143b565b6040516001600160e01b03199091168152602001610425565b6107e7611471565b6040805182516001600160a01b0316815260209283015161ffff169281019290925201610425565b6108176114e3565b60405165ffffffffffff9091168152602001610425565b6104646114ec565b610418611552565b61046461084c3660046150c0565b611590565b6106486115a6565b61046461086736600461553c565b6115af565b61049c61087a3660046152a1565b6115c5565b610648611623565b61064861162c565b61044161089d366004614ebd565b611635565b6104416108b0366004615580565b61164c565b6104646108c3366004614ebd565b61168c565b6104416108d63660046152a1565b6116a1565b6106486116ab565b6104646108f13660046155b0565b6116cc565b6104646109043660046152a1565b611788565b610464610917366004615606565b61179c565b61046461092a36600461564d565b6117e3565b6104f661093d36600461516d565b6118fc565b61046461197a565b6105e76119bb565b610441610960366004614ee7565b6119c5565b6104646119f2565b61049c61097b3660046156b7565b611a86565b610464611acf565b61049c611ae4565b6104f661099e366004614ebd565b611afa565b6109b66109b13660046156f4565b611b06565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610425565b610464611b23565b6104646109f8366004615217565b611b36565b60605f5f80516020615e898339815191525b9050806003018054610a2090615720565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90615720565b8015610a975780601f10610a6e57610100808354040283529160200191610a97565b820191905f5260205f20905b815481529060010190602001808311610a7a57829003601f168201915b505050505091505090565b5f80610aac611b4b565b9050610ab9818585611b54565b60019150505b92915050565b610ad7610ad0611b4b565b5f36611b61565b610ae18282611b8a565b5050565b610af0610ad0611b4b565b610ae18282611c7e565b610b05610ad0611b4b565b815181518114610b285760405163150072e360e11b815260040160405180910390fd5b5f5b81811015610b7657610b6e848281518110610b4757610b47615758565b6020026020010151848381518110610b6157610b61615758565b6020026020010151611caf565b600101610b2a565b50505050565b5f80610b86611b4b565b9050610b93858285611d2a565b610b9e858585611d87565b60019150505b9392505050565b610bb6610ad0611b4b565b610ae18282611dd9565b6060610abf82611f79565b610bd6610ad0611b4b565b5f5b81811015610c1757610c0f838383818110610bf557610bf5615758565b9050602002016020810190610c0a91906152a1565b611ffd565b600101610bd8565b505050565b610c27610ad0611b4b565b610c30816121a1565b50565b604080516060810182525f8082526020820181905291810191909152610ccd604080516060810182525f80825260208201819052918101919091527f239dd7e43331d2af55e2a25a6908f3bcec2957025f1459db97dcdc37c0003f006040805160608101825291546001600160a01b0381168352600160a01b810461ffff166020840152600160b01b900463ffffffff1690820152919050565b905090565b610c17838383612208565b5f610ccd6122c3565b6060610ccd6122cc565b610cfb610ad0611b4b565b5f610d04612370565b90505f829050806001600160a01b031663f4a6e4586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6a919061576c565b6001600160a01b0316826001600160a01b031663f4a6e4586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610daf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd3919061576c565b6001600160a01b031614610dfa57604051634df09d5960e11b815260040160405180910390fd5b610c17836123a2565b5f5f80516020615e4983398151915281610e1b6114e3565b90508065ffffffffffff168410610e5b57604051637669fc0f60e11b81526004810185905265ffffffffffff821660248201526044015b60405180910390fd5b610e86610e6785612410565b6001600160a01b0387165f908152600185016020526040902090612446565b6001600160d01b031695945050505050565b6060610ccd6124f6565b610ead610ad0611b4b565b5f5b81811015610c1757610ee6838383818110610ecc57610ecc615758565b9050602002016020810190610ee191906152a1565b612572565b600101610eaf565b610ef9610ad0611b4b565b610ae1828261267d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610f475750825b90505f826001600160401b03166001148015610f625750303b155b905081158015610f70575080155b15610f8e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610fb857845460ff60401b1916600160401b1785555b6001600160a01b038716610fdf57604051630d23cf4160e11b815260040160405180910390fd5b610fe7612852565b610ff08861285a565b610ff987612885565b61100286612896565b831561104857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b606061105c6128d2565b65ffffffffffff1661106c6114e3565b65ffffffffffff1614611092576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b5f610abf826128dc565b6001600160a01b039081165f9081525f80516020615e4983398151915260205260409020541690565b5f611106611b4b565b9050610ae1818361291f565b6060610ccd6129a6565b611127610ad0611b4b565b61112f6116ab565b6001600160a01b03166367d92011858585856040518563ffffffff1660e01b815260040161116094939291906157b7565b5f604051808303815f87803b158015611177575f80fd5b505af1158015611048573d5f803e3d5ffd5b5f610abf82612a0a565b5f805f80516020615e898339815191525b6001600160a01b039093165f9081526020939093525050604090205490565b5f6111cc611b4b565b90506111d66116ab565b6001600160a01b0316816001600160a01b0316146112115760405162d1953b60e31b81526001600160a01b0382166004820152602401610e52565b816001600160a01b03163b5f03611246576040516361798f2f60e11b81526001600160a01b0383166004820152602401610e52565b610ae182612a59565b5f610abf82612ab2565b611264610ad0611b4b565b611272868686868686612abc565b505050505050565b5f60608082808083815f80516020615ea983398151915280549091501580156112a557506001810154155b6112e95760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610e52565b6112f1612ef6565b6112f9612f34565b604080515f80825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b61132e610ad0611b4b565b5f80516020615da9833981519152546001600160a01b03161561136457604051632f3873fd60e01b815260040160405180910390fd5b5f80516020615da983398151915280546001600160a01b0319166001600160a01b0383161790556040516001600160a01b038216907f606f0da67080f7641fd59bdd017702d2842394e653866c86c69bcc879eea2a41905f90a250565b5f5f80516020615e49833981519152816113d96114e3565b90508065ffffffffffff16841061141457604051637669fc0f60e11b81526004810185905265ffffffffffff82166024820152604401610e52565b61142a61142085612410565b6002840190612446565b6001600160d01b0316949350505050565b5f80516020615dc983398151915280545f9190600160a01b900460ff16611462575f61146b565b638fb3603760e01b5b91505090565b604080518082019091525f8082526020820152610ccd6040805180820182525f80825260209182015281518083019092527f9399757a27831a6cfb6cf4cd5c97a908a2f8f41e95a5952fbf83a04e05288400546001600160a01b038116835261ffff600160a01b909104169082015290565b5f610ccd6128d2565b6114f7610ad0611b4b565b6114ff6116ab565b6040516311e124c160e21b81523060048201526001600160a01b0391909116906347849304906024015b5f604051808303815f87803b158015611540575f80fd5b505af1158015610b76573d5f803e3d5ffd5b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f80516020615e8983398151915291610a2090615720565b61159b610ad0611b4b565b610c17838383611d87565b5f610ccd6116ab565b6115ba610ad0611b4b565b610c17838383612f4a565b6001600160a01b0381165f9081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d01602052604081205f80516020615e498339815191529061161390613001565b6001600160d01b03169392505050565b5f610ccd612370565b5f610ccd613038565b5f8061163f611b4b565b9050610ab9818585611d87565b5f8281527f78e40624004925a4ef6749756748b1deddc674477302d5b7fe18e5335cde390060209081526040808320848452909152812054600114610ba4565b611697610ad0611b4b565b610ae1828261305f565b5f610abf8261314a565b5f805f80516020615dc98339815191525b546001600160a01b031692915050565b834211156116f057604051632341d78760e11b815260048101859052602401610e52565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f90611769906117619060a00160405160208183030381529060405280519060200120613185565b8585856131b1565b905061177581876131dd565b61177f818861291f565b50505050505050565b611793610ad0611b4b565b610c308161321b565b6117a7610ad0611b4b565b610c17838383808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061328992505050565b834211156118075760405163313c898160e11b815260048101859052602401610e52565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886118358c6133c7565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61188f82613185565b90505f61189e828787876131b1565b9050896001600160a01b0316816001600160a01b0316146118e5576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610e52565b6118f08a8a8a611b54565b50505050505050505050565b5f8181527f82411e549329f2815579116a6c5e60bff72686c93ab5dba4d06242cfaf968900602090815260409182902080548351818402810184019094528084526060939283018282801561196e57602002820191905f5260205f20905b81548152602001906001019080831161195a575b50505050509050919050565b611985610ad0611b4b565b61198d6116ab565b6040516317dbfc9360e01b81523060048201526001600160a01b0391909116906317dbfc9390602401611529565b6060610ccd613408565b5f8281525f80516020615e0983398151915260205260408120546001600160a01b03808416911614610ba4565b6119fd610ad0611b4b565b5f611a0661341d565b90506001600160a01b038116611a2f576040516310665ba560e11b815260040160405180910390fd5b611a505f80516020615da983398151915280546001600160a01b0319169055565b6040516001600160a01b038216907f6ca66738059b52d288c52b478cf0710166b7fb2801e9262a896cbacf620cba1d905f90a250565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b611ada610ad0611b4b565b611ae2613443565b565b5f610ccd5f80516020615de98339815191525490565b6060610ba483836134a5565b604080518082019091525f8082526020820152610ba48383613563565b611b2e610ad0611b4b565b611ae26135cc565b611b41610ad0611b4b565b610ae1828261362e565b5f610ccd61397e565b610c178383836001613987565b611b6c838383613a6b565b610c17611b7c60045f848661581d565b611b8591615844565b613bb2565b6001600160a01b038216611bb157604051630d23cf4160e11b815260040160405180910390fd5b611388811115611bd757604051630a7e67f960e21b815260048101829052602401610e52565b7f9399757a27831a6cfb6cf4cd5c97a908a2f8f41e95a5952fbf83a04e0528840080546001600160a01b0319166001600160a01b038416178155611c1a82613c28565b815461ffff91909116600160a01b0261ffff60a01b19909116178155604080516001600160a01b0385168152602081018490527fb51da3e1921b4e807ca7fadcf4582ef9ebbabde509ec7cecd222ca1fd4375df591015b60405180910390a1505050565b6001600160a01b038116611ca557604051630d23cf4160e11b815260040160405180910390fd5b610ae18282613c56565b5f8281527f82411e549329f2815579116a6c5e60bff72686c93ab5dba4d06242cfaf968900602090815260409091208251611cec92840190614d5e565b507fb48d142f846529428157323fc9d957bd2cd61342a70e92910b66a903fdbc2dac8282604051611d1e92919061587c565b60405180910390a15050565b5f611d358484611a86565b90505f198114610b765781811015611d7957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610e52565b610b7684848484035f613987565b6001600160a01b038316611db057604051634b637e8f60e11b81525f6004820152602401610e52565b6001600160a01b038216610cd25760405163ec442f0560e01b81525f6004820152602401610e52565b805f5b81811015610b7657838382818110611df657611df6615758565b9050604002015f01355f03611e3a57838382818110611e1757611e17615758565b604080516327d3bccb60e01b815291029290920135600483015250602401610e52565b670de0b6b3a7640000848483818110611e5557611e55615758565b905060400201602001351115611e9d57838382818110611e7757611e77615758565b90506040020160200135604051631a07511760e01b8152600401610e5291815260200190565b838382818110611eaf57611eaf615758565b90506040020160200135611ecd5f80516020615e6983398151915290565b5f868685818110611ee057611ee0615758565b9050604002015f013581526020019081526020015f20819055507f4c6d2c98209c0ce5c8fbbcc11919604fb09cec3c5e57d44b883e0f503a7714fc848483818110611f2d57611f2d615758565b9050604002015f0135858584818110611f4857611f48615758565b90506040020160200135604051611f69929190918252602082015260400190565b60405180910390a1600101611ddc565b5f8181527f78e40624004925a4ef6749756748b1deddc674477302d5b7fe18e5335cde39006020526040902060609060010180548060200260200160405190810160405280929190818152602001828054801561196e57602002820191905f5260205f209081548152602001906001019080831161195a5750505050509050919050565b6001600160a01b0381165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b5400602081905260408220549091819003612058576040516323cdec1d60e21b815260040160405180910390fd5b5f5f80516020615e2983398151915260015f80516020615e298339815191525461208291906158a8565b8154811061209257612092615758565b5f9182526020808320909101546001600160a01b0390811680845291869052604080842086905590871683528220919091559050806120db5f80516020615e2983398151915290565b6120e66001856158a8565b815481106120f6576120f6615758565b5f91825260209091200180546001600160a01b0319166001600160a01b03929092169190911790555f80516020615e2983398151915280548061213b5761213b6158bb565b5f8281526020908190205f19908301810180546001600160a01b03191690559091019091556040516001600160a01b03861681527f78464d629b261dcdc053f071c694250a86fc2a7ad6315364a81c7cd7cd98482e91015b60405180910390a150505050565b805f036121c157604051632635240760e21b815260040160405180910390fd5b805f80516020615de9833981519152556040518181527f24c49e2dc0029eefb42af678618270579f496b2054ba986e70e23a9a6f725e25906020015b60405180910390a150565b612213838383613d88565b7faef487a7a52e82ae7bbc470b42be72a1d3c066fb83773bf99cce7e6a7df2f900546122b8576001600160a01b0383166122b8575f61225d5f80516020615de98339815191525490565b90505f6122887f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b9050818111156122b55760405163279e7e1560e21b81526004810182905260248101839052604401610e52565b50505b610c17838383613ec1565b5f610ccd613f37565b60607fd334d8b26e68f82b7df26f2f64b6ffd2aaae5e2fc0e8c144c4b3598dcddd4b0060010180548060200260200160405190810160405280929190818152602001828054801561236657602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116123285790505b5050505050905090565b5f7f0d761ae54d86fc3be4f1f2b44ade677efb1c84a85fc6bb1d087dc42f1e319a005b546001600160a01b0316919050565b807f0d761ae54d86fc3be4f1f2b44ade677efb1c84a85fc6bb1d087dc42f1e319a0080546001600160a01b0319166001600160a01b0392831617905560405190821681527fd51f0f0ead29844497f2889430c7143324b01211d610174de544ac915ae5943f906020016121fd565b5f65ffffffffffff821115612442576040516306dfcc6560e41b81526030600482015260248101839052604401610e52565b5090565b81545f90818160058111156124a2575f61245f84613faa565b61246990856158a8565b5f8881526020902090915081015465ffffffffffff9081169087161015612492578091506124a0565b61249d8160016158cf565b92505b505b5f6124af8787858561408e565b905080156124e9576124d3876124c66001846158a8565b5f91825260209091200190565b54600160301b90046001600160d01b03166124eb565b5f5b979650505050505050565b60607fd243afa3da07e6bdec20fdd573a17f99411aa8a62ae64ca2c426d3a86ae0ac005b80546040805160208084028201810190925282815292919083018282801561236657602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161254b575050505050905090565b6001600160a01b0381165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b5400602081905260409091205480156125cb57604051630e5b59f760e41b815260040160405180910390fd5b5f5f80516020615e29833981519152546125e69060016158cf565b6001600160a01b0385165f818152602086815260408083208590555f80516020615e29833981519152805460018101825593527f23477b0f5b8efb150cb70bc4c9355a652f99157c4bc9fa45fe343f5c90fe96a790920180546001600160a01b0319168417905590519182529192507fa6900b674d94d1ecd696c66ec6762dcb661729307e0f90a5a4bc0513b1390d739101612193565b5f8281525f80516020615e09833981519152602090815260409182902054825163454dab2360e01b815292516001600160a01b03918216939185169263454dab2392600480820193918290030181865afa1580156126dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270191906158e2565b83146127325760405163ced174cf60e01b8152600481018490526001600160a01b0383166024820152604401610e52565b816001600160a01b0316816001600160a01b0316146127765760405163f278137f60e01b8152600481018490526001600160a01b0383166024820152604401610e52565b6040805160048152602481019091526020810180516001600160e01b031663722713f760e01b1790525f906127b5906001600160a01b038416906140ed565b8060200190518101906127c891906158e2565b90506127d261415f565b81111561280b57604051632272fecf60e11b8152600481018590526001600160a01b038416602482015260448101829052606401610e52565b612814846141a3565b604080518581526001600160a01b03851660208201527f2667629b7f8c1784d92ff6232875e8a84cc468c00daede0da11faf72f320c25b9101612193565b611ae26142f7565b6128626142f7565b610c3081604051806040016040528060018152602001603160f81b815250614340565b61288d6142f7565b610c308161439f565b61289e6142f7565b5f80516020615de98339815191525f8290036128cf5760405163392e1e2760e01b81525f6004820152602401610e52565b55565b5f610ccd43612410565b6001600160e01b0319165f9081527fd334d8b26e68f82b7df26f2f64b6ffd2aaae5e2fc0e8c144c4b3598dcddd4b0060205260409020546001600160a01b031690565b5f80516020615e498339815191525f612937846110d4565b6001600160a01b038581165f8181526020869052604080822080546001600160a01b031916898616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610b7681846129a1876143b0565b6143ba565b60605f80516020615e0983398151915260010180548060200260200160405190810160405280929190818152602001828054801561236657602002820191905f5260205f20905b8154815260200190600101908083116129ed575050505050905090565b6001600160a01b0381165f9081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260408120545f80516020615e4983398151915290610ba49061452b565b5f80516020615dc983398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602001611d1e565b5f610abf8261455b565b8483141580612acb5750848114155b15612ae95760405163187564ef60e31b815260040160405180910390fd5b7fd334d8b26e68f82b7df26f2f64b6ffd2aaae5e2fc0e8c144c4b3598dcddd4b005f808088815b81811015612ee8578b8b82818110612b2a57612b2a615758565b9050602002016020810190612b3f91906153ae565b9450898982818110612b5357612b53615758565b9050602002016020810190612b6891906152a1565b93506001600160e01b03198516612b92576040516309341d4960e21b815260040160405180910390fd5b6001600160e01b031985165f908152602087905260409020546001600160a01b0316925082158015612bcc57506001600160a01b03841615155b15612ca9576001868101805480830182555f828152602090206008820401805463ffffffff60079093166004026101000a928302191660e08a901c9290920291909117905554612c1c91906158a8565b6001600160e01b031986165f908152600288016020526040902055878782818110612c4957612c49615758565b9050602002810190612c5b91906158f9565b876003015f8789604051602001612c7392919061593e565b6040516020818303038152906040528051906020012081526020019081526020015f209190612ca3929190614da3565b50612e52565b6001600160a01b03831615801590612cc857506001600160a01b038416155b15612e52576001600160e01b031985165f908152600287016020526040812054600180890154919291612cfb91906158a8565b9050808214612daf575f886001018281548110612d1a57612d1a615758565b905f5260205f2090600891828204019190066004029054906101000a900460e01b905080896001018481548110612d5357612d53615758565b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082896002015f836001600160e01b0319166001600160e01b03191681526020019081526020015f2081905550505b87600101805480612dc257612dc26158bb565b5f828152602080822060085f1990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b03198916825260028a01815260408083208390555160038b019291612e219189918c910161593e565b6040516020818303038152906040528051906020012081526020019081526020015f205f612e4f9190614ddc565b50505b6001600160e01b031985165f81815260208890526040902080546001600160a01b0319166001600160a01b0387161790557f7e26ed60a0f6c468a4e1e259a46059e0f087d022694908b362823472d2d6f008858a8a85818110612eb757612eb7615758565b9050602002810190612ec991906158f9565b604051612ed893929190615965565b60405180910390a2600101612b10565b505050505050505050505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060915f80516020615ea983398151915291610a2090615720565b60605f5f80516020615ea9833981519152610a0f565b827fb37e8684757599da669b8aea811ee2b3693b2582d2c730fab3f4965fa2ec3e006040515f90612f81908690869060200161593e565b60408051808303601f19018152918152815160209283012083529082019290925281015f90812080546001600160a01b0319166001600160a01b0394851617905590516001600160e01b031984169285811692908716917ff52261028300639b867ee59a20c5b1fed5722cff7d08b923130deb8da77128a49190a4505050565b80545f9080156130305761301a836124c66001846158a8565b54600160301b90046001600160d01b0316610ba4565b5f9392505050565b5f7f08c469289c3f85d9b575f3ae9be6831541ff770a06ea135aa343a4de7c962d00612393565b6001600160a01b03821661308657604051630d23cf4160e11b815260040160405180910390fd5b6101f48111156130ac576040516324f8f43160e11b815260048101829052602401610e52565b7f239dd7e43331d2af55e2a25a6908f3bcec2957025f1459db97dcdc37c0003f0080546001600160a01b0319166001600160a01b0384161781556130ef82613c28565b815461ffff91909116600160a01b0261ffff60a01b19909116178155604080516001600160a01b0385168152602081018490527f72a8ee4b89f4194ad7e618624c280d66eb07d10b8cd84ab0376c16534413aa409101611c71565b6001600160a01b03165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b54006020526040902054151590565b5f610abf6131916122c3565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f806131c188888888614583565b9250925092506131d1828261464b565b50909695505050505050565b5f6131e7836133c7565b9050808214610c17576040516301d4b62360e61b81526001600160a01b038416600482015260248101829052604401610e52565b807f08c469289c3f85d9b575f3ae9be6831541ff770a06ea135aa343a4de7c962d0080546001600160a01b0319166001600160a01b0392831617905560405190821681527f70d04c70b02f1cb95bda0b7836754f3a59c7be75bf70a61673b9f284ce32688d906020016121fd565b5f8281527f78e40624004925a4ef6749756748b1deddc674477302d5b7fe18e5335cde3900602052604090206132be81614703565b5f82516001600160401b038111156132d8576132d8614f15565b604051908082528060200260200182016040528015613301578160200160208202803683370190505b5090505f5b835181101561337f576001835f015f86848151811061332757613327615758565b602002602001015181526020019081526020015f208190555083818151811061335257613352615758565b602002602001015182828151811061336c5761336c615758565b6020908102919091010152600101613306565b5080516133959060018401906020840190614d5e565b507f7e2fec298d6e81dab091490fc6ab01dc37a9077786c1d533a01cdc6a8e0f4263848460405161219392919061587c565b6001600160a01b03165f9081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b60605f80516020615e2983398151915261251a565b5f8061342761474f565b90506001600160a01b03811661343e573391505090565b919050565b5f8080525f80516020615e698339815191526020527ff1a5acf64f330322c7b96c9822a41f340e067e2cefe46839a37cd61f2a91150c8190556040517f75234aba5a783606f277af07d2159b4878f36e45d9d8e1582d682772855893119190a1565b60607f45a704819a9dcb1bb5b8cff129eda642cf0e926a9ef104e27aa53f1d1fa47b006040516001600160601b0319606086901b166020820152603481018490525f906054016040516020818303038152906040528051906020012081526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561355657602002820191905f5260205f20905b815481526020019060010190808311613542575b5050505050905092915050565b6040805180820182525f80825260208083018290526001600160a01b03861682527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d019052919091205f80516020615e49833981519152906135c49084614764565b949350505050565b5f8080525f80516020615e6983398151915260205260017ff1a5acf64f330322c7b96c9822a41f340e067e2cefe46839a37cd61f2a91150c556040517f844e310696d5462b9717e9a9e705b0119c545a7e1848808c4b67ce45440e70c89190a1565b5f816001600160401b0381111561364757613647614f15565b604051908082528060200260200182016040528015613670578160200160208202803683370190505b5090507f45a704819a9dcb1bb5b8cff129eda642cf0e926a9ef104e27aa53f1d1fa47b005f805b848110156138e1576136d98686838181106136b4576136b4615758565b90506020028101906136c69190615989565b6136d49060208101906152a1565b61314a565b613734578585828181106136ef576136ef615758565b90506020028101906137019190615989565b61370f9060208101906152a1565b60405163d9ffc5d160e01b81526001600160a01b039091166004820152602401610e52565b85858281811061374657613746615758565b90506020028101906137589190615989565b6137669060208101906152a1565b84828151811061377857613778615758565b60200260200101906001600160a01b031690816001600160a01b0316815250508585828181106137aa576137aa615758565b90506020028101906137bc9190615989565b6137ca9060208101906152a1565b816040516020016137f492919060609290921b6001600160601b0319168252601482015260340190565b60408051601f1981840301815291815281516020928301205f8181529286905290822090935061382391614ddc565b5f5b86868381811061383757613837615758565b90506020028101906138499190615989565b6138579060208101906158f9565b90508110156138d8575f83815260208590526040902087878481811061387f5761387f615758565b90506020028101906138919190615989565b61389f9060208101906158f9565b838181106138af576138af615758565b8354600180820186555f9586526020958690209290950293909301359201919091555001613825565b50600101613697565b5061390c7fd243afa3da07e6bdec20fdd573a17f99411aa8a62ae64ca2c426d3a86ae0ac005f614ddc565b827fd243afa3da07e6bdec20fdd573a17f99411aa8a62ae64ca2c426d3a86ae0ac00815161393d9260200190614df7565b507f709163391491f99340a8c1425dafce5e3c77ec8d2fe631cfc8900c8771b20384858560405161396f9291906159a7565b60405180910390a15050505050565b5f610ccd61341d565b5f80516020615e898339815191526001600160a01b0385166139be5760405163e602df0560e01b81525f6004820152602401610e52565b6001600160a01b0384166139e757604051634a1406b160e11b81525f6004820152602401610e52565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115613a6457836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051613a5b91815260200190565b60405180910390a35b5050505050565b5f613a79600482848661581d565b613a8291615844565b90506001600160e01b031981166387ef0b8760e01b1480613ab357506001600160e01b0319811663db99bddd60e01b145b15613abc573393505b5f80516020615dc98339815191525f80613af4613ad76116ab565b8830613ae660045f8b8d61581d565b613aef91615844565b6147d1565b915091508161177f5763ffffffff811615613b8f57825460ff60a01b1916600160a01b178355613b226116ab565b6001600160a01b03166394c7d7ee8888886040518463ffffffff1660e01b8152600401613b5193929190615a80565b5f604051808303815f87803b158015613b68575f80fd5b505af1158015613b7a573d5f803e3d5ffd5b5050845460ff60a01b191685555061177f9050565b60405162d1953b60e31b81526001600160a01b0388166004820152602401610e52565b5f613bbc826128dc565b90506001600160a01b038116613bd0575050565b604080516001600160e01b031984166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166316e3c4a960e11b179052610c17906001600160a01b038316906140ed565b5f61ffff821115612442576040516306dfcc6560e41b81526010600482015260248101839052604401610e52565b5f8281525f80516020615e0983398151915260205260409020546001600160a01b039081169082168103613caf57604051637a05655360e01b8152600481018490526001600160a01b0383166024820152604401610e52565b816001600160a01b031663454dab236040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ceb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d0f91906158e2565b8314613d405760405163ced174cf60e01b8152600481018490526001600160a01b0383166024820152604401610e52565b613d4a83836148d9565b604080518481526001600160a01b03841660208201527f275b1b6e4a8352ce8fa292b767afe7d6f3cff10a31042d4f2328a51e3c17d6079101611c71565b5f80516020615e898339815191526001600160a01b038416613dc25781816002015f828254613db791906158cf565b90915550613e329050565b6001600160a01b0384165f9081526020829052604090205482811015613e145760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610e52565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316613e50576002810180548390039055613e6e565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613eb391815260200190565b60405180910390a350505050565b5f80516020615e498339815191526001600160a01b038416613ef857613ef581600201614969613ef085614974565b6149a7565b50505b6001600160a01b038316613f1c57613f19816002016149df613ef085614974565b50505b610b76613f28856110d4565b613f31856110d4565b846143ba565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f613f616149ea565b613f69614a52565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f815f03613fb957505f919050565b5f6001613fc584614a94565b901c6001901b90506001818481613fde57613fde615abf565b048201901c90506001818481613ff657613ff6615abf565b048201901c9050600181848161400e5761400e615abf565b048201901c9050600181848161402657614026615abf565b048201901c9050600181848161403e5761403e615abf565b048201901c9050600181848161405657614056615abf565b048201901c9050600181848161406e5761406e615abf565b048201901c9050610ba48182858161408857614088615abf565b04614b27565b5f5b818310156140e5575f6140a38484614b3c565b5f8781526020902090915065ffffffffffff86169082015465ffffffffffff1611156140d1578092506140df565b6140dc8160016158cf565b93505b50614090565b509392505050565b60605f80846001600160a01b0316846040516141099190615ad3565b5f60405180830381855af49150503d805f8114614141576040519150601f19603f3d011682016040523d82523d5f602084013e614146565b606091505b5091509150614156858383614b56565b95945050505050565b5f60027f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546141989190600160a01b900460ff16615ae9565b610ccd90600a615be5565b5f8181525f80516020615e098339815191526020818152604080842080546001600160a01b03191690557f150144dd6af711bac4392499881ec6649090601bd196a5ece5174c1400b1f702909152909120547f150144dd6af711bac4392499881ec6649090601bd196a5ece5174c1400b1f701548082146142b7578260010160018261422f91906158a8565b8154811061423f5761423f615758565b905f5260205f2001548360010160018461425991906158a8565b8154811061426957614269615758565b905f5260205f20018190555081836002015f8560010160018561428c91906158a8565b8154811061429c5761429c615758565b905f5260205f20015481526020019081526020015f20819055505b826001018054806142ca576142ca6158bb565b5f828152602080822083015f19908101839055909201909255948152600290930190935250604081205550565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611ae257604051631afcd79f60e31b815260040160405180910390fd5b6143486142f7565b5f80516020615ea98339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026143818482615c37565b50600381016143908382615c37565b505f8082556001909101555050565b6143a76142f7565b610c3081612a59565b5f610abf82611193565b5f80516020615e498339815191526001600160a01b03848116908416148015906143e357505f82115b15610b76576001600160a01b03841615614487576001600160a01b0384165f90815260018201602052604081208190614422906149df613ef087614974565b6001600160d01b031691506001600160d01b03169150856001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161447c929190918252602082015260400190565b60405180910390a250505b6001600160a01b03831615610b76576001600160a01b0383165f908152600182016020526040812081906144c190614969613ef087614974565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161451b929190918252602082015260400190565b60405180910390a2505050505050565b5f63ffffffff821115612442576040516306dfcc6560e41b81526020600482015260248101839052604401610e52565b5f807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006111a4565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156145bc57505f91506003905082614641565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561460d573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661463857505f925060019150829050614641565b92505f91508190505b9450945094915050565b5f82600381111561465e5761465e615cf1565b03614667575050565b600182600381111561467b5761467b615cf1565b036146995760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156146ad576146ad615cf1565b036146ce5760405163fce698f760e01b815260048101829052602401610e52565b60038260038111156146e2576146e2615cf1565b03610ae1576040516335e2f38360e21b815260048101829052602401610e52565b60018101545f5b81811015610c17575f835f015f85600101848154811061472c5761472c615758565b5f918252602080832090910154835282019290925260400190205560010161470a565b5f805f80516020615da98339815191526116bc565b604080518082019091525f8082526020820152825f018263ffffffff168154811061479157614791615758565b5f9182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161483f9190615ad3565b5f60405180830381855afa9150503d805f8114614877576040519150601f19603f3d011682016040523d82523d5f602084013e61487c565b606091505b509150915081156148ce5760408151106148ae57808060200190518101906148a49190615d14565b90945092506148ce565b60208151106148ce57808060200190518101906148cb9190615d3e565b93505b505094509492505050565b7f150144dd6af711bac4392499881ec6649090601bd196a5ece5174c1400b1f701545f80516020615e09833981519152905f906149179060016158cf565b5f8581526020848152604080832080546001600160a01b0319166001600160a01b0398909816979097179096556001808601805491820181558352818320018790559581526002909301909452502055565b5f610ba48284615d57565b5f6001600160d01b03821115612442576040516306dfcc6560e41b815260d0600482015260248101839052604401610e52565b5f806149d26149b46114e3565b6149ca6149c088613001565b868863ffffffff16565b879190614bb2565b915091505b935093915050565b5f610ba48284615d76565b5f5f80516020615ea983398151915281614a02612ef6565b805190915015614a1a57805160209091012092915050565b81548015614a29579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b5f5f80516020615ea983398151915281614a6a612f34565b805190915015614a8257805160209091012092915050565b60018201548015614a29579392505050565b5f80608083901c15614aa857608092831c92015b604083901c15614aba57604092831c92015b602083901c15614acc57602092831c92015b601083901c15614ade57601092831c92015b600883901c15614af057600892831c92015b600483901c15614b0257600492831c92015b600283901c15614b1457600292831c92015b600183901c15610abf5760010192915050565b5f818310614b355781610ba4565b5090919050565b5f614b4a6002848418615d95565b610ba4908484166158cf565b606082614b6b57614b6682614bbf565b610ba4565b8151158015614b8257506001600160a01b0384163b155b15614bab57604051639996b31560e01b81526001600160a01b0385166004820152602401610e52565b5080610ba4565b5f806149d2858585614be8565b805115614bcf5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82545f9081908015614d04575f614c04876124c66001856158a8565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b031660208401529192509087161015614c5857604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603614ca45784614c7b886124c66001866158a8565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055614cf4565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216600160301b029216919091179101555b6020015192508391506149d79050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160301b0291909316179201919091559050816149d7565b828054828255905f5260205f20908101928215614d97579160200282015b82811115614d97578251825591602001919060010190614d7c565b50612442929150614e4a565b828054828255905f5260205f20908101928215614d97579160200282015b82811115614d97578235825591602001919060010190614dc1565b5080545f8255905f5260205f2090810190610c309190614e4a565b828054828255905f5260205f20908101928215614d97579160200282015b82811115614d9757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614e15565b5b80821115612442575f8155600101614e4b565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610ba46020830184614e5e565b6001600160a01b0381168114610c30575f80fd5b803561343e81614e9e565b5f8060408385031215614ece575f80fd5b8235614ed981614e9e565b946020939093013593505050565b5f8060408385031215614ef8575f80fd5b823591506020830135614f0a81614e9e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715614f5157614f51614f15565b604052919050565b5f6001600160401b03821115614f7157614f71614f15565b5060051b60200190565b5f82601f830112614f8a575f80fd5b8135614f9d614f9882614f59565b614f29565b8082825260208201915060208360051b860101925085831115614fbe575f80fd5b602085015b83811015614fdb578035835260209283019201614fc3565b5095945050505050565b5f8060408385031215614ff6575f80fd5b82356001600160401b0381111561500b575f80fd5b61501785828601614f7b565b92505060208301356001600160401b03811115615032575f80fd5b8301601f81018513615042575f80fd5b8035615050614f9882614f59565b8082825260208201915060208360051b850101925087831115615071575f80fd5b602084015b838110156150b15780356001600160401b03811115615093575f80fd5b6150a28a602083890101614f7b565b84525060209283019201615076565b50809450505050509250929050565b5f805f606084860312156150d2575f80fd5b83356150dd81614e9e565b925060208401356150ed81614e9e565b929592945050506040919091013590565b5f806020838503121561510f575f80fd5b82356001600160401b03811115615124575f80fd5b8301601f81018513615134575f80fd5b80356001600160401b03811115615149575f80fd5b8560208260061b840101111561515d575f80fd5b6020919091019590945092505050565b5f6020828403121561517d575f80fd5b5035919050565b5f8151808452602084019350602083015f5b828110156151b4578151865260209586019590910190600101615196565b5093949350505050565b602081525f610ba46020830184615184565b5f8083601f8401126151e0575f80fd5b5081356001600160401b038111156151f6575f80fd5b6020830191508360208260051b8501011115615210575f80fd5b9250929050565b5f8060208385031215615228575f80fd5b82356001600160401b0381111561523d575f80fd5b615249858286016151d0565b90969095509350505050565b602080825282518282018190525f918401906040840190835b818110156152965783516001600160e01b03191683526020938401939092019160010161526e565b509095945050505050565b5f602082840312156152b1575f80fd5b8135610ba481614e9e565b602080825282518282018190525f918401906040840190835b818110156152965783516001600160a01b03168352602093840193909201916001016152d5565b5f805f6060848603121561530e575f80fd5b83356001600160401b03811115615323575f80fd5b8401601f81018613615333575f80fd5b80356001600160401b0381111561534c5761534c614f15565b61535f601f8201601f1916602001614f29565b818152876020838501011115615373575f80fd5b816020840160208301375f602083830101528095505050506150ed60208501614eb2565b80356001600160e01b03198116811461343e575f80fd5b5f602082840312156153be575f80fd5b610ba482615397565b5f805f80604085870312156153da575f80fd5b84356001600160401b038111156153ef575f80fd5b6153fb878288016151d0565b90955093505060208501356001600160401b03811115615419575f80fd5b615425878288016151d0565b95989497509550505050565b5f805f805f8060608789031215615446575f80fd5b86356001600160401b0381111561545b575f80fd5b61546789828a016151d0565b90975095505060208701356001600160401b03811115615485575f80fd5b61549189828a016151d0565b90955093505060408701356001600160401b038111156154af575f80fd5b6154bb89828a016151d0565b979a9699509497509295939492505050565b60ff60f81b8816815260e060208201525f6154eb60e0830189614e5e565b82810360408401526154fd8189614e5e565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152905061552e8185615184565b9a9950505050505050505050565b5f805f6060848603121561554e575f80fd5b833561555981614e9e565b9250602084013561556981614e9e565b915061557760408501615397565b90509250925092565b5f8060408385031215615591575f80fd5b50508035926020909101359150565b803560ff8116811461343e575f80fd5b5f805f805f8060c087890312156155c5575f80fd5b86356155d081614e9e565b955060208701359450604087013593506155ec606088016155a0565b9598949750929560808101359460a0909101359350915050565b5f805f60408486031215615618575f80fd5b8335925060208401356001600160401b03811115615634575f80fd5b615640868287016151d0565b9497909650939450505050565b5f805f805f805f60e0888a031215615663575f80fd5b873561566e81614e9e565b9650602088013561567e81614e9e565b9550604088013594506060880135935061569a608089016155a0565b9699959850939692959460a0840135945060c09093013592915050565b5f80604083850312156156c8575f80fd5b82356156d381614e9e565b91506020830135614f0a81614e9e565b63ffffffff81168114610c30575f80fd5b5f8060408385031215615705575f80fd5b823561571081614e9e565b91506020830135614f0a816156e3565b600181811c9082168061573457607f821691505b60208210810361575257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561577c575f80fd5b8151610ba481614e9e565b8183525f6001600160fb1b0383111561579e575f80fd5b8260051b80836020870137939093016020019392505050565b604080825281018490525f8560608301825b878110156157fd5782356001600160401b0381168082146157e8575f80fd5b835250602092830192909101906001016157c9565b508381036020850152615811818688615787565b98975050505050505050565b5f808585111561582b575f80fd5b83861115615837575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015615875576001600160e01b0319600485900360031b81901b82161691505b5092915050565b828152604060208201525f6135c46040830184615184565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf615894565b634e487b7160e01b5f52603160045260245ffd5b80820180821115610abf57610abf615894565b5f602082840312156158f2575f80fd5b5051919050565b5f808335601e1984360301811261590e575f80fd5b8301803591506001600160401b03821115615927575f80fd5b6020019150600581901b3603821315615210575f80fd5b60609290921b6001600160601b03191682526001600160e01b031916601482015260180190565b6001600160a01b03841681526040602082018190525f906141569083018486615787565b5f8235603e1983360301811261599d575f80fd5b9190910192915050565b602080825281018290525f6040600584901b830181019083018583603e1936839003015b87821015615a7357868503603f1901845282358181126159e9575f80fd5b890180356159f681614e9e565b6001600160a01b03168652602081013536829003601e19018112615a18575f80fd5b016020810190356001600160401b03811115615a32575f80fd5b8060051b3603821315615a43575f80fd5b60406020880152615a58604088018284615787565b965050506020830192506020840193506001820191506159cb565b5092979650505050505050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b5f52601260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f60ff831680615afb57615afb615abf565b8060ff84160491505092915050565b6001815b60018411156149d757808504811115615b2957615b29615894565b6001841615615b3757908102905b60019390931c928002615b0e565b5f82615b5357506001610abf565b81615b5f57505f610abf565b8160018114615b755760028114615b7f57615b9b565b6001915050610abf565b60ff841115615b9057615b90615894565b50506001821b610abf565b5060208310610133831016604e8410600b8410161715615bbe575081810a610abf565b615bca5f198484615b0a565b805f1904821115615bdd57615bdd615894565b029392505050565b5f610ba460ff841683615b45565b601f821115610c1757805f5260205f20601f840160051c81016020851015615c185750805b601f840160051c820191505b81811015613a64575f8155600101615c24565b81516001600160401b03811115615c5057615c50614f15565b615c6481615c5e8454615720565b84615bf3565b6020601f821160018114615c96575f8315615c7f5750848201515b5f19600385901b1c1916600184901b178455613a64565b5f84815260208120601f198516915b82811015615cc55787850151825560209485019460019092019101615ca5565b5084821015615ce257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52602160045260245ffd5b8051801515811461343e575f80fd5b5f8060408385031215615d25575f80fd5b615d2e83615d05565b91506020830151614f0a816156e3565b5f60208284031215615d4e575f80fd5b610ba482615d05565b6001600160d01b038181168382160190811115610abf57610abf615894565b6001600160d01b038281168282160390811115610abf57610abf615894565b5f82615da357615da3615abf565b50049056fe68262fe08792a71a690eb5eb2de15df1b0f463dd786bf92bdbd5f0f0d1ae8b00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a000f070392f17d5f958cc1ac31867dabecfc5c9758b4a419a200803226d7155d00150144dd6af711bac4392499881ec6649090601bd196a5ece5174c1400b1f700ad43e358bd6e59a5a0c80f6bf25fa771408af4d80f621cdc680c8dfbf607ab00e8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00c2733c187287f795e2e6e84d35552a190e774125367241c3e99e955f4babf00052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100a26469706673582212209ce94328e107fbed206a7a54ef50b9f7d197497481e811b0862b29e2e32cf95264736f6c634300081a0033
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061040c575f3560e01c806384b0196e11610221578063bd6bc8f51161012a578063d703ee6c116100b4578063e88fa18911610084578063e88fa18914610988578063ef42276b14610990578063f1127ed8146109a3578063f1a93fdc146109e2578063f2d888df146109ea575f80fd5b8063d703ee6c14610952578063db99bddd14610965578063dd62ed3e1461096d578063e52e29e714610980575f80fd5b8063d1dffb88116100fa578063d1dffb8814610909578063d505accf1461091c578063d61262611461092f578063d6b4f68014610942578063d6e900b51461094a575f80fd5b8063bd6bc8f5146108c8578063bf7e214f146108db578063c3cda520146108e3578063cc53727b146108f6575f80fd5b8063965c501e116101ab578063a462da021161017b578063a462da021461087f578063a81b0b4214610887578063a9059cbb1461088f578063adeb0cdb146108a2578063afb83531146108b5575f80fd5b8063965c501e1461083e578063978dcd38146108515780639879f043146108595780639ab24eb01461086c575f80fd5b80638fb36037116101f15780638fb36037146107be57806390acbe9c146107df57806391ddadf41461080f578063926e07e51461082e57806395d89b4114610836575f80fd5b806384b0196e14610740578063875a26771461075b57806387ef0b87146107985780638e539e8c146107ab575f80fd5b806338923d00116103235780635c19a95c116102ad57806370a082311161027d57806370a08231146106c95780637a28052b146106dc5780637a9e5e4b146107075780637ecebe001461071a5780637f676d151461072d575f80fd5b80635c19a95c14610673578063647bce271461068657806367d920111461068e5780636fcfff45146106a1575f80fd5b806348e37c55116102f357806348e37c55146106075780634a5dc1b71461061a5780634bf5d7e91461062d5780634c49cc0514610635578063587cde1e14610660575f80fd5b806338923d00146105b95780633a46b1a8146105cc5780633d357c40146105df5780633e3a86e0146105f4575f80fd5b80632ede66bc116103a457806331ee80ca1161037457806331ee80ca1461053857806332293ccc14610575578063355274ea146105885780633644e5151461059c57806337099dea146105a4575f80fd5b80632ede66bc146104e357806330b7524414610503578063313ce5671461051657806331d05b1114610525575f80fd5b806318160ddd116103df57806318160ddd146104795780631ce56e7e146104aa57806323b872dd146104bd57806327d9e8b2146104d0575f80fd5b806306fdde0314610410578063095ea7b31461042e57806309f75ba0146104515780630c63abc614610466575b5f80fd5b6104186109fd565b6040516104259190614e8c565b60405180910390f35b61044161043c366004614ebd565b610aa2565b6040519015158152602001610425565b61046461045f366004614ebd565b610ac5565b005b610464610474366004614ee7565b610ae5565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b604051908152602001610425565b6104646104b8366004614fe5565b610afa565b6104416104cb3660046150c0565b610b7c565b6104646104de3660046150fe565b610bab565b6104f66104f136600461516d565b610bc0565b60405161042591906151be565b610464610511366004615217565b610bcb565b60405160128152602001610425565b61046461053336600461516d565b610c1c565b610540610c33565b6040805182516001600160a01b0316815260208084015161ffff16908201529181015163ffffffff1690820152606001610425565b6104646105833660046150c0565b610cd2565b5f80516020615de98339815191525461049c565b61049c610cdd565b6105ac610ce6565b6040516104259190615255565b6104646105c73660046152a1565b610cf0565b61049c6105da366004614ebd565b610e03565b6105e7610e98565b60405161042591906152bc565b610464610602366004615217565b610ea2565b610464610615366004614ee7565b610eee565b6104646106283660046152fc565b610f03565b610418611052565b6106486106433660046153ae565b6110ca565b6040516001600160a01b039091168152602001610425565b61064861066e3660046152a1565b6110d4565b6104646106813660046152a1565b6110fd565b6104f6611112565b61046461069c3660046153c7565b61111c565b6106b46106af3660046152a1565b611189565b60405163ffffffff9091168152602001610425565b61049c6106d73660046152a1565b611193565b61049c6106ea36600461516d565b5f9081525f80516020615e69833981519152602052604090205490565b6104646107153660046152a1565b6111c3565b61049c6107283660046152a1565b61124f565b61046461073b366004615431565b611259565b61074861127a565b60405161042597969594939291906154cd565b5f80525f80516020615e698339815191526020527ff1a5acf64f330322c7b96c9822a41f340e067e2cefe46839a37cd61f2a91150c541515610441565b6104646107a63660046152a1565b611323565b61049c6107b936600461516d565b6113c1565b6107c661143b565b6040516001600160e01b03199091168152602001610425565b6107e7611471565b6040805182516001600160a01b0316815260209283015161ffff169281019290925201610425565b6108176114e3565b60405165ffffffffffff9091168152602001610425565b6104646114ec565b610418611552565b61046461084c3660046150c0565b611590565b6106486115a6565b61046461086736600461553c565b6115af565b61049c61087a3660046152a1565b6115c5565b610648611623565b61064861162c565b61044161089d366004614ebd565b611635565b6104416108b0366004615580565b61164c565b6104646108c3366004614ebd565b61168c565b6104416108d63660046152a1565b6116a1565b6106486116ab565b6104646108f13660046155b0565b6116cc565b6104646109043660046152a1565b611788565b610464610917366004615606565b61179c565b61046461092a36600461564d565b6117e3565b6104f661093d36600461516d565b6118fc565b61046461197a565b6105e76119bb565b610441610960366004614ee7565b6119c5565b6104646119f2565b61049c61097b3660046156b7565b611a86565b610464611acf565b61049c611ae4565b6104f661099e366004614ebd565b611afa565b6109b66109b13660046156f4565b611b06565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610425565b610464611b23565b6104646109f8366004615217565b611b36565b60605f5f80516020615e898339815191525b9050806003018054610a2090615720565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90615720565b8015610a975780601f10610a6e57610100808354040283529160200191610a97565b820191905f5260205f20905b815481529060010190602001808311610a7a57829003601f168201915b505050505091505090565b5f80610aac611b4b565b9050610ab9818585611b54565b60019150505b92915050565b610ad7610ad0611b4b565b5f36611b61565b610ae18282611b8a565b5050565b610af0610ad0611b4b565b610ae18282611c7e565b610b05610ad0611b4b565b815181518114610b285760405163150072e360e11b815260040160405180910390fd5b5f5b81811015610b7657610b6e848281518110610b4757610b47615758565b6020026020010151848381518110610b6157610b61615758565b6020026020010151611caf565b600101610b2a565b50505050565b5f80610b86611b4b565b9050610b93858285611d2a565b610b9e858585611d87565b60019150505b9392505050565b610bb6610ad0611b4b565b610ae18282611dd9565b6060610abf82611f79565b610bd6610ad0611b4b565b5f5b81811015610c1757610c0f838383818110610bf557610bf5615758565b9050602002016020810190610c0a91906152a1565b611ffd565b600101610bd8565b505050565b610c27610ad0611b4b565b610c30816121a1565b50565b604080516060810182525f8082526020820181905291810191909152610ccd604080516060810182525f80825260208201819052918101919091527f239dd7e43331d2af55e2a25a6908f3bcec2957025f1459db97dcdc37c0003f006040805160608101825291546001600160a01b0381168352600160a01b810461ffff166020840152600160b01b900463ffffffff1690820152919050565b905090565b610c17838383612208565b5f610ccd6122c3565b6060610ccd6122cc565b610cfb610ad0611b4b565b5f610d04612370565b90505f829050806001600160a01b031663f4a6e4586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6a919061576c565b6001600160a01b0316826001600160a01b031663f4a6e4586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610daf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd3919061576c565b6001600160a01b031614610dfa57604051634df09d5960e11b815260040160405180910390fd5b610c17836123a2565b5f5f80516020615e4983398151915281610e1b6114e3565b90508065ffffffffffff168410610e5b57604051637669fc0f60e11b81526004810185905265ffffffffffff821660248201526044015b60405180910390fd5b610e86610e6785612410565b6001600160a01b0387165f908152600185016020526040902090612446565b6001600160d01b031695945050505050565b6060610ccd6124f6565b610ead610ad0611b4b565b5f5b81811015610c1757610ee6838383818110610ecc57610ecc615758565b9050602002016020810190610ee191906152a1565b612572565b600101610eaf565b610ef9610ad0611b4b565b610ae1828261267d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610f475750825b90505f826001600160401b03166001148015610f625750303b155b905081158015610f70575080155b15610f8e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610fb857845460ff60401b1916600160401b1785555b6001600160a01b038716610fdf57604051630d23cf4160e11b815260040160405180910390fd5b610fe7612852565b610ff08861285a565b610ff987612885565b61100286612896565b831561104857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b606061105c6128d2565b65ffffffffffff1661106c6114e3565b65ffffffffffff1614611092576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b5f610abf826128dc565b6001600160a01b039081165f9081525f80516020615e4983398151915260205260409020541690565b5f611106611b4b565b9050610ae1818361291f565b6060610ccd6129a6565b611127610ad0611b4b565b61112f6116ab565b6001600160a01b03166367d92011858585856040518563ffffffff1660e01b815260040161116094939291906157b7565b5f604051808303815f87803b158015611177575f80fd5b505af1158015611048573d5f803e3d5ffd5b5f610abf82612a0a565b5f805f80516020615e898339815191525b6001600160a01b039093165f9081526020939093525050604090205490565b5f6111cc611b4b565b90506111d66116ab565b6001600160a01b0316816001600160a01b0316146112115760405162d1953b60e31b81526001600160a01b0382166004820152602401610e52565b816001600160a01b03163b5f03611246576040516361798f2f60e11b81526001600160a01b0383166004820152602401610e52565b610ae182612a59565b5f610abf82612ab2565b611264610ad0611b4b565b611272868686868686612abc565b505050505050565b5f60608082808083815f80516020615ea983398151915280549091501580156112a557506001810154155b6112e95760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610e52565b6112f1612ef6565b6112f9612f34565b604080515f80825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b61132e610ad0611b4b565b5f80516020615da9833981519152546001600160a01b03161561136457604051632f3873fd60e01b815260040160405180910390fd5b5f80516020615da983398151915280546001600160a01b0319166001600160a01b0383161790556040516001600160a01b038216907f606f0da67080f7641fd59bdd017702d2842394e653866c86c69bcc879eea2a41905f90a250565b5f5f80516020615e49833981519152816113d96114e3565b90508065ffffffffffff16841061141457604051637669fc0f60e11b81526004810185905265ffffffffffff82166024820152604401610e52565b61142a61142085612410565b6002840190612446565b6001600160d01b0316949350505050565b5f80516020615dc983398151915280545f9190600160a01b900460ff16611462575f61146b565b638fb3603760e01b5b91505090565b604080518082019091525f8082526020820152610ccd6040805180820182525f80825260209182015281518083019092527f9399757a27831a6cfb6cf4cd5c97a908a2f8f41e95a5952fbf83a04e05288400546001600160a01b038116835261ffff600160a01b909104169082015290565b5f610ccd6128d2565b6114f7610ad0611b4b565b6114ff6116ab565b6040516311e124c160e21b81523060048201526001600160a01b0391909116906347849304906024015b5f604051808303815f87803b158015611540575f80fd5b505af1158015610b76573d5f803e3d5ffd5b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f80516020615e8983398151915291610a2090615720565b61159b610ad0611b4b565b610c17838383611d87565b5f610ccd6116ab565b6115ba610ad0611b4b565b610c17838383612f4a565b6001600160a01b0381165f9081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d01602052604081205f80516020615e498339815191529061161390613001565b6001600160d01b03169392505050565b5f610ccd612370565b5f610ccd613038565b5f8061163f611b4b565b9050610ab9818585611d87565b5f8281527f78e40624004925a4ef6749756748b1deddc674477302d5b7fe18e5335cde390060209081526040808320848452909152812054600114610ba4565b611697610ad0611b4b565b610ae1828261305f565b5f610abf8261314a565b5f805f80516020615dc98339815191525b546001600160a01b031692915050565b834211156116f057604051632341d78760e11b815260048101859052602401610e52565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f90611769906117619060a00160405160208183030381529060405280519060200120613185565b8585856131b1565b905061177581876131dd565b61177f818861291f565b50505050505050565b611793610ad0611b4b565b610c308161321b565b6117a7610ad0611b4b565b610c17838383808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061328992505050565b834211156118075760405163313c898160e11b815260048101859052602401610e52565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886118358c6133c7565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61188f82613185565b90505f61189e828787876131b1565b9050896001600160a01b0316816001600160a01b0316146118e5576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610e52565b6118f08a8a8a611b54565b50505050505050505050565b5f8181527f82411e549329f2815579116a6c5e60bff72686c93ab5dba4d06242cfaf968900602090815260409182902080548351818402810184019094528084526060939283018282801561196e57602002820191905f5260205f20905b81548152602001906001019080831161195a575b50505050509050919050565b611985610ad0611b4b565b61198d6116ab565b6040516317dbfc9360e01b81523060048201526001600160a01b0391909116906317dbfc9390602401611529565b6060610ccd613408565b5f8281525f80516020615e0983398151915260205260408120546001600160a01b03808416911614610ba4565b6119fd610ad0611b4b565b5f611a0661341d565b90506001600160a01b038116611a2f576040516310665ba560e11b815260040160405180910390fd5b611a505f80516020615da983398151915280546001600160a01b0319169055565b6040516001600160a01b038216907f6ca66738059b52d288c52b478cf0710166b7fb2801e9262a896cbacf620cba1d905f90a250565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b611ada610ad0611b4b565b611ae2613443565b565b5f610ccd5f80516020615de98339815191525490565b6060610ba483836134a5565b604080518082019091525f8082526020820152610ba48383613563565b611b2e610ad0611b4b565b611ae26135cc565b611b41610ad0611b4b565b610ae1828261362e565b5f610ccd61397e565b610c178383836001613987565b611b6c838383613a6b565b610c17611b7c60045f848661581d565b611b8591615844565b613bb2565b6001600160a01b038216611bb157604051630d23cf4160e11b815260040160405180910390fd5b611388811115611bd757604051630a7e67f960e21b815260048101829052602401610e52565b7f9399757a27831a6cfb6cf4cd5c97a908a2f8f41e95a5952fbf83a04e0528840080546001600160a01b0319166001600160a01b038416178155611c1a82613c28565b815461ffff91909116600160a01b0261ffff60a01b19909116178155604080516001600160a01b0385168152602081018490527fb51da3e1921b4e807ca7fadcf4582ef9ebbabde509ec7cecd222ca1fd4375df591015b60405180910390a1505050565b6001600160a01b038116611ca557604051630d23cf4160e11b815260040160405180910390fd5b610ae18282613c56565b5f8281527f82411e549329f2815579116a6c5e60bff72686c93ab5dba4d06242cfaf968900602090815260409091208251611cec92840190614d5e565b507fb48d142f846529428157323fc9d957bd2cd61342a70e92910b66a903fdbc2dac8282604051611d1e92919061587c565b60405180910390a15050565b5f611d358484611a86565b90505f198114610b765781811015611d7957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610e52565b610b7684848484035f613987565b6001600160a01b038316611db057604051634b637e8f60e11b81525f6004820152602401610e52565b6001600160a01b038216610cd25760405163ec442f0560e01b81525f6004820152602401610e52565b805f5b81811015610b7657838382818110611df657611df6615758565b9050604002015f01355f03611e3a57838382818110611e1757611e17615758565b604080516327d3bccb60e01b815291029290920135600483015250602401610e52565b670de0b6b3a7640000848483818110611e5557611e55615758565b905060400201602001351115611e9d57838382818110611e7757611e77615758565b90506040020160200135604051631a07511760e01b8152600401610e5291815260200190565b838382818110611eaf57611eaf615758565b90506040020160200135611ecd5f80516020615e6983398151915290565b5f868685818110611ee057611ee0615758565b9050604002015f013581526020019081526020015f20819055507f4c6d2c98209c0ce5c8fbbcc11919604fb09cec3c5e57d44b883e0f503a7714fc848483818110611f2d57611f2d615758565b9050604002015f0135858584818110611f4857611f48615758565b90506040020160200135604051611f69929190918252602082015260400190565b60405180910390a1600101611ddc565b5f8181527f78e40624004925a4ef6749756748b1deddc674477302d5b7fe18e5335cde39006020526040902060609060010180548060200260200160405190810160405280929190818152602001828054801561196e57602002820191905f5260205f209081548152602001906001019080831161195a5750505050509050919050565b6001600160a01b0381165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b5400602081905260408220549091819003612058576040516323cdec1d60e21b815260040160405180910390fd5b5f5f80516020615e2983398151915260015f80516020615e298339815191525461208291906158a8565b8154811061209257612092615758565b5f9182526020808320909101546001600160a01b0390811680845291869052604080842086905590871683528220919091559050806120db5f80516020615e2983398151915290565b6120e66001856158a8565b815481106120f6576120f6615758565b5f91825260209091200180546001600160a01b0319166001600160a01b03929092169190911790555f80516020615e2983398151915280548061213b5761213b6158bb565b5f8281526020908190205f19908301810180546001600160a01b03191690559091019091556040516001600160a01b03861681527f78464d629b261dcdc053f071c694250a86fc2a7ad6315364a81c7cd7cd98482e91015b60405180910390a150505050565b805f036121c157604051632635240760e21b815260040160405180910390fd5b805f80516020615de9833981519152556040518181527f24c49e2dc0029eefb42af678618270579f496b2054ba986e70e23a9a6f725e25906020015b60405180910390a150565b612213838383613d88565b7faef487a7a52e82ae7bbc470b42be72a1d3c066fb83773bf99cce7e6a7df2f900546122b8576001600160a01b0383166122b8575f61225d5f80516020615de98339815191525490565b90505f6122887f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b9050818111156122b55760405163279e7e1560e21b81526004810182905260248101839052604401610e52565b50505b610c17838383613ec1565b5f610ccd613f37565b60607fd334d8b26e68f82b7df26f2f64b6ffd2aaae5e2fc0e8c144c4b3598dcddd4b0060010180548060200260200160405190810160405280929190818152602001828054801561236657602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116123285790505b5050505050905090565b5f7f0d761ae54d86fc3be4f1f2b44ade677efb1c84a85fc6bb1d087dc42f1e319a005b546001600160a01b0316919050565b807f0d761ae54d86fc3be4f1f2b44ade677efb1c84a85fc6bb1d087dc42f1e319a0080546001600160a01b0319166001600160a01b0392831617905560405190821681527fd51f0f0ead29844497f2889430c7143324b01211d610174de544ac915ae5943f906020016121fd565b5f65ffffffffffff821115612442576040516306dfcc6560e41b81526030600482015260248101839052604401610e52565b5090565b81545f90818160058111156124a2575f61245f84613faa565b61246990856158a8565b5f8881526020902090915081015465ffffffffffff9081169087161015612492578091506124a0565b61249d8160016158cf565b92505b505b5f6124af8787858561408e565b905080156124e9576124d3876124c66001846158a8565b5f91825260209091200190565b54600160301b90046001600160d01b03166124eb565b5f5b979650505050505050565b60607fd243afa3da07e6bdec20fdd573a17f99411aa8a62ae64ca2c426d3a86ae0ac005b80546040805160208084028201810190925282815292919083018282801561236657602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161254b575050505050905090565b6001600160a01b0381165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b5400602081905260409091205480156125cb57604051630e5b59f760e41b815260040160405180910390fd5b5f5f80516020615e29833981519152546125e69060016158cf565b6001600160a01b0385165f818152602086815260408083208590555f80516020615e29833981519152805460018101825593527f23477b0f5b8efb150cb70bc4c9355a652f99157c4bc9fa45fe343f5c90fe96a790920180546001600160a01b0319168417905590519182529192507fa6900b674d94d1ecd696c66ec6762dcb661729307e0f90a5a4bc0513b1390d739101612193565b5f8281525f80516020615e09833981519152602090815260409182902054825163454dab2360e01b815292516001600160a01b03918216939185169263454dab2392600480820193918290030181865afa1580156126dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270191906158e2565b83146127325760405163ced174cf60e01b8152600481018490526001600160a01b0383166024820152604401610e52565b816001600160a01b0316816001600160a01b0316146127765760405163f278137f60e01b8152600481018490526001600160a01b0383166024820152604401610e52565b6040805160048152602481019091526020810180516001600160e01b031663722713f760e01b1790525f906127b5906001600160a01b038416906140ed565b8060200190518101906127c891906158e2565b90506127d261415f565b81111561280b57604051632272fecf60e11b8152600481018590526001600160a01b038416602482015260448101829052606401610e52565b612814846141a3565b604080518581526001600160a01b03851660208201527f2667629b7f8c1784d92ff6232875e8a84cc468c00daede0da11faf72f320c25b9101612193565b611ae26142f7565b6128626142f7565b610c3081604051806040016040528060018152602001603160f81b815250614340565b61288d6142f7565b610c308161439f565b61289e6142f7565b5f80516020615de98339815191525f8290036128cf5760405163392e1e2760e01b81525f6004820152602401610e52565b55565b5f610ccd43612410565b6001600160e01b0319165f9081527fd334d8b26e68f82b7df26f2f64b6ffd2aaae5e2fc0e8c144c4b3598dcddd4b0060205260409020546001600160a01b031690565b5f80516020615e498339815191525f612937846110d4565b6001600160a01b038581165f8181526020869052604080822080546001600160a01b031916898616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610b7681846129a1876143b0565b6143ba565b60605f80516020615e0983398151915260010180548060200260200160405190810160405280929190818152602001828054801561236657602002820191905f5260205f20905b8154815260200190600101908083116129ed575050505050905090565b6001600160a01b0381165f9081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260408120545f80516020615e4983398151915290610ba49061452b565b5f80516020615dc983398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602001611d1e565b5f610abf8261455b565b8483141580612acb5750848114155b15612ae95760405163187564ef60e31b815260040160405180910390fd5b7fd334d8b26e68f82b7df26f2f64b6ffd2aaae5e2fc0e8c144c4b3598dcddd4b005f808088815b81811015612ee8578b8b82818110612b2a57612b2a615758565b9050602002016020810190612b3f91906153ae565b9450898982818110612b5357612b53615758565b9050602002016020810190612b6891906152a1565b93506001600160e01b03198516612b92576040516309341d4960e21b815260040160405180910390fd5b6001600160e01b031985165f908152602087905260409020546001600160a01b0316925082158015612bcc57506001600160a01b03841615155b15612ca9576001868101805480830182555f828152602090206008820401805463ffffffff60079093166004026101000a928302191660e08a901c9290920291909117905554612c1c91906158a8565b6001600160e01b031986165f908152600288016020526040902055878782818110612c4957612c49615758565b9050602002810190612c5b91906158f9565b876003015f8789604051602001612c7392919061593e565b6040516020818303038152906040528051906020012081526020019081526020015f209190612ca3929190614da3565b50612e52565b6001600160a01b03831615801590612cc857506001600160a01b038416155b15612e52576001600160e01b031985165f908152600287016020526040812054600180890154919291612cfb91906158a8565b9050808214612daf575f886001018281548110612d1a57612d1a615758565b905f5260205f2090600891828204019190066004029054906101000a900460e01b905080896001018481548110612d5357612d53615758565b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082896002015f836001600160e01b0319166001600160e01b03191681526020019081526020015f2081905550505b87600101805480612dc257612dc26158bb565b5f828152602080822060085f1990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b03198916825260028a01815260408083208390555160038b019291612e219189918c910161593e565b6040516020818303038152906040528051906020012081526020019081526020015f205f612e4f9190614ddc565b50505b6001600160e01b031985165f81815260208890526040902080546001600160a01b0319166001600160a01b0387161790557f7e26ed60a0f6c468a4e1e259a46059e0f087d022694908b362823472d2d6f008858a8a85818110612eb757612eb7615758565b9050602002810190612ec991906158f9565b604051612ed893929190615965565b60405180910390a2600101612b10565b505050505050505050505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060915f80516020615ea983398151915291610a2090615720565b60605f5f80516020615ea9833981519152610a0f565b827fb37e8684757599da669b8aea811ee2b3693b2582d2c730fab3f4965fa2ec3e006040515f90612f81908690869060200161593e565b60408051808303601f19018152918152815160209283012083529082019290925281015f90812080546001600160a01b0319166001600160a01b0394851617905590516001600160e01b031984169285811692908716917ff52261028300639b867ee59a20c5b1fed5722cff7d08b923130deb8da77128a49190a4505050565b80545f9080156130305761301a836124c66001846158a8565b54600160301b90046001600160d01b0316610ba4565b5f9392505050565b5f7f08c469289c3f85d9b575f3ae9be6831541ff770a06ea135aa343a4de7c962d00612393565b6001600160a01b03821661308657604051630d23cf4160e11b815260040160405180910390fd5b6101f48111156130ac576040516324f8f43160e11b815260048101829052602401610e52565b7f239dd7e43331d2af55e2a25a6908f3bcec2957025f1459db97dcdc37c0003f0080546001600160a01b0319166001600160a01b0384161781556130ef82613c28565b815461ffff91909116600160a01b0261ffff60a01b19909116178155604080516001600160a01b0385168152602081018490527f72a8ee4b89f4194ad7e618624c280d66eb07d10b8cd84ab0376c16534413aa409101611c71565b6001600160a01b03165f9081527f48932b860eb451ad240d4fe2b46522e5a0ac079d201fe50d4e0be078c75b54006020526040902054151590565b5f610abf6131916122c3565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f806131c188888888614583565b9250925092506131d1828261464b565b50909695505050505050565b5f6131e7836133c7565b9050808214610c17576040516301d4b62360e61b81526001600160a01b038416600482015260248101829052604401610e52565b807f08c469289c3f85d9b575f3ae9be6831541ff770a06ea135aa343a4de7c962d0080546001600160a01b0319166001600160a01b0392831617905560405190821681527f70d04c70b02f1cb95bda0b7836754f3a59c7be75bf70a61673b9f284ce32688d906020016121fd565b5f8281527f78e40624004925a4ef6749756748b1deddc674477302d5b7fe18e5335cde3900602052604090206132be81614703565b5f82516001600160401b038111156132d8576132d8614f15565b604051908082528060200260200182016040528015613301578160200160208202803683370190505b5090505f5b835181101561337f576001835f015f86848151811061332757613327615758565b602002602001015181526020019081526020015f208190555083818151811061335257613352615758565b602002602001015182828151811061336c5761336c615758565b6020908102919091010152600101613306565b5080516133959060018401906020840190614d5e565b507f7e2fec298d6e81dab091490fc6ab01dc37a9077786c1d533a01cdc6a8e0f4263848460405161219392919061587c565b6001600160a01b03165f9081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b60605f80516020615e2983398151915261251a565b5f8061342761474f565b90506001600160a01b03811661343e573391505090565b919050565b5f8080525f80516020615e698339815191526020527ff1a5acf64f330322c7b96c9822a41f340e067e2cefe46839a37cd61f2a91150c8190556040517f75234aba5a783606f277af07d2159b4878f36e45d9d8e1582d682772855893119190a1565b60607f45a704819a9dcb1bb5b8cff129eda642cf0e926a9ef104e27aa53f1d1fa47b006040516001600160601b0319606086901b166020820152603481018490525f906054016040516020818303038152906040528051906020012081526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561355657602002820191905f5260205f20905b815481526020019060010190808311613542575b5050505050905092915050565b6040805180820182525f80825260208083018290526001600160a01b03861682527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d019052919091205f80516020615e49833981519152906135c49084614764565b949350505050565b5f8080525f80516020615e6983398151915260205260017ff1a5acf64f330322c7b96c9822a41f340e067e2cefe46839a37cd61f2a91150c556040517f844e310696d5462b9717e9a9e705b0119c545a7e1848808c4b67ce45440e70c89190a1565b5f816001600160401b0381111561364757613647614f15565b604051908082528060200260200182016040528015613670578160200160208202803683370190505b5090507f45a704819a9dcb1bb5b8cff129eda642cf0e926a9ef104e27aa53f1d1fa47b005f805b848110156138e1576136d98686838181106136b4576136b4615758565b90506020028101906136c69190615989565b6136d49060208101906152a1565b61314a565b613734578585828181106136ef576136ef615758565b90506020028101906137019190615989565b61370f9060208101906152a1565b60405163d9ffc5d160e01b81526001600160a01b039091166004820152602401610e52565b85858281811061374657613746615758565b90506020028101906137589190615989565b6137669060208101906152a1565b84828151811061377857613778615758565b60200260200101906001600160a01b031690816001600160a01b0316815250508585828181106137aa576137aa615758565b90506020028101906137bc9190615989565b6137ca9060208101906152a1565b816040516020016137f492919060609290921b6001600160601b0319168252601482015260340190565b60408051601f1981840301815291815281516020928301205f8181529286905290822090935061382391614ddc565b5f5b86868381811061383757613837615758565b90506020028101906138499190615989565b6138579060208101906158f9565b90508110156138d8575f83815260208590526040902087878481811061387f5761387f615758565b90506020028101906138919190615989565b61389f9060208101906158f9565b838181106138af576138af615758565b8354600180820186555f9586526020958690209290950293909301359201919091555001613825565b50600101613697565b5061390c7fd243afa3da07e6bdec20fdd573a17f99411aa8a62ae64ca2c426d3a86ae0ac005f614ddc565b827fd243afa3da07e6bdec20fdd573a17f99411aa8a62ae64ca2c426d3a86ae0ac00815161393d9260200190614df7565b507f709163391491f99340a8c1425dafce5e3c77ec8d2fe631cfc8900c8771b20384858560405161396f9291906159a7565b60405180910390a15050505050565b5f610ccd61341d565b5f80516020615e898339815191526001600160a01b0385166139be5760405163e602df0560e01b81525f6004820152602401610e52565b6001600160a01b0384166139e757604051634a1406b160e11b81525f6004820152602401610e52565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115613a6457836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051613a5b91815260200190565b60405180910390a35b5050505050565b5f613a79600482848661581d565b613a8291615844565b90506001600160e01b031981166387ef0b8760e01b1480613ab357506001600160e01b0319811663db99bddd60e01b145b15613abc573393505b5f80516020615dc98339815191525f80613af4613ad76116ab565b8830613ae660045f8b8d61581d565b613aef91615844565b6147d1565b915091508161177f5763ffffffff811615613b8f57825460ff60a01b1916600160a01b178355613b226116ab565b6001600160a01b03166394c7d7ee8888886040518463ffffffff1660e01b8152600401613b5193929190615a80565b5f604051808303815f87803b158015613b68575f80fd5b505af1158015613b7a573d5f803e3d5ffd5b5050845460ff60a01b191685555061177f9050565b60405162d1953b60e31b81526001600160a01b0388166004820152602401610e52565b5f613bbc826128dc565b90506001600160a01b038116613bd0575050565b604080516001600160e01b031984166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166316e3c4a960e11b179052610c17906001600160a01b038316906140ed565b5f61ffff821115612442576040516306dfcc6560e41b81526010600482015260248101839052604401610e52565b5f8281525f80516020615e0983398151915260205260409020546001600160a01b039081169082168103613caf57604051637a05655360e01b8152600481018490526001600160a01b0383166024820152604401610e52565b816001600160a01b031663454dab236040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ceb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d0f91906158e2565b8314613d405760405163ced174cf60e01b8152600481018490526001600160a01b0383166024820152604401610e52565b613d4a83836148d9565b604080518481526001600160a01b03841660208201527f275b1b6e4a8352ce8fa292b767afe7d6f3cff10a31042d4f2328a51e3c17d6079101611c71565b5f80516020615e898339815191526001600160a01b038416613dc25781816002015f828254613db791906158cf565b90915550613e329050565b6001600160a01b0384165f9081526020829052604090205482811015613e145760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610e52565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316613e50576002810180548390039055613e6e565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613eb391815260200190565b60405180910390a350505050565b5f80516020615e498339815191526001600160a01b038416613ef857613ef581600201614969613ef085614974565b6149a7565b50505b6001600160a01b038316613f1c57613f19816002016149df613ef085614974565b50505b610b76613f28856110d4565b613f31856110d4565b846143ba565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f613f616149ea565b613f69614a52565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f815f03613fb957505f919050565b5f6001613fc584614a94565b901c6001901b90506001818481613fde57613fde615abf565b048201901c90506001818481613ff657613ff6615abf565b048201901c9050600181848161400e5761400e615abf565b048201901c9050600181848161402657614026615abf565b048201901c9050600181848161403e5761403e615abf565b048201901c9050600181848161405657614056615abf565b048201901c9050600181848161406e5761406e615abf565b048201901c9050610ba48182858161408857614088615abf565b04614b27565b5f5b818310156140e5575f6140a38484614b3c565b5f8781526020902090915065ffffffffffff86169082015465ffffffffffff1611156140d1578092506140df565b6140dc8160016158cf565b93505b50614090565b509392505050565b60605f80846001600160a01b0316846040516141099190615ad3565b5f60405180830381855af49150503d805f8114614141576040519150601f19603f3d011682016040523d82523d5f602084013e614146565b606091505b5091509150614156858383614b56565b95945050505050565b5f60027f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00546141989190600160a01b900460ff16615ae9565b610ccd90600a615be5565b5f8181525f80516020615e098339815191526020818152604080842080546001600160a01b03191690557f150144dd6af711bac4392499881ec6649090601bd196a5ece5174c1400b1f702909152909120547f150144dd6af711bac4392499881ec6649090601bd196a5ece5174c1400b1f701548082146142b7578260010160018261422f91906158a8565b8154811061423f5761423f615758565b905f5260205f2001548360010160018461425991906158a8565b8154811061426957614269615758565b905f5260205f20018190555081836002015f8560010160018561428c91906158a8565b8154811061429c5761429c615758565b905f5260205f20015481526020019081526020015f20819055505b826001018054806142ca576142ca6158bb565b5f828152602080822083015f19908101839055909201909255948152600290930190935250604081205550565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611ae257604051631afcd79f60e31b815260040160405180910390fd5b6143486142f7565b5f80516020615ea98339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026143818482615c37565b50600381016143908382615c37565b505f8082556001909101555050565b6143a76142f7565b610c3081612a59565b5f610abf82611193565b5f80516020615e498339815191526001600160a01b03848116908416148015906143e357505f82115b15610b76576001600160a01b03841615614487576001600160a01b0384165f90815260018201602052604081208190614422906149df613ef087614974565b6001600160d01b031691506001600160d01b03169150856001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161447c929190918252602082015260400190565b60405180910390a250505b6001600160a01b03831615610b76576001600160a01b0383165f908152600182016020526040812081906144c190614969613ef087614974565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161451b929190918252602082015260400190565b60405180910390a2505050505050565b5f63ffffffff821115612442576040516306dfcc6560e41b81526020600482015260248101839052604401610e52565b5f807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006111a4565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156145bc57505f91506003905082614641565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561460d573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661463857505f925060019150829050614641565b92505f91508190505b9450945094915050565b5f82600381111561465e5761465e615cf1565b03614667575050565b600182600381111561467b5761467b615cf1565b036146995760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156146ad576146ad615cf1565b036146ce5760405163fce698f760e01b815260048101829052602401610e52565b60038260038111156146e2576146e2615cf1565b03610ae1576040516335e2f38360e21b815260048101829052602401610e52565b60018101545f5b81811015610c17575f835f015f85600101848154811061472c5761472c615758565b5f918252602080832090910154835282019290925260400190205560010161470a565b5f805f80516020615da98339815191526116bc565b604080518082019091525f8082526020820152825f018263ffffffff168154811061479157614791615758565b5f9182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161483f9190615ad3565b5f60405180830381855afa9150503d805f8114614877576040519150601f19603f3d011682016040523d82523d5f602084013e61487c565b606091505b509150915081156148ce5760408151106148ae57808060200190518101906148a49190615d14565b90945092506148ce565b60208151106148ce57808060200190518101906148cb9190615d3e565b93505b505094509492505050565b7f150144dd6af711bac4392499881ec6649090601bd196a5ece5174c1400b1f701545f80516020615e09833981519152905f906149179060016158cf565b5f8581526020848152604080832080546001600160a01b0319166001600160a01b0398909816979097179096556001808601805491820181558352818320018790559581526002909301909452502055565b5f610ba48284615d57565b5f6001600160d01b03821115612442576040516306dfcc6560e41b815260d0600482015260248101839052604401610e52565b5f806149d26149b46114e3565b6149ca6149c088613001565b868863ffffffff16565b879190614bb2565b915091505b935093915050565b5f610ba48284615d76565b5f5f80516020615ea983398151915281614a02612ef6565b805190915015614a1a57805160209091012092915050565b81548015614a29579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b5f5f80516020615ea983398151915281614a6a612f34565b805190915015614a8257805160209091012092915050565b60018201548015614a29579392505050565b5f80608083901c15614aa857608092831c92015b604083901c15614aba57604092831c92015b602083901c15614acc57602092831c92015b601083901c15614ade57601092831c92015b600883901c15614af057600892831c92015b600483901c15614b0257600492831c92015b600283901c15614b1457600292831c92015b600183901c15610abf5760010192915050565b5f818310614b355781610ba4565b5090919050565b5f614b4a6002848418615d95565b610ba4908484166158cf565b606082614b6b57614b6682614bbf565b610ba4565b8151158015614b8257506001600160a01b0384163b155b15614bab57604051639996b31560e01b81526001600160a01b0385166004820152602401610e52565b5080610ba4565b5f806149d2858585614be8565b805115614bcf5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b82545f9081908015614d04575f614c04876124c66001856158a8565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b031660208401529192509087161015614c5857604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603614ca45784614c7b886124c66001866158a8565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055614cf4565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216600160301b029216919091179101555b6020015192508391506149d79050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160301b0291909316179201919091559050816149d7565b828054828255905f5260205f20908101928215614d97579160200282015b82811115614d97578251825591602001919060010190614d7c565b50612442929150614e4a565b828054828255905f5260205f20908101928215614d97579160200282015b82811115614d97578235825591602001919060010190614dc1565b5080545f8255905f5260205f2090810190610c309190614e4a565b828054828255905f5260205f20908101928215614d97579160200282015b82811115614d9757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614e15565b5b80821115612442575f8155600101614e4b565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610ba46020830184614e5e565b6001600160a01b0381168114610c30575f80fd5b803561343e81614e9e565b5f8060408385031215614ece575f80fd5b8235614ed981614e9e565b946020939093013593505050565b5f8060408385031215614ef8575f80fd5b823591506020830135614f0a81614e9e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715614f5157614f51614f15565b604052919050565b5f6001600160401b03821115614f7157614f71614f15565b5060051b60200190565b5f82601f830112614f8a575f80fd5b8135614f9d614f9882614f59565b614f29565b8082825260208201915060208360051b860101925085831115614fbe575f80fd5b602085015b83811015614fdb578035835260209283019201614fc3565b5095945050505050565b5f8060408385031215614ff6575f80fd5b82356001600160401b0381111561500b575f80fd5b61501785828601614f7b565b92505060208301356001600160401b03811115615032575f80fd5b8301601f81018513615042575f80fd5b8035615050614f9882614f59565b8082825260208201915060208360051b850101925087831115615071575f80fd5b602084015b838110156150b15780356001600160401b03811115615093575f80fd5b6150a28a602083890101614f7b565b84525060209283019201615076565b50809450505050509250929050565b5f805f606084860312156150d2575f80fd5b83356150dd81614e9e565b925060208401356150ed81614e9e565b929592945050506040919091013590565b5f806020838503121561510f575f80fd5b82356001600160401b03811115615124575f80fd5b8301601f81018513615134575f80fd5b80356001600160401b03811115615149575f80fd5b8560208260061b840101111561515d575f80fd5b6020919091019590945092505050565b5f6020828403121561517d575f80fd5b5035919050565b5f8151808452602084019350602083015f5b828110156151b4578151865260209586019590910190600101615196565b5093949350505050565b602081525f610ba46020830184615184565b5f8083601f8401126151e0575f80fd5b5081356001600160401b038111156151f6575f80fd5b6020830191508360208260051b8501011115615210575f80fd5b9250929050565b5f8060208385031215615228575f80fd5b82356001600160401b0381111561523d575f80fd5b615249858286016151d0565b90969095509350505050565b602080825282518282018190525f918401906040840190835b818110156152965783516001600160e01b03191683526020938401939092019160010161526e565b509095945050505050565b5f602082840312156152b1575f80fd5b8135610ba481614e9e565b602080825282518282018190525f918401906040840190835b818110156152965783516001600160a01b03168352602093840193909201916001016152d5565b5f805f6060848603121561530e575f80fd5b83356001600160401b03811115615323575f80fd5b8401601f81018613615333575f80fd5b80356001600160401b0381111561534c5761534c614f15565b61535f601f8201601f1916602001614f29565b818152876020838501011115615373575f80fd5b816020840160208301375f602083830101528095505050506150ed60208501614eb2565b80356001600160e01b03198116811461343e575f80fd5b5f602082840312156153be575f80fd5b610ba482615397565b5f805f80604085870312156153da575f80fd5b84356001600160401b038111156153ef575f80fd5b6153fb878288016151d0565b90955093505060208501356001600160401b03811115615419575f80fd5b615425878288016151d0565b95989497509550505050565b5f805f805f8060608789031215615446575f80fd5b86356001600160401b0381111561545b575f80fd5b61546789828a016151d0565b90975095505060208701356001600160401b03811115615485575f80fd5b61549189828a016151d0565b90955093505060408701356001600160401b038111156154af575f80fd5b6154bb89828a016151d0565b979a9699509497509295939492505050565b60ff60f81b8816815260e060208201525f6154eb60e0830189614e5e565b82810360408401526154fd8189614e5e565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152905061552e8185615184565b9a9950505050505050505050565b5f805f6060848603121561554e575f80fd5b833561555981614e9e565b9250602084013561556981614e9e565b915061557760408501615397565b90509250925092565b5f8060408385031215615591575f80fd5b50508035926020909101359150565b803560ff8116811461343e575f80fd5b5f805f805f8060c087890312156155c5575f80fd5b86356155d081614e9e565b955060208701359450604087013593506155ec606088016155a0565b9598949750929560808101359460a0909101359350915050565b5f805f60408486031215615618575f80fd5b8335925060208401356001600160401b03811115615634575f80fd5b615640868287016151d0565b9497909650939450505050565b5f805f805f805f60e0888a031215615663575f80fd5b873561566e81614e9e565b9650602088013561567e81614e9e565b9550604088013594506060880135935061569a608089016155a0565b9699959850939692959460a0840135945060c09093013592915050565b5f80604083850312156156c8575f80fd5b82356156d381614e9e565b91506020830135614f0a81614e9e565b63ffffffff81168114610c30575f80fd5b5f8060408385031215615705575f80fd5b823561571081614e9e565b91506020830135614f0a816156e3565b600181811c9082168061573457607f821691505b60208210810361575257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561577c575f80fd5b8151610ba481614e9e565b8183525f6001600160fb1b0383111561579e575f80fd5b8260051b80836020870137939093016020019392505050565b604080825281018490525f8560608301825b878110156157fd5782356001600160401b0381168082146157e8575f80fd5b835250602092830192909101906001016157c9565b508381036020850152615811818688615787565b98975050505050505050565b5f808585111561582b575f80fd5b83861115615837575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015615875576001600160e01b0319600485900360031b81901b82161691505b5092915050565b828152604060208201525f6135c46040830184615184565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf615894565b634e487b7160e01b5f52603160045260245ffd5b80820180821115610abf57610abf615894565b5f602082840312156158f2575f80fd5b5051919050565b5f808335601e1984360301811261590e575f80fd5b8301803591506001600160401b03821115615927575f80fd5b6020019150600581901b3603821315615210575f80fd5b60609290921b6001600160601b03191682526001600160e01b031916601482015260180190565b6001600160a01b03841681526040602082018190525f906141569083018486615787565b5f8235603e1983360301811261599d575f80fd5b9190910192915050565b602080825281018290525f6040600584901b830181019083018583603e1936839003015b87821015615a7357868503603f1901845282358181126159e9575f80fd5b890180356159f681614e9e565b6001600160a01b03168652602081013536829003601e19018112615a18575f80fd5b016020810190356001600160401b03811115615a32575f80fd5b8060051b3603821315615a43575f80fd5b60406020880152615a58604088018284615787565b965050506020830192506020840193506001820191506159cb565b5092979650505050505050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b5f52601260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f60ff831680615afb57615afb615abf565b8060ff84160491505092915050565b6001815b60018411156149d757808504811115615b2957615b29615894565b6001841615615b3757908102905b60019390931c928002615b0e565b5f82615b5357506001610abf565b81615b5f57505f610abf565b8160018114615b755760028114615b7f57615b9b565b6001915050610abf565b60ff841115615b9057615b90615894565b50506001821b610abf565b5060208310610133831016604e8410600b8410161715615bbe575081810a610abf565b615bca5f198484615b0a565b805f1904821115615bdd57615bdd615894565b029392505050565b5f610ba460ff841683615b45565b601f821115610c1757805f5260205f20601f840160051c81016020851015615c185750805b601f840160051c820191505b81811015613a64575f8155600101615c24565b81516001600160401b03811115615c5057615c50614f15565b615c6481615c5e8454615720565b84615bf3565b6020601f821160018114615c96575f8315615c7f5750848201515b5f19600385901b1c1916600184901b178455613a64565b5f84815260208120601f198516915b82811015615cc55787850151825560209485019460019092019101615ca5565b5084821015615ce257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52602160045260245ffd5b8051801515811461343e575f80fd5b5f8060408385031215615d25575f80fd5b615d2e83615d05565b91506020830151614f0a816156e3565b5f60208284031215615d4e575f80fd5b610ba482615d05565b6001600160d01b038181168382160190811115610abf57610abf615894565b6001600160d01b038281168282160390811115610abf57610abf615894565b5f82615da357615da3615abf565b50049056fe68262fe08792a71a690eb5eb2de15df1b0f463dd786bf92bdbd5f0f0d1ae8b00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a000f070392f17d5f958cc1ac31867dabecfc5c9758b4a419a200803226d7155d00150144dd6af711bac4392499881ec6649090601bd196a5ece5174c1400b1f700ad43e358bd6e59a5a0c80f6bf25fa771408af4d80f621cdc680c8dfbf607ab00e8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00c2733c187287f795e2e6e84d35552a190e774125367241c3e99e955f4babf00052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100a26469706673582212209ce94328e107fbed206a7a54ef50b9f7d197497481e811b0862b29e2e32cf95264736f6c634300081a0033
🤖 Code Reader Beta

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.