ETH Price: $3,130.37 (-0.64%)
 

Overview

Max Total Supply

997 POE

Holders

1

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

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

OVERVIEW

The Proof of Existence Token is a non transferable token which is minted on confirmation of enrollment. The token will not be available to purchase on the open market therefore will not be displayed on any aggregators for purchase.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GovPOE

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 3: GovPOE.sol
pragma solidity ^0.8.0;

import "./FlatPoExtended.sol";
contract GovPOE is PoExtended{

    /// @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 Construct a new Gov token
     */
    constructor(string memory name_, string memory symbol_) PoExtended(name_,symbol_) {}


    /**
     * @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), "POE::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "POE::delegateBySig: invalid nonce");
        require(block.timestamp <= expiry, "POE::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    /**
     * @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, "POE::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 = uint96(balanceOf(delegator));
        delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    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, "POE::_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, "POE::_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, "POE::_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 view returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

File 1 of 3: FlatPoExtended.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import {POE} from "./PoE.sol";

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @dev These functions deal with verification of Merkle Trees proofs.
 *
 * The proofs can be generated using the JavaScript library
 * https://github.com/miguelmota/merkletreejs[merkletreejs].
 * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.
 *
 * See `test/utils/cryptography/MerkleProof.test.js` for some examples.
 */
library MerkleProof {
    /**
     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
     * defined by `root`. For this, a `proof` must be provided, containing
     * sibling hashes on the branch from the leaf to the root of the tree. Each
     * pair of leaves and each pair of pre-images are assumed to be sorted.
     */
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        bytes32 computedHash = leaf;

        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];

            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = keccak256(abi.encodePacked(computedHash, proofElement));
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = keccak256(abi.encodePacked(proofElement, computedHash));
            }
        }

        // Check if the computed hash (root) is equal to the provided root
        return computedHash == root;
    }
}

/**
* @title PoExtended
* @author Carson Case [[email protected]]
* @notice PoExtended is a POE token with owner delegated minters and a merkle claim system
*/
abstract contract PoExtended is POE, Ownable{
    using MerkleProof for bytes32[];
    /// @dev the merkle root which CAN be updated
    address public merkleRoot;

    mapping(address => bool) approved_minters;

    constructor(string memory name_, string memory symbol_) POE(name_,symbol_){}

    /// @dev some functions only callable by approved minters
    modifier onlyMinter(){
        require(approved_minters[msg.sender], "must be approved by owner to call this function");
        _;
    }

    // Begin merkle root functions...

    /// @dev function for owner to update merkle root
    function updateMerkleRoot(address _new) external onlyMinter{
        merkleRoot = _new;
    }

    /// @dev claim function. Any user can claim (and mint) with a verified merkle proof
    function claim(bytes32[] memory proof) external{
        bytes32 root = bytes20(merkleRoot) << 12;
        bytes32 leaf = bytes20(msg.sender) << 12;
        require(proof.verify(root,leaf), "Address not eligible for claim");
        _mint(msg.sender);
    }

    /// @dev only owner can add minters
    function addMinter(address _minter) external onlyOwner{
        require(approved_minters[_minter] != true, "Minter is already approved");
        approved_minters[_minter] = true;
    }

    /// @dev owner can remove them too
    function removeMinter(address _minter) external onlyOwner{
        require(approved_minters[_minter] != false, "Minter is already not-approved");
        approved_minters[_minter] = false;
    }

    /// @dev A minter can forefit their minting status (useful for contracts)
    function forefitMinterRole()external{
        require(approved_minters[msg.sender] == true, "msg.sender must be an approved minter");
        approved_minters[msg.sender] = false;
    }

    /**
     * @dev Mints 1 POE token to the given address.
     */
    function mint(address account) external onlyMinter returns (bool) {
        _mint(account);
        return true;
    }
    
    /**
     * @dev Burns 1 POE token from the given address.
     */
    function burn(address account) external onlyOwner returns (bool) {
        _burn(account, balanceOf(account));
        return true;
    }
    
    /**
     * @dev Batch mint POE tokens to multiple addresses.
     */
    function mintMany(address[] memory accounts) external onlyMinter returns (bool) {
        for (uint256 i = 0; i < accounts.length; i++) {
            _mint(accounts[i]);
        }
        
        return true;
    }
    
    /** 
     * @dev Batch burn POE tokens from multiple addresses.
     */
    function burnMany(address[] memory accounts) external onlyOwner returns (bool) {
        for (uint256 i = 0; i < accounts.length; i++) {
            _burn(accounts[i], balanceOf(accounts[i]));
        }
        
        return true;
    }


}

