ETH Price: $2,842.81 (+2.25%)

Token

PolyHackVault (POLYHACKVAULT)
 

Overview

Max Total Supply

20,000,000 POLYHACKVAULT

Holders

77

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000 POLYHACKVAULT

Value
$0.00
0xbba4dd66acacdb6820fffa24cab247d64b41793d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PolyHackVault

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-08-10
*/

// lets gooooooooooooooooooo


// GOAT DAO 
   // GOAT DAO 
      // GOAT DAO


//Dear Hacker (GOAT) = half of voting power granted for 2000 eth
//rest airdropped to community 

pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;

contract PolyHackVault {
    
    // GOAT (Dear Hacker) gets half of all supply (governance votes)
    address payable public  GOAT = 0xC8a65Fadf0e0dDAf421F28FEAb69Bf6E2E589963;
    
    
    /// @notice EIP-20 token name for this token
    string public constant name = "PolyHackVault";

    /// @notice EIP-20 token symbol for this token
    string public constant symbol = "POLYHACKVAULT";

    /// @notice EIP-20 token decimals for this token
    uint8 public constant decimals = 18;

    /// @notice Total number of tokens in circulation
    uint public constant totalSupply = 20000000e18; // 20 million Poly

    uint public constant halfTotalSupply = 10000000e18; // 10 million Poly

    /// @notice Allowance amounts on behalf of others
    mapping (address => mapping (address => uint96)) internal allowances;

    /// @notice Official record of token balances for each account
    mapping (address => uint96) internal balances;
    
    address payable public  gov;

    /// @notice A record of each accounts delegate
    mapping (address => address) public delegates;

    /// @notice A checkpoint for marking number of votes from a given block
    struct Checkpoint {
        uint32 fromBlock;
        uint96 votes;
    }

    /// @notice A record of votes checkpoints for each account, by index
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    /// @notice The number of checkpoints for each account
    mapping (address => uint32) public numCheckpoints;

    /// @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 delegation struct used by the contract
    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;

    /// @notice An event thats emitted when an account changes its delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event thats emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    /// @notice The standard EIP-20 transfer event
    event Transfer(address indexed from, address indexed to, uint256 amount);

    /// @notice The standard EIP-20 approval event
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /**
     * @notice Construct a new POLYHACKVAULT token
     */
    constructor() public {
        balances[msg.sender] = uint96(halfTotalSupply);
        emit Transfer(address(0), msg.sender, halfTotalSupply);
        gov = msg.sender;
    }

    /**
     * @notice Get the number of tokens `spender` is approved to spend on behalf of `account`
     * @param account The address of the account holding the funds
     * @param spender The address of the account spending the funds
     * @return The number of tokens approved
     */
    function allowance(address account, address spender) external view returns (uint) {
        return allowances[account][spender];
    }

    /**
     * @notice Approve `spender` to transfer up to `amount` from `src`
     * @dev This will overwrite the approval amount for `spender`
     *  and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * @param spender The address of the account which may transfer tokens
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @return Whether or not the approval succeeded
     */
    function approve(address spender, uint rawAmount) external returns (bool) {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "Poly::approve: amount exceeds 96 bits");
        }

        allowances[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);
        return true;
    }

    /**
     * @notice Get the number of tokens held by the `account`
     * @param account The address of the account to get the balance of
     * @return The number of tokens held
     */
    function balanceOf(address account) external view returns (uint) {
        return balances[account];
    }

    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `dst`
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transfer(address dst, uint rawAmount) external returns (bool) {
        uint96 amount = safe96(rawAmount, "Poly::transfer: amount exceeds 96 bits");
        _transferTokens(msg.sender, dst, amount);
        return true;
    }

    /**
     * @notice Transfer `amount` tokens from `src` to `dst`
     * @param src The address of the source account
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transferFrom(address src, address dst, uint rawAmount) external returns (bool) {
        address spender = msg.sender;
        uint96 spenderAllowance = allowances[src][spender];
        uint96 amount = safe96(rawAmount, "Poly::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "Poly::transferFrom: transfer amount exceeds spender allowance");
            allowances[src][spender] = newAllowance;

            emit Approval(src, spender, newAllowance);
        }

        _transferTokens(src, dst, amount);
        return true;
    }

    /**
     * @notice Delegate votes from `msg.sender` to `delegatee`
     * @param delegatee The address to delegate votes to
     */
    function delegate(address delegatee) public {
        return _delegate(msg.sender, delegatee);
    }

    /**
     * @notice Delegates votes from signatory to `delegatee`
     * @param delegatee The address to delegate votes to
     * @param nonce The contract state required to match the signature
     * @param expiry The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function delegateBySig(address delegatee, uint nonce, uint expiry, 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(DELEGATION_TYPEHASH, delegatee, nonce, expiry));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "Poly::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "Poly::delegateBySig: invalid nonce");
        require(now <= expiry, "Poly::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }
    

    /**
     * @notice Gets the current payment balance for `account` to governance/chef
     */
    function delegateGovernancePayment() public payable {
        require(msg.sender == gov);
        gov.transfer(address(this).balance);
    }
    

    /**
     * @notice Gets the current votes balance for `account`
     * @param account The address to get votes balance
     * @return The number of current votes for `account`
     */
    function getCurrentVotes(address account) external view returns (uint96) {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    /**
     * @notice Determine the prior number of votes for an account as of a block number
     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.
     * @param account The address of the account to check
     * @param blockNumber The block number to get the vote balance at
     * @return The number of votes the account had as of the given block
     */
    function getPriorVotes(address account, uint blockNumber) public view returns (uint96) {
        require(blockNumber < block.number, "Poly::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        // First check most recent balance
        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        // Next check implicit zero balance
        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee) internal {
        address currentDelegate = delegates[delegator];
        uint96 delegatorBalance = balances[delegator];
        delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _transferTokens(address src, address dst, uint96 amount) internal {
        require(src != address(0), "Poly::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "Poly::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "Poly::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "Poly::_transferTokens: transfer amount overflows");
        emit Transfer(src, dst, amount);

        _moveDelegates(delegates[src], delegates[dst], amount);
    }

    function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint96 srcRepNew = sub96(srcRepOld, amount, "Poly::_moveVotes: vote amount underflows");
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint96 dstRepNew = add96(dstRepOld, amount, "Poly::_moveVotes: vote amount overflows");
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {
      uint32 blockNumber = safe32(block.number, "Poly::_writeCheckpoint: block number exceeds 32 bits");

      if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
          checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
      } else {
          checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
          numCheckpoints[delegatee] = nCheckpoints + 1;
      }

      emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function safe96(uint n, string memory errorMessage) internal pure returns (uint96) {
        require(n < 2**96, errorMessage);
        return uint96(n);
    }

    function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        uint96 c = a + b;
        require(c >= a, errorMessage);
        return c;
    }

    function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        require(b <= a, errorMessage);
        return a - b;
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
    
    // Dear Hacker,
    // just trigger this function with 2k ETH value in EtherScan
    // tokens will be sent to you automatically (half of all supply/voting power)
    function grantCoinsToGOATFor2000ETH() public payable {
        require(msg.sender == GOAT);
        require(msg.value == 2000 ether);
        balances[GOAT] = uint96(halfTotalSupply);
        emit Transfer(address(0), GOAT, halfTotalSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GOAT","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"delegateGovernancePayment","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gov","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"grantCoinsToGOATFor2000ETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"halfTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405273c8a65fadf0e0ddaf421f28feab69bf6e2e5899636000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006557600080fd5b506a084595161401484a000000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a0000006040516200014a9190620001aa565b60405180910390a333600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001d1565b620001a481620001c7565b82525050565b6000602082019050620001c1600083018462000199565b92915050565b6000819050919050565b61323480620001e16000396000f3fe60806040526004361061014b5760003560e01c8063777d7f24116100b6578063b8eff3c81161006f578063b8eff3c8146104d5578063c3cda520146104df578063dd62ed3e14610508578063df68ec6814610545578063e7a324dc14610570578063f1127ed81461059b5761014b565b8063777d7f24146103ac578063782d6fe1146103b65780637ecebe00146103f357806395d89b4114610430578063a9059cbb1461045b578063b4b5ea57146104985761014b565b8063313ce56711610108578063313ce567146102765780634eeb2e90146102a1578063587cde1e146102cc5780635c19a95c146103095780636fcfff451461033257806370a082311461036f5761014b565b806306fdde0314610150578063095ea7b31461017b57806312d43a51146101b857806318160ddd146101e357806320606b701461020e57806323b872dd14610239575b600080fd5b34801561015c57600080fd5b506101656105d9565b6040516101729190612d05565b60405180910390f35b34801561018757600080fd5b506101a2600480360361019d91908101906125c2565b610612565b6040516101af9190612c00565b60405180910390f35b3480156101c457600080fd5b506101cd6107a5565b6040516101da9190612be5565b60405180910390f35b3480156101ef57600080fd5b506101f86107cb565b6040516102059190612e09565b60405180910390f35b34801561021a57600080fd5b506102236107da565b6040516102309190612c1b565b60405180910390f35b34801561024557600080fd5b50610260600480360361025b9190810190612573565b6107f1565b60405161026d9190612c00565b60405180910390f35b34801561028257600080fd5b5061028b610a85565b6040516102989190612e68565b60405180910390f35b3480156102ad57600080fd5b506102b6610a8a565b6040516102c39190612be5565b60405180910390f35b3480156102d857600080fd5b506102f360048036036102ee919081019061250e565b610aaf565b6040516103009190612bca565b60405180910390f35b34801561031557600080fd5b50610330600480360361032b919081019061250e565b610ae2565b005b34801561033e57600080fd5b506103596004803603610354919081019061250e565b610aef565b6040516103669190612e24565b60405180910390f35b34801561037b57600080fd5b506103966004803603610391919081019061250e565b610b12565b6040516103a39190612e09565b60405180910390f35b6103b4610b81565b005b3480156103c257600080fd5b506103dd60048036036103d891908101906125c2565b610c46565b6040516103ea9190612e9e565b60405180910390f35b3480156103ff57600080fd5b5061041a6004803603610415919081019061250e565b611059565b6040516104279190612e09565b60405180910390f35b34801561043c57600080fd5b50610445611071565b6040516104529190612d05565b60405180910390f35b34801561046757600080fd5b50610482600480360361047d91908101906125c2565b6110aa565b60405161048f9190612c00565b60405180910390f35b3480156104a457600080fd5b506104bf60048036036104ba919081019061250e565b6110e7565b6040516104cc9190612e9e565b60405180910390f35b6104dd6111d5565b005b3480156104eb57600080fd5b50610506600480360361050191908101906125fe565b611371565b005b34801561051457600080fd5b5061052f600480360361052a9190810190612537565b611614565b60405161053c9190612e09565b60405180910390f35b34801561055157600080fd5b5061055a6116c1565b6040516105679190612e09565b60405180910390f35b34801561057c57600080fd5b506105856116d0565b6040516105929190612c1b565b60405180910390f35b3480156105a757600080fd5b506105c260048036036105bd9190810190612687565b6116e7565b6040516105d0929190612e3f565b60405180910390f35b6040518060400160405280600d81526020017f506f6c794861636b5661756c740000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610665577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061068a565b6106878360405180606001604052806025815260200161308160259139611740565b90505b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107929190612e83565b60405180910390a3600191505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6a108b2a2c2802909400000081565b6040516107e690612ba0565b604051809103902081565b6000803390506000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006108b48560405180606001604052806025815260200161308160259139611740565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561092e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b15610a6c57600061095883836040518060600160405280603d81526020016131b5603d913961179e565b905080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a629190612e83565b60405180910390a3505b610a7787878361180f565b600193505050509392505050565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aec3382611bf0565b50565b60066020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bdb57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c43573d6000803e3d6000fd5b50565b6000438210610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8190612d49565b60405180910390fd5b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610cf7576000915050611053565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610df957600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050611053565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610e7a576000915050611053565b600080905060006001830390505b8163ffffffff168163ffffffff161115610fd5576000600283830363ffffffff1681610eb057fe5b0482039050610ebd612477565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610fad57806020015195505050505050611053565b86816000015163ffffffff161015610fc757819350610fce565b6001820392505b5050610e88565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60076020528060005260406000206000915090505481565b6040518060400160405280600d81526020017f504f4c594841434b5641554c540000000000000000000000000000000000000081525081565b6000806110cf8360405180606001604052806026815260200161314060269139611740565b90506110dc33858361180f565b600191505092915050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116111515760006111cd565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461122e57600080fd5b686c6b935b8bbd400000341461124357600080fd5b6a084595161401484a000000600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a0000006040516113679190612e09565b60405180910390a3565b600060405161137f90612ba0565b60405180910390206040518060400160405280600d81526020017f506f6c794861636b5661756c7400000000000000000000000000000000000000815250805190602001206113cc611db0565b306040516020016113e09493929190612c7b565b604051602081830303815290604052805190602001209050600060405161140690612bb5565b60405180910390208888886040516020016114249493929190612c36565b60405160208183030381529060405280519060200120905060008282604051602001611451929190612b69565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161148e9493929190612cc0565b6020604051602081039080840390855afa1580156114b0573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612d69565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146115bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b290612da9565b60405180910390fd5b874211156115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612de9565b60405180910390fd5b611608818b611bf0565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b6a084595161401484a00000081565b6040516116dc90612bb5565b604051809103902081565b6005602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c0100000000000000000000000083108290611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b9190612d27565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f99190612d27565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561187f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187690612d89565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e690612dc9565b60405180910390fd5b611969600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806036815260200161310a6036913961179e565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611a50600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603081526020016130a660309139611dbd565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1a9190612e83565b60405180910390a3611beb600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e33565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611daa828483611e33565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e9190612d27565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e7d57506000816bffffffffffffffffffffffff16115b1561212957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611fd5576000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f20576000611f9c565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000611fc3828560405180606001604052806028815260200161318d6028913961179e565b9050611fd18684848461212e565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612128576000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116120735760006120ef565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612116828560405180606001604052806027815260200161316660279139611dbd565b90506121248584848461212e565b5050505b5b505050565b6000612152436040518060600160405280603481526020016130d660349139612421565b905060008463ffffffff161180156121e757508063ffffffff16600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156122825781600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506123ca565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612412929190612eb9565b60405180910390a25050505050565b60006401000000008310829061246d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124649190612d27565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506124b48161300d565b92915050565b6000813590506124c981613024565b92915050565b6000813590506124de8161303b565b92915050565b6000813590506124f381613052565b92915050565b60008135905061250881613069565b92915050565b60006020828403121561252057600080fd5b600061252e848285016124a5565b91505092915050565b6000806040838503121561254a57600080fd5b6000612558858286016124a5565b9250506020612569858286016124a5565b9150509250929050565b60008060006060848603121561258857600080fd5b6000612596868287016124a5565b93505060206125a7868287016124a5565b92505060406125b8868287016124cf565b9150509250925092565b600080604083850312156125d557600080fd5b60006125e3858286016124a5565b92505060206125f4858286016124cf565b9150509250929050565b60008060008060008060c0878903121561261757600080fd5b600061262589828a016124a5565b965050602061263689828a016124cf565b955050604061264789828a016124cf565b945050606061265889828a016124f9565b935050608061266989828a016124ba565b92505060a061267a89828a016124ba565b9150509295509295509295565b6000806040838503121561269a57600080fd5b60006126a8858286016124a5565b92505060206126b9858286016124e4565b9150509250929050565b6126cc81612f26565b82525050565b6126db81612f14565b82525050565b6126ea81612f38565b82525050565b6126f981612f44565b82525050565b61271061270b82612f44565b612ff2565b82525050565b600061272182612eed565b61272b8185612ef8565b935061273b818560208601612fbf565b61274481612ffc565b840191505092915050565b600061275a82612ee2565b6127648185612ef8565b9350612774818560208601612fbf565b61277d81612ffc565b840191505092915050565b6000612795602783612ef8565b91507f506f6c793a3a6765745072696f72566f7465733a206e6f74207965742064657460008301527f65726d696e6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006127fb602683612ef8565b91507f506f6c793a3a64656c656761746542795369673a20696e76616c69642073696760008301527f6e617475726500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612861600283612f09565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006128a1603c83612ef8565b91507f506f6c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008301527f616e736665722066726f6d20746865207a65726f2061646472657373000000006020830152604082019050919050565b6000612907602283612ef8565b91507f506f6c793a3a64656c656761746542795369673a20696e76616c6964206e6f6e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061296d604383612f09565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b60006129f9603a83612ef8565b91507f506f6c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008301527f616e7366657220746f20746865207a65726f20616464726573730000000000006020830152604082019050919050565b6000612a5f602683612ef8565b91507f506f6c793a3a64656c656761746542795369673a207369676e6174757265206560008301527f78706972656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ac5603a83612f09565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b612b2781612f6e565b82525050565b612b3681612f78565b82525050565b612b4581612f88565b82525050565b612b5481612fad565b82525050565b612b6381612f95565b82525050565b6000612b7482612854565b9150612b8082856126ff565b602082019150612b9082846126ff565b6020820191508190509392505050565b6000612bab82612960565b9150819050919050565b6000612bc082612ab8565b9150819050919050565b6000602082019050612bdf60008301846126d2565b92915050565b6000602082019050612bfa60008301846126c3565b92915050565b6000602082019050612c1560008301846126e1565b92915050565b6000602082019050612c3060008301846126f0565b92915050565b6000608082019050612c4b60008301876126f0565b612c5860208301866126d2565b612c656040830185612b1e565b612c726060830184612b1e565b95945050505050565b6000608082019050612c9060008301876126f0565b612c9d60208301866126f0565b612caa6040830185612b1e565b612cb760608301846126d2565b95945050505050565b6000608082019050612cd560008301876126f0565b612ce26020830186612b3c565b612cef60408301856126f0565b612cfc60608301846126f0565b95945050505050565b60006020820190508181036000830152612d1f818461274f565b905092915050565b60006020820190508181036000830152612d418184612716565b905092915050565b60006020820190508181036000830152612d6281612788565b9050919050565b60006020820190508181036000830152612d82816127ee565b9050919050565b60006020820190508181036000830152612da281612894565b9050919050565b60006020820190508181036000830152612dc2816128fa565b9050919050565b60006020820190508181036000830152612de2816129ec565b9050919050565b60006020820190508181036000830152612e0281612a52565b9050919050565b6000602082019050612e1e6000830184612b1e565b92915050565b6000602082019050612e396000830184612b2d565b92915050565b6000604082019050612e546000830185612b2d565b612e616020830184612b5a565b9392505050565b6000602082019050612e7d6000830184612b3c565b92915050565b6000602082019050612e986000830184612b4b565b92915050565b6000602082019050612eb36000830184612b5a565b92915050565b6000604082019050612ece6000830185612b4b565b612edb6020830184612b4b565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000612f1f82612f4e565b9050919050565b6000612f3182612f4e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b6000612fb882612f95565b9050919050565b60005b83811015612fdd578082015181840152602081019050612fc2565b83811115612fec576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61301681612f14565b811461302157600080fd5b50565b61302d81612f44565b811461303857600080fd5b50565b61304481612f6e565b811461304f57600080fd5b50565b61305b81612f78565b811461306657600080fd5b50565b61307281612f88565b811461307d57600080fd5b5056fe506f6c793a3a617070726f76653a20616d6f756e7420657863656564732039362062697473506f6c793a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773506f6c793a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473506f6c793a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365506f6c793a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473506f6c793a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773506f6c793a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773506f6c793a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365a365627a7a72315820fd12a69900336eed143c16e35cfd0addf95e2548ec0e1446820e39fb57a1cc636c6578706572696d656e74616cf564736f6c63430005100040

Deployed Bytecode

0x60806040526004361061014b5760003560e01c8063777d7f24116100b6578063b8eff3c81161006f578063b8eff3c8146104d5578063c3cda520146104df578063dd62ed3e14610508578063df68ec6814610545578063e7a324dc14610570578063f1127ed81461059b5761014b565b8063777d7f24146103ac578063782d6fe1146103b65780637ecebe00146103f357806395d89b4114610430578063a9059cbb1461045b578063b4b5ea57146104985761014b565b8063313ce56711610108578063313ce567146102765780634eeb2e90146102a1578063587cde1e146102cc5780635c19a95c146103095780636fcfff451461033257806370a082311461036f5761014b565b806306fdde0314610150578063095ea7b31461017b57806312d43a51146101b857806318160ddd146101e357806320606b701461020e57806323b872dd14610239575b600080fd5b34801561015c57600080fd5b506101656105d9565b6040516101729190612d05565b60405180910390f35b34801561018757600080fd5b506101a2600480360361019d91908101906125c2565b610612565b6040516101af9190612c00565b60405180910390f35b3480156101c457600080fd5b506101cd6107a5565b6040516101da9190612be5565b60405180910390f35b3480156101ef57600080fd5b506101f86107cb565b6040516102059190612e09565b60405180910390f35b34801561021a57600080fd5b506102236107da565b6040516102309190612c1b565b60405180910390f35b34801561024557600080fd5b50610260600480360361025b9190810190612573565b6107f1565b60405161026d9190612c00565b60405180910390f35b34801561028257600080fd5b5061028b610a85565b6040516102989190612e68565b60405180910390f35b3480156102ad57600080fd5b506102b6610a8a565b6040516102c39190612be5565b60405180910390f35b3480156102d857600080fd5b506102f360048036036102ee919081019061250e565b610aaf565b6040516103009190612bca565b60405180910390f35b34801561031557600080fd5b50610330600480360361032b919081019061250e565b610ae2565b005b34801561033e57600080fd5b506103596004803603610354919081019061250e565b610aef565b6040516103669190612e24565b60405180910390f35b34801561037b57600080fd5b506103966004803603610391919081019061250e565b610b12565b6040516103a39190612e09565b60405180910390f35b6103b4610b81565b005b3480156103c257600080fd5b506103dd60048036036103d891908101906125c2565b610c46565b6040516103ea9190612e9e565b60405180910390f35b3480156103ff57600080fd5b5061041a6004803603610415919081019061250e565b611059565b6040516104279190612e09565b60405180910390f35b34801561043c57600080fd5b50610445611071565b6040516104529190612d05565b60405180910390f35b34801561046757600080fd5b50610482600480360361047d91908101906125c2565b6110aa565b60405161048f9190612c00565b60405180910390f35b3480156104a457600080fd5b506104bf60048036036104ba919081019061250e565b6110e7565b6040516104cc9190612e9e565b60405180910390f35b6104dd6111d5565b005b3480156104eb57600080fd5b50610506600480360361050191908101906125fe565b611371565b005b34801561051457600080fd5b5061052f600480360361052a9190810190612537565b611614565b60405161053c9190612e09565b60405180910390f35b34801561055157600080fd5b5061055a6116c1565b6040516105679190612e09565b60405180910390f35b34801561057c57600080fd5b506105856116d0565b6040516105929190612c1b565b60405180910390f35b3480156105a757600080fd5b506105c260048036036105bd9190810190612687565b6116e7565b6040516105d0929190612e3f565b60405180910390f35b6040518060400160405280600d81526020017f506f6c794861636b5661756c740000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610665577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061068a565b6106878360405180606001604052806025815260200161308160259139611740565b90505b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107929190612e83565b60405180910390a3600191505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6a108b2a2c2802909400000081565b6040516107e690612ba0565b604051809103902081565b6000803390506000600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006108b48560405180606001604052806025815260200161308160259139611740565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561092e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b15610a6c57600061095883836040518060600160405280603d81526020016131b5603d913961179e565b905080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a629190612e83565b60405180910390a3505b610a7787878361180f565b600193505050509392505050565b601281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aec3382611bf0565b50565b60066020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bdb57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c43573d6000803e3d6000fd5b50565b6000438210610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8190612d49565b60405180910390fd5b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610cf7576000915050611053565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610df957600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050611053565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610e7a576000915050611053565b600080905060006001830390505b8163ffffffff168163ffffffff161115610fd5576000600283830363ffffffff1681610eb057fe5b0482039050610ebd612477565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610fad57806020015195505050505050611053565b86816000015163ffffffff161015610fc757819350610fce565b6001820392505b5050610e88565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60076020528060005260406000206000915090505481565b6040518060400160405280600d81526020017f504f4c594841434b5641554c540000000000000000000000000000000000000081525081565b6000806110cf8360405180606001604052806026815260200161314060269139611740565b90506110dc33858361180f565b600191505092915050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116111515760006111cd565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461122e57600080fd5b686c6b935b8bbd400000341461124357600080fd5b6a084595161401484a000000600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a0000006040516113679190612e09565b60405180910390a3565b600060405161137f90612ba0565b60405180910390206040518060400160405280600d81526020017f506f6c794861636b5661756c7400000000000000000000000000000000000000815250805190602001206113cc611db0565b306040516020016113e09493929190612c7b565b604051602081830303815290604052805190602001209050600060405161140690612bb5565b60405180910390208888886040516020016114249493929190612c36565b60405160208183030381529060405280519060200120905060008282604051602001611451929190612b69565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161148e9493929190612cc0565b6020604051602081039080840390855afa1580156114b0573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612d69565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146115bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b290612da9565b60405180910390fd5b874211156115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612de9565b60405180910390fd5b611608818b611bf0565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b6a084595161401484a00000081565b6040516116dc90612bb5565b604051809103902081565b6005602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c0100000000000000000000000083108290611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b9190612d27565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f99190612d27565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561187f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187690612d89565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e690612dc9565b60405180910390fd5b611969600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806036815260200161310a6036913961179e565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611a50600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280603081526020016130a660309139611dbd565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1a9190612e83565b60405180910390a3611beb600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e33565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611daa828483611e33565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e9190612d27565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e7d57506000816bffffffffffffffffffffffff16115b1561212957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611fd5576000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611f20576000611f9c565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000611fc3828560405180606001604052806028815260200161318d6028913961179e565b9050611fd18684848461212e565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612128576000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116120735760006120ef565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b90506000612116828560405180606001604052806027815260200161316660279139611dbd565b90506121248584848461212e565b5050505b5b505050565b6000612152436040518060600160405280603481526020016130d660349139612421565b905060008463ffffffff161180156121e757508063ffffffff16600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156122825781600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506123ca565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612412929190612eb9565b60405180910390a25050505050565b60006401000000008310829061246d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124649190612d27565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b6000813590506124b48161300d565b92915050565b6000813590506124c981613024565b92915050565b6000813590506124de8161303b565b92915050565b6000813590506124f381613052565b92915050565b60008135905061250881613069565b92915050565b60006020828403121561252057600080fd5b600061252e848285016124a5565b91505092915050565b6000806040838503121561254a57600080fd5b6000612558858286016124a5565b9250506020612569858286016124a5565b9150509250929050565b60008060006060848603121561258857600080fd5b6000612596868287016124a5565b93505060206125a7868287016124a5565b92505060406125b8868287016124cf565b9150509250925092565b600080604083850312156125d557600080fd5b60006125e3858286016124a5565b92505060206125f4858286016124cf565b9150509250929050565b60008060008060008060c0878903121561261757600080fd5b600061262589828a016124a5565b965050602061263689828a016124cf565b955050604061264789828a016124cf565b945050606061265889828a016124f9565b935050608061266989828a016124ba565b92505060a061267a89828a016124ba565b9150509295509295509295565b6000806040838503121561269a57600080fd5b60006126a8858286016124a5565b92505060206126b9858286016124e4565b9150509250929050565b6126cc81612f26565b82525050565b6126db81612f14565b82525050565b6126ea81612f38565b82525050565b6126f981612f44565b82525050565b61271061270b82612f44565b612ff2565b82525050565b600061272182612eed565b61272b8185612ef8565b935061273b818560208601612fbf565b61274481612ffc565b840191505092915050565b600061275a82612ee2565b6127648185612ef8565b9350612774818560208601612fbf565b61277d81612ffc565b840191505092915050565b6000612795602783612ef8565b91507f506f6c793a3a6765745072696f72566f7465733a206e6f74207965742064657460008301527f65726d696e6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006127fb602683612ef8565b91507f506f6c793a3a64656c656761746542795369673a20696e76616c69642073696760008301527f6e617475726500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612861600283612f09565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006128a1603c83612ef8565b91507f506f6c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008301527f616e736665722066726f6d20746865207a65726f2061646472657373000000006020830152604082019050919050565b6000612907602283612ef8565b91507f506f6c793a3a64656c656761746542795369673a20696e76616c6964206e6f6e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061296d604383612f09565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b60006129f9603a83612ef8565b91507f506f6c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f7420747260008301527f616e7366657220746f20746865207a65726f20616464726573730000000000006020830152604082019050919050565b6000612a5f602683612ef8565b91507f506f6c793a3a64656c656761746542795369673a207369676e6174757265206560008301527f78706972656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ac5603a83612f09565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b612b2781612f6e565b82525050565b612b3681612f78565b82525050565b612b4581612f88565b82525050565b612b5481612fad565b82525050565b612b6381612f95565b82525050565b6000612b7482612854565b9150612b8082856126ff565b602082019150612b9082846126ff565b6020820191508190509392505050565b6000612bab82612960565b9150819050919050565b6000612bc082612ab8565b9150819050919050565b6000602082019050612bdf60008301846126d2565b92915050565b6000602082019050612bfa60008301846126c3565b92915050565b6000602082019050612c1560008301846126e1565b92915050565b6000602082019050612c3060008301846126f0565b92915050565b6000608082019050612c4b60008301876126f0565b612c5860208301866126d2565b612c656040830185612b1e565b612c726060830184612b1e565b95945050505050565b6000608082019050612c9060008301876126f0565b612c9d60208301866126f0565b612caa6040830185612b1e565b612cb760608301846126d2565b95945050505050565b6000608082019050612cd560008301876126f0565b612ce26020830186612b3c565b612cef60408301856126f0565b612cfc60608301846126f0565b95945050505050565b60006020820190508181036000830152612d1f818461274f565b905092915050565b60006020820190508181036000830152612d418184612716565b905092915050565b60006020820190508181036000830152612d6281612788565b9050919050565b60006020820190508181036000830152612d82816127ee565b9050919050565b60006020820190508181036000830152612da281612894565b9050919050565b60006020820190508181036000830152612dc2816128fa565b9050919050565b60006020820190508181036000830152612de2816129ec565b9050919050565b60006020820190508181036000830152612e0281612a52565b9050919050565b6000602082019050612e1e6000830184612b1e565b92915050565b6000602082019050612e396000830184612b2d565b92915050565b6000604082019050612e546000830185612b2d565b612e616020830184612b5a565b9392505050565b6000602082019050612e7d6000830184612b3c565b92915050565b6000602082019050612e986000830184612b4b565b92915050565b6000602082019050612eb36000830184612b5a565b92915050565b6000604082019050612ece6000830185612b4b565b612edb6020830184612b4b565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000612f1f82612f4e565b9050919050565b6000612f3182612f4e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b6000612fb882612f95565b9050919050565b60005b83811015612fdd578082015181840152602081019050612fc2565b83811115612fec576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b61301681612f14565b811461302157600080fd5b50565b61302d81612f44565b811461303857600080fd5b50565b61304481612f6e565b811461304f57600080fd5b50565b61305b81612f78565b811461306657600080fd5b50565b61307281612f88565b811461307d57600080fd5b5056fe506f6c793a3a617070726f76653a20616d6f756e7420657863656564732039362062697473506f6c793a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773506f6c793a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473506f6c793a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365506f6c793a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473506f6c793a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773506f6c793a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773506f6c793a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365a365627a7a72315820fd12a69900336eed143c16e35cfd0addf95e2548ec0e1446820e39fb57a1cc636c6578706572696d656e74616cf564736f6c63430005100040

Deployed Bytecode Sourcemap

252:13806:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;500:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;500:45:0;;;:::i;:::-;;;;;;;;;;;;;;;;4142:419;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4142:419:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1225:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1225:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;815:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;815:46:0;;;:::i;:::-;;;;;;;;;;;;;;;;1863:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1863:122:0;;;:::i;:::-;;;;;;;;;;;;;;;;5684:672;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5684:672:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;716:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;716:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;358:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;358:73:0;;;:::i;:::-;;;;;;;;;;;;;;;;1313:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1313:45:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6504:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6504:102:0;;;;;;;;;;;;;;;;:::i;:::-;;1741:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1741:49:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4764:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4764:108:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7943:143;;;:::i;:::-;;8946:1218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8946:1218:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2277:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2277:39:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;606:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;606:47:0;;;:::i;:::-;;;;;;;;;;;;;;;;5136:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5136:238:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8293:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8293:222:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13803:252;;;:::i;:::-;;7040:789;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7040:789:0;;;;;;;;;;;;;;;;:::i;:::-;;3528:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3528:136:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;889:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:50:0;;;:::i;:::-;;;;;;;;;;;;;;;;2079:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2079:117:0;;;:::i;:::-;;;;;;;;;;;;;;;;1602:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1602:70:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;500:45;;;;;;;;;;;;;;;;;;;:::o;4142:419::-;4210:4;4227:13;4273:2;4255:9;:21;4251:173;;;4309:2;4293:19;;4251:173;;;4354:58;4361:9;4354:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;4345:67;;4251:173;4470:6;4436:10;:22;4447:10;4436:22;;;;;;;;;;;;;;;:31;4459:7;4436:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;4515:7;4494:37;;4503:10;4494:37;;;4524:6;4494:37;;;;;;;;;;;;;;;4549:4;4542:11;;;4142:419;;;;:::o;1225:27::-;;;;;;;;;;;;;:::o;815:46::-;850:11;815:46;:::o;1863:122::-;1905:80;;;;;;;;;;;;;;1863:122;:::o;5684:672::-;5766:4;5783:15;5801:10;5783:28;;5822:23;5848:10;:15;5859:3;5848:15;;;;;;;;;;;;;;;:24;5864:7;5848:24;;;;;;;;;;;;;;;;;;;;;;;;;5822:50;;5883:13;5899:58;5906:9;5899:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;5883:74;;5985:3;5974:14;;:7;:14;;;;:48;;;;;6019:2;5992:30;;:16;:30;;;;5974:48;5970:311;;;6039:19;6061:96;6067:16;6085:6;6061:96;;;;;;;;;;;;;;;;;:5;:96::i;:::-;6039:118;;6199:12;6172:10;:15;6183:3;6172:15;;;;;;;;;;;;;;;:24;6188:7;6172:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;6247:7;6233:36;;6242:3;6233:36;;;6256:12;6233:36;;;;;;;;;;;;;;;5970:311;;6293:33;6309:3;6314;6319:6;6293:15;:33::i;:::-;6344:4;6337:11;;;;;5684:672;;;;;:::o;716:35::-;749:2;716:35;:::o;358:73::-;;;;;;;;;;;;;:::o;1313:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6504:102::-;6566:32;6576:10;6588:9;6566;:32::i;:::-;6504:102;:::o;1741:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4764:108::-;4823:4;4847:8;:17;4856:7;4847:17;;;;;;;;;;;;;;;;;;;;;;;;;4840:24;;;;4764:108;;;:::o;7943:143::-;8028:3;;;;;;;;;;;8014:17;;:10;:17;;;8006:26;;;;;;8043:3;;;;;;;;;;;:12;;:35;8056:21;8043:35;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8043:35:0;7943:143::o;8946:1218::-;9025:6;9066:12;9052:11;:26;9044:78;;;;;;;;;;;;;;;;;;;;;;9135:19;9157:14;:23;9172:7;9157:23;;;;;;;;;;;;;;;;;;;;;;;;;9135:45;;9211:1;9195:12;:17;;;9191:58;;;9236:1;9229:8;;;;;9191:58;9361:11;9309;:20;9321:7;9309:20;;;;;;;;;;;;;;;:38;9345:1;9330:12;:16;9309:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;9305:147;;9396:11;:20;9408:7;9396:20;;;;;;;;;;;;;;;:38;9432:1;9417:12;:16;9396:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;9389:51;;;;;9305:147;9549:11;9513;:20;9525:7;9513:20;;;;;;;;;;;;;;;:23;9534:1;9513:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;9509:88;;;9584:1;9577:8;;;;;9509:88;9609:12;9624:1;9609:16;;9636:12;9666:1;9651:12;:16;9636:31;;9678:428;9693:5;9685:13;;:5;:13;;;9678:428;;;9715:13;9757:1;9748:5;9740;:13;9739:19;;;;;;;;9731:5;:27;9715:43;;9800:20;;:::i;:::-;9823:11;:20;9835:7;9823:20;;;;;;;;;;;;;;;:28;9844:6;9823:28;;;;;;;;;;;;;;;9800:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9886:11;9870:2;:12;;;:27;;;9866:229;;;9925:2;:8;;;9918:15;;;;;;;;;9866:229;9974:11;9959:2;:12;;;:26;;;9955:140;;;10014:6;10006:14;;9955:140;;;10078:1;10069:6;:10;10061:18;;9955:140;9678:428;;;;;10123:11;:20;10135:7;10123:20;;;;;;;;;;;;;;;:27;10144:5;10123:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;10116:40;;;;;8946:1218;;;;;:::o;2277:39::-;;;;;;;;;;;;;;;;;:::o;606:47::-;;;;;;;;;;;;;;;;;;;:::o;5136:238::-;5201:4;5218:13;5234:59;5241:9;5234:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;5218:75;;5304:40;5320:10;5332:3;5337:6;5304:15;:40::i;:::-;5362:4;5355:11;;;5136:238;;;;:::o;8293:222::-;8358:6;8377:19;8399:14;:23;8414:7;8399:23;;;;;;;;;;;;;;;;;;;;;;;;;8377:45;;8455:1;8440:12;:16;;;:67;;8506:1;8440:67;;;8459:11;:20;8471:7;8459:20;;;;;;;;;;;;;;;:38;8495:1;8480:12;:16;8459:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;8440:67;8433:74;;;8293:222;;;:::o;13803:252::-;13889:4;;;;;;;;;;;13875:18;;:10;:18;;;13867:27;;;;;;13926:10;13913:9;:23;13905:32;;;;;;928:11;13948:8;:14;13957:4;;;;;;;;;;;13948:14;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;14025:4;;;;;;;;;;;14004:43;;14021:1;14004:43;;;928:11;14004:43;;;;;;;;;;;;;;;13803:252::o;7040:789::-;7156:23;1905:80;;;;;;;;;;;;;;7236:4;;;;;;;;;;;;;;;;;7220:22;;;;;;7244:12;:10;:12::i;:::-;7266:4;7192:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7192:80:0;;;7182:91;;;;;;7156:117;;7284:18;2125:71;;;;;;;;;;;;;;7347:9;7358:5;7365:6;7315:57;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7315:57:0;;;7305:68;;;;;;7284:89;;7384:14;7440:15;7457:10;7411:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7411:57:0;;;7401:68;;;;;;7384:85;;7480:17;7500:26;7510:6;7518:1;7521;7524;7500:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7500:26:0;;;;;;;;7480:46;;7566:1;7545:23;;:9;:23;;;;7537:74;;;;;;;;;;;;;;;;;;;;;;7639:6;:17;7646:9;7639:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;7630:5;:28;7622:75;;;;;;;;;;;;;;;;;;;;;;7723:6;7716:3;:13;;7708:64;;;;;;;;;;;;;;;;;;;;;;7790:31;7800:9;7811;7790;:31::i;:::-;7783:38;;;;7040:789;;;;;;:::o;3528:136::-;3604:4;3628:10;:19;3639:7;3628:19;;;;;;;;;;;;;;;:28;3648:7;3628:28;;;;;;;;;;;;;;;;;;;;;;;;;3621:35;;;;3528:136;;;;:::o;889:50::-;928:11;889:50;:::o;2079:117::-;2125:71;;;;;;;;;;;;;;2079:117;:::o;1602:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12930:161::-;13005:6;13036:5;13032:1;:9;13043:12;13024:32;;;;;;;;;;;;;;;;;;;;;;;;;13081:1;13067:16;;12930:161;;;;:::o;13295:165::-;13381:6;13413:1;13408:6;;:1;:6;;;;13416:12;13400:29;;;;;;;;;;;;;;;;;;;;;;;;;13451:1;13447;:5;13440:12;;13295:165;;;;;:::o;10555:614::-;10664:1;10649:17;;:3;:17;;;;10641:90;;;;;;;;;;;;;;;;;;;;;;10765:1;10750:17;;:3;:17;;;;10742:88;;;;;;;;;;;;;;;;;;;;;;10859:86;10865:8;:13;10874:3;10865:13;;;;;;;;;;;;;;;;;;;;;;;;;10880:6;10859:86;;;;;;;;;;;;;;;;;:5;:86::i;:::-;10843:8;:13;10852:3;10843:13;;;;;;;;;;;;;;;;:102;;;;;;;;;;;;;;;;;;10972:80;10978:8;:13;10987:3;10978:13;;;;;;;;;;;;;;;;;;;;;;;;;10993:6;10972:80;;;;;;;;;;;;;;;;;:5;:80::i;:::-;10956:8;:13;10965:3;10956:13;;;;;;;;;;;;;;;;:96;;;;;;;;;;;;;;;;;;11082:3;11068:26;;11077:3;11068:26;;;11087:6;11068:26;;;;;;;;;;;;;;;11107:54;11122:9;:14;11132:3;11122:14;;;;;;;;;;;;;;;;;;;;;;;;;11138:9;:14;11148:3;11138:14;;;;;;;;;;;;;;;;;;;;;;;;;11154:6;11107:14;:54::i;:::-;10555:614;;;:::o;10172:375::-;10249:23;10275:9;:20;10285:9;10275:20;;;;;;;;;;;;;;;;;;;;;;;;;10249:46;;10306:23;10332:8;:19;10341:9;10332:19;;;;;;;;;;;;;;;;;;;;;;;;;10306:45;;10385:9;10362;:20;10372:9;10362:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10456:9;10412:54;;10439:15;10412:54;;10428:9;10412:54;;;;;;;;;;;;10479:60;10494:15;10511:9;10522:16;10479:14;:60::i;:::-;10172:375;;;;:::o;13468:153::-;13513:4;13530:15;13578:9;13567:20;;13606:7;13599:14;;;13468:153;:::o;13099:188::-;13185:6;13204:8;13219:1;13215;:5;13204:16;;13244:1;13239:6;;:1;:6;;;;13247:12;13231:29;;;;;;;;;;;;;;;;;;;;;;;;;13278:1;13271:8;;;13099:188;;;;;:::o;11177:939::-;11282:6;11272:16;;:6;:16;;;;:30;;;;;11301:1;11292:6;:10;;;11272:30;11268:841;;;11341:1;11323:20;;:6;:20;;;11319:382;;11364:16;11383:14;:22;11398:6;11383:22;;;;;;;;;;;;;;;;;;;;;;;;;11364:41;;11424:16;11455:1;11443:9;:13;;;:60;;11502:1;11443:60;;;11459:11;:19;11471:6;11459:19;;;;;;;;;;;;;;;:34;11491:1;11479:9;:13;11459:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;11443:60;11424:79;;11522:16;11541:68;11547:9;11558:6;11541:68;;;;;;;;;;;;;;;;;:5;:68::i;:::-;11522:87;;11628:57;11645:6;11653:9;11664;11675;11628:16;:57::i;:::-;11319:382;;;;11739:1;11721:20;;:6;:20;;;11717:381;;11762:16;11781:14;:22;11796:6;11781:22;;;;;;;;;;;;;;;;;;;;;;;;;11762:41;;11822:16;11853:1;11841:9;:13;;;:60;;11900:1;11841:60;;;11857:11;:19;11869:6;11857:19;;;;;;;;;;;;;;;:34;11889:1;11877:9;:13;11857:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;11841:60;11822:79;;11920:16;11939:67;11945:9;11956:6;11939:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;11920:86;;12025:57;12042:6;12050:9;12061;12072;12025:16;:57::i;:::-;11717:381;;;;11268:841;11177:939;;;:::o;12124:629::-;12242:18;12263:76;12270:12;12263:76;;;;;;;;;;;;;;;;;:6;:76::i;:::-;12242:97;;12369:1;12354:12;:16;;;:85;;;;;12428:11;12374:65;;:11;:22;12386:9;12374:22;;;;;;;;;;;;;;;:40;12412:1;12397:12;:16;12374:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;12354:85;12350:329;;;12503:8;12454:11;:22;12466:9;12454:22;;;;;;;;;;;;;;;:40;12492:1;12477:12;:16;12454:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;12350:329;;;12579:33;;;;;;;;12590:11;12579:33;;;;;;12603:8;12579:33;;;;;12540:11;:22;12552:9;12540:22;;;;;;;;;;;;;;;:36;12563:12;12540:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12668:1;12653:12;:16;12625:14;:25;12640:9;12625:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;12350:329;12715:9;12694:51;;;12726:8;12736;12694:51;;;;;;;;;;;;;;;;12124:629;;;;;:::o;12761:161::-;12836:6;12867:5;12863:1;:9;12874:12;12855:32;;;;;;;;;;;;;;;;;;;;;;;;;12912:1;12898:16;;12761:161;;;;:::o;252:13806::-;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:130;;222:6;209:20;200:29;;234:33;261:5;234:33;;;194:78;;;;;279:130;;359:6;346:20;337:29;;371:33;398:5;371:33;;;331:78;;;;;416:128;;495:6;482:20;473:29;;507:32;533:5;507:32;;;467:77;;;;;551:126;;629:6;616:20;607:29;;641:31;666:5;641:31;;;601:76;;;;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;892:6;881:9;877:22;856:53;;;846:63;;818:97;750:175;;;;;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1157:6;1146:9;1142:22;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1547:6;1536:9;1532:22;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:366;;;1924:2;1912:9;1903:7;1899:23;1895:32;1892:2;;;1940:1;1937;1930:12;1892:2;1975:1;1992:53;2037:7;2028:6;2017:9;2013:22;1992:53;;;1982:63;;1954:97;2082:2;2100:53;2145:7;2136:6;2125:9;2121:22;2100:53;;;2090:63;;2061:98;1886:283;;;;;;2176:865;;;;;;;2363:3;2351:9;2342:7;2338:23;2334:33;2331:2;;;2380:1;2377;2370:12;2331:2;2415:1;2432:53;2477:7;2468:6;2457:9;2453:22;2432:53;;;2422:63;;2394:97;2522:2;2540:53;2585:7;2576:6;2565:9;2561:22;2540:53;;;2530:63;;2501:98;2630:2;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;;;2638:63;;2609:98;2738:2;2756:51;2799:7;2790:6;2779:9;2775:22;2756:51;;;2746:61;;2717:96;2844:3;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;;;2853:63;;2823:99;2953:3;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;;;2962:63;;2932:99;2325:716;;;;;;;;;3048:364;;;3168:2;3156:9;3147:7;3143:23;3139:32;3136:2;;;3184:1;3181;3174:12;3136:2;3219:1;3236:53;3281:7;3272:6;3261:9;3257:22;3236:53;;;3226:63;;3198:97;3326:2;3344:52;3388:7;3379:6;3368:9;3364:22;3344:52;;;3334:62;;3305:97;3130:282;;;;;;3419:137;3518:32;3544:5;3518:32;;;3513:3;3506:45;3500:56;;;3563:113;3646:24;3664:5;3646:24;;;3641:3;3634:37;3628:48;;;3683:104;3760:21;3775:5;3760:21;;;3755:3;3748:34;3742:45;;;3794:113;3877:24;3895:5;3877:24;;;3872:3;3865:37;3859:48;;;3914:152;4015:45;4035:24;4053:5;4035:24;;;4015:45;;;4010:3;4003:58;3997:69;;;4073:347;;4185:39;4218:5;4185:39;;;4236:71;4300:6;4295:3;4236:71;;;4229:78;;4312:52;4357:6;4352:3;4345:4;4338:5;4334:16;4312:52;;;4385:29;4407:6;4385:29;;;4380:3;4376:39;4369:46;;4165:255;;;;;;4427:339;;4535:35;4564:5;4535:35;;;4582:71;4646:6;4641:3;4582:71;;;4575:78;;4658:52;4703:6;4698:3;4691:4;4684:5;4680:16;4658:52;;;4731:29;4753:6;4731:29;;;4726:3;4722:39;4715:46;;4515:251;;;;;;4774:376;;4934:67;4998:2;4993:3;4934:67;;;4927:74;;5034:34;5030:1;5025:3;5021:11;5014:55;5103:9;5098:2;5093:3;5089:12;5082:31;5141:2;5136:3;5132:12;5125:19;;4920:230;;;;5159:375;;5319:67;5383:2;5378:3;5319:67;;;5312:74;;5419:34;5415:1;5410:3;5406:11;5399:55;5488:8;5483:2;5478:3;5474:12;5467:30;5525:2;5520:3;5516:12;5509:19;;5305:229;;;;5543:398;;5721:84;5803:1;5798:3;5721:84;;;5714:91;;5838:66;5834:1;5829:3;5825:11;5818:87;5933:1;5928:3;5924:11;5917:18;;5707:234;;;;5950:397;;6110:67;6174:2;6169:3;6110:67;;;6103:74;;6210:34;6206:1;6201:3;6197:11;6190:55;6279:30;6274:2;6269:3;6265:12;6258:52;6338:2;6333:3;6329:12;6322:19;;6096:251;;;;6356:371;;6516:67;6580:2;6575:3;6516:67;;;6509:74;;6616:34;6612:1;6607:3;6603:11;6596:55;6685:4;6680:2;6675:3;6671:12;6664:26;6718:2;6713:3;6709:12;6702:19;;6502:225;;;;6736:477;;6914:85;6996:2;6991:3;6914:85;;;6907:92;;7032:34;7028:1;7023:3;7019:11;7012:55;7101:34;7096:2;7091:3;7087:12;7080:56;7170:5;7165:2;7160:3;7156:12;7149:27;7204:2;7199:3;7195:12;7188:19;;6900:313;;;;7222:395;;7382:67;7446:2;7441:3;7382:67;;;7375:74;;7482:34;7478:1;7473:3;7469:11;7462:55;7551:28;7546:2;7541:3;7537:12;7530:50;7608:2;7603:3;7599:12;7592:19;;7368:249;;;;7626:375;;7786:67;7850:2;7845:3;7786:67;;;7779:74;;7886:34;7882:1;7877:3;7873:11;7866:55;7955:8;7950:2;7945:3;7941:12;7934:30;7992:2;7987:3;7983:12;7976:19;;7772:229;;;;8010:431;;8188:85;8270:2;8265:3;8188:85;;;8181:92;;8306:34;8302:1;8297:3;8293:11;8286:55;8375:28;8370:2;8365:3;8361:12;8354:50;8432:2;8427:3;8423:12;8416:19;;8174:267;;;;8449:113;8532:24;8550:5;8532:24;;;8527:3;8520:37;8514:48;;;8569:110;8650:23;8667:5;8650:23;;;8645:3;8638:36;8632:47;;;8686:107;8765:22;8781:5;8765:22;;;8760:3;8753:35;8747:46;;;8800:124;8882:36;8912:5;8882:36;;;8877:3;8870:49;8864:60;;;8931:110;9012:23;9029:5;9012:23;;;9007:3;9000:36;8994:47;;;9048:650;;9303:148;9447:3;9303:148;;;9296:155;;9462:75;9533:3;9524:6;9462:75;;;9559:2;9554:3;9550:12;9543:19;;9573:75;9644:3;9635:6;9573:75;;;9670:2;9665:3;9661:12;9654:19;;9690:3;9683:10;;9284:414;;;;;;9705:372;;9904:148;10048:3;9904:148;;;9897:155;;10069:3;10062:10;;9885:192;;;;10084:372;;10283:148;10427:3;10283:148;;;10276:155;;10448:3;10441:10;;10264:192;;;;10463:213;;10581:2;10570:9;10566:18;10558:26;;10595:71;10663:1;10652:9;10648:17;10639:6;10595:71;;;10552:124;;;;;10683:245;;10817:2;10806:9;10802:18;10794:26;;10831:87;10915:1;10904:9;10900:17;10891:6;10831:87;;;10788:140;;;;;10935:201;;11047:2;11036:9;11032:18;11024:26;;11061:65;11123:1;11112:9;11108:17;11099:6;11061:65;;;11018:118;;;;;11143:213;;11261:2;11250:9;11246:18;11238:26;;11275:71;11343:1;11332:9;11328:17;11319:6;11275:71;;;11232:124;;;;;11363:547;;11565:3;11554:9;11550:19;11542:27;;11580:71;11648:1;11637:9;11633:17;11624:6;11580:71;;;11662:72;11730:2;11719:9;11715:18;11706:6;11662:72;;;11745;11813:2;11802:9;11798:18;11789:6;11745:72;;;11828;11896:2;11885:9;11881:18;11872:6;11828:72;;;11536:374;;;;;;;;11917:547;;12119:3;12108:9;12104:19;12096:27;;12134:71;12202:1;12191:9;12187:17;12178:6;12134:71;;;12216:72;12284:2;12273:9;12269:18;12260:6;12216:72;;;12299;12367:2;12356:9;12352:18;12343:6;12299:72;;;12382;12450:2;12439:9;12435:18;12426:6;12382:72;;;12090:374;;;;;;;;12471:539;;12669:3;12658:9;12654:19;12646:27;;12684:71;12752:1;12741:9;12737:17;12728:6;12684:71;;;12766:68;12830:2;12819:9;12815:18;12806:6;12766:68;;;12845:72;12913:2;12902:9;12898:18;12889:6;12845:72;;;12928;12996:2;12985:9;12981:18;12972:6;12928:72;;;12640:370;;;;;;;;13017:293;;13151:2;13140:9;13136:18;13128:26;;13201:9;13195:4;13191:20;13187:1;13176:9;13172:17;13165:47;13226:74;13295:4;13286:6;13226:74;;;13218:82;;13122:188;;;;;13317:301;;13455:2;13444:9;13440:18;13432:26;;13505:9;13499:4;13495:20;13491:1;13480:9;13476:17;13469:47;13530:78;13603:4;13594:6;13530:78;;;13522:86;;13426:192;;;;;13625:407;;13816:2;13805:9;13801:18;13793:26;;13866:9;13860:4;13856:20;13852:1;13841:9;13837:17;13830:47;13891:131;14017:4;13891:131;;;13883:139;;13787:245;;;;14039:407;;14230:2;14219:9;14215:18;14207:26;;14280:9;14274:4;14270:20;14266:1;14255:9;14251:17;14244:47;14305:131;14431:4;14305:131;;;14297:139;;14201:245;;;;14453:407;;14644:2;14633:9;14629:18;14621:26;;14694:9;14688:4;14684:20;14680:1;14669:9;14665:17;14658:47;14719:131;14845:4;14719:131;;;14711:139;;14615:245;;;;14867:407;;15058:2;15047:9;15043:18;15035:26;;15108:9;15102:4;15098:20;15094:1;15083:9;15079:17;15072:47;15133:131;15259:4;15133:131;;;15125:139;;15029:245;;;;15281:407;;15472:2;15461:9;15457:18;15449:26;;15522:9;15516:4;15512:20;15508:1;15497:9;15493:17;15486:47;15547:131;15673:4;15547:131;;;15539:139;;15443:245;;;;15695:407;;15886:2;15875:9;15871:18;15863:26;;15936:9;15930:4;15926:20;15922:1;15911:9;15907:17;15900:47;15961:131;16087:4;15961:131;;;15953:139;;15857:245;;;;16109:213;;16227:2;16216:9;16212:18;16204:26;;16241:71;16309:1;16298:9;16294:17;16285:6;16241:71;;;16198:124;;;;;16329:209;;16445:2;16434:9;16430:18;16422:26;;16459:69;16525:1;16514:9;16510:17;16501:6;16459:69;;;16416:122;;;;;16545:316;;16687:2;16676:9;16672:18;16664:26;;16701:69;16767:1;16756:9;16752:17;16743:6;16701:69;;;16781:70;16847:2;16836:9;16832:18;16823:6;16781:70;;;16658:203;;;;;;16868:205;;16982:2;16971:9;16967:18;16959:26;;16996:67;17060:1;17049:9;17045:17;17036:6;16996:67;;;16953:120;;;;;17080:211;;17197:2;17186:9;17182:18;17174:26;;17211:70;17278:1;17267:9;17263:17;17254:6;17211:70;;;17168:123;;;;;17298:209;;17414:2;17403:9;17399:18;17391:26;;17428:69;17494:1;17483:9;17479:17;17470:6;17428:69;;;17385:122;;;;;17514:320;;17658:2;17647:9;17643:18;17635:26;;17672:70;17739:1;17728:9;17724:17;17715:6;17672:70;;;17753:71;17820:2;17809:9;17805:18;17796:6;17753:71;;;17629:205;;;;;;17841:118;;17931:5;17925:12;17915:22;;17896:63;;;;17966:122;;18060:5;18054:12;18044:22;;18025:63;;;;18096:163;;18211:6;18206:3;18199:19;18248:4;18243:3;18239:14;18224:29;;18192:67;;;;;18268:145;;18404:3;18389:18;;18382:31;;;;;18421:91;;18483:24;18501:5;18483:24;;;18472:35;;18466:46;;;;18519:99;;18589:24;18607:5;18589:24;;;18578:35;;18572:46;;;;18625:85;;18698:5;18691:13;18684:21;18673:32;;18667:43;;;;18717:72;;18779:5;18768:16;;18762:27;;;;18796:121;;18869:42;18862:5;18858:54;18847:65;;18841:76;;;;18924:72;;18986:5;18975:16;;18969:27;;;;19003:88;;19075:10;19068:5;19064:22;19053:33;;19047:44;;;;19098:81;;19169:4;19162:5;19158:16;19147:27;;19141:38;;;;19186:104;;19258:26;19251:5;19247:38;19236:49;;19230:60;;;;19297:106;;19375:23;19392:5;19375:23;;;19362:36;;19356:47;;;;19411:268;19476:1;19483:101;19497:6;19494:1;19491:13;19483:101;;;19573:1;19568:3;19564:11;19558:18;19554:1;19549:3;19545:11;19538:39;19519:2;19516:1;19512:10;19507:15;;19483:101;;;19599:6;19596:1;19593:13;19590:2;;;19664:1;19655:6;19650:3;19646:16;19639:27;19590:2;19460:219;;;;;19687:74;;19751:5;19740:16;;19734:27;;;;19768:97;;19856:2;19852:7;19847:2;19840:5;19836:14;19832:28;19822:38;;19816:49;;;;19873:117;19942:24;19960:5;19942:24;;;19935:5;19932:35;19922:2;;19981:1;19978;19971:12;19922:2;19916:74;;19997:117;20066:24;20084:5;20066:24;;;20059:5;20056:35;20046:2;;20105:1;20102;20095:12;20046:2;20040:74;;20121:117;20190:24;20208:5;20190:24;;;20183:5;20180:35;20170:2;;20229:1;20226;20219:12;20170:2;20164:74;;20245:115;20313:23;20330:5;20313:23;;;20306:5;20303:34;20293:2;;20351:1;20348;20341:12;20293:2;20287:73;;20367:113;20434:22;20450:5;20434:22;;;20427:5;20424:33;20414:2;;20471:1;20468;20461:12;20414:2;20408:72;

Swarm Source

bzzr://fd12a69900336eed143c16e35cfd0addf95e2548ec0e1446820e39fb57a1cc63
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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