ETH Price: $2,343.47 (+0.63%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Name

NounsDAOLogicV3

Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled
Yes with 200 runs
Other Settings
default evmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"name":"AdminOnly","type":"error"},{"inputs":[],"name":"CanOnlyInitializeOnce","type":"error"},{"inputs":[],"name":"InvalidNounsAddress","type":"error"},{"inputs":[],"name":"InvalidTimelockAddress","type":"error"},{"inputs":[],"name":"MustProvideActions","type":"error"},{"inputs":[],"name":"ProposalInfoArityMismatch","type":"error"},{"inputs":[],"name":"ProposerAlreadyHasALiveProposal","type":"error"},{"inputs":[],"name":"TooManyActions","type":"error"},{"inputs":[],"name":"UnsafeUint16Cast","type":"error"},{"inputs":[],"name":"VotesBelowProposalThreshold","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"numTokens","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"DAONounsSupplyIncreasedFromEscrow","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"DAOWithdrawNounsFromEscrow","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"oldErc20Tokens","type":"address[]"},{"indexed":false,"internalType":"address[]","name":"newErc20tokens","type":"address[]"}],"name":"ERC20TokensToIncludeInForkSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"forkId","type":"uint32"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"proposalIds","type":"uint256[]"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"EscrowedToFork","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"forkId","type":"uint32"},{"indexed":false,"internalType":"address","name":"forkTreasury","type":"address"},{"indexed":false,"internalType":"address","name":"forkToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"forkEndTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensInEscrow","type":"uint256"}],"name":"ExecuteFork","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldForkDAODeployer","type":"address"},{"indexed":false,"internalType":"address","name":"newForkDAODeployer","type":"address"}],"name":"ForkDAODeployerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldForkPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newForkPeriod","type":"uint256"}],"name":"ForkPeriodSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldForkThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newForkThreshold","type":"uint256"}],"name":"ForkThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"forkId","type":"uint32"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"proposalIds","type":"uint256[]"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"JoinFork","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"oldLastMinuteWindowInBlocks","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"newLastMinuteWindowInBlocks","type":"uint32"}],"name":"LastMinuteWindowSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldMaxQuorumVotesBPS","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newMaxQuorumVotesBPS","type":"uint16"}],"name":"MaxQuorumVotesBPSSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldMinQuorumVotesBPS","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newMinQuorumVotesBPS","type":"uint16"}],"name":"MinQuorumVotesBPSSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingVetoer","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingVetoer","type":"address"}],"name":"NewPendingVetoer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldVetoer","type":"address"},{"indexed":false,"internalType":"address","name":"newVetoer","type":"address"}],"name":"NewVetoer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"oldObjectionPeriodDurationInBlocks","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"newObjectionPeriodDurationInBlocks","type":"uint32"}],"name":"ObjectionPeriodDurationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCreatedOnTimelockV1","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"signers","type":"address[]"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updatePeriodEndBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"proposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"quorumVotes","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreatedWithRequirements","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"proposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"quorumVotes","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreatedWithRequirements","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"string","name":"description","type":"string"},{"indexed":false,"internalType":"string","name":"updateMessage","type":"string"}],"name":"ProposalDescriptionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"objectionPeriodEndBlock","type":"uint256"}],"name":"ProposalObjectionPeriodSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProposalThresholdBPS","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThresholdBPS","type":"uint256"}],"name":"ProposalThresholdBPSSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"string","name":"updateMessage","type":"string"}],"name":"ProposalTransactionsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"oldProposalUpdatablePeriodInBlocks","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"newProposalUpdatablePeriodInBlocks","type":"uint32"}],"name":"ProposalUpdatablePeriodSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"string","name":"description","type":"string"},{"indexed":false,"internalType":"string","name":"updateMessage","type":"string"}],"name":"ProposalUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalVetoed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"oldQuorumCoefficient","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"newQuorumCoefficient","type":"uint32"}],"name":"QuorumCoefficientSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldQuorumVotesBPS","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newQuorumVotesBPS","type":"uint256"}],"name":"QuorumVotesBPSSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"refundAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"refundSent","type":"bool"}],"name":"RefundableVote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"bytes","name":"sig","type":"bytes"}],"name":"SignatureCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"timelock","type":"address"},{"indexed":false,"internalType":"address","name":"timelockV1","type":"address"},{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"TimelocksAndAdminSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVoteSnapshotBlockSwitchProposalId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVoteSnapshotBlockSwitchProposalId","type":"uint256"}],"name":"VoteSnapshotBlockSwitchProposalIdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"sent","type":"bool"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"forkId","type":"uint32"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"WithdrawFromForkEscrow","type":"event"},{"inputs":[],"name":"MAX_PROPOSAL_THRESHOLD_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"MAX_VOTING_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"MAX_VOTING_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"MIN_PROPOSAL_THRESHOLD_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"MIN_VOTING_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"MIN_VOTING_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"_acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_acceptVetoer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_burnVetoPower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newMinQuorumVotesBPS","type":"uint16"},{"internalType":"uint16","name":"newMaxQuorumVotesBPS","type":"uint16"},{"internalType":"uint32","name":"newQuorumCoefficient","type":"uint32"}],"name":"_setDynamicQuorumParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"erc20tokens","type":"address[]"}],"name":"_setErc20TokensToIncludeInFork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newForkDAODeployer","type":"address"}],"name":"_setForkDAODeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newForkEscrow","type":"address"}],"name":"_setForkEscrow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"forkEscrow_","type":"address"},{"internalType":"address","name":"forkDAODeployer_","type":"address"},{"internalType":"address[]","name":"erc20TokensToIncludeInFork_","type":"address[]"},{"internalType":"uint256","name":"forkPeriod_","type":"uint256"},{"internalType":"uint256","name":"forkThresholdBPS_","type":"uint256"}],"name":"_setForkParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newForkPeriod","type":"uint256"}],"name":"_setForkPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newForkThresholdBPS","type":"uint256"}],"name":"_setForkThresholdBPS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"newLastMinuteWindowInBlocks","type":"uint32"}],"name":"_setLastMinuteWindowInBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newMaxQuorumVotesBPS","type":"uint16"}],"name":"_setMaxQuorumVotesBPS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newMinQuorumVotesBPS","type":"uint16"}],"name":"_setMinQuorumVotesBPS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"newObjectionPeriodDurationInBlocks","type":"uint32"}],"name":"_setObjectionPeriodDurationInBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingVetoer","type":"address"}],"name":"_setPendingVetoer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newProposalThresholdBPS","type":"uint256"}],"name":"_setProposalThresholdBPS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"newProposalUpdatablePeriodInBlocks","type":"uint32"}],"name":"_setProposalUpdatablePeriodInBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"newQuorumCoefficient","type":"uint32"}],"name":"_setQuorumCoefficient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTimelock","type":"address"},{"internalType":"address","name":"newTimelockV1","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"name":"_setTimelocksAndAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_setVoteSnapshotBlockSwitchProposalId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"_setVotingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"_setVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adjustedTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"cancelSig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castRefundableVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castRefundableVoteWithReason","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"adjustedTotalSupply_","type":"uint256"},{"components":[{"internalType":"uint16","name":"minQuorumVotesBPS","type":"uint16"},{"internalType":"uint16","name":"maxQuorumVotesBPS","type":"uint16"},{"internalType":"uint32","name":"quorumCoefficient","type":"uint32"}],"internalType":"struct NounsDAOStorageV3.DynamicQuorumParams","name":"params","type":"tuple"}],"name":"dynamicQuorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"erc20TokensToIncludeInFork","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"proposalIds","type":"uint256[]"},{"internalType":"string","name":"reason","type":"string"}],"name":"escrowToFork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeFork","outputs":[{"internalType":"address","name":"forkTreasury","type":"address"},{"internalType":"address","name":"forkToken","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"executeOnTimelockV1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forkDAODeployer","outputs":[{"internalType":"contract IForkDAODeployer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forkEndTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forkEscrow","outputs":[{"internalType":"contract INounsDAOForkEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forkPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forkThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forkThresholdBPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"getActions","outputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber_","type":"uint256"}],"name":"getDynamicQuorumParamsAt","outputs":[{"components":[{"internalType":"uint16","name":"minQuorumVotesBPS","type":"uint16"},{"internalType":"uint16","name":"maxQuorumVotesBPS","type":"uint16"},{"internalType":"uint32","name":"quorumCoefficient","type":"uint32"}],"internalType":"struct NounsDAOStorageV3.DynamicQuorumParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"name":"getReceipt","outputs":[{"components":[{"internalType":"bool","name":"hasVoted","type":"bool"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint96","name":"votes","type":"uint96"}],"internalType":"struct NounsDAOStorageV3.Receipt","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"nouns_","type":"address"},{"internalType":"address","name":"forkEscrow_","type":"address"},{"internalType":"address","name":"forkDAODeployer_","type":"address"},{"internalType":"address","name":"vetoer_","type":"address"},{"components":[{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"proposalThresholdBPS","type":"uint256"},{"internalType":"uint32","name":"lastMinuteWindowInBlocks","type":"uint32"},{"internalType":"uint32","name":"objectionPeriodDurationInBlocks","type":"uint32"},{"internalType":"uint32","name":"proposalUpdatablePeriodInBlocks","type":"uint32"}],"internalType":"struct NounsDAOStorageV3.NounsDAOParams","name":"daoParams_","type":"tuple"},{"components":[{"internalType":"uint16","name":"minQuorumVotesBPS","type":"uint16"},{"internalType":"uint16","name":"maxQuorumVotesBPS","type":"uint16"},{"internalType":"uint32","name":"quorumCoefficient","type":"uint32"}],"internalType":"struct NounsDAOStorageV3.DynamicQuorumParams","name":"dynamicQuorumParams_","type":"tuple"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"proposalIds","type":"uint256[]"},{"internalType":"string","name":"reason","type":"string"}],"name":"joinFork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastMinuteWindowInBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"latestProposalIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxQuorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minQuorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nouns","outputs":[{"internalType":"contract NounsTokenLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensInForkEscrow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"objectionPeriodDurationInBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVetoer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalMaxOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThresholdBPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalUpdatablePeriodInBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposals","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"},{"internalType":"uint256","name":"quorumVotes","type":"uint256"},{"internalType":"uint256","name":"eta","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"vetoed","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"creationBlock","type":"uint256"}],"internalType":"struct NounsDAOStorageV2.ProposalCondensed","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalsV3","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"},{"internalType":"uint256","name":"quorumVotes","type":"uint256"},{"internalType":"uint256","name":"eta","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"vetoed","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"creationBlock","type":"uint256"},{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"uint256","name":"updatePeriodEndBlock","type":"uint256"},{"internalType":"uint256","name":"objectionPeriodEndBlock","type":"uint256"},{"internalType":"bool","name":"executeOnTimelockV1","type":"bool"}],"internalType":"struct NounsDAOStorageV3.ProposalCondensed","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"}],"internalType":"struct NounsDAOStorageV3.ProposerSignature[]","name":"proposerSignatures","type":"tuple[]"},{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"proposeBySigs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"proposeOnTimelockV1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"queue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"quorumParamsCheckpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"components":[{"internalType":"uint16","name":"minQuorumVotesBPS","type":"uint16"},{"internalType":"uint16","name":"maxQuorumVotesBPS","type":"uint16"},{"internalType":"uint32","name":"quorumCoefficient","type":"uint32"}],"internalType":"struct NounsDAOStorageV3.DynamicQuorumParams","name":"params","type":"tuple"}],"internalType":"struct NounsDAOStorageV3.DynamicQuorumParamsCheckpoint[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"quorumParamsCheckpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"components":[{"internalType":"uint16","name":"minQuorumVotesBPS","type":"uint16"},{"internalType":"uint16","name":"maxQuorumVotesBPS","type":"uint16"},{"internalType":"uint32","name":"quorumCoefficient","type":"uint32"}],"internalType":"struct NounsDAOStorageV3.DynamicQuorumParams","name":"params","type":"tuple"}],"internalType":"struct NounsDAOStorageV3.DynamicQuorumParamsCheckpoint","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"quorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quorumVotesBPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum NounsDAOStorageV3.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"contract INounsDAOExecutor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockV1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"updateMessage","type":"string"}],"name":"updateProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"components":[{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"}],"internalType":"struct NounsDAOStorageV3.ProposerSignature[]","name":"proposerSignatures","type":"tuple[]"},{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"updateMessage","type":"string"}],"name":"updateProposalBySigs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"updateMessage","type":"string"}],"name":"updateProposalDescription","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"updateMessage","type":"string"}],"name":"updateProposalTransactions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"veto","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vetoer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteSnapshotBlockSwitchProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawDAONounsFromEscrowIncreasingTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"withdrawDAONounsFromEscrowToTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"withdrawFromForkEscrow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
608060405234801561001057600080fd5b50615d5680620000216000396000f3fe6080604052600436106105065760003560e01c80637f5ef44511610297578063c3dd69eb11610165578063e23a9a52116100cc578063ea3ecd0f11610085578063ea3ecd0f14610fa6578063ec91deda14610fbb578063f32293d214610fdb578063f4b2a7d614610ff0578063f5f4714c14611005578063fe0d94c11461102557600080fd5b8063e23a9a5214610ed4578063e256077214610f24578063e2742e1814610f44578063e48083fe14610da5578063e5eb5abf14610f71578063e9c714f214610f9157600080fd5b8063d8bff4401161011e578063d8bff44014610e2c578063d93150be14610e4a578063da35c66414610e5f578063da9427c414610e74578063da95691a14610e94578063ddf0b00914610eb457600080fd5b8063c3dd69eb14610d85578063c82fbd0814610da5578063cd0d9eac14610db9578063d27dd11214610dce578063d33219b414610dee578063d3f662e114610e0c57600080fd5b8063a64e024a11610209578063b58131b0116101c2578063b58131b014610ccf578063b5cd5bfa14610ce4578063b71d1a0c14610d04578063bf7a296314610d24578063c10eb14d14610d39578063c37522d414610d6357600080fd5b8063a64e024a14610c2c578063a67d063514610c42578063a78b5f1a14610c60578063a9cf82f014610c80578063abb308b214610ca2578063b112626314610c2c57600080fd5b80638f1314b61161025b5780638f1314b614610b7957806390f8c2f414610b8e5780639547aecb14610bac57806397242b8e14610bcc57806397d048e514610bec5780639a0dfb5314610c0c57600080fd5b80637f5ef44514610aef5780637fa230bd14610b0a57806383cce0e114610b1f578063842e4dae14610b3457806384d1d19914610b5457600080fd5b80633e273334116103d457806355ce73b11161034657806377388b70116102ff57806377388b7014610a265780637757d18d14610a5b5780637a3da69114610a795780637b3c71d314610a995780637bdbe4d014610ab95780637d17aa3a14610acd57600080fd5b806355ce73b1146109635780635678138814610983578063590c1f16146109a357806364c05995146109c3578063705cb335146109e357806374b157b814610a0657600080fd5b806344fac8f61161039857806344fac8f6146108a157806347f4a077146108c157806349e857ea146108ee57806350196db31461090e578063533494131461092e5780635408e7f21461094357600080fd5b80633e273334146107ff5780633e4f49e6146108145780633fde324d1461084157806340e58ee51461086157806344697f981461088157600080fd5b80631e7b5d3a116104785780632df01bdb116104315780632df01bdb14610745578063328dd9821461076557806336a3b5781461079557806338b1c2f6146107aa5780633932abb1146107ca5780633bccf4fd146107df57600080fd5b80631e7b5d3a14610694578063215809ca146106a957806328aa53e4146106be5780632b5ca189146106de5780632cfc81c6146106fe5780632de45f181461071357600080fd5b8063116ce988116104ca578063116ce988146105c957806314a67ea4146105e957806316f1b8cf146105fe57806317977c611461061e5780631d28dec7146106545780631dfb1b5a1461067457600080fd5b8063013cf08b1461051257806302a251a31461054857806306ef9d36146105675780630ea2d98c146105895780630f7b1f08146105a957600080fd5b3661050d57005b600080fd5b34801561051e57600080fd5b5061053261052d366004613efc565b611045565b60405161053f9190613f15565b60405180910390f35b34801561055457600080fd5b506005545b60405190815260200161053f565b34801561057357600080fd5b50610587610582366004613efc565b61114f565b005b34801561059557600080fd5b506105876105a4366004613efc565b6111bd565b3480156105b557600080fd5b506105596105c4366004613efc565b6111fc565b3480156105d557600080fd5b506105876105e4366004613efc565b611208565b3480156105f557600080fd5b50600654610559565b34801561060a57600080fd5b506105596106193660046143ca565b611247565b34801561062a57600080fd5b506105596106393660046144be565b6001600160a01b03166000908152600c602052604090205490565b34801561066057600080fd5b5061058761066f366004613efc565b6112f1565b34801561068057600080fd5b5061058761068f366004613efc565b611330565b3480156106a057600080fd5b506103e8610559565b3480156106b557600080fd5b50611c20610559565b3480156106ca57600080fd5b506105876106d93660046144db565b61136f565b3480156106ea57600080fd5b506105876106f936600461459d565b61178c565b34801561070a57600080fd5b506105876117d0565b34801561071f57600080fd5b50600a546001600160a01b03165b6040516001600160a01b03909116815260200161053f565b34801561075157600080fd5b506105876107603660046144be565b611836565b34801561077157600080fd5b50610785610780366004613efc565b61187d565b60405161053f94939291906146c4565b3480156107a157600080fd5b5061055961189c565b3480156107b657600080fd5b506105596107c5366004614711565b611919565b3480156107d657600080fd5b50600454610559565b3480156107eb57600080fd5b506105876107fa3660046147f3565b61195b565b34801561080b57600080fd5b506105596119ec565b34801561082057600080fd5b5061083461082f366004613efc565b611a03565b60405161053f9190614857565b34801561084d57600080fd5b5061058761085c3660046148c7565b611a81565b34801561086d57600080fd5b5061058761087c366004613efc565b611af1565b34801561088d57600080fd5b5061058761089c366004614908565b611b30565b3480156108ad57600080fd5b506105876108bc366004614953565b611bb8565b3480156108cd57600080fd5b506108e16108dc366004613efc565b611c00565b60405161053f919061497f565b3480156108fa57600080fd5b506105876109093660046149f3565b611c28565b34801561091a57600080fd5b50610587610929366004614a3a565b611c64565b34801561093a57600080fd5b50601654610559565b34801561094f57600080fd5b5061058761095e366004614a55565b611ca6565b34801561096f57600080fd5b5061058761097e366004614a8c565b611d22565b34801561098f57600080fd5b5061058761099e366004614953565b611d60565b3480156109af57600080fd5b506105876109be366004614ad7565b611da8565b3480156109cf57600080fd5b506105876109de366004614b70565b611dec565b3480156109ef57600080fd5b50601054640100000000900463ffffffff16610559565b348015610a1257600080fd5b50610587610a2136600461459d565b611e62565b348015610a3257600080fd5b50610a3b611ea6565b604080516001600160a01b0393841681529290911660208301520161053f565b348015610a6757600080fd5b506011546001600160a01b031661072d565b348015610a8557600080fd5b50610587610a94366004614a3a565b611f26565b348015610aa557600080fd5b50610587610ab4366004614b70565b611f68565b348015610ac557600080fd5b50600a610559565b348015610ad957600080fd5b50601054600160401b900463ffffffff16610559565b348015610afb57600080fd5b5060105463ffffffff16610559565b348015610b1657600080fd5b50610559611fa8565b348015610b2b57600080fd5b50600754610559565b348015610b4057600080fd5b50610587610b4f366004613efc565b611fbf565b348015610b6057600080fd5b50601054600160601b90046001600160a01b031661072d565b348015610b8557600080fd5b50610559611ffe565b348015610b9a57600080fd5b506018546001600160a01b031661072d565b348015610bb857600080fd5b50610587610bc7366004614bc9565b61200a565b348015610bd857600080fd5b50610587610be7366004614c3f565b612203565b348015610bf857600080fd5b50610587610c07366004613efc565b61229d565b348015610c1857600080fd5b50610559610c27366004614d63565b6122dc565b348015610c3857600080fd5b50620189c0610559565b348015610c4e57600080fd5b50600e546001600160a01b031661072d565b348015610c6c57600080fd5b50610587610c7b3660046149f3565b61238c565b348015610c8c57600080fd5b50610c956123c8565b60405161053f9190614e1b565b348015610cae57600080fd5b50610cc2610cbd366004613efc565b61246e565b60405161053f9190614e69565b348015610cdb57600080fd5b5061055961251b565b348015610cf057600080fd5b50610587610cff366004614ad7565b612532565b348015610d1057600080fd5b50610587610d1f3660046144be565b612576565b348015610d3057600080fd5b506105876125bd565b348015610d4557600080fd5b50610d4e6125f5565b6040805192835290151560208301520161053f565b348015610d6f57600080fd5b50610d7861266d565b60405161053f9190614e77565b348015610d9157600080fd5b50610587610da0366004614e8a565b6126d2565b348015610db157600080fd5b506001610559565b348015610dc557600080fd5b50610559612714565b348015610dda57600080fd5b50610587610de93660046149f3565b61274f565b348015610dfa57600080fd5b506009546001600160a01b031661072d565b348015610e1857600080fd5b50610587610e273660046144be565b61278b565b348015610e3857600080fd5b506003546001600160a01b031661072d565b348015610e5657600080fd5b50601554610559565b348015610e6b57600080fd5b50600854610559565b348015610e8057600080fd5b50610587610e8f366004614f03565b6127d2565b348015610ea057600080fd5b50610559610eaf366004614711565b612818565b348015610ec057600080fd5b50610587610ecf366004613efc565b612850565b348015610ee057600080fd5b50610ef4610eef366004615002565b61288f565b6040805182511515815260208084015160ff1690820152918101516001600160601b03169082015260600161053f565b348015610f3057600080fd5b50610587610f3f36600461459d565b61291b565b348015610f5057600080fd5b50610f64610f5f366004613efc565b61295f565b60405161053f9190615032565b348015610f7d57600080fd5b50610587610f8c36600461459d565b612a84565b348015610f9d57600080fd5b50610587612ac8565b348015610fb257600080fd5b50601954610559565b348015610fc757600080fd5b50610587610fd6366004615161565b612b00565b348015610fe757600080fd5b50601754610559565b348015610ffc57600080fd5b50610587612b56565b34801561101157600080fd5b506105876110203660046144be565b612b8e565b34801561103157600080fd5b50610587611040366004613efc565b612bd5565b6110cd604051806101e001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160001515815260200160001515815260200160008152602001600081525090565b6040516310549af960e21b815260006004820152602481018390527392b9adb33886f6cfcc0a763505a1bdf8708b96ed906341526be4906044016101e060405180830381865af4158015611125573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114991906151bf565b92915050565b6040516349e2f96f60e11b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd592906393c5f2de906044015b60006040518083038186803b1580156111a257600080fd5b505af41580156111b6573d6000803e3d6000fd5b5050505050565b60405163adb8355760e01b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063adb835579060440161118a565b60006111498183612c14565b6040516311b5760360e31b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed90638dabb0189060440161118a565b6040805160808101825286815260208101869052808201859052606081018490529051630c2d20bb60e21b81526000917392b9adb33886f6cfcc0a763505a1bdf8708b96ed916330b482ec916112a59185918c9188906004016153bc565b602060405180830381865af41580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e691906153fb565b979650505050505050565b604051636c1578c760e01b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed90636c1578c79060440161118a565b60405163a79aaf2760e01b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063a79aaf279060440161118a565b6009546001600160a01b03161561139957604051630205737f60e61b815260040160405180910390fd5b6000546001600160a01b031633146113c457604051633057182d60e21b815260040160405180910390fd5b6001600160a01b0387166113eb57604051637330d04160e11b815260040160405180910390fd5b6001600160a01b0386166114125760405163d2ef0d7160e01b815260040160405180910390fd5b60405163adb8355760e01b81526000600482015282356024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063adb835579060440160006040518083038186803b15801561146457600080fd5b505af4158015611478573d6000803e3d6000fd5b505060405163a79aaf2760e01b81526000600482015260208501356024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592925063a79aaf27915060440160006040518083038186803b1580156114d157600080fd5b505af41580156114e5573d6000803e3d6000fd5b50506040805163796871d560e11b815260006004820152908501356024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592925063f2d0e3aa915060440160006040518083038186803b15801561153e57600080fd5b505af4158015611552573d6000803e3d6000fd5b5050600980546001600160a01b03199081166001600160a01b038c811691909117909255600a805482168b8416179055601080546001600160601b0316600160601b8b85160217905560118054821689841617905560038054909116918716919091179055506115ea90506115ca6020830183614a3a565b6115da6040840160208501614a3a565b610fd6606085016040860161459d565b733021e4a38e506546dc5dcf3bdb68cc5c049cd5926385a38d346000611616608086016060870161459d565b6040516001600160e01b031960e085901b168152600481019290925263ffffffff16602482015260440160006040518083038186803b15801561165857600080fd5b505af415801561166c573d6000803e3d6000fd5b50733021e4a38e506546dc5dcf3bdb68cc5c049cd5929250638474893a91506000905061169f60a086016080870161459d565b6040516001600160e01b031960e085901b168152600481019290925263ffffffff16602482015260440160006040518083038186803b1580156116e157600080fd5b505af41580156116f5573d6000803e3d6000fd5b50733021e4a38e506546dc5dcf3bdb68cc5c049cd592925063931938d991506000905061172860c0860160a0870161459d565b6040516001600160e01b031960e085901b168152600481019290925263ffffffff1660248201526044015b60006040518083038186803b15801561176b57600080fd5b505af415801561177f573d6000803e3d6000fd5b5050505050505050505050565b60405163bd43440760e01b81526000600482015263ffffffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063bd4344079060440161118a565b60405163a1ef30a160e01b815260006004820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063a1ef30a1906024015b60006040518083038186803b15801561181c57600080fd5b505af4158015611830573d6000803e3d6000fd5b50505050565b60405163a77238a560e01b8152600060048201526001600160a01b0382166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063a77238a59060440161118a565b606080808061188d600086612c70565b93509350935093509193509193565b604051631fb0a1ab60e11b8152600060048201819052907334761eb1bda821ed7b30b51d7fbabbe18fd7574b90633f614356906024015b602060405180830381865af41580156118f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191491906153fb565b905090565b6000611951604051806080016040528088815260200187815260200186815260200185815250836000612f059092919063ffffffff16565b9695505050505050565b604051637b784a4960e01b8152600060048201526024810186905260ff8086166044830152841660648201526084810183905260a4810182905273e5bdc2badaf03a716c8559c8ef274c82df29d0f590637b784a499060c4015b60006040518083038186803b1580156119cd57600080fd5b505af41580156119e1573d6000803e3d6000fd5b505050505050505050565b60006119146119fb6000612f7a565b6000906130f6565b604051630390952560e11b815260006004820181905260248201839052907392b9adb33886f6cfcc0a763505a1bdf8708b96ed906307212a4a90604401602060405180830381865af4158015611a5d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111499190615414565b6040516333fb311b60e21b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063cfecc46c90611abd906000908690869060040161545e565b60006040518083038186803b158015611ad557600080fd5b505af4158015611ae9573d6000803e3d6000fd5b505050505050565b60405163121069ef60e31b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed906390834f789060440161118a565b604051635c97764960e01b8152600060048201526001600160a01b038085166024830152808416604483015282166064820152733021e4a38e506546dc5dcf3bdb68cc5c049cd59290635c977649906084015b60006040518083038186803b158015611b9b57600080fd5b505af4158015611baf573d6000803e3d6000fd5b50505050505050565b60405163473501b760e11b8152600060048201526024810183905260ff8216604482015273e5bdc2badaf03a716c8559c8ef274c82df29d0f590638e6a036e90606401611abd565b6040805160608101825260008082526020820181905291810191909152611149600083613110565b604051633fcfd14760e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b90633fcfd14790611abd90600090869086906004016154aa565b604051632a38c7b160e01b81526000600482015261ffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd59290632a38c7b19060440161118a565b604051631167d67160e21b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063459f59c490611cea906000908a908a908a908a908a908a906004016154c4565b60006040518083038186803b158015611d0257600080fd5b505af4158015611d16573d6000803e3d6000fd5b50505050505050505050565b60405163e6b8f0af60e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b9063e6b8f0af90611b839060009087908790879060040161553f565b60405163233a163f60e11b8152600060048201526024810183905260ff8216604482015273e5bdc2badaf03a716c8559c8ef274c82df29d0f5906346742c7e90606401611abd565b60405163bcac609f60e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b9063bcac609f90611cea906000908a908a908a908a908a908a90600401615572565b6040516346aec09d60e01b815273e5bdc2badaf03a716c8559c8ef274c82df29d0f5906346aec09d90611e2c9060009088908890889088906004016155b4565b60006040518083038186803b158015611e4457600080fd5b505af4158015611e58573d6000803e3d6000fd5b5050505050505050565b60405163931938d960e01b81526000600482015263ffffffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063931938d99060440161118a565b6040516305a15c8360e21b81526000600482018190529081907334761eb1bda821ed7b30b51d7fbabbe18fd7574b90631685720c906024016040805180830381865af4158015611efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e91906155dd565b915091509091565b6040516380ffd06b60e01b81526000600482015261ffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906380ffd06b9060440161118a565b6040516392a364c960e01b815273e5bdc2badaf03a716c8559c8ef274c82df29d0f5906392a364c990611e2c9060009088908890889088906004016155b4565b6000611914611fb76000612f7a565b600090613425565b604051635752203b60e11b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063aea440769060440161118a565b60006119146000612f7a565b60405163a77238a560e01b8152600060048201526001600160a01b0387166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063a77238a59060440160006040518083038186803b15801561206457600080fd5b505af4158015612078573d6000803e3d6000fd5b50506040516302d548bf60e01b8152600060048201526001600160a01b0388166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd59292506302d548bf915060440160006040518083038186803b1580156120d657600080fd5b505af41580156120ea573d6000803e3d6000fd5b5050604051634762cea160e01b8152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929250634762cea1915061212a906000908890889060040161560c565b60006040518083038186803b15801561214257600080fd5b505af4158015612156573d6000803e3d6000fd5b5050604051635752203b60e11b81526000600482015260248101859052733021e4a38e506546dc5dcf3bdb68cc5c049cd592925063aea44076915060440160006040518083038186803b1580156121ac57600080fd5b505af41580156121c0573d6000803e3d6000fd5b50506040516349e2f96f60e11b81526000600482015260248101849052733021e4a38e506546dc5dcf3bdb68cc5c049cd59292506393c5f2de9150604401611cea565b604080516080810182528781526020810187905280820186905260608101859052905163e473627360e01b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9163e473627391612263916000918d918d9189908990600401615664565b60006040518083038186803b15801561227b57600080fd5b505af415801561228f573d6000803e3d6000fd5b505050505050505050505050565b60405163796871d560e11b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063f2d0e3aa9060440161118a565b6040805163af7d88eb60e01b81526004810185905260248101849052825161ffff908116604483015260208401511660648201529082015163ffffffff166084820152600090737e348c4288c7eaa1b0e63e1d0c055bfac04babbf9063af7d88eb9060a401602060405180830381865af415801561235e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238291906153fb565b90505b9392505050565b604051634762cea160e01b8152733021e4a38e506546dc5dcf3bdb68cc5c049cd59290634762cea190611abd906000908690869060040161560c565b60606000600d01805480602002602001604051908101604052809291908181526020016000905b8282101561246557600084815260209081902060408051808201825260028602909201805463ffffffff9081168452825160608101845260019283015461ffff808216835262010000820416828801526401000000009004909116928101929092528284019190915290835290920191016123ef565b50505050905090565b6124a160408051808201825260008082528251606081018452818152602081810183905293810191909152909182015290565b600d8054839081106124b5576124b56156ca565b60009182526020918290206040805180820182526002909302909101805463ffffffff9081168452825160608101845260019092015461ffff80821684526201000082041683870152640100000000900416918101919091529181019190915292915050565b600061191461252a6000612f7a565b600090613442565b60405163fe5cebdb60e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b9063fe5cebdb90611cea906000908a908a908a908a908a908a90600401615572565b6040516354afee2160e01b8152600060048201526001600160a01b0382166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906354afee219060440161118a565b60405163117f658d60e01b815260006004820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063117f658d90602401611804565b604051633fba359560e01b8152600060048201819052908190733021e4a38e506546dc5dcf3bdb68cc5c049cd59290633fba3595906024016040805180830381865af4158015612649573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e91906156e0565b606060006012018054806020026020016040519081016040528092919081815260200182805480156126c857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116126aa575b5050505050905090565b60405163e54ab2b960e01b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063e54ab2b9906119b59060009089908990899089908990600401615703565b604051633840c95f60e01b8152600060048201819052907334761eb1bda821ed7b30b51d7fbabbe18fd7574b90633840c95f906024016118d3565b60405163e46aa49560e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b9063e46aa49590611abd90600090869086906004016154aa565b60405163850da8bf60e01b8152600060048201526001600160a01b0382166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063850da8bf9060440161118a565b604051630d2f400360e31b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063697a001890611753906000908b908b908b908b908b908b908b90600401615736565b60006119516040518060800160405280888152602001878152602001868152602001858152508360006134529092919063ffffffff16565b604051634215da8560e11b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063842bb50a9060440161118a565b604080516060808201835260008083526020808401829052838501829052845180840186528281528082018390528501829052868252600b81528482206001600160a01b0387168352600f01815290849020845192830185525460ff80821615158452610100820416918301919091526201000090046001600160601b03169281019290925290612385565b604051632168e34d60e21b81526000600482015263ffffffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906385a38d349060440161118a565b612a056040518061026001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160001515815260200160001515815260200160008152602001600081526020016060815260200160008152602001600081526020016000151581525090565b60405163100e0d6d60e01b815260006004820152602481018390527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063100e0d6d90604401600060405180830381865af4158015612a5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611149919081019061582d565b60405163423a449d60e11b81526000600482015263ffffffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd59290638474893a9060440161118a565b60405163096d03f360e21b815260006004820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906325b40fcc90602401611804565b6040516327b5eff560e01b81526000600482015261ffff80851660248301528316604482015263ffffffff82166064820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906327b5eff590608401611b83565b604051630712073760e51b815260006004820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063e240e6e090602401611804565b6040516302d548bf60e01b8152600060048201526001600160a01b0382166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906302d548bf9060440161118a565b6040516377aaa1bb60e01b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed906377aaa1bb9060440161118a565b6000818152600b83016020526040812060108101548203612c3a57600301549050611149565b600c81015460108201546011830154612c68929190612c639088906001600160401b0316613110565b61358b565b949350505050565b606080606080600086600b01600087815260200190815260200160002090508060050181600601826007018360080183805480602002602001604051908101604052809291908181526020018280548015612cf457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612cd6575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015612d4657602002820191906000526020600020905b815481526020019060010190808311612d32575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015612e1a578382906000526020600020018054612d8d90615985565b80601f0160208091040260200160405190810160405280929190818152602001828054612db990615985565b8015612e065780601f10612ddb57610100808354040283529160200191612e06565b820191906000526020600020905b815481529060010190602001808311612de957829003601f168201915b505050505081526020019060010190612d6e565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015612eed578382906000526020600020018054612e6090615985565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8c90615985565b8015612ed95780601f10612eae57610100808354040283529160200191612ed9565b820191906000526020600020905b815481529060010190602001808311612ebc57829003601f168201915b505050505081526020019060010190612e41565b50505050905094509450945094505092959194509250565b600080612f13858585613452565b6000818152600b870160205260409081902060138101805460ff191660011790559051919250907f9fb4e5204ac554428e5c744568b78732c229c76c0b5eaebdca7171c41366f6af90612f699084815260200190565b60405180910390a150949350505050565b600081601001600c9054906101000a90046001600160a01b03166001600160a01b0316639b3c1e226040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff591906153fb565b600a83015460098401546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015613045573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306991906153fb565b83600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e291906153fb565b6130ec91906159d5565b61114991906159d5565b60006123856131058443613110565b5161ffff1683613613565b6040805160608101825260008082526020820181905291810191909152600061315183604051806060016040528060408152602001615ce16040913961362c565b600d85015490915060008190036131a857604051806060016040528061317a8760070154613665565b61ffff1681526020016131908760070154613665565b61ffff16815260006020909101529250611149915050565b63ffffffff8216600d86016131be6001846159d5565b815481106131ce576131ce6156ca565b600091825260209091206002909102015463ffffffff161161326157600d85016131f96001836159d5565b81548110613209576132096156ca565b6000918252602091829020604080516060810182526002939093029091016001015461ffff8082168452620100008204169383019390935264010000000090920463ffffffff16918101919091529250611149915050565b8163ffffffff1685600d0160008154811061327e5761327e6156ca565b600091825260209091206002909102015463ffffffff1611156132b357604051806060016040528061317a8760070154613665565b6000806132c16001846159d5565b90505b818111156133b757600060026132da84846159d5565b6132e491906159e8565b6132ee90836159d5565b9050600088600d018281548110613307576133076156ca565b60009182526020918290206040805180820182526002909302909101805463ffffffff9081168452825160608101845260019092015461ffff80821684526201000082041683870152640100000000900481169282019290925292820192909252805190925087821691160361338857602001519550611149945050505050565b805163ffffffff808816911610156133a2578193506133b0565b6133ad6001836159d5565b92505b50506132c4565b86600d0182815481106133cc576133cc6156ca565b6000918252602091829020604080516060810182526002939093029091016001015461ffff8082168452620100008204169383019390935264010000000090920463ffffffff1691810191909152979650505050505050565b60006123856134348443613110565b6020015161ffff1683613613565b6000612385836006015483613613565b60008061345e85612f7a565b600a8601549091506000906135059087906001600160a01b031663782d6fe1336134896001436159d5565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156134d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134f69190615a0a565b6001600160601b03168461368e565b9050613510856136bc565b61351a8633613753565b60008660080154600161352d9190615a33565b8760080181905590506000613545888385878b61380e565b336000908152600c8a0160209081526040808320869055805192835290820190529091506135809082906135798b886130f6565b8a8a613968565b509695505050505050565b6000808361359b86612710615a46565b6135a591906159e8565b90506000620f424082856040015163ffffffff166135c39190615a46565b6135cd91906159e8565b9050600081856000015161ffff166135e59190615a33565b905060006135fb866020015161ffff1683613a58565b90506136078188613613565b98975050505050505050565b60006127106136228484615a46565b61238591906159e8565b60008163ffffffff84111561365d5760405162461bcd60e51b81526004016136549190615a5d565b60405180910390fd5b509192915050565b600061ffff82111561368a5760405163555abf0160e11b815260040160405180910390fd5b5090565b600061369a8483613442565b90508083116123855760405163ead8241560e01b815260040160405180910390fd5b6020810151518151511415806136d9575060408101515181515114155b806136eb575060608101515181515114155b156137095760405163ccb0ce3f60e01b815260040160405180910390fd5b80515160000361372c57604051630f24cd7360e01b815260040160405180910390fd5b805151600a1015613750576040516308e3b1eb60e11b815260040160405180910390fd5b50565b6001600160a01b0381166000908152600c8301602052604090205480156138095760006137808483613a6e565b9050600981600a81111561379657613796614841565b14806137b35750600181600a8111156137b1576137b1614841565b145b806137cf5750600081600a8111156137cd576137cd614841565b145b806137eb5750600a81600a8111156137e9576137e9614841565b145b15611830576040516306bee79560e01b815260040160405180910390fd5b505050565b601085015460009081906138389061383390600160401b900463ffffffff1643615a33565b613c67565b905060008760040154826001600160401b03166138559190615a33565b905060008860050154826138699190615a33565b6000898152600b8b01602090815260409091208a81556001810180546001600160a01b03191633179055600281018a9055875180519197509293506138b49260058801920190613d33565b5060208086015180516138cd9260068801920190613d94565b50604085015180516138e9916007870191602090910190613dcf565b5060608501518051613905916008870191602090910190613e21565b5060098401829055600a84018190556010840186905561392443613c67565b6011850180546001600160401b039283166fffffffffffffffffffffffffffffffff1990911617600160401b95909216949094021790925550909695505050505050565b7f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e085600001543384600001518560200151866040015187606001518b600901548c600a0154896040516139c399989796959493929190615a70565b60405180910390a17f0cc4b35cbed68ce6ca5b3e6560894c6ccc309603ed423fa45554c837dd9a06aa8560000154338685600001518660200151876040015188606001518c600901548d600a01548e60110160089054906101000a90046001600160401b03168f600201548e8d604051613a499d9c9b9a99989796959493929190615b08565b60405180910390a15050505050565b6000818310613a675781612385565b5090919050565b60008183600801541015613ad05760405162461bcd60e51b8152602060048201526024808201527f4e6f756e7344414f3a3a73746174653a20696e76616c69642070726f706f73616044820152631b081a5960e21b6064820152608401613654565b6000828152600b840160205260409020600e810154610100900460ff1615613afc576008915050611149565b600e81015460ff1615613b13576002915050611149565b6011810154600160401b90046001600160401b03164311613b3857600a915050611149565b80600901544311613b4d576000915050611149565b80600a01544311613b62576001915050611149565b6011810154600160801b90046001600160401b03164311613b87576009915050611149565b613b918482613ccf565b15613ba0576003915050611149565b8060040154600003613bb6576004915050611149565b600e81015462010000900460ff1615613bd3576007915050611149565b613bdd8482613cfb565b6001600160a01b031663c1a287e26040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c3e91906153fb565b8160040154613c4d9190615a33565b4210613c5d576006915050611149565b6005915050611149565b60006001600160401b0382111561368a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401613654565b600b810154600c8201546000919081111580612c6857508254613cf3908590612c14565b119392505050565b601381015460009060ff1615613d1f575060188201546001600160a01b0316611149565b5060098201546001600160a01b0316611149565b828054828255906000526020600020908101928215613d88579160200282015b82811115613d8857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613d53565b5061368a929150613e73565b828054828255906000526020600020908101928215613d88579160200282015b82811115613d88578251825591602001919060010190613db4565b828054828255906000526020600020908101928215613e15579160200282015b82811115613e155782518290613e059082615c21565b5091602001919060010190613def565b5061368a929150613e88565b828054828255906000526020600020908101928215613e67579160200282015b82811115613e675782518290613e579082615c21565b5091602001919060010190613e41565b5061368a929150613ea5565b5b8082111561368a5760008155600101613e74565b8082111561368a576000613e9c8282613ec2565b50600101613e88565b8082111561368a576000613eb98282613ec2565b50600101613ea5565b508054613ece90615985565b6000825580601f10613ede575050565b601f0160209004906000526020600020908101906137509190613e73565b600060208284031215613f0e57600080fd5b5035919050565b815181526020808301516101e0830191613f39908401826001600160a01b03169052565b5060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151613fa28285018215159052565b505061016083810151151590830152610180808401511515908301526101a080840151908301526101c092830151929091019190915290565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561401357614013613fdb565b60405290565b6040516101e081016001600160401b038111828210171561401357614013613fdb565b60405161026081016001600160401b038111828210171561401357614013613fdb565b604051601f8201601f191681016001600160401b038111828210171561408757614087613fdb565b604052919050565b60006001600160401b038211156140a8576140a8613fdb565b5060051b60200190565b600082601f8301126140c357600080fd5b81356001600160401b038111156140dc576140dc613fdb565b6140ef601f8201601f191660200161405f565b81815284602083860101111561410457600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b038116811461375057600080fd5b600082601f83011261414757600080fd5b8135602061415c6141578361408f565b61405f565b82815260059290921b8401810191818101908684111561417b57600080fd5b8286015b848110156135805780356001600160401b038082111561419f5760008081fd5b908801906060828b03601f19018113156141b95760008081fd5b6141c1613ff1565b87840135838111156141d35760008081fd5b6141e18d8a838801016140b2565b82525060409250828401356141f581614121565b8189015292013590820152835291830191830161417f565b600082601f83011261421e57600080fd5b8135602061422e6141578361408f565b82815260059290921b8401810191818101908684111561424d57600080fd5b8286015b8481101561358057803561426481614121565b8352918301918301614251565b600082601f83011261428257600080fd5b813560206142926141578361408f565b82815260059290921b840181019181810190868411156142b157600080fd5b8286015b8481101561358057803583529183019183016142b5565b600082601f8301126142dd57600080fd5b813560206142ed6141578361408f565b82815260059290921b8401810191818101908684111561430c57600080fd5b8286015b848110156135805780356001600160401b0381111561432f5760008081fd5b61433d8986838b01016140b2565b845250918301918301614310565b600082601f83011261435c57600080fd5b8135602061436c6141578361408f565b82815260059290921b8401810191818101908684111561438b57600080fd5b8286015b848110156135805780356001600160401b038111156143ae5760008081fd5b6143bc8986838b01016140b2565b84525091830191830161438f565b60008060008060008060c087890312156143e357600080fd5b86356001600160401b03808211156143fa57600080fd5b6144068a838b01614136565b9750602089013591508082111561441c57600080fd5b6144288a838b0161420d565b9650604089013591508082111561443e57600080fd5b61444a8a838b01614271565b9550606089013591508082111561446057600080fd5b61446c8a838b016142cc565b9450608089013591508082111561448257600080fd5b61448e8a838b0161434b565b935060a08901359150808211156144a457600080fd5b506144b189828a016140b2565b9150509295509295509295565b6000602082840312156144d057600080fd5b813561238581614121565b60008060008060008060008789036101c08112156144f857600080fd5b883561450381614121565b9750602089013561451381614121565b9650604089013561452381614121565b9550606089013561453381614121565b9450608089013561454381614121565b935060c0609f198201121561455757600080fd5b60a089019250606061015f198201121561457057600080fd5b506101608801905092959891949750929550565b803563ffffffff8116811461459857600080fd5b919050565b6000602082840312156145af57600080fd5b61238582614584565b600081518084526020808501945080840160005b838110156145f15781516001600160a01b0316875295820195908201906001016145cc565b509495945050505050565b600081518084526020808501945080840160005b838110156145f157815187529582019590820190600101614610565b6000815180845260005b8181101561465257602081850181015186830182015201614636565b506000602082860101526020601f19601f83011685010191505092915050565b6000815180845260208085019450848260051b860182860160005b858110156146b75783830389526146a583835161462c565b9885019892509084019060010161468d565b5090979650505050505050565b6080815260006146d760808301876145b8565b82810360208401526146e981876145fc565b905082810360408401526146fd8186614672565b905082810360608401526112e68185614672565b600080600080600060a0868803121561472957600080fd5b85356001600160401b038082111561474057600080fd5b61474c89838a0161420d565b9650602088013591508082111561476257600080fd5b61476e89838a01614271565b9550604088013591508082111561478457600080fd5b61479089838a016142cc565b945060608801359150808211156147a657600080fd5b6147b289838a0161434b565b935060808801359150808211156147c857600080fd5b506147d5888289016140b2565b9150509295509295909350565b803560ff8116811461459857600080fd5b600080600080600060a0868803121561480b57600080fd5b8535945061481b602087016147e2565b9350614829604087016147e2565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b60208101600b831061487957634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f84011261489157600080fd5b5081356001600160401b038111156148a857600080fd5b6020830191508360208285010111156148c057600080fd5b9250929050565b600080602083850312156148da57600080fd5b82356001600160401b038111156148f057600080fd5b6148fc8582860161487f565b90969095509350505050565b60008060006060848603121561491d57600080fd5b833561492881614121565b9250602084013561493881614121565b9150604084013561494881614121565b809150509250925092565b6000806040838503121561496657600080fd5b82359150614976602084016147e2565b90509250929050565b815161ffff90811682526020808401519091169082015260408083015163ffffffff169082015260608101611149565b60008083601f8401126149c157600080fd5b5081356001600160401b038111156149d857600080fd5b6020830191508360208260051b85010111156148c057600080fd5b60008060208385031215614a0657600080fd5b82356001600160401b03811115614a1c57600080fd5b6148fc858286016149af565b803561ffff8116811461459857600080fd5b600060208284031215614a4c57600080fd5b61238582614a28565b60008060008060008060c08789031215614a6e57600080fd5b8635955060208701356001600160401b038082111561441c57600080fd5b600080600060408486031215614aa157600080fd5b83356001600160401b03811115614ab757600080fd5b614ac3868287016149af565b909450925050602084013561494881614121565b60008060008060008060608789031215614af057600080fd5b86356001600160401b0380821115614b0757600080fd5b614b138a838b016149af565b90985096506020890135915080821115614b2c57600080fd5b614b388a838b016149af565b90965094506040890135915080821115614b5157600080fd5b50614b5e89828a0161487f565b979a9699509497509295939492505050565b60008060008060608587031215614b8657600080fd5b84359350614b96602086016147e2565b925060408501356001600160401b03811115614bb157600080fd5b614bbd8782880161487f565b95989497509550505050565b60008060008060008060a08789031215614be257600080fd5b8635614bed81614121565b95506020870135614bfd81614121565b945060408701356001600160401b03811115614c1857600080fd5b614c2489828a016149af565b979a9699509760608101359660809091013595509350505050565b600080600080600080600080610100898b031215614c5c57600080fd5b8835975060208901356001600160401b0380821115614c7a57600080fd5b614c868c838d01614136565b985060408b0135915080821115614c9c57600080fd5b614ca88c838d0161420d565b975060608b0135915080821115614cbe57600080fd5b614cca8c838d01614271565b965060808b0135915080821115614ce057600080fd5b614cec8c838d016142cc565b955060a08b0135915080821115614d0257600080fd5b614d0e8c838d0161434b565b945060c08b0135915080821115614d2457600080fd5b614d308c838d016140b2565b935060e08b0135915080821115614d4657600080fd5b50614d538b828c016140b2565b9150509295985092959890939650565b600080600083850360a0811215614d7957600080fd5b84359350602085013592506060603f1982011215614d9657600080fd5b50614d9f613ff1565b614dab60408601614a28565b8152614db960608601614a28565b6020820152614dca60808601614584565b6040820152809150509250925092565b63ffffffff81511682526020810151613809602084018261ffff8082511683528060208301511660208401525063ffffffff60408201511660408301525050565b6020808252825182820181905260009190848201906040850190845b81811015614e5d57614e4a838551614dda565b9284019260809290920191600101614e37565b50909695505050505050565b608081016111498284614dda565b60208152600061238560208301846145b8565b600080600080600060608688031215614ea257600080fd5b8535945060208601356001600160401b0380821115614ec057600080fd5b614ecc89838a0161487f565b90965094506040880135915080821115614ee557600080fd5b50614ef28882890161487f565b969995985093965092949392505050565b600080600080600080600060e0888a031215614f1e57600080fd5b8735965060208801356001600160401b0380821115614f3c57600080fd5b614f488b838c0161420d565b975060408a0135915080821115614f5e57600080fd5b614f6a8b838c01614271565b965060608a0135915080821115614f8057600080fd5b614f8c8b838c016142cc565b955060808a0135915080821115614fa257600080fd5b614fae8b838c0161434b565b945060a08a0135915080821115614fc457600080fd5b614fd08b838c016140b2565b935060c08a0135915080821115614fe657600080fd5b50614ff38a828b016140b2565b91505092959891949750929550565b6000806040838503121561501557600080fd5b82359150602083013561502781614121565b809150509250929050565b60208152815160208201526000602083015161505960408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506101208181850152808501519150506101408181850152808501519150506101606150ce8185018315159052565b84015190506101806150e38482018315159052565b84015190506101a06150f88482018315159052565b8401516101c0848101919091528401516101e080850191909152840151610260610200808601829052919250906151336102808601846145b8565b9086015161022086810191909152860151610240808701919091529095015115159301929092525090919050565b60008060006060848603121561517657600080fd5b61517f84614a28565b925061518d60208501614a28565b915061519b60408501614584565b90509250925092565b805161459881614121565b8051801515811461459857600080fd5b60006101e082840312156151d257600080fd5b6151da614019565b825181526151ea602084016151a4565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406152518185016151af565b908201526101606152638482016151af565b908201526101806152758482016151af565b908201526101a083810151908201526101c0928301519281019290925250919050565b6000815180845260208085019450848260051b860182860160005b858110156146b75783830389528151606081518186526152d58287018261462c565b838901516001600160a01b0316878a01526040938401519390960192909252505097840197908401906001016152b3565b600082825180855260208086019550808260051b84010181860160005b848110156146b757601f1986840301895261533f83835161462c565b98840198925090830190600101615323565b600081516080845261536660808501826145b8565b90506020830151848203602086015261537f82826145fc565b915050604083015184820360408601526153998282615306565b915050606083015184820360608601526153b38282614672565b95945050505050565b8481526080602082015260006153d56080830186615298565b82810360408401526153e78186615351565b905082810360608401526112e6818561462c565b60006020828403121561540d57600080fd5b5051919050565b60006020828403121561542657600080fd5b8151600b811061238557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8381526040602082015260006153b3604083018486615435565b81835260006001600160fb1b0383111561549157600080fd5b8260051b80836020870137939093016020019392505050565b8381526040602082015260006153b3604083018486615478565b87815286602082015260e0604082015260006154e360e08301886145b8565b82810360608401526154f581886145fc565b905082810360808401526155098187615306565b905082810360a084015261551d8186614672565b905082810360c0840152615531818561462c565b9a9950505050505050505050565b848152606060208201526000615559606083018587615478565b905060018060a01b038316604083015295945050505050565b87815260806020820152600061558c60808301888a615478565b828103604084015261559f818789615478565b90508281036060840152615531818587615435565b85815284602082015260ff841660408201526080606082015260006112e6608083018486615435565b600080604083850312156155f057600080fd5b82516155fb81614121565b602084015190925061502781614121565b83815260406020808301829052908201839052600090849060608401835b8681101561565857833561563d81614121565b6001600160a01b03168252928201929082019060010161562a565b50979650505050505050565b86815285602082015260c06040820152600061568360c0830187615298565b82810360608401526156958187615351565b905082810360808401526156a9818661462c565b905082810360a08401526156bd818561462c565b9998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600080604083850312156156f357600080fd5b82519150614976602084016151af565b868152856020820152608060408201526000615723608083018688615435565b82810360608401526156bd818587615435565b60006101008a83528960208401528060408401526157568184018a6145b8565b9050828103606084015261576a81896145fc565b9050828103608084015261577e8188615306565b905082810360a08401526157928187614672565b905082810360c08401526157a6818661462c565b905082810360e08401526157ba818561462c565b9b9a5050505050505050505050565b600082601f8301126157da57600080fd5b815160206157ea6141578361408f565b82815260059290921b8401810191818101908684111561580957600080fd5b8286015b8481101561358057805161582081614121565b835291830191830161580d565b60006020828403121561583f57600080fd5b81516001600160401b038082111561585657600080fd5b90830190610260828603121561586b57600080fd5b61587361403c565b82518152615883602084016151a4565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406158ea8185016151af565b908201526101606158fc8482016151af565b9082015261018061590e8482016151af565b908201526101a083810151908201526101c080840151908201526101e0808401518381111561593c57600080fd5b615948888287016157c9565b91830191909152506102008381015190820152610220808401519082015261024091506159768284016151af565b91810191909152949350505050565b600181811c9082168061599957607f821691505b6020821081036159b957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611149576111496159bf565b600082615a0557634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615a1c57600080fd5b81516001600160601b038116811461238557600080fd5b80820180821115611149576111496159bf565b8082028115828204841417611149576111496159bf565b602081526000612385602083018461462c565b8981526001600160a01b038916602082015261012060408201819052600090615a9b8382018b6145b8565b90508281036060840152615aaf818a6145fc565b90508281036080840152615ac38189614672565b905082810360a0840152615ad78188614672565b90508560c08401528460e0840152828103610100840152615af8818561462c565b9c9b505050505050505050505050565b8d81526001600160a01b038d1660208201526101a060408201526000615b326101a083018e6145b8565b8281036060840152615b44818e6145b8565b90508281036080840152615b58818d6145fc565b905082810360a0840152615b6c818c614672565b905082810360c0840152615b80818b614672565b90508860e084015287610100840152615ba56101208401886001600160401b03169052565b8561014084015284610160840152828103610180840152615bc6818561462c565b9150509e9d5050505050505050505050505050565b601f82111561380957600081815260208120601f850160051c81016020861015615c025750805b601f850160051c820191505b81811015611ae957828155600101615c0e565b81516001600160401b03811115615c3a57615c3a613fdb565b615c4e81615c488454615985565b84615bdb565b602080601f831160018114615c835760008415615c6b5750858301515b600019600386901b1c1916600185901b178555611ae9565b600085815260208120601f198616915b82811015615cb257888601518255948401946001909101908401615c93565b5085821015615cd05787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe4e6f756e7344414f3a3a67657444796e616d696351756f72756d506172616d7341743a20626c6f636b206e756d62657220657863656564732033322062697473a2646970667358221220d41fa7c13676d35dc71c2ed6a58986de654a51f64eac125051175914ffdd1df764736f6c63430008130033
Deployed Bytecode
0x6080604052600436106105065760003560e01c80637f5ef44511610297578063c3dd69eb11610165578063e23a9a52116100cc578063ea3ecd0f11610085578063ea3ecd0f14610fa6578063ec91deda14610fbb578063f32293d214610fdb578063f4b2a7d614610ff0578063f5f4714c14611005578063fe0d94c11461102557600080fd5b8063e23a9a5214610ed4578063e256077214610f24578063e2742e1814610f44578063e48083fe14610da5578063e5eb5abf14610f71578063e9c714f214610f9157600080fd5b8063d8bff4401161011e578063d8bff44014610e2c578063d93150be14610e4a578063da35c66414610e5f578063da9427c414610e74578063da95691a14610e94578063ddf0b00914610eb457600080fd5b8063c3dd69eb14610d85578063c82fbd0814610da5578063cd0d9eac14610db9578063d27dd11214610dce578063d33219b414610dee578063d3f662e114610e0c57600080fd5b8063a64e024a11610209578063b58131b0116101c2578063b58131b014610ccf578063b5cd5bfa14610ce4578063b71d1a0c14610d04578063bf7a296314610d24578063c10eb14d14610d39578063c37522d414610d6357600080fd5b8063a64e024a14610c2c578063a67d063514610c42578063a78b5f1a14610c60578063a9cf82f014610c80578063abb308b214610ca2578063b112626314610c2c57600080fd5b80638f1314b61161025b5780638f1314b614610b7957806390f8c2f414610b8e5780639547aecb14610bac57806397242b8e14610bcc57806397d048e514610bec5780639a0dfb5314610c0c57600080fd5b80637f5ef44514610aef5780637fa230bd14610b0a57806383cce0e114610b1f578063842e4dae14610b3457806384d1d19914610b5457600080fd5b80633e273334116103d457806355ce73b11161034657806377388b70116102ff57806377388b7014610a265780637757d18d14610a5b5780637a3da69114610a795780637b3c71d314610a995780637bdbe4d014610ab95780637d17aa3a14610acd57600080fd5b806355ce73b1146109635780635678138814610983578063590c1f16146109a357806364c05995146109c3578063705cb335146109e357806374b157b814610a0657600080fd5b806344fac8f61161039857806344fac8f6146108a157806347f4a077146108c157806349e857ea146108ee57806350196db31461090e578063533494131461092e5780635408e7f21461094357600080fd5b80633e273334146107ff5780633e4f49e6146108145780633fde324d1461084157806340e58ee51461086157806344697f981461088157600080fd5b80631e7b5d3a116104785780632df01bdb116104315780632df01bdb14610745578063328dd9821461076557806336a3b5781461079557806338b1c2f6146107aa5780633932abb1146107ca5780633bccf4fd146107df57600080fd5b80631e7b5d3a14610694578063215809ca146106a957806328aa53e4146106be5780632b5ca189146106de5780632cfc81c6146106fe5780632de45f181461071357600080fd5b8063116ce988116104ca578063116ce988146105c957806314a67ea4146105e957806316f1b8cf146105fe57806317977c611461061e5780631d28dec7146106545780631dfb1b5a1461067457600080fd5b8063013cf08b1461051257806302a251a31461054857806306ef9d36146105675780630ea2d98c146105895780630f7b1f08146105a957600080fd5b3661050d57005b600080fd5b34801561051e57600080fd5b5061053261052d366004613efc565b611045565b60405161053f9190613f15565b60405180910390f35b34801561055457600080fd5b506005545b60405190815260200161053f565b34801561057357600080fd5b50610587610582366004613efc565b61114f565b005b34801561059557600080fd5b506105876105a4366004613efc565b6111bd565b3480156105b557600080fd5b506105596105c4366004613efc565b6111fc565b3480156105d557600080fd5b506105876105e4366004613efc565b611208565b3480156105f557600080fd5b50600654610559565b34801561060a57600080fd5b506105596106193660046143ca565b611247565b34801561062a57600080fd5b506105596106393660046144be565b6001600160a01b03166000908152600c602052604090205490565b34801561066057600080fd5b5061058761066f366004613efc565b6112f1565b34801561068057600080fd5b5061058761068f366004613efc565b611330565b3480156106a057600080fd5b506103e8610559565b3480156106b557600080fd5b50611c20610559565b3480156106ca57600080fd5b506105876106d93660046144db565b61136f565b3480156106ea57600080fd5b506105876106f936600461459d565b61178c565b34801561070a57600080fd5b506105876117d0565b34801561071f57600080fd5b50600a546001600160a01b03165b6040516001600160a01b03909116815260200161053f565b34801561075157600080fd5b506105876107603660046144be565b611836565b34801561077157600080fd5b50610785610780366004613efc565b61187d565b60405161053f94939291906146c4565b3480156107a157600080fd5b5061055961189c565b3480156107b657600080fd5b506105596107c5366004614711565b611919565b3480156107d657600080fd5b50600454610559565b3480156107eb57600080fd5b506105876107fa3660046147f3565b61195b565b34801561080b57600080fd5b506105596119ec565b34801561082057600080fd5b5061083461082f366004613efc565b611a03565b60405161053f9190614857565b34801561084d57600080fd5b5061058761085c3660046148c7565b611a81565b34801561086d57600080fd5b5061058761087c366004613efc565b611af1565b34801561088d57600080fd5b5061058761089c366004614908565b611b30565b3480156108ad57600080fd5b506105876108bc366004614953565b611bb8565b3480156108cd57600080fd5b506108e16108dc366004613efc565b611c00565b60405161053f919061497f565b3480156108fa57600080fd5b506105876109093660046149f3565b611c28565b34801561091a57600080fd5b50610587610929366004614a3a565b611c64565b34801561093a57600080fd5b50601654610559565b34801561094f57600080fd5b5061058761095e366004614a55565b611ca6565b34801561096f57600080fd5b5061058761097e366004614a8c565b611d22565b34801561098f57600080fd5b5061058761099e366004614953565b611d60565b3480156109af57600080fd5b506105876109be366004614ad7565b611da8565b3480156109cf57600080fd5b506105876109de366004614b70565b611dec565b3480156109ef57600080fd5b50601054640100000000900463ffffffff16610559565b348015610a1257600080fd5b50610587610a2136600461459d565b611e62565b348015610a3257600080fd5b50610a3b611ea6565b604080516001600160a01b0393841681529290911660208301520161053f565b348015610a6757600080fd5b506011546001600160a01b031661072d565b348015610a8557600080fd5b50610587610a94366004614a3a565b611f26565b348015610aa557600080fd5b50610587610ab4366004614b70565b611f68565b348015610ac557600080fd5b50600a610559565b348015610ad957600080fd5b50601054600160401b900463ffffffff16610559565b348015610afb57600080fd5b5060105463ffffffff16610559565b348015610b1657600080fd5b50610559611fa8565b348015610b2b57600080fd5b50600754610559565b348015610b4057600080fd5b50610587610b4f366004613efc565b611fbf565b348015610b6057600080fd5b50601054600160601b90046001600160a01b031661072d565b348015610b8557600080fd5b50610559611ffe565b348015610b9a57600080fd5b506018546001600160a01b031661072d565b348015610bb857600080fd5b50610587610bc7366004614bc9565b61200a565b348015610bd857600080fd5b50610587610be7366004614c3f565b612203565b348015610bf857600080fd5b50610587610c07366004613efc565b61229d565b348015610c1857600080fd5b50610559610c27366004614d63565b6122dc565b348015610c3857600080fd5b50620189c0610559565b348015610c4e57600080fd5b50600e546001600160a01b031661072d565b348015610c6c57600080fd5b50610587610c7b3660046149f3565b61238c565b348015610c8c57600080fd5b50610c956123c8565b60405161053f9190614e1b565b348015610cae57600080fd5b50610cc2610cbd366004613efc565b61246e565b60405161053f9190614e69565b348015610cdb57600080fd5b5061055961251b565b348015610cf057600080fd5b50610587610cff366004614ad7565b612532565b348015610d1057600080fd5b50610587610d1f3660046144be565b612576565b348015610d3057600080fd5b506105876125bd565b348015610d4557600080fd5b50610d4e6125f5565b6040805192835290151560208301520161053f565b348015610d6f57600080fd5b50610d7861266d565b60405161053f9190614e77565b348015610d9157600080fd5b50610587610da0366004614e8a565b6126d2565b348015610db157600080fd5b506001610559565b348015610dc557600080fd5b50610559612714565b348015610dda57600080fd5b50610587610de93660046149f3565b61274f565b348015610dfa57600080fd5b506009546001600160a01b031661072d565b348015610e1857600080fd5b50610587610e273660046144be565b61278b565b348015610e3857600080fd5b506003546001600160a01b031661072d565b348015610e5657600080fd5b50601554610559565b348015610e6b57600080fd5b50600854610559565b348015610e8057600080fd5b50610587610e8f366004614f03565b6127d2565b348015610ea057600080fd5b50610559610eaf366004614711565b612818565b348015610ec057600080fd5b50610587610ecf366004613efc565b612850565b348015610ee057600080fd5b50610ef4610eef366004615002565b61288f565b6040805182511515815260208084015160ff1690820152918101516001600160601b03169082015260600161053f565b348015610f3057600080fd5b50610587610f3f36600461459d565b61291b565b348015610f5057600080fd5b50610f64610f5f366004613efc565b61295f565b60405161053f9190615032565b348015610f7d57600080fd5b50610587610f8c36600461459d565b612a84565b348015610f9d57600080fd5b50610587612ac8565b348015610fb257600080fd5b50601954610559565b348015610fc757600080fd5b50610587610fd6366004615161565b612b00565b348015610fe757600080fd5b50601754610559565b348015610ffc57600080fd5b50610587612b56565b34801561101157600080fd5b506105876110203660046144be565b612b8e565b34801561103157600080fd5b50610587611040366004613efc565b612bd5565b6110cd604051806101e001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160001515815260200160001515815260200160008152602001600081525090565b6040516310549af960e21b815260006004820152602481018390527392b9adb33886f6cfcc0a763505a1bdf8708b96ed906341526be4906044016101e060405180830381865af4158015611125573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114991906151bf565b92915050565b6040516349e2f96f60e11b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd592906393c5f2de906044015b60006040518083038186803b1580156111a257600080fd5b505af41580156111b6573d6000803e3d6000fd5b5050505050565b60405163adb8355760e01b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063adb835579060440161118a565b60006111498183612c14565b6040516311b5760360e31b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed90638dabb0189060440161118a565b6040805160808101825286815260208101869052808201859052606081018490529051630c2d20bb60e21b81526000917392b9adb33886f6cfcc0a763505a1bdf8708b96ed916330b482ec916112a59185918c9188906004016153bc565b602060405180830381865af41580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e691906153fb565b979650505050505050565b604051636c1578c760e01b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed90636c1578c79060440161118a565b60405163a79aaf2760e01b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063a79aaf279060440161118a565b6009546001600160a01b03161561139957604051630205737f60e61b815260040160405180910390fd5b6000546001600160a01b031633146113c457604051633057182d60e21b815260040160405180910390fd5b6001600160a01b0387166113eb57604051637330d04160e11b815260040160405180910390fd5b6001600160a01b0386166114125760405163d2ef0d7160e01b815260040160405180910390fd5b60405163adb8355760e01b81526000600482015282356024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063adb835579060440160006040518083038186803b15801561146457600080fd5b505af4158015611478573d6000803e3d6000fd5b505060405163a79aaf2760e01b81526000600482015260208501356024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592925063a79aaf27915060440160006040518083038186803b1580156114d157600080fd5b505af41580156114e5573d6000803e3d6000fd5b50506040805163796871d560e11b815260006004820152908501356024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592925063f2d0e3aa915060440160006040518083038186803b15801561153e57600080fd5b505af4158015611552573d6000803e3d6000fd5b5050600980546001600160a01b03199081166001600160a01b038c811691909117909255600a805482168b8416179055601080546001600160601b0316600160601b8b85160217905560118054821689841617905560038054909116918716919091179055506115ea90506115ca6020830183614a3a565b6115da6040840160208501614a3a565b610fd6606085016040860161459d565b733021e4a38e506546dc5dcf3bdb68cc5c049cd5926385a38d346000611616608086016060870161459d565b6040516001600160e01b031960e085901b168152600481019290925263ffffffff16602482015260440160006040518083038186803b15801561165857600080fd5b505af415801561166c573d6000803e3d6000fd5b50733021e4a38e506546dc5dcf3bdb68cc5c049cd5929250638474893a91506000905061169f60a086016080870161459d565b6040516001600160e01b031960e085901b168152600481019290925263ffffffff16602482015260440160006040518083038186803b1580156116e157600080fd5b505af41580156116f5573d6000803e3d6000fd5b50733021e4a38e506546dc5dcf3bdb68cc5c049cd592925063931938d991506000905061172860c0860160a0870161459d565b6040516001600160e01b031960e085901b168152600481019290925263ffffffff1660248201526044015b60006040518083038186803b15801561176b57600080fd5b505af415801561177f573d6000803e3d6000fd5b5050505050505050505050565b60405163bd43440760e01b81526000600482015263ffffffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063bd4344079060440161118a565b60405163a1ef30a160e01b815260006004820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063a1ef30a1906024015b60006040518083038186803b15801561181c57600080fd5b505af4158015611830573d6000803e3d6000fd5b50505050565b60405163a77238a560e01b8152600060048201526001600160a01b0382166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063a77238a59060440161118a565b606080808061188d600086612c70565b93509350935093509193509193565b604051631fb0a1ab60e11b8152600060048201819052907334761eb1bda821ed7b30b51d7fbabbe18fd7574b90633f614356906024015b602060405180830381865af41580156118f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191491906153fb565b905090565b6000611951604051806080016040528088815260200187815260200186815260200185815250836000612f059092919063ffffffff16565b9695505050505050565b604051637b784a4960e01b8152600060048201526024810186905260ff8086166044830152841660648201526084810183905260a4810182905273e5bdc2badaf03a716c8559c8ef274c82df29d0f590637b784a499060c4015b60006040518083038186803b1580156119cd57600080fd5b505af41580156119e1573d6000803e3d6000fd5b505050505050505050565b60006119146119fb6000612f7a565b6000906130f6565b604051630390952560e11b815260006004820181905260248201839052907392b9adb33886f6cfcc0a763505a1bdf8708b96ed906307212a4a90604401602060405180830381865af4158015611a5d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111499190615414565b6040516333fb311b60e21b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063cfecc46c90611abd906000908690869060040161545e565b60006040518083038186803b158015611ad557600080fd5b505af4158015611ae9573d6000803e3d6000fd5b505050505050565b60405163121069ef60e31b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed906390834f789060440161118a565b604051635c97764960e01b8152600060048201526001600160a01b038085166024830152808416604483015282166064820152733021e4a38e506546dc5dcf3bdb68cc5c049cd59290635c977649906084015b60006040518083038186803b158015611b9b57600080fd5b505af4158015611baf573d6000803e3d6000fd5b50505050505050565b60405163473501b760e11b8152600060048201526024810183905260ff8216604482015273e5bdc2badaf03a716c8559c8ef274c82df29d0f590638e6a036e90606401611abd565b6040805160608101825260008082526020820181905291810191909152611149600083613110565b604051633fcfd14760e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b90633fcfd14790611abd90600090869086906004016154aa565b604051632a38c7b160e01b81526000600482015261ffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd59290632a38c7b19060440161118a565b604051631167d67160e21b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063459f59c490611cea906000908a908a908a908a908a908a906004016154c4565b60006040518083038186803b158015611d0257600080fd5b505af4158015611d16573d6000803e3d6000fd5b50505050505050505050565b60405163e6b8f0af60e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b9063e6b8f0af90611b839060009087908790879060040161553f565b60405163233a163f60e11b8152600060048201526024810183905260ff8216604482015273e5bdc2badaf03a716c8559c8ef274c82df29d0f5906346742c7e90606401611abd565b60405163bcac609f60e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b9063bcac609f90611cea906000908a908a908a908a908a908a90600401615572565b6040516346aec09d60e01b815273e5bdc2badaf03a716c8559c8ef274c82df29d0f5906346aec09d90611e2c9060009088908890889088906004016155b4565b60006040518083038186803b158015611e4457600080fd5b505af4158015611e58573d6000803e3d6000fd5b5050505050505050565b60405163931938d960e01b81526000600482015263ffffffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063931938d99060440161118a565b6040516305a15c8360e21b81526000600482018190529081907334761eb1bda821ed7b30b51d7fbabbe18fd7574b90631685720c906024016040805180830381865af4158015611efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e91906155dd565b915091509091565b6040516380ffd06b60e01b81526000600482015261ffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906380ffd06b9060440161118a565b6040516392a364c960e01b815273e5bdc2badaf03a716c8559c8ef274c82df29d0f5906392a364c990611e2c9060009088908890889088906004016155b4565b6000611914611fb76000612f7a565b600090613425565b604051635752203b60e11b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063aea440769060440161118a565b60006119146000612f7a565b60405163a77238a560e01b8152600060048201526001600160a01b0387166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063a77238a59060440160006040518083038186803b15801561206457600080fd5b505af4158015612078573d6000803e3d6000fd5b50506040516302d548bf60e01b8152600060048201526001600160a01b0388166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd59292506302d548bf915060440160006040518083038186803b1580156120d657600080fd5b505af41580156120ea573d6000803e3d6000fd5b5050604051634762cea160e01b8152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929250634762cea1915061212a906000908890889060040161560c565b60006040518083038186803b15801561214257600080fd5b505af4158015612156573d6000803e3d6000fd5b5050604051635752203b60e11b81526000600482015260248101859052733021e4a38e506546dc5dcf3bdb68cc5c049cd592925063aea44076915060440160006040518083038186803b1580156121ac57600080fd5b505af41580156121c0573d6000803e3d6000fd5b50506040516349e2f96f60e11b81526000600482015260248101849052733021e4a38e506546dc5dcf3bdb68cc5c049cd59292506393c5f2de9150604401611cea565b604080516080810182528781526020810187905280820186905260608101859052905163e473627360e01b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9163e473627391612263916000918d918d9189908990600401615664565b60006040518083038186803b15801561227b57600080fd5b505af415801561228f573d6000803e3d6000fd5b505050505050505050505050565b60405163796871d560e11b81526000600482015260248101829052733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063f2d0e3aa9060440161118a565b6040805163af7d88eb60e01b81526004810185905260248101849052825161ffff908116604483015260208401511660648201529082015163ffffffff166084820152600090737e348c4288c7eaa1b0e63e1d0c055bfac04babbf9063af7d88eb9060a401602060405180830381865af415801561235e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238291906153fb565b90505b9392505050565b604051634762cea160e01b8152733021e4a38e506546dc5dcf3bdb68cc5c049cd59290634762cea190611abd906000908690869060040161560c565b60606000600d01805480602002602001604051908101604052809291908181526020016000905b8282101561246557600084815260209081902060408051808201825260028602909201805463ffffffff9081168452825160608101845260019283015461ffff808216835262010000820416828801526401000000009004909116928101929092528284019190915290835290920191016123ef565b50505050905090565b6124a160408051808201825260008082528251606081018452818152602081810183905293810191909152909182015290565b600d8054839081106124b5576124b56156ca565b60009182526020918290206040805180820182526002909302909101805463ffffffff9081168452825160608101845260019092015461ffff80821684526201000082041683870152640100000000900416918101919091529181019190915292915050565b600061191461252a6000612f7a565b600090613442565b60405163fe5cebdb60e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b9063fe5cebdb90611cea906000908a908a908a908a908a908a90600401615572565b6040516354afee2160e01b8152600060048201526001600160a01b0382166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906354afee219060440161118a565b60405163117f658d60e01b815260006004820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063117f658d90602401611804565b604051633fba359560e01b8152600060048201819052908190733021e4a38e506546dc5dcf3bdb68cc5c049cd59290633fba3595906024016040805180830381865af4158015612649573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e91906156e0565b606060006012018054806020026020016040519081016040528092919081815260200182805480156126c857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116126aa575b5050505050905090565b60405163e54ab2b960e01b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063e54ab2b9906119b59060009089908990899089908990600401615703565b604051633840c95f60e01b8152600060048201819052907334761eb1bda821ed7b30b51d7fbabbe18fd7574b90633840c95f906024016118d3565b60405163e46aa49560e01b81527334761eb1bda821ed7b30b51d7fbabbe18fd7574b9063e46aa49590611abd90600090869086906004016154aa565b60405163850da8bf60e01b8152600060048201526001600160a01b0382166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063850da8bf9060440161118a565b604051630d2f400360e31b81527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063697a001890611753906000908b908b908b908b908b908b908b90600401615736565b60006119516040518060800160405280888152602001878152602001868152602001858152508360006134529092919063ffffffff16565b604051634215da8560e11b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063842bb50a9060440161118a565b604080516060808201835260008083526020808401829052838501829052845180840186528281528082018390528501829052868252600b81528482206001600160a01b0387168352600f01815290849020845192830185525460ff80821615158452610100820416918301919091526201000090046001600160601b03169281019290925290612385565b604051632168e34d60e21b81526000600482015263ffffffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906385a38d349060440161118a565b612a056040518061026001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160001515815260200160001515815260200160008152602001600081526020016060815260200160008152602001600081526020016000151581525090565b60405163100e0d6d60e01b815260006004820152602481018390527392b9adb33886f6cfcc0a763505a1bdf8708b96ed9063100e0d6d90604401600060405180830381865af4158015612a5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611149919081019061582d565b60405163423a449d60e11b81526000600482015263ffffffff82166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd59290638474893a9060440161118a565b60405163096d03f360e21b815260006004820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906325b40fcc90602401611804565b6040516327b5eff560e01b81526000600482015261ffff80851660248301528316604482015263ffffffff82166064820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906327b5eff590608401611b83565b604051630712073760e51b815260006004820152733021e4a38e506546dc5dcf3bdb68cc5c049cd5929063e240e6e090602401611804565b6040516302d548bf60e01b8152600060048201526001600160a01b0382166024820152733021e4a38e506546dc5dcf3bdb68cc5c049cd592906302d548bf9060440161118a565b6040516377aaa1bb60e01b815260006004820152602481018290527392b9adb33886f6cfcc0a763505a1bdf8708b96ed906377aaa1bb9060440161118a565b6000818152600b83016020526040812060108101548203612c3a57600301549050611149565b600c81015460108201546011830154612c68929190612c639088906001600160401b0316613110565b61358b565b949350505050565b606080606080600086600b01600087815260200190815260200160002090508060050181600601826007018360080183805480602002602001604051908101604052809291908181526020018280548015612cf457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612cd6575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015612d4657602002820191906000526020600020905b815481526020019060010190808311612d32575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015612e1a578382906000526020600020018054612d8d90615985565b80601f0160208091040260200160405190810160405280929190818152602001828054612db990615985565b8015612e065780601f10612ddb57610100808354040283529160200191612e06565b820191906000526020600020905b815481529060010190602001808311612de957829003601f168201915b505050505081526020019060010190612d6e565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015612eed578382906000526020600020018054612e6090615985565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8c90615985565b8015612ed95780601f10612eae57610100808354040283529160200191612ed9565b820191906000526020600020905b815481529060010190602001808311612ebc57829003601f168201915b505050505081526020019060010190612e41565b50505050905094509450945094505092959194509250565b600080612f13858585613452565b6000818152600b870160205260409081902060138101805460ff191660011790559051919250907f9fb4e5204ac554428e5c744568b78732c229c76c0b5eaebdca7171c41366f6af90612f699084815260200190565b60405180910390a150949350505050565b600081601001600c9054906101000a90046001600160a01b03166001600160a01b0316639b3c1e226040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff591906153fb565b600a83015460098401546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015613045573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306991906153fb565b83600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e291906153fb565b6130ec91906159d5565b61114991906159d5565b60006123856131058443613110565b5161ffff1683613613565b6040805160608101825260008082526020820181905291810191909152600061315183604051806060016040528060408152602001615ce16040913961362c565b600d85015490915060008190036131a857604051806060016040528061317a8760070154613665565b61ffff1681526020016131908760070154613665565b61ffff16815260006020909101529250611149915050565b63ffffffff8216600d86016131be6001846159d5565b815481106131ce576131ce6156ca565b600091825260209091206002909102015463ffffffff161161326157600d85016131f96001836159d5565b81548110613209576132096156ca565b6000918252602091829020604080516060810182526002939093029091016001015461ffff8082168452620100008204169383019390935264010000000090920463ffffffff16918101919091529250611149915050565b8163ffffffff1685600d0160008154811061327e5761327e6156ca565b600091825260209091206002909102015463ffffffff1611156132b357604051806060016040528061317a8760070154613665565b6000806132c16001846159d5565b90505b818111156133b757600060026132da84846159d5565b6132e491906159e8565b6132ee90836159d5565b9050600088600d018281548110613307576133076156ca565b60009182526020918290206040805180820182526002909302909101805463ffffffff9081168452825160608101845260019092015461ffff80821684526201000082041683870152640100000000900481169282019290925292820192909252805190925087821691160361338857602001519550611149945050505050565b805163ffffffff808816911610156133a2578193506133b0565b6133ad6001836159d5565b92505b50506132c4565b86600d0182815481106133cc576133cc6156ca565b6000918252602091829020604080516060810182526002939093029091016001015461ffff8082168452620100008204169383019390935264010000000090920463ffffffff1691810191909152979650505050505050565b60006123856134348443613110565b6020015161ffff1683613613565b6000612385836006015483613613565b60008061345e85612f7a565b600a8601549091506000906135059087906001600160a01b031663782d6fe1336134896001436159d5565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156134d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134f69190615a0a565b6001600160601b03168461368e565b9050613510856136bc565b61351a8633613753565b60008660080154600161352d9190615a33565b8760080181905590506000613545888385878b61380e565b336000908152600c8a0160209081526040808320869055805192835290820190529091506135809082906135798b886130f6565b8a8a613968565b509695505050505050565b6000808361359b86612710615a46565b6135a591906159e8565b90506000620f424082856040015163ffffffff166135c39190615a46565b6135cd91906159e8565b9050600081856000015161ffff166135e59190615a33565b905060006135fb866020015161ffff1683613a58565b90506136078188613613565b98975050505050505050565b60006127106136228484615a46565b61238591906159e8565b60008163ffffffff84111561365d5760405162461bcd60e51b81526004016136549190615a5d565b60405180910390fd5b509192915050565b600061ffff82111561368a5760405163555abf0160e11b815260040160405180910390fd5b5090565b600061369a8483613442565b90508083116123855760405163ead8241560e01b815260040160405180910390fd5b6020810151518151511415806136d9575060408101515181515114155b806136eb575060608101515181515114155b156137095760405163ccb0ce3f60e01b815260040160405180910390fd5b80515160000361372c57604051630f24cd7360e01b815260040160405180910390fd5b805151600a1015613750576040516308e3b1eb60e11b815260040160405180910390fd5b50565b6001600160a01b0381166000908152600c8301602052604090205480156138095760006137808483613a6e565b9050600981600a81111561379657613796614841565b14806137b35750600181600a8111156137b1576137b1614841565b145b806137cf5750600081600a8111156137cd576137cd614841565b145b806137eb5750600a81600a8111156137e9576137e9614841565b145b15611830576040516306bee79560e01b815260040160405180910390fd5b505050565b601085015460009081906138389061383390600160401b900463ffffffff1643615a33565b613c67565b905060008760040154826001600160401b03166138559190615a33565b905060008860050154826138699190615a33565b6000898152600b8b01602090815260409091208a81556001810180546001600160a01b03191633179055600281018a9055875180519197509293506138b49260058801920190613d33565b5060208086015180516138cd9260068801920190613d94565b50604085015180516138e9916007870191602090910190613dcf565b5060608501518051613905916008870191602090910190613e21565b5060098401829055600a84018190556010840186905561392443613c67565b6011850180546001600160401b039283166fffffffffffffffffffffffffffffffff1990911617600160401b95909216949094021790925550909695505050505050565b7f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e085600001543384600001518560200151866040015187606001518b600901548c600a0154896040516139c399989796959493929190615a70565b60405180910390a17f0cc4b35cbed68ce6ca5b3e6560894c6ccc309603ed423fa45554c837dd9a06aa8560000154338685600001518660200151876040015188606001518c600901548d600a01548e60110160089054906101000a90046001600160401b03168f600201548e8d604051613a499d9c9b9a99989796959493929190615b08565b60405180910390a15050505050565b6000818310613a675781612385565b5090919050565b60008183600801541015613ad05760405162461bcd60e51b8152602060048201526024808201527f4e6f756e7344414f3a3a73746174653a20696e76616c69642070726f706f73616044820152631b081a5960e21b6064820152608401613654565b6000828152600b840160205260409020600e810154610100900460ff1615613afc576008915050611149565b600e81015460ff1615613b13576002915050611149565b6011810154600160401b90046001600160401b03164311613b3857600a915050611149565b80600901544311613b4d576000915050611149565b80600a01544311613b62576001915050611149565b6011810154600160801b90046001600160401b03164311613b87576009915050611149565b613b918482613ccf565b15613ba0576003915050611149565b8060040154600003613bb6576004915050611149565b600e81015462010000900460ff1615613bd3576007915050611149565b613bdd8482613cfb565b6001600160a01b031663c1a287e26040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c3e91906153fb565b8160040154613c4d9190615a33565b4210613c5d576006915050611149565b6005915050611149565b60006001600160401b0382111561368a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401613654565b600b810154600c8201546000919081111580612c6857508254613cf3908590612c14565b119392505050565b601381015460009060ff1615613d1f575060188201546001600160a01b0316611149565b5060098201546001600160a01b0316611149565b828054828255906000526020600020908101928215613d88579160200282015b82811115613d8857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613d53565b5061368a929150613e73565b828054828255906000526020600020908101928215613d88579160200282015b82811115613d88578251825591602001919060010190613db4565b828054828255906000526020600020908101928215613e15579160200282015b82811115613e155782518290613e059082615c21565b5091602001919060010190613def565b5061368a929150613e88565b828054828255906000526020600020908101928215613e67579160200282015b82811115613e675782518290613e579082615c21565b5091602001919060010190613e41565b5061368a929150613ea5565b5b8082111561368a5760008155600101613e74565b8082111561368a576000613e9c8282613ec2565b50600101613e88565b8082111561368a576000613eb98282613ec2565b50600101613ea5565b508054613ece90615985565b6000825580601f10613ede575050565b601f0160209004906000526020600020908101906137509190613e73565b600060208284031215613f0e57600080fd5b5035919050565b815181526020808301516101e0830191613f39908401826001600160a01b03169052565b5060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151613fa28285018215159052565b505061016083810151151590830152610180808401511515908301526101a080840151908301526101c092830151929091019190915290565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561401357614013613fdb565b60405290565b6040516101e081016001600160401b038111828210171561401357614013613fdb565b60405161026081016001600160401b038111828210171561401357614013613fdb565b604051601f8201601f191681016001600160401b038111828210171561408757614087613fdb565b604052919050565b60006001600160401b038211156140a8576140a8613fdb565b5060051b60200190565b600082601f8301126140c357600080fd5b81356001600160401b038111156140dc576140dc613fdb565b6140ef601f8201601f191660200161405f565b81815284602083860101111561410457600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b038116811461375057600080fd5b600082601f83011261414757600080fd5b8135602061415c6141578361408f565b61405f565b82815260059290921b8401810191818101908684111561417b57600080fd5b8286015b848110156135805780356001600160401b038082111561419f5760008081fd5b908801906060828b03601f19018113156141b95760008081fd5b6141c1613ff1565b87840135838111156141d35760008081fd5b6141e18d8a838801016140b2565b82525060409250828401356141f581614121565b8189015292013590820152835291830191830161417f565b600082601f83011261421e57600080fd5b8135602061422e6141578361408f565b82815260059290921b8401810191818101908684111561424d57600080fd5b8286015b8481101561358057803561426481614121565b8352918301918301614251565b600082601f83011261428257600080fd5b813560206142926141578361408f565b82815260059290921b840181019181810190868411156142b157600080fd5b8286015b8481101561358057803583529183019183016142b5565b600082601f8301126142dd57600080fd5b813560206142ed6141578361408f565b82815260059290921b8401810191818101908684111561430c57600080fd5b8286015b848110156135805780356001600160401b0381111561432f5760008081fd5b61433d8986838b01016140b2565b845250918301918301614310565b600082601f83011261435c57600080fd5b8135602061436c6141578361408f565b82815260059290921b8401810191818101908684111561438b57600080fd5b8286015b848110156135805780356001600160401b038111156143ae5760008081fd5b6143bc8986838b01016140b2565b84525091830191830161438f565b60008060008060008060c087890312156143e357600080fd5b86356001600160401b03808211156143fa57600080fd5b6144068a838b01614136565b9750602089013591508082111561441c57600080fd5b6144288a838b0161420d565b9650604089013591508082111561443e57600080fd5b61444a8a838b01614271565b9550606089013591508082111561446057600080fd5b61446c8a838b016142cc565b9450608089013591508082111561448257600080fd5b61448e8a838b0161434b565b935060a08901359150808211156144a457600080fd5b506144b189828a016140b2565b9150509295509295509295565b6000602082840312156144d057600080fd5b813561238581614121565b60008060008060008060008789036101c08112156144f857600080fd5b883561450381614121565b9750602089013561451381614121565b9650604089013561452381614121565b9550606089013561453381614121565b9450608089013561454381614121565b935060c0609f198201121561455757600080fd5b60a089019250606061015f198201121561457057600080fd5b506101608801905092959891949750929550565b803563ffffffff8116811461459857600080fd5b919050565b6000602082840312156145af57600080fd5b61238582614584565b600081518084526020808501945080840160005b838110156145f15781516001600160a01b0316875295820195908201906001016145cc565b509495945050505050565b600081518084526020808501945080840160005b838110156145f157815187529582019590820190600101614610565b6000815180845260005b8181101561465257602081850181015186830182015201614636565b506000602082860101526020601f19601f83011685010191505092915050565b6000815180845260208085019450848260051b860182860160005b858110156146b75783830389526146a583835161462c565b9885019892509084019060010161468d565b5090979650505050505050565b6080815260006146d760808301876145b8565b82810360208401526146e981876145fc565b905082810360408401526146fd8186614672565b905082810360608401526112e68185614672565b600080600080600060a0868803121561472957600080fd5b85356001600160401b038082111561474057600080fd5b61474c89838a0161420d565b9650602088013591508082111561476257600080fd5b61476e89838a01614271565b9550604088013591508082111561478457600080fd5b61479089838a016142cc565b945060608801359150808211156147a657600080fd5b6147b289838a0161434b565b935060808801359150808211156147c857600080fd5b506147d5888289016140b2565b9150509295509295909350565b803560ff8116811461459857600080fd5b600080600080600060a0868803121561480b57600080fd5b8535945061481b602087016147e2565b9350614829604087016147e2565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b60208101600b831061487957634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f84011261489157600080fd5b5081356001600160401b038111156148a857600080fd5b6020830191508360208285010111156148c057600080fd5b9250929050565b600080602083850312156148da57600080fd5b82356001600160401b038111156148f057600080fd5b6148fc8582860161487f565b90969095509350505050565b60008060006060848603121561491d57600080fd5b833561492881614121565b9250602084013561493881614121565b9150604084013561494881614121565b809150509250925092565b6000806040838503121561496657600080fd5b82359150614976602084016147e2565b90509250929050565b815161ffff90811682526020808401519091169082015260408083015163ffffffff169082015260608101611149565b60008083601f8401126149c157600080fd5b5081356001600160401b038111156149d857600080fd5b6020830191508360208260051b85010111156148c057600080fd5b60008060208385031215614a0657600080fd5b82356001600160401b03811115614a1c57600080fd5b6148fc858286016149af565b803561ffff8116811461459857600080fd5b600060208284031215614a4c57600080fd5b61238582614a28565b60008060008060008060c08789031215614a6e57600080fd5b8635955060208701356001600160401b038082111561441c57600080fd5b600080600060408486031215614aa157600080fd5b83356001600160401b03811115614ab757600080fd5b614ac3868287016149af565b909450925050602084013561494881614121565b60008060008060008060608789031215614af057600080fd5b86356001600160401b0380821115614b0757600080fd5b614b138a838b016149af565b90985096506020890135915080821115614b2c57600080fd5b614b388a838b016149af565b90965094506040890135915080821115614b5157600080fd5b50614b5e89828a0161487f565b979a9699509497509295939492505050565b60008060008060608587031215614b8657600080fd5b84359350614b96602086016147e2565b925060408501356001600160401b03811115614bb157600080fd5b614bbd8782880161487f565b95989497509550505050565b60008060008060008060a08789031215614be257600080fd5b8635614bed81614121565b95506020870135614bfd81614121565b945060408701356001600160401b03811115614c1857600080fd5b614c2489828a016149af565b979a9699509760608101359660809091013595509350505050565b600080600080600080600080610100898b031215614c5c57600080fd5b8835975060208901356001600160401b0380821115614c7a57600080fd5b614c868c838d01614136565b985060408b0135915080821115614c9c57600080fd5b614ca88c838d0161420d565b975060608b0135915080821115614cbe57600080fd5b614cca8c838d01614271565b965060808b0135915080821115614ce057600080fd5b614cec8c838d016142cc565b955060a08b0135915080821115614d0257600080fd5b614d0e8c838d0161434b565b945060c08b0135915080821115614d2457600080fd5b614d308c838d016140b2565b935060e08b0135915080821115614d4657600080fd5b50614d538b828c016140b2565b9150509295985092959890939650565b600080600083850360a0811215614d7957600080fd5b84359350602085013592506060603f1982011215614d9657600080fd5b50614d9f613ff1565b614dab60408601614a28565b8152614db960608601614a28565b6020820152614dca60808601614584565b6040820152809150509250925092565b63ffffffff81511682526020810151613809602084018261ffff8082511683528060208301511660208401525063ffffffff60408201511660408301525050565b6020808252825182820181905260009190848201906040850190845b81811015614e5d57614e4a838551614dda565b9284019260809290920191600101614e37565b50909695505050505050565b608081016111498284614dda565b60208152600061238560208301846145b8565b600080600080600060608688031215614ea257600080fd5b8535945060208601356001600160401b0380821115614ec057600080fd5b614ecc89838a0161487f565b90965094506040880135915080821115614ee557600080fd5b50614ef28882890161487f565b969995985093965092949392505050565b600080600080600080600060e0888a031215614f1e57600080fd5b8735965060208801356001600160401b0380821115614f3c57600080fd5b614f488b838c0161420d565b975060408a0135915080821115614f5e57600080fd5b614f6a8b838c01614271565b965060608a0135915080821115614f8057600080fd5b614f8c8b838c016142cc565b955060808a0135915080821115614fa257600080fd5b614fae8b838c0161434b565b945060a08a0135915080821115614fc457600080fd5b614fd08b838c016140b2565b935060c08a0135915080821115614fe657600080fd5b50614ff38a828b016140b2565b91505092959891949750929550565b6000806040838503121561501557600080fd5b82359150602083013561502781614121565b809150509250929050565b60208152815160208201526000602083015161505960408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506101208181850152808501519150506101408181850152808501519150506101606150ce8185018315159052565b84015190506101806150e38482018315159052565b84015190506101a06150f88482018315159052565b8401516101c0848101919091528401516101e080850191909152840151610260610200808601829052919250906151336102808601846145b8565b9086015161022086810191909152860151610240808701919091529095015115159301929092525090919050565b60008060006060848603121561517657600080fd5b61517f84614a28565b925061518d60208501614a28565b915061519b60408501614584565b90509250925092565b805161459881614121565b8051801515811461459857600080fd5b60006101e082840312156151d257600080fd5b6151da614019565b825181526151ea602084016151a4565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406152518185016151af565b908201526101606152638482016151af565b908201526101806152758482016151af565b908201526101a083810151908201526101c0928301519281019290925250919050565b6000815180845260208085019450848260051b860182860160005b858110156146b75783830389528151606081518186526152d58287018261462c565b838901516001600160a01b0316878a01526040938401519390960192909252505097840197908401906001016152b3565b600082825180855260208086019550808260051b84010181860160005b848110156146b757601f1986840301895261533f83835161462c565b98840198925090830190600101615323565b600081516080845261536660808501826145b8565b90506020830151848203602086015261537f82826145fc565b915050604083015184820360408601526153998282615306565b915050606083015184820360608601526153b38282614672565b95945050505050565b8481526080602082015260006153d56080830186615298565b82810360408401526153e78186615351565b905082810360608401526112e6818561462c565b60006020828403121561540d57600080fd5b5051919050565b60006020828403121561542657600080fd5b8151600b811061238557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8381526040602082015260006153b3604083018486615435565b81835260006001600160fb1b0383111561549157600080fd5b8260051b80836020870137939093016020019392505050565b8381526040602082015260006153b3604083018486615478565b87815286602082015260e0604082015260006154e360e08301886145b8565b82810360608401526154f581886145fc565b905082810360808401526155098187615306565b905082810360a084015261551d8186614672565b905082810360c0840152615531818561462c565b9a9950505050505050505050565b848152606060208201526000615559606083018587615478565b905060018060a01b038316604083015295945050505050565b87815260806020820152600061558c60808301888a615478565b828103604084015261559f818789615478565b90508281036060840152615531818587615435565b85815284602082015260ff841660408201526080606082015260006112e6608083018486615435565b600080604083850312156155f057600080fd5b82516155fb81614121565b602084015190925061502781614121565b83815260406020808301829052908201839052600090849060608401835b8681101561565857833561563d81614121565b6001600160a01b03168252928201929082019060010161562a565b50979650505050505050565b86815285602082015260c06040820152600061568360c0830187615298565b82810360608401526156958187615351565b905082810360808401526156a9818661462c565b905082810360a08401526156bd818561462c565b9998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600080604083850312156156f357600080fd5b82519150614976602084016151af565b868152856020820152608060408201526000615723608083018688615435565b82810360608401526156bd818587615435565b60006101008a83528960208401528060408401526157568184018a6145b8565b9050828103606084015261576a81896145fc565b9050828103608084015261577e8188615306565b905082810360a08401526157928187614672565b905082810360c08401526157a6818661462c565b905082810360e08401526157ba818561462c565b9b9a5050505050505050505050565b600082601f8301126157da57600080fd5b815160206157ea6141578361408f565b82815260059290921b8401810191818101908684111561580957600080fd5b8286015b8481101561358057805161582081614121565b835291830191830161580d565b60006020828403121561583f57600080fd5b81516001600160401b038082111561585657600080fd5b90830190610260828603121561586b57600080fd5b61587361403c565b82518152615883602084016151a4565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101406158ea8185016151af565b908201526101606158fc8482016151af565b9082015261018061590e8482016151af565b908201526101a083810151908201526101c080840151908201526101e0808401518381111561593c57600080fd5b615948888287016157c9565b91830191909152506102008381015190820152610220808401519082015261024091506159768284016151af565b91810191909152949350505050565b600181811c9082168061599957607f821691505b6020821081036159b957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611149576111496159bf565b600082615a0557634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615a1c57600080fd5b81516001600160601b038116811461238557600080fd5b80820180821115611149576111496159bf565b8082028115828204841417611149576111496159bf565b602081526000612385602083018461462c565b8981526001600160a01b038916602082015261012060408201819052600090615a9b8382018b6145b8565b90508281036060840152615aaf818a6145fc565b90508281036080840152615ac38189614672565b905082810360a0840152615ad78188614672565b90508560c08401528460e0840152828103610100840152615af8818561462c565b9c9b505050505050505050505050565b8d81526001600160a01b038d1660208201526101a060408201526000615b326101a083018e6145b8565b8281036060840152615b44818e6145b8565b90508281036080840152615b58818d6145fc565b905082810360a0840152615b6c818c614672565b905082810360c0840152615b80818b614672565b90508860e084015287610100840152615ba56101208401886001600160401b03169052565b8561014084015284610160840152828103610180840152615bc6818561462c565b9150509e9d5050505050505050505050505050565b601f82111561380957600081815260208120601f850160051c81016020861015615c025750805b601f850160051c820191505b81811015611ae957828155600101615c0e565b81516001600160401b03811115615c3a57615c3a613fdb565b615c4e81615c488454615985565b84615bdb565b602080601f831160018114615c835760008415615c6b5750858301515b600019600386901b1c1916600185901b178555611ae9565b600085815260208120601f198616915b82811015615cb257888601518255948401946001909101908401615c93565b5085821015615cd05787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe4e6f756e7344414f3a3a67657444796e616d696351756f72756d506172616d7341743a20626c6f636b206e756d62657220657863656564732033322062697473a2646970667358221220d41fa7c13676d35dc71c2ed6a58986de654a51f64eac125051175914ffdd1df764736f6c63430008130033
🤖 Code Reader Beta

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

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.