ETH Price: $2,992.90 (-1.07%)
Gas: 12 Gwei

Token

BoringDAO (BOR)
 

Overview

Max Total Supply

200,000 BOR

Holders

3,000 (0.00%)

Total Transfers

-

Market

Price

$24.10 @ 0.008051 ETH

Onchain Market Cap

$4,819,045.60

Circulating Supply Market Cap

$3,461,084.74

Other Info

Token Contract (WITH 18 Decimals)

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

OVERVIEW

BoringDAO is a decentralized asset bridge. BoringDAO functions to allow Bitcoin and other cryptos to enter the Ethereum and other blockchain networks in a decentralized and safe way.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Bor

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-10-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.12;
pragma experimental ABIEncoderV2;

contract Bor {
    /// @notice EIP-20 token name for this token
    string public constant name = "BoringDAO";

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

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

    /// @notice Total number of tokens in circulation
    uint public constant totalSupply = 200_000e18;

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

    /// @dev Official record of token balances for each account
    mapping (address => uint96) internal balances;

    /// @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 The EIP-712 typehash for the permit struct used by the contract
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

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

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

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

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

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

    /**
     * @notice Construct a new Comp token
     * @param account The initial account to grant all the tokens
     */
    constructor(address account) public {
        balances[account] = uint96(totalSupply);
        emit Transfer(address(0), account, totalSupply);
    }

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

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

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

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

     function permit(address owner, address spender, uint rawAmount, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "BOR::permit: amount exceeds 96 bits");
        }

        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "BOR::permit: invalid signature");
        require(signatory == owner, "BOR::permit: unauthorized");
        require(now <= deadline, "BOR::permit: signature expired");

        allowances[owner][spender] = amount;

        emit Approval(owner, spender, amount);
    }

     function increaseAllowance(address spender, uint rawAddAmount) external returns (bool) {
        uint96 addAmount = safe96(rawAddAmount, "BOR::approve: amount exceeds 96 bits");
        uint96 amount = add96(allowances[msg.sender][spender], addAmount, "BOR::increaseAllowance: increase allowance exceeds 96 bits");
        allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function decreaseAllowance(address spender, uint256 rawSubAmount) external returns (bool) {
        uint96 subAmount = safe96(rawSubAmount, "BOR::approve: amount exceeds 96 bits");
        uint96 amount = sub96(allowances[msg.sender][spender], subAmount, "BOR::decreaseAllowance: decrease subAmount > allowance");
        allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

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

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

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

            emit Approval(src, spender, newAllowance);
        }

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

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

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

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

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

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

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

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

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

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

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

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

    function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint96 srcRepNew = sub96(srcRepOld, amount, "BOR::_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, "BOR::_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, "BOR::_writeCheckpoint: block number exceeds 32 bits");

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

      emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

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

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

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

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

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"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":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawSubAmount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":[{"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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAddAmount","type":"uint256"}],"name":"increaseAllowance","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","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":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405162001f6a38038062001f6a833981016040819052610031916100a2565b6001600160a01b03811660008181526001602052604080822080546001600160601b031916692a5a058fc295ed00000090811790915590517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91610094916100d0565b60405180910390a3506100d9565b6000602082840312156100b3578081fd5b81516001600160a01b03811681146100c9578182fd5b9392505050565b90815260200190565b611e8180620000e96000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063b4b5ea571161007c578063b4b5ea57146102b9578063c3cda520146102cc578063d505accf146102df578063dd62ed3e146102f2578063e7a324dc14610305578063f1127ed81461030d5761014d565b806370a0823114610245578063782d6fe1146102585780637ecebe001461027857806395d89b411461028b578063a457c2d714610293578063a9059cbb146102a65761014d565b806330adf81f1161011557806330adf81f146101c0578063313ce567146101c857806339509351146101dd578063587cde1e146101f05780635c19a95c146102105780636fcfff45146102255761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd1461019057806320606b70146101a557806323b872dd146101ad575b600080fd5b61015a61032e565b60405161016791906118eb565b60405180910390f35b61018361017e36600461174c565b610353565b604051610167919061183d565b6101986103fe565b6040516101679190611848565b61019861040c565b6101836101bb3660046116a0565b610430565b610198610561565b6101d0610585565b6040516101679190611bde565b6101836101eb36600461174c565b61058a565b6102036101fe366004611651565b610672565b6040516101679190611829565b61022361021e366004611651565b61068d565b005b610238610233366004611651565b61069a565b6040516101679190611bae565b610198610253366004611651565b6106b2565b61026b61026636600461174c565b6106d6565b6040516101679190611bec565b610198610286366004611651565b6108ed565b61015a6108ff565b6101836102a136600461174c565b61091e565b6101836102b436600461174c565b610996565b61026b6102c7366004611651565b6109d2565b6102236102da366004611776565b610a43565b6102236102ed3660046116e0565b610c4a565b61019861030036600461166c565b610f3a565b610198610f6c565b61032061031b3660046117cf565b610f90565b604051610167929190611bbf565b60405180604001604052806009815260200168426f72696e6744414f60b81b81525081565b600080600019831415610369575060001961038e565b61038b83604051806060016040528060248152602001611df260249139610fc5565b90505b336000818152602081815260408083206001600160a01b03891680855292529182902080546001600160601b0319166001600160601b0386161790559051909190600080516020611dd2833981519152906103ea908590611bec565b60405180910390a360019150505b92915050565b692a5a058fc295ed00000081565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6001600160a01b0383166000908152602081815260408083203380855290835281842054825160608101909352602480845291936001600160601b039091169285926104869288929190611df290830139610fc5565b9050866001600160a01b0316836001600160a01b0316141580156104b357506001600160601b0382811614155b156105495760006104dd83836040518060600160405280603c8152602001611cb6603c9139610ff4565b6001600160a01b03898116600081815260208181526040808320948a16808452949091529081902080546001600160601b0319166001600160601b038616179055519293509091600080516020611dd28339815191529061053f908590611bec565b60405180910390a3505b610554878783611033565b5060019695505050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b6000806105af83604051806060016040528060248152602001611df260249139610fc5565b336000908152602081815260408083206001600160a01b0389168452825280832054815160608101909252603a8083529495509293610602936001600160601b03169286929190611c57908301396111de565b336000818152602081815260408083206001600160a01b038b1680855292529182902080546001600160601b0319166001600160601b038616179055905192935091600080516020611dd28339815191529061065f908590611bec565b60405180910390a3506001949350505050565b6002602052600090815260409020546001600160a01b031681565b610697338261121a565b50565b60046020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600160205260409020546001600160601b031690565b60004382106107005760405162461bcd60e51b81526004016106f7906119b6565b60405180910390fd5b6001600160a01b03831660009081526004602052604090205463ffffffff168061072e5760009150506103f8565b6001600160a01b038416600090815260036020908152604080832063ffffffff6000198601811685529252909120541683106107aa576001600160a01b03841660009081526003602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b031690506103f8565b6001600160a01b038416600090815260036020908152604080832083805290915290205463ffffffff168310156107e55760009150506103f8565b600060001982015b8163ffffffff168163ffffffff1611156108a857600282820363ffffffff16048103610817611612565b506001600160a01b038716600090815260036020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b03169181019190915290871415610883576020015194506103f89350505050565b805163ffffffff1687111561089a578193506108a1565b6001820392505b50506107ed565b506001600160a01b038516600090815260036020908152604080832063ffffffff909416835292905220546001600160601b03600160201b9091041691505092915050565b60056020526000908152604090205481565b604051806040016040528060038152602001622127a960e91b81525081565b60008061094383604051806060016040528060248152602001611df260249139610fc5565b336000908152602081815260408083206001600160a01b038916845282528083205481516060810190925260368083529495509293610602936001600160601b03169286929190611e1690830139610ff4565b6000806109bb83604051806060016040528060258152602001611c9160259139610fc5565b90506109c8338583611033565b5060019392505050565b6001600160a01b03811660009081526004602052604081205463ffffffff16806109fd576000610a3c565b6001600160a01b0383166000908152600360209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03165b9392505050565b604080518082019091526009815268426f72696e6744414f60b81b60209091015260007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667f34154ed6ef0b63636b364e64c74e8c31ae80a48abd61c40c2e8f0fa3ac223719610ab06112a4565b30604051602001610ac494939291906118a9565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001610b159493929190611885565b60405160208183030381529060405280519060200120905060008282604051602001610b4292919061180e565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610b7f94939291906118cd565b6020604051602081039080840390855afa158015610ba1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610bd45760405162461bcd60e51b81526004016106f790611b69565b6001600160a01b03811660009081526005602052604090208054600181019091558914610c135760405162461bcd60e51b81526004016106f79061193e565b87421115610c335760405162461bcd60e51b81526004016106f790611a33565b610c3d818b61121a565b505050505b505050505050565b6000600019861415610c5f5750600019610c84565b610c8186604051806060016040528060238152602001611cf260239139610fc5565b90505b604080518082019091526009815268426f72696e6744414f60b81b60209091015260007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667f34154ed6ef0b63636b364e64c74e8c31ae80a48abd61c40c2e8f0fa3ac223719610cf16112a4565b30604051602001610d0594939291906118a9565b60408051601f1981840301815282825280516020918201206001600160a01b038d166000908152600583529283208054600181019091559094509192610d77927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928e928e928e9290918e9101611851565b60405160208183030381529060405280519060200120905060008282604051602001610da492919061180e565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610de194939291906118cd565b6020604051602081039080840390855afa158015610e03573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e365760405162461bcd60e51b81526004016106f79061197f565b8b6001600160a01b0316816001600160a01b031614610e675760405162461bcd60e51b81526004016106f7906119fc565b88421115610e875760405162461bcd60e51b81526004016106f790611a78565b846000808e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b0316600080516020611dd283398151915287604051610f249190611bec565b60405180910390a3505050505050505050505050565b6001600160a01b039182166000908152602081815260408083209390941682529190915220546001600160601b031690565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600360209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b600081600160601b8410610fec5760405162461bcd60e51b81526004016106f791906118eb565b509192915050565b6000836001600160601b0316836001600160601b03161115829061102b5760405162461bcd60e51b81526004016106f791906118eb565b505050900390565b6001600160a01b0383166110595760405162461bcd60e51b81526004016106f790611aaf565b6001600160a01b03821661107f5760405162461bcd60e51b81526004016106f790611b0c565b6001600160a01b0383166000908152600160209081526040918290205482516060810190935260358084526110ca936001600160601b039092169285929190611d4890830139610ff4565b6001600160a01b03848116600090815260016020908152604080832080546001600160601b0319166001600160601b0396871617905592861682529082902054825160608101909352602f8084526111329491909116928592909190611d7d908301396111de565b6001600160a01b038381166000818152600160205260409081902080546001600160601b0319166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061119f908590611bec565b60405180910390a36001600160a01b038084166000908152600260205260408082205485841683529120546111d9929182169116836112a8565b505050565b6000838301826001600160601b0380871690831610156112115760405162461bcd60e51b81526004016106f791906118eb565b50949350505050565b6001600160a01b03808316600081815260026020818152604080842080546001845282862054949093528787166001600160a01b031984168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461129e8284836112a8565b50505050565b4690565b816001600160a01b0316836001600160a01b0316141580156112d357506000816001600160601b0316115b156111d9576001600160a01b0383161561138b576001600160a01b03831660009081526004602052604081205463ffffffff169081611313576000611352565b6001600160a01b0385166000908152600360209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b905060006113798285604051806060016040528060278152602001611c3060279139610ff4565b905061138786848484611436565b5050505b6001600160a01b038216156111d9576001600160a01b03821660009081526004602052604081205463ffffffff1690816113c6576000611405565b6001600160a01b0384166000908152600360209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061142c8285604051806060016040528060268152602001611dac602691396111de565b9050610c42858484845b600061145a43604051806060016040528060338152602001611d15603391396115eb565b905060008463ffffffff161180156114a357506001600160a01b038516600090815260036020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611502576001600160a01b0385166000908152600360209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b038516021790556115a1565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600383528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600490935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516115dc929190611c00565b60405180910390a25050505050565b600081600160201b8410610fec5760405162461bcd60e51b81526004016106f791906118eb565b604080518082019091526000808252602082015290565b80356001600160a01b03811681146103f857600080fd5b803560ff811681146103f857600080fd5b600060208284031215611662578081fd5b610a3c8383611629565b6000806040838503121561167e578081fd5b6116888484611629565b91506116978460208501611629565b90509250929050565b6000806000606084860312156116b4578081fd5b83356116bf81611c1a565b925060208401356116cf81611c1a565b929592945050506040919091013590565b600080600080600080600060e0888a0312156116fa578283fd5b6117048989611629565b96506117138960208a01611629565b955060408801359450606088013593506117308960808a01611640565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561175e578182fd5b6117688484611629565b946020939093013593505050565b60008060008060008060c0878903121561178e578182fd5b6117988888611629565b955060208701359450604087013593506117b58860608901611640565b92506080870135915060a087013590509295509295509295565b600080604083850312156117e1578182fd5b6117eb8484611629565b9150602083013563ffffffff81168114611803578182fd5b809150509250929050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b81811015611917578581018301518582016040015282016118fb565b818111156119285783604083870101525b50601f01601f1916929092016040019392505050565b60208082526021908201527f424f523a3a64656c656761746542795369673a20696e76616c6964206e6f6e636040820152606560f81b606082015260800190565b6020808252601e908201527f424f523a3a7065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526026908201527f424f523a3a6765745072696f72566f7465733a206e6f742079657420646574656040820152651c9b5a5b995960d21b606082015260800190565b60208082526019908201527f424f523a3a7065726d69743a20756e617574686f72697a656400000000000000604082015260600190565b60208082526025908201527f424f523a3a64656c656761746542795369673a207369676e61747572652065786040820152641c1a5c995960da1b606082015260800190565b6020808252601e908201527f424f523a3a7065726d69743a207369676e617475726520657870697265640000604082015260600190565b6020808252603b908201527f424f523a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160408201527f6e736665722066726f6d20746865207a65726f20616464726573730000000000606082015260800190565b60208082526039908201527f424f523a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160408201527f6e7366657220746f20746865207a65726f206164647265737300000000000000606082015260800190565b60208082526025908201527f424f523a3a64656c656761746542795369673a20696e76616c6964207369676e604082015264617475726560d81b606082015260800190565b63ffffffff91909116815260200190565b63ffffffff9290921682526001600160601b0316602082015260400190565b60ff91909116815260200190565b6001600160601b0391909116815260200190565b6001600160601b0392831681529116602082015260400190565b6001600160a01b038116811461069757600080fdfe424f523a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773424f523a3a696e637265617365416c6c6f77616e63653a20696e63726561736520616c6c6f77616e636520657863656564732039362062697473424f523a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473424f523a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365424f523a3a7065726d69743a20616d6f756e7420657863656564732039362062697473424f523a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473424f523a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365424f523a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773424f523a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77738c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925424f523a3a617070726f76653a20616d6f756e7420657863656564732039362062697473424f523a3a6465637265617365416c6c6f77616e63653a20646563726561736520737562416d6f756e74203e20616c6c6f77616e6365a2646970667358221220fdb68e3782213f40ed5775159e7af31233328489be4d90bc6f5064dcc6cf779e64736f6c634300060c003300000000000000000000000067ee188ee1319cdac271553e7b8faaed2fbc52cc

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063b4b5ea571161007c578063b4b5ea57146102b9578063c3cda520146102cc578063d505accf146102df578063dd62ed3e146102f2578063e7a324dc14610305578063f1127ed81461030d5761014d565b806370a0823114610245578063782d6fe1146102585780637ecebe001461027857806395d89b411461028b578063a457c2d714610293578063a9059cbb146102a65761014d565b806330adf81f1161011557806330adf81f146101c0578063313ce567146101c857806339509351146101dd578063587cde1e146101f05780635c19a95c146102105780636fcfff45146102255761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd1461019057806320606b70146101a557806323b872dd146101ad575b600080fd5b61015a61032e565b60405161016791906118eb565b60405180910390f35b61018361017e36600461174c565b610353565b604051610167919061183d565b6101986103fe565b6040516101679190611848565b61019861040c565b6101836101bb3660046116a0565b610430565b610198610561565b6101d0610585565b6040516101679190611bde565b6101836101eb36600461174c565b61058a565b6102036101fe366004611651565b610672565b6040516101679190611829565b61022361021e366004611651565b61068d565b005b610238610233366004611651565b61069a565b6040516101679190611bae565b610198610253366004611651565b6106b2565b61026b61026636600461174c565b6106d6565b6040516101679190611bec565b610198610286366004611651565b6108ed565b61015a6108ff565b6101836102a136600461174c565b61091e565b6101836102b436600461174c565b610996565b61026b6102c7366004611651565b6109d2565b6102236102da366004611776565b610a43565b6102236102ed3660046116e0565b610c4a565b61019861030036600461166c565b610f3a565b610198610f6c565b61032061031b3660046117cf565b610f90565b604051610167929190611bbf565b60405180604001604052806009815260200168426f72696e6744414f60b81b81525081565b600080600019831415610369575060001961038e565b61038b83604051806060016040528060248152602001611df260249139610fc5565b90505b336000818152602081815260408083206001600160a01b03891680855292529182902080546001600160601b0319166001600160601b0386161790559051909190600080516020611dd2833981519152906103ea908590611bec565b60405180910390a360019150505b92915050565b692a5a058fc295ed00000081565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6001600160a01b0383166000908152602081815260408083203380855290835281842054825160608101909352602480845291936001600160601b039091169285926104869288929190611df290830139610fc5565b9050866001600160a01b0316836001600160a01b0316141580156104b357506001600160601b0382811614155b156105495760006104dd83836040518060600160405280603c8152602001611cb6603c9139610ff4565b6001600160a01b03898116600081815260208181526040808320948a16808452949091529081902080546001600160601b0319166001600160601b038616179055519293509091600080516020611dd28339815191529061053f908590611bec565b60405180910390a3505b610554878783611033565b5060019695505050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b6000806105af83604051806060016040528060248152602001611df260249139610fc5565b336000908152602081815260408083206001600160a01b0389168452825280832054815160608101909252603a8083529495509293610602936001600160601b03169286929190611c57908301396111de565b336000818152602081815260408083206001600160a01b038b1680855292529182902080546001600160601b0319166001600160601b038616179055905192935091600080516020611dd28339815191529061065f908590611bec565b60405180910390a3506001949350505050565b6002602052600090815260409020546001600160a01b031681565b610697338261121a565b50565b60046020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600160205260409020546001600160601b031690565b60004382106107005760405162461bcd60e51b81526004016106f7906119b6565b60405180910390fd5b6001600160a01b03831660009081526004602052604090205463ffffffff168061072e5760009150506103f8565b6001600160a01b038416600090815260036020908152604080832063ffffffff6000198601811685529252909120541683106107aa576001600160a01b03841660009081526003602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b031690506103f8565b6001600160a01b038416600090815260036020908152604080832083805290915290205463ffffffff168310156107e55760009150506103f8565b600060001982015b8163ffffffff168163ffffffff1611156108a857600282820363ffffffff16048103610817611612565b506001600160a01b038716600090815260036020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b03169181019190915290871415610883576020015194506103f89350505050565b805163ffffffff1687111561089a578193506108a1565b6001820392505b50506107ed565b506001600160a01b038516600090815260036020908152604080832063ffffffff909416835292905220546001600160601b03600160201b9091041691505092915050565b60056020526000908152604090205481565b604051806040016040528060038152602001622127a960e91b81525081565b60008061094383604051806060016040528060248152602001611df260249139610fc5565b336000908152602081815260408083206001600160a01b038916845282528083205481516060810190925260368083529495509293610602936001600160601b03169286929190611e1690830139610ff4565b6000806109bb83604051806060016040528060258152602001611c9160259139610fc5565b90506109c8338583611033565b5060019392505050565b6001600160a01b03811660009081526004602052604081205463ffffffff16806109fd576000610a3c565b6001600160a01b0383166000908152600360209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03165b9392505050565b604080518082019091526009815268426f72696e6744414f60b81b60209091015260007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667f34154ed6ef0b63636b364e64c74e8c31ae80a48abd61c40c2e8f0fa3ac223719610ab06112a4565b30604051602001610ac494939291906118a9565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001610b159493929190611885565b60405160208183030381529060405280519060200120905060008282604051602001610b4292919061180e565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610b7f94939291906118cd565b6020604051602081039080840390855afa158015610ba1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610bd45760405162461bcd60e51b81526004016106f790611b69565b6001600160a01b03811660009081526005602052604090208054600181019091558914610c135760405162461bcd60e51b81526004016106f79061193e565b87421115610c335760405162461bcd60e51b81526004016106f790611a33565b610c3d818b61121a565b505050505b505050505050565b6000600019861415610c5f5750600019610c84565b610c8186604051806060016040528060238152602001611cf260239139610fc5565b90505b604080518082019091526009815268426f72696e6744414f60b81b60209091015260007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8667f34154ed6ef0b63636b364e64c74e8c31ae80a48abd61c40c2e8f0fa3ac223719610cf16112a4565b30604051602001610d0594939291906118a9565b60408051601f1981840301815282825280516020918201206001600160a01b038d166000908152600583529283208054600181019091559094509192610d77927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928e928e928e9290918e9101611851565b60405160208183030381529060405280519060200120905060008282604051602001610da492919061180e565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610de194939291906118cd565b6020604051602081039080840390855afa158015610e03573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e365760405162461bcd60e51b81526004016106f79061197f565b8b6001600160a01b0316816001600160a01b031614610e675760405162461bcd60e51b81526004016106f7906119fc565b88421115610e875760405162461bcd60e51b81526004016106f790611a78565b846000808e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b0316600080516020611dd283398151915287604051610f249190611bec565b60405180910390a3505050505050505050505050565b6001600160a01b039182166000908152602081815260408083209390941682529190915220546001600160601b031690565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600360209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b600081600160601b8410610fec5760405162461bcd60e51b81526004016106f791906118eb565b509192915050565b6000836001600160601b0316836001600160601b03161115829061102b5760405162461bcd60e51b81526004016106f791906118eb565b505050900390565b6001600160a01b0383166110595760405162461bcd60e51b81526004016106f790611aaf565b6001600160a01b03821661107f5760405162461bcd60e51b81526004016106f790611b0c565b6001600160a01b0383166000908152600160209081526040918290205482516060810190935260358084526110ca936001600160601b039092169285929190611d4890830139610ff4565b6001600160a01b03848116600090815260016020908152604080832080546001600160601b0319166001600160601b0396871617905592861682529082902054825160608101909352602f8084526111329491909116928592909190611d7d908301396111de565b6001600160a01b038381166000818152600160205260409081902080546001600160601b0319166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061119f908590611bec565b60405180910390a36001600160a01b038084166000908152600260205260408082205485841683529120546111d9929182169116836112a8565b505050565b6000838301826001600160601b0380871690831610156112115760405162461bcd60e51b81526004016106f791906118eb565b50949350505050565b6001600160a01b03808316600081815260026020818152604080842080546001845282862054949093528787166001600160a01b031984168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461129e8284836112a8565b50505050565b4690565b816001600160a01b0316836001600160a01b0316141580156112d357506000816001600160601b0316115b156111d9576001600160a01b0383161561138b576001600160a01b03831660009081526004602052604081205463ffffffff169081611313576000611352565b6001600160a01b0385166000908152600360209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b905060006113798285604051806060016040528060278152602001611c3060279139610ff4565b905061138786848484611436565b5050505b6001600160a01b038216156111d9576001600160a01b03821660009081526004602052604081205463ffffffff1690816113c6576000611405565b6001600160a01b0384166000908152600360209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061142c8285604051806060016040528060268152602001611dac602691396111de565b9050610c42858484845b600061145a43604051806060016040528060338152602001611d15603391396115eb565b905060008463ffffffff161180156114a357506001600160a01b038516600090815260036020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611502576001600160a01b0385166000908152600360209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b038516021790556115a1565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600383528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600490935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516115dc929190611c00565b60405180910390a25050505050565b600081600160201b8410610fec5760405162461bcd60e51b81526004016106f791906118eb565b604080518082019091526000808252602082015290565b80356001600160a01b03811681146103f857600080fd5b803560ff811681146103f857600080fd5b600060208284031215611662578081fd5b610a3c8383611629565b6000806040838503121561167e578081fd5b6116888484611629565b91506116978460208501611629565b90509250929050565b6000806000606084860312156116b4578081fd5b83356116bf81611c1a565b925060208401356116cf81611c1a565b929592945050506040919091013590565b600080600080600080600060e0888a0312156116fa578283fd5b6117048989611629565b96506117138960208a01611629565b955060408801359450606088013593506117308960808a01611640565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561175e578182fd5b6117688484611629565b946020939093013593505050565b60008060008060008060c0878903121561178e578182fd5b6117988888611629565b955060208701359450604087013593506117b58860608901611640565b92506080870135915060a087013590509295509295509295565b600080604083850312156117e1578182fd5b6117eb8484611629565b9150602083013563ffffffff81168114611803578182fd5b809150509250929050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b938452602084019290925260408301526001600160a01b0316606082015260800190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b81811015611917578581018301518582016040015282016118fb565b818111156119285783604083870101525b50601f01601f1916929092016040019392505050565b60208082526021908201527f424f523a3a64656c656761746542795369673a20696e76616c6964206e6f6e636040820152606560f81b606082015260800190565b6020808252601e908201527f424f523a3a7065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526026908201527f424f523a3a6765745072696f72566f7465733a206e6f742079657420646574656040820152651c9b5a5b995960d21b606082015260800190565b60208082526019908201527f424f523a3a7065726d69743a20756e617574686f72697a656400000000000000604082015260600190565b60208082526025908201527f424f523a3a64656c656761746542795369673a207369676e61747572652065786040820152641c1a5c995960da1b606082015260800190565b6020808252601e908201527f424f523a3a7065726d69743a207369676e617475726520657870697265640000604082015260600190565b6020808252603b908201527f424f523a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160408201527f6e736665722066726f6d20746865207a65726f20616464726573730000000000606082015260800190565b60208082526039908201527f424f523a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160408201527f6e7366657220746f20746865207a65726f206164647265737300000000000000606082015260800190565b60208082526025908201527f424f523a3a64656c656761746542795369673a20696e76616c6964207369676e604082015264617475726560d81b606082015260800190565b63ffffffff91909116815260200190565b63ffffffff9290921682526001600160601b0316602082015260400190565b60ff91909116815260200190565b6001600160601b0391909116815260200190565b6001600160601b0392831681529116602082015260400190565b6001600160a01b038116811461069757600080fdfe424f523a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773424f523a3a696e637265617365416c6c6f77616e63653a20696e63726561736520616c6c6f77616e636520657863656564732039362062697473424f523a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473424f523a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365424f523a3a7065726d69743a20616d6f756e7420657863656564732039362062697473424f523a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473424f523a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365424f523a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773424f523a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77738c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925424f523a3a617070726f76653a20616d6f756e7420657863656564732039362062697473424f523a3a6465637265617365416c6c6f77616e63653a20646563726561736520737562416d6f756e74203e20616c6c6f77616e6365a2646970667358221220fdb68e3782213f40ed5775159e7af31233328489be4d90bc6f5064dcc6cf779e64736f6c634300060c0033

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

00000000000000000000000067ee188ee1319cdac271553e7b8faaed2fbc52cc

-----Decoded View---------------
Arg [0] : account (address): 0x67Ee188Ee1319CDAc271553e7b8FAAed2fBC52CC

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000067ee188ee1319cdac271553e7b8faaed2fbc52cc


Deployed Bytecode Sourcemap

98:14990:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;168:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3911:418;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;469:45::-;;;:::i;:::-;;;;;;;:::i;1373:122::-;;;:::i;7424:670::-;;;;;;:::i;:::-;;:::i;1796:137::-;;;:::i;370:35::-;;;:::i;:::-;;;;;;;:::i;5397:449::-;;;;;;:::i;:::-;;:::i;823:45::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8242:102::-;;;;;;:::i;:::-;;:::i;:::-;;1251:49;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6505:108::-;;;;;;:::i;:::-;;:::i;10418:1217::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2014:39::-;;;;;;:::i;:::-;;:::i;270:37::-;;;:::i;5854:448::-;;;;;;:::i;:::-;;:::i;6877:237::-;;;;;;:::i;:::-;;:::i;9765:222::-;;;;;;:::i;:::-;;:::i;8778:786::-;;;;;;:::i;:::-;;:::i;4338:1050::-;;;;;;:::i;:::-;;:::i;3297:136::-;;;;;;:::i;:::-;;:::i;1589:117::-;;;:::i;1112:70::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;168:41::-;;;;;;;;;;;;;;-1:-1:-1;;;168:41:0;;;;:::o;3911:418::-;3979:4;3996:13;-1:-1:-1;;4024:9:0;:21;4020:172;;;-1:-1:-1;;;4020:172:0;;;4123:57;4130:9;4123:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;4114:66;;4020:172;4215:10;4204;:22;;;;;;;;;;;-1:-1:-1;;;;;4204:31:0;;;;;;;;;;;:40;;-1:-1:-1;;;;;;4204:40:0;-1:-1:-1;;;;;4204:40:0;;;;;4262:37;;4204:31;;4215:10;-1:-1:-1;;;;;;;;;;;4262:37:0;;;4204:40;;4262:37;:::i;:::-;;;;;;;;4317:4;4310:11;;;3911:418;;;;;:::o;469:45::-;504:10;469:45;:::o;1373:122::-;1415:80;1373:122;:::o;7424:670::-;-1:-1:-1;;;;;7588:15:0;;7506:4;7588:15;;;;;;;;;;;7541:10;7588:24;;;;;;;;;;7639:57;;;;;;;;;;;;7541:10;;-1:-1:-1;;;;;7588:24:0;;;;7506:4;;7639:57;;7646:9;;7639:57;;;;;;;:6;:57::i;:::-;7623:73;;7724:3;-1:-1:-1;;;;;7713:14:0;:7;-1:-1:-1;;;;;7713:14:0;;;:48;;;;-1:-1:-1;;;;;;7731:30:0;;;;;7713:48;7709:310;;;7778:19;7800:95;7806:16;7824:6;7800:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;-1:-1:-1;;;;;7910:15:0;;;:10;:15;;;;;;;;;;;:24;;;;;;;;;;;;;;:39;;-1:-1:-1;;;;;;7910:39:0;-1:-1:-1;;;;;7910:39:0;;;;;7971:36;7910:39;;-1:-1:-1;7910:24:0;;-1:-1:-1;;;;;;;;;;;7971:36:0;;;7910:39;;7971:36;:::i;:::-;;;;;;;;7709:310;;8031:33;8047:3;8052;8057:6;8031:15;:33::i;:::-;-1:-1:-1;8082:4:0;;7424:670;-1:-1:-1;;;;;;7424:670:0:o;1796:137::-;1838:95;1796:137;:::o;370:35::-;403:2;370:35;:::o;5397:449::-;5478:4;5495:16;5514:60;5521:12;5514:60;;;;;;;;;;;;;;;;;:6;:60::i;:::-;5618:10;5585:13;5607:22;;;;;;;;;;;-1:-1:-1;;;;;5607:31:0;;;;;;;;;;5601:111;;;;;;;;;;;;5495:79;;-1:-1:-1;5585:13:0;;5601:111;;-1:-1:-1;;;;;5607:31:0;;5495:79;;5601:111;;;;;;;:5;:111::i;:::-;5734:10;5723;:22;;;;;;;;;;;-1:-1:-1;;;;;5723:31:0;;;;;;;;;;;:40;;-1:-1:-1;;;;;;5723:40:0;-1:-1:-1;;;;;5723:40:0;;;;;5779:37;;5723:40;;-1:-1:-1;5723:31:0;-1:-1:-1;;;;;;;;;;;5779:37:0;;;5723:40;;5779:37;:::i;:::-;;;;;;;;-1:-1:-1;5834:4:0;;5397:449;-1:-1:-1;;;;5397:449:0:o;823:45::-;;;;;;;;;;;;-1:-1:-1;;;;;823:45:0;;:::o;8242:102::-;8304:32;8314:10;8326:9;8304;:32::i;:::-;8242:102;:::o;1251:49::-;;;;;;;;;;;;;;;:::o;6505:108::-;-1:-1:-1;;;;;6588:17:0;6564:4;6588:17;;;:8;:17;;;;;;-1:-1:-1;;;;;6588:17:0;;6505:108::o;10418:1217::-;10497:6;10538:12;10524:11;:26;10516:77;;;;-1:-1:-1;;;10516:77:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10628:23:0;;10606:19;10628:23;;;:14;:23;;;;;;;;10666:17;10662:58;;10707:1;10700:8;;;;;10662:58;-1:-1:-1;;;;;10780:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;10801:16:0;;10780:38;;;;;;;;;:48;;:63;-1:-1:-1;10776:147:0;;-1:-1:-1;;;;;10867:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;10888:16:0;;;;10867:38;;;;;;;;:44;-1:-1:-1;;;10867:44:0;;-1:-1:-1;;;;;10867:44:0;;-1:-1:-1;10860:51:0;;10776:147;-1:-1:-1;;;;;10984:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;10980:88:0;;;11055:1;11048:8;;;;;10980:88;11080:12;-1:-1:-1;;11122:16:0;;11149:428;11164:5;11156:13;;:5;:13;;;11149:428;;;11228:1;11211:13;;;11210:19;;;11202:27;;11271:20;;:::i;:::-;-1:-1:-1;;;;;;11294:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;11271:51;;;;;;;;;;;;;;;-1:-1:-1;;;11271:51:0;;;-1:-1:-1;;;;;11271:51:0;;;;;;;;;11341:27;;11337:229;;;11396:8;;;;-1:-1:-1;11389:15:0;;-1:-1:-1;;;;11389:15:0;11337:229;11430:12;;:26;;;-1:-1:-1;11426:140:0;;;11485:6;11477:14;;11426:140;;;11549:1;11540:6;:10;11532:18;;11426:140;11149:428;;;;;-1:-1:-1;;;;;;11594:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;-1:-1:-1;;;;;;;;11594:33:0;;;;;-1:-1:-1;;10418:1217:0;;;;:::o;2014:39::-;;;;;;;;;;;;;:::o;270:37::-;;;;;;;;;;;;;;-1:-1:-1;;;270:37:0;;;;:::o;5854:448::-;5938:4;5955:16;5974:60;5981:12;5974:60;;;;;;;;;;;;;;;;;:6;:60::i;:::-;6078:10;6045:13;6067:22;;;;;;;;;;;-1:-1:-1;;;;;6067:31:0;;;;;;;;;;6061:107;;;;;;;;;;;;5955:79;;-1:-1:-1;6045:13:0;;6061:107;;-1:-1:-1;;;;;6067:31:0;;5955:79;;6061:107;;;;;;;:5;:107::i;6877:237::-;6942:4;6959:13;6975:58;6982:9;6975:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;6959:74;;7044:40;7060:10;7072:3;7077:6;7044:15;:40::i;:::-;-1:-1:-1;7102:4:0;;6877:237;-1:-1:-1;;;6877:237:0:o;9765:222::-;-1:-1:-1;;;;;9871:23:0;;9830:6;9871:23;;;:14;:23;;;;;;;;9912:16;:67;;9978:1;9912:67;;;-1:-1:-1;;;;;9931:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;9952:16:0;;9931:38;;;;;;;;;:44;-1:-1:-1;;;9931:44:0;;-1:-1:-1;;;;;9931:44:0;9912:67;9905:74;9765:222;-1:-1:-1;;;9765:222:0:o;8778:786::-;8974:4;;;;;;;;;;;;-1:-1:-1;;;8974:4:0;;;;;8894:23;1415:80;8958:22;8982:12;:10;:12::i;:::-;9004:4;8930:80;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8920:91;;;;;;8894:117;;9022:18;1635:71;9085:9;9096:5;9103:6;9053:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9043:68;;;;;;9022:89;;9122:14;9178:15;9195:10;9149:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9139:68;;;;;;9122:85;;9218:17;9238:26;9248:6;9256:1;9259;9262;9238:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9238:26:0;;-1:-1:-1;;9238:26:0;;;-1:-1:-1;;;;;;;9283:23:0;;9275:73;;;;-1:-1:-1;;;9275:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9376:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;9367:28;;9359:74;;;;-1:-1:-1;;;9359:74:0;;;;;;;:::i;:::-;9459:6;9452:3;:13;;9444:63;;;;-1:-1:-1;;;9444:63:0;;;;;;;:::i;:::-;9525:31;9535:9;9546;9525;:31::i;:::-;9518:38;;;;8778:786;;;;;;;:::o;4338:1050::-;4468:13;-1:-1:-1;;4496:9:0;:21;4492:171;;;-1:-1:-1;;;4492:171:0;;;4595:56;4602:9;4595:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;4586:65;;4492:171;4755:4;;;;;;;;;;;;-1:-1:-1;;;4755:4:0;;;;;4675:23;1415:80;4739:22;4763:12;:10;:12::i;:::-;4785:4;4711:80;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4711:80:0;;;;;;;;;4701:91;;4711:80;4701:91;;;;-1:-1:-1;;;;;4889:13:0;;4803:18;4889:13;;;:6;:13;;;;;:15;;;;;;;;4701:91;;-1:-1:-1;4803:18:0;;4834:81;;1838:95;;4862:5;;4869:7;;4878:9;;4889:15;;4906:8;;4834:81;;:::i;:::-;;;;;;;;;;;;;4824:92;;;;;;4803:113;;4927:14;4983:15;5000:10;4954:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4944:68;;;;;;4927:85;;5023:17;5043:26;5053:6;5061:1;5064;5067;5043:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5043:26:0;;-1:-1:-1;;5043:26:0;;;-1:-1:-1;;;;;;;5088:23:0;;5080:66;;;;-1:-1:-1;;;5080:66:0;;;;;;;:::i;:::-;5178:5;-1:-1:-1;;;;;5165:18:0;:9;-1:-1:-1;;;;;5165:18:0;;5157:56;;;;-1:-1:-1;;;5157:56:0;;;;;;;:::i;:::-;5239:8;5232:3;:15;;5224:58;;;;-1:-1:-1;;;5224:58:0;;;;;;;:::i;:::-;5324:6;5295:10;:17;5306:5;-1:-1:-1;;;;;5295:17:0;-1:-1:-1;;;;;5295:17:0;;;;;;;;;;;;:26;5313:7;-1:-1:-1;;;;;5295:26:0;-1:-1:-1;;;;;5295:26:0;;;;;;;;;;;;;:35;;;;;-1:-1:-1;;;;;5295:35:0;;;;;-1:-1:-1;;;;;5295:35:0;;;;;;5364:7;-1:-1:-1;;;;;5348:32:0;5357:5;-1:-1:-1;;;;;5348:32:0;-1:-1:-1;;;;;;;;;;;5373:6:0;5348:32;;;;;;:::i;:::-;;;;;;;;4338:1050;;;;;;;;;;;;:::o;3297:136::-;-1:-1:-1;;;;;3397:19:0;;;3373:4;3397:19;;;;;;;;;;;:28;;;;;;;;;;;;-1:-1:-1;;;;;3397:28:0;;3297:136::o;1589:117::-;1635:71;1589:117;:::o;1112:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1112:70:0;;-1:-1:-1;;;;;1112:70:0;;:::o;14394:161::-;14469:6;14507:12;-1:-1:-1;;;14496:9:0;;14488:32;;;;-1:-1:-1;;;14488:32:0;;;;;;;;:::i;:::-;-1:-1:-1;14545:1:0;;14394:161;-1:-1:-1;;14394:161:0:o;14759:165::-;14845:6;14877:1;-1:-1:-1;;;;;14872:6:0;:1;-1:-1:-1;;;;;14872:6:0;;;14880:12;14864:29;;;;;-1:-1:-1;;;14864:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;14911:5:0;;;14759:165::o;12026:610::-;-1:-1:-1;;;;;12120:17:0;;12112:89;;;;-1:-1:-1;;;12112:89:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12220:17:0;;12212:87;;;;-1:-1:-1;;;12212:87:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12334:13:0;;;;;;:8;:13;;;;;;;;;;12328:85;;;;;;;;;;;;;;-1:-1:-1;;;;;12334:13:0;;;;12349:6;;12328:85;;;;;;;:5;:85::i;:::-;-1:-1:-1;;;;;12312:13:0;;;;;;;:8;:13;;;;;;;;:101;;-1:-1:-1;;;;;;12312:101:0;-1:-1:-1;;;;;12312:101:0;;;;;;12446:13;;;;;;;;;;12440:79;;;;;;;;;;;;;;12446:13;;;;;12461:6;;12440:79;;;;;;;;:5;:79::i;:::-;-1:-1:-1;;;;;12424:13:0;;;;;;;:8;:13;;;;;;;:95;;-1:-1:-1;;;;;;12424:95:0;-1:-1:-1;;;;;12424:95:0;;;;;;;;;;;12535:26;;;;;;;;;;12554:6;;12535:26;:::i;:::-;;;;;;;;-1:-1:-1;;;;;12589:14:0;;;;;;;:9;:14;;;;;;;12605;;;;;;;;12574:54;;12589:14;;;;12605;12621:6;12574:14;:54::i;:::-;12026:610;;;:::o;14563:188::-;14649:6;14679:5;;;14711:12;-1:-1:-1;;;;;14703:6:0;;;;;;;;14695:29;;;;-1:-1:-1;;;14695:29:0;;;;;;;;:::i;:::-;-1:-1:-1;14742:1:0;14563:188;-1:-1:-1;;;;14563:188:0:o;11643:375::-;-1:-1:-1;;;;;11746:20:0;;;11720:23;11746:20;;;:9;:20;;;;;;;;;;;11803:19;;;;;;11833:20;;;;:32;;;-1:-1:-1;;;;;;11833:32:0;;;;;;;11883:54;;11746:20;;;;;-1:-1:-1;;;;;11803:19:0;;;;11833:32;;11746:20;;;11883:54;;11720:23;11883:54;11950:60;11965:15;11982:9;11993:16;11950:14;:60::i;:::-;11643:375;;;;:::o;14932:153::-;15042:9;14932:153;:::o;12644:937::-;12749:6;-1:-1:-1;;;;;12739:16:0;:6;-1:-1:-1;;;;;12739:16:0;;;:30;;;;;12768:1;12759:6;-1:-1:-1;;;;;12759:10:0;;12739:30;12735:839;;;-1:-1:-1;;;;;12790:20:0;;;12786:381;;-1:-1:-1;;;;;12850:22:0;;12831:16;12850:22;;;:14;:22;;;;;;;;;12910:13;:60;;12969:1;12910:60;;;-1:-1:-1;;;;;12926:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;12946:13:0;;12926:34;;;;;;;;;:40;-1:-1:-1;;;12926:40:0;;-1:-1:-1;;;;;12926:40:0;12910:60;12891:79;;12989:16;13008:67;13014:9;13025:6;13008:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;12989:86;;13094:57;13111:6;13119:9;13130;13141;13094:16;:57::i;:::-;12786:381;;;;-1:-1:-1;;;;;13187:20:0;;;13183:380;;-1:-1:-1;;;;;13247:22:0;;13228:16;13247:22;;;:14;:22;;;;;;;;;13307:13;:60;;13366:1;13307:60;;;-1:-1:-1;;;;;13323:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;13343:13:0;;13323:34;;;;;;;;;:40;-1:-1:-1;;;13323:40:0;;-1:-1:-1;;;;;13323:40:0;13307:60;13288:79;;13386:16;13405:66;13411:9;13422:6;13405:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;13386:85;;13490:57;13507:6;13515:9;13526;13537;13589:628;13707:18;13728:75;13735:12;13728:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;13707:96;;13833:1;13818:12;:16;;;:85;;;;-1:-1:-1;;;;;;13838:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;13861:16:0;;13838:40;;;;;;;;;:50;:65;;;:50;;:65;13818:85;13814:329;;;-1:-1:-1;;;;;13918:22:0;;;;;;:11;:22;;;;;;;;-1:-1:-1;;13941:16:0;;13918:40;;;;;;;;;:57;;-1:-1:-1;;13918:57:0;-1:-1:-1;;;;;;;;13918:57:0;;;;;;13814:329;;;14043:33;;;;;;;;;;;;;;-1:-1:-1;;;;;14043:33:0;;;;;;;;;;-1:-1:-1;;;;;14004:22:0;;-1:-1:-1;14004:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;;;-1:-1:-1;;;14004:72:0;-1:-1:-1;;14004:72:0;;;-1:-1:-1;;14004:72:0;;;;;;;;;;;;;;;14089:25;;;14004:72;14089:25;;;;;;;:44;;14004:72;14117:16;;14089:44;;;;;;;;;;;;;13814:329;14179:9;-1:-1:-1;;;;;14158:51:0;;14190:8;14200;14158:51;;;;;;;:::i;:::-;;;;;;;;13589:628;;;;;:::o;14225:161::-;14300:6;14338:12;-1:-1:-1;;;14327:9:0;;14319:32;;;;-1:-1:-1;;;14319:32:0;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;5:130::-;72:20;;-1:-1;;;;;20150:54;;21224:35;;21214:2;;21273:1;;21263:12;551:126;616:20;;20461:4;20450:16;;21716:33;;21706:2;;21763:1;;21753:12;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;-1:-1;;794:12;756:2;856:53;901:7;877:22;856:53;:::i;932:366::-;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;-1:-1;;1059:12;1021:2;1121:53;1166:7;1142:22;1121:53;:::i;:::-;1111:63;;1229:53;1274:7;1211:2;1254:9;1250:22;1229:53;:::i;:::-;1219:63;;1015:283;;;;;:::o;1305:491::-;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;-1:-1;;1449:12;1411:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1501:63;-1:-1;1601:2;1640:22;;72:20;97:33;72:20;97:33;:::i;:::-;1405:391;;1609:63;;-1:-1;;;1709:2;1748:22;;;;346:20;;1405:391::o;1803:991::-;;;;;;;;2007:3;1995:9;1986:7;1982:23;1978:33;1975:2;;;-1:-1;;2014:12;1975:2;2076:53;2121:7;2097:22;2076:53;:::i;:::-;2066:63;;2184:53;2229:7;2166:2;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2274:2;2317:9;2313:22;346:20;2282:63;;2382:2;2425:9;2421:22;346:20;2390:63;;2509:51;2552:7;2490:3;2532:9;2528:22;2509:51;:::i;:::-;2499:61;;2597:3;2641:9;2637:22;209:20;2606:63;;2706:3;2750:9;2746:22;209:20;2715:63;;1969:825;;;;;;;;;;:::o;2801:366::-;;;2922:2;2910:9;2901:7;2897:23;2893:32;2890:2;;;-1:-1;;2928:12;2890:2;2990:53;3035:7;3011:22;2990:53;:::i;:::-;2980:63;3080:2;3119:22;;;;346:20;;-1:-1;;;2884:283::o;3174:865::-;;;;;;;3361:3;3349:9;3340:7;3336:23;3332:33;3329:2;;;-1:-1;;3368:12;3329:2;3430:53;3475:7;3451:22;3430:53;:::i;:::-;3420:63;;3520:2;3563:9;3559:22;346:20;3528:63;;3628:2;3671:9;3667:22;346:20;3636:63;;3754:51;3797:7;3736:2;3777:9;3773:22;3754:51;:::i;:::-;3744:61;;3842:3;3886:9;3882:22;209:20;3851:63;;3951:3;3995:9;3991:22;209:20;3960:63;;3323:716;;;;;;;;:::o;4046:364::-;;;4166:2;4154:9;4145:7;4141:23;4137:32;4134:2;;;-1:-1;;4172:12;4134:2;4234:53;4279:7;4255:22;4234:53;:::i;:::-;4224:63;;4324:2;4366:9;4362:22;482:20;20367:10;21622:5;20356:22;21598:5;21595:34;21585:2;;-1:-1;;21633:12;21585:2;4332:62;;;;4128:282;;;;;:::o;9636:659::-;-1:-1;;;5557:87;;5542:1;5663:11;;4719:37;;;;10147:12;;;4719:37;10258:12;;;9881:414::o;10302:222::-;-1:-1;;;;;20150:54;;;;4488:37;;10429:2;10414:18;;10400:124::o;10531:210::-;19983:13;;19976:21;4602:34;;10652:2;10637:18;;10623:118::o;10748:222::-;4719:37;;;10875:2;10860:18;;10846:124::o;10977:780::-;4719:37;;;-1:-1;;;;;20150:54;;;11409:2;11394:18;;4488:37;20150:54;;;;11492:2;11477:18;;4488:37;11575:2;11560:18;;4719:37;11658:3;11643:19;;4719:37;;;;20161:42;11727:19;;4719:37;11244:3;11229:19;;11215:542::o;11764:556::-;4719:37;;;-1:-1;;;;;20150:54;;;;12140:2;12125:18;;4488:37;12223:2;12208:18;;4719:37;12306:2;12291:18;;4719:37;11975:3;11960:19;;11946:374::o;12327:556::-;4719:37;;;12703:2;12688:18;;4719:37;;;;12786:2;12771:18;;4719:37;-1:-1;;;;;20150:54;12869:2;12854:18;;4488:37;12538:3;12523:19;;12509:374::o;12890:548::-;4719:37;;;20461:4;20450:16;;;;13258:2;13243:18;;9341:35;13341:2;13326:18;;4719:37;13424:2;13409:18;;4719:37;13097:3;13082:19;;13068:370::o;13445:310::-;;13592:2;;13613:17;13606:47;5072:5;19452:12;19609:6;13592:2;13581:9;13577:18;19597:19;-1:-1;20775:101;20789:6;20786:1;20783:13;20775:101;;;20856:11;;;;;20850:18;20837:11;;;19637:14;20837:11;20830:39;20804:10;;20775:101;;;20891:6;20888:1;20885:13;20882:2;;;-1:-1;19637:14;20947:6;13581:9;20938:16;;20931:27;20882:2;-1:-1;21144:7;21128:14;-1:-1;;21124:28;5230:39;;;;19637:14;5230:39;;13563:192;-1:-1;;;13563:192::o;13762:416::-;13962:2;13976:47;;;5913:2;13947:18;;;19597:19;5949:34;19637:14;;;5929:55;-1:-1;;;6004:12;;;5997:25;6041:12;;;13933:245::o;14185:416::-;14385:2;14399:47;;;6292:2;14370:18;;;19597:19;6328:32;19637:14;;;6308:53;6380:12;;;14356:245::o;14608:416::-;14808:2;14822:47;;;6631:2;14793:18;;;19597:19;6667:34;19637:14;;;6647:55;-1:-1;;;6722:12;;;6715:30;6764:12;;;14779:245::o;15031:416::-;15231:2;15245:47;;;7015:2;15216:18;;;19597:19;7051:27;19637:14;;;7031:48;7098:12;;;15202:245::o;15454:416::-;15654:2;15668:47;;;7349:2;15639:18;;;19597:19;7385:34;19637:14;;;7365:55;-1:-1;;;7440:12;;;7433:29;7481:12;;;15625:245::o;15877:416::-;16077:2;16091:47;;;7732:2;16062:18;;;19597:19;7768:32;19637:14;;;7748:53;7820:12;;;16048:245::o;16300:416::-;16500:2;16514:47;;;8071:2;16485:18;;;19597:19;8107:34;19637:14;;;8087:55;8176:29;8162:12;;;8155:51;8225:12;;;16471:245::o;16723:416::-;16923:2;16937:47;;;8476:2;16908:18;;;19597:19;8512:34;19637:14;;;8492:55;8581:27;8567:12;;;8560:49;8628:12;;;16894:245::o;17146:416::-;17346:2;17360:47;;;8879:2;17331:18;;;19597:19;8915:34;19637:14;;;8895:55;-1:-1;;;8970:12;;;8963:29;9011:12;;;17317:245::o;17798:218::-;20367:10;20356:22;;;;9226:36;;17923:2;17908:18;;17894:122::o;18023:325::-;20367:10;20356:22;;;;9226:36;;-1:-1;;;;;20539:38;18334:2;18319:18;;9588:36;18174:2;18159:18;;18145:203::o;18355:214::-;20461:4;20450:16;;;;9341:35;;18478:2;18463:18;;18449:120::o;18576:220::-;-1:-1;;;;;20539:38;;;;9458:49;;18702:2;18687:18;;18673:123::o;19028:329::-;-1:-1;;;;;20539:38;;;9458:49;;20539:38;;19343:2;19328:18;;9458:49;19181:2;19166:18;;19152:205::o;21165:117::-;-1:-1;;;;;20150:54;;21224:35;;21214:2;;21273:1;;21263:12

Swarm Source

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