ETH Price: $2,219.22 (-0.66%)
 

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

StakedmsUSD

Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled
Yes with 200 runs
Other Settings
shanghai EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"AlreadySet","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint256","name":"endTimestamp","type":"uint256"}],"name":"CooldownNotFinished","type":"error"},{"inputs":[],"name":"CoverageRatioZero","type":"error"},{"inputs":[],"name":"DepositsDisabled","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","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":"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":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxDeposit","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxMint","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxRedeem","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxWithdraw","type":"error"},{"inputs":[],"name":"ExcessiveRedeemAmount","type":"error"},{"inputs":[],"name":"ExcessiveWithdrawAmount","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidCooldown","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidRatio","type":"error"},{"inputs":[],"name":"InvalidToken","type":"error"},{"inputs":[],"name":"InvalidZeroAddress","type":"error"},{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"},{"inputs":[],"name":"MinSharesViolation","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"NotAuthorized","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"NothingToUnstake","type":"error"},{"inputs":[],"name":"OperationNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"SlippageExceeded","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","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":"uint256","name":"","type":"uint256"}],"name":"AssetBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint24","name":"previousDuration","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"newDuration","type":"uint24"}],"name":"CooldownDurationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTime","type":"uint256"}],"name":"CooldownEndtimeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"CoverageRatioUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"","type":"bool"}],"name":"DepositsToggled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"FeeSiloUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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":"amount","type":"uint256"}],"name":"LockedAmountRedistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"RewarderUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousSilo","type":"address"},{"indexed":false,"internalType":"address","name":"newSilo","type":"address"}],"name":"SiloUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"","type":"uint16"}],"name":"TaxRateUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountForRedeemer","type":"uint256"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"msUSDSiloUpdated","type":"event"},{"inputs":[],"name":"MAX_COOLDOWN_DURATION","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_SHARES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"asset","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"cooldownAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownDuration","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"cooldownShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldowns","outputs":[{"internalType":"uint104","name":"cooldownEnd","type":"uint104"},{"internalType":"uint256","name":"underlyingAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coverageRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSilo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_initialRewarder","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastDistributionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint24","name":"duration","type":"uint24"}],"name":"setCooldownDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ratio","type":"uint256"}],"name":"setCoverageRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_silo","type":"address"}],"name":"setFeeSilo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewarder","type":"address"}],"name":"setRewarder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_silo","type":"address"}],"name":"setSilo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newTaxRate","type":"uint16"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"silo","outputs":[{"internalType":"contract msUSDSilo","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxRate","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleDeposits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint104","name":"newCooldownEnd","type":"uint104"}],"name":"updateExistingCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516135cd620001005f395f8181611f2101528181611f4a015261208901526135cd5ff3fe608060405260043610610366575f3560e01c80638da5cb5b116101c8578063c63d75b6116100fd578063d907813c1161009d578063ef8b30f71161006d578063ef8b30f7146108bf578063f2888dbb146109ea578063f2fde38b14610a09578063f812fa7014610a28575f80fd5b8063d907813c14610979578063dcc3e06e1461098d578063dd62ed3e146109ac578063eb3beb29146109cb575f80fd5b8063ce96cb77116100d8578063ce96cb77146108fd578063d50655b01461091c578063d87c28671461093b578063d905777e1461095a575f80fd5b8063c63d75b6146105c8578063c6e6f592146108bf578063ce23eb3c146108de575f80fd5b8063a9059cbb11610168578063b37fd19011610143578063b37fd19014610843578063b3d7f6b914610862578063b460af9414610881578063ba087652146108a0575f80fd5b8063a9059cbb146107d5578063ad3cb1cc146107f4578063ae3dc06814610824575f80fd5b806395d89b41116101a357806395d89b41146107645780639dc1036614610778578063a2af490014610797578063a63a25f6146107b6575f80fd5b80638da5cb5b146107125780638f08d44d1461072657806394bf804d14610745575f80fd5b806338d52e0f1161029e5780635392fd1c1161023e57806370a082311161021957806370a082311461068c578063715018a6146106ab578063771a3a1d146106bf57806383b43589146106f3575f80fd5b80635392fd1c1461062e5780635a6399121461064e5780636e553f651461066d575f80fd5b80634828ced9116102795780634828ced9146105e85780634cdad5061461040f5780634f1ef2861461060757806352d1902d1461061a575f80fd5b806338d52e0f1461057d5780633a6462e4146105a9578063402d267d146105c8575f80fd5b806318160ddd1161030957806320950933116102e4578063209509331461050257806323b872dd14610516578063313ce56714610535578063352693151461055b575f80fd5b806318160ddd1461049d5780631e9049cf146104bd5780631fcd3080146104e7575f80fd5b806307a2d13a1161034457806307a2d13a1461040f578063095ea7b31461042e5780630a28a4771461045d578063157153131461047c575f80fd5b806301320fe21461036a57806301e1d114146103cc57806306fdde03146103ee575b5f80fd5b348015610375575f80fd5b506103a8610384366004612dbf565b600160208190525f918252604090912080549101546001600160681b039091169082565b604080516001600160681b0390931683526020830191909152015b60405180910390f35b3480156103d7575f80fd5b506103e0610a3d565b6040519081526020016103c3565b3480156103f9575f80fd5b50610402610ab3565b6040516103c39190612dfa565b34801561041a575f80fd5b506103e0610429366004612e2c565b610b73565b348015610439575f80fd5b5061044d610448366004612e43565b610b84565b60405190151581526020016103c3565b348015610468575f80fd5b506103e0610477366004612e2c565b610b9b565b348015610487575f80fd5b5061049b610496366004612dbf565b610ba7565b005b3480156104a8575f80fd5b505f80516020613541833981519152546103e0565b3480156104c8575f80fd5b506104d36276a70081565b60405162ffffff90911681526020016103c3565b3480156104f2575f80fd5b506103e0670de0b6b3a764000081565b34801561050d575f80fd5b506103e05f5481565b348015610521575f80fd5b5061044d610530366004612e6b565b610c62565b348015610540575f80fd5b50610549610c87565b60405160ff90911681526020016103c3565b348015610566575f80fd5b506004546104d390600160a01b900462ffffff1681565b348015610588575f80fd5b50610591610cb6565b6040516001600160a01b0390911681526020016103c3565b3480156105b4575f80fd5b5061049b6105c3366004612dbf565b610cd7565b3480156105d3575f80fd5b506103e06105e2366004612dbf565b505f1990565b3480156105f3575f80fd5b5061049b610602366004612e2c565b610d92565b61049b610615366004612eb8565b610f92565b348015610625575f80fd5b506103e0610fb1565b348015610639575f80fd5b5060045461044d90600160c81b900460ff1681565b348015610659575f80fd5b5061049b610668366004612e2c565b610fcc565b348015610678575f80fd5b506103e0610687366004612f74565b611057565b348015610697575f80fd5b506103e06106a6366004612dbf565b61107a565b3480156106b6575f80fd5b5061049b6110a0565b3480156106ca575f80fd5b506004546106e090600160b81b900461ffff1681565b60405161ffff90911681526020016103c3565b3480156106fe575f80fd5b5061049b61070d366004612fe3565b6110b3565b34801561071d575f80fd5b506105916112d9565b348015610731575f80fd5b5061049b610740366004612e2c565b611301565b348015610750575f80fd5b506103e061075f366004612f74565b6113a1565b34801561076f575f80fd5b506104026113bc565b348015610783575f80fd5b50600454610591906001600160a01b031681565b3480156107a2575f80fd5b506103e06107b1366004612f74565b6113fa565b3480156107c1575f80fd5b5061049b6107d036600461307e565b6114e2565b3480156107e0575f80fd5b5061044d6107ef366004612e43565b6115dc565b3480156107ff575f80fd5b50610402604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561082f575f80fd5b5061049b61083e36600461309f565b6115e9565b34801561084e575f80fd5b5061049b61085d3660046130df565b6116ab565b34801561086d575f80fd5b506103e061087c366004612e2c565b611705565b34801561088c575f80fd5b506103e061089b366004613118565b611711565b3480156108ab575f80fd5b506103e06108ba366004613118565b61174b565b3480156108ca575f80fd5b506103e06108d9366004612e2c565b611785565b3480156108e9575f80fd5b5061049b6108f8366004613148565b611790565b348015610908575f80fd5b506103e0610917366004612dbf565b61182c565b348015610927575f80fd5b506103e0610936366004612f74565b61183f565b348015610946575f80fd5b5061049b610955366004612dbf565b611927565b348015610965575f80fd5b506103e0610974366004612dbf565b6119e2565b348015610984575f80fd5b5061049b6119ec565b348015610998575f80fd5b50600354610591906001600160a01b031681565b3480156109b7575f80fd5b506103e06109c636600461316a565b611a5a565b3480156109d6575f80fd5b50600254610591906001600160a01b031681565b3480156109f5575f80fd5b5061049b610a04366004612dbf565b611aa3565b348015610a14575f80fd5b5061049b610a23366004612dbf565b611d27565b348015610a33575f80fd5b506103e060055481565b5f610a46610cb6565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613192565b905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060915f8051602061352183398151915291610af1906131a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1d906131a9565b8015610b685780601f10610b3f57610100808354040283529160200191610b68565b820191905f5260205f20905b815481529060010190602001808311610b4b57829003601f168201915b505050505091505090565b5f610b7e825f611d61565b92915050565b5f33610b91818585611da5565b5060019392505050565b5f610b7e826001611db2565b610baf611ded565b6001600160a01b038116610bd65760405163f6b2911f60e01b815260040160405180910390fd5b6002546001600160a01b03808316911603610c045760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527f6b49d24dd3285d61bdc40376f699105de0c026f54ed60756482d0f20c0b8abea9060200160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f33610c6f858285611e1f565b610c7a858585611e6f565b60019150505b9392505050565b5f805f8051602061358183398151915290505f8154610cb09190600160a01b900460ff166131f5565b91505090565b5f805f805160206135818339815191525b546001600160a01b031692915050565b610cdf611ded565b6001600160a01b038116610d065760405163f6b2911f60e01b815260040160405180910390fd5b6003546001600160a01b03808316911603610d345760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527f47c9042c3be42a955f60f9b75006522826af1a3bed83e26646997d3bcccda77c9060200160405180910390a1600380546001600160a01b0319166001600160a01b0392909216919091179055565b610d9a611ecc565b6003546001600160a01b03163314801590610dce5750610db86112d9565b6001600160a01b0316336001600160a01b031614155b15610df357604051634a0bfec160e01b81523360048201526024015b60405180910390fd5b80805f03610e145760405163162908e360e11b815260040160405180910390fd5b425f55600454600160b81b900461ffff1615801590610e3d57506004546001600160a01b031615155b15610ee9576004545f906103e890610e6090600160b81b900461ffff168561320e565b610e6a9190613239565b9050610e74610cb6565b600480546040516340c10f1960e01b81526001600160a01b03918216928101929092526024820184905291909116906340c10f19906044015f604051808303815f87803b158015610ec3575f80fd5b505af1158015610ed5573d5f803e3d5ffd5b505050508083610ee5919061324c565b9250505b610ef1610cb6565b6040516340c10f1960e01b8152306004820152602481018490526001600160a01b0391909116906340c10f19906044015f604051808303815f87803b158015610f38575f80fd5b505af1158015610f4a573d5f803e3d5ffd5b50506040518492507fbb28dd7cd6be6f61828ea9158a04c5182c716a946a6d2f31f4864edb87471aa691505f90a250610f8f60015f805160206135a183398151915255565b50565b610f9a611f16565b610fa382611fba565b610fad8282611fc2565b5050565b5f610fba61207e565b505f8051602061356183398151915290565b610fd4611ded565b6005548103610ff65760405163a741a04560e01b815260040160405180910390fd5b670de0b6b3a764000081111561101f5760405163648564d360e01b815260040160405180910390fd5b6040518181527fdf2cd4b648795c20aa1aeba11f8ca0264b6ac306acecd2fd590f3c573fe7a5f89060200160405180910390a1600555565b5f5f195f61106485611785565b9050611072338587846120c7565b949350505050565b6001600160a01b03165f9081525f80516020613521833981519152602052604090205490565b6110a8611ded565b6110b15f612167565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156110f85750825b90505f8267ffffffffffffffff1660011480156111145750303b155b905081158015611122575080155b156111405760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561116a57845460ff60401b1916600160401b1785555b6001600160a01b038a16158061118757506001600160a01b038b16155b8061119957506001600160a01b038c16155b156111b75760405163f6b2911f60e01b815260040160405180910390fd5b61122889898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f920191909152506121d792505050565b6112318c6121e9565b61123a8a6121fa565b61124261220b565b670de0b6b3a76400006005556004805465ff0000ffffff60a01b191664020000127560a71b179055600380546001600160a01b0319166001600160a01b038d1617905583156112cb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300610cc7565b611309611ded565b6040518181527f23c8e7ecf38ad1e9e1639dfb4b258fc9942ae76b580d2ba43c4a73b9291812c99060200160405180910390a1611344610cb6565b6001600160a01b03166342966c68826040518263ffffffff1660e01b815260040161137191815260200190565b5f604051808303815f87803b158015611388575f80fd5b505af115801561139a573d5f803e3d5ffd5b5050505050565b5f5f195f6113ae85611705565b9050611072338583886120c7565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f8051602061352183398151915291610af1906131a9565b6004545f90600160a01b900462ffffff16810361142a57604051637a851da960e11b815260040160405180910390fd5b611433826119e2565b83111561145357604051630c668a7160e31b815260040160405180910390fd5b5f61145d84610b73565b60045490915061147990600160a01b900462ffffff1642613280565b6001600160a01b0384165f908152600160208190526040822080546001600160681b0319166001600160681b03949094169390931783559190910180548392906114c49084906132a7565b90915550610c809050336002546001600160a01b031685848861221b565b6114ea611ded565b6103e88161ffff16106115535760405162461bcd60e51b815260206004820152602b60248201527f5461782063616e6e6f742062652031303025202d204d757374206265206c657360448201526a073207468616e20313030360ac1b6064820152608401610dea565b60045461ffff808316600160b81b90920416036115835760405163a741a04560e01b815260040160405180910390fd5b60405161ffff821681527fc806a10dd41921869155255a462a80195a7bfeb01e4f3431e3a43bdf80e4baa09060200160405180910390a16004805461ffff909216600160b81b0261ffff60b81b19909216919091179055565b5f33610b91818585611e6f565b6115f1611ded565b6001600160a01b0382165f908152600160205260408120805490916001600160681b03909116900361163657604051637475d84d60e11b815260040160405180910390fd5b8054604080516001600160a01b03861681526001600160681b03928316602082015291841682820152517f4590c2052b5ebf4a0a703688d2a793d162b6925a337b78387018d7c20ef4ed2e9181900360600190a180546001600160681b0319166001600160681b039290921691909117905550565b6116b3611ded565b6116bb610cb6565b6001600160a01b0316836001600160a01b0316036116ec5760405163c1ab6dc160e01b815260040160405180910390fd5b6117006001600160a01b0384168284612292565b505050565b5f610b7e826001611d61565b6004545f90600160a01b900462ffffff161561174057604051637a851da960e11b815260040160405180910390fd5b6110728484846122f1565b6004545f90600160a01b900462ffffff161561177a57604051637a851da960e11b815260040160405180910390fd5b611072848484612347565b5f610b7e825f611db2565b611798611ded565b6276a70062ffffff821611156117c157604051637475d84d60e11b815260040160405180910390fd5b6004805462ffffff838116600160a01b90810262ffffff60a01b198416179384905560408051938290048316808552919094049091166020830152917f180eacdf7dbaeecaa983d93173b4285db2f2c0de0044697e1f932bbbb73dcaa6910160405180910390a15050565b5f610b7e6118398361107a565b5f611d61565b6004545f90600160a01b900462ffffff16810361186f57604051637a851da960e11b815260040160405180910390fd5b6118788261182c565b83111561189857604051636fa9eef160e11b815260040160405180910390fd5b5f6118a284610b9b565b6004549091506118be90600160a01b900462ffffff1642613280565b6001600160a01b0384165f908152600160208190526040822080546001600160681b0319166001600160681b03949094169390931783559190910180548692906119099084906132a7565b90915550610c809050336002546001600160a01b031685878561221b565b61192f611ded565b6001600160a01b0381166119565760405163f6b2911f60e01b815260040160405180910390fd5b6004546001600160a01b038083169116036119845760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527fdb8167fc515fc9095f0a3a91bcd16cf7f1a9b3cc52ebad83691f81180d5098a59060200160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f610b7e8261107a565b6119f4611ded565b6004805460ff600160c81b808304821615810260ff60c81b1990931692909217928390556040517f79a0d73b50e293c1e17b973f07d567c5a14399afb5e2373c44a82e9f9109d71693611a509390049091161515815260200190565b60405180910390a1565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b611aab611ecc565b335f908152600160208190526040909120908101548154426001600160681b039091161115611b0157815460405163922bceef60e01b81524260048201526001600160681b039091166024820152604401610dea565b805f03611b215760405163422f6e3560e11b815260040160405180910390fd5b6005545f03611b4357604051637cf9af2360e11b815260040160405180910390fd5b81546001600160681b03191682555f60018301556005548190670de0b6b3a76400001115611c5d57670de0b6b3a764000060055483611b82919061320e565b611b8c9190613239565b90505f611b99828461324c565b60025460405163f3fef3a360e01b8152306004820152602481018390529192506001600160a01b03169063f3fef3a3906044015f604051808303815f87803b158015611be3575f80fd5b505af1158015611bf5573d5f803e3d5ffd5b50505050611c01610cb6565b6001600160a01b03166342966c68826040518263ffffffff1660e01b8152600401611c2e91815260200190565b5f604051808303815f87803b158015611c45575f80fd5b505af1158015611c57573d5f803e3d5ffd5b50505050505b604080513381526001600160a01b0386166020820152908101839052606081018290527f18edd09e80386cd99df397e2e0d87d2bb259423eae08645e776321a36fe680ef9060800160405180910390a160025460405163f3fef3a360e01b81526001600160a01b038681166004830152602482018490529091169063f3fef3a3906044015f604051808303815f87803b158015611cf8575f80fd5b505af1158015611d0a573d5f803e3d5ffd5b50505050505050610f8f60015f805160206135a183398151915255565b611d2f611ded565b6001600160a01b038116611d5857604051631e4fbdf760e01b81525f6004820152602401610dea565b610f8f81612167565b5f610c80611d6d610a3d565b611d789060016132a7565b611d835f600a61339a565b5f8051602061354183398151915254611d9c91906132a7565b85919085612394565b61170083838360016123e1565b5f610c80611dc182600a61339a565b5f8051602061354183398151915254611dda91906132a7565b611de2610a3d565b611d9c9060016132a7565b33611df66112d9565b6001600160a01b0316146110b15760405163118cdaa760e01b8152336004820152602401610dea565b5f611e2a8484611a5a565b90505f198114611e695781811015611e5b57828183604051637dc7a0d960e11b8152600401610dea9392919061325f565b611e6984848484035f6123e1565b50505050565b6001600160a01b038316611e9857604051634b637e8f60e11b81525f6004820152602401610dea565b6001600160a01b038216611ec15760405163ec442f0560e01b81525f6004820152602401610dea565b6117008383836124c4565b5f805160206135a1833981519152805460011901611efd57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60015f805160206135a183398151915255565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611f9c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611f905f80516020613561833981519152546001600160a01b031690565b6001600160a01b031614155b156110b15760405163703e46dd60e11b815260040160405180910390fd5b610f8f611ded565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561201c575060408051601f3d908101601f1916820190925261201991810190613192565b60015b61204457604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610dea565b5f80516020613561833981519152811461207457604051632a87526960e21b815260048101829052602401610dea565b61170083836125ea565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110b15760405163703e46dd60e11b815260040160405180910390fd5b6120cf611ecc565b600454600160c81b900460ff166120f957604051630e2f42c960e31b815260040160405180910390fd5b81805f0361211a5760405163162908e360e11b815260040160405180910390fd5b81805f0361213b5760405163162908e360e11b815260040160405180910390fd5b6121478686868661263f565b61214f6126bc565b5050611e6960015f805160206135a183398151915255565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6121df612708565b610fad8282612751565b6121f1612708565b610f8f816127a1565b612202612708565b610f8f81612811565b612213612708565b6110b1612819565b612223611ecc565b81805f036122445760405163162908e360e11b815260040160405180910390fd5b81805f036122655760405163162908e360e11b815260040160405180910390fd5b6122728787878787612821565b61227a6126bc565b505061139a60015f805160206135a183398151915255565b6040516001600160a01b0383811660248301526044820183905261170091859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506128d5565b5f806122fc8361182c565b90508085111561232557828582604051633fa733bb60e21b8152600401610dea9392919061325f565b5f61232f86610b9b565b905061233e338686898561221b565b95945050505050565b5f80612352836119e2565b90508085111561237b57828582604051632e52afbb60e21b8152600401610dea9392919061325f565b5f61238586610b73565b905061233e338686848a61221b565b5f806123a1868686612936565b90506123ac836129f5565b80156123c757505f84806123c2576123c2613225565b868809115b1561233e576123d76001826132a7565b9695505050505050565b5f805160206135218339815191526001600160a01b0385166124185760405163e602df0560e01b81525f6004820152602401610dea565b6001600160a01b03841661244157604051634a1406b160e11b81525f6004820152602401610dea565b6001600160a01b038086165f9081526001830160209081526040808320938816835292905220839055811561139a57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516124b591815260200190565b60405180910390a35050505050565b5f805160206135218339815191526001600160a01b0384166124fe5781816002015f8282546124f391906132a7565b9091555061255b9050565b6001600160a01b0384165f908152602082905260409020548281101561253d5784818460405163391434e360e21b8152600401610dea9392919061325f565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316612579576002810180548390039055612597565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125dc91815260200190565b60405180910390a350505050565b6125f382612a21565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612637576117008282612a84565b610fad612aed565b5f805160206135818339815191528054612664906001600160a01b0316863086612b0c565b61266e8483612b45565b836001600160a01b0316856001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d785856040516124b5929190918252602082015260400190565b5f6126d25f805160206135418339815191525490565b90505f811180156126ea5750670de0b6b3a764000081105b15610f8f57604051635a5c1b5560e11b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166110b157604051631afcd79f60e31b815260040160405180910390fd5b612759612708565b5f805160206135218339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0361279284826133f5565b5060048101611e6983826133f5565b6127a9612708565b5f805160206135818339815191525f806127c284612b79565b91509150816127d25760126127d4565b805b83546001600160a81b031916600160a01b60ff92909216919091026001600160a01b031916176001600160a01b0394909416939093179091555050565b611d2f612708565b611f03612708565b5f805160206135818339815191526001600160a01b038681169085161461284d5761284d848784611e1f565b6128578483612c4f565b805461286d906001600160a01b03168685612292565b836001600160a01b0316856001600160a01b0316876001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db86866040516128c5929190918252602082015260400190565b60405180910390a4505050505050565b5f6128e96001600160a01b03841683612c83565b905080515f1415801561290d57508080602001905181019061290b91906134b1565b155b1561170057604051635274afe760e01b81526001600160a01b0384166004820152602401610dea565b5f838302815f1985870982811083820303915050805f0361296a5783828161296057612960613225565b0492505050610c80565b80841161298a5760405163227bc15360e01b815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f6002826003811115612a0a57612a0a6134d0565b612a1491906134e4565b60ff166001149050919050565b806001600160a01b03163b5f03612a5657604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610dea565b5f8051602061356183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b031684604051612aa09190613505565b5f60405180830381855af49150503d805f8114612ad8576040519150601f19603f3d011682016040523d82523d5f602084013e612add565b606091505b509150915061233e858383612c90565b34156110b15760405163b398979f60e01b815260040160405180910390fd5b6040516001600160a01b038481166024830152838116604483015260648201839052611e699186918216906323b872dd906084016122bf565b6001600160a01b038216612b6e5760405163ec442f0560e01b81525f6004820152602401610dea565b610fad5f83836124c4565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f918291829182916001600160a01b03871691612bbf91613505565b5f60405180830381855afa9150503d805f8114612bf7576040519150601f19603f3d011682016040523d82523d5f602084013e612bfc565b606091505b5091509150818015612c1057506020815110155b15612c43575f81806020019051810190612c2a9190613192565b905060ff8111612c41576001969095509350505050565b505b505f9485945092505050565b6001600160a01b038216612c7857604051634b637e8f60e11b81525f6004820152602401610dea565b610fad825f836124c4565b6060610c8083835f612cec565b606082612ca557612ca082612d7b565b610c80565b8151158015612cbc57506001600160a01b0384163b155b15612ce557604051639996b31560e01b81526001600160a01b0385166004820152602401610dea565b5080610c80565b606081471015612d115760405163cd78605960e01b8152306004820152602401610dea565b5f80856001600160a01b03168486604051612d2c9190613505565b5f6040518083038185875af1925050503d805f8114612d66576040519150601f19603f3d011682016040523d82523d5f602084013e612d6b565b606091505b50915091506123d7868383612c90565b805115612d8b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114612dba575f80fd5b919050565b5f60208284031215612dcf575f80fd5b610c8082612da4565b5f5b83811015612df2578181015183820152602001612dda565b50505f910152565b602081525f8251806020840152612e18816040850160208701612dd8565b601f01601f19169190910160400192915050565b5f60208284031215612e3c575f80fd5b5035919050565b5f8060408385031215612e54575f80fd5b612e5d83612da4565b946020939093013593505050565b5f805f60608486031215612e7d575f80fd5b612e8684612da4565b9250612e9460208501612da4565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215612ec9575f80fd5b612ed283612da4565b9150602083013567ffffffffffffffff80821115612eee575f80fd5b818501915085601f830112612f01575f80fd5b813581811115612f1357612f13612ea4565b604051601f8201601f19908116603f01168101908382118183101715612f3b57612f3b612ea4565b81604052828152886020848701011115612f53575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f8060408385031215612f85575f80fd5b82359150612f9560208401612da4565b90509250929050565b5f8083601f840112612fae575f80fd5b50813567ffffffffffffffff811115612fc5575f80fd5b602083019150836020828501011115612fdc575f80fd5b9250929050565b5f805f805f805f60a0888a031215612ff9575f80fd5b61300288612da4565b965061301060208901612da4565b955061301e60408901612da4565b9450606088013567ffffffffffffffff8082111561303a575f80fd5b6130468b838c01612f9e565b909650945060808a013591508082111561305e575f80fd5b5061306b8a828b01612f9e565b989b979a50959850939692959293505050565b5f6020828403121561308e575f80fd5b813561ffff81168114610c80575f80fd5b5f80604083850312156130b0575f80fd5b6130b983612da4565b915060208301356001600160681b03811681146130d4575f80fd5b809150509250929050565b5f805f606084860312156130f1575f80fd5b6130fa84612da4565b92506020840135915061310f60408501612da4565b90509250925092565b5f805f6060848603121561312a575f80fd5b8335925061313a60208501612da4565b915061310f60408501612da4565b5f60208284031215613158575f80fd5b813562ffffff81168114610c80575f80fd5b5f806040838503121561317b575f80fd5b61318483612da4565b9150612f9560208401612da4565b5f602082840312156131a2575f80fd5b5051919050565b600181811c908216806131bd57607f821691505b6020821081036131db57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b60ff8181168382160190811115610b7e57610b7e6131e1565b8082028115828204841417610b7e57610b7e6131e1565b634e487b7160e01b5f52601260045260245ffd5b5f8261324757613247613225565b500490565b81810381811115610b7e57610b7e6131e1565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160681b038181168382160190808211156132a0576132a06131e1565b5092915050565b80820180821115610b7e57610b7e6131e1565b600181815b808511156132f457815f19048211156132da576132da6131e1565b808516156132e757918102915b93841c93908002906132bf565b509250929050565b5f8261330a57506001610b7e565b8161331657505f610b7e565b816001811461332c576002811461333657613352565b6001915050610b7e565b60ff841115613347576133476131e1565b50506001821b610b7e565b5060208310610133831016604e8410600b8410161715613375575081810a610b7e565b61337f83836132ba565b805f1904821115613392576133926131e1565b029392505050565b5f610c8060ff8416836132fc565b601f821115611700575f81815260208120601f850160051c810160208610156133ce5750805b601f850160051c820191505b818110156133ed578281556001016133da565b505050505050565b815167ffffffffffffffff81111561340f5761340f612ea4565b6134238161341d84546131a9565b846133a8565b602080601f831160018114613456575f841561343f5750858301515b5f19600386901b1c1916600185901b1785556133ed565b5f85815260208120601f198616915b8281101561348457888601518255948401946001909101908401613465565b50858210156134a157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156134c1575f80fd5b81518015158114610c80575f80fd5b634e487b7160e01b5f52602160045260245ffd5b5f60ff8316806134f6576134f6613225565b8060ff84160691505092915050565b5f8251613516818460208701612dd8565b919091019291505056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c6343000814000a
Deployed Bytecode
0x608060405260043610610366575f3560e01c80638da5cb5b116101c8578063c63d75b6116100fd578063d907813c1161009d578063ef8b30f71161006d578063ef8b30f7146108bf578063f2888dbb146109ea578063f2fde38b14610a09578063f812fa7014610a28575f80fd5b8063d907813c14610979578063dcc3e06e1461098d578063dd62ed3e146109ac578063eb3beb29146109cb575f80fd5b8063ce96cb77116100d8578063ce96cb77146108fd578063d50655b01461091c578063d87c28671461093b578063d905777e1461095a575f80fd5b8063c63d75b6146105c8578063c6e6f592146108bf578063ce23eb3c146108de575f80fd5b8063a9059cbb11610168578063b37fd19011610143578063b37fd19014610843578063b3d7f6b914610862578063b460af9414610881578063ba087652146108a0575f80fd5b8063a9059cbb146107d5578063ad3cb1cc146107f4578063ae3dc06814610824575f80fd5b806395d89b41116101a357806395d89b41146107645780639dc1036614610778578063a2af490014610797578063a63a25f6146107b6575f80fd5b80638da5cb5b146107125780638f08d44d1461072657806394bf804d14610745575f80fd5b806338d52e0f1161029e5780635392fd1c1161023e57806370a082311161021957806370a082311461068c578063715018a6146106ab578063771a3a1d146106bf57806383b43589146106f3575f80fd5b80635392fd1c1461062e5780635a6399121461064e5780636e553f651461066d575f80fd5b80634828ced9116102795780634828ced9146105e85780634cdad5061461040f5780634f1ef2861461060757806352d1902d1461061a575f80fd5b806338d52e0f1461057d5780633a6462e4146105a9578063402d267d146105c8575f80fd5b806318160ddd1161030957806320950933116102e4578063209509331461050257806323b872dd14610516578063313ce56714610535578063352693151461055b575f80fd5b806318160ddd1461049d5780631e9049cf146104bd5780631fcd3080146104e7575f80fd5b806307a2d13a1161034457806307a2d13a1461040f578063095ea7b31461042e5780630a28a4771461045d578063157153131461047c575f80fd5b806301320fe21461036a57806301e1d114146103cc57806306fdde03146103ee575b5f80fd5b348015610375575f80fd5b506103a8610384366004612dbf565b600160208190525f918252604090912080549101546001600160681b039091169082565b604080516001600160681b0390931683526020830191909152015b60405180910390f35b3480156103d7575f80fd5b506103e0610a3d565b6040519081526020016103c3565b3480156103f9575f80fd5b50610402610ab3565b6040516103c39190612dfa565b34801561041a575f80fd5b506103e0610429366004612e2c565b610b73565b348015610439575f80fd5b5061044d610448366004612e43565b610b84565b60405190151581526020016103c3565b348015610468575f80fd5b506103e0610477366004612e2c565b610b9b565b348015610487575f80fd5b5061049b610496366004612dbf565b610ba7565b005b3480156104a8575f80fd5b505f80516020613541833981519152546103e0565b3480156104c8575f80fd5b506104d36276a70081565b60405162ffffff90911681526020016103c3565b3480156104f2575f80fd5b506103e0670de0b6b3a764000081565b34801561050d575f80fd5b506103e05f5481565b348015610521575f80fd5b5061044d610530366004612e6b565b610c62565b348015610540575f80fd5b50610549610c87565b60405160ff90911681526020016103c3565b348015610566575f80fd5b506004546104d390600160a01b900462ffffff1681565b348015610588575f80fd5b50610591610cb6565b6040516001600160a01b0390911681526020016103c3565b3480156105b4575f80fd5b5061049b6105c3366004612dbf565b610cd7565b3480156105d3575f80fd5b506103e06105e2366004612dbf565b505f1990565b3480156105f3575f80fd5b5061049b610602366004612e2c565b610d92565b61049b610615366004612eb8565b610f92565b348015610625575f80fd5b506103e0610fb1565b348015610639575f80fd5b5060045461044d90600160c81b900460ff1681565b348015610659575f80fd5b5061049b610668366004612e2c565b610fcc565b348015610678575f80fd5b506103e0610687366004612f74565b611057565b348015610697575f80fd5b506103e06106a6366004612dbf565b61107a565b3480156106b6575f80fd5b5061049b6110a0565b3480156106ca575f80fd5b506004546106e090600160b81b900461ffff1681565b60405161ffff90911681526020016103c3565b3480156106fe575f80fd5b5061049b61070d366004612fe3565b6110b3565b34801561071d575f80fd5b506105916112d9565b348015610731575f80fd5b5061049b610740366004612e2c565b611301565b348015610750575f80fd5b506103e061075f366004612f74565b6113a1565b34801561076f575f80fd5b506104026113bc565b348015610783575f80fd5b50600454610591906001600160a01b031681565b3480156107a2575f80fd5b506103e06107b1366004612f74565b6113fa565b3480156107c1575f80fd5b5061049b6107d036600461307e565b6114e2565b3480156107e0575f80fd5b5061044d6107ef366004612e43565b6115dc565b3480156107ff575f80fd5b50610402604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561082f575f80fd5b5061049b61083e36600461309f565b6115e9565b34801561084e575f80fd5b5061049b61085d3660046130df565b6116ab565b34801561086d575f80fd5b506103e061087c366004612e2c565b611705565b34801561088c575f80fd5b506103e061089b366004613118565b611711565b3480156108ab575f80fd5b506103e06108ba366004613118565b61174b565b3480156108ca575f80fd5b506103e06108d9366004612e2c565b611785565b3480156108e9575f80fd5b5061049b6108f8366004613148565b611790565b348015610908575f80fd5b506103e0610917366004612dbf565b61182c565b348015610927575f80fd5b506103e0610936366004612f74565b61183f565b348015610946575f80fd5b5061049b610955366004612dbf565b611927565b348015610965575f80fd5b506103e0610974366004612dbf565b6119e2565b348015610984575f80fd5b5061049b6119ec565b348015610998575f80fd5b50600354610591906001600160a01b031681565b3480156109b7575f80fd5b506103e06109c636600461316a565b611a5a565b3480156109d6575f80fd5b50600254610591906001600160a01b031681565b3480156109f5575f80fd5b5061049b610a04366004612dbf565b611aa3565b348015610a14575f80fd5b5061049b610a23366004612dbf565b611d27565b348015610a33575f80fd5b506103e060055481565b5f610a46610cb6565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190613192565b905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060915f8051602061352183398151915291610af1906131a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1d906131a9565b8015610b685780601f10610b3f57610100808354040283529160200191610b68565b820191905f5260205f20905b815481529060010190602001808311610b4b57829003601f168201915b505050505091505090565b5f610b7e825f611d61565b92915050565b5f33610b91818585611da5565b5060019392505050565b5f610b7e826001611db2565b610baf611ded565b6001600160a01b038116610bd65760405163f6b2911f60e01b815260040160405180910390fd5b6002546001600160a01b03808316911603610c045760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527f6b49d24dd3285d61bdc40376f699105de0c026f54ed60756482d0f20c0b8abea9060200160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f33610c6f858285611e1f565b610c7a858585611e6f565b60019150505b9392505050565b5f805f8051602061358183398151915290505f8154610cb09190600160a01b900460ff166131f5565b91505090565b5f805f805160206135818339815191525b546001600160a01b031692915050565b610cdf611ded565b6001600160a01b038116610d065760405163f6b2911f60e01b815260040160405180910390fd5b6003546001600160a01b03808316911603610d345760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527f47c9042c3be42a955f60f9b75006522826af1a3bed83e26646997d3bcccda77c9060200160405180910390a1600380546001600160a01b0319166001600160a01b0392909216919091179055565b610d9a611ecc565b6003546001600160a01b03163314801590610dce5750610db86112d9565b6001600160a01b0316336001600160a01b031614155b15610df357604051634a0bfec160e01b81523360048201526024015b60405180910390fd5b80805f03610e145760405163162908e360e11b815260040160405180910390fd5b425f55600454600160b81b900461ffff1615801590610e3d57506004546001600160a01b031615155b15610ee9576004545f906103e890610e6090600160b81b900461ffff168561320e565b610e6a9190613239565b9050610e74610cb6565b600480546040516340c10f1960e01b81526001600160a01b03918216928101929092526024820184905291909116906340c10f19906044015f604051808303815f87803b158015610ec3575f80fd5b505af1158015610ed5573d5f803e3d5ffd5b505050508083610ee5919061324c565b9250505b610ef1610cb6565b6040516340c10f1960e01b8152306004820152602481018490526001600160a01b0391909116906340c10f19906044015f604051808303815f87803b158015610f38575f80fd5b505af1158015610f4a573d5f803e3d5ffd5b50506040518492507fbb28dd7cd6be6f61828ea9158a04c5182c716a946a6d2f31f4864edb87471aa691505f90a250610f8f60015f805160206135a183398151915255565b50565b610f9a611f16565b610fa382611fba565b610fad8282611fc2565b5050565b5f610fba61207e565b505f8051602061356183398151915290565b610fd4611ded565b6005548103610ff65760405163a741a04560e01b815260040160405180910390fd5b670de0b6b3a764000081111561101f5760405163648564d360e01b815260040160405180910390fd5b6040518181527fdf2cd4b648795c20aa1aeba11f8ca0264b6ac306acecd2fd590f3c573fe7a5f89060200160405180910390a1600555565b5f5f195f61106485611785565b9050611072338587846120c7565b949350505050565b6001600160a01b03165f9081525f80516020613521833981519152602052604090205490565b6110a8611ded565b6110b15f612167565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156110f85750825b90505f8267ffffffffffffffff1660011480156111145750303b155b905081158015611122575080155b156111405760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561116a57845460ff60401b1916600160401b1785555b6001600160a01b038a16158061118757506001600160a01b038b16155b8061119957506001600160a01b038c16155b156111b75760405163f6b2911f60e01b815260040160405180910390fd5b61122889898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f920191909152506121d792505050565b6112318c6121e9565b61123a8a6121fa565b61124261220b565b670de0b6b3a76400006005556004805465ff0000ffffff60a01b191664020000127560a71b179055600380546001600160a01b0319166001600160a01b038d1617905583156112cb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300610cc7565b611309611ded565b6040518181527f23c8e7ecf38ad1e9e1639dfb4b258fc9942ae76b580d2ba43c4a73b9291812c99060200160405180910390a1611344610cb6565b6001600160a01b03166342966c68826040518263ffffffff1660e01b815260040161137191815260200190565b5f604051808303815f87803b158015611388575f80fd5b505af115801561139a573d5f803e3d5ffd5b5050505050565b5f5f195f6113ae85611705565b9050611072338583886120c7565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f8051602061352183398151915291610af1906131a9565b6004545f90600160a01b900462ffffff16810361142a57604051637a851da960e11b815260040160405180910390fd5b611433826119e2565b83111561145357604051630c668a7160e31b815260040160405180910390fd5b5f61145d84610b73565b60045490915061147990600160a01b900462ffffff1642613280565b6001600160a01b0384165f908152600160208190526040822080546001600160681b0319166001600160681b03949094169390931783559190910180548392906114c49084906132a7565b90915550610c809050336002546001600160a01b031685848861221b565b6114ea611ded565b6103e88161ffff16106115535760405162461bcd60e51b815260206004820152602b60248201527f5461782063616e6e6f742062652031303025202d204d757374206265206c657360448201526a073207468616e20313030360ac1b6064820152608401610dea565b60045461ffff808316600160b81b90920416036115835760405163a741a04560e01b815260040160405180910390fd5b60405161ffff821681527fc806a10dd41921869155255a462a80195a7bfeb01e4f3431e3a43bdf80e4baa09060200160405180910390a16004805461ffff909216600160b81b0261ffff60b81b19909216919091179055565b5f33610b91818585611e6f565b6115f1611ded565b6001600160a01b0382165f908152600160205260408120805490916001600160681b03909116900361163657604051637475d84d60e11b815260040160405180910390fd5b8054604080516001600160a01b03861681526001600160681b03928316602082015291841682820152517f4590c2052b5ebf4a0a703688d2a793d162b6925a337b78387018d7c20ef4ed2e9181900360600190a180546001600160681b0319166001600160681b039290921691909117905550565b6116b3611ded565b6116bb610cb6565b6001600160a01b0316836001600160a01b0316036116ec5760405163c1ab6dc160e01b815260040160405180910390fd5b6117006001600160a01b0384168284612292565b505050565b5f610b7e826001611d61565b6004545f90600160a01b900462ffffff161561174057604051637a851da960e11b815260040160405180910390fd5b6110728484846122f1565b6004545f90600160a01b900462ffffff161561177a57604051637a851da960e11b815260040160405180910390fd5b611072848484612347565b5f610b7e825f611db2565b611798611ded565b6276a70062ffffff821611156117c157604051637475d84d60e11b815260040160405180910390fd5b6004805462ffffff838116600160a01b90810262ffffff60a01b198416179384905560408051938290048316808552919094049091166020830152917f180eacdf7dbaeecaa983d93173b4285db2f2c0de0044697e1f932bbbb73dcaa6910160405180910390a15050565b5f610b7e6118398361107a565b5f611d61565b6004545f90600160a01b900462ffffff16810361186f57604051637a851da960e11b815260040160405180910390fd5b6118788261182c565b83111561189857604051636fa9eef160e11b815260040160405180910390fd5b5f6118a284610b9b565b6004549091506118be90600160a01b900462ffffff1642613280565b6001600160a01b0384165f908152600160208190526040822080546001600160681b0319166001600160681b03949094169390931783559190910180548692906119099084906132a7565b90915550610c809050336002546001600160a01b031685878561221b565b61192f611ded565b6001600160a01b0381166119565760405163f6b2911f60e01b815260040160405180910390fd5b6004546001600160a01b038083169116036119845760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527fdb8167fc515fc9095f0a3a91bcd16cf7f1a9b3cc52ebad83691f81180d5098a59060200160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f610b7e8261107a565b6119f4611ded565b6004805460ff600160c81b808304821615810260ff60c81b1990931692909217928390556040517f79a0d73b50e293c1e17b973f07d567c5a14399afb5e2373c44a82e9f9109d71693611a509390049091161515815260200190565b60405180910390a1565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b611aab611ecc565b335f908152600160208190526040909120908101548154426001600160681b039091161115611b0157815460405163922bceef60e01b81524260048201526001600160681b039091166024820152604401610dea565b805f03611b215760405163422f6e3560e11b815260040160405180910390fd5b6005545f03611b4357604051637cf9af2360e11b815260040160405180910390fd5b81546001600160681b03191682555f60018301556005548190670de0b6b3a76400001115611c5d57670de0b6b3a764000060055483611b82919061320e565b611b8c9190613239565b90505f611b99828461324c565b60025460405163f3fef3a360e01b8152306004820152602481018390529192506001600160a01b03169063f3fef3a3906044015f604051808303815f87803b158015611be3575f80fd5b505af1158015611bf5573d5f803e3d5ffd5b50505050611c01610cb6565b6001600160a01b03166342966c68826040518263ffffffff1660e01b8152600401611c2e91815260200190565b5f604051808303815f87803b158015611c45575f80fd5b505af1158015611c57573d5f803e3d5ffd5b50505050505b604080513381526001600160a01b0386166020820152908101839052606081018290527f18edd09e80386cd99df397e2e0d87d2bb259423eae08645e776321a36fe680ef9060800160405180910390a160025460405163f3fef3a360e01b81526001600160a01b038681166004830152602482018490529091169063f3fef3a3906044015f604051808303815f87803b158015611cf8575f80fd5b505af1158015611d0a573d5f803e3d5ffd5b50505050505050610f8f60015f805160206135a183398151915255565b611d2f611ded565b6001600160a01b038116611d5857604051631e4fbdf760e01b81525f6004820152602401610dea565b610f8f81612167565b5f610c80611d6d610a3d565b611d789060016132a7565b611d835f600a61339a565b5f8051602061354183398151915254611d9c91906132a7565b85919085612394565b61170083838360016123e1565b5f610c80611dc182600a61339a565b5f8051602061354183398151915254611dda91906132a7565b611de2610a3d565b611d9c9060016132a7565b33611df66112d9565b6001600160a01b0316146110b15760405163118cdaa760e01b8152336004820152602401610dea565b5f611e2a8484611a5a565b90505f198114611e695781811015611e5b57828183604051637dc7a0d960e11b8152600401610dea9392919061325f565b611e6984848484035f6123e1565b50505050565b6001600160a01b038316611e9857604051634b637e8f60e11b81525f6004820152602401610dea565b6001600160a01b038216611ec15760405163ec442f0560e01b81525f6004820152602401610dea565b6117008383836124c4565b5f805160206135a1833981519152805460011901611efd57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60015f805160206135a183398151915255565b306001600160a01b037f00000000000000000000000042ced7dce66df68a6828f74ea73612fb511471a7161480611f9c57507f00000000000000000000000042ced7dce66df68a6828f74ea73612fb511471a76001600160a01b0316611f905f80516020613561833981519152546001600160a01b031690565b6001600160a01b031614155b156110b15760405163703e46dd60e11b815260040160405180910390fd5b610f8f611ded565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561201c575060408051601f3d908101601f1916820190925261201991810190613192565b60015b61204457604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610dea565b5f80516020613561833981519152811461207457604051632a87526960e21b815260048101829052602401610dea565b61170083836125ea565b306001600160a01b037f00000000000000000000000042ced7dce66df68a6828f74ea73612fb511471a716146110b15760405163703e46dd60e11b815260040160405180910390fd5b6120cf611ecc565b600454600160c81b900460ff166120f957604051630e2f42c960e31b815260040160405180910390fd5b81805f0361211a5760405163162908e360e11b815260040160405180910390fd5b81805f0361213b5760405163162908e360e11b815260040160405180910390fd5b6121478686868661263f565b61214f6126bc565b5050611e6960015f805160206135a183398151915255565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6121df612708565b610fad8282612751565b6121f1612708565b610f8f816127a1565b612202612708565b610f8f81612811565b612213612708565b6110b1612819565b612223611ecc565b81805f036122445760405163162908e360e11b815260040160405180910390fd5b81805f036122655760405163162908e360e11b815260040160405180910390fd5b6122728787878787612821565b61227a6126bc565b505061139a60015f805160206135a183398151915255565b6040516001600160a01b0383811660248301526044820183905261170091859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506128d5565b5f806122fc8361182c565b90508085111561232557828582604051633fa733bb60e21b8152600401610dea9392919061325f565b5f61232f86610b9b565b905061233e338686898561221b565b95945050505050565b5f80612352836119e2565b90508085111561237b57828582604051632e52afbb60e21b8152600401610dea9392919061325f565b5f61238586610b73565b905061233e338686848a61221b565b5f806123a1868686612936565b90506123ac836129f5565b80156123c757505f84806123c2576123c2613225565b868809115b1561233e576123d76001826132a7565b9695505050505050565b5f805160206135218339815191526001600160a01b0385166124185760405163e602df0560e01b81525f6004820152602401610dea565b6001600160a01b03841661244157604051634a1406b160e11b81525f6004820152602401610dea565b6001600160a01b038086165f9081526001830160209081526040808320938816835292905220839055811561139a57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516124b591815260200190565b60405180910390a35050505050565b5f805160206135218339815191526001600160a01b0384166124fe5781816002015f8282546124f391906132a7565b9091555061255b9050565b6001600160a01b0384165f908152602082905260409020548281101561253d5784818460405163391434e360e21b8152600401610dea9392919061325f565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316612579576002810180548390039055612597565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125dc91815260200190565b60405180910390a350505050565b6125f382612a21565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612637576117008282612a84565b610fad612aed565b5f805160206135818339815191528054612664906001600160a01b0316863086612b0c565b61266e8483612b45565b836001600160a01b0316856001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d785856040516124b5929190918252602082015260400190565b5f6126d25f805160206135418339815191525490565b90505f811180156126ea5750670de0b6b3a764000081105b15610f8f57604051635a5c1b5560e11b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166110b157604051631afcd79f60e31b815260040160405180910390fd5b612759612708565b5f805160206135218339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0361279284826133f5565b5060048101611e6983826133f5565b6127a9612708565b5f805160206135818339815191525f806127c284612b79565b91509150816127d25760126127d4565b805b83546001600160a81b031916600160a01b60ff92909216919091026001600160a01b031916176001600160a01b0394909416939093179091555050565b611d2f612708565b611f03612708565b5f805160206135818339815191526001600160a01b038681169085161461284d5761284d848784611e1f565b6128578483612c4f565b805461286d906001600160a01b03168685612292565b836001600160a01b0316856001600160a01b0316876001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db86866040516128c5929190918252602082015260400190565b60405180910390a4505050505050565b5f6128e96001600160a01b03841683612c83565b905080515f1415801561290d57508080602001905181019061290b91906134b1565b155b1561170057604051635274afe760e01b81526001600160a01b0384166004820152602401610dea565b5f838302815f1985870982811083820303915050805f0361296a5783828161296057612960613225565b0492505050610c80565b80841161298a5760405163227bc15360e01b815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f6002826003811115612a0a57612a0a6134d0565b612a1491906134e4565b60ff166001149050919050565b806001600160a01b03163b5f03612a5657604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610dea565b5f8051602061356183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b031684604051612aa09190613505565b5f60405180830381855af49150503d805f8114612ad8576040519150601f19603f3d011682016040523d82523d5f602084013e612add565b606091505b509150915061233e858383612c90565b34156110b15760405163b398979f60e01b815260040160405180910390fd5b6040516001600160a01b038481166024830152838116604483015260648201839052611e699186918216906323b872dd906084016122bf565b6001600160a01b038216612b6e5760405163ec442f0560e01b81525f6004820152602401610dea565b610fad5f83836124c4565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f918291829182916001600160a01b03871691612bbf91613505565b5f60405180830381855afa9150503d805f8114612bf7576040519150601f19603f3d011682016040523d82523d5f602084013e612bfc565b606091505b5091509150818015612c1057506020815110155b15612c43575f81806020019051810190612c2a9190613192565b905060ff8111612c41576001969095509350505050565b505b505f9485945092505050565b6001600160a01b038216612c7857604051634b637e8f60e11b81525f6004820152602401610dea565b610fad825f836124c4565b6060610c8083835f612cec565b606082612ca557612ca082612d7b565b610c80565b8151158015612cbc57506001600160a01b0384163b155b15612ce557604051639996b31560e01b81526001600160a01b0385166004820152602401610dea565b5080610c80565b606081471015612d115760405163cd78605960e01b8152306004820152602401610dea565b5f80856001600160a01b03168486604051612d2c9190613505565b5f6040518083038185875af1925050503d805f8114612d66576040519150601f19603f3d011682016040523d82523d5f602084013e612d6b565b606091505b50915091506123d7868383612c90565b805115612d8b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114612dba575f80fd5b919050565b5f60208284031215612dcf575f80fd5b610c8082612da4565b5f5b83811015612df2578181015183820152602001612dda565b50505f910152565b602081525f8251806020840152612e18816040850160208701612dd8565b601f01601f19169190910160400192915050565b5f60208284031215612e3c575f80fd5b5035919050565b5f8060408385031215612e54575f80fd5b612e5d83612da4565b946020939093013593505050565b5f805f60608486031215612e7d575f80fd5b612e8684612da4565b9250612e9460208501612da4565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215612ec9575f80fd5b612ed283612da4565b9150602083013567ffffffffffffffff80821115612eee575f80fd5b818501915085601f830112612f01575f80fd5b813581811115612f1357612f13612ea4565b604051601f8201601f19908116603f01168101908382118183101715612f3b57612f3b612ea4565b81604052828152886020848701011115612f53575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f8060408385031215612f85575f80fd5b82359150612f9560208401612da4565b90509250929050565b5f8083601f840112612fae575f80fd5b50813567ffffffffffffffff811115612fc5575f80fd5b602083019150836020828501011115612fdc575f80fd5b9250929050565b5f805f805f805f60a0888a031215612ff9575f80fd5b61300288612da4565b965061301060208901612da4565b955061301e60408901612da4565b9450606088013567ffffffffffffffff8082111561303a575f80fd5b6130468b838c01612f9e565b909650945060808a013591508082111561305e575f80fd5b5061306b8a828b01612f9e565b989b979a50959850939692959293505050565b5f6020828403121561308e575f80fd5b813561ffff81168114610c80575f80fd5b5f80604083850312156130b0575f80fd5b6130b983612da4565b915060208301356001600160681b03811681146130d4575f80fd5b809150509250929050565b5f805f606084860312156130f1575f80fd5b6130fa84612da4565b92506020840135915061310f60408501612da4565b90509250925092565b5f805f6060848603121561312a575f80fd5b8335925061313a60208501612da4565b915061310f60408501612da4565b5f60208284031215613158575f80fd5b813562ffffff81168114610c80575f80fd5b5f806040838503121561317b575f80fd5b61318483612da4565b9150612f9560208401612da4565b5f602082840312156131a2575f80fd5b5051919050565b600181811c908216806131bd57607f821691505b6020821081036131db57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b60ff8181168382160190811115610b7e57610b7e6131e1565b8082028115828204841417610b7e57610b7e6131e1565b634e487b7160e01b5f52601260045260245ffd5b5f8261324757613247613225565b500490565b81810381811115610b7e57610b7e6131e1565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160681b038181168382160190808211156132a0576132a06131e1565b5092915050565b80820180821115610b7e57610b7e6131e1565b600181815b808511156132f457815f19048211156132da576132da6131e1565b808516156132e757918102915b93841c93908002906132bf565b509250929050565b5f8261330a57506001610b7e565b8161331657505f610b7e565b816001811461332c576002811461333657613352565b6001915050610b7e565b60ff841115613347576133476131e1565b50506001821b610b7e565b5060208310610133831016604e8410600b8410161715613375575081810a610b7e565b61337f83836132ba565b805f1904821115613392576133926131e1565b029392505050565b5f610c8060ff8416836132fc565b601f821115611700575f81815260208120601f850160051c810160208610156133ce5750805b601f850160051c820191505b818110156133ed578281556001016133da565b505050505050565b815167ffffffffffffffff81111561340f5761340f612ea4565b6134238161341d84546131a9565b846133a8565b602080601f831160018114613456575f841561343f5750858301515b5f19600386901b1c1916600185901b1785556133ed565b5f85815260208120601f198616915b8281101561348457888601518255948401946001909101908401613465565b50858210156134a157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156134c1575f80fd5b81518015158114610c80575f80fd5b634e487b7160e01b5f52602160045260245ffd5b5f60ff8316806134f6576134f6613225565b8060ff84160691505092915050565b5f8251613516818460208701612dd8565b919091019291505056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c6343000814000a
🤖 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.