Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 317 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Execute | 20862429 | 122 days ago | IN | 0 ETH | 0.00142134 | ||||
Queue | 20847986 | 124 days ago | IN | 0 ETH | 0.00188327 | ||||
Cast Vote | 20837157 | 125 days ago | IN | 0 ETH | 0.00275257 | ||||
Cast Vote | 20835212 | 126 days ago | IN | 0 ETH | 0.00191445 | ||||
Cast Vote | 20834803 | 126 days ago | IN | 0 ETH | 0.00109893 | ||||
Cast Vote | 20833411 | 126 days ago | IN | 0 ETH | 0.00131193 | ||||
Cast Vote | 20833317 | 126 days ago | IN | 0 ETH | 0.00139033 | ||||
Cast Vote | 20828324 | 127 days ago | IN | 0 ETH | 0.00190262 | ||||
Cast Vote | 20828308 | 127 days ago | IN | 0 ETH | 0.00188741 | ||||
Cast Vote | 20828233 | 127 days ago | IN | 0 ETH | 0.00268058 | ||||
Propose | 20826606 | 127 days ago | IN | 0 ETH | 0.0086246 | ||||
Cancel | 20826523 | 127 days ago | IN | 0 ETH | 0.00294486 | ||||
Cast Vote | 20826510 | 127 days ago | IN | 0 ETH | 0.00210692 | ||||
Propose | 20822547 | 127 days ago | IN | 0 ETH | 0.01908094 | ||||
Execute | 19777083 | 274 days ago | IN | 0 ETH | 0.00040991 | ||||
Execute | 19777083 | 274 days ago | IN | 0 ETH | 0.00149178 | ||||
Queue | 19759643 | 276 days ago | IN | 0 ETH | 0.00032401 | ||||
Queue | 19759643 | 276 days ago | IN | 0 ETH | 0.00032401 | ||||
Queue | 19759639 | 276 days ago | IN | 0 ETH | 0.00103119 | ||||
Cast Vote | 19737922 | 279 days ago | IN | 0 ETH | 0.00049809 | ||||
Cast Vote | 19736348 | 279 days ago | IN | 0 ETH | 0.00034722 | ||||
Cast Vote | 19732428 | 280 days ago | IN | 0 ETH | 0.00084767 | ||||
Cast Vote | 19731602 | 280 days ago | IN | 0 ETH | 0.00060281 | ||||
Cast Vote | 19727193 | 280 days ago | IN | 0 ETH | 0.00107562 | ||||
Cast Vote | 19724594 | 281 days ago | IN | 0 ETH | 0.00120862 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11863739 | 1444 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Governor
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-15 */ // SPDX-License-Identifier: GPL-3.0-only // Copyright 2020 Compound Labs, Inc. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // 3. Neither the name of the copyright holder nor the names of its // contributors may be used to endorse or promote products derived from this // software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. pragma solidity ^0.7.5; pragma experimental ABIEncoderV2; contract Governor { /// @notice The name of this contract string public constant NAME = "Radicle Governor"; /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed function quorumVotes() public pure returns (uint256) { return 4000000e18; } // 4,000,000 = 4% of Token /// @notice The number of votes required in order for a voter to become a proposer function proposalThreshold() public pure returns (uint256) { return 1000000e18; } // 1,000,000 = 1% of Token /// @notice The maximum number of actions that can be included in a proposal function proposalMaxOperations() public pure returns (uint256) { return 10; } // 10 actions /// @notice The delay before voting on a proposal may take place, once proposed function votingDelay() public pure returns (uint256) { return 1; } // 1 block /// @notice The duration of voting on a proposal, in blocks function votingPeriod() public pure returns (uint256) { return 17280; } // ~3 days in blocks (assuming 15s blocks) /// @notice The address of the Radicle Protocol Timelock TimelockInterface public immutable timelock; /// @notice The address of the Radicle governance token TokenInterface public immutable token; /// @notice The address of the Governor Guardian address public guardian; /// @notice The total number of proposals uint256 public proposalCount; /// @notice Change proposal struct Proposal { // Creator of the proposal address proposer; // The timestamp that the proposal will be available for execution, set once the vote succeeds uint256 eta; // the ordered list of target addresses for calls to be made address[] targets; // The ordered list of values (i.e. msg.value) to be passed to the calls to be made uint256[] values; // The ordered list of function signatures to be called string[] signatures; // The ordered list of calldata to be passed to each call bytes[] calldatas; // The block at which voting begins: holders must delegate their votes prior to this block uint256 startBlock; // The block at which voting ends: votes must be cast prior to this block uint256 endBlock; // Current number of votes in favor of this proposal uint256 forVotes; // Current number of votes in opposition to this proposal uint256 againstVotes; // Flag marking whether the proposal has been canceled bool canceled; // Flag marking whether the proposal has been executed bool executed; // Receipts of ballots for the entire set of voters mapping(address => Receipt) receipts; } /// @notice Ballot receipt record for a voter struct Receipt { // Whether or not a vote has been cast bool hasVoted; // Whether or not the voter supports the proposal bool support; // The number of votes the voter had, which were cast uint96 votes; } /// @notice Possible states that a proposal may be in enum ProposalState {Pending, Active, Canceled, Defeated, Succeeded, Queued, Expired, Executed} /// @notice The official record of all proposals ever proposed mapping(uint256 => Proposal) public proposals; /// @notice The latest proposal for each proposer mapping(address => uint256) public latestProposalIds; /// @notice The EIP-712 typehash for the contract's domain bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); /// @notice The EIP-712 typehash for the ballot struct used by the contract bytes32 public constant BALLOT_TYPEHASH = keccak256("Ballot(uint256 proposalId,bool support)"); /// @notice An event emitted when a new proposal is created event ProposalCreated( uint256 id, address proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 startBlock, uint256 endBlock, string description ); /// @notice An event emitted when a vote has been cast on a proposal event VoteCast(address voter, uint256 proposalId, bool support, uint256 votes); /// @notice An event emitted when a proposal has been canceled event ProposalCanceled(uint256 id); /// @notice An event emitted when a proposal has been queued in the Timelock event ProposalQueued(uint256 id, uint256 eta); /// @notice An event emitted when a proposal has been executed in the Timelock event ProposalExecuted(uint256 id); constructor( address timelock_, address token_, address guardian_ ) { timelock = TimelockInterface(timelock_); token = TokenInterface(token_); guardian = guardian_; } function propose( address[] memory targets, uint256[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description ) public returns (uint256) { require( token.getPriorVotes(msg.sender, sub256(block.number, 1)) >= proposalThreshold(), "Governor::propose: proposer votes below proposal threshold" ); require( targets.length == values.length && targets.length == signatures.length && targets.length == calldatas.length, "Governor::propose: proposal function information arity mismatch" ); require(targets.length != 0, "Governor::propose: must provide actions"); require(targets.length <= proposalMaxOperations(), "Governor::propose: too many actions"); uint256 latestProposalId = latestProposalIds[msg.sender]; if (latestProposalId != 0) { ProposalState proposersLatestProposalState = state(latestProposalId); require( proposersLatestProposalState != ProposalState.Active, "Governor::propose: one live proposal per proposer, found an already active proposal" ); require( proposersLatestProposalState != ProposalState.Pending, "Governor::propose: one live proposal per proposer, found an already pending proposal" ); } uint256 startBlock = add256(block.number, votingDelay()); uint256 endBlock = add256(startBlock, votingPeriod()); proposalCount++; Proposal storage newProposal = proposals[proposalCount]; uint256 proposalId = proposalCount; newProposal.proposer = msg.sender; newProposal.eta = 0; newProposal.targets = targets; newProposal.values = values; newProposal.signatures = signatures; newProposal.calldatas = calldatas; newProposal.startBlock = startBlock; newProposal.endBlock = endBlock; newProposal.forVotes = 0; newProposal.againstVotes = 0; newProposal.canceled = false; newProposal.executed = false; latestProposalIds[newProposal.proposer] = proposalId; emit ProposalCreated( proposalId, msg.sender, targets, values, signatures, calldatas, startBlock, endBlock, description ); return proposalId; } function queue(uint256 proposalId) public { require( state(proposalId) == ProposalState.Succeeded, "Governor::queue: proposal can only be queued if it is succeeded" ); Proposal storage proposal = proposals[proposalId]; uint256 eta = add256(block.timestamp, timelock.delay()); for (uint256 i = 0; i < proposal.targets.length; i++) { _queueOrRevert( proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta ); } proposal.eta = eta; emit ProposalQueued(proposalId, eta); } function _queueOrRevert( address target, uint256 value, string memory signature, bytes memory data, uint256 eta ) internal { require( !timelock.queuedTransactions( keccak256(abi.encode(target, value, signature, data, eta)) ), "Governor::_queueOrRevert: proposal action already queued at eta" ); timelock.queueTransaction(target, value, signature, data, eta); } function execute(uint256 proposalId) public payable { require( state(proposalId) == ProposalState.Queued, "Governor::execute: proposal can only be executed if it is queued" ); Proposal storage proposal = proposals[proposalId]; proposal.executed = true; for (uint256 i = 0; i < proposal.targets.length; i++) { timelock.executeTransaction{value: proposal.values[i]}( proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta ); } emit ProposalExecuted(proposalId); } function cancel(uint256 proposalId) public { ProposalState _state = state(proposalId); require( _state != ProposalState.Executed, "Governor::cancel: cannot cancel executed proposal" ); Proposal storage proposal = proposals[proposalId]; require( msg.sender == guardian || // Allows anyone to cancel a proposal if the voting power of the // proposer dropped below the threshold after the proposal was // submitted. token.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(), "Governor::cancel: cannot cancel unless proposer is below threhsold" ); proposal.canceled = true; for (uint256 i = 0; i < proposal.targets.length; i++) { timelock.cancelTransaction( proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], proposal.eta ); } emit ProposalCanceled(proposalId); } function getActions(uint256 proposalId) public view returns ( address[] memory targets, uint256[] memory values, string[] memory signatures, bytes[] memory calldatas ) { Proposal storage p = proposals[proposalId]; return (p.targets, p.values, p.signatures, p.calldatas); } function getReceipt(uint256 proposalId, address voter) public view returns (Receipt memory) { return proposals[proposalId].receipts[voter]; } function state(uint256 proposalId) public view returns (ProposalState) { require( proposalCount >= proposalId && proposalId > 0, "Governor::state: invalid proposal id" ); Proposal storage proposal = proposals[proposalId]; if (proposal.canceled) { return ProposalState.Canceled; } else if (block.number <= proposal.startBlock) { return ProposalState.Pending; } else if (block.number <= proposal.endBlock) { return ProposalState.Active; } else if ( proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes() ) { return ProposalState.Defeated; } else if (proposal.eta == 0) { return ProposalState.Succeeded; } else if (proposal.executed) { return ProposalState.Executed; } else if (block.timestamp >= add256(proposal.eta, timelock.gracePeriod())) { return ProposalState.Expired; } else { return ProposalState.Queued; } } function castVote(uint256 proposalId, bool support) public { return _castVote(msg.sender, proposalId, support); } function castVoteBySig( uint256 proposalId, bool support, uint8 v, bytes32 r, bytes32 s ) public { bytes32 domainSeparator = keccak256( abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(NAME)), getChainId(), address(this)) ); bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "Governor::castVoteBySig: invalid signature"); return _castVote(signatory, proposalId, support); } function _castVote( address voter, uint256 proposalId, bool support ) internal { require(state(proposalId) == ProposalState.Active, "Governor::_castVote: voting is closed"); Proposal storage proposal = proposals[proposalId]; Receipt storage receipt = proposal.receipts[voter]; require(receipt.hasVoted == false, "Governor::_castVote: voter already voted"); uint96 votes = token.getPriorVotes(voter, proposal.startBlock); if (support) { proposal.forVotes = add256(proposal.forVotes, votes); } else { proposal.againstVotes = add256(proposal.againstVotes, votes); } receipt.hasVoted = true; receipt.support = support; receipt.votes = votes; emit VoteCast(voter, proposalId, support, votes); } function __acceptAdmin() public { require(msg.sender == guardian, "Governor::__acceptAdmin: sender must be gov guardian"); timelock.acceptAdmin(); } function __abdicate() public { require(msg.sender == guardian, "Governor::__abdicate: sender must be gov guardian"); guardian = address(0); } function __queueSetTimelockPendingAdmin(address newPendingAdmin, uint256 eta) public { require( msg.sender == guardian, "Governor::__queueSetTimelockPendingAdmin: sender must be gov guardian" ); timelock.queueTransaction( address(timelock), 0, "setPendingAdmin(address)", abi.encode(newPendingAdmin), eta ); } function __executeSetTimelockPendingAdmin(address newPendingAdmin, uint256 eta) public { require( msg.sender == guardian, "Governor::__executeSetTimelockPendingAdmin: sender must be gov guardian" ); timelock.executeTransaction( address(timelock), 0, "setPendingAdmin(address)", abi.encode(newPendingAdmin), eta ); } function add256(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "addition overflow"); return c; } function sub256(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "subtraction underflow"); return a - b; } function getChainId() internal pure returns (uint256) { uint256 chainId; // solhint-disable no-inline-assembly assembly { chainId := chainid() } return chainId; } } interface TimelockInterface { function delay() external view returns (uint256); function gracePeriod() external view returns (uint256); function acceptAdmin() external; function queuedTransactions(bytes32 hash) external view returns (bool); function queueTransaction( address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta ) external returns (bytes32); function cancelTransaction( address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta ) external; function executeTransaction( address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta ) external payable returns (bytes memory); } interface TokenInterface { function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"token_","type":"address"},{"internalType":"address","name":"guardian_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"ProposalExecuted","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":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"support","type":"bool"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"}],"name":"VoteCast","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"__abdicate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"__acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"__executeSetTimelockPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"__queueSetTimelockPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"bool","name":"support","type":"bool"}],"name":"castVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"bool","name":"support","type":"bool"},{"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"}],"name":"execute","outputs":[],"stateMutability":"payable","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":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"name":"getReceipt","outputs":[{"components":[{"internalType":"bool","name":"hasVoted","type":"bool"},{"internalType":"bool","name":"support","type":"bool"},{"internalType":"uint96","name":"votes","type":"uint96"}],"internalType":"struct Governor.Receipt","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"latestProposalIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"address","name":"proposer","type":"address"},{"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":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}],"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":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"queue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"quorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum Governor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"contract TimelockInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract TokenInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
60c06040523480156200001157600080fd5b50604051620032ef380380620032ef833981016040819052620000349162000092565b606092831b6001600160601b03199081166080529190921b1660a052600080546001600160a01b0319166001600160a01b03909216919091179055620000db565b80516001600160a01b03811681146200008d57600080fd5b919050565b600080600060608486031215620000a7578283fd5b620000b28462000075565b9250620000c26020850162000075565b9150620000d26040850162000075565b90509250925092565b60805160601c60a05160601c6131a46200014b60003980610b30528061117252806117fa5280611a9452508061059d52806105cc5280610a135280610c185280610f815280610fb052806110c9528061113e528061152f528061187e5280611c3b5280611d3752506131a46000f3fe60806040526004361061019c5760003560e01c8063760fbc13116100ec578063da35c6641161008a578063deaaa7cc11610064578063deaaa7cc14610460578063e23a9a5214610475578063fc0c546a146104a2578063fe0d94c1146104b75761019c565b8063da35c6641461040b578063da95691a14610420578063ddf0b009146104405761019c565b8063a3f4df7e116100c6578063a3f4df7e146103aa578063b58131b0146103cc578063b9a61961146103e1578063d33219b4146103f65761019c565b8063760fbc13146103605780637bdbe4d014610375578063915006711461038a5761019c565b806324bc1a64116101595780633e4f49e6116101335780633e4f49e6146102d157806340e58ee5146102fe578063452a93201461031e5780634634c61f146103405761019c565b806324bc1a6414610277578063328dd9821461028c5780633932abb1146102bc5761019c565b8063013cf08b146101a157806302a251a3146101de57806315373e3d1461020057806317977c611461022257806320606b701461024257806321f43e4214610257575b600080fd5b3480156101ad57600080fd5b506101c16101bc366004612402565b6104ca565b6040516101d59897969594939291906127cf565b60405180910390f35b3480156101ea57600080fd5b506101f361051d565b6040516101d5919061286c565b34801561020c57600080fd5b5061022061021b366004612445565b610523565b005b34801561022e57600080fd5b506101f361023d36600461224c565b610532565b34801561024e57600080fd5b506101f3610544565b34801561026357600080fd5b50610220610272366004612266565b610568565b34801561028357600080fd5b506101f3610688565b34801561029857600080fd5b506102ac6102a7366004612402565b610697565b6040516101d59493929190612814565b3480156102c857600080fd5b506101f3610926565b3480156102dd57600080fd5b506102f16102ec366004612402565b61092b565b6040516101d591906128cf565b34801561030a57600080fd5b50610220610319366004612402565b610ac2565b34801561032a57600080fd5b50610333610d59565b6040516101d59190612680565b34801561034c57600080fd5b5061022061035b366004612474565b610d68565b34801561036c57600080fd5b50610220610f14565b34801561038157600080fd5b506101f3610f50565b34801561039657600080fd5b506102206103a5366004612266565b610f55565b3480156103b657600080fd5b506103bf611063565b6040516101d591906128e3565b3480156103d857600080fd5b506101f361108f565b3480156103ed57600080fd5b5061022061109d565b34801561040257600080fd5b5061033361113c565b34801561041757600080fd5b506101f3611160565b34801561042c57600080fd5b506101f361043b36600461228f565b611166565b34801561044c57600080fd5b5061022061045b366004612402565b6114dd565b34801561046c57600080fd5b506101f3611768565b34801561048157600080fd5b5061049561049036600461241a565b61178c565b6040516101d59190612ff0565b3480156104ae57600080fd5b506103336117f8565b6102206104c5366004612402565b61181c565b6002602052600090815260409020805460018201546006830154600784015460088501546009860154600a909601546001600160a01b039095169593949293919290919060ff8082169161010090041688565b61438090565b61052e3383836119f9565b5050565b60036020526000908152604090205481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000546001600160a01b0316331461059b5760405162461bcd60e51b815260040161059290612bd8565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630825f38f7f00000000000000000000000000000000000000000000000000000000000000006000856040516020016105fe9190612680565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161062d94939291906126ad565b600060405180830381600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610683919081019061238f565b505050565b6a034f086f3b33b68400000090565b6060806060806000600260008781526020019081526020016000209050806002018160030182600401836005018380548060200260200160405190810160405280929190818152602001828054801561071957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106fb575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561076b57602002820191906000526020600020905b815481526020019060010190808311610757575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561083e5760008481526020908190208301805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561082a5780601f106107ff5761010080835404028352916020019161082a565b820191906000526020600020905b81548152906001019060200180831161080d57829003601f168201915b505050505081526020019060010190610793565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156109105760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156108fc5780601f106108d1576101008083540402835291602001916108fc565b820191906000526020600020905b8154815290600101906020018083116108df57829003601f168201915b505050505081526020019060010190610865565b5050505090509450945094509450509193509193565b600190565b6000816001541015801561093f5750600082115b61095b5760405162461bcd60e51b815260040161059290612c45565b6000828152600260205260409020600a81015460ff1615610980576002915050610abd565b80600601544311610995576000915050610abd565b806007015443116109aa576001915050610abd565b806009015481600801541115806109cb57506109c4610688565b8160080154105b156109da576003915050610abd565b60018101546109ed576004915050610abd565b600a810154610100900460ff1615610a09576007915050610abd565b610aa781600101547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a06db7dc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6a57600080fd5b505afa158015610a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa29190612377565b611be1565b4210610ab7576006915050610abd565b60059150505b919050565b6000610acd8261092b565b90506007816007811115610add57fe5b1415610afb5760405162461bcd60e51b815260040161059290612ac6565b600082815260026020526040812090546001600160a01b0316331480610bdc5750610b2461108f565b81546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163782d6fe19116610b64436001611c0d565b6040518363ffffffff1660e01b8152600401610b81929190612694565b60206040518083038186803b158015610b9957600080fd5b505afa158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd191906124ca565b6001600160601b0316105b610bf85760405162461bcd60e51b815260040161059290612953565b600a8101805460ff1916600117905560005b6002820154811015610d1c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663591fcdfe836002018381548110610c5457fe5b6000918252602090912001546003850180546001600160a01b039092169185908110610c7c57fe5b9060005260206000200154856004018581548110610c9657fe5b90600052602060002001866005018681548110610caf57fe5b9060005260206000200187600101546040518663ffffffff1660e01b8152600401610cde959493929190612796565b600060405180830381600087803b158015610cf857600080fd5b505af1158015610d0c573d6000803e3d6000fd5b505060019092019150610c0a9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610d4c919061286c565b60405180910390a1505050565b6000546001600160a01b031681565b60408051808201909152601081526f2930b234b1b6329023b7bb32b93737b960811b60209091015260007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667f0ef1189f3a3c100418fa11764cc0c135bbee8a3d6924320d90747bf7da1360af610ddc611c35565b30604051602001610df09493929190612875565b60405160208183030381529060405280519060200120905060007f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee8787604051602001610e3f93929190612899565b60405160208183030381529060405280519060200120905060008282604051602001610e6c929190612665565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610ea994939291906128b1565b6020604051602081039080840390855afa158015610ecb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610efe5760405162461bcd60e51b815260040161059290612fa6565b610f09818a8a6119f9565b505050505050505050565b6000546001600160a01b03163314610f3e5760405162461bcd60e51b815260040161059290612d8b565b600080546001600160a01b0319169055565b600a90565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b815260040161059290612a18565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633a66f9017f0000000000000000000000000000000000000000000000000000000000000000600085604051602001610fe29190612680565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161101194939291906126ad565b602060405180830381600087803b15801561102b57600080fd5b505af115801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106839190612377565b6040518060400160405280601081526020016f2930b234b1b6329023b7bb32b93737b960811b81525081565b69d3c21bcecceda100000090565b6000546001600160a01b031633146110c75760405162461bcd60e51b815260040161059290612e39565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561112257600080fd5b505af1158015611136573d6000803e3d6000fd5b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b600061117061108f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663782d6fe1336111ab436001611c0d565b6040518363ffffffff1660e01b81526004016111c8929190612694565b60206040518083038186803b1580156111e057600080fd5b505afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121891906124ca565b6001600160601b0316101561123f5760405162461bcd60e51b8152600401610592906128f6565b84518651148015611251575083518651145b801561125e575082518651145b61127a5760405162461bcd60e51b8152600401610592906129bb565b85516112985760405162461bcd60e51b815260040161059290612b17565b6112a0610f50565b865111156112c05760405162461bcd60e51b815260040161059290612a83565b33600090815260036020526040902054801561133d5760006112e18261092b565b905060018160078111156112f157fe5b141561130f5760405162461bcd60e51b815260040161059290612c89565b600081600781111561131d57fe5b141561133b5760405162461bcd60e51b815260040161059290612b5e565b505b600061134b43610aa2610926565b9050600061135b82610aa261051d565b6001805481018082556000818152600260208181526040832080546001600160a01b03191633178155948501929092558d51949550929391926113a492908501918e0190611dce565b5089516113ba90600384019060208d0190611e33565b5088516113d090600484019060208c0190611e6e565b5087516113e690600584019060208b0190611ec7565b508382600601819055508282600701819055506000826008018190555060008260090181905550600082600a0160006101000a81548160ff021916908315150217905550600082600a0160016101000a81548160ff02191690831515021790555080600360008460000160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e081338d8d8d8d8a8a8f6040516114c79998979695949392919061301e565b60405180910390a19a9950505050505050505050565b60046114e88261092b565b60078111156114f357fe5b146115105760405162461bcd60e51b815260040161059290612f49565b60006002600083815260200190815260200160002090506000611586427f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6a57600080fd5b905060005b600283015481101561172e576117268360020182815481106115a957fe5b6000918252602090912001546003850180546001600160a01b0390921691849081106115d157fe5b90600052602060002001548560040184815481106115eb57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156116795780601f1061164e57610100808354040283529160200191611679565b820191906000526020600020905b81548152906001019060200180831161165c57829003601f168201915b505050505086600501858154811061168d57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561171b5780601f106116f05761010080835404028352916020019161171b565b820191906000526020600020905b8154815290600101906020018083116116fe57829003601f168201915b505050505086611c39565b60010161158b565b50600182018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610d4c90859084906130b6565b7f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee81565b611794611f20565b5060009182526002602090815260408084206001600160a01b03939093168452600b9092018152918190208151606081018352905460ff80821615158352610100820416151593820193909352620100009092046001600160601b03169082015290565b7f000000000000000000000000000000000000000000000000000000000000000081565b60056118278261092b565b600781111561183257fe5b1461184f5760405162461bcd60e51b815260040161059290612d02565b6000818152600260205260408120600a8101805461ff001916610100179055905b60028201548110156119bd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630825f38f8360030183815481106118ba57fe5b90600052602060002001548460020184815481106118d457fe5b6000918252602090912001546003860180546001600160a01b0390921691869081106118fc57fe5b906000526020600020015486600401868154811061191657fe5b9060005260206000200187600501878154811061192f57fe5b9060005260206000200188600101546040518763ffffffff1660e01b815260040161195e959493929190612796565b6000604051808303818588803b15801561197757600080fd5b505af115801561198b573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526119b4919081019061238f565b50600101611870565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f826040516119ed919061286c565b60405180910390a15050565b6001611a048361092b565b6007811115611a0f57fe5b14611a2c5760405162461bcd60e51b815260040161059290612ed5565b60008281526002602090815260408083206001600160a01b0387168452600b8101909252909120805460ff1615611a755760405162461bcd60e51b815260040161059290612e8d565b600682015460405163782d6fe160e01b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163782d6fe191611aca918a9190600401612694565b60206040518083038186803b158015611ae257600080fd5b505afa158015611af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1a91906124ca565b90508315611b4357611b398360080154826001600160601b0316611be1565b6008840155611b60565b611b5a8360090154826001600160601b0316611be1565b60098401555b8154600160ff199091161761ff00191661010085151502176dffffffffffffffffffffffff00001916620100006001600160601b038316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611bd1908890889088908690612719565b60405180910390a1505050505050565b600082820183811015611c065760405162461bcd60e51b815260040161059290612d60565b9392505050565b600082821115611c2f5760405162461bcd60e51b815260040161059290612f1a565b50900390565b4690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2b065378686868686604051602001611c8195949392919061274a565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611cb3919061286c565b60206040518083038186803b158015611ccb57600080fd5b505afa158015611cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d03919061235b565b15611d205760405162461bcd60e51b815260040161059290612ddc565b604051633a66f90160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633a66f90190611d74908890889088908890889060040161274a565b602060405180830381600087803b158015611d8e57600080fd5b505af1158015611da2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc69190612377565b505050505050565b828054828255906000526020600020908101928215611e23579160200282015b82811115611e2357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611dee565b50611e2f929150611f40565b5090565b828054828255906000526020600020908101928215611e23579160200282015b82811115611e23578251825591602001919060010190611e53565b828054828255906000526020600020908101928215611ebb579160200282015b82811115611ebb5782518051611eab918491602090910190611f55565b5091602001919060010190611e8e565b50611e2f929150611fd0565b828054828255906000526020600020908101928215611f14579160200282015b82811115611f145782518051611f04918491602090910190611f55565b5091602001919060010190611ee7565b50611e2f929150611fed565b604080516060810182526000808252602082018190529181019190915290565b5b80821115611e2f5760008155600101611f41565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611f8b5760008555611e23565b82601f10611fa457805160ff1916838001178555611e23565b82800160010185558215611e235791820182811115611e23578251825591602001919060010190611e53565b80821115611e2f576000611fe4828261200a565b50600101611fd0565b80821115611e2f576000612001828261200a565b50600101611fed565b50805460018160011615610100020316600290046000825580601f10612030575061204e565b601f01602090049060005260206000209081019061204e9190611f40565b50565b600061206461205f84613106565b6130c4565b905082815283838301111561207857600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b0381168114610abd57600080fd5b600082601f8301126120b6578081fd5b813560206120c661205f836130e8565b82815281810190858301838502870184018810156120e2578586fd5b855b85811015612107576120f58261208f565b845292840192908401906001016120e4565b5090979650505050505050565b600082601f830112612124578081fd5b8135602061213461205f836130e8565b82815281810190858301855b85811015612107578135880189603f82011261215a578788fd5b61216b8a8783013560408401612051565b8552509284019290840190600101612140565b600082601f83011261218e578081fd5b8135602061219e61205f836130e8565b82815281810190858301855b85811015612107576121c1898684358b010161222d565b845292840192908401906001016121aa565b600082601f8301126121e3578081fd5b813560206121f361205f836130e8565b828152818101908583018385028701840188101561220f578586fd5b855b8581101561210757813584529284019290840190600101612211565b600082601f83011261223d578081fd5b611c0683833560208501612051565b60006020828403121561225d578081fd5b611c068261208f565b60008060408385031215612278578081fd5b6122818361208f565b946020939093013593505050565b600080600080600060a086880312156122a6578081fd5b853567ffffffffffffffff808211156122bd578283fd5b6122c989838a016120a6565b965060208801359150808211156122de578283fd5b6122ea89838a016121d3565b955060408801359150808211156122ff578283fd5b61230b89838a0161217e565b94506060880135915080821115612320578283fd5b61232c89838a01612114565b93506080880135915080821115612341578283fd5b5061234e8882890161222d565b9150509295509295909350565b60006020828403121561236c578081fd5b8151611c0681613160565b600060208284031215612388578081fd5b5051919050565b6000602082840312156123a0578081fd5b815167ffffffffffffffff8111156123b6578182fd5b8201601f810184136123c6578182fd5b80516123d461205f82613106565b8181528560208385010111156123e8578384fd5b6123f9826020830160208601613134565b95945050505050565b600060208284031215612413578081fd5b5035919050565b6000806040838503121561242c578182fd5b8235915061243c6020840161208f565b90509250929050565b60008060408385031215612457578182fd5b82359150602083013561246981613160565b809150509250929050565b600080600080600060a0868803121561248b578283fd5b85359450602086013561249d81613160565b9350604086013560ff811681146124b2578384fd5b94979396509394606081013594506080013592915050565b6000602082840312156124db578081fd5b81516001600160601b0381168114611c06578182fd5b6000815180845260208085019450808401835b838110156125295781516001600160a01b031687529582019590820190600101612504565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b8581101561257a5782840389526125688483516125b6565b98850198935090840190600101612550565b5091979650505050505050565b6000815180845260208085019450808401835b838110156125295781518752958201959082019060010161259a565b600081518084526125ce816020860160208601613134565b601f01601f19169290920160200192915050565b60008154600180821660008114612600576001811461261e5761265c565b60028304607f16865260ff198316602087015260408601935061265c565b6002830480875261262e86613128565b60005b828110156126525781546020828b0101528482019150602081019050612631565b8801602001955050505b50505092915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038616825284602083015260a06040830152601860a08301527f73657450656e64696e6741646d696e286164647265737329000000000000000060c083015260e0606083015261270860e08301856125b6565b905082608083015295945050505050565b6001600160a01b039490941684526020840192909252151560408301526001600160601b0316606082015260800190565b600060018060a01b038716825285602083015260a0604083015261277160a08301866125b6565b828103606084015261278381866125b6565b9150508260808301529695505050505050565b600060018060a01b038716825285602083015260a060408301526127bd60a08301866125e2565b828103606084015261278381866125e2565b6001600160a01b03989098168852602088019690965260408701949094526060860192909252608085015260a0840152151560c0830152151560e08201526101000190565b60006080825261282760808301876124f1565b82810360208401526128398187612587565b9050828103604084015261284d8186612534565b905082810360608401526128618185612534565b979650505050505050565b90815260200190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b92835260208301919091521515604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b60208101600883106128dd57fe5b91905290565b600060208252611c0660208301846125b6565b6020808252603a908201527f476f7665726e6f723a3a70726f706f73653a2070726f706f73657220766f746560408201527f732062656c6f772070726f706f73616c207468726573686f6c64000000000000606082015260800190565b60208082526042908201527f476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c2060408201527f756e6c6573732070726f706f7365722069732062656c6f77207468726568736f6060820152611b1960f21b608082015260a00190565b6020808252603f908201527f476f7665726e6f723a3a70726f706f73653a2070726f706f73616c2066756e6360408201527f74696f6e20696e666f726d6174696f6e206172697479206d69736d6174636800606082015260800190565b60208082526045908201527f476f7665726e6f723a3a5f5f717565756553657454696d656c6f636b50656e6460408201527f696e6741646d696e3a2073656e646572206d75737420626520676f7620677561606082015264393234b0b760d91b608082015260a00190565b60208082526023908201527f476f7665726e6f723a3a70726f706f73653a20746f6f206d616e7920616374696040820152626f6e7360e81b606082015260800190565b60208082526031908201527f476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c20604082015270195e1958dd5d1959081c1c9bdc1bdcd85b607a1b606082015260800190565b60208082526027908201527f476f7665726e6f723a3a70726f706f73653a206d7573742070726f7669646520604082015266616374696f6e7360c81b606082015260800190565b60208082526054908201527f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060408201527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560608201527318591e481c195b991a5b99c81c1c9bdc1bdcd85b60621b608082015260a00190565b60208082526047908201527f476f7665726e6f723a3a5f5f6578656375746553657454696d656c6f636b506560408201527f6e64696e6741646d696e3a2073656e646572206d75737420626520676f7620676060820152663ab0b93234b0b760c91b608082015260a00190565b60208082526024908201527f476f7665726e6f723a3a73746174653a20696e76616c69642070726f706f73616040820152631b081a5960e21b606082015260800190565b60208082526053908201527f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060408201527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560608201527218591e481858dd1a5d99481c1c9bdc1bdcd85b606a1b608082015260a00190565b602080825260409082018190527f476f7665726e6f723a3a657865637574653a2070726f706f73616c2063616e20908201527f6f6e6c7920626520657865637574656420696620697420697320717565756564606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526031908201527f476f7665726e6f723a3a5f5f61626469636174653a2073656e646572206d75736040820152703a1031329033b7bb1033bab0b93234b0b760791b606082015260800190565b6020808252603f908201527f476f7665726e6f723a3a5f71756575654f725265766572743a2070726f706f7360408201527f616c20616374696f6e20616c7265616479207175657565642061742065746100606082015260800190565b60208082526034908201527f476f7665726e6f723a3a5f5f61636365707441646d696e3a2073656e6465722060408201527336bab9ba1031329033b7bb1033bab0b93234b0b760611b606082015260800190565b60208082526028908201527f476f7665726e6f723a3a5f63617374566f74653a20766f74657220616c726561604082015267191e481d9bdd195960c21b606082015260800190565b60208082526025908201527f476f7665726e6f723a3a5f63617374566f74653a20766f74696e6720697320636040820152641b1bdcd95960da1b606082015260800190565b6020808252601590820152747375627472616374696f6e20756e646572666c6f7760581b604082015260600190565b6020808252603f908201527f476f7665726e6f723a3a71756575653a2070726f706f73616c2063616e206f6e60408201527f6c79206265207175657565642069662069742069732073756363656564656400606082015260800190565b6020808252602a908201527f476f7665726e6f723a3a63617374566f746542795369673a20696e76616c6964604082015269207369676e617475726560b01b606082015260800190565b8151151581526020808301511515908201526040918201516001600160601b03169181019190915260600190565b8981526001600160a01b0389166020820152610120604082018190526000906130498382018b6124f1565b9050828103606084015261305d818a612587565b905082810360808401526130718189612534565b905082810360a08401526130858188612534565b90508560c08401528460e08401528281036101008401526130a681856125b6565b9c9b505050505050505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156130e057fe5b604052919050565b600067ffffffffffffffff8211156130fc57fe5b5060209081020190565b600067ffffffffffffffff82111561311a57fe5b50601f01601f191660200190565b60009081526020902090565b60005b8381101561314f578181015183820152602001613137565b838111156111365750506000910152565b801515811461204e57600080fdfea264697066735822122031a5041528f6ca588e61832ab4f77d6adcffcf2bf8772140a4fccea193c29f2064736f6c634300070600330000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba00000000000000000000000031c8eacbffdd875c74b94b077895bd78cf1e64a30000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061019c5760003560e01c8063760fbc13116100ec578063da35c6641161008a578063deaaa7cc11610064578063deaaa7cc14610460578063e23a9a5214610475578063fc0c546a146104a2578063fe0d94c1146104b75761019c565b8063da35c6641461040b578063da95691a14610420578063ddf0b009146104405761019c565b8063a3f4df7e116100c6578063a3f4df7e146103aa578063b58131b0146103cc578063b9a61961146103e1578063d33219b4146103f65761019c565b8063760fbc13146103605780637bdbe4d014610375578063915006711461038a5761019c565b806324bc1a64116101595780633e4f49e6116101335780633e4f49e6146102d157806340e58ee5146102fe578063452a93201461031e5780634634c61f146103405761019c565b806324bc1a6414610277578063328dd9821461028c5780633932abb1146102bc5761019c565b8063013cf08b146101a157806302a251a3146101de57806315373e3d1461020057806317977c611461022257806320606b701461024257806321f43e4214610257575b600080fd5b3480156101ad57600080fd5b506101c16101bc366004612402565b6104ca565b6040516101d59897969594939291906127cf565b60405180910390f35b3480156101ea57600080fd5b506101f361051d565b6040516101d5919061286c565b34801561020c57600080fd5b5061022061021b366004612445565b610523565b005b34801561022e57600080fd5b506101f361023d36600461224c565b610532565b34801561024e57600080fd5b506101f3610544565b34801561026357600080fd5b50610220610272366004612266565b610568565b34801561028357600080fd5b506101f3610688565b34801561029857600080fd5b506102ac6102a7366004612402565b610697565b6040516101d59493929190612814565b3480156102c857600080fd5b506101f3610926565b3480156102dd57600080fd5b506102f16102ec366004612402565b61092b565b6040516101d591906128cf565b34801561030a57600080fd5b50610220610319366004612402565b610ac2565b34801561032a57600080fd5b50610333610d59565b6040516101d59190612680565b34801561034c57600080fd5b5061022061035b366004612474565b610d68565b34801561036c57600080fd5b50610220610f14565b34801561038157600080fd5b506101f3610f50565b34801561039657600080fd5b506102206103a5366004612266565b610f55565b3480156103b657600080fd5b506103bf611063565b6040516101d591906128e3565b3480156103d857600080fd5b506101f361108f565b3480156103ed57600080fd5b5061022061109d565b34801561040257600080fd5b5061033361113c565b34801561041757600080fd5b506101f3611160565b34801561042c57600080fd5b506101f361043b36600461228f565b611166565b34801561044c57600080fd5b5061022061045b366004612402565b6114dd565b34801561046c57600080fd5b506101f3611768565b34801561048157600080fd5b5061049561049036600461241a565b61178c565b6040516101d59190612ff0565b3480156104ae57600080fd5b506103336117f8565b6102206104c5366004612402565b61181c565b6002602052600090815260409020805460018201546006830154600784015460088501546009860154600a909601546001600160a01b039095169593949293919290919060ff8082169161010090041688565b61438090565b61052e3383836119f9565b5050565b60036020526000908152604090205481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000546001600160a01b0316331461059b5760405162461bcd60e51b815260040161059290612bd8565b60405180910390fd5b7f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6001600160a01b0316630825f38f7f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6000856040516020016105fe9190612680565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161062d94939291906126ad565b600060405180830381600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610683919081019061238f565b505050565b6a034f086f3b33b68400000090565b6060806060806000600260008781526020019081526020016000209050806002018160030182600401836005018380548060200260200160405190810160405280929190818152602001828054801561071957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106fb575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561076b57602002820191906000526020600020905b815481526020019060010190808311610757575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561083e5760008481526020908190208301805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561082a5780601f106107ff5761010080835404028352916020019161082a565b820191906000526020600020905b81548152906001019060200180831161080d57829003601f168201915b505050505081526020019060010190610793565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156109105760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156108fc5780601f106108d1576101008083540402835291602001916108fc565b820191906000526020600020905b8154815290600101906020018083116108df57829003601f168201915b505050505081526020019060010190610865565b5050505090509450945094509450509193509193565b600190565b6000816001541015801561093f5750600082115b61095b5760405162461bcd60e51b815260040161059290612c45565b6000828152600260205260409020600a81015460ff1615610980576002915050610abd565b80600601544311610995576000915050610abd565b806007015443116109aa576001915050610abd565b806009015481600801541115806109cb57506109c4610688565b8160080154105b156109da576003915050610abd565b60018101546109ed576004915050610abd565b600a810154610100900460ff1615610a09576007915050610abd565b610aa781600101547f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6001600160a01b031663a06db7dc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6a57600080fd5b505afa158015610a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa29190612377565b611be1565b4210610ab7576006915050610abd565b60059150505b919050565b6000610acd8261092b565b90506007816007811115610add57fe5b1415610afb5760405162461bcd60e51b815260040161059290612ac6565b600082815260026020526040812090546001600160a01b0316331480610bdc5750610b2461108f565b81546001600160a01b037f00000000000000000000000031c8eacbffdd875c74b94b077895bd78cf1e64a381169163782d6fe19116610b64436001611c0d565b6040518363ffffffff1660e01b8152600401610b81929190612694565b60206040518083038186803b158015610b9957600080fd5b505afa158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd191906124ca565b6001600160601b0316105b610bf85760405162461bcd60e51b815260040161059290612953565b600a8101805460ff1916600117905560005b6002820154811015610d1c577f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6001600160a01b031663591fcdfe836002018381548110610c5457fe5b6000918252602090912001546003850180546001600160a01b039092169185908110610c7c57fe5b9060005260206000200154856004018581548110610c9657fe5b90600052602060002001866005018681548110610caf57fe5b9060005260206000200187600101546040518663ffffffff1660e01b8152600401610cde959493929190612796565b600060405180830381600087803b158015610cf857600080fd5b505af1158015610d0c573d6000803e3d6000fd5b505060019092019150610c0a9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610d4c919061286c565b60405180910390a1505050565b6000546001600160a01b031681565b60408051808201909152601081526f2930b234b1b6329023b7bb32b93737b960811b60209091015260007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667f0ef1189f3a3c100418fa11764cc0c135bbee8a3d6924320d90747bf7da1360af610ddc611c35565b30604051602001610df09493929190612875565b60405160208183030381529060405280519060200120905060007f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee8787604051602001610e3f93929190612899565b60405160208183030381529060405280519060200120905060008282604051602001610e6c929190612665565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610ea994939291906128b1565b6020604051602081039080840390855afa158015610ecb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610efe5760405162461bcd60e51b815260040161059290612fa6565b610f09818a8a6119f9565b505050505050505050565b6000546001600160a01b03163314610f3e5760405162461bcd60e51b815260040161059290612d8b565b600080546001600160a01b0319169055565b600a90565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b815260040161059290612a18565b7f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6001600160a01b0316633a66f9017f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba600085604051602001610fe29190612680565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161101194939291906126ad565b602060405180830381600087803b15801561102b57600080fd5b505af115801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106839190612377565b6040518060400160405280601081526020016f2930b234b1b6329023b7bb32b93737b960811b81525081565b69d3c21bcecceda100000090565b6000546001600160a01b031633146110c75760405162461bcd60e51b815260040161059290612e39565b7f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6001600160a01b0316630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561112257600080fd5b505af1158015611136573d6000803e3d6000fd5b50505050565b7f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba81565b60015481565b600061117061108f565b7f00000000000000000000000031c8eacbffdd875c74b94b077895bd78cf1e64a36001600160a01b031663782d6fe1336111ab436001611c0d565b6040518363ffffffff1660e01b81526004016111c8929190612694565b60206040518083038186803b1580156111e057600080fd5b505afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121891906124ca565b6001600160601b0316101561123f5760405162461bcd60e51b8152600401610592906128f6565b84518651148015611251575083518651145b801561125e575082518651145b61127a5760405162461bcd60e51b8152600401610592906129bb565b85516112985760405162461bcd60e51b815260040161059290612b17565b6112a0610f50565b865111156112c05760405162461bcd60e51b815260040161059290612a83565b33600090815260036020526040902054801561133d5760006112e18261092b565b905060018160078111156112f157fe5b141561130f5760405162461bcd60e51b815260040161059290612c89565b600081600781111561131d57fe5b141561133b5760405162461bcd60e51b815260040161059290612b5e565b505b600061134b43610aa2610926565b9050600061135b82610aa261051d565b6001805481018082556000818152600260208181526040832080546001600160a01b03191633178155948501929092558d51949550929391926113a492908501918e0190611dce565b5089516113ba90600384019060208d0190611e33565b5088516113d090600484019060208c0190611e6e565b5087516113e690600584019060208b0190611ec7565b508382600601819055508282600701819055506000826008018190555060008260090181905550600082600a0160006101000a81548160ff021916908315150217905550600082600a0160016101000a81548160ff02191690831515021790555080600360008460000160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e081338d8d8d8d8a8a8f6040516114c79998979695949392919061301e565b60405180910390a19a9950505050505050505050565b60046114e88261092b565b60078111156114f357fe5b146115105760405162461bcd60e51b815260040161059290612f49565b60006002600083815260200190815260200160002090506000611586427f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6001600160a01b0316636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6a57600080fd5b905060005b600283015481101561172e576117268360020182815481106115a957fe5b6000918252602090912001546003850180546001600160a01b0390921691849081106115d157fe5b90600052602060002001548560040184815481106115eb57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156116795780601f1061164e57610100808354040283529160200191611679565b820191906000526020600020905b81548152906001019060200180831161165c57829003601f168201915b505050505086600501858154811061168d57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561171b5780601f106116f05761010080835404028352916020019161171b565b820191906000526020600020905b8154815290600101906020018083116116fe57829003601f168201915b505050505086611c39565b60010161158b565b50600182018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610d4c90859084906130b6565b7f8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee81565b611794611f20565b5060009182526002602090815260408084206001600160a01b03939093168452600b9092018152918190208151606081018352905460ff80821615158352610100820416151593820193909352620100009092046001600160601b03169082015290565b7f00000000000000000000000031c8eacbffdd875c74b94b077895bd78cf1e64a381565b60056118278261092b565b600781111561183257fe5b1461184f5760405162461bcd60e51b815260040161059290612d02565b6000818152600260205260408120600a8101805461ff001916610100179055905b60028201548110156119bd577f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6001600160a01b0316630825f38f8360030183815481106118ba57fe5b90600052602060002001548460020184815481106118d457fe5b6000918252602090912001546003860180546001600160a01b0390921691869081106118fc57fe5b906000526020600020015486600401868154811061191657fe5b9060005260206000200187600501878154811061192f57fe5b9060005260206000200188600101546040518763ffffffff1660e01b815260040161195e959493929190612796565b6000604051808303818588803b15801561197757600080fd5b505af115801561198b573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526119b4919081019061238f565b50600101611870565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f826040516119ed919061286c565b60405180910390a15050565b6001611a048361092b565b6007811115611a0f57fe5b14611a2c5760405162461bcd60e51b815260040161059290612ed5565b60008281526002602090815260408083206001600160a01b0387168452600b8101909252909120805460ff1615611a755760405162461bcd60e51b815260040161059290612e8d565b600682015460405163782d6fe160e01b81526000916001600160a01b037f00000000000000000000000031c8eacbffdd875c74b94b077895bd78cf1e64a3169163782d6fe191611aca918a9190600401612694565b60206040518083038186803b158015611ae257600080fd5b505afa158015611af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1a91906124ca565b90508315611b4357611b398360080154826001600160601b0316611be1565b6008840155611b60565b611b5a8360090154826001600160601b0316611be1565b60098401555b8154600160ff199091161761ff00191661010085151502176dffffffffffffffffffffffff00001916620100006001600160601b038316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611bd1908890889088908690612719565b60405180910390a1505050505050565b600082820183811015611c065760405162461bcd60e51b815260040161059290612d60565b9392505050565b600082821115611c2f5760405162461bcd60e51b815260040161059290612f1a565b50900390565b4690565b7f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba6001600160a01b031663f2b065378686868686604051602001611c8195949392919061274a565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611cb3919061286c565b60206040518083038186803b158015611ccb57600080fd5b505afa158015611cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d03919061235b565b15611d205760405162461bcd60e51b815260040161059290612ddc565b604051633a66f90160e01b81526001600160a01b037f0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba1690633a66f90190611d74908890889088908890889060040161274a565b602060405180830381600087803b158015611d8e57600080fd5b505af1158015611da2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc69190612377565b505050505050565b828054828255906000526020600020908101928215611e23579160200282015b82811115611e2357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611dee565b50611e2f929150611f40565b5090565b828054828255906000526020600020908101928215611e23579160200282015b82811115611e23578251825591602001919060010190611e53565b828054828255906000526020600020908101928215611ebb579160200282015b82811115611ebb5782518051611eab918491602090910190611f55565b5091602001919060010190611e8e565b50611e2f929150611fd0565b828054828255906000526020600020908101928215611f14579160200282015b82811115611f145782518051611f04918491602090910190611f55565b5091602001919060010190611ee7565b50611e2f929150611fed565b604080516060810182526000808252602082018190529181019190915290565b5b80821115611e2f5760008155600101611f41565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611f8b5760008555611e23565b82601f10611fa457805160ff1916838001178555611e23565b82800160010185558215611e235791820182811115611e23578251825591602001919060010190611e53565b80821115611e2f576000611fe4828261200a565b50600101611fd0565b80821115611e2f576000612001828261200a565b50600101611fed565b50805460018160011615610100020316600290046000825580601f10612030575061204e565b601f01602090049060005260206000209081019061204e9190611f40565b50565b600061206461205f84613106565b6130c4565b905082815283838301111561207857600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b0381168114610abd57600080fd5b600082601f8301126120b6578081fd5b813560206120c661205f836130e8565b82815281810190858301838502870184018810156120e2578586fd5b855b85811015612107576120f58261208f565b845292840192908401906001016120e4565b5090979650505050505050565b600082601f830112612124578081fd5b8135602061213461205f836130e8565b82815281810190858301855b85811015612107578135880189603f82011261215a578788fd5b61216b8a8783013560408401612051565b8552509284019290840190600101612140565b600082601f83011261218e578081fd5b8135602061219e61205f836130e8565b82815281810190858301855b85811015612107576121c1898684358b010161222d565b845292840192908401906001016121aa565b600082601f8301126121e3578081fd5b813560206121f361205f836130e8565b828152818101908583018385028701840188101561220f578586fd5b855b8581101561210757813584529284019290840190600101612211565b600082601f83011261223d578081fd5b611c0683833560208501612051565b60006020828403121561225d578081fd5b611c068261208f565b60008060408385031215612278578081fd5b6122818361208f565b946020939093013593505050565b600080600080600060a086880312156122a6578081fd5b853567ffffffffffffffff808211156122bd578283fd5b6122c989838a016120a6565b965060208801359150808211156122de578283fd5b6122ea89838a016121d3565b955060408801359150808211156122ff578283fd5b61230b89838a0161217e565b94506060880135915080821115612320578283fd5b61232c89838a01612114565b93506080880135915080821115612341578283fd5b5061234e8882890161222d565b9150509295509295909350565b60006020828403121561236c578081fd5b8151611c0681613160565b600060208284031215612388578081fd5b5051919050565b6000602082840312156123a0578081fd5b815167ffffffffffffffff8111156123b6578182fd5b8201601f810184136123c6578182fd5b80516123d461205f82613106565b8181528560208385010111156123e8578384fd5b6123f9826020830160208601613134565b95945050505050565b600060208284031215612413578081fd5b5035919050565b6000806040838503121561242c578182fd5b8235915061243c6020840161208f565b90509250929050565b60008060408385031215612457578182fd5b82359150602083013561246981613160565b809150509250929050565b600080600080600060a0868803121561248b578283fd5b85359450602086013561249d81613160565b9350604086013560ff811681146124b2578384fd5b94979396509394606081013594506080013592915050565b6000602082840312156124db578081fd5b81516001600160601b0381168114611c06578182fd5b6000815180845260208085019450808401835b838110156125295781516001600160a01b031687529582019590820190600101612504565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b8581101561257a5782840389526125688483516125b6565b98850198935090840190600101612550565b5091979650505050505050565b6000815180845260208085019450808401835b838110156125295781518752958201959082019060010161259a565b600081518084526125ce816020860160208601613134565b601f01601f19169290920160200192915050565b60008154600180821660008114612600576001811461261e5761265c565b60028304607f16865260ff198316602087015260408601935061265c565b6002830480875261262e86613128565b60005b828110156126525781546020828b0101528482019150602081019050612631565b8801602001955050505b50505092915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038616825284602083015260a06040830152601860a08301527f73657450656e64696e6741646d696e286164647265737329000000000000000060c083015260e0606083015261270860e08301856125b6565b905082608083015295945050505050565b6001600160a01b039490941684526020840192909252151560408301526001600160601b0316606082015260800190565b600060018060a01b038716825285602083015260a0604083015261277160a08301866125b6565b828103606084015261278381866125b6565b9150508260808301529695505050505050565b600060018060a01b038716825285602083015260a060408301526127bd60a08301866125e2565b828103606084015261278381866125e2565b6001600160a01b03989098168852602088019690965260408701949094526060860192909252608085015260a0840152151560c0830152151560e08201526101000190565b60006080825261282760808301876124f1565b82810360208401526128398187612587565b9050828103604084015261284d8186612534565b905082810360608401526128618185612534565b979650505050505050565b90815260200190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b92835260208301919091521515604082015260600190565b93845260ff9290921660208401526040830152606082015260800190565b60208101600883106128dd57fe5b91905290565b600060208252611c0660208301846125b6565b6020808252603a908201527f476f7665726e6f723a3a70726f706f73653a2070726f706f73657220766f746560408201527f732062656c6f772070726f706f73616c207468726573686f6c64000000000000606082015260800190565b60208082526042908201527f476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c2060408201527f756e6c6573732070726f706f7365722069732062656c6f77207468726568736f6060820152611b1960f21b608082015260a00190565b6020808252603f908201527f476f7665726e6f723a3a70726f706f73653a2070726f706f73616c2066756e6360408201527f74696f6e20696e666f726d6174696f6e206172697479206d69736d6174636800606082015260800190565b60208082526045908201527f476f7665726e6f723a3a5f5f717565756553657454696d656c6f636b50656e6460408201527f696e6741646d696e3a2073656e646572206d75737420626520676f7620677561606082015264393234b0b760d91b608082015260a00190565b60208082526023908201527f476f7665726e6f723a3a70726f706f73653a20746f6f206d616e7920616374696040820152626f6e7360e81b606082015260800190565b60208082526031908201527f476f7665726e6f723a3a63616e63656c3a2063616e6e6f742063616e63656c20604082015270195e1958dd5d1959081c1c9bdc1bdcd85b607a1b606082015260800190565b60208082526027908201527f476f7665726e6f723a3a70726f706f73653a206d7573742070726f7669646520604082015266616374696f6e7360c81b606082015260800190565b60208082526054908201527f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060408201527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560608201527318591e481c195b991a5b99c81c1c9bdc1bdcd85b60621b608082015260a00190565b60208082526047908201527f476f7665726e6f723a3a5f5f6578656375746553657454696d656c6f636b506560408201527f6e64696e6741646d696e3a2073656e646572206d75737420626520676f7620676060820152663ab0b93234b0b760c91b608082015260a00190565b60208082526024908201527f476f7665726e6f723a3a73746174653a20696e76616c69642070726f706f73616040820152631b081a5960e21b606082015260800190565b60208082526053908201527f476f7665726e6f723a3a70726f706f73653a206f6e65206c6976652070726f7060408201527f6f73616c207065722070726f706f7365722c20666f756e6420616e20616c726560608201527218591e481858dd1a5d99481c1c9bdc1bdcd85b606a1b608082015260a00190565b602080825260409082018190527f476f7665726e6f723a3a657865637574653a2070726f706f73616c2063616e20908201527f6f6e6c7920626520657865637574656420696620697420697320717565756564606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526031908201527f476f7665726e6f723a3a5f5f61626469636174653a2073656e646572206d75736040820152703a1031329033b7bb1033bab0b93234b0b760791b606082015260800190565b6020808252603f908201527f476f7665726e6f723a3a5f71756575654f725265766572743a2070726f706f7360408201527f616c20616374696f6e20616c7265616479207175657565642061742065746100606082015260800190565b60208082526034908201527f476f7665726e6f723a3a5f5f61636365707441646d696e3a2073656e6465722060408201527336bab9ba1031329033b7bb1033bab0b93234b0b760611b606082015260800190565b60208082526028908201527f476f7665726e6f723a3a5f63617374566f74653a20766f74657220616c726561604082015267191e481d9bdd195960c21b606082015260800190565b60208082526025908201527f476f7665726e6f723a3a5f63617374566f74653a20766f74696e6720697320636040820152641b1bdcd95960da1b606082015260800190565b6020808252601590820152747375627472616374696f6e20756e646572666c6f7760581b604082015260600190565b6020808252603f908201527f476f7665726e6f723a3a71756575653a2070726f706f73616c2063616e206f6e60408201527f6c79206265207175657565642069662069742069732073756363656564656400606082015260800190565b6020808252602a908201527f476f7665726e6f723a3a63617374566f746542795369673a20696e76616c6964604082015269207369676e617475726560b01b606082015260800190565b8151151581526020808301511515908201526040918201516001600160601b03169181019190915260600190565b8981526001600160a01b0389166020820152610120604082018190526000906130498382018b6124f1565b9050828103606084015261305d818a612587565b905082810360808401526130718189612534565b905082810360a08401526130858188612534565b90508560c08401528460e08401528281036101008401526130a681856125b6565b9c9b505050505050505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156130e057fe5b604052919050565b600067ffffffffffffffff8211156130fc57fe5b5060209081020190565b600067ffffffffffffffff82111561311a57fe5b50601f01601f191660200190565b60009081526020902090565b60005b8381101561314f578181015183820152602001613137565b838111156111365750506000910152565b801515811461204e57600080fdfea264697066735822122031a5041528f6ca588e61832ab4f77d6adcffcf2bf8772140a4fccea193c29f2064736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba00000000000000000000000031c8eacbffdd875c74b94b077895bd78cf1e64a30000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : timelock_ (address): 0x8dA8f82d2BbDd896822de723F55D6EdF416130ba
Arg [1] : token_ (address): 0x31c8EAcBFFdD875c74b94b077895Bd78CF1E64A3
Arg [2] : guardian_ (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000008da8f82d2bbdd896822de723f55d6edf416130ba
Arg [1] : 00000000000000000000000031c8eacbffdd875c74b94b077895bd78cf1e64a3
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
1665:16162:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5159:45;;;;;;;;;;-1:-1:-1;5159:45:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2709:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14267:127::-;;;;;;;;;;-1:-1:-1;14267:127:0;;;;;:::i;:::-;;:::i;:::-;;5268:52;;;;;;;;;;-1:-1:-1;5268:52:0;;;;;:::i;:::-;;:::i;5393:131::-;;;;;;;;;;;;;:::i;16804:447::-;;;;;;;;;;-1:-1:-1;16804:447:0;;;;;:::i;:::-;;:::i;1923:89::-;;;;;;;;;;;;;:::i;12597:388::-;;;;;;;;;;-1:-1:-1;12597:388:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;2545:80::-;;;;;;;;;;;;;:::i;13156:1103::-;;;;;;;;;;-1:-1:-1;13156:1103:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11416:1173::-;;;;;;;;;;-1:-1:-1;11416:1173:0;;;;;:::i;:::-;;:::i;3120:23::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14402:720::-;;;;;;;;;;-1:-1:-1;14402:720:0;;;;;:::i;:::-;;:::i;16183:164::-;;;;;;;;;;;;;:::i;2347:91::-;;;;;;;;;;;;;:::i;16355:441::-;;;;;;;;;;-1:-1:-1;16355:441:0;;;;;:::i;:::-;;:::i;1733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2135:95::-;;;;;;;;;;;;;:::i;16004:171::-;;;;;;;;;;;;;:::i;2907:43::-;;;;;;;;;;;;;:::i;3199:28::-;;;;;;;;;;;;;:::i;6838:2618::-;;;;;;;;;;-1:-1:-1;6838:2618:0;;;;;:::i;:::-;;:::i;9464:718::-;;;;;;;;;;-1:-1:-1;9464:718:0;;;;;:::i;:::-;;:::i;5614:94::-;;;;;;;;;;;;;:::i;12993:155::-;;;;;;;;;;-1:-1:-1;12993:155:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3020:37::-;;;;;;;;;;;;;:::i;10696:712::-;;;;;;:::i;:::-;;:::i;5159:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5159:45:0;;;;;;;;;;;;;;;;;;;;;;;:::o;2709:85::-;2781:5;2709:85;:::o;14267:127::-;14344:42;14354:10;14366;14378:7;14344:9;:42::i;:::-;14267:127;;:::o;5268:52::-;;;;;;;;;;;;;:::o;5393:131::-;5444:80;5393:131;:::o;16804:447::-;16938:8;;-1:-1:-1;;;;;16938:8:0;16924:10;:22;16902:143;;;;-1:-1:-1;;;16902:143:0;;;;;;;:::i;:::-;;;;;;;;;17056:8;-1:-1:-1;;;;;17056:27:0;;17106:8;17130:1;17198:15;17187:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;17229:3;17056:187;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17056:187:0;;;;;;;;;;;;:::i;:::-;;16804:447;;:::o;1923:89::-;1994:10;1923:89;:::o;12597:388::-;12699:24;12738:23;12776:26;12817:24;12869:18;12890:9;:21;12900:10;12890:21;;;;;;;;;;;12869:42;;12930:1;:9;;12941:1;:8;;12951:1;:12;;12965:1;:11;;12922:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12922:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12922:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12922:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12597:388;;;;;:::o;2545:80::-;2616:1;2545:80;:::o;13156:1103::-;13212:13;13277:10;13260:13;;:27;;:45;;;;;13304:1;13291:10;:14;13260:45;13238:131;;;;-1:-1:-1;;;13238:131:0;;;;;;;:::i;:::-;13380:25;13408:21;;;:9;:21;;;;;13444:17;;;;;;13440:812;;;13485:22;13478:29;;;;;13440:812;13545:8;:19;;;13529:12;:35;13525:727;;13588:21;13581:28;;;;;13525:727;13647:8;:17;;;13631:12;:33;13627:625;;13688:20;13681:27;;;;;13627:625;13765:8;:21;;;13744:8;:17;;;:42;;:79;;;;13810:13;:11;:13::i;:::-;13790:8;:17;;;:33;13744:79;13726:526;;;13857:22;13850:29;;;;;13726:526;13901:12;;;;13897:355;;13942:23;13935:30;;;;;13897:355;13987:17;;;;;;;;;13983:269;;;14028:22;14021:29;;;;;13983:269;14091:44;14098:8;:12;;;14112:8;-1:-1:-1;;;;;14112:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14091:6;:44::i;:::-;14072:15;:63;14068:184;;14159:21;14152:28;;;;;14068:184;14220:20;14213:27;;;13156:1103;;;;:::o;11416:1173::-;11470:20;11493:17;11499:10;11493:5;:17::i;:::-;11470:40;-1:-1:-1;11553:22:0;11543:6;:32;;;;;;;;;;11521:131;;;;-1:-1:-1;;;11521:131:0;;;;;;;:::i;:::-;11665:25;11693:21;;;:9;:21;;;;;11761:8;;-1:-1:-1;;;;;11761:8:0;11747:10;:22;;:338;;;12066:19;:17;:19::i;:::-;12003:17;;-1:-1:-1;;;;;11983:5:0;:19;;;;;12003:17;12022:23;12029:12;12003:17;12022:6;:23::i;:::-;11983:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11983:102:0;;11747:338;11725:454;;;;-1:-1:-1;;;11725:454:0;;;;;;;:::i;:::-;12192:17;;;:24;;-1:-1:-1;;12192:24:0;12212:4;12192:24;;;:17;12227:309;12251:16;;;:23;12247:27;;12227:309;;;12296:8;-1:-1:-1;;;;;12296:26:0;;12341:8;:16;;12358:1;12341:19;;;;;;;;;;;;;;;;;;12379:15;;;:18;;-1:-1:-1;;;;;12341:19:0;;;;12395:1;;12379:18;;;;;;;;;;;;;;12416:8;:19;;12436:1;12416:22;;;;;;;;;;;;;;;12457:8;:18;;12476:1;12457:21;;;;;;;;;;;;;;;12497:8;:12;;;12296:228;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12276:3:0;;;;;-1:-1:-1;12227:309:0;;-1:-1:-1;12227:309:0;;;12553:28;12570:10;12553:28;;;;;;:::i;:::-;;;;;;;;11416:1173;;;:::o;3120:23::-;;;-1:-1:-1;;;;;3120:23:0;;:::o;14402:720::-;14671:4;;;;;;;;;;;;-1:-1:-1;;;14671:4:0;;;;;14560:23;5444:80;14655:22;14679:12;:10;:12::i;:::-;14701:4;14627:80;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;14599:123;;;;;;14560:162;;14733:18;5656:52;14792:10;14804:7;14764:48;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;14754:59;;;;;;14733:80;;14824:14;14880:15;14897:10;14851:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;14841:68;;;;;;14824:85;;14920:17;14940:26;14950:6;14958:1;14961;14964;14940:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14940:26:0;;-1:-1:-1;;14940:26:0;;;-1:-1:-1;;;;;;;14985:23:0;;14977:78;;;;-1:-1:-1;;;14977:78:0;;;;;;;:::i;:::-;15073:41;15083:9;15094:10;15106:7;15073:9;:41::i;:::-;15066:48;;;;14402:720;;;;;:::o;16183:164::-;16245:8;;-1:-1:-1;;;;;16245:8:0;16231:10;:22;16223:84;;;;-1:-1:-1;;;16223:84:0;;;;;;;:::i;:::-;16337:1;16318:21;;-1:-1:-1;;;;;;16318:21:0;;;16183:164::o;2347:91::-;2428:2;2347:91;:::o;16355:441::-;16487:8;;-1:-1:-1;;;;;16487:8:0;16473:10;:22;16451:141;;;;-1:-1:-1;;;16451:141:0;;;;;;;:::i;:::-;16603:8;-1:-1:-1;;;;;16603:25:0;;16651:8;16675:1;16743:15;16732:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;16774:3;16603:185;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1733:48::-;;;;;;;;;;;;;;-1:-1:-1;;;1733:48:0;;;;:::o;2135:95::-;2212:10;2135:95;:::o;16004:171::-;16069:8;;-1:-1:-1;;;;;16069:8:0;16055:10;:22;16047:87;;;;-1:-1:-1;;;16047:87:0;;;;;;;:::i;:::-;16145:8;-1:-1:-1;;;;;16145:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16004:171::o;2907:43::-;;;:::o;3199:28::-;;;;:::o;6838:2618::-;7055:7;7157:19;:17;:19::i;:::-;7097:5;-1:-1:-1;;;;;7097:19:0;;7117:10;7129:23;7136:12;7150:1;7129:6;:23::i;:::-;7097:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7097:79:0;;;7075:187;;;;-1:-1:-1;;;7075:187:0;;;;;;;:::i;:::-;7313:6;:13;7295:7;:14;:31;:87;;;;;7365:10;:17;7347:7;:14;:35;7295:87;:142;;;;;7421:9;:16;7403:7;:14;:34;7295:142;7273:255;;;;-1:-1:-1;;;7273:255:0;;;;;;;:::i;:::-;7547:14;;7539:71;;;;-1:-1:-1;;;7539:71:0;;;;;;;:::i;:::-;7647:23;:21;:23::i;:::-;7629:7;:14;:41;;7621:89;;;;-1:-1:-1;;;7621:89:0;;;;;;;:::i;:::-;7768:10;7723:24;7750:29;;;:17;:29;;;;;;7794:21;;7790:548;;7832:42;7877:23;7883:16;7877:5;:23::i;:::-;7832:68;-1:-1:-1;7973:20:0;7941:28;:52;;;;;;;;;;7915:197;;;;-1:-1:-1;;;7915:197:0;;;;;;;:::i;:::-;8185:21;8153:28;:53;;;;;;;;;;8127:199;;;;-1:-1:-1;;;8127:199:0;;;;;;;:::i;:::-;7790:548;;8350:18;8371:35;8378:12;8392:13;:11;:13::i;8371:35::-;8350:56;;8417:16;8436:34;8443:10;8455:14;:12;:14::i;8436:34::-;8483:13;:15;;;;;;;:13;8540:24;;;:9;:24;;;;;;;8624:33;;-1:-1:-1;;;;;;8624:33:0;8647:10;8624:33;;;8668:15;;;:19;;;;8698:29;;8417:53;;-1:-1:-1;8540:24:0;;8483:15;;8698:29;;:19;;;;:29;;;;:::i;:::-;-1:-1:-1;8738:27:0;;;;:18;;;;:27;;;;;:::i;:::-;-1:-1:-1;8776:35:0;;;;:22;;;;:35;;;;;:::i;:::-;-1:-1:-1;8822:33:0;;;;:21;;;;:33;;;;;:::i;:::-;;8891:10;8866:11;:22;;:35;;;;8935:8;8912:11;:20;;:31;;;;8977:1;8954:11;:20;;:24;;;;9016:1;8989:11;:24;;:28;;;;9051:5;9028:11;:20;;;:28;;;;;;;;;;;;;;;;;;9090:5;9067:11;:20;;;:28;;;;;;;;;;;;;;;;;;9150:10;9108:17;:39;9126:11;:20;;;;;;;;;;-1:-1:-1;;;;;9126:20:0;-1:-1:-1;;;;;9108:39:0;-1:-1:-1;;;;;9108:39:0;;;;;;;;;;;;:52;;;;9178:242;9208:10;9233;9258:7;9280:6;9301:10;9326:9;9350:10;9375:8;9398:11;9178:242;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9438:10;6838:2618;-1:-1:-1;;;;;;;;;;6838:2618:0:o;9464:718::-;9560:23;9539:17;9545:10;9539:5;:17::i;:::-;:44;;;;;;;;;9517:157;;;;-1:-1:-1;;;9517:157:0;;;;;;;:::i;:::-;9685:25;9713:9;:21;9723:10;9713:21;;;;;;;;;;;9685:49;;9745:11;9759:41;9766:15;9783:8;-1:-1:-1;;;;;9783:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9759:41;9745:55;;9816:9;9811:288;9835:16;;;:23;9831:27;;9811:288;;;9880:207;9913:8;:16;;9930:1;9913:19;;;;;;;;;;;;;;;;;;9951:15;;;:18;;-1:-1:-1;;;;;9913:19:0;;;;9967:1;;9951:18;;;;;;;;;;;;;;9988:8;:19;;10008:1;9988:22;;;;;;;;;;;;;;;;;;9880:207;;;;;;;-1:-1:-1;;9880:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9988:22;9880:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10029:8;:18;;10048:1;10029:21;;;;;;;;;;;;;;;;;;9880:207;;;;;;;-1:-1:-1;;9880:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10029:21;9880:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10069:3;9880:14;:207::i;:::-;9860:3;;9811:288;;;-1:-1:-1;10109:12:0;;;:18;;;10143:31;;;;;;10158:10;;10124:3;;10143:31;:::i;5614:94::-;5656:52;5614:94;:::o;12993:155::-;13069:14;;:::i;:::-;-1:-1:-1;13103:21:0;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13103:37:0;;;;;;:30;;;;:37;;;;;;13096:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13096:44:0;;;;;;12993:155::o;3020:37::-;;;:::o;10696:712::-;10802:20;10781:17;10787:10;10781:5;:17::i;:::-;:41;;;;;;;;;10759:155;;;;-1:-1:-1;;;10759:155:0;;;;;;;:::i;:::-;10925:25;10953:21;;;:9;:21;;;;;10985:17;;;:24;;-1:-1:-1;;10985:24:0;;;;;10953:21;11020:337;11044:16;;;:23;11040:27;;11020:337;;;11089:8;-1:-1:-1;;;;;11089:27:0;;11124:8;:15;;11140:1;11124:18;;;;;;;;;;;;;;;;11162:8;:16;;11179:1;11162:19;;;;;;;;;;;;;;;;;;11200:15;;;:18;;-1:-1:-1;;;;;11162:19:0;;;;11216:1;;11200:18;;;;;;;;;;;;;;11237:8;:19;;11257:1;11237:22;;;;;;;;;;;;;;;11278:8;:18;;11297:1;11278:21;;;;;;;;;;;;;;;11318:8;:12;;;11089:256;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11089:256:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11069:3:0;;11020:337;;;;11372:28;11389:10;11372:28;;;;;;:::i;:::-;;;;;;;;10696:712;;:::o;15130:866::-;15281:20;15260:17;15266:10;15260:5;:17::i;:::-;:41;;;;;;;;;15252:91;;;;-1:-1:-1;;;15252:91:0;;;;;;;:::i;:::-;15354:25;15382:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;15440:24:0;;;;:17;;;:24;;;;;;15483:16;;;;:25;15475:78;;;;-1:-1:-1;;;15475:78:0;;;;;;;:::i;:::-;15606:19;;;;15579:47;;-1:-1:-1;;;15579:47:0;;15564:12;;-1:-1:-1;;;;;15579:5:0;:19;;;;:47;;15599:5;;15606:19;15579:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15564:62;;15643:7;15639:185;;;15687:32;15694:8;:17;;;15713:5;-1:-1:-1;;;;;15687:32:0;:6;:32::i;:::-;15667:17;;;:52;15639:185;;;15776:36;15783:8;:21;;;15806:5;-1:-1:-1;;;;;15776:36:0;:6;:36::i;:::-;15752:21;;;:60;15639:185;15836:23;;15855:4;-1:-1:-1;;15836:23:0;;;;-1:-1:-1;;15870:25:0;15836:23;15870:25;;;;;-1:-1:-1;;15906:21:0;;-1:-1:-1;;;;;15906:21:0;;;;;;15945:43;;;;;;15954:5;;15961:10;;15870:25;;15906:21;;15945:43;:::i;:::-;;;;;;;;15130:866;;;;;;:::o;17259:172::-;17320:7;17352:5;;;17376:6;;;;17368:36;;;;-1:-1:-1;;;17368:36:0;;;;;;;:::i;:::-;17422:1;17259:172;-1:-1:-1;;;17259:172:0:o;17439:152::-;17500:7;17533:1;17528;:6;;17520:40;;;;-1:-1:-1;;;17520:40:0;;;;;;;:::i;:::-;-1:-1:-1;17578:5:0;;;17439:152::o;17599:225::-;17772:9;17599:225;:::o;10190:498::-;10397:8;-1:-1:-1;;;;;10397:27:0;;10464:6;10472:5;10479:9;10490:4;10496:3;10453:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10443:58;;;;;;10397:119;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10396:120;10374:233;;;;-1:-1:-1;;;10374:233:0;;;;;;;:::i;:::-;10618:62;;-1:-1:-1;;;10618:62:0;;-1:-1:-1;;;;;10618:8:0;:25;;;;:62;;10644:6;;10652:5;;10659:9;;10670:4;;10676:3;;10618:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10190:498;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;14:339:1:-;;109:53;124:37;154:6;124:37;:::i;:::-;109:53;:::i;:::-;100:62;;185:6;178:5;171:21;225:3;216:6;211:3;207:16;204:25;201:2;;;242:1;239;232:12;201:2;291:6;286:3;279:4;272:5;268:16;255:43;345:1;338:4;329:6;322:5;318:18;314:29;307:40;90:263;;;;;:::o;358:175::-;428:20;;-1:-1:-1;;;;;477:31:1;;467:42;;457:2;;523:1;520;513:12;538:713;;651:3;644:4;636:6;632:17;628:27;618:2;;673:5;666;659:20;618:2;713:6;700:20;739:4;763:65;778:49;824:2;778:49;:::i;763:65::-;862:15;;;893:12;;;;925:15;;;971:11;;;959:24;;955:33;;952:42;-1:-1:-1;949:2:1;;;1011:5;1004;997:20;949:2;1037:5;1051:171;1065:2;1062:1;1059:9;1051:171;;;1122:25;1143:3;1122:25;:::i;:::-;1110:38;;1168:12;;;;1200;;;;1083:1;1076:9;1051:171;;;-1:-1:-1;1240:5:1;;608:643;-1:-1:-1;;;;;;;608:643:1:o;1256:810::-;;1367:3;1360:4;1352:6;1348:17;1344:27;1334:2;;1389:5;1382;1375:20;1334:2;1429:6;1416:20;1455:4;1479:65;1494:49;1540:2;1494:49;:::i;1479:65::-;1578:15;;;1609:12;;;;1641:15;;;1674:5;1688:349;1702:2;1699:1;1696:9;1688:349;;;1782:3;1769:17;1761:6;1757:30;1827:3;1822:2;1818;1814:11;1810:21;1800:2;;1849:5;1842;1835:20;1800:2;1882:80;1958:3;1952:2;1948;1944:11;1931:25;1926:2;1922;1918:11;1882:80;:::i;:::-;1870:93;;-1:-1:-1;1983:12:1;;;;2015;;;;1720:1;1713:9;1688:349;;2071:673;;2183:3;2176:4;2168:6;2164:17;2160:27;2150:2;;2205:5;2198;2191:20;2150:2;2245:6;2232:20;2271:4;2295:65;2310:49;2356:2;2310:49;:::i;2295:65::-;2394:15;;;2425:12;;;;2457:15;;;2490:5;2504:211;2518:2;2515:1;2512:9;2504:211;;;2575:65;2636:3;2631:2;2624:3;2611:17;2603:6;2599:30;2595:39;2575:65;:::i;:::-;2563:78;;2661:12;;;;2693;;;;2536:1;2529:9;2504:211;;2749:705;;2862:3;2855:4;2847:6;2843:17;2839:27;2829:2;;2884:5;2877;2870:20;2829:2;2924:6;2911:20;2950:4;2974:65;2989:49;3035:2;2989:49;:::i;2974:65::-;3073:15;;;3104:12;;;;3136:15;;;3182:11;;;3170:24;;3166:33;;3163:42;-1:-1:-1;3160:2:1;;;3222:5;3215;3208:20;3160:2;3248:5;3262:163;3276:2;3273:1;3270:9;3262:163;;;3333:17;;3321:30;;3371:12;;;;3403;;;;3294:1;3287:9;3262:163;;3459:233;;3557:3;3550:4;3542:6;3538:17;3534:27;3524:2;;3579:5;3572;3565:20;3524:2;3605:81;3682:3;3673:6;3660:20;3653:4;3645:6;3641:17;3605:81;:::i;3697:198::-;;3809:2;3797:9;3788:7;3784:23;3780:32;3777:2;;;3830:6;3822;3815:22;3777:2;3858:31;3879:9;3858:31;:::i;3900:266::-;;;4029:2;4017:9;4008:7;4004:23;4000:32;3997:2;;;4050:6;4042;4035:22;3997:2;4078:31;4099:9;4078:31;:::i;:::-;4068:41;4156:2;4141:18;;;;4128:32;;-1:-1:-1;;;3987:179:1:o;4171:1351::-;;;;;;4480:3;4468:9;4459:7;4455:23;4451:33;4448:2;;;4502:6;4494;4487:22;4448:2;4547:9;4534:23;4576:18;4617:2;4609:6;4606:14;4603:2;;;4638:6;4630;4623:22;4603:2;4666:67;4725:7;4716:6;4705:9;4701:22;4666:67;:::i;:::-;4656:77;;4786:2;4775:9;4771:18;4758:32;4742:48;;4815:2;4805:8;4802:16;4799:2;;;4836:6;4828;4821:22;4799:2;4864:69;4925:7;4914:8;4903:9;4899:24;4864:69;:::i;:::-;4854:79;;4986:2;4975:9;4971:18;4958:32;4942:48;;5015:2;5005:8;5002:16;4999:2;;;5036:6;5028;5021:22;4999:2;5064:68;5124:7;5113:8;5102:9;5098:24;5064:68;:::i;:::-;5054:78;;5185:2;5174:9;5170:18;5157:32;5141:48;;5214:2;5204:8;5201:16;5198:2;;;5235:6;5227;5220:22;5198:2;5263:67;5322:7;5311:8;5300:9;5296:24;5263:67;:::i;:::-;5253:77;;5383:3;5372:9;5368:19;5355:33;5339:49;;5413:2;5403:8;5400:16;5397:2;;;5434:6;5426;5419:22;5397:2;;5462:54;5508:7;5497:8;5486:9;5482:24;5462:54;:::i;:::-;5452:64;;;4438:1084;;;;;;;;:::o;5527:257::-;;5647:2;5635:9;5626:7;5622:23;5618:32;5615:2;;;5668:6;5660;5653:22;5615:2;5705:9;5699:16;5724:30;5748:5;5724:30;:::i;5789:194::-;;5912:2;5900:9;5891:7;5887:23;5883:32;5880:2;;;5933:6;5925;5918:22;5880:2;-1:-1:-1;5961:16:1;;5870:113;-1:-1:-1;5870:113:1:o;5988:675::-;;6120:2;6108:9;6099:7;6095:23;6091:32;6088:2;;;6141:6;6133;6126:22;6088:2;6179:9;6173:16;6212:18;6204:6;6201:30;6198:2;;;6249:6;6241;6234:22;6198:2;6277:22;;6330:4;6322:13;;6318:27;-1:-1:-1;6308:2:1;;6364:6;6356;6349:22;6308:2;6398;6392:9;6423:49;6438:33;6468:2;6438:33;:::i;6423:49::-;6495:2;6488:5;6481:17;6535:7;6530:2;6525;6521;6517:11;6513:20;6510:33;6507:2;;;6561:6;6553;6546:22;6507:2;6579:54;6630:2;6625;6618:5;6614:14;6609:2;6605;6601:11;6579:54;:::i;:::-;6652:5;6078:585;-1:-1:-1;;;;;6078:585:1:o;6668:190::-;;6780:2;6768:9;6759:7;6755:23;6751:32;6748:2;;;6801:6;6793;6786:22;6748:2;-1:-1:-1;6829:23:1;;6738:120;-1:-1:-1;6738:120:1:o;7062:266::-;;;7191:2;7179:9;7170:7;7166:23;7162:32;7159:2;;;7212:6;7204;7197:22;7159:2;7253:9;7240:23;7230:33;;7282:40;7318:2;7307:9;7303:18;7282:40;:::i;:::-;7272:50;;7149:179;;;;;:::o;7333:321::-;;;7459:2;7447:9;7438:7;7434:23;7430:32;7427:2;;;7480:6;7472;7465:22;7427:2;7521:9;7508:23;7498:33;;7581:2;7570:9;7566:18;7553:32;7594:30;7618:5;7594:30;:::i;:::-;7643:5;7633:15;;;7417:237;;;;;:::o;7659:634::-;;;;;;7834:3;7822:9;7813:7;7809:23;7805:33;7802:2;;;7856:6;7848;7841:22;7802:2;7897:9;7884:23;7874:33;;7957:2;7946:9;7942:18;7929:32;7970:30;7994:5;7970:30;:::i;:::-;8019:5;-1:-1:-1;8076:2:1;8061:18;;8048:32;8124:4;8111:18;;8099:31;;8089:2;;8149:6;8141;8134:22;8089:2;7792:501;;;;-1:-1:-1;8177:7:1;;8231:2;8216:18;;8203:32;;-1:-1:-1;8282:3:1;8267:19;8254:33;;7792:501;-1:-1:-1;;7792:501:1:o;8298:316::-;;8420:2;8408:9;8399:7;8395:23;8391:32;8388:2;;;8441:6;8433;8426:22;8388:2;8478:9;8472:16;-1:-1:-1;;;;;8521:5:1;8517:38;8510:5;8507:49;8497:2;;8575:6;8567;8560:22;8619:469;;8716:5;8710:12;8743:6;8738:3;8731:19;8769:4;8798:2;8793:3;8789:12;8782:19;;8835:2;8828:5;8824:14;8856:3;8868:195;8882:6;8879:1;8876:13;8868:195;;;8947:13;;-1:-1:-1;;;;;8943:39:1;8931:52;;9003:12;;;;9038:15;;;;8979:1;8897:9;8868:195;;;-1:-1:-1;9079:3:1;;8686:402;-1:-1:-1;;;;;8686:402:1:o;9093:625::-;;9188:5;9182:12;9215:6;9210:3;9203:19;9241:4;9282:2;9277:3;9273:12;9307:11;9334;9327:18;;9389:2;9381:6;9377:15;9370:5;9366:27;9354:39;;9427:2;9420:5;9416:14;9448:3;9460:232;9474:6;9471:1;9468:13;9460:232;;;9545:5;9539:4;9535:16;9530:3;9523:29;9573:39;9607:4;9598:6;9592:13;9573:39;:::i;:::-;9670:12;;;;9565:47;-1:-1:-1;9635:15:1;;;;9496:1;9489:9;9460:232;;;-1:-1:-1;9708:4:1;;9158:560;-1:-1:-1;;;;;;;9158:560:1:o;9723:443::-;;9820:5;9814:12;9847:6;9842:3;9835:19;9873:4;9902:2;9897:3;9893:12;9886:19;;9939:2;9932:5;9928:14;9960:3;9972:169;9986:6;9983:1;9980:13;9972:169;;;10047:13;;10035:26;;10081:12;;;;10116:15;;;;10008:1;10001:9;9972:169;;10171:259;;10252:5;10246:12;10279:6;10274:3;10267:19;10295:63;10351:6;10344:4;10339:3;10335:14;10328:4;10321:5;10317:16;10295:63;:::i;:::-;10412:2;10391:15;-1:-1:-1;;10387:29:1;10378:39;;;;10419:4;10374:50;;10222:208;-1:-1:-1;;10222:208:1:o;10435:756::-;;10527:5;10521:12;10552:1;10584:2;10573:9;10569:18;10601:1;10596:165;;;;10775:1;10770:415;;;;10562:623;;10596:165;10648:1;10633:17;;10652:4;10629:28;10617:41;;-1:-1:-1;;10694:24:1;;10687:4;10678:14;;10671:48;10748:2;10739:12;;;-1:-1:-1;10596:165:1;;10770:415;10820:1;10809:9;10805:17;10847:6;10842:3;10835:19;10882:37;10913:5;10882:37;:::i;:::-;10941:1;10955:178;10969:6;10966:1;10963:13;10955:178;;;11066:7;11060:14;11053:4;11049:1;11044:3;11040:11;11036:22;11029:46;11116:2;11107:7;11103:16;11092:27;;10991:4;10988:1;10984:12;10979:17;;10955:178;;;11157:11;;11170:4;11153:22;;-1:-1:-1;;;10562:623:1;;;;10494:697;;;;:::o;11196:392::-;-1:-1:-1;;;11454:27:1;;11506:1;11497:11;;11490:27;;;;11542:2;11533:12;;11526:28;11579:2;11570:12;;11444:144::o;11593:203::-;-1:-1:-1;;;;;11757:32:1;;;;11739:51;;11727:2;11712:18;;11694:102::o;11801:282::-;-1:-1:-1;;;;;12001:32:1;;;;11983:51;;12065:2;12050:18;;12043:34;11971:2;11956:18;;11938:145::o;12088:714::-;;12457:1;12453;12448:3;12444:11;12440:19;12432:6;12428:32;12417:9;12410:51;12497:6;12492:2;12481:9;12477:18;12470:34;12540:3;12535:2;12524:9;12520:18;12513:31;12581:2;12575:3;12564:9;12560:19;12553:31;12621:26;12615:3;12604:9;12600:19;12593:55;12684:3;12679:2;12668:9;12664:18;12657:31;12705:47;12747:3;12736:9;12732:19;12724:6;12705:47;:::i;:::-;12697:55;;12789:6;12783:3;12772:9;12768:19;12761:35;12400:402;;;;;;;:::o;13086:459::-;-1:-1:-1;;;;;13328:32:1;;;;13310:51;;13392:2;13377:18;;13370:34;;;;13447:14;13440:22;13435:2;13420:18;;13413:50;-1:-1:-1;;;;;13499:39:1;13494:2;13479:18;;13472:67;13297:3;13282:19;;13264:281::o;13550:625::-;;13858:1;13854;13849:3;13845:11;13841:19;13833:6;13829:32;13818:9;13811:51;13898:6;13893:2;13882:9;13878:18;13871:34;13941:3;13936:2;13925:9;13921:18;13914:31;13968:47;14010:3;13999:9;13995:19;13987:6;13968:47;:::i;:::-;14063:9;14055:6;14051:22;14046:2;14035:9;14031:18;14024:50;14091:34;14118:6;14110;14091:34;:::i;:::-;14083:42;;;14162:6;14156:3;14145:9;14141:19;14134:35;13801:374;;;;;;;;:::o;14180:635::-;;14482:1;14478;14473:3;14469:11;14465:19;14457:6;14453:32;14442:9;14435:51;14522:6;14517:2;14506:9;14502:18;14495:34;14565:3;14560:2;14549:9;14545:18;14538:31;14592:55;14642:3;14631:9;14627:19;14619:6;14592:55;:::i;:::-;14695:9;14687:6;14683:22;14678:2;14667:9;14663:18;14656:50;14723:42;14758:6;14750;14723:42;:::i;14820:725::-;-1:-1:-1;;;;;15169:32:1;;;;15151:51;;15233:2;15218:18;;15211:34;;;;15276:2;15261:18;;15254:34;;;;15319:2;15304:18;;15297:34;;;;15362:3;15347:19;;15340:35;15189:3;15391:19;;15384:35;15463:14;15456:22;15450:3;15435:19;;15428:51;15523:14;15516:22;15510:3;15495:19;;15488:51;15138:3;15123:19;;15105:440::o;15550:933::-;;16001:3;15990:9;15983:22;16028:63;16086:3;16075:9;16071:19;16063:6;16028:63;:::i;:::-;16139:9;16131:6;16127:22;16122:2;16111:9;16107:18;16100:50;16173;16216:6;16208;16173:50;:::i;:::-;16159:64;;16271:9;16263:6;16259:22;16254:2;16243:9;16239:18;16232:50;16305:48;16346:6;16338;16305:48;:::i;:::-;16291:62;;16401:9;16393:6;16389:22;16384:2;16373:9;16369:18;16362:50;16429:48;16470:6;16462;16429:48;:::i;:::-;16421:56;15973:510;-1:-1:-1;;;;;;;15973:510:1:o;16488:177::-;16634:25;;;16622:2;16607:18;;16589:76::o;16670:417::-;16901:25;;;16957:2;16942:18;;16935:34;;;;17000:2;16985:18;;16978:34;-1:-1:-1;;;;;17048:32:1;17043:2;17028:18;;17021:60;16888:3;16873:19;;16855:232::o;17092:329::-;17288:25;;;17344:2;17329:18;;17322:34;;;;17399:14;17392:22;17387:2;17372:18;;17365:50;17276:2;17261:18;;17243:178::o;17426:398::-;17653:25;;;17726:4;17714:17;;;;17709:2;17694:18;;17687:45;17763:2;17748:18;;17741:34;17806:2;17791:18;;17784:34;17640:3;17625:19;;17607:217::o;18294:239::-;18443:2;18428:18;;18476:1;18465:13;;18455:2;;18482:9;18455:2;18502:25;;;18410:123;:::o;18538:221::-;;18687:2;18676:9;18669:21;18707:46;18749:2;18738:9;18734:18;18726:6;18707:46;:::i;18764:422::-;18966:2;18948:21;;;19005:2;18985:18;;;18978:30;19044:34;19039:2;19024:18;;19017:62;19115:28;19110:2;19095:18;;19088:56;19176:3;19161:19;;18938:248::o;19191:470::-;19393:2;19375:21;;;19432:2;19412:18;;;19405:30;19471:34;19466:2;19451:18;;19444:62;19542:34;19537:2;19522:18;;19515:62;-1:-1:-1;;;19608:3:1;19593:19;;19586:33;19651:3;19636:19;;19365:296::o;19666:427::-;19868:2;19850:21;;;19907:2;19887:18;;;19880:30;19946:34;19941:2;19926:18;;19919:62;20017:33;20012:2;19997:18;;19990:61;20083:3;20068:19;;19840:253::o;20098:473::-;20300:2;20282:21;;;20339:2;20319:18;;;20312:30;20378:34;20373:2;20358:18;;20351:62;20449:34;20444:2;20429:18;;20422:62;-1:-1:-1;;;20515:3:1;20500:19;;20493:36;20561:3;20546:19;;20272:299::o;20576:399::-;20778:2;20760:21;;;20817:2;20797:18;;;20790:30;20856:34;20851:2;20836:18;;20829:62;-1:-1:-1;;;20922:2:1;20907:18;;20900:33;20965:3;20950:19;;20750:225::o;20980:413::-;21182:2;21164:21;;;21221:2;21201:18;;;21194:30;21260:34;21255:2;21240:18;;21233:62;-1:-1:-1;;;21326:2:1;21311:18;;21304:47;21383:3;21368:19;;21154:239::o;21398:403::-;21600:2;21582:21;;;21639:2;21619:18;;;21612:30;21678:34;21673:2;21658:18;;21651:62;-1:-1:-1;;;21744:2:1;21729:18;;21722:37;21791:3;21776:19;;21572:229::o;21806:488::-;22008:2;21990:21;;;22047:2;22027:18;;;22020:30;22086:34;22081:2;22066:18;;22059:62;22157:34;22152:2;22137:18;;22130:62;-1:-1:-1;;;22223:3:1;22208:19;;22201:51;22284:3;22269:19;;21980:314::o;22299:475::-;22501:2;22483:21;;;22540:2;22520:18;;;22513:30;22579:34;22574:2;22559:18;;22552:62;22650:34;22645:2;22630:18;;22623:62;-1:-1:-1;;;22716:3:1;22701:19;;22694:38;22764:3;22749:19;;22473:301::o;22779:400::-;22981:2;22963:21;;;23020:2;23000:18;;;22993:30;23059:34;23054:2;23039:18;;23032:62;-1:-1:-1;;;23125:2:1;23110:18;;23103:34;23169:3;23154:19;;22953:226::o;23184:487::-;23386:2;23368:21;;;23425:2;23405:18;;;23398:30;23464:34;23459:2;23444:18;;23437:62;23535:34;23530:2;23515:18;;23508:62;-1:-1:-1;;;23601:3:1;23586:19;;23579:50;23661:3;23646:19;;23358:313::o;23676:428::-;23878:2;23860:21;;;23917:2;23897:18;;;23890:30;;;23956:34;23936:18;;;23929:62;24027:34;24022:2;24007:18;;24000:62;24094:3;24079:19;;23850:254::o;24109:341::-;24311:2;24293:21;;;24350:2;24330:18;;;24323:30;-1:-1:-1;;;24384:2:1;24369:18;;24362:47;24441:2;24426:18;;24283:167::o;24455:413::-;24657:2;24639:21;;;24696:2;24676:18;;;24669:30;24735:34;24730:2;24715:18;;24708:62;-1:-1:-1;;;24801:2:1;24786:18;;24779:47;24858:3;24843:19;;24629:239::o;24873:427::-;25075:2;25057:21;;;25114:2;25094:18;;;25087:30;25153:34;25148:2;25133:18;;25126:62;25224:33;25219:2;25204:18;;25197:61;25290:3;25275:19;;25047:253::o;25305:416::-;25507:2;25489:21;;;25546:2;25526:18;;;25519:30;25585:34;25580:2;25565:18;;25558:62;-1:-1:-1;;;25651:2:1;25636:18;;25629:50;25711:3;25696:19;;25479:242::o;25726:404::-;25928:2;25910:21;;;25967:2;25947:18;;;25940:30;26006:34;26001:2;25986:18;;25979:62;-1:-1:-1;;;26072:2:1;26057:18;;26050:38;26120:3;26105:19;;25900:230::o;26135:401::-;26337:2;26319:21;;;26376:2;26356:18;;;26349:30;26415:34;26410:2;26395:18;;26388:62;-1:-1:-1;;;26481:2:1;26466:18;;26459:35;26526:3;26511:19;;26309:227::o;26541:345::-;26743:2;26725:21;;;26782:2;26762:18;;;26755:30;-1:-1:-1;;;26816:2:1;26801:18;;26794:51;26877:2;26862:18;;26715:171::o;26891:427::-;27093:2;27075:21;;;27132:2;27112:18;;;27105:30;27171:34;27166:2;27151:18;;27144:62;27242:33;27237:2;27222:18;;27215:61;27308:3;27293:19;;27065:253::o;27323:406::-;27525:2;27507:21;;;27564:2;27544:18;;;27537:30;27603:34;27598:2;27583:18;;27576:62;-1:-1:-1;;;27669:2:1;27654:18;;27647:40;27719:3;27704:19;;27497:232::o;27734:423::-;27960:13;;27953:21;27946:29;27928:48;;28046:4;28034:17;;;28028:24;28021:32;28014:40;27992:20;;;27985:70;28115:4;28103:17;;;28097:24;-1:-1:-1;;;;;28093:57:1;28071:20;;;28064:87;;;;27916:2;27901:18;;27883:274::o;28344:1440::-;28967:25;;;-1:-1:-1;;;;;29028:32:1;;29023:2;29008:18;;29001:60;28955:3;29092:2;29077:18;;29070:30;;;28344:1440;;29123:62;29166:18;;;29158:6;29123:62;:::i;:::-;29109:76;;29233:9;29225:6;29221:22;29216:2;29205:9;29201:18;29194:50;29267;29310:6;29302;29267:50;:::i;:::-;29253:64;;29366:9;29358:6;29354:22;29348:3;29337:9;29333:19;29326:51;29400:48;29441:6;29433;29400:48;:::i;:::-;29386:62;;29497:9;29489:6;29485:22;29479:3;29468:9;29464:19;29457:51;29531:48;29572:6;29564;29531:48;:::i;:::-;29517:62;;29616:6;29610:3;29599:9;29595:19;29588:35;29660:6;29654:3;29643:9;29639:19;29632:35;29716:9;29708:6;29704:22;29698:3;29687:9;29683:19;29676:51;29744:34;29771:6;29763;29744:34;:::i;:::-;29736:42;28935:849;-1:-1:-1;;;;;;;;;;;;28935:849:1:o;29789:248::-;29963:25;;;30019:2;30004:18;;29997:34;29951:2;29936:18;;29918:119::o;30042:242::-;30112:2;30106:9;30142:17;;;30189:18;30174:34;;30210:22;;;30171:62;30168:2;;;30236:9;30168:2;30263;30256:22;30086:198;;-1:-1:-1;30086:198:1:o;30289:183::-;;30388:18;30380:6;30377:30;30374:2;;;30410:9;30374:2;-1:-1:-1;30461:4:1;30442:17;;;30438:28;;30364:108::o;30477:181::-;;30560:18;30552:6;30549:30;30546:2;;;30582:9;30546:2;-1:-1:-1;30641:2:1;30618:17;-1:-1:-1;;30614:31:1;30647:4;30610:42;;30536:122::o;30663:128::-;;30730:17;;;30780:4;30764:21;;;30720:71::o;30796:258::-;30868:1;30878:113;30892:6;30889:1;30886:13;30878:113;;;30968:11;;;30962:18;30949:11;;;30942:39;30914:2;30907:10;30878:113;;;31009:6;31006:1;31003:13;31000:2;;;-1:-1:-1;;31044:1:1;31026:16;;31019:27;30849:205::o;31059:120::-;31147:5;31140:13;31133:21;31126:5;31123:32;31113:2;;31169:1;31166;31159:12
Swarm Source
ipfs://31a5041528f6ca588e61832ab4f77d6adcffcf2bf8772140a4fccea193c29f20
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
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.