ETH Price: $1,916.38 (-0.15%)
 

Overview

Max Total Supply

10,000,000 Merit

Holders

566

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
UI Multiplier changes (based on UIMultiplierUpdated event). Displayed token amounts are scaled by the active multiplier.
Transaction Hash Block
Age
Multiplier Status
Source Code Verified Exact Match

Contract Name

Merit

Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled
Yes with 200 runs
Other Settings
paris EvmVersion
License
None
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here

Contract Security Audit

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":[{"internalType":"address","name":"account","type":"address"}],"name":"CannotDepositNativeCoins","type":"error"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"CannotExceedMaxTotalFee","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":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[{"internalType":"address","name":"AMM","type":"address"}],"name":"InvalidAMM","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"maxAmount","type":"uint256"}],"name":"InvalidAmountToRecover","type":"error"},{"inputs":[{"internalType":"uint256","name":"gasForProcessing","type":"uint256"}],"name":"InvalidGasForProcessing","type":"error"},{"inputs":[{"internalType":"uint16","name":"swapThresholdRatio","type":"uint16"}],"name":"InvalidSwapThresholdRatio","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"InvalidTaxRecipientAddress","type":"error"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"InvalidToken","type":"error"},{"inputs":[],"name":"MintCannotExceedMaxSupply","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":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"TransactionBlacklisted","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"AMM","type":"address"},{"indexed":false,"internalType":"bool","name":"isAMM","type":"bool"}],"name":"AMMUpdated","type":"event"},{"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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dividendTracker","type":"address"}],"name":"DeployedDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"leftoverTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unaddedTokens","type":"uint256"}],"name":"ForceLiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gasForProcessing","type":"uint256"}],"name":"GasForProcessingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountCoin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"LiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"buyFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"sellFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"LiquidityFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"buyFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"sellFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"RewardsFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"routerV2","type":"address"}],"name":"RouterV2Updated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"swapThresholdRatio","type":"uint16"}],"name":"SwapThresholdUpdated","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":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"id","type":"uint8"},{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"WalletTaxAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"id","type":"uint8"},{"indexed":false,"internalType":"uint16","name":"buyFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"sellFee","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"WalletTaxFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"id","type":"uint8"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WalletTaxSent","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"AMMs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidityFromLeftoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"afterConstructor","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"callbackGas","type":"uint256"}],"name":"callbackGasSetup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"claimWait","type":"uint256"}],"name":"claimWaitSetup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"deploymentKey","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"dividendTokenBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendTokenTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendTracker","outputs":[{"internalType":"contract DividendTracker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gasForProcessing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGasForProcessing","type":"uint256"}],"name":"gasForProcessingSetup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getAccountDividendsInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"int256","name":"","type":"int256"},{"internalType":"int256","name":"","type":"int256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getAccountDividendsInfoAtIndex","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"int256","name":"","type":"int256"},{"internalType":"int256","name":"","type":"int256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllPending","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastProcessedIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumberOfDividendTokenHolders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSwapThresholdAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividendsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromDividends","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"liquidityFees","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_buyFee","type":"uint16"},{"internalType":"uint16","name":"_sellFee","type":"uint16"},{"internalType":"uint16","name":"_transferFee","type":"uint16"}],"name":"liquidityFeesSetup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"marketingAddressSetup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"marketingFees","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_buyFee","type":"uint16"},{"internalType":"uint16","name":"_sellFee","type":"uint16"},{"internalType":"uint16","name":"_transferFee","type":"uint16"}],"name":"marketingFeesSetup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","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":[],"name":"pairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"process","outputs":[{"internalType":"uint256","name":"iterations","type":"uint256"},{"internalType":"uint256","name":"claims","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverForeignERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardsFees","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_buyFee","type":"uint16"},{"internalType":"uint16","name":"_sellFee","type":"uint16"},{"internalType":"uint16","name":"_transferFee","type":"uint16"}],"name":"rewardsFeesSetup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerV2","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"AMM","type":"address"},{"internalType":"bool","name":"isAMM","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThresholdRatio","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalFees","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_swapThresholdRatio","type":"uint16"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"withdrawableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
608060405234801561001057600080fd5b506402540be400336040518060400160405280600581526020016413595c9a5d60da1b8152506040518060400160405280600581526020016413595c9a5d60da1b81525081600390816100639190611a03565b5060046100708282611a03565b5050506001600160a01b0381166100a257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100ab8161021c565b50600a6100b9601282611bbe565b6100c39083611bd4565b6100cd9190611beb565b600755506008805460ff19169055333b6100e657600080fd5b730a77a7081e2c9d3361cb734eaef0407ad28721676101056032610238565b61012273684761b833fdd3333e0d3c7f5621b5305773769e6102c5565b61012e6032808061035f565b61013a60328080610548565b61016c62015180600a61014e601282611bbe565b61015a90612710611bd4565b6101649190611beb565b6108fc6106df565b610178620493e0610779565b610184606480806107ea565b61018f816001610978565b61019a306001610978565b6008546101b69061010090046001600160a01b03166001610978565b6101c1816001610a19565b6101cc306001610a19565b6101f981600a6101dd601282611bbe565b6101ea90620f4240611bd4565b6101f49190611beb565b610a80565b610216730a77a7081e2c9d3361cb734eaef0407ad287216761021c565b50611d8d565b600680546001600160a01b031916905561023581610aba565b50565b610240610b0c565b61ffff8116158061025657506101f48161ffff16115b1561027a57604051631958d05f60e01b815261ffff82166004820152602401610099565b600c805461ffff191661ffff83169081179091556040519081527fcf1366790fe21e66c9df9dcf67218b1e10acd64d3c99ae8a7429a68de91f1720906020015b60405180910390a150565b6102cd610b0c565b6001600160a01b0381166102f75760405163ab11818760e01b815260006004820152602401610099565b601080546001600160a01b0319166001600160a01b03831617905561031d816001610a19565b6040516001600160a01b03821681526001907ff8e79c3705e6b93e151f4c2166fe019e81a78204037fb9913b261eeb877218d99060200160405180910390a250565b610367610b0c565b60115460155484916103809161ffff9182169116611c23565b61038a9190611c45565b6015805461ffff191661ffff928316179081905560115484926103ba926201000092839004821692900416611c23565b6103c49190611c45565b6015805463ffff000019166201000061ffff93841602179081905560115483926103fd9264010000000092839004821692900416611c23565b6104079190611c45565b6015805461ffff9283166401000000000261ffff60201b19821681179092556109c49083169190921617118061044b57506015546109c46201000090910461ffff16115b8061046657506015546109c464010000000090910461ffff16115b156104c757601560005b60108104919091015460155460405163b7b3de6f60e01b8152600f9093166002026101000a90910461ffff908116600484015262010000820481166024840152640100000000909104166044820152606401610099565b6040805160608101825261ffff808616825284811660208301528316918101919091526104f89060119060036118b3565b506040805161ffff8581168252848116602083015283168183015290516001917f5aa2b88de73e9b93e574fbaf914e53e45e2ba25f25692e6e0ba4e0d3c33f9d5a919081900360600190a2505050565b610550610b0c565b60125460155484916105699161ffff9182169116611c23565b6105739190611c45565b6015805461ffff191661ffff928316179081905560125484926105a3926201000092839004821692900416611c23565b6105ad9190611c45565b6015805463ffff000019166201000061ffff93841602179081905560125483926105e69264010000000092839004821692900416611c23565b6105f09190611c45565b6015805461ffff9283166401000000000261ffff60201b19821681179092556109c49083169190921617118061063457506015546109c46201000090910461ffff16115b8061064f57506015546109c464010000000090910461ffff16115b1561065d5760156000610470565b6040805160608101825261ffff8086168252848116602083015283169181019190915261068e9060129060036118b3565b506040805161ffff808616825280851660208301528316918101919091527f75384cd67dc8e71a4a1e50999e8d4c0bb12417b267a2b87e57a22123fde4ad82906060015b60405180910390a1505050565b8282826040516106ee90611949565b92835260208301919091526040820152606001604051809103906000f08015801561071d573d6000803e3d6000fd5b5060088054610100600160a81b0319166101006001600160a01b03938416810291909117918290556040519104909116907f5a9eee832e9ca9f7d2110f2cee781d010262c4c3d74b9f1e4ca1b8e3861a8d0190600090a2505050565b610781610b0c565b62030d4081108061079457506207a12081115b156107b55760405163074242a560e31b815260048101829052602401610099565b60098190556040518181527f1662a2324457a200b9556dfe949641639b99480ee6b448aefcfb97ee61ec2417906020016102ba565b6107f2610b0c565b601354601554849161080b9161ffff9182169116611c23565b6108159190611c45565b6015805461ffff191661ffff92831617908190556013548492610845926201000092839004821692900416611c23565b61084f9190611c45565b6015805463ffff000019166201000061ffff93841602179081905560135483926108889264010000000092839004821692900416611c23565b6108929190611c45565b6015805461ffff9283166401000000000261ffff60201b19821681179092556109c4908316919092161711806108d657506015546109c46201000090910461ffff16115b806108f157506015546109c464010000000090910461ffff16115b156108ff5760156000610470565b6040805160608101825261ffff808616825284811660208301528316918101919091526109309060139060036118b3565b506040805161ffff808616825280851660208301528316918101919091527f3ec8f17d924721910a043bef5d818361423756fcd3cc52e2c46a1139acbb7692906060016106d2565b60085461010090046001600160a01b031663d1fbb84e836109ae816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015283151560448201526064015b600060405180830381600087803b1580156109fd57600080fd5b505af1158015610a11573d6000803e3d6000fd5b505050505050565b610a21610b0c565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216610aaa5760405163ec442f0560e01b815260006004820152602401610099565b610ab660008383610b3b565b5050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314610b395760405163118cdaa760e01b8152336004820152602401610099565b565b610b468383836112ee565b6001600160a01b03831615801590610b6657506001600160a01b03821615155b156111135760165460ff16158015610b7e5750600081115b8015610ba357506001600160a01b03831660009081526014602052604090205460ff16155b8015610bc857506001600160a01b03821660009081526014602052604090205460ff16155b15610f20576001600160a01b03831660009081526018602052604081205460039060ff168015610c1157506001600160a01b03841660009081526018602052604090205460ff16155b15610c2b5760155461ffff1615610c26575060005b610cea565b6001600160a01b03841660009081526018602052604090205460ff168015610c6c57506001600160a01b03851660009081526018602052604090205460ff16155b15610c8b5760155462010000900461ffff1615610c2657506001610cea565b6001600160a01b03851660009081526018602052604090205460ff16158015610ccd57506001600160a01b03841660009081526018602052604090205460ff16155b15610cea57601554640100000000900461ffff1615610cea575060025b60038160ff161015610f0c5761271060158260ff1660038110610d0f57610d0f611c0d565b601091828204019190066002029054906101000a900461ffff1661ffff1684610d389190611bd4565b610d429190611beb565b9150610d4e8284611c60565b925060158160ff1660038110610d6657610d66611c0d565b601091828204019190066002029054906101000a900461ffff1661ffff1660118260ff1660038110610d9a57610d9a611c0d565b601091828204019190066002029054906101000a900461ffff1661ffff1683610dc39190611bd4565b610dcd9190611beb565b600d6000828254610dde9190611c73565b909155506015905060ff821660038110610dfa57610dfa611c0d565b601091828204019190066002029054906101000a900461ffff1661ffff1660128260ff1660038110610e2e57610e2e611c0d565b601091828204019190066002029054906101000a900461ffff1661ffff1683610e579190611bd4565b610e619190611beb565b600e6000828254610e729190611c73565b909155506015905060ff821660038110610e8e57610e8e611c0d565b601091828204019190066002029054906101000a900461ffff1661ffff1660138260ff1660038110610ec257610ec2611c0d565b601091828204019190066002029054906101000a900461ffff1661ffff1683610eeb9190611bd4565b610ef59190611beb565b600f6000828254610f069190611c73565b90915550505b8115610f1d57610f1d853084611366565b50505b6000610f2a611490565b610f326114d1565b10158015610f5857506017546001600160a01b0316600090815260208190526040812054115b60165490915060ff16158015610f7c57506017546001600160a01b03858116911614155b8015610f9b57506016546001600160a01b038581166101009092041614155b8015610fa45750805b15611111576016805460ff191660011790556000600d5411156110bb576000600d546000610fd29190611c73565b90506000610fdf826114fc565b600d5447906000908490610ff39084611bd4565b610ffd9190611beb565b905080156110b1576010546040516001600160a01b0390911690614e209083906000818181858888f193505050503d8060008114611057576040519150601f19603f3d011682016040523d82523d6000602084013e61105c565b606091505b509093505082156110b157601054604080516001600160a01b039092168252602082018390526001917f4b1a0df20e469b24231f59741640137b104320272da39777bdf2800ac99de1e0910160405180910390a25b50506000600d5550505b600e54156110d657600e546110cf90611628565b506000600e555b6000600f541180156110ef575060006110ed6116cb565b115b1561110657600f5461110090611744565b6000600f555b6016805460ff191690555b505b61111e838383611366565b6001600160a01b038316156111c25760085461010090046001600160a01b031663e30443bc84611163816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156111a957600080fd5b505af11580156111bd573d6000803e3d6000fd5b505050505b6001600160a01b038216156112665760085461010090046001600160a01b031663e30443bc83611207816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561124d57600080fd5b505af1158015611261573d6000803e3d6000fd5b505050505b60165460ff166112e9576008546009546040516001624d3b8760e01b0319815260048101919091526101009091046001600160a01b03169063ffb2c4799060240160408051808303816000875af19250505080156112e1575060408051601f3d908101601f191682019092526112de91810190611c86565b60015b156112e95750505b505050565b6112f66117e5565b6001600160a01b0383166000908152600b602052604090205460ff168061133557506001600160a01b0382166000908152600b602052604090205460ff165b156112e957604051632cc8702b60e01b81526001600160a01b03808516600483015283166024820152604401610099565b6001600160a01b0383166113915780600260008282546113869190611c73565b909155506114039050565b6001600160a01b038316600090815260208190526040902054818110156113e45760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610099565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661141f5760028054829003905561143e565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161148391815260200190565b60405180910390a3505050565b600c546017546001600160a01b03166000908152602081905260408120549091612710916114c29161ffff1690611bd4565b6114cc9190611beb565b905090565b6000600f54600e54600d5460006114e89190611c73565b6114f29190611c73565b6114cc9190611c73565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061153157611531611c0d565b60200260200101906001600160a01b031690816001600160a01b031681525050601660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c89190611caa565b816001815181106115db576115db611c0d565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81526101009091049091169063791ac947906109e3908590600090869030904290600401611cd3565b600080611636600284611beb565b905060006116448285611c60565b905061164f826114fc565b4780156116c357600080806116648585611809565b604080518481526020810184905290810182905292955090935091507fd7f28048575eead8851d024ead087913957dfb4fd1a02b4d1573f5352a5a2be39060600160405180910390a16116b78386611c60565b98975050505050505050565b509392505050565b6000600860019054906101000a90046001600160a01b03166001600160a01b03166309bbedde6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611720573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cc9190611d46565b61174d816114fc565b478015610ab65760085460405160009161010090046001600160a01b03169083908381818185875af1925050503d80600081146117a6576040519150601f19603f3d011682016040523d82523d6000602084013e6117ab565b606091505b5050905080156112e9576040518281527f1e8f03f716bc104bf7d728131967a0c771e85ab54d09c1e2d6ed9e0bc4e2a16c906020016106d2565b60085460ff1615610b395760405163d93c066560e01b815260040160405180910390fd5b60165460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905261dead60848301524260a4830152918291829161010090046001600160a01b03169063f305d71990869060c40160606040518083038185885af1158015611881573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118a69190611d5f565b9250925092509250925092565b6001830191839082156119395791602002820160005b8382111561190957835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026118c9565b80156119375782816101000a81549061ffff0219169055600201602081600101049283019260010302611909565b505b50611945929150611956565b5090565b611b498061568683390190565b5b808211156119455760008155600101611957565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061199557607f821691505b6020821081036119b557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156112e9576000816000526020600020601f850160051c810160208610156119e45750805b601f850160051c820191505b81811015610a11578281556001016119f0565b81516001600160401b03811115611a1c57611a1c61196b565b611a3081611a2a8454611981565b846119bb565b602080601f831160018114611a655760008415611a4d5750858301515b600019600386901b1c1916600185901b178555610a11565b600085815260208120601f198616915b82811015611a9457888601518255948401946001909101908401611a75565b5085821015611ab25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b13578160001904821115611af957611af9611ac2565b80851615611b0657918102915b93841c9390800290611add565b509250929050565b600082611b2a57506001611bb8565b81611b3757506000611bb8565b8160018114611b4d5760028114611b5757611b73565b6001915050611bb8565b60ff841115611b6857611b68611ac2565b50506001821b611bb8565b5060208310610133831016604e8410600b8410161715611b96575081810a611bb8565b611ba08383611ad8565b8060001904821115611bb457611bb4611ac2565b0290505b92915050565b6000611bcd60ff841683611b1b565b9392505050565b8082028115828204841417611bb857611bb8611ac2565b600082611c0857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b61ffff828116828216039080821115611c3e57611c3e611ac2565b5092915050565b61ffff818116838216019080821115611c3e57611c3e611ac2565b81810381811115611bb857611bb8611ac2565b80820180821115611bb857611bb8611ac2565b60008060408385031215611c9957600080fd5b505080516020909101519092909150565b600060208284031215611cbc57600080fd5b81516001600160a01b0381168114611bcd57600080fd5b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b81811015611d255784516001600160a01b031683529383019391830191600101611d00565b50506001600160a01b03969096166060850152505050608001529392505050565b600060208284031215611d5857600080fd5b5051919050565b600080600060608486031215611d7457600080fd5b8351925060208401519150604084015190509250925092565b6138ea80611d9c6000396000f3fe6080604052600436106103d25760003560e01c806379cc6790116101fd578063c024666811610118578063dd62ed3e116100ab578063e7841ec01161007a578063e7841ec014610be5578063f112ba7214610bfa578063f27fd25414610c0f578063f2fde38b14610c2f578063ffb2c47914610c4f57600080fd5b8063dd62ed3e14610b41578063e30c397814610b87578063e626815814610ba5578063e73b17d014610bc557600080fd5b8063d0edc536116100e7578063d0edc53614610ab3578063d5abeb0114610ae6578063d947752614610afc578063dbac26e914610b1157600080fd5b8063c024666814610a33578063c400f5e714610a53578063c705c56914610a73578063cb1a233d14610a9357600080fd5b80639c1b8af511610190578063a8b9d2401161015f578063a8b9d2401461096e578063a9059cbb1461098e578063a9d3cd8a146109ae578063ad56c13c146109ce57600080fd5b80639c1b8af514610903578063a26579ad14610919578063a5ece9411461092e578063a6ddc4251461094e57600080fd5b80638e749a8f116101cc5780638e749a8f1461088e5780638fffabed146108ae57806395d89b41146108ce578063966b53c4146108e357600080fd5b806379cc67901461081b5780638062651a1461083b5780638456cb591461085b5780638da5cb5b1461087057600080fd5b8063404e5129116102ed578063502f7446116102805780636cc9c8f11161024f5780636cc9c8f1146107b157806370a08231146107d1578063715018a6146107f157806379ba50971461080657600080fd5b8063502f74461461073f5780635c975abb1461076457806364b0f6531461077c5780636843cd841461079157600080fd5b80634a4dd9cd116102bc5780634a4dd9cd146106bf5780634e71d92d146106df5780634f011b83146106f45780634fbee1931461070f57600080fd5b8063404e51291461062c578063408ccbdf1461064c57806340c10f191461067f57806342966c681461069f57600080fd5b806323b872dd1161036557806330bb4cff1161033457806330bb4cff146105c6578063313ce567146105db578063393881a8146105f75780633f4ba83a1461061757600080fd5b806323b872dd14610534578063294aad9c146105545780632c1f5216146105695780632f267e29146105a657600080fd5b806318533a0d116103a157806318533a0d146104af5780631a0e718c146104cf5780631af3c61d146104ef5780631e9fe6c61461050457600080fd5b80630483f7a01461041557806306fdde0314610435578063095ea7b31461046057806318160ddd1461049057600080fd5b366104105760165461010090046001600160a01b0316331461040e5760405163ba6875cd60e01b81523360048201526024015b60405180910390fd5b005b600080fd5b34801561042157600080fd5b5061040e610430366004613467565b610c84565b34801561044157600080fd5b5061044a610c9a565b60405161045791906134c4565b60405180910390f35b34801561046c57600080fd5b5061048061047b3660046134f7565b610d2c565b6040519015158152602001610457565b34801561049c57600080fd5b506002545b604051908152602001610457565b3480156104bb57600080fd5b5061040e6104ca366004613523565b610d46565b3480156104db57600080fd5b5061040e6104ea366004613557565b610e02565b3480156104fb57600080fd5b5061040e610e8f565b34801561051057600080fd5b5061048061051f366004613523565b60186020526000908152604090205460ff1681565b34801561054057600080fd5b5061048061054f366004613572565b610ef9565b34801561056057600080fd5b506104a1610f1f565b34801561057557600080fd5b5060085461058e9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610457565b3480156105b257600080fd5b5061040e6105c13660046135b3565b610f9d565b3480156105d257600080fd5b506104a161100e565b3480156105e757600080fd5b5060405160128152602001610457565b34801561060357600080fd5b5061040e6106123660046135b3565b611063565b34801561062357600080fd5b5061040e6110d1565b34801561063857600080fd5b5061040e610647366004613467565b6110e3565b34801561065857600080fd5b5061066c6106673660046135b3565b61114b565b60405161ffff9091168152602001610457565b34801561068b57600080fd5b5061040e61069a3660046134f7565b611179565b3480156106ab57600080fd5b5061040e6106ba3660046135b3565b6111c1565b3480156106cb57600080fd5b5061040e6106da3660046135cc565b6111ce565b3480156106eb57600080fd5b506104806113b4565b34801561070057600080fd5b50600c5461066c9061ffff1681565b34801561071b57600080fd5b5061048061072a366004613523565b60146020526000908152604090205460ff1681565b34801561074b57600080fd5b5060165461058e9061010090046001600160a01b031681565b34801561077057600080fd5b5060085460ff16610480565b34801561078857600080fd5b506104a161142f565b34801561079d57600080fd5b506104a16107ac366004613523565b611484565b3480156107bd57600080fd5b5061040e6107cc3660046135b3565b6114f9565b3480156107dd57600080fd5b506104a16107ec366004613523565b611536565b3480156107fd57600080fd5b5061040e611551565b34801561081257600080fd5b5061040e611563565b34801561082757600080fd5b5061040e6108363660046134f7565b6115a4565b34801561084757600080fd5b5061040e6108563660046135cc565b6115b9565b34801561086757600080fd5b5061040e61174e565b34801561087c57600080fd5b506005546001600160a01b031661058e565b34801561089a57600080fd5b5061066c6108a93660046135b3565b61175e565b3480156108ba57600080fd5b5060175461058e906001600160a01b031681565b3480156108da57600080fd5b5061044a61176e565b3480156108ef57600080fd5b5061066c6108fe3660046135b3565b61177d565b34801561090f57600080fd5b506104a160095481565b34801561092557600080fd5b506104a161178d565b34801561093a57600080fd5b5060105461058e906001600160a01b031681565b34801561095a57600080fd5b5061066c6109693660046135b3565b6117e2565b34801561097a57600080fd5b506104a1610989366004613523565b6117f2565b34801561099a57600080fd5b506104806109a93660046134f7565b61182a565b3480156109ba57600080fd5b5061040e6109c9366004613467565b611838565b3480156109da57600080fd5b506109ee6109e9366004613523565b6118a1565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610457565b348015610a3f57600080fd5b5061040e610a4e366004613467565b611943565b348015610a5f57600080fd5b5061040e610a6e366004613523565b6119a3565b348015610a7f57600080fd5b50610480610a8e366004613523565b611a3d565b348015610a9f57600080fd5b5061040e610aae3660046135b3565b611ab1565b348015610abf57600080fd5b507f4aa807ca5a6afc62ffb8aca42edefc6a3ebef533b3e7efa5b55feaaa243d69936104a1565b348015610af257600080fd5b506104a160075481565b348015610b0857600080fd5b506104a1611b0e565b348015610b1d57600080fd5b50610480610b2c366004613523565b600b6020526000908152604090205460ff1681565b348015610b4d57600080fd5b506104a1610b5c36600461360f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610b9357600080fd5b506006546001600160a01b031661058e565b348015610bb157600080fd5b5061040e610bc03660046135cc565b611b48565b348015610bd157600080fd5b5061040e610be03660046134f7565b611cd4565b348015610bf157600080fd5b506104a1611d24565b348015610c0657600080fd5b506104a1611d79565b348015610c1b57600080fd5b506109ee610c2a3660046135b3565b611da4565b348015610c3b57600080fd5b5061040e610c4a366004613523565b611df3565b348015610c5b57600080fd5b50610c6f610c6a3660046135b3565b611e64565b60408051928352602083019190915201610457565b610c8c611ee7565b610c968282611f14565b5050565b606060038054610ca99061363d565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd59061363d565b8015610d225780601f10610cf757610100808354040283529160200191610d22565b820191906000526020600020905b815481529060010190602001808311610d0557829003601f168201915b5050505050905090565b600033610d3a818585611f9f565b60019150505b92915050565b600a54610100900460ff1680610d5f5750600a5460ff16155b610dc25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610405565b600a54610100900460ff16158015610de457600a805461ffff19166101011790555b610ded82611fb1565b8015610c9657600a805461ff00191690555050565b610e0a611ee7565b61ffff81161580610e2057506101f48161ffff16115b15610e4457604051631958d05f60e01b815261ffff82166004820152602401610405565b600c805461ffff191661ffff83169081179091556040519081527fcf1366790fe21e66c9df9dcf67218b1e10acd64d3c99ae8a7429a68de91f1720906020015b60405180910390a150565b6000610e99611d79565b610ea230611536565b610eac919061368d565b90506000610eb9826121cc565b60408051848152602081018390529192507f5c3340567bf85cd43734028361fe821eac789fbe397b8d1a4f9ebb3ab4c81ef7910160405180910390a15050565b600033610f07858285612270565b610f128585856122ee565b60019150505b9392505050565b6000600860019054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9891906136a0565b905090565b610fa5611ee7565b62030d40811080610fb857506207a12081115b15610fd95760405163074242a560e31b815260048101829052602401610405565b60098190556040518181527f1662a2324457a200b9556dfe949641639b99480ee6b448aefcfb97ee61ec241790602001610e84565b6000600860019054906101000a90046001600160a01b03166001600160a01b03166385a6b3ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b61106b611ee7565b600854604051630727103560e31b8152600481018390526101009091046001600160a01b03169063393881a8906024015b600060405180830381600087803b1580156110b657600080fd5b505af11580156110ca573d6000803e3d6000fd5b5050505050565b6110d9611ee7565b6110e161234d565b565b6110eb611ee7565b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915591519182527f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac91015b60405180910390a25050565b6015816003811061115b57600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b611181611ee7565b6007548161118e60025490565b61119891906136b9565b11156111b7576040516316a5e6f760e31b815260040160405180910390fd5b610c96828261239f565b6111cb33826123d5565b50565b6111d6611ee7565b60115460155484916111ef9161ffff91821691166136e2565b6111f99190613704565b6015805461ffff191661ffff928316179081905560115484926112299262010000928390048216929004166136e2565b6112339190613704565b6015805463ffff000019166201000061ffff938416021790819055601154839261126b92600160201b928390048216929004166136e2565b6112759190613704565b6015805461ffff928316600160201b0265ffff0000000019821681179092556109c4908316919092161711806112b957506015546109c46201000090910461ffff16115b806112d357506015546109c4600160201b90910461ffff16115b1561133357601560005b60108104919091015460155460405163b7b3de6f60e01b8152600f9093166002026101000a90910461ffff908116600484015262010000820481166024840152600160201b909104166044820152606401610405565b6040805160608101825261ffff80861682528481166020830152831691810191909152611364906011906003613399565b506040805161ffff8581168252848116602083015283168183015290516001917f5aa2b88de73e9b93e574fbaf914e53e45e2ba25f25692e6e0ba4e0d3c33f9d5a919081900360600190a2505050565b6008546040516392fd2daf60e01b81523360048201526000602482018190529161010090046001600160a01b0316906392fd2daf906044016020604051808303816000875af115801561140b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061371f565b6000600860019054906101000a90046001600160a01b03166001600160a01b03166309bbedde6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b6008546040516370a0823160e01b81526001600160a01b038381166004830152600092610100900416906370a08231906024015b602060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4091906136a0565b611501611ee7565b600854604051636cc9c8f160e01b8152600481018390526101009091046001600160a01b031690636cc9c8f19060240161109c565b6001600160a01b031660009081526020819052604090205490565b611559611ee7565b6110e1600061240b565b60065433906001600160a01b0316811461159b5760405163118cdaa760e01b81526001600160a01b0382166004820152602401610405565b6111cb8161240b565b6115af823383612270565b610c9682826123d5565b6115c1611ee7565b60135460155484916115da9161ffff91821691166136e2565b6115e49190613704565b6015805461ffff191661ffff928316179081905560135484926116149262010000928390048216929004166136e2565b61161e9190613704565b6015805463ffff000019166201000061ffff938416021790819055601354839261165692600160201b928390048216929004166136e2565b6116609190613704565b6015805461ffff928316600160201b0265ffff0000000019821681179092556109c4908316919092161711806116a457506015546109c46201000090910461ffff16115b806116be57506015546109c4600160201b90910461ffff16115b156116cc57601560006112dd565b6040805160608101825261ffff808616825284811660208301528316918101919091526116fd906013906003613399565b506040805161ffff808616825280851660208301528316918101919091527f3ec8f17d924721910a043bef5d818361423756fcd3cc52e2c46a1139acbb7692906060015b60405180910390a1505050565b611756611ee7565b6110e1612424565b6011816003811061115b57600080fd5b606060048054610ca99061363d565b6012816003811061115b57600080fd5b6000600860019054906101000a90046001600160a01b03166001600160a01b0316636f2789ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b6013816003811061115b57600080fd5b6008546040516302a2e74960e61b81526001600160a01b0383811660048301526000926101009004169063a8b9d240906024016114b8565b600033610d3a8185856122ee565b611840611ee7565b6017546001600160a01b038381169116148061186e57506016546001600160a01b0383811661010090920416145b156118975760405163435eaf7b60e11b81526001600160a01b0383166004820152602401610405565b610c968282612461565b600854604051632ebc328760e11b81526001600160a01b038381166004830152600092839283928392839283928392839261010090910490911690635d78650e906024015b61010060405180830381865afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611928919061373c565b97509750975097509750975097509750919395975091939597565b61194b611ee7565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910161113f565b6119ab611ee7565b6001600160a01b0381166119d55760405163ab11818760e01b815260006004820152602401610405565b601080546001600160a01b0319166001600160a01b0383161790556119fb816001611943565b6040516001600160a01b03821681526001907ff8e79c3705e6b93e151f4c2166fe019e81a78204037fb9913b261eeb877218d99060200160405180910390a250565b60085460405163c705c56960e01b81526001600160a01b0383811660048301526000926101009004169063c705c56990602401602060405180830381865afa158015611a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d40919061371f565b611ab9611ee7565b6000611ac3611d79565b611acc30611536565b611ad6919061368d565b905080821115611b0357604051634d2e924b60e01b81526004810183905260248101829052604401610405565b610c963033846124d6565b600c546017546000916127109161ffff90911690611b34906001600160a01b0316611536565b611b3e91906137a6565b610f9891906137bd565b611b50611ee7565b6012546015548491611b699161ffff91821691166136e2565b611b739190613704565b6015805461ffff191661ffff92831617908190556012548492611ba39262010000928390048216929004166136e2565b611bad9190613704565b6015805463ffff000019166201000061ffff9384160217908190556012548392611be592600160201b928390048216929004166136e2565b611bef9190613704565b6015805461ffff928316600160201b0265ffff0000000019821681179092556109c490831691909216171180611c3357506015546109c46201000090910461ffff16115b80611c4d57506015546109c4600160201b90910461ffff16115b15611c5b57601560006112dd565b6040805160608101825261ffff80861682528481166020830152831691810191909152611c8c906012906003613399565b506040805161ffff808616825280851660208301528316918101919091527f75384cd67dc8e71a4a1e50999e8d4c0bb12417b267a2b87e57a22123fde4ad8290606001611741565b611cdc611ee7565b306001600160a01b03831603611d105760405163961c9a4f60e01b81526001600160a01b0383166004820152602401610405565b610c966001600160a01b0383163383612c56565b6000600860019054906101000a90046001600160a01b03166001600160a01b0316633009a6096040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b6000600f54600e54600d546000611d9091906136b9565b611d9a91906136b9565b610f9891906136b9565b600080600080600080600080600860019054906101000a90046001600160a01b03166001600160a01b0316632f7541e98a6040518263ffffffff1660e01b81526004016118e691815260200190565b611dfb611ee7565b600680546001600160a01b0383166001600160a01b03199091168117909155611e2c6005546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6008546040516001624d3b8760e01b031981526004810183905260009182916101009091046001600160a01b03169063ffb2c4799060240160408051808303816000875af1158015611eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ede91906137df565b91509150915091565b6005546001600160a01b031633146110e15760405163118cdaa760e01b8152336004820152602401610405565b60085461010090046001600160a01b031663d1fbb84e83611f3481611536565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015283151560448201526064015b600060405180830381600087803b158015611f8357600080fd5b505af1158015611f97573d6000803e3d6000fd5b505050505050565b611fac8383836001612ca8565b505050565b80601660016101000a8154816001600160a01b0302191690836001600160a01b03160217905550601660019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204f9190613803565b6001600160a01b031663c9c6539630601660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d59190613803565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612122573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121469190613803565b601780546001600160a01b0319166001600160a01b03929092169190911790556121733082600019611f9f565b61217e816001612461565b601754612195906001600160a01b03166001612461565b6040516001600160a01b038216907fbc052db65df144ad4f71f02da93cae3d4401104c30ac374d7cc10d87ee07b60290600090a250565b6000806121da6002846137bd565b905060006121e8828561368d565b90506121f382612d7d565b4780156122685760008060006122098585612ea9565b604080518481526020810184905290810182905292955090935091507fd7f28048575eead8851d024ead087913957dfb4fd1a02b4d1573f5352a5a2be39060600160405180910390a161225c838661368d565b98975050505050505050565b509392505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146122e857818110156122d957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610405565b6122e884848484036000612ca8565b50505050565b6001600160a01b03831661231857604051634b637e8f60e11b815260006004820152602401610405565b6001600160a01b0382166123425760405163ec442f0560e01b815260006004820152602401610405565b611fac8383836124d6565b612355612f53565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166123c95760405163ec442f0560e01b815260006004820152602401610405565b610c96600083836124d6565b6001600160a01b0382166123ff57604051634b637e8f60e11b815260006004820152602401610405565b610c96826000836124d6565b600680546001600160a01b03191690556111cb81612f76565b61242c612fc8565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123823390565b6001600160a01b0382166000908152601860205260409020805460ff1916821580159190911790915561249957612499826001611f14565b816001600160a01b03167f2cc8631dda80fe178488d3174721fafacf84b0f194a7eddae85c9bcc599ac78b8260405161113f911515815260200190565b6124e1838383612fec565b6001600160a01b0383161580159061250157506001600160a01b03821615155b15612aa85760165460ff161580156125195750600081115b801561253e57506001600160a01b03831660009081526014602052604090205460ff16155b801561256357506001600160a01b03821660009081526014602052604090205460ff16155b156128ba576001600160a01b03831660009081526018602052604081205460039060ff1680156125ac57506001600160a01b03841660009081526018602052604090205460ff16155b156125c65760155461ffff16156125c1575060005b612684565b6001600160a01b03841660009081526018602052604090205460ff16801561260757506001600160a01b03851660009081526018602052604090205460ff16155b156126265760155462010000900461ffff16156125c157506001612684565b6001600160a01b03851660009081526018602052604090205460ff1615801561266857506001600160a01b03841660009081526018602052604090205460ff16155b1561268457601554600160201b900461ffff1615612684575060025b60038160ff1610156128a65761271060158260ff16600381106126a9576126a96136cc565b601091828204019190066002029054906101000a900461ffff1661ffff16846126d291906137a6565b6126dc91906137bd565b91506126e8828461368d565b925060158160ff1660038110612700576127006136cc565b601091828204019190066002029054906101000a900461ffff1661ffff1660118260ff1660038110612734576127346136cc565b601091828204019190066002029054906101000a900461ffff1661ffff168361275d91906137a6565b61276791906137bd565b600d600082825461277891906136b9565b909155506015905060ff821660038110612794576127946136cc565b601091828204019190066002029054906101000a900461ffff1661ffff1660128260ff16600381106127c8576127c86136cc565b601091828204019190066002029054906101000a900461ffff1661ffff16836127f191906137a6565b6127fb91906137bd565b600e600082825461280c91906136b9565b909155506015905060ff821660038110612828576128286136cc565b601091828204019190066002029054906101000a900461ffff1661ffff1660138260ff166003811061285c5761285c6136cc565b601091828204019190066002029054906101000a900461ffff1661ffff168361288591906137a6565b61288f91906137bd565b600f60008282546128a091906136b9565b90915550505b81156128b7576128b7853084613064565b50505b60006128c4611b0e565b6128cc611d79565b101580156128ef57506017546000906128ed906001600160a01b0316611536565b115b60165490915060ff1615801561291357506017546001600160a01b03858116911614155b801561293257506016546001600160a01b038581166101009092041614155b801561293b5750805b15612aa6576016805460ff191660011790556000600d541115612a52576000600d54600061296991906136b9565b9050600061297682612d7d565b600d544790600090849061298a90846137a6565b61299491906137bd565b90508015612a48576010546040516001600160a01b0390911690614e209083906000818181858888f193505050503d80600081146129ee576040519150601f19603f3d011682016040523d82523d6000602084013e6129f3565b606091505b50909350508215612a4857601054604080516001600160a01b039092168252602082018390526001917f4b1a0df20e469b24231f59741640137b104320272da39777bdf2800ac99de1e0910160405180910390a25b50506000600d5550505b600e5415612a6c57612a65600e546121cc565b506000600e555b6000600f54118015612a8557506000612a8361142f565b115b15612a9b57612a95600f5461318e565b6000600f555b6016805460ff191690555b505b612ab3838383613064565b6001600160a01b03831615612b415760085461010090046001600160a01b031663e30443bc84612ae281611536565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015612b2857600080fd5b505af1158015612b3c573d6000803e3d6000fd5b505050505b6001600160a01b03821615612bcf5760085461010090046001600160a01b031663e30443bc83612b7081611536565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015612bb657600080fd5b505af1158015612bca573d6000803e3d6000fd5b505050505b60165460ff16611fac576008546009546040516001624d3b8760e01b0319815260048101919091526101009091046001600160a01b03169063ffb2c4799060240160408051808303816000875af1925050508015612c4a575060408051601f3d908101601f19168201909252612c47918101906137df565b60015b15611fac575050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611fac90849061322f565b6001600160a01b038416612cd25760405163e602df0560e01b815260006004820152602401610405565b6001600160a01b038316612cfc57604051634a1406b160e11b815260006004820152602401610405565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156122e857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051612d6f91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612db257612db26136cc565b60200260200101906001600160a01b031690816001600160a01b031681525050601660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e499190613803565b81600181518110612e5c57612e5c6136cc565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81526101009091049091169063791ac94790611f69908590600090869030904290600401613820565b60165460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905261dead60848301524260a4830152918291829161010090046001600160a01b03169063f305d71990869060c40160606040518083038185885af1158015612f21573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f469190613893565b9250925092509250925092565b60085460ff166110e157604051638dfc202b60e01b815260040160405180910390fd5b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60085460ff16156110e15760405163d93c066560e01b815260040160405180910390fd5b612ff4612fc8565b6001600160a01b0383166000908152600b602052604090205460ff168061303357506001600160a01b0382166000908152600b602052604090205460ff165b15611fac57604051632cc8702b60e01b81526001600160a01b03808516600483015283166024820152604401610405565b6001600160a01b03831661308f57806002600082825461308491906136b9565b909155506131019050565b6001600160a01b038316600090815260208190526040902054818110156130e25760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610405565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661311d5760028054829003905561313c565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161318191815260200190565b60405180910390a3505050565b61319781612d7d565b478015610c965760085460405160009161010090046001600160a01b03169083908381818185875af1925050503d80600081146131f0576040519150601f19603f3d011682016040523d82523d6000602084013e6131f5565b606091505b505090508015611fac576040518281527f1e8f03f716bc104bf7d728131967a0c771e85ab54d09c1e2d6ed9e0bc4e2a16c90602001611741565b60006132446001600160a01b03841683613292565b90508051600014158015613269575080806020019051810190613267919061371f565b155b15611fac57604051635274afe760e01b81526001600160a01b0384166004820152602401610405565b6060610f188383600084600080856001600160a01b031684866040516132b891906138c1565b60006040518083038185875af1925050503d80600081146132f5576040519150601f19603f3d011682016040523d82523d6000602084013e6132fa565b606091505b509150915061330a868383613314565b9695505050505050565b6060826133295761332482613370565b610f18565b815115801561334057506001600160a01b0384163b155b1561336957604051639996b31560e01b81526001600160a01b0385166004820152602401610405565b5080610f18565b8051156133805780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60018301918390821561341f5791602002820160005b838211156133ef57835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026133af565b801561341d5782816101000a81549061ffff02191690556002016020816001010492830192600103026133ef565b505b5061342b92915061342f565b5090565b5b8082111561342b5760008155600101613430565b6001600160a01b03811681146111cb57600080fd5b80151581146111cb57600080fd5b6000806040838503121561347a57600080fd5b823561348581613444565b9150602083013561349581613459565b809150509250929050565b60005b838110156134bb5781810151838201526020016134a3565b50506000910152565b60208152600082518060208401526134e38160408501602087016134a0565b601f01601f19169190910160400192915050565b6000806040838503121561350a57600080fd5b823561351581613444565b946020939093013593505050565b60006020828403121561353557600080fd5b8135610f1881613444565b803561ffff8116811461355257600080fd5b919050565b60006020828403121561356957600080fd5b610f1882613540565b60008060006060848603121561358757600080fd5b833561359281613444565b925060208401356135a281613444565b929592945050506040919091013590565b6000602082840312156135c557600080fd5b5035919050565b6000806000606084860312156135e157600080fd5b6135ea84613540565b92506135f860208501613540565b915061360660408501613540565b90509250925092565b6000806040838503121561362257600080fd5b823561362d81613444565b9150602083013561349581613444565b600181811c9082168061365157607f821691505b60208210810361367157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4057610d40613677565b6000602082840312156136b257600080fd5b5051919050565b80820180821115610d4057610d40613677565b634e487b7160e01b600052603260045260246000fd5b61ffff8281168282160390808211156136fd576136fd613677565b5092915050565b61ffff8181168382160190808211156136fd576136fd613677565b60006020828403121561373157600080fd5b8151610f1881613459565b600080600080600080600080610100898b03121561375957600080fd5b885161376481613444565b809850506020890151965060408901519550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b8082028115828204841417610d4057610d40613677565b6000826137da57634e487b7160e01b600052601260045260246000fd5b500490565b600080604083850312156137f257600080fd5b505080516020909101519092909150565b60006020828403121561381557600080fd5b8151610f1881613444565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156138725784516001600160a01b03168352938301939183019160010161384d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156138a857600080fd5b8351925060208401519150604084015190509250925092565b600082516138d38184602087016134a0565b919091019291505056fea164736f6c6343000819000a608060405234801561001057600080fd5b50604051611b49380380611b4983398101604081905261002f9161023f565b604080518082018252600f8082526e2234bb34b232b7322a3930b1b5b2b960891b6020808401829052845180860190955291845290830152908181338061009157604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61009a816100db565b5060036100a7838261030e565b5060046100b4828261030e565b50505050506100c88361012b60201b60201c565b6100d1816101a1565b50601255506103cd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610133610210565b603c811080610144575062093a8081115b1561016557604051639a60673160e01b815260048101829052602401610088565b60118190556040518181527f4b0a6b82d0dc4407b3359033a4f27efd1e2105e4571b72d6a3b8f1da3e6079dd906020015b60405180910390a150565b6101a9610210565b6108fc8110806101ba575061271081115b156101db57604051631030c0f760e11b815260048101829052602401610088565b60098190556040518181527fb1b0d1662f1613cc48bbdf25be1c8f7ba4cb61de464f286bc2d596f626b883d590602001610196565b6000546001600160a01b0316331461023d5760405163118cdaa760e01b8152336004820152602401610088565b565b60008060006060848603121561025457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061029757607f821691505b6020821081036102b757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610309576000816000526020600020601f850160051c810160208610156102e65750805b601f850160051c820191505b81811015610305578281556001016102f2565b5050505b505050565b81516001600160401b038111156103275761032761026d565b61033b816103358454610283565b846102bd565b602080601f83116001811461037057600084156103585750858301515b600019600386901b1c1916600185901b178555610305565b600085815260208120601f198616915b8281101561039f57888601518255948401946001909101908401610380565b50858210156103bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61176d806103dc6000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063a8b9d24011610095578063d1fbb84e11610064578063d1fbb84e1461053b578063e30443bc1461055b578063f2fde38b1461057b578063ffb2c4791461059b57600080fd5b8063a8b9d2401461049f578063aafd847a146104bf578063be10b614146104f5578063c705c5691461050b57600080fd5b806391b89fba116100d157806391b89fba1461042457806392fd2daf1461044457806395d89b4114610474578063a10132ad1461048957600080fd5b8063715018a6146103d157806385a6b3ae146103e65780638da5cb5b146103fc57600080fd5b80633009a609116101645780635d78650e1161013e5780635d78650e146103455780636cc9c8f1146103655780636f2789ec1461038557806370a082311461039b57600080fd5b80633009a609146102f3578063313ce56714610309578063393881a81461032557600080fd5b806318160ddd116101a057806318160ddd1461022c578063226cfa3d1461024157806327ce01471461026e5780632f7541e91461028e57600080fd5b806303c83302146101da57806306fdde03146101e257806309bbedde1461020d57600080fd5b366101d5576101d36105d0565b005b600080fd5b6101d36105d0565b3480156101ee57600080fd5b506101f761066d565b60405161020491906114a8565b60405180910390f35b34801561021957600080fd5b50600a545b604051908152602001610204565b34801561023857600080fd5b5060025461021e565b34801561024d57600080fd5b5061021e61025c36600461150c565b60106020526000908152604090205481565b34801561027a57600080fd5b5061021e61028936600461150c565b6106ff565b34801561029a57600080fd5b506102ae6102a9366004611530565b610762565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610204565b3480156102ff57600080fd5b5061021e600e5481565b34801561031557600080fd5b5060405160128152602001610204565b34801561033157600080fd5b506101d3610340366004611530565b6108b6565b34801561035157600080fd5b506102ae61036036600461150c565b610931565b34801561037157600080fd5b506101d3610380366004611530565b610a99565b34801561039157600080fd5b5061021e60115481565b3480156103a757600080fd5b5061021e6103b636600461150c565b6001600160a01b031660009081526001602052604090205490565b3480156103dd57600080fd5b506101d3610b08565b3480156103f257600080fd5b5061021e60085481565b34801561040857600080fd5b506000546040516001600160a01b039091168152602001610204565b34801561043057600080fd5b5061021e61043f36600461150c565b610b1a565b34801561045057600080fd5b5061046461045f36600461155e565b610b25565b6040519015158152602001610204565b34801561048057600080fd5b506101f7610b71565b34801561049557600080fd5b5061021e60095481565b3480156104ab57600080fd5b5061021e6104ba36600461150c565b610b80565b3480156104cb57600080fd5b5061021e6104da36600461150c565b6001600160a01b031660009081526007602052604090205490565b34801561050157600080fd5b5061021e60125481565b34801561051757600080fd5b5061046461052636600461150c565b600f6020526000908152604090205460ff1681565b34801561054757600080fd5b506101d3610556366004611593565b610bac565b34801561056757600080fd5b506101d36105763660046115d1565b610d15565b34801561058757600080fd5b506101d361059636600461150c565b610e36565b3480156105a757600080fd5b506105bb6105b6366004611530565b610e74565b60408051928352602083019190915201610204565b6002546000036105f35760405163021415c960e31b815260040160405180910390fd5b341561066b5760025461060a600160801b34611613565b610614919061162a565b600554610621919061164c565b60055560405134815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a234600854610667919061164c565b6008555b565b60606003805461067c9061165f565b80601f01602080910402602001604051908101604052809291908181526020018280546106a89061165f565b80156106f55780601f106106ca576101008083540402835291602001916106f5565b820191906000526020600020905b8154815290600101906020018083116106d857829003601f168201915b5050505050905090565b6001600160a01b0381166000908152600660209081526040808320546001909252822054600160801b91610752916107439060055461073e9190611613565b610fc6565b61074d9190611699565b610fd6565b61075c919061162a565b92915050565b600080600080600080600080600a73b24969123b1dc397b5d470e9dd8ba0b7bc28b6fa63deb3d89690916040518263ffffffff1660e01b81526004016107aa91815260200190565b602060405180830381865af41580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb91906116c1565b89106108105750600096506000199550859450869350839250829150819050806108ab565b6040516368d54f3f60e11b8152600a6004820152602481018a905260009073b24969123b1dc397b5d470e9dd8ba0b7bc28b6fa9063d1aa9e7e90604401602060405180830381865af415801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e91906116da565b905061089981610931565b98509850985098509850985098509850505b919395975091939597565b6108be610fe9565b6108fc8110806108cf575061271081115b156108f557604051631030c0f760e11b8152600481018290526024015b60405180910390fd5b60098190556040518181527fb1b0d1662f1613cc48bbdf25be1c8f7ba4cb61de464f286bc2d596f626b883d5906020015b60405180910390a150565b6040516317e142d160e01b8152600a60048201526001600160a01b0382166024820152819060009081908190819081908190819073b24969123b1dc397b5d470e9dd8ba0b7bc28b6fa906317e142d190604401602060405180830381865af41580156109a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c591906116c1565b9650600019955060008712610a2757600e548711156109f257600e546109eb90886116f7565b9550610a27565b600e54600a5460009110610a07576000610a17565b600e54600a54610a17919061171e565b9050610a238189611699565b9650505b610a3088610b80565b9450610a3b886106ff565b6001600160a01b038916600090815260106020526040902054909450925082610a65576000610a72565b601154610a72908461164c565b9150428211610a82576000610a8c565b610a8c428361171e565b9050919395975091939597565b610aa1610fe9565b603c811080610ab2575062093a8081115b15610ad357604051639a60673160e01b8152600481018290526024016108ec565b60118190556040518181527f4b0a6b82d0dc4407b3359033a4f27efd1e2105e4571b72d6a3b8f1da3e6079dd90602001610926565b610b10610fe9565b61066b6000611016565b600061075c82610b80565b6000610b2f610fe9565b6000610b3b8484611066565b90508015610b675750506001600160a01b0382166000908152601060205260409020429055600161075c565b5060009392505050565b60606004805461067c9061165f565b6001600160a01b038116600090815260076020526040812054610ba2836106ff565b61075c919061171e565b610bb4610fe9565b8015610c80576001600160a01b0383166000908152600f602052604090205460ff16610c7b576001600160a01b0383166000908152600f60205260408120805460ff19166001179055610c08908490611174565b60405163131836e760e21b8152600a60048201526001600160a01b038416602482015273b24969123b1dc397b5d470e9dd8ba0b7bc28b6fa90634c60db9c9060440160006040518083038186803b158015610c6257600080fd5b505af4158015610c76573d6000803e3d6000fd5b505050505b610ccb565b6001600160a01b0383166000908152600f602052604090205460ff1615610ccb576001600160a01b0383166000908152600f60205260409020805460ff19169055610ccb8383610d15565b826001600160a01b03167fa3c7c11b2e12c4144b09a7813f3393ba646392788638998c97be8da908cf04be82604051610d08911515815260200190565b60405180910390a2505050565b610d1d610fe9565b6001600160a01b0382166000908152600f602052604090205460ff16610e32576012548110610dcd57610d508282611174565b604051632f0ad01760e21b8152600a60048201526001600160a01b03831660248201526044810182905273b24969123b1dc397b5d470e9dd8ba0b7bc28b6fa9063bc2b405c9060640160006040518083038186803b158015610db157600080fd5b505af4158015610dc5573d6000803e3d6000fd5b505050505050565b610dd8826000611174565b60405163131836e760e21b8152600a60048201526001600160a01b038316602482015273b24969123b1dc397b5d470e9dd8ba0b7bc28b6fa90634c60db9c9060440160006040518083038186803b158015610db157600080fd5b5050565b610e3e610fe9565b6001600160a01b038116610e6857604051631e4fbdf760e01b8152600060048201526024016108ec565b610e7181611016565b50565b600080610e7f610fe9565b600a546000819003610e975750600093849350915050565b600e546000805a905060009550600094505b8682108015610eb757508386105b15610f7f5782610ec681611731565b600a5490945084109050610ed957600092505b6000600a6000018481548110610ef157610ef161174a565b60009182526020808320909101546001600160a01b03168083526010909152604090912054909150610f22906111c8565b15610f4557610f32816001610b25565b15610f455785610f4181611731565b9650505b86610f4f81611731565b97505060005a905080831115610f7657610f69818461171e565b610f73908561164c565b93505b9150610ea99050565b600e83905560408051878152602081018790527ff78a0aac70b15fc744c16ea2c52bba9a167f030b8961e62a1d2c92588f77facf910160405180910390a150505050915091565b6000818181121561075c57600080fd5b600080821215610fe557600080fd5b5090565b6000546001600160a01b0316331461066b5760405163118cdaa760e01b81523360048201526024016108ec565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008061107284610b80565b90508015610b67576001600160a01b03841660009081526007602052604090205461109e90829061164c565b6001600160a01b038516600090815260076020526040812091909155836110ce576110c985836111ef565b6110d8565b6110d8858361124b565b9050801561112b57846001600160a01b03167fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d8360405161111b91815260200190565b60405180910390a250905061075c565b6001600160a01b03851660009081526007602052604090205461114f90839061171e565b6001600160a01b03861660009081526007602052604090205550600091505092915050565b6001600160a01b038216600090815260016020526040902054808211156111ad576111a8836111a3838561171e565b61129a565b505050565b808210156111a8576111a8836111c3848461171e565b6112f8565b6000814210156111da57506000919050565b6011546111e7834261171e565b101592915050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461123c576040519150601f19603f3d011682016040523d82523d6000602084013e611241565b606091505b5090949350505050565b6009546040516000916001600160a01b03851691849084818181858888f193505050503d806000811461123c576040519150601f19603f3d011682016040523d82523d6000602084013e611241565b6112a48282611336565b6112b58160055461073e9190611613565b6001600160a01b0383166000908152600660205260409020546112d891906116f7565b6001600160a01b0390921660009081526006602052604090209190915550565b61130282826113cb565b6113138160055461073e9190611613565b6001600160a01b0383166000908152600660205260409020546112d89190611699565b6001600160a01b0382166113605760405163ec442f0560e01b8152600060048201526024016108ec565b8060026000828254611372919061164c565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166113f557604051634b637e8f60e11b8152600060048201526024016108ec565b6001600160a01b038216600090815260016020526040902054818110156114485760405163391434e360e21b81526001600160a01b038416600482015260248101829052604481018390526064016108ec565b6001600160a01b03831660008181526001602090815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60006020808352835180602085015260005b818110156114d6578581018301518582016040015282016114ba565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e7157600080fd5b60006020828403121561151e57600080fd5b8135611529816114f7565b9392505050565b60006020828403121561154257600080fd5b5035919050565b8035801515811461155957600080fd5b919050565b6000806040838503121561157157600080fd5b823561157c816114f7565b915061158a60208401611549565b90509250929050565b6000806000606084860312156115a857600080fd5b83356115b3816114f7565b9250602084013591506115c860408501611549565b90509250925092565b600080604083850312156115e457600080fd5b82356115ef816114f7565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761075c5761075c6115fd565b60008261164757634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561075c5761075c6115fd565b600181811c9082168061167357607f821691505b60208210810361169357634e487b7160e01b600052602260045260246000fd5b50919050565b80820182811260008312801582168215821617156116b9576116b96115fd565b505092915050565b6000602082840312156116d357600080fd5b5051919050565b6000602082840312156116ec57600080fd5b8151611529816114f7565b8181036000831280158383131683831282161715611717576117176115fd565b5092915050565b8181038181111561075c5761075c6115fd565b600060018201611743576117436115fd565b5060010190565b634e487b7160e01b600052603260045260246000fdfea164736f6c6343000819000a
Deployed Bytecode
0x6080604052600436106103d25760003560e01c806379cc6790116101fd578063c024666811610118578063dd62ed3e116100ab578063e7841ec01161007a578063e7841ec014610be5578063f112ba7214610bfa578063f27fd25414610c0f578063f2fde38b14610c2f578063ffb2c47914610c4f57600080fd5b8063dd62ed3e14610b41578063e30c397814610b87578063e626815814610ba5578063e73b17d014610bc557600080fd5b8063d0edc536116100e7578063d0edc53614610ab3578063d5abeb0114610ae6578063d947752614610afc578063dbac26e914610b1157600080fd5b8063c024666814610a33578063c400f5e714610a53578063c705c56914610a73578063cb1a233d14610a9357600080fd5b80639c1b8af511610190578063a8b9d2401161015f578063a8b9d2401461096e578063a9059cbb1461098e578063a9d3cd8a146109ae578063ad56c13c146109ce57600080fd5b80639c1b8af514610903578063a26579ad14610919578063a5ece9411461092e578063a6ddc4251461094e57600080fd5b80638e749a8f116101cc5780638e749a8f1461088e5780638fffabed146108ae57806395d89b41146108ce578063966b53c4146108e357600080fd5b806379cc67901461081b5780638062651a1461083b5780638456cb591461085b5780638da5cb5b1461087057600080fd5b8063404e5129116102ed578063502f7446116102805780636cc9c8f11161024f5780636cc9c8f1146107b157806370a08231146107d1578063715018a6146107f157806379ba50971461080657600080fd5b8063502f74461461073f5780635c975abb1461076457806364b0f6531461077c5780636843cd841461079157600080fd5b80634a4dd9cd116102bc5780634a4dd9cd146106bf5780634e71d92d146106df5780634f011b83146106f45780634fbee1931461070f57600080fd5b8063404e51291461062c578063408ccbdf1461064c57806340c10f191461067f57806342966c681461069f57600080fd5b806323b872dd1161036557806330bb4cff1161033457806330bb4cff146105c6578063313ce567146105db578063393881a8146105f75780633f4ba83a1461061757600080fd5b806323b872dd14610534578063294aad9c146105545780632c1f5216146105695780632f267e29146105a657600080fd5b806318533a0d116103a157806318533a0d146104af5780631a0e718c146104cf5780631af3c61d146104ef5780631e9fe6c61461050457600080fd5b80630483f7a01461041557806306fdde0314610435578063095ea7b31461046057806318160ddd1461049057600080fd5b366104105760165461010090046001600160a01b0316331461040e5760405163ba6875cd60e01b81523360048201526024015b60405180910390fd5b005b600080fd5b34801561042157600080fd5b5061040e610430366004613467565b610c84565b34801561044157600080fd5b5061044a610c9a565b60405161045791906134c4565b60405180910390f35b34801561046c57600080fd5b5061048061047b3660046134f7565b610d2c565b6040519015158152602001610457565b34801561049c57600080fd5b506002545b604051908152602001610457565b3480156104bb57600080fd5b5061040e6104ca366004613523565b610d46565b3480156104db57600080fd5b5061040e6104ea366004613557565b610e02565b3480156104fb57600080fd5b5061040e610e8f565b34801561051057600080fd5b5061048061051f366004613523565b60186020526000908152604090205460ff1681565b34801561054057600080fd5b5061048061054f366004613572565b610ef9565b34801561056057600080fd5b506104a1610f1f565b34801561057557600080fd5b5060085461058e9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610457565b3480156105b257600080fd5b5061040e6105c13660046135b3565b610f9d565b3480156105d257600080fd5b506104a161100e565b3480156105e757600080fd5b5060405160128152602001610457565b34801561060357600080fd5b5061040e6106123660046135b3565b611063565b34801561062357600080fd5b5061040e6110d1565b34801561063857600080fd5b5061040e610647366004613467565b6110e3565b34801561065857600080fd5b5061066c6106673660046135b3565b61114b565b60405161ffff9091168152602001610457565b34801561068b57600080fd5b5061040e61069a3660046134f7565b611179565b3480156106ab57600080fd5b5061040e6106ba3660046135b3565b6111c1565b3480156106cb57600080fd5b5061040e6106da3660046135cc565b6111ce565b3480156106eb57600080fd5b506104806113b4565b34801561070057600080fd5b50600c5461066c9061ffff1681565b34801561071b57600080fd5b5061048061072a366004613523565b60146020526000908152604090205460ff1681565b34801561074b57600080fd5b5060165461058e9061010090046001600160a01b031681565b34801561077057600080fd5b5060085460ff16610480565b34801561078857600080fd5b506104a161142f565b34801561079d57600080fd5b506104a16107ac366004613523565b611484565b3480156107bd57600080fd5b5061040e6107cc3660046135b3565b6114f9565b3480156107dd57600080fd5b506104a16107ec366004613523565b611536565b3480156107fd57600080fd5b5061040e611551565b34801561081257600080fd5b5061040e611563565b34801561082757600080fd5b5061040e6108363660046134f7565b6115a4565b34801561084757600080fd5b5061040e6108563660046135cc565b6115b9565b34801561086757600080fd5b5061040e61174e565b34801561087c57600080fd5b506005546001600160a01b031661058e565b34801561089a57600080fd5b5061066c6108a93660046135b3565b61175e565b3480156108ba57600080fd5b5060175461058e906001600160a01b031681565b3480156108da57600080fd5b5061044a61176e565b3480156108ef57600080fd5b5061066c6108fe3660046135b3565b61177d565b34801561090f57600080fd5b506104a160095481565b34801561092557600080fd5b506104a161178d565b34801561093a57600080fd5b5060105461058e906001600160a01b031681565b34801561095a57600080fd5b5061066c6109693660046135b3565b6117e2565b34801561097a57600080fd5b506104a1610989366004613523565b6117f2565b34801561099a57600080fd5b506104806109a93660046134f7565b61182a565b3480156109ba57600080fd5b5061040e6109c9366004613467565b611838565b3480156109da57600080fd5b506109ee6109e9366004613523565b6118a1565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610457565b348015610a3f57600080fd5b5061040e610a4e366004613467565b611943565b348015610a5f57600080fd5b5061040e610a6e366004613523565b6119a3565b348015610a7f57600080fd5b50610480610a8e366004613523565b611a3d565b348015610a9f57600080fd5b5061040e610aae3660046135b3565b611ab1565b348015610abf57600080fd5b507f4aa807ca5a6afc62ffb8aca42edefc6a3ebef533b3e7efa5b55feaaa243d69936104a1565b348015610af257600080fd5b506104a160075481565b348015610b0857600080fd5b506104a1611b0e565b348015610b1d57600080fd5b50610480610b2c366004613523565b600b6020526000908152604090205460ff1681565b348015610b4d57600080fd5b506104a1610b5c36600461360f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610b9357600080fd5b506006546001600160a01b031661058e565b348015610bb157600080fd5b5061040e610bc03660046135cc565b611b48565b348015610bd157600080fd5b5061040e610be03660046134f7565b611cd4565b348015610bf157600080fd5b506104a1611d24565b348015610c0657600080fd5b506104a1611d79565b348015610c1b57600080fd5b506109ee610c2a3660046135b3565b611da4565b348015610c3b57600080fd5b5061040e610c4a366004613523565b611df3565b348015610c5b57600080fd5b50610c6f610c6a3660046135b3565b611e64565b60408051928352602083019190915201610457565b610c8c611ee7565b610c968282611f14565b5050565b606060038054610ca99061363d565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd59061363d565b8015610d225780601f10610cf757610100808354040283529160200191610d22565b820191906000526020600020905b815481529060010190602001808311610d0557829003601f168201915b5050505050905090565b600033610d3a818585611f9f565b60019150505b92915050565b600a54610100900460ff1680610d5f5750600a5460ff16155b610dc25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610405565b600a54610100900460ff16158015610de457600a805461ffff19166101011790555b610ded82611fb1565b8015610c9657600a805461ff00191690555050565b610e0a611ee7565b61ffff81161580610e2057506101f48161ffff16115b15610e4457604051631958d05f60e01b815261ffff82166004820152602401610405565b600c805461ffff191661ffff83169081179091556040519081527fcf1366790fe21e66c9df9dcf67218b1e10acd64d3c99ae8a7429a68de91f1720906020015b60405180910390a150565b6000610e99611d79565b610ea230611536565b610eac919061368d565b90506000610eb9826121cc565b60408051848152602081018390529192507f5c3340567bf85cd43734028361fe821eac789fbe397b8d1a4f9ebb3ab4c81ef7910160405180910390a15050565b600033610f07858285612270565b610f128585856122ee565b60019150505b9392505050565b6000600860019054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9891906136a0565b905090565b610fa5611ee7565b62030d40811080610fb857506207a12081115b15610fd95760405163074242a560e31b815260048101829052602401610405565b60098190556040518181527f1662a2324457a200b9556dfe949641639b99480ee6b448aefcfb97ee61ec241790602001610e84565b6000600860019054906101000a90046001600160a01b03166001600160a01b03166385a6b3ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b61106b611ee7565b600854604051630727103560e31b8152600481018390526101009091046001600160a01b03169063393881a8906024015b600060405180830381600087803b1580156110b657600080fd5b505af11580156110ca573d6000803e3d6000fd5b5050505050565b6110d9611ee7565b6110e161234d565b565b6110eb611ee7565b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915591519182527f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac91015b60405180910390a25050565b6015816003811061115b57600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b611181611ee7565b6007548161118e60025490565b61119891906136b9565b11156111b7576040516316a5e6f760e31b815260040160405180910390fd5b610c96828261239f565b6111cb33826123d5565b50565b6111d6611ee7565b60115460155484916111ef9161ffff91821691166136e2565b6111f99190613704565b6015805461ffff191661ffff928316179081905560115484926112299262010000928390048216929004166136e2565b6112339190613704565b6015805463ffff000019166201000061ffff938416021790819055601154839261126b92600160201b928390048216929004166136e2565b6112759190613704565b6015805461ffff928316600160201b0265ffff0000000019821681179092556109c4908316919092161711806112b957506015546109c46201000090910461ffff16115b806112d357506015546109c4600160201b90910461ffff16115b1561133357601560005b60108104919091015460155460405163b7b3de6f60e01b8152600f9093166002026101000a90910461ffff908116600484015262010000820481166024840152600160201b909104166044820152606401610405565b6040805160608101825261ffff80861682528481166020830152831691810191909152611364906011906003613399565b506040805161ffff8581168252848116602083015283168183015290516001917f5aa2b88de73e9b93e574fbaf914e53e45e2ba25f25692e6e0ba4e0d3c33f9d5a919081900360600190a2505050565b6008546040516392fd2daf60e01b81523360048201526000602482018190529161010090046001600160a01b0316906392fd2daf906044016020604051808303816000875af115801561140b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061371f565b6000600860019054906101000a90046001600160a01b03166001600160a01b03166309bbedde6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b6008546040516370a0823160e01b81526001600160a01b038381166004830152600092610100900416906370a08231906024015b602060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4091906136a0565b611501611ee7565b600854604051636cc9c8f160e01b8152600481018390526101009091046001600160a01b031690636cc9c8f19060240161109c565b6001600160a01b031660009081526020819052604090205490565b611559611ee7565b6110e1600061240b565b60065433906001600160a01b0316811461159b5760405163118cdaa760e01b81526001600160a01b0382166004820152602401610405565b6111cb8161240b565b6115af823383612270565b610c9682826123d5565b6115c1611ee7565b60135460155484916115da9161ffff91821691166136e2565b6115e49190613704565b6015805461ffff191661ffff928316179081905560135484926116149262010000928390048216929004166136e2565b61161e9190613704565b6015805463ffff000019166201000061ffff938416021790819055601354839261165692600160201b928390048216929004166136e2565b6116609190613704565b6015805461ffff928316600160201b0265ffff0000000019821681179092556109c4908316919092161711806116a457506015546109c46201000090910461ffff16115b806116be57506015546109c4600160201b90910461ffff16115b156116cc57601560006112dd565b6040805160608101825261ffff808616825284811660208301528316918101919091526116fd906013906003613399565b506040805161ffff808616825280851660208301528316918101919091527f3ec8f17d924721910a043bef5d818361423756fcd3cc52e2c46a1139acbb7692906060015b60405180910390a1505050565b611756611ee7565b6110e1612424565b6011816003811061115b57600080fd5b606060048054610ca99061363d565b6012816003811061115b57600080fd5b6000600860019054906101000a90046001600160a01b03166001600160a01b0316636f2789ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b6013816003811061115b57600080fd5b6008546040516302a2e74960e61b81526001600160a01b0383811660048301526000926101009004169063a8b9d240906024016114b8565b600033610d3a8185856122ee565b611840611ee7565b6017546001600160a01b038381169116148061186e57506016546001600160a01b0383811661010090920416145b156118975760405163435eaf7b60e11b81526001600160a01b0383166004820152602401610405565b610c968282612461565b600854604051632ebc328760e11b81526001600160a01b038381166004830152600092839283928392839283928392839261010090910490911690635d78650e906024015b61010060405180830381865afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611928919061373c565b97509750975097509750975097509750919395975091939597565b61194b611ee7565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910161113f565b6119ab611ee7565b6001600160a01b0381166119d55760405163ab11818760e01b815260006004820152602401610405565b601080546001600160a01b0319166001600160a01b0383161790556119fb816001611943565b6040516001600160a01b03821681526001907ff8e79c3705e6b93e151f4c2166fe019e81a78204037fb9913b261eeb877218d99060200160405180910390a250565b60085460405163c705c56960e01b81526001600160a01b0383811660048301526000926101009004169063c705c56990602401602060405180830381865afa158015611a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d40919061371f565b611ab9611ee7565b6000611ac3611d79565b611acc30611536565b611ad6919061368d565b905080821115611b0357604051634d2e924b60e01b81526004810183905260248101829052604401610405565b610c963033846124d6565b600c546017546000916127109161ffff90911690611b34906001600160a01b0316611536565b611b3e91906137a6565b610f9891906137bd565b611b50611ee7565b6012546015548491611b699161ffff91821691166136e2565b611b739190613704565b6015805461ffff191661ffff92831617908190556012548492611ba39262010000928390048216929004166136e2565b611bad9190613704565b6015805463ffff000019166201000061ffff9384160217908190556012548392611be592600160201b928390048216929004166136e2565b611bef9190613704565b6015805461ffff928316600160201b0265ffff0000000019821681179092556109c490831691909216171180611c3357506015546109c46201000090910461ffff16115b80611c4d57506015546109c4600160201b90910461ffff16115b15611c5b57601560006112dd565b6040805160608101825261ffff80861682528481166020830152831691810191909152611c8c906012906003613399565b506040805161ffff808616825280851660208301528316918101919091527f75384cd67dc8e71a4a1e50999e8d4c0bb12417b267a2b87e57a22123fde4ad8290606001611741565b611cdc611ee7565b306001600160a01b03831603611d105760405163961c9a4f60e01b81526001600160a01b0383166004820152602401610405565b610c966001600160a01b0383163383612c56565b6000600860019054906101000a90046001600160a01b03166001600160a01b0316633009a6096040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b6000600f54600e54600d546000611d9091906136b9565b611d9a91906136b9565b610f9891906136b9565b600080600080600080600080600860019054906101000a90046001600160a01b03166001600160a01b0316632f7541e98a6040518263ffffffff1660e01b81526004016118e691815260200190565b611dfb611ee7565b600680546001600160a01b0383166001600160a01b03199091168117909155611e2c6005546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6008546040516001624d3b8760e01b031981526004810183905260009182916101009091046001600160a01b03169063ffb2c4799060240160408051808303816000875af1158015611eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ede91906137df565b91509150915091565b6005546001600160a01b031633146110e15760405163118cdaa760e01b8152336004820152602401610405565b60085461010090046001600160a01b031663d1fbb84e83611f3481611536565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015283151560448201526064015b600060405180830381600087803b158015611f8357600080fd5b505af1158015611f97573d6000803e3d6000fd5b505050505050565b611fac8383836001612ca8565b505050565b80601660016101000a8154816001600160a01b0302191690836001600160a01b03160217905550601660019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204f9190613803565b6001600160a01b031663c9c6539630601660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d59190613803565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612122573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121469190613803565b601780546001600160a01b0319166001600160a01b03929092169190911790556121733082600019611f9f565b61217e816001612461565b601754612195906001600160a01b03166001612461565b6040516001600160a01b038216907fbc052db65df144ad4f71f02da93cae3d4401104c30ac374d7cc10d87ee07b60290600090a250565b6000806121da6002846137bd565b905060006121e8828561368d565b90506121f382612d7d565b4780156122685760008060006122098585612ea9565b604080518481526020810184905290810182905292955090935091507fd7f28048575eead8851d024ead087913957dfb4fd1a02b4d1573f5352a5a2be39060600160405180910390a161225c838661368d565b98975050505050505050565b509392505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146122e857818110156122d957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610405565b6122e884848484036000612ca8565b50505050565b6001600160a01b03831661231857604051634b637e8f60e11b815260006004820152602401610405565b6001600160a01b0382166123425760405163ec442f0560e01b815260006004820152602401610405565b611fac8383836124d6565b612355612f53565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166123c95760405163ec442f0560e01b815260006004820152602401610405565b610c96600083836124d6565b6001600160a01b0382166123ff57604051634b637e8f60e11b815260006004820152602401610405565b610c96826000836124d6565b600680546001600160a01b03191690556111cb81612f76565b61242c612fc8565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123823390565b6001600160a01b0382166000908152601860205260409020805460ff1916821580159190911790915561249957612499826001611f14565b816001600160a01b03167f2cc8631dda80fe178488d3174721fafacf84b0f194a7eddae85c9bcc599ac78b8260405161113f911515815260200190565b6124e1838383612fec565b6001600160a01b0383161580159061250157506001600160a01b03821615155b15612aa85760165460ff161580156125195750600081115b801561253e57506001600160a01b03831660009081526014602052604090205460ff16155b801561256357506001600160a01b03821660009081526014602052604090205460ff16155b156128ba576001600160a01b03831660009081526018602052604081205460039060ff1680156125ac57506001600160a01b03841660009081526018602052604090205460ff16155b156125c65760155461ffff16156125c1575060005b612684565b6001600160a01b03841660009081526018602052604090205460ff16801561260757506001600160a01b03851660009081526018602052604090205460ff16155b156126265760155462010000900461ffff16156125c157506001612684565b6001600160a01b03851660009081526018602052604090205460ff1615801561266857506001600160a01b03841660009081526018602052604090205460ff16155b1561268457601554600160201b900461ffff1615612684575060025b60038160ff1610156128a65761271060158260ff16600381106126a9576126a96136cc565b601091828204019190066002029054906101000a900461ffff1661ffff16846126d291906137a6565b6126dc91906137bd565b91506126e8828461368d565b925060158160ff1660038110612700576127006136cc565b601091828204019190066002029054906101000a900461ffff1661ffff1660118260ff1660038110612734576127346136cc565b601091828204019190066002029054906101000a900461ffff1661ffff168361275d91906137a6565b61276791906137bd565b600d600082825461277891906136b9565b909155506015905060ff821660038110612794576127946136cc565b601091828204019190066002029054906101000a900461ffff1661ffff1660128260ff16600381106127c8576127c86136cc565b601091828204019190066002029054906101000a900461ffff1661ffff16836127f191906137a6565b6127fb91906137bd565b600e600082825461280c91906136b9565b909155506015905060ff821660038110612828576128286136cc565b601091828204019190066002029054906101000a900461ffff1661ffff1660138260ff166003811061285c5761285c6136cc565b601091828204019190066002029054906101000a900461ffff1661ffff168361288591906137a6565b61288f91906137bd565b600f60008282546128a091906136b9565b90915550505b81156128b7576128b7853084613064565b50505b60006128c4611b0e565b6128cc611d79565b101580156128ef57506017546000906128ed906001600160a01b0316611536565b115b60165490915060ff1615801561291357506017546001600160a01b03858116911614155b801561293257506016546001600160a01b038581166101009092041614155b801561293b5750805b15612aa6576016805460ff191660011790556000600d541115612a52576000600d54600061296991906136b9565b9050600061297682612d7d565b600d544790600090849061298a90846137a6565b61299491906137bd565b90508015612a48576010546040516001600160a01b0390911690614e209083906000818181858888f193505050503d80600081146129ee576040519150601f19603f3d011682016040523d82523d6000602084013e6129f3565b606091505b50909350508215612a4857601054604080516001600160a01b039092168252602082018390526001917f4b1a0df20e469b24231f59741640137b104320272da39777bdf2800ac99de1e0910160405180910390a25b50506000600d5550505b600e5415612a6c57612a65600e546121cc565b506000600e555b6000600f54118015612a8557506000612a8361142f565b115b15612a9b57612a95600f5461318e565b6000600f555b6016805460ff191690555b505b612ab3838383613064565b6001600160a01b03831615612b415760085461010090046001600160a01b031663e30443bc84612ae281611536565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015612b2857600080fd5b505af1158015612b3c573d6000803e3d6000fd5b505050505b6001600160a01b03821615612bcf5760085461010090046001600160a01b031663e30443bc83612b7081611536565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015612bb657600080fd5b505af1158015612bca573d6000803e3d6000fd5b505050505b60165460ff16611fac576008546009546040516001624d3b8760e01b0319815260048101919091526101009091046001600160a01b03169063ffb2c4799060240160408051808303816000875af1925050508015612c4a575060408051601f3d908101601f19168201909252612c47918101906137df565b60015b15611fac575050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611fac90849061322f565b6001600160a01b038416612cd25760405163e602df0560e01b815260006004820152602401610405565b6001600160a01b038316612cfc57604051634a1406b160e11b815260006004820152602401610405565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156122e857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051612d6f91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612db257612db26136cc565b60200260200101906001600160a01b031690816001600160a01b031681525050601660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e499190613803565b81600181518110612e5c57612e5c6136cc565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81526101009091049091169063791ac94790611f69908590600090869030904290600401613820565b60165460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905261dead60848301524260a4830152918291829161010090046001600160a01b03169063f305d71990869060c40160606040518083038185885af1158015612f21573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f469190613893565b9250925092509250925092565b60085460ff166110e157604051638dfc202b60e01b815260040160405180910390fd5b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60085460ff16156110e15760405163d93c066560e01b815260040160405180910390fd5b612ff4612fc8565b6001600160a01b0383166000908152600b602052604090205460ff168061303357506001600160a01b0382166000908152600b602052604090205460ff165b15611fac57604051632cc8702b60e01b81526001600160a01b03808516600483015283166024820152604401610405565b6001600160a01b03831661308f57806002600082825461308491906136b9565b909155506131019050565b6001600160a01b038316600090815260208190526040902054818110156130e25760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610405565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661311d5760028054829003905561313c565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161318191815260200190565b60405180910390a3505050565b61319781612d7d565b478015610c965760085460405160009161010090046001600160a01b03169083908381818185875af1925050503d80600081146131f0576040519150601f19603f3d011682016040523d82523d6000602084013e6131f5565b606091505b505090508015611fac576040518281527f1e8f03f716bc104bf7d728131967a0c771e85ab54d09c1e2d6ed9e0bc4e2a16c90602001611741565b60006132446001600160a01b03841683613292565b90508051600014158015613269575080806020019051810190613267919061371f565b155b15611fac57604051635274afe760e01b81526001600160a01b0384166004820152602401610405565b6060610f188383600084600080856001600160a01b031684866040516132b891906138c1565b60006040518083038185875af1925050503d80600081146132f5576040519150601f19603f3d011682016040523d82523d6000602084013e6132fa565b606091505b509150915061330a868383613314565b9695505050505050565b6060826133295761332482613370565b610f18565b815115801561334057506001600160a01b0384163b155b1561336957604051639996b31560e01b81526001600160a01b0385166004820152602401610405565b5080610f18565b8051156133805780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60018301918390821561341f5791602002820160005b838211156133ef57835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026133af565b801561341d5782816101000a81549061ffff02191690556002016020816001010492830192600103026133ef565b505b5061342b92915061342f565b5090565b5b8082111561342b5760008155600101613430565b6001600160a01b03811681146111cb57600080fd5b80151581146111cb57600080fd5b6000806040838503121561347a57600080fd5b823561348581613444565b9150602083013561349581613459565b809150509250929050565b60005b838110156134bb5781810151838201526020016134a3565b50506000910152565b60208152600082518060208401526134e38160408501602087016134a0565b601f01601f19169190910160400192915050565b6000806040838503121561350a57600080fd5b823561351581613444565b946020939093013593505050565b60006020828403121561353557600080fd5b8135610f1881613444565b803561ffff8116811461355257600080fd5b919050565b60006020828403121561356957600080fd5b610f1882613540565b60008060006060848603121561358757600080fd5b833561359281613444565b925060208401356135a281613444565b929592945050506040919091013590565b6000602082840312156135c557600080fd5b5035919050565b6000806000606084860312156135e157600080fd5b6135ea84613540565b92506135f860208501613540565b915061360660408501613540565b90509250925092565b6000806040838503121561362257600080fd5b823561362d81613444565b9150602083013561349581613444565b600181811c9082168061365157607f821691505b60208210810361367157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4057610d40613677565b6000602082840312156136b257600080fd5b5051919050565b80820180821115610d4057610d40613677565b634e487b7160e01b600052603260045260246000fd5b61ffff8281168282160390808211156136fd576136fd613677565b5092915050565b61ffff8181168382160190808211156136fd576136fd613677565b60006020828403121561373157600080fd5b8151610f1881613459565b600080600080600080600080610100898b03121561375957600080fd5b885161376481613444565b809850506020890151965060408901519550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b8082028115828204841417610d4057610d40613677565b6000826137da57634e487b7160e01b600052601260045260246000fd5b500490565b600080604083850312156137f257600080fd5b505080516020909101519092909150565b60006020828403121561381557600080fd5b8151610f1881613444565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156138725784516001600160a01b03168352938301939183019160010161384d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156138a857600080fd5b8351925060208401519150604084015190509250925092565b600082516138d38184602087016134a0565b919091019291505056fea164736f6c6343000819000a
🤖 Code Reader

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

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.