File 3 of 3: PoE.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;
/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract POE{
    mapping (address => uint256) private _balances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    event Transfer(address, address, uint);

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_){
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() external view virtual returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() external view virtual returns (uint8) {
        return 0;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    }
    
    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        require(balanceOf(account) == 0, "User already holds a PoE token");

        _beforeTokenTransfer(address(0), account, 1);

        _totalSupply += 1;
        _balances[account] += 1;
        emit Transfer(address(0), account, 1);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }
    
    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"burnMany","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forefitMinterRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"mintMany","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"updateMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200418d3803806200418d833981810160405281019062000037919062000289565b8181818181600290805190602001906200005392919062000167565b5080600390805190602001906200006c92919062000167565b5050506200008f620000836200009960201b60201c565b620000a160201b60201c565b505050506200046c565b600033905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001759062000391565b90600052602060002090601f016020900481019282620001995760008555620001e5565b82601f10620001b457805160ff1916838001178555620001e5565b82800160010185558215620001e5579182015b82811115620001e4578251825591602001919060010190620001c7565b5b509050620001f49190620001f8565b5090565b5b8082111562000213576000816000905550600101620001f9565b5090565b60006200022e620002288462000325565b620002fc565b9050828152602081018484840111156200024757600080fd5b620002548482856200035b565b509392505050565b600082601f8301126200026e57600080fd5b81516200028084826020860162000217565b91505092915050565b600080604083850312156200029d57600080fd5b600083015167ffffffffffffffff811115620002b857600080fd5b620002c6858286016200025c565b925050602083015167ffffffffffffffff811115620002e457600080fd5b620002f2858286016200025c565b9150509250929050565b6000620003086200031b565b9050620003168282620003c7565b919050565b6000604051905090565b600067ffffffffffffffff8211156200034357620003426200042c565b5b6200034e826200045b565b9050602081019050919050565b60005b838110156200037b5780820151818401526020810190506200035e565b838111156200038b576000848401525b50505050565b60006002820490506001821680620003aa57607f821691505b60208210811415620003c157620003c0620003fd565b5b50919050565b620003d2826200045b565b810181811067ffffffffffffffff82111715620003f457620003f36200042c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b613d11806200047c6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80637ecebe00116100f9578063b4b5ea5711610097578063e7a324dc11610071578063e7a324dc1461051b578063eaca5a7614610539578063f1127ed814610555578063f2fde38b14610586576101c4565b8063b4b5ea571461049f578063ba982d54146104cf578063c3cda520146104ff576101c4565b80638da5cb5b116100d35780638da5cb5b1461042b57806395d89b4114610449578063983b2d5614610467578063b391c50814610483576101c4565b80637ecebe00146103c157806387b8fcce146103f157806389afcb44146103fb576101c4565b8063587cde1e116101665780636fcfff45116101405780636fcfff451461032757806370a0823114610357578063715018a614610387578063782d6fe114610391576101c4565b8063587cde1e146102ab5780635c19a95c146102db5780636a627842146102f7576101c4565b80632eb4a7ab116101a25780632eb4a7ab146102235780633092afd514610241578063313ce5671461025d578063397ada211461027b576101c4565b806306fdde03146101c957806318160ddd146101e757806320606b7014610205575b600080fd5b6101d16105a2565b6040516101de919061309e565b60405180910390f35b6101ef610634565b6040516101fc91906132a0565b60405180910390f35b61020d61063e565b60405161021a9190612fb4565b60405180910390f35b61022b610662565b6040516102389190612f10565b60405180910390f35b61025b600480360381019061025691906129fa565b610688565b005b6102656107f3565b60405161027291906132ff565b60405180910390f35b61029560048036038101906102909190612b24565b6107f8565b6040516102a29190612f99565b60405180910390f35b6102c560048036038101906102c091906129fa565b6108f8565b6040516102d29190612f10565b60405180910390f35b6102f560048036038101906102f091906129fa565b61092b565b005b610311600480360381019061030c91906129fa565b610938565b60405161031e9190612f99565b60405180910390f35b610341600480360381019061033c91906129fa565b6109d8565b60405161034e91906132bb565b60405180910390f35b610371600480360381019061036c91906129fa565b6109fb565b60405161037e91906132a0565b60405180910390f35b61038f610a43565b005b6103ab60048036038101906103a69190612a23565b610acb565b6040516103b8919061331a565b60405180910390f35b6103db60048036038101906103d691906129fa565b610f06565b6040516103e891906132a0565b60405180910390f35b6103f9610f1e565b005b610415600480360381019061041091906129fa565b61100b565b6040516104229190612f99565b60405180910390f35b6104336110a4565b6040516104409190612f10565b60405180910390f35b6104516110ce565b60405161045e919061309e565b60405180910390f35b610481600480360381019061047c91906129fa565b611160565b005b61049d60048036038101906104989190612b65565b6112cb565b005b6104b960048036038101906104b491906129fa565b6113a3565b6040516104c6919061331a565b60405180910390f35b6104e960048036038101906104e49190612b24565b61149a565b6040516104f69190612f99565b60405180910390f35b61051960048036038101906105149190612a5f565b6115d3565b005b610523611868565b6040516105309190612fb4565b60405180910390f35b610553600480360381019061054e91906129fa565b61188c565b005b61056f600480360381019061056a9190612ae8565b61195c565b60405161057d9291906132d6565b60405180910390f35b6105a0600480360381019061059b91906129fa565b6119b5565b005b6060600280546105b19061367f565b80601f01602080910402602001604051908101604052809291908181526020018280546105dd9061367f565b801561062a5780601f106105ff5761010080835404028352916020019161062a565b820191906000526020600020905b81548152906001019060200180831161060d57829003601f168201915b5050505050905090565b6000600154905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610690611aad565b73ffffffffffffffffffffffffffffffffffffffff166106ae6110a4565b73ffffffffffffffffffffffffffffffffffffffff1614610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906131e0565b60405180910390fd5b60001515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90613160565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600090565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d90613220565b60405180910390fd5b60005b82518110156108ee576108db8382815181106108ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151611ab5565b80806108e6906136e2565b915050610889565b5060019050919050565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109353382611c2c565b50565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90613220565b60405180910390fd5b6109cf82611ab5565b60019050919050565b60096020528060005260406000206000915054906101000a900463ffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a4b611aad565b73ffffffffffffffffffffffffffffffffffffffff16610a696110a4565b73ffffffffffffffffffffffffffffffffffffffff1614610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab6906131e0565b60405180910390fd5b610ac96000611d9d565b565b6000438210610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b06906131a0565b60405180910390fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610b7c576000915050610f00565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184610bcb9190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610c9057600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610c529190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610f00565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610d11576000915050610f00565b600080600183610d219190613539565b90505b8163ffffffff168163ffffffff161115610e8257600060028383610d489190613539565b610d5291906134d4565b82610d5d9190613539565b90506000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610e5157806020015195505050505050610f00565b86816000015163ffffffff161015610e6b57819350610e7b565b600182610e789190613539565b92505b5050610d24565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b600a6020528060005260406000206000915090505481565b60011515600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890613180565b60405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b6000611015611aad565b73ffffffffffffffffffffffffffffffffffffffff166110336110a4565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906131e0565b60405180910390fd5b61109b82611096846109fb565b611e63565b60019050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546110dd9061367f565b80601f01602080910402602001604051908101604052809291908181526020018280546111099061367f565b80156111565780601f1061112b57610100808354040283529160200191611156565b820191906000526020600020905b81548152906001019060200180831161113957829003601f168201915b5050505050905090565b611168611aad565b73ffffffffffffffffffffffffffffffffffffffff166111866110a4565b73ffffffffffffffffffffffffffffffffffffffff16146111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d3906131e0565b60405180910390fd5b60011515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611267906131c0565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b6bffffffffffffffffffffffff1916901b6bffffffffffffffffffffffff191690506000600c3360601b6bffffffffffffffffffffffff1916901b6bffffffffffffffffffffffff1916905061135682828561200d9092919063ffffffff16565b611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90613260565b60405180910390fd5b61139e33611ab5565b505050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161161140d576000611492565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018361145b9190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b60006114a4611aad565b73ffffffffffffffffffffffffffffffffffffffff166114c26110a4565b73ffffffffffffffffffffffffffffffffffffffff1614611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f906131e0565b60405180910390fd5b60005b82518110156115c9576115b6838281518110611560577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516115b18584815181106115a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516109fb565b611e63565b80806115c1906136e2565b91505061151b565b5060019050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666115fe6105a2565b8051906020012061160d6120e9565b306040516020016116219493929190613014565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8888886040516020016116729493929190612fcf565b6040516020818303038152906040528051906020012090506000828260405160200161169f929190612ed9565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516116dc9493929190613059565b6020604051602081039080840390855afa1580156116fe573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613120565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906117ca906136e2565b91905055891461180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613140565b60405180910390fd5b87421115611852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184990613240565b60405180910390fd5b61185c818b611c2c565b50505050505050505050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f90613220565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6008602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b6119bd611aad565b73ffffffffffffffffffffffffffffffffffffffff166119db6110a4565b73ffffffffffffffffffffffffffffffffffffffff1614611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a28906131e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9890613100565b60405180910390fd5b611aaa81611d9d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613280565b60405180910390fd5b6000611b30826109fb565b14611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b67906130e0565b60405180910390fd5b611b7d60008260016120f6565b6001806000828254611b8f9190613402565b9250508190555060016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611be59190613402565b925050819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000826001604051611c2193929190612f2b565b60405180910390a150565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611c9b846109fb565b905082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611d978284836120fb565b50505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eca90613200565b60405180910390fd5b611edf826000836120f6565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5c906130c0565b60405180910390fd5b8181611f719190613505565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160016000828254611fc59190613505565b925050819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360008460405161200093929190612f62565b60405180910390a1505050565b60008082905060005b85518110156120db57600086828151811061205a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905080831161209b57828160405160200161207e929190612ead565b6040516020818303038152906040528051906020012092506120c7565b80836040516020016120ae929190612ead565b6040516020818303038152906040528051906020012092505b5080806120d3906136e2565b915050612016565b508381149150509392505050565b6000804690508091505090565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561214557506000816bffffffffffffffffffffffff16115b1561240357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122a6576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116121e857600061226d565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001846122369190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006122948285604051806060016040528060278152602001613c8260279139612408565b90506122a286848484612482565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612402576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116123445760006123c9565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001846123929190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006123f08285604051806060016040528060268152602001613c5c60269139612790565b90506123fe85848484612482565b5050505b5b505050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff161115829061246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612463919061309e565b60405180910390fd5b508284612479919061356d565b90509392505050565b60006124a643604051806060016040528060338152602001613ca96033913961280f565b905060008463ffffffff1611801561254457508063ffffffff16600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018761250e9190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156125e85781600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001876125989190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612739565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050506001846126db9190613458565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612781929190613335565b60405180910390a25050505050565b600080838561279f9190613492565b9050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390612803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127fa919061309e565b60405180910390fd5b50809150509392505050565b60006401000000008310829061285b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612852919061309e565b60405180910390fd5b5082905092915050565b600061287861287384613383565b61335e565b9050808382526020820190508285602086028201111561289757600080fd5b60005b858110156128c757816128ad888261293d565b84526020840193506020830192505060018101905061289a565b5050509392505050565b60006128e46128df846133af565b61335e565b9050808382526020820190508285602086028201111561290357600080fd5b60005b85811015612933578161291988826129a6565b845260208401935060208301925050600181019050612906565b5050509392505050565b60008135905061294c81613be8565b92915050565b600082601f83011261296357600080fd5b8135612973848260208601612865565b91505092915050565b600082601f83011261298d57600080fd5b813561299d8482602086016128d1565b91505092915050565b6000813590506129b581613bff565b92915050565b6000813590506129ca81613c16565b92915050565b6000813590506129df81613c2d565b92915050565b6000813590506129f481613c44565b92915050565b600060208284031215612a0c57600080fd5b6000612a1a8482850161293d565b91505092915050565b60008060408385031215612a3657600080fd5b6000612a448582860161293d565b9250506020612a55858286016129bb565b9150509250929050565b60008060008060008060c08789031215612a7857600080fd5b6000612a8689828a0161293d565b9650506020612a9789828a016129bb565b9550506040612aa889828a016129bb565b9450506060612ab989828a016129e5565b9350506080612aca89828a016129a6565b92505060a0612adb89828a016129a6565b9150509295509295509295565b60008060408385031215612afb57600080fd5b6000612b098582860161293d565b9250506020612b1a858286016129d0565b9150509250929050565b600060208284031215612b3657600080fd5b600082013567ffffffffffffffff811115612b5057600080fd5b612b5c84828501612952565b91505092915050565b600060208284031215612b7757600080fd5b600082013567ffffffffffffffff811115612b9157600080fd5b612b9d8482850161297c565b91505092915050565b612baf816135a1565b82525050565b612bbe816135b3565b82525050565b612bcd816135bf565b82525050565b612be4612bdf826135bf565b61372b565b82525050565b612bf381613628565b82525050565b6000612c04826133db565b612c0e81856133e6565b9350612c1e81856020860161364c565b612c27816137f1565b840191505092915050565b6000612c3f6022836133e6565b9150612c4a82613802565b604082019050919050565b6000612c62601e836133e6565b9150612c6d82613851565b602082019050919050565b6000612c856026836133e6565b9150612c908261387a565b604082019050919050565b6000612ca86002836133f7565b9150612cb3826138c9565b600282019050919050565b6000612ccb6025836133e6565b9150612cd6826138f2565b604082019050919050565b6000612cee6021836133e6565b9150612cf982613941565b604082019050919050565b6000612d11601e836133e6565b9150612d1c82613990565b602082019050919050565b6000612d346025836133e6565b9150612d3f826139b9565b604082019050919050565b6000612d576026836133e6565b9150612d6282613a08565b604082019050919050565b6000612d7a601a836133e6565b9150612d8582613a57565b602082019050919050565b6000612d9d6020836133e6565b9150612da882613a80565b602082019050919050565b6000612dc06021836133e6565b9150612dcb82613aa9565b604082019050919050565b6000612de3602f836133e6565b9150612dee82613af8565b604082019050919050565b6000612e066025836133e6565b9150612e1182613b47565b604082019050919050565b6000612e29601e836133e6565b9150612e3482613b96565b602082019050919050565b6000612e4c601f836133e6565b9150612e5782613bbf565b602082019050919050565b612e6b816135e9565b82525050565b612e7a816135f3565b82525050565b612e8981613603565b82525050565b612e988161363a565b82525050565b612ea781613610565b82525050565b6000612eb98285612bd3565b602082019150612ec98284612bd3565b6020820191508190509392505050565b6000612ee482612c9b565b9150612ef08285612bd3565b602082019150612f008284612bd3565b6020820191508190509392505050565b6000602082019050612f256000830184612ba6565b92915050565b6000606082019050612f406000830186612ba6565b612f4d6020830185612ba6565b612f5a6040830184612bea565b949350505050565b6000606082019050612f776000830186612ba6565b612f846020830185612ba6565b612f916040830184612e62565b949350505050565b6000602082019050612fae6000830184612bb5565b92915050565b6000602082019050612fc96000830184612bc4565b92915050565b6000608082019050612fe46000830187612bc4565b612ff16020830186612ba6565b612ffe6040830185612e62565b61300b6060830184612e62565b95945050505050565b60006080820190506130296000830187612bc4565b6130366020830186612bc4565b6130436040830185612e62565b6130506060830184612ba6565b95945050505050565b600060808201905061306e6000830187612bc4565b61307b6020830186612e80565b6130886040830185612bc4565b6130956060830184612bc4565b95945050505050565b600060208201905081810360008301526130b88184612bf9565b905092915050565b600060208201905081810360008301526130d981612c32565b9050919050565b600060208201905081810360008301526130f981612c55565b9050919050565b6000602082019050818103600083015261311981612c78565b9050919050565b6000602082019050818103600083015261313981612cbe565b9050919050565b6000602082019050818103600083015261315981612ce1565b9050919050565b6000602082019050818103600083015261317981612d04565b9050919050565b6000602082019050818103600083015261319981612d27565b9050919050565b600060208201905081810360008301526131b981612d4a565b9050919050565b600060208201905081810360008301526131d981612d6d565b9050919050565b600060208201905081810360008301526131f981612d90565b9050919050565b6000602082019050818103600083015261321981612db3565b9050919050565b6000602082019050818103600083015261323981612dd6565b9050919050565b6000602082019050818103600083015261325981612df9565b9050919050565b6000602082019050818103600083015261327981612e1c565b9050919050565b6000602082019050818103600083015261329981612e3f565b9050919050565b60006020820190506132b56000830184612e62565b92915050565b60006020820190506132d06000830184612e71565b92915050565b60006040820190506132eb6000830185612e71565b6132f86020830184612e9e565b9392505050565b60006020820190506133146000830184612e80565b92915050565b600060208201905061332f6000830184612e9e565b92915050565b600060408201905061334a6000830185612e8f565b6133576020830184612e8f565b9392505050565b6000613368613379565b905061337482826136b1565b919050565b6000604051905090565b600067ffffffffffffffff82111561339e5761339d6137c2565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156133ca576133c96137c2565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061340d826135e9565b9150613418836135e9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561344d5761344c613735565b5b828201905092915050565b6000613463826135f3565b915061346e836135f3565b92508263ffffffff0382111561348757613486613735565b5b828201905092915050565b600061349d82613610565b91506134a883613610565b9250826bffffffffffffffffffffffff038211156134c9576134c8613735565b5b828201905092915050565b60006134df826135f3565b91506134ea836135f3565b9250826134fa576134f9613764565b5b828204905092915050565b6000613510826135e9565b915061351b836135e9565b92508282101561352e5761352d613735565b5b828203905092915050565b6000613544826135f3565b915061354f836135f3565b92508282101561356257613561613735565b5b828203905092915050565b600061357882613610565b915061358383613610565b92508282101561359657613595613735565b5b828203905092915050565b60006135ac826135c9565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b6000613633826135e9565b9050919050565b600061364582613610565b9050919050565b60005b8381101561366a57808201518184015260208101905061364f565b83811115613679576000848401525b50505050565b6000600282049050600182168061369757607f821691505b602082108114156136ab576136aa613793565b5b50919050565b6136ba826137f1565b810181811067ffffffffffffffff821117156136d9576136d86137c2565b5b80604052505050565b60006136ed826135e9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137205761371f613735565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5573657220616c726561647920686f6c6473206120506f4520746f6b656e0000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f504f453a3a64656c656761746542795369673a20696e76616c6964207369676e60008201527f6174757265000000000000000000000000000000000000000000000000000000602082015250565b7f504f453a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74657220697320616c7265616479206e6f742d617070726f7665640000600082015250565b7f6d73672e73656e646572206d75737420626520616e20617070726f766564206d60008201527f696e746572000000000000000000000000000000000000000000000000000000602082015250565b7f504f453a3a6765745072696f72566f7465733a206e6f7420796574206465746560008201527f726d696e65640000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74657220697320616c726561647920617070726f766564000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f6d75737420626520617070726f766564206279206f776e657220746f2063616c60008201527f6c20746869732066756e6374696f6e0000000000000000000000000000000000602082015250565b7f504f453a3a64656c656761746542795369673a207369676e617475726520657860008201527f7069726564000000000000000000000000000000000000000000000000000000602082015250565b7f41646472657373206e6f7420656c696769626c6520666f7220636c61696d0000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b613bf1816135a1565b8114613bfc57600080fd5b50565b613c08816135bf565b8114613c1357600080fd5b50565b613c1f816135e9565b8114613c2a57600080fd5b50565b613c36816135f3565b8114613c4157600080fd5b50565b613c4d81613603565b8114613c5857600080fd5b5056fe504f453a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773504f453a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773504f453a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a264697066735822122082026defb59b3f78c32b23a691cdb942b2958ee4f2707c1e72948daf9a954b0c64736f6c6343000804003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001250726f6f66206f66204578697374656e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003504f450000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80637ecebe00116100f9578063b4b5ea5711610097578063e7a324dc11610071578063e7a324dc1461051b578063eaca5a7614610539578063f1127ed814610555578063f2fde38b14610586576101c4565b8063b4b5ea571461049f578063ba982d54146104cf578063c3cda520146104ff576101c4565b80638da5cb5b116100d35780638da5cb5b1461042b57806395d89b4114610449578063983b2d5614610467578063b391c50814610483576101c4565b80637ecebe00146103c157806387b8fcce146103f157806389afcb44146103fb576101c4565b8063587cde1e116101665780636fcfff45116101405780636fcfff451461032757806370a0823114610357578063715018a614610387578063782d6fe114610391576101c4565b8063587cde1e146102ab5780635c19a95c146102db5780636a627842146102f7576101c4565b80632eb4a7ab116101a25780632eb4a7ab146102235780633092afd514610241578063313ce5671461025d578063397ada211461027b576101c4565b806306fdde03146101c957806318160ddd146101e757806320606b7014610205575b600080fd5b6101d16105a2565b6040516101de919061309e565b60405180910390f35b6101ef610634565b6040516101fc91906132a0565b60405180910390f35b61020d61063e565b60405161021a9190612fb4565b60405180910390f35b61022b610662565b6040516102389190612f10565b60405180910390f35b61025b600480360381019061025691906129fa565b610688565b005b6102656107f3565b60405161027291906132ff565b60405180910390f35b61029560048036038101906102909190612b24565b6107f8565b6040516102a29190612f99565b60405180910390f35b6102c560048036038101906102c091906129fa565b6108f8565b6040516102d29190612f10565b60405180910390f35b6102f560048036038101906102f091906129fa565b61092b565b005b610311600480360381019061030c91906129fa565b610938565b60405161031e9190612f99565b60405180910390f35b610341600480360381019061033c91906129fa565b6109d8565b60405161034e91906132bb565b60405180910390f35b610371600480360381019061036c91906129fa565b6109fb565b60405161037e91906132a0565b60405180910390f35b61038f610a43565b005b6103ab60048036038101906103a69190612a23565b610acb565b6040516103b8919061331a565b60405180910390f35b6103db60048036038101906103d691906129fa565b610f06565b6040516103e891906132a0565b60405180910390f35b6103f9610f1e565b005b610415600480360381019061041091906129fa565b61100b565b6040516104229190612f99565b60405180910390f35b6104336110a4565b6040516104409190612f10565b60405180910390f35b6104516110ce565b60405161045e919061309e565b60405180910390f35b610481600480360381019061047c91906129fa565b611160565b005b61049d60048036038101906104989190612b65565b6112cb565b005b6104b960048036038101906104b491906129fa565b6113a3565b6040516104c6919061331a565b60405180910390f35b6104e960048036038101906104e49190612b24565b61149a565b6040516104f69190612f99565b60405180910390f35b61051960048036038101906105149190612a5f565b6115d3565b005b610523611868565b6040516105309190612fb4565b60405180910390f35b610553600480360381019061054e91906129fa565b61188c565b005b61056f600480360381019061056a9190612ae8565b61195c565b60405161057d9291906132d6565b60405180910390f35b6105a0600480360381019061059b91906129fa565b6119b5565b005b6060600280546105b19061367f565b80601f01602080910402602001604051908101604052809291908181526020018280546105dd9061367f565b801561062a5780601f106105ff5761010080835404028352916020019161062a565b820191906000526020600020905b81548152906001019060200180831161060d57829003601f168201915b5050505050905090565b6000600154905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610690611aad565b73ffffffffffffffffffffffffffffffffffffffff166106ae6110a4565b73ffffffffffffffffffffffffffffffffffffffff1614610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906131e0565b60405180910390fd5b60001515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90613160565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600090565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d90613220565b60405180910390fd5b60005b82518110156108ee576108db8382815181106108ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151611ab5565b80806108e6906136e2565b915050610889565b5060019050919050565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109353382611c2c565b50565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90613220565b60405180910390fd5b6109cf82611ab5565b60019050919050565b60096020528060005260406000206000915054906101000a900463ffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a4b611aad565b73ffffffffffffffffffffffffffffffffffffffff16610a696110a4565b73ffffffffffffffffffffffffffffffffffffffff1614610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab6906131e0565b60405180910390fd5b610ac96000611d9d565b565b6000438210610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b06906131a0565b60405180910390fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610b7c576000915050610f00565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184610bcb9190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610c9057600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610c529190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610f00565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610d11576000915050610f00565b600080600183610d219190613539565b90505b8163ffffffff168163ffffffff161115610e8257600060028383610d489190613539565b610d5291906134d4565b82610d5d9190613539565b90506000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610e5157806020015195505050505050610f00565b86816000015163ffffffff161015610e6b57819350610e7b565b600182610e789190613539565b92505b5050610d24565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b600a6020528060005260406000206000915090505481565b60011515600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890613180565b60405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b6000611015611aad565b73ffffffffffffffffffffffffffffffffffffffff166110336110a4565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906131e0565b60405180910390fd5b61109b82611096846109fb565b611e63565b60019050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546110dd9061367f565b80601f01602080910402602001604051908101604052809291908181526020018280546111099061367f565b80156111565780601f1061112b57610100808354040283529160200191611156565b820191906000526020600020905b81548152906001019060200180831161113957829003601f168201915b5050505050905090565b611168611aad565b73ffffffffffffffffffffffffffffffffffffffff166111866110a4565b73ffffffffffffffffffffffffffffffffffffffff16146111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d3906131e0565b60405180910390fd5b60011515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611267906131c0565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b6bffffffffffffffffffffffff1916901b6bffffffffffffffffffffffff191690506000600c3360601b6bffffffffffffffffffffffff1916901b6bffffffffffffffffffffffff1916905061135682828561200d9092919063ffffffff16565b611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90613260565b60405180910390fd5b61139e33611ab5565b505050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161161140d576000611492565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018361145b9190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b60006114a4611aad565b73ffffffffffffffffffffffffffffffffffffffff166114c26110a4565b73ffffffffffffffffffffffffffffffffffffffff1614611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f906131e0565b60405180910390fd5b60005b82518110156115c9576115b6838281518110611560577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516115b18584815181106115a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516109fb565b611e63565b80806115c1906136e2565b91505061151b565b5060019050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666115fe6105a2565b8051906020012061160d6120e9565b306040516020016116219493929190613014565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8888886040516020016116729493929190612fcf565b6040516020818303038152906040528051906020012090506000828260405160200161169f929190612ed9565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516116dc9493929190613059565b6020604051602081039080840390855afa1580156116fe573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613120565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906117ca906136e2565b91905055891461180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613140565b60405180910390fd5b87421115611852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184990613240565b60405180910390fd5b61185c818b611c2c565b50505050505050505050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f90613220565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6008602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b6119bd611aad565b73ffffffffffffffffffffffffffffffffffffffff166119db6110a4565b73ffffffffffffffffffffffffffffffffffffffff1614611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a28906131e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9890613100565b60405180910390fd5b611aaa81611d9d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613280565b60405180910390fd5b6000611b30826109fb565b14611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b67906130e0565b60405180910390fd5b611b7d60008260016120f6565b6001806000828254611b8f9190613402565b9250508190555060016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611be59190613402565b925050819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000826001604051611c2193929190612f2b565b60405180910390a150565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611c9b846109fb565b905082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611d978284836120fb565b50505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eca90613200565b60405180910390fd5b611edf826000836120f6565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5c906130c0565b60405180910390fd5b8181611f719190613505565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160016000828254611fc59190613505565b925050819055507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360008460405161200093929190612f62565b60405180910390a1505050565b60008082905060005b85518110156120db57600086828151811061205a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905080831161209b57828160405160200161207e929190612ead565b6040516020818303038152906040528051906020012092506120c7565b80836040516020016120ae929190612ead565b6040516020818303038152906040528051906020012092505b5080806120d3906136e2565b915050612016565b508381149150509392505050565b6000804690508091505090565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561214557506000816bffffffffffffffffffffffff16115b1561240357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122a6576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116121e857600061226d565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001846122369190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006122948285604051806060016040528060278152602001613c8260279139612408565b90506122a286848484612482565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612402576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116123445760006123c9565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001846123929190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006123f08285604051806060016040528060268152602001613c5c60269139612790565b90506123fe85848484612482565b5050505b5b505050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff161115829061246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612463919061309e565b60405180910390fd5b508284612479919061356d565b90509392505050565b60006124a643604051806060016040528060338152602001613ca96033913961280f565b905060008463ffffffff1611801561254457508063ffffffff16600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018761250e9190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156125e85781600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001876125989190613539565b63ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612739565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050506001846126db9190613458565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612781929190613335565b60405180910390a25050505050565b600080838561279f9190613492565b9050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390612803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127fa919061309e565b60405180910390fd5b50809150509392505050565b60006401000000008310829061285b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612852919061309e565b60405180910390fd5b5082905092915050565b600061287861287384613383565b61335e565b9050808382526020820190508285602086028201111561289757600080fd5b60005b858110156128c757816128ad888261293d565b84526020840193506020830192505060018101905061289a565b5050509392505050565b60006128e46128df846133af565b61335e565b9050808382526020820190508285602086028201111561290357600080fd5b60005b85811015612933578161291988826129a6565b845260208401935060208301925050600181019050612906565b5050509392505050565b60008135905061294c81613be8565b92915050565b600082601f83011261296357600080fd5b8135612973848260208601612865565b91505092915050565b600082601f83011261298d57600080fd5b813561299d8482602086016128d1565b91505092915050565b6000813590506129b581613bff565b92915050565b6000813590506129ca81613c16565b92915050565b6000813590506129df81613c2d565b92915050565b6000813590506129f481613c44565b92915050565b600060208284031215612a0c57600080fd5b6000612a1a8482850161293d565b91505092915050565b60008060408385031215612a3657600080fd5b6000612a448582860161293d565b9250506020612a55858286016129bb565b9150509250929050565b60008060008060008060c08789031215612a7857600080fd5b6000612a8689828a0161293d565b9650506020612a9789828a016129bb565b9550506040612aa889828a016129bb565b9450506060612ab989828a016129e5565b9350506080612aca89828a016129a6565b92505060a0612adb89828a016129a6565b9150509295509295509295565b60008060408385031215612afb57600080fd5b6000612b098582860161293d565b9250506020612b1a858286016129d0565b9150509250929050565b600060208284031215612b3657600080fd5b600082013567ffffffffffffffff811115612b5057600080fd5b612b5c84828501612952565b91505092915050565b600060208284031215612b7757600080fd5b600082013567ffffffffffffffff811115612b9157600080fd5b612b9d8482850161297c565b91505092915050565b612baf816135a1565b82525050565b612bbe816135b3565b82525050565b612bcd816135bf565b82525050565b612be4612bdf826135bf565b61372b565b82525050565b612bf381613628565b82525050565b6000612c04826133db565b612c0e81856133e6565b9350612c1e81856020860161364c565b612c27816137f1565b840191505092915050565b6000612c3f6022836133e6565b9150612c4a82613802565b604082019050919050565b6000612c62601e836133e6565b9150612c6d82613851565b602082019050919050565b6000612c856026836133e6565b9150612c908261387a565b604082019050919050565b6000612ca86002836133f7565b9150612cb3826138c9565b600282019050919050565b6000612ccb6025836133e6565b9150612cd6826138f2565b604082019050919050565b6000612cee6021836133e6565b9150612cf982613941565b604082019050919050565b6000612d11601e836133e6565b9150612d1c82613990565b602082019050919050565b6000612d346025836133e6565b9150612d3f826139b9565b604082019050919050565b6000612d576026836133e6565b9150612d6282613a08565b604082019050919050565b6000612d7a601a836133e6565b9150612d8582613a57565b602082019050919050565b6000612d9d6020836133e6565b9150612da882613a80565b602082019050919050565b6000612dc06021836133e6565b9150612dcb82613aa9565b604082019050919050565b6000612de3602f836133e6565b9150612dee82613af8565b604082019050919050565b6000612e066025836133e6565b9150612e1182613b47565b604082019050919050565b6000612e29601e836133e6565b9150612e3482613b96565b602082019050919050565b6000612e4c601f836133e6565b9150612e5782613bbf565b602082019050919050565b612e6b816135e9565b82525050565b612e7a816135f3565b82525050565b612e8981613603565b82525050565b612e988161363a565b82525050565b612ea781613610565b82525050565b6000612eb98285612bd3565b602082019150612ec98284612bd3565b6020820191508190509392505050565b6000612ee482612c9b565b9150612ef08285612bd3565b602082019150612f008284612bd3565b6020820191508190509392505050565b6000602082019050612f256000830184612ba6565b92915050565b6000606082019050612f406000830186612ba6565b612f4d6020830185612ba6565b612f5a6040830184612bea565b949350505050565b6000606082019050612f776000830186612ba6565b612f846020830185612ba6565b612f916040830184612e62565b949350505050565b6000602082019050612fae6000830184612bb5565b92915050565b6000602082019050612fc96000830184612bc4565b92915050565b6000608082019050612fe46000830187612bc4565b612ff16020830186612ba6565b612ffe6040830185612e62565b61300b6060830184612e62565b95945050505050565b60006080820190506130296000830187612bc4565b6130366020830186612bc4565b6130436040830185612e62565b6130506060830184612ba6565b95945050505050565b600060808201905061306e6000830187612bc4565b61307b6020830186612e80565b6130886040830185612bc4565b6130956060830184612bc4565b95945050505050565b600060208201905081810360008301526130b88184612bf9565b905092915050565b600060208201905081810360008301526130d981612c32565b9050919050565b600060208201905081810360008301526130f981612c55565b9050919050565b6000602082019050818103600083015261311981612c78565b9050919050565b6000602082019050818103600083015261313981612cbe565b9050919050565b6000602082019050818103600083015261315981612ce1565b9050919050565b6000602082019050818103600083015261317981612d04565b9050919050565b6000602082019050818103600083015261319981612d27565b9050919050565b600060208201905081810360008301526131b981612d4a565b9050919050565b600060208201905081810360008301526131d981612d6d565b9050919050565b600060208201905081810360008301526131f981612d90565b9050919050565b6000602082019050818103600083015261321981612db3565b9050919050565b6000602082019050818103600083015261323981612dd6565b9050919050565b6000602082019050818103600083015261325981612df9565b9050919050565b6000602082019050818103600083015261327981612e1c565b9050919050565b6000602082019050818103600083015261329981612e3f565b9050919050565b60006020820190506132b56000830184612e62565b92915050565b60006020820190506132d06000830184612e71565b92915050565b60006040820190506132eb6000830185612e71565b6132f86020830184612e9e565b9392505050565b60006020820190506133146000830184612e80565b92915050565b600060208201905061332f6000830184612e9e565b92915050565b600060408201905061334a6000830185612e8f565b6133576020830184612e8f565b9392505050565b6000613368613379565b905061337482826136b1565b919050565b6000604051905090565b600067ffffffffffffffff82111561339e5761339d6137c2565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156133ca576133c96137c2565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061340d826135e9565b9150613418836135e9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561344d5761344c613735565b5b828201905092915050565b6000613463826135f3565b915061346e836135f3565b92508263ffffffff0382111561348757613486613735565b5b828201905092915050565b600061349d82613610565b91506134a883613610565b9250826bffffffffffffffffffffffff038211156134c9576134c8613735565b5b828201905092915050565b60006134df826135f3565b91506134ea836135f3565b9250826134fa576134f9613764565b5b828204905092915050565b6000613510826135e9565b915061351b836135e9565b92508282101561352e5761352d613735565b5b828203905092915050565b6000613544826135f3565b915061354f836135f3565b92508282101561356257613561613735565b5b828203905092915050565b600061357882613610565b915061358383613610565b92508282101561359657613595613735565b5b828203905092915050565b60006135ac826135c9565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b6000613633826135e9565b9050919050565b600061364582613610565b9050919050565b60005b8381101561366a57808201518184015260208101905061364f565b83811115613679576000848401525b50505050565b6000600282049050600182168061369757607f821691505b602082108114156136ab576136aa613793565b5b50919050565b6136ba826137f1565b810181811067ffffffffffffffff821117156136d9576136d86137c2565b5b80604052505050565b60006136ed826135e9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137205761371f613735565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5573657220616c726561647920686f6c6473206120506f4520746f6b656e0000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f504f453a3a64656c656761746542795369673a20696e76616c6964207369676e60008201527f6174757265000000000000000000000000000000000000000000000000000000602082015250565b7f504f453a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74657220697320616c7265616479206e6f742d617070726f7665640000600082015250565b7f6d73672e73656e646572206d75737420626520616e20617070726f766564206d60008201527f696e746572000000000000000000000000000000000000000000000000000000602082015250565b7f504f453a3a6765745072696f72566f7465733a206e6f7420796574206465746560008201527f726d696e65640000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74657220697320616c726561647920617070726f766564000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f6d75737420626520617070726f766564206279206f776e657220746f2063616c60008201527f6c20746869732066756e6374696f6e0000000000000000000000000000000000602082015250565b7f504f453a3a64656c656761746542795369673a207369676e617475726520657860008201527f7069726564000000000000000000000000000000000000000000000000000000602082015250565b7f41646472657373206e6f7420656c696769626c6520666f7220636c61696d0000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b613bf1816135a1565b8114613bfc57600080fd5b50565b613c08816135bf565b8114613c1357600080fd5b50565b613c1f816135e9565b8114613c2a57600080fd5b50565b613c36816135f3565b8114613c4157600080fd5b50565b613c4d81613603565b8114613c5857600080fd5b5056fe504f453a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773504f453a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773504f453a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a264697066735822122082026defb59b3f78c32b23a691cdb942b2958ee4f2707c1e72948daf9a954b0c64736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001250726f6f66206f66204578697374656e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003504f450000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Proof of Existence
Arg [1] : symbol_ (string): POE

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 50726f6f66206f66204578697374656e63650000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 504f450000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

59:8026:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1960:91:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3056:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;699:122:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4921:25:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6135:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2906:85:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7120:221:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;149:45:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1834:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6686:121:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;577:49:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3218:118:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2411:94:0;;;:::i;:::-;;4024:1217:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1113:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6419:188:0;;;:::i;:::-;;6892:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2170:97:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5899:188:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5588:262;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3371:222:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7432:244:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2370:800:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;915:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5396:95:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;438:70:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2660:192:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1960:91:2;2005:13;2038:5;2031:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1960:91;:::o;3056:99::-;3108:7;3135:12;;3128:19;;3056:99;:::o;699:122:1:-;741:80;699:122;:::o;4921:25:0:-;;;;;;;;;;;;;:::o;6135:197::-;1991:12;:10;:12::i;:::-;1980:23;;:7;:5;:7::i;:::-;:23;;;1972:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6240:5:::1;6211:34;;:16;:25;6228:7;6211:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;6203:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;6319:5;6291:16;:25;6308:7;6291:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;6135:197:::0;:::o;2906:85:2:-;2957:5;2906:85;:::o;7120:221:0:-;7194:4;5192:16;:28;5209:10;5192:28;;;;;;;;;;;;;;;;;;;;;;;;;5184:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;7216:9:::1;7211:91;7235:8;:15;7231:1;:19;7211:91;;;7272:18;7278:8;7287:1;7278:11;;;;;;;;;;;;;;;;;;;;;;7272:5;:18::i;:::-;7252:3;;;;;:::i;:::-;;;;7211:91;;;;7329:4;7322:11;;7120:221:::0;;;:::o;149:45:1:-;;;;;;;;;;;;;;;;;;;;;;:::o;1834:102::-;1896:32;1906:10;1918:9;1896;:32::i;:::-;1834:102;:::o;6686:121:0:-;6746:4;5192:16;:28;5209:10;5192:28;;;;;;;;;;;;;;;;;;;;;;;;;5184:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;6763:14:::1;6769:7;6763:5;:14::i;:::-;6795:4;6788:11;;6686:121:::0;;;:::o;577:49:1:-;;;;;;;;;;;;;;;;;;;;;;:::o;3218:118:2:-;3283:7;3310:9;:18;3320:7;3310:18;;;;;;;;;;;;;;;;3303:25;;3218:118;;;:::o;2411:94:0:-;1991:12;:10;:12::i;:::-;1980:23;;:7;:5;:7::i;:::-;:23;;;1972:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2476:21:::1;2494:1;2476:9;:21::i;:::-;2411:94::o:0;4024:1217:1:-;4103:6;4144:12;4130:11;:26;4122:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;4212:19;4234:14;:23;4249:7;4234:23;;;;;;;;;;;;;;;;;;;;;;;;;4212:45;;4288:1;4272:12;:17;;;4268:58;;;4313:1;4306:8;;;;;4268:58;4438:11;4386;:20;4398:7;4386:20;;;;;;;;;;;;;;;:38;4422:1;4407:12;:16;;;;:::i;:::-;4386:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;4382:147;;4473:11;:20;4485:7;4473:20;;;;;;;;;;;;;;;:38;4509:1;4494:12;:16;;;;:::i;:::-;4473:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;4466:51;;;;;4382:147;4626:11;4590;:20;4602:7;4590:20;;;;;;;;;;;;;;;:23;4611:1;4590:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;4586:88;;;4661:1;4654:8;;;;;4586:88;4686:12;4713;4743:1;4728:12;:16;;;;:::i;:::-;4713:31;;4755:428;4770:5;4762:13;;:5;:13;;;4755:428;;;4792:13;4834:1;4825:5;4817;:13;;;;:::i;:::-;4816:19;;;;:::i;:::-;4808:5;:27;;;;:::i;:::-;4792:43;;4877:20;4900:11;:20;4912:7;4900:20;;;;;;;;;;;;;;;:28;4921:6;4900:28;;;;;;;;;;;;;;;4877:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4963:11;4947:2;:12;;;:27;;;4943:229;;;5002:2;:8;;;4995:15;;;;;;;;;4943:229;5051:11;5036:2;:12;;;:26;;;5032:140;;;5091:6;5083:14;;5032:140;;;5155:1;5146:6;:10;;;;:::i;:::-;5138:18;;5032:140;4755:428;;;;;5200:11;:20;5212:7;5200:20;;;;;;;;;;;;;;;:27;5221:5;5200:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;5193:40;;;;;4024:1217;;;;;:::o;1113:39::-;;;;;;;;;;;;;;;;;:::o;6419:188:0:-;6506:4;6474:36;;:16;:28;6491:10;6474:28;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;6466:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;6594:5;6563:16;:28;6580:10;6563:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6419:188::o;6892:140::-;6951:4;1991:12;:10;:12::i;:::-;1980:23;;:7;:5;:7::i;:::-;:23;;;1972:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6968:34:::1;6974:7;6983:18;6993:7;6983:9;:18::i;:::-;6968:5;:34::i;:::-;7020:4;7013:11;;6892:140:::0;;;:::o;1760:87::-;1806:7;1833:6;;;;;;;;;;;1826:13;;1760:87;:::o;2170:97:2:-;2219:13;2252:7;2245:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:97;:::o;5899:188:0:-;1991:12;:10;:12::i;:::-;1980:23;;:7;:5;:7::i;:::-;:23;;;1972:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6001:4:::1;5972:33;;:16;:25;5989:7;5972:25;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;5964:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6075:4;6047:16;:25;6064:7;6047:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;5899:188:::0;:::o;5588:262::-;5646:12;5684:2;5669:10;;;;;;;;;;;5661:19;;:25;;;;;5646:40;;;;;5697:12;5735:2;5720:10;5712:19;;:25;;;;;5697:40;;;;;5756:23;5769:4;5774;5756:5;:12;;:23;;;;;:::i;:::-;5748:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5825:17;5831:10;5825:5;:17::i;:::-;5588:262;;;:::o;3371:222:1:-;3436:6;3455:19;3477:14;:23;3492:7;3477:23;;;;;;;;;;;;;;;;;;;;;;;;;3455:45;;3533:1;3518:12;:16;;;:67;;3584:1;3518:67;;;3537:11;:20;3549:7;3537:20;;;;;;;;;;;;;;;:38;3573:1;3558:12;:16;;;;:::i;:::-;3537:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;3518:67;3511:74;;;3371:222;;;:::o;7432:244:0:-;7505:4;1991:12;:10;:12::i;:::-;1980:23;;:7;:5;:7::i;:::-;:23;;;1972:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7527:9:::1;7522:115;7546:8;:15;7542:1;:19;7522:115;;;7583:42;7589:8;7598:1;7589:11;;;;;;;;;;;;;;;;;;;;;;7602:22;7612:8;7621:1;7612:11;;;;;;;;;;;;;;;;;;;;;;7602:9;:22::i;:::-;7583:5;:42::i;:::-;7563:3;;;;;:::i;:::-;;;;7522:115;;;;7664:4;7657:11;;7432:244:::0;;;:::o;2370:800:1:-;2486:23;741:80;2566:6;:4;:6::i;:::-;2550:24;;;;;;2576:12;:10;:12::i;:::-;2598:4;2522:82;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2512:93;;;;;;2486:119;;2616:18;961:71;2679:9;2690:5;2697:6;2647:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2637:68;;;;;;2616:89;;2716:14;2772:15;2789:10;2743:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2733:68;;;;;;2716:85;;2812:17;2832:26;2842:6;2850:1;2853;2856;2832:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2812:46;;2898:1;2877:23;;:9;:23;;;;2869:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2970:6;:17;2977:9;2970:17;;;;;;;;;;;;;;;;:19;;;;;;;;;:::i;:::-;;;;;2961:5;:28;2953:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3065:6;3046:15;:25;;3038:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;3131:31;3141:9;3152;3131;:31::i;:::-;3124:38;;;;2370:800;;;;;;:::o;915:117::-;961:71;915:117;:::o;5396:95:0:-;5192:16;:28;5209:10;5192:28;;;;;;;;;;;;;;;;;;;;;;;;;5184:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;5479:4:::1;5466:10;;:17;;;;;;;;;;;;;;;;;;5396:95:::0;:::o;438:70:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2660:192:0:-;1991:12;:10;:12::i;:::-;1980:23;;:7;:5;:7::i;:::-;:23;;;1972:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2769:1:::1;2749:22;;:8;:22;;;;2741:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2825:19;2835:8;2825:9;:19::i;:::-;2660:192:::0;:::o;636:98::-;689:7;716:10;709:17;;636:98;:::o;3622:379:2:-;3709:1;3690:21;;:7;:21;;;;3682:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3788:1;3766:18;3776:7;3766:9;:18::i;:::-;:23;3758:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;3837:44;3866:1;3870:7;3879:1;3837:20;:44::i;:::-;3910:1;3894:12;;:17;;;;;;;:::i;:::-;;;;;;;;3944:1;3922:9;:18;3932:7;3922:18;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;3961:32;3978:1;3982:7;3991:1;3961:32;;;;;;;;:::i;:::-;;;;;;;;3622:379;:::o;5249:384:1:-;5326:23;5352:9;:20;5362:9;5352:20;;;;;;;;;;;;;;;;;;;;;;;;;5326:46;;5383:23;5416:20;5426:9;5416;:20::i;:::-;5383:54;;5471:9;5448;:20;5458:9;5448:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;5542:9;5498:54;;5525:15;5498:54;;5514:9;5498:54;;;;;;;;;;;;5565:60;5580:15;5597:9;5608:16;5565:14;:60::i;:::-;5249:384;;;;:::o;2860:173:0:-;2916:16;2935:6;;;;;;;;;;;2916:25;;2961:8;2952:6;;:17;;;;;;;;;;;;;;;;;;3016:8;2985:40;;3006:8;2985:40;;;;;;;;;;;;2860:173;;:::o;4334:494:2:-;4437:1;4418:21;;:7;:21;;;;4410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4490:49;4511:7;4528:1;4532:6;4490:20;:49::i;:::-;4552:22;4577:9;:18;4587:7;4577:18;;;;;;;;;;;;;;;;4552:43;;4632:6;4614:14;:24;;4606:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4726:6;4709:14;:23;;;;:::i;:::-;4688:9;:18;4698:7;4688:18;;;;;;;;;;;;;;;:44;;;;4759:6;4743:12;;:22;;;;;;;:::i;:::-;;;;;;;;4783:37;4792:7;4809:1;4813:6;4783:37;;;;;;;;:::i;:::-;;;;;;;;4334:494;;;:::o;3775:830:0:-;3900:4;3917:20;3940:4;3917:27;;3962:9;3957:525;3981:5;:12;3977:1;:16;3957:525;;;4015:20;4038:5;4044:1;4038:8;;;;;;;;;;;;;;;;;;;;;;4015:31;;4083:12;4067;:28;4063:408;;4237:12;4251;4220:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4210:55;;;;;;4195:70;;4063:408;;;4427:12;4441;4410:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4400:55;;;;;;4385:70;;4063:408;3957:525;3995:3;;;;;:::i;:::-;;;;3957:525;;;;4593:4;4577:12;:20;4570:27;;;3775:830;;;;;:::o;7929:153:1:-;7974:4;7991:15;8039:9;8028:20;;8067:7;8060:14;;;7929:153;:::o;5435:92:2:-;;;;:::o;5641:937:1:-;5746:6;5736:16;;:6;:16;;;;:30;;;;;5765:1;5756:6;:10;;;5736:30;5732:839;;;5805:1;5787:20;;:6;:20;;;5783:381;;5828:16;5847:14;:22;5862:6;5847:22;;;;;;;;;;;;;;;;;;;;;;;;;5828:41;;5888:16;5919:1;5907:9;:13;;;:60;;5966:1;5907:60;;;5923:11;:19;5935:6;5923:19;;;;;;;;;;;;;;;:34;5955:1;5943:9;:13;;;;:::i;:::-;5923:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;5907:60;5888:79;;5986:16;6005:67;6011:9;6022:6;6005:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;5986:86;;6091:57;6108:6;6116:9;6127;6138;6091:16;:57::i;:::-;5783:381;;;;6202:1;6184:20;;:6;:20;;;6180:380;;6225:16;6244:14;:22;6259:6;6244:22;;;;;;;;;;;;;;;;;;;;;;;;;6225:41;;6285:16;6316:1;6304:9;:13;;;:60;;6363:1;6304:60;;;6320:11;:19;6332:6;6320:19;;;;;;;;;;;;;;;:34;6352:1;6340:9;:13;;;;:::i;:::-;6320:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;6304:60;6285:79;;6383:16;6402:66;6408:9;6419:6;6402:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;6383:85;;6487:57;6504:6;6512:9;6523;6534;6487:16;:57::i;:::-;6180:380;;;;5732:839;5641:937;;;:::o;7756:165::-;7842:6;7874:1;7869:6;;:1;:6;;;;7877:12;7861:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7912:1;7908;:5;;;;:::i;:::-;7901:12;;7756:165;;;;;:::o;6586:628::-;6704:18;6725:75;6732:12;6725:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;6704:96;;6830:1;6815:12;:16;;;:85;;;;;6889:11;6835:65;;:11;:22;6847:9;6835:22;;;;;;;;;;;;;;;:40;6873:1;6858:12;:16;;;;:::i;:::-;6835:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;6815:85;6811:329;;;6964:8;6915:11;:22;6927:9;6915:22;;;;;;;;;;;;;;;:40;6953:1;6938:12;:16;;;;:::i;:::-;6915:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;6811:329;;;7040:33;;;;;;;;7051:11;7040:33;;;;;;7064:8;7040:33;;;;;7001:11;:22;7013:9;7001:22;;;;;;;;;;;;;;;:36;7024:12;7001:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7129:1;7114:12;:16;;;;:::i;:::-;7086:14;:25;7101:9;7086:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;6811:329;7176:9;7155:51;;;7187:8;7197;7155:51;;;;;;;:::i;:::-;;;;;;;;6586:628;;;;;:::o;7560:188::-;7646:6;7665:8;7680:1;7676;:5;;;;:::i;:::-;7665:16;;7705:1;7700:6;;:1;:6;;;;7708:12;7692:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7739:1;7732:8;;;7560:188;;;;;:::o;7222:161::-;7297:6;7328:5;7324:1;:9;7335:12;7316:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7373:1;7359:16;;7222:161;;;;:::o;24:655:3:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;702:655::-;798:5;823:81;839:64;896:6;839:64;:::i;:::-;823:81;:::i;:::-;814:90;;924:5;953:6;946:5;939:21;987:4;980:5;976:16;969:23;;1013:6;1063:3;1055:4;1047:6;1043:17;1038:3;1034:27;1031:36;1028:2;;;1092:1;1089;1082:12;1028:2;1128:1;1113:238;1138:6;1135:1;1132:13;1113:238;;;1206:3;1235:37;1268:3;1256:10;1235:37;:::i;:::-;1230:3;1223:50;1302:4;1297:3;1293:14;1286:21;;1336:4;1331:3;1327:14;1320:21;;1173:178;1160:1;1157;1153:9;1148:14;;1113:238;;;1117:14;804:553;;;;;;;:::o;1363:139::-;1409:5;1447:6;1434:20;1425:29;;1463:33;1490:5;1463:33;:::i;:::-;1415:87;;;;:::o;1525:303::-;1596:5;1645:3;1638:4;1630:6;1626:17;1622:27;1612:2;;1663:1;1660;1653:12;1612:2;1703:6;1690:20;1728:94;1818:3;1810:6;1803:4;1795:6;1791:17;1728:94;:::i;:::-;1719:103;;1602:226;;;;;:::o;1851:303::-;1922:5;1971:3;1964:4;1956:6;1952:17;1948:27;1938:2;;1989:1;1986;1979:12;1938:2;2029:6;2016:20;2054:94;2144:3;2136:6;2129:4;2121:6;2117:17;2054:94;:::i;:::-;2045:103;;1928:226;;;;;:::o;2160:139::-;2206:5;2244:6;2231:20;2222:29;;2260:33;2287:5;2260:33;:::i;:::-;2212:87;;;;:::o;2305:139::-;2351:5;2389:6;2376:20;2367:29;;2405:33;2432:5;2405:33;:::i;:::-;2357:87;;;;:::o;2450:137::-;2495:5;2533:6;2520:20;2511:29;;2549:32;2575:5;2549:32;:::i;:::-;2501:86;;;;:::o;2593:135::-;2637:5;2675:6;2662:20;2653:29;;2691:31;2716:5;2691:31;:::i;:::-;2643:85;;;;:::o;2734:262::-;2793:6;2842:2;2830:9;2821:7;2817:23;2813:32;2810:2;;;2858:1;2855;2848:12;2810:2;2901:1;2926:53;2971:7;2962:6;2951:9;2947:22;2926:53;:::i;:::-;2916:63;;2872:117;2800:196;;;;:::o;3002:407::-;3070:6;3078;3127:2;3115:9;3106:7;3102:23;3098:32;3095:2;;;3143:1;3140;3133:12;3095:2;3186:1;3211:53;3256:7;3247:6;3236:9;3232:22;3211:53;:::i;:::-;3201:63;;3157:117;3313:2;3339:53;3384:7;3375:6;3364:9;3360:22;3339:53;:::i;:::-;3329:63;;3284:118;3085:324;;;;;:::o;3415:986::-;3517:6;3525;3533;3541;3549;3557;3606:3;3594:9;3585:7;3581:23;3577:33;3574:2;;;3623:1;3620;3613:12;3574:2;3666:1;3691:53;3736:7;3727:6;3716:9;3712:22;3691:53;:::i;:::-;3681:63;;3637:117;3793:2;3819:53;3864:7;3855:6;3844:9;3840:22;3819:53;:::i;:::-;3809:63;;3764:118;3921:2;3947:53;3992:7;3983:6;3972:9;3968:22;3947:53;:::i;:::-;3937:63;;3892:118;4049:2;4075:51;4118:7;4109:6;4098:9;4094:22;4075:51;:::i;:::-;4065:61;;4020:116;4175:3;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4146:119;4304:3;4331:53;4376:7;4367:6;4356:9;4352:22;4331:53;:::i;:::-;4321:63;;4275:119;3564:837;;;;;;;;:::o;4407:405::-;4474:6;4482;4531:2;4519:9;4510:7;4506:23;4502:32;4499:2;;;4547:1;4544;4537:12;4499:2;4590:1;4615:53;4660:7;4651:6;4640:9;4636:22;4615:53;:::i;:::-;4605:63;;4561:117;4717:2;4743:52;4787:7;4778:6;4767:9;4763:22;4743:52;:::i;:::-;4733:62;;4688:117;4489:323;;;;;:::o;4818:405::-;4902:6;4951:2;4939:9;4930:7;4926:23;4922:32;4919:2;;;4967:1;4964;4957:12;4919:2;5038:1;5027:9;5023:17;5010:31;5068:18;5060:6;5057:30;5054:2;;;5100:1;5097;5090:12;5054:2;5128:78;5198:7;5189:6;5178:9;5174:22;5128:78;:::i;:::-;5118:88;;4981:235;4909:314;;;;:::o;5229:405::-;5313:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:2;;;5378:1;5375;5368:12;5330:2;5449:1;5438:9;5434:17;5421:31;5479:18;5471:6;5468:30;5465:2;;;5511:1;5508;5501:12;5465:2;5539:78;5609:7;5600:6;5589:9;5585:22;5539:78;:::i;:::-;5529:88;;5392:235;5320:314;;;;:::o;5640:118::-;5727:24;5745:5;5727:24;:::i;:::-;5722:3;5715:37;5705:53;;:::o;5764:109::-;5845:21;5860:5;5845:21;:::i;:::-;5840:3;5833:34;5823:50;;:::o;5879:118::-;5966:24;5984:5;5966:24;:::i;:::-;5961:3;5954:37;5944:53;;:::o;6003:157::-;6108:45;6128:24;6146:5;6128:24;:::i;:::-;6108:45;:::i;:::-;6103:3;6096:58;6086:74;;:::o;6166:147::-;6261:45;6300:5;6261:45;:::i;:::-;6256:3;6249:58;6239:74;;:::o;6319:364::-;6407:3;6435:39;6468:5;6435:39;:::i;:::-;6490:71;6554:6;6549:3;6490:71;:::i;:::-;6483:78;;6570:52;6615:6;6610:3;6603:4;6596:5;6592:16;6570:52;:::i;:::-;6647:29;6669:6;6647:29;:::i;:::-;6642:3;6638:39;6631:46;;6411:272;;;;;:::o;6689:366::-;6831:3;6852:67;6916:2;6911:3;6852:67;:::i;:::-;6845:74;;6928:93;7017:3;6928:93;:::i;:::-;7046:2;7041:3;7037:12;7030:19;;6835:220;;;:::o;7061:366::-;7203:3;7224:67;7288:2;7283:3;7224:67;:::i;:::-;7217:74;;7300:93;7389:3;7300:93;:::i;:::-;7418:2;7413:3;7409:12;7402:19;;7207:220;;;:::o;7433:366::-;7575:3;7596:67;7660:2;7655:3;7596:67;:::i;:::-;7589:74;;7672:93;7761:3;7672:93;:::i;:::-;7790:2;7785:3;7781:12;7774:19;;7579:220;;;:::o;7805:400::-;7965:3;7986:84;8068:1;8063:3;7986:84;:::i;:::-;7979:91;;8079:93;8168:3;8079:93;:::i;:::-;8197:1;8192:3;8188:11;8181:18;;7969:236;;;:::o;8211:366::-;8353:3;8374:67;8438:2;8433:3;8374:67;:::i;:::-;8367:74;;8450:93;8539:3;8450:93;:::i;:::-;8568:2;8563:3;8559:12;8552:19;;8357:220;;;:::o;8583:366::-;8725:3;8746:67;8810:2;8805:3;8746:67;:::i;:::-;8739:74;;8822:93;8911:3;8822:93;:::i;:::-;8940:2;8935:3;8931:12;8924:19;;8729:220;;;:::o;8955:366::-;9097:3;9118:67;9182:2;9177:3;9118:67;:::i;:::-;9111:74;;9194:93;9283:3;9194:93;:::i;:::-;9312:2;9307:3;9303:12;9296:19;;9101:220;;;:::o;9327:366::-;9469:3;9490:67;9554:2;9549:3;9490:67;:::i;:::-;9483:74;;9566:93;9655:3;9566:93;:::i;:::-;9684:2;9679:3;9675:12;9668:19;;9473:220;;;:::o;9699:366::-;9841:3;9862:67;9926:2;9921:3;9862:67;:::i;:::-;9855:74;;9938:93;10027:3;9938:93;:::i;:::-;10056:2;10051:3;10047:12;10040:19;;9845:220;;;:::o;10071:366::-;10213:3;10234:67;10298:2;10293:3;10234:67;:::i;:::-;10227:74;;10310:93;10399:3;10310:93;:::i;:::-;10428:2;10423:3;10419:12;10412:19;;10217:220;;;:::o;10443:366::-;10585:3;10606:67;10670:2;10665:3;10606:67;:::i;:::-;10599:74;;10682:93;10771:3;10682:93;:::i;:::-;10800:2;10795:3;10791:12;10784:19;;10589:220;;;:::o;10815:366::-;10957:3;10978:67;11042:2;11037:3;10978:67;:::i;:::-;10971:74;;11054:93;11143:3;11054:93;:::i;:::-;11172:2;11167:3;11163:12;11156:19;;10961:220;;;:::o;11187:366::-;11329:3;11350:67;11414:2;11409:3;11350:67;:::i;:::-;11343:74;;11426:93;11515:3;11426:93;:::i;:::-;11544:2;11539:3;11535:12;11528:19;;11333:220;;;:::o;11559:366::-;11701:3;11722:67;11786:2;11781:3;11722:67;:::i;:::-;11715:74;;11798:93;11887:3;11798:93;:::i;:::-;11916:2;11911:3;11907:12;11900:19;;11705:220;;;:::o;11931:366::-;12073:3;12094:67;12158:2;12153:3;12094:67;:::i;:::-;12087:74;;12170:93;12259:3;12170:93;:::i;:::-;12288:2;12283:3;12279:12;12272:19;;12077:220;;;:::o;12303:366::-;12445:3;12466:67;12530:2;12525:3;12466:67;:::i;:::-;12459:74;;12542:93;12631:3;12542:93;:::i;:::-;12660:2;12655:3;12651:12;12644:19;;12449:220;;;:::o;12675:118::-;12762:24;12780:5;12762:24;:::i;:::-;12757:3;12750:37;12740:53;;:::o;12799:115::-;12884:23;12901:5;12884:23;:::i;:::-;12879:3;12872:36;12862:52;;:::o;12920:112::-;13003:22;13019:5;13003:22;:::i;:::-;12998:3;12991:35;12981:51;;:::o;13038:129::-;13124:36;13154:5;13124:36;:::i;:::-;13119:3;13112:49;13102:65;;:::o;13173:115::-;13258:23;13275:5;13258:23;:::i;:::-;13253:3;13246:36;13236:52;;:::o;13294:397::-;13434:3;13449:75;13520:3;13511:6;13449:75;:::i;:::-;13549:2;13544:3;13540:12;13533:19;;13562:75;13633:3;13624:6;13562:75;:::i;:::-;13662:2;13657:3;13653:12;13646:19;;13682:3;13675:10;;13438:253;;;;;:::o;13697:663::-;13938:3;13960:148;14104:3;13960:148;:::i;:::-;13953:155;;14118:75;14189:3;14180:6;14118:75;:::i;:::-;14218:2;14213:3;14209:12;14202:19;;14231:75;14302:3;14293:6;14231:75;:::i;:::-;14331:2;14326:3;14322:12;14315:19;;14351:3;14344:10;;13942:418;;;;;:::o;14366:222::-;14459:4;14497:2;14486:9;14482:18;14474:26;;14510:71;14578:1;14567:9;14563:17;14554:6;14510:71;:::i;:::-;14464:124;;;;:::o;14594:458::-;14751:4;14789:2;14778:9;14774:18;14766:26;;14802:71;14870:1;14859:9;14855:17;14846:6;14802:71;:::i;:::-;14883:72;14951:2;14940:9;14936:18;14927:6;14883:72;:::i;:::-;14965:80;15041:2;15030:9;15026:18;15017:6;14965:80;:::i;:::-;14756:296;;;;;;:::o;15058:442::-;15207:4;15245:2;15234:9;15230:18;15222:26;;15258:71;15326:1;15315:9;15311:17;15302:6;15258:71;:::i;:::-;15339:72;15407:2;15396:9;15392:18;15383:6;15339:72;:::i;:::-;15421;15489:2;15478:9;15474:18;15465:6;15421:72;:::i;:::-;15212:288;;;;;;:::o;15506:210::-;15593:4;15631:2;15620:9;15616:18;15608:26;;15644:65;15706:1;15695:9;15691:17;15682:6;15644:65;:::i;:::-;15598:118;;;;:::o;15722:222::-;15815:4;15853:2;15842:9;15838:18;15830:26;;15866:71;15934:1;15923:9;15919:17;15910:6;15866:71;:::i;:::-;15820:124;;;;:::o;15950:553::-;16127:4;16165:3;16154:9;16150:19;16142:27;;16179:71;16247:1;16236:9;16232:17;16223:6;16179:71;:::i;:::-;16260:72;16328:2;16317:9;16313:18;16304:6;16260:72;:::i;:::-;16342;16410:2;16399:9;16395:18;16386:6;16342:72;:::i;:::-;16424;16492:2;16481:9;16477:18;16468:6;16424:72;:::i;:::-;16132:371;;;;;;;:::o;16509:553::-;16686:4;16724:3;16713:9;16709:19;16701:27;;16738:71;16806:1;16795:9;16791:17;16782:6;16738:71;:::i;:::-;16819:72;16887:2;16876:9;16872:18;16863:6;16819:72;:::i;:::-;16901;16969:2;16958:9;16954:18;16945:6;16901:72;:::i;:::-;16983;17051:2;17040:9;17036:18;17027:6;16983:72;:::i;:::-;16691:371;;;;;;;:::o;17068:545::-;17241:4;17279:3;17268:9;17264:19;17256:27;;17293:71;17361:1;17350:9;17346:17;17337:6;17293:71;:::i;:::-;17374:68;17438:2;17427:9;17423:18;17414:6;17374:68;:::i;:::-;17452:72;17520:2;17509:9;17505:18;17496:6;17452:72;:::i;:::-;17534;17602:2;17591:9;17587:18;17578:6;17534:72;:::i;:::-;17246:367;;;;;;;:::o;17619:313::-;17732:4;17770:2;17759:9;17755:18;17747:26;;17819:9;17813:4;17809:20;17805:1;17794:9;17790:17;17783:47;17847:78;17920:4;17911:6;17847:78;:::i;:::-;17839:86;;17737:195;;;;:::o;17938:419::-;18104:4;18142:2;18131:9;18127:18;18119:26;;18191:9;18185:4;18181:20;18177:1;18166:9;18162:17;18155:47;18219:131;18345:4;18219:131;:::i;:::-;18211:139;;18109:248;;;:::o;18363:419::-;18529:4;18567:2;18556:9;18552:18;18544:26;;18616:9;18610:4;18606:20;18602:1;18591:9;18587:17;18580:47;18644:131;18770:4;18644:131;:::i;:::-;18636:139;;18534:248;;;:::o;18788:419::-;18954:4;18992:2;18981:9;18977:18;18969:26;;19041:9;19035:4;19031:20;19027:1;19016:9;19012:17;19005:47;19069:131;19195:4;19069:131;:::i;:::-;19061:139;;18959:248;;;:::o;19213:419::-;19379:4;19417:2;19406:9;19402:18;19394:26;;19466:9;19460:4;19456:20;19452:1;19441:9;19437:17;19430:47;19494:131;19620:4;19494:131;:::i;:::-;19486:139;;19384:248;;;:::o;19638:419::-;19804:4;19842:2;19831:9;19827:18;19819:26;;19891:9;19885:4;19881:20;19877:1;19866:9;19862:17;19855:47;19919:131;20045:4;19919:131;:::i;:::-;19911:139;;19809:248;;;:::o;20063:419::-;20229:4;20267:2;20256:9;20252:18;20244:26;;20316:9;20310:4;20306:20;20302:1;20291:9;20287:17;20280:47;20344:131;20470:4;20344:131;:::i;:::-;20336:139;;20234:248;;;:::o;20488:419::-;20654:4;20692:2;20681:9;20677:18;20669:26;;20741:9;20735:4;20731:20;20727:1;20716:9;20712:17;20705:47;20769:131;20895:4;20769:131;:::i;:::-;20761:139;;20659:248;;;:::o;20913:419::-;21079:4;21117:2;21106:9;21102:18;21094:26;;21166:9;21160:4;21156:20;21152:1;21141:9;21137:17;21130:47;21194:131;21320:4;21194:131;:::i;:::-;21186:139;;21084:248;;;:::o;21338:419::-;21504:4;21542:2;21531:9;21527:18;21519:26;;21591:9;21585:4;21581:20;21577:1;21566:9;21562:17;21555:47;21619:131;21745:4;21619:131;:::i;:::-;21611:139;;21509:248;;;:::o;21763:419::-;21929:4;21967:2;21956:9;21952:18;21944:26;;22016:9;22010:4;22006:20;22002:1;21991:9;21987:17;21980:47;22044:131;22170:4;22044:131;:::i;:::-;22036:139;;21934:248;;;:::o;22188:419::-;22354:4;22392:2;22381:9;22377:18;22369:26;;22441:9;22435:4;22431:20;22427:1;22416:9;22412:17;22405:47;22469:131;22595:4;22469:131;:::i;:::-;22461:139;;22359:248;;;:::o;22613:419::-;22779:4;22817:2;22806:9;22802:18;22794:26;;22866:9;22860:4;22856:20;22852:1;22841:9;22837:17;22830:47;22894:131;23020:4;22894:131;:::i;:::-;22886:139;;22784:248;;;:::o;23038:419::-;23204:4;23242:2;23231:9;23227:18;23219:26;;23291:9;23285:4;23281:20;23277:1;23266:9;23262:17;23255:47;23319:131;23445:4;23319:131;:::i;:::-;23311:139;;23209:248;;;:::o;23463:419::-;23629:4;23667:2;23656:9;23652:18;23644:26;;23716:9;23710:4;23706:20;23702:1;23691:9;23687:17;23680:47;23744:131;23870:4;23744:131;:::i;:::-;23736:139;;23634:248;;;:::o;23888:419::-;24054:4;24092:2;24081:9;24077:18;24069:26;;24141:9;24135:4;24131:20;24127:1;24116:9;24112:17;24105:47;24169:131;24295:4;24169:131;:::i;:::-;24161:139;;24059:248;;;:::o;24313:222::-;24406:4;24444:2;24433:9;24429:18;24421:26;;24457:71;24525:1;24514:9;24510:17;24501:6;24457:71;:::i;:::-;24411:124;;;;:::o;24541:218::-;24632:4;24670:2;24659:9;24655:18;24647:26;;24683:69;24749:1;24738:9;24734:17;24725:6;24683:69;:::i;:::-;24637:122;;;;:::o;24765:324::-;24882:4;24920:2;24909:9;24905:18;24897:26;;24933:69;24999:1;24988:9;24984:17;24975:6;24933:69;:::i;:::-;25012:70;25078:2;25067:9;25063:18;25054:6;25012:70;:::i;:::-;24887:202;;;;;:::o;25095:214::-;25184:4;25222:2;25211:9;25207:18;25199:26;;25235:67;25299:1;25288:9;25284:17;25275:6;25235:67;:::i;:::-;25189:120;;;;:::o;25315:218::-;25406:4;25444:2;25433:9;25429:18;25421:26;;25457:69;25523:1;25512:9;25508:17;25499:6;25457:69;:::i;:::-;25411:122;;;;:::o;25539:328::-;25658:4;25696:2;25685:9;25681:18;25673:26;;25709:70;25776:1;25765:9;25761:17;25752:6;25709:70;:::i;:::-;25789:71;25856:2;25845:9;25841:18;25832:6;25789:71;:::i;:::-;25663:204;;;;;:::o;25873:129::-;25907:6;25934:20;;:::i;:::-;25924:30;;25963:33;25991:4;25983:6;25963:33;:::i;:::-;25914:88;;;:::o;26008:75::-;26041:6;26074:2;26068:9;26058:19;;26048:35;:::o;26089:311::-;26166:4;26256:18;26248:6;26245:30;26242:2;;;26278:18;;:::i;:::-;26242:2;26328:4;26320:6;26316:17;26308:25;;26388:4;26382;26378:15;26370:23;;26171:229;;;:::o;26406:311::-;26483:4;26573:18;26565:6;26562:30;26559:2;;;26595:18;;:::i;:::-;26559:2;26645:4;26637:6;26633:17;26625:25;;26705:4;26699;26695:15;26687:23;;26488:229;;;:::o;26723:99::-;26775:6;26809:5;26803:12;26793:22;;26782:40;;;:::o;26828:169::-;26912:11;26946:6;26941:3;26934:19;26986:4;26981:3;26977:14;26962:29;;26924:73;;;;:::o;27003:148::-;27105:11;27142:3;27127:18;;27117:34;;;;:::o;27157:305::-;27197:3;27216:20;27234:1;27216:20;:::i;:::-;27211:25;;27250:20;27268:1;27250:20;:::i;:::-;27245:25;;27404:1;27336:66;27332:74;27329:1;27326:81;27323:2;;;27410:18;;:::i;:::-;27323:2;27454:1;27451;27447:9;27440:16;;27201:261;;;;:::o;27468:246::-;27507:3;27526:19;27543:1;27526:19;:::i;:::-;27521:24;;27559:19;27576:1;27559:19;:::i;:::-;27554:24;;27656:1;27644:10;27640:18;27637:1;27634:25;27631:2;;;27662:18;;:::i;:::-;27631:2;27706:1;27703;27699:9;27692:16;;27511:203;;;;:::o;27720:262::-;27759:3;27778:19;27795:1;27778:19;:::i;:::-;27773:24;;27811:19;27828:1;27811:19;:::i;:::-;27806:24;;27924:1;27896:26;27892:34;27889:1;27886:41;27883:2;;;27930:18;;:::i;:::-;27883:2;27974:1;27971;27967:9;27960:16;;27763:219;;;;:::o;27988:182::-;28027:1;28044:19;28061:1;28044:19;:::i;:::-;28039:24;;28077:19;28094:1;28077:19;:::i;:::-;28072:24;;28115:1;28105:2;;28120:18;;:::i;:::-;28105:2;28162:1;28159;28155:9;28150:14;;28029:141;;;;:::o;28176:191::-;28216:4;28236:20;28254:1;28236:20;:::i;:::-;28231:25;;28270:20;28288:1;28270:20;:::i;:::-;28265:25;;28309:1;28306;28303:8;28300:2;;;28314:18;;:::i;:::-;28300:2;28359:1;28356;28352:9;28344:17;;28221:146;;;;:::o;28373:188::-;28412:4;28432:19;28449:1;28432:19;:::i;:::-;28427:24;;28465:19;28482:1;28465:19;:::i;:::-;28460:24;;28503:1;28500;28497:8;28494:2;;;28508:18;;:::i;:::-;28494:2;28553:1;28550;28546:9;28538:17;;28417:144;;;;:::o;28567:188::-;28606:4;28626:19;28643:1;28626:19;:::i;:::-;28621:24;;28659:19;28676:1;28659:19;:::i;:::-;28654:24;;28697:1;28694;28691:8;28688:2;;;28702:18;;:::i;:::-;28688:2;28747:1;28744;28740:9;28732:17;;28611:144;;;;:::o;28761:96::-;28798:7;28827:24;28845:5;28827:24;:::i;:::-;28816:35;;28806:51;;;:::o;28863:90::-;28897:7;28940:5;28933:13;28926:21;28915:32;;28905:48;;;:::o;28959:77::-;28996:7;29025:5;29014:16;;29004:32;;;:::o;29042:126::-;29079:7;29119:42;29112:5;29108:54;29097:65;;29087:81;;;:::o;29174:77::-;29211:7;29240:5;29229:16;;29219:32;;;:::o;29257:93::-;29293:7;29333:10;29326:5;29322:22;29311:33;;29301:49;;;:::o;29356:86::-;29391:7;29431:4;29424:5;29420:16;29409:27;;29399:43;;;:::o;29448:109::-;29484:7;29524:26;29517:5;29513:38;29502:49;;29492:65;;;:::o;29563:121::-;29621:9;29654:24;29672:5;29654:24;:::i;:::-;29641:37;;29631:53;;;:::o;29690:111::-;29739:9;29772:23;29789:5;29772:23;:::i;:::-;29759:36;;29749:52;;;:::o;29807:307::-;29875:1;29885:113;29899:6;29896:1;29893:13;29885:113;;;29984:1;29979:3;29975:11;29969:18;29965:1;29960:3;29956:11;29949:39;29921:2;29918:1;29914:10;29909:15;;29885:113;;;30016:6;30013:1;30010:13;30007:2;;;30096:1;30087:6;30082:3;30078:16;30071:27;30007:2;29856:258;;;;:::o;30120:320::-;30164:6;30201:1;30195:4;30191:12;30181:22;;30248:1;30242:4;30238:12;30269:18;30259:2;;30325:4;30317:6;30313:17;30303:27;;30259:2;30387;30379:6;30376:14;30356:18;30353:38;30350:2;;;30406:18;;:::i;:::-;30350:2;30171:269;;;;:::o;30446:281::-;30529:27;30551:4;30529:27;:::i;:::-;30521:6;30517:40;30659:6;30647:10;30644:22;30623:18;30611:10;30608:34;30605:62;30602:2;;;30670:18;;:::i;:::-;30602:2;30710:10;30706:2;30699:22;30489:238;;;:::o;30733:233::-;30772:3;30795:24;30813:5;30795:24;:::i;:::-;30786:33;;30841:66;30834:5;30831:77;30828:2;;;30911:18;;:::i;:::-;30828:2;30958:1;30951:5;30947:13;30940:20;;30776:190;;;:::o;30972:79::-;31011:7;31040:5;31029:16;;31019:32;;;:::o;31057:180::-;31105:77;31102:1;31095:88;31202:4;31199:1;31192:15;31226:4;31223:1;31216:15;31243:180;31291:77;31288:1;31281:88;31388:4;31385:1;31378:15;31412:4;31409:1;31402:15;31429:180;31477:77;31474:1;31467:88;31574:4;31571:1;31564:15;31598:4;31595:1;31588:15;31615:180;31663:77;31660:1;31653:88;31760:4;31757:1;31750:15;31784:4;31781:1;31774:15;31801:102;31842:6;31893:2;31889:7;31884:2;31877:5;31873:14;31869:28;31859:38;;31849:54;;;:::o;31909:221::-;32049:34;32045:1;32037:6;32033:14;32026:58;32118:4;32113:2;32105:6;32101:15;32094:29;32015:115;:::o;32136:180::-;32276:32;32272:1;32264:6;32260:14;32253:56;32242:74;:::o;32322:225::-;32462:34;32458:1;32450:6;32446:14;32439:58;32531:8;32526:2;32518:6;32514:15;32507:33;32428:119;:::o;32553:214::-;32693:66;32689:1;32681:6;32677:14;32670:90;32659:108;:::o;32773:224::-;32913:34;32909:1;32901:6;32897:14;32890:58;32982:7;32977:2;32969:6;32965:15;32958:32;32879:118;:::o;33003:220::-;33143:34;33139:1;33131:6;33127:14;33120:58;33212:3;33207:2;33199:6;33195:15;33188:28;33109:114;:::o;33229:180::-;33369:32;33365:1;33357:6;33353:14;33346:56;33335:74;:::o;33415:224::-;33555:34;33551:1;33543:6;33539:14;33532:58;33624:7;33619:2;33611:6;33607:15;33600:32;33521:118;:::o;33645:225::-;33785:34;33781:1;33773:6;33769:14;33762:58;33854:8;33849:2;33841:6;33837:15;33830:33;33751:119;:::o;33876:176::-;34016:28;34012:1;34004:6;34000:14;33993:52;33982:70;:::o;34058:182::-;34198:34;34194:1;34186:6;34182:14;34175:58;34164:76;:::o;34246:220::-;34386:34;34382:1;34374:6;34370:14;34363:58;34455:3;34450:2;34442:6;34438:15;34431:28;34352:114;:::o;34472:234::-;34612:34;34608:1;34600:6;34596:14;34589:58;34681:17;34676:2;34668:6;34664:15;34657:42;34578:128;:::o;34712:224::-;34852:34;34848:1;34840:6;34836:14;34829:58;34921:7;34916:2;34908:6;34904:15;34897:32;34818:118;:::o;34942:180::-;35082:32;35078:1;35070:6;35066:14;35059:56;35048:74;:::o;35128:181::-;35268:33;35264:1;35256:6;35252:14;35245:57;35234:75;:::o;35315:122::-;35388:24;35406:5;35388:24;:::i;:::-;35381:5;35378:35;35368:2;;35427:1;35424;35417:12;35368:2;35358:79;:::o;35443:122::-;35516:24;35534:5;35516:24;:::i;:::-;35509:5;35506:35;35496:2;;35555:1;35552;35545:12;35496:2;35486:79;:::o;35571:122::-;35644:24;35662:5;35644:24;:::i;:::-;35637:5;35634:35;35624:2;;35683:1;35680;35673:12;35624:2;35614:79;:::o;35699:120::-;35771:23;35788:5;35771:23;:::i;:::-;35764:5;35761:34;35751:2;;35809:1;35806;35799:12;35751:2;35741:78;:::o;35825:118::-;35896:22;35912:5;35896:22;:::i;:::-;35889:5;35886:33;35876:2;;35933:1;35930;35923:12;35876:2;35866:77;:::o

Swarm Source

ipfs://82026defb59b3f78c32b23a691cdb942b2958ee4f2707c1e72948daf9a954b0c
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.