Token ESG

 

Overview [ERC-20]

Max Total Supply:
49,000,000 ESG

Holders:
3,713

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ESG

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2022-01-21
*/

pragma solidity ^0.5.16;

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

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

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

    /// @notice Total number of tokens in circulation
    uint public constant totalSupply = 49000000e18; // 49 million ESG in Ethereum

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

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

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

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

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

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

    /// @notice The EIP-712 typehash for the contract's domain
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    /// @notice The EIP-712 typehash for the delegation struct used by the contract
    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

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

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

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

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

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

    /**
     * @notice Construct a new ESG 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(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) {
            amount = uint96(0xffffffffffffffffffffffff);
        } else {
            amount = safe96(rawAmount, "ESG::approve: amount exceeds 96 bits");
        }

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

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

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

    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `dst`
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transfer(address dst, uint rawAmount) external returns (bool) {
        uint96 amount = safe96(rawAmount, "ESG::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, "ESG::transferFrom: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(0xffffffffffffffffffffffff)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "ESG::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) external {
        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) external {
        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), "ESG::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "ESG::delegateBySig: invalid nonce");
        require(block.timestamp <= expiry, "ESG::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) external view returns (uint96) {
        require(blockNumber < block.number, "ESG::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), "ESG::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "ESG::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "ESG::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "ESG::_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, "ESG::_moveDelegates: 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, "ESG::_moveDelegates: vote amount overflows");
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {
      uint32 blockNumber = safe32(block.number, "ESG::_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"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051612bf4380380612bf48339818101604052602081101561003357600080fd5b81019080805190602001909291905050506a2888275295397bd1000000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a2888275295397bd10000006040518082815260200191505060405180910390a350612ab68061013e6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063b4b5ea5711610071578063b4b5ea5714610638578063c3cda520146106ac578063dd62ed3e14610725578063e7a324dc1461079d578063f1127ed8146107bb57610121565b806370a0823114610421578063782d6fe1146104795780637ecebe00146104f757806395d89b411461054f578063a9059cbb146105d257610121565b806323b872dd116100f457806323b872dd1461024b578063313ce567146102d1578063587cde1e146102f55780635c19a95c146103795780636fcfff45146103bd57610121565b806306fdde0314610126578063095ea7b3146101a957806318160ddd1461020f57806320606b701461022d575b600080fd5b61012e610852565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016e578082015181840152602081019050610153565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f5600480360360408110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061088b565b604051808215151515815260200191505060405180910390f35b610217610a17565b6040518082815260200191505060405180910390f35b610235610a26565b6040518082815260200191505060405180910390f35b6102b76004803603606081101561026157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a42565b604051808215151515815260200191505060405180910390f35b6102d9610cc2565b604051808260ff1660ff16815260200191505060405180910390f35b6103376004803603602081101561030b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103bb6004803603602081101561038f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfa565b005b6103ff600480360360208110156103d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d07565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6104636004803603602081101561043757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d2a565b6040518082815260200191505060405180910390f35b6104c56004803603604081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d99565b60405180826bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200191505060405180910390f35b6105396004803603602081101561050d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111c2565b6040518082815260200191505060405180910390f35b6105576111da565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561059757808201518184015260208101905061057c565b50505050905090810190601f1680156105c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61061e600480360360408110156105e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611213565b604051808215151515815260200191505060405180910390f35b61067a6004803603602081101561064e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611250565b60405180826bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200191505060405180910390f35b610723600480360360c08110156106c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061133e565b005b6107876004803603604081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ef565b6040518082815260200191505060405180910390f35b6107a561179b565b6040518082815260200191505060405180910390f35b61080d600480360360408110156107d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff1690602001909291905050506117b7565b604051808363ffffffff1663ffffffff168152602001826bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019250505060405180910390f35b6040518060400160405280600381526020017f455347000000000000000000000000000000000000000000000000000000000081525081565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8314156108ca576bffffffffffffffffffffffff90506108ef565b6108ec8360405180606001604052806024815260200161280360249139611810565b90505b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405180826bffffffffffffffffffffffff16815260200191505060405180910390a3600191505092915050565b6a2888275295397bd100000081565b60405180806129a4604391396043019050604051809103902081565b60008033905060008060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff1690506000610b048560405180606001604052806029815260200161282760299139611810565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610b5e57506bffffffffffffffffffffffff8016826bffffffffffffffffffffffff1614155b15610ca9576000610b8883836040518060600160405280603c8152602001612a46603c91396118d3565b9050806000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405180826bffffffffffffffffffffffff16815260200191505060405180910390a3505b610cb48787836119a9565b600193505050509392505050565b601281565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d043382611dc4565b50565b60046020528060005260406000206000915054906101000a900463ffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b6000438210610df3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128e86026913960400191505060405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610e605760009150506111bc565b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610f6257600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff169150506111bc565b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610fe35760009150506111bc565b600080905060006001830390505b8163ffffffff168163ffffffff16111561113e576000600283830363ffffffff168161101957fe5b0482039050611026612737565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415611116578060200151955050505050506111bc565b86816000015163ffffffff16101561113057819350611137565b6001820392505b5050610ff1565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60056020528060005260406000206000915090505481565b6040518060400160405280600381526020017f455347000000000000000000000000000000000000000000000000000000000081525081565b6000806112388360405180606001604052806025815260200161290e60259139611810565b90506112453385836119a9565b600191505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116112ba576000611336565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b600060405180806129a460439139604301905060405180910390206040518060400160405280600381526020017f45534700000000000000000000000000000000000000000000000000000000008152508051906020012061139e611f84565b30604051602001808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050604051602081830303815290604052805190602001209050600060405180806129e7603a9139603a0190506040518091039020888888604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019450505050506040516020818303038152906040528051906020012090506000828260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611549573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a216025913960400191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914611680576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806129586021913960400191505060405180910390fd5b874211156116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806129336025913960400191505060405180910390fd5b6116e3818b611dc4565b50505050505050505050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b60405180806129e7603a9139603a019050604051809103902081565b6003602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c01000000000000000000000000831082906118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561188e578082015181840152602081019050611873565b50505050905090810190601f1680156118bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff161115829061199c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611961578082015181840152602081019050611946565b50505050905090810190601f16801561198e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180612850603b913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ab5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806127ca6039913960400191505060405180910390fd5b611b2f600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff1682604051806060016040528060358152602001612766603591396118d3565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550611c16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280602f815260200161279b602f9139611f91565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405180826bffffffffffffffffffffffff16815260200191505060405180910390a3611dbf600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361206c565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611f7e82848361206c565b50505050565b6000804690508091505090565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390612060576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202557808201518184015260208101905061200a565b50505050905090810190601f1680156120525780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120b657506000816bffffffffffffffffffffffff16115b1561236257600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461220e576000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116121595760006121d5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006121fc82856040518060600160405280602b8152602001612979602b91396118d3565b905061220a86848484612367565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612361576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116122ac576000612328565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061234f82856040518060600160405280602a815260200161288b602a9139611f91565b905061235d85848484612367565b5050505b5b505050565b600061238b436040518060600160405280603381526020016128b56033913961267c565b905060008463ffffffff1611801561242057508063ffffffff16600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156124bb5781600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612603565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405180836bffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff1681526020019250505060405180910390a25050505050565b60006401000000008310829061272d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156126f25780820151818401526020810190506126d7565b50505050905090810190601f16801561271f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff168152509056fe4553473a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e63654553473a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77734553473a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f20616464726573734553473a3a617070726f76653a20616d6f756e74206578636565647320393620626974734553473a3a7472616e7366657246726f6d3a20616d6f756e74206578636565647320393620626974734553473a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f20616464726573734553473a3a5f6d6f766544656c6567617465733a20766f746520616d6f756e74206f766572666c6f77734553473a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974734553473a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e65644553473a3a7472616e736665723a20616d6f756e74206578636565647320393620626974734553473a3a64656c656761746542795369673a207369676e617475726520657870697265644553473a3a64656c656761746542795369673a20696e76616c6964206e6f6e63654553473a3a5f6d6f766544656c6567617465733a20766f746520616d6f756e7420756e646572666c6f7773454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742944656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e7432353620657870697279294553473a3a64656c656761746542795369673a20696e76616c6964207369676e61747572654553473a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365a265627a7a723158207a561919745063e598a99d12fe08a41f53db12ad869013da73e80c1b6d1c676364736f6c634300051000320000000000000000000000001772c72f50ed1740f7336bf3bb4bb990105fbe0d

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

0000000000000000000000001772c72f50ed1740f7336bf3bb4bb990105fbe0d

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001772c72f50ed1740f7336bf3bb4bb990105fbe0d


Deployed ByteCode Sourcemap

28:12963:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28:12963:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;98:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;98:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3644:506;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3644:506:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;393:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1334:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5272:699;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5272:699:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;294:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;784:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;784:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6119:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6119:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1212:49;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1212:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4353:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4353:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8311:1219;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8311:1219:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1748:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1748:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;194:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;194:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4725:237;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4725:237:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7658:222;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7658:222:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6657:800;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6657:800:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3030:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3030:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1550:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1073:70;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1073:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;98:35;;;;;;;;;;;;;;;;;;;:::o;3644:506::-;3712:4;3729:13;3775:66;3757:9;:85;3753:260;;;3875:26;3859:43;;3753:260;;;3944:57;3951:9;3944:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;3935:66;;3753:260;4059:6;4025:10;:22;4036:10;4025:22;;;;;;;;;;;;;;;:31;4048:7;4025:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;4104:7;4083:37;;4092:10;4083:37;;;4113:6;4083:37;;;;;;;;;;;;;;;;;;;;4138:4;4131:11;;;3644:506;;;;:::o;393:46::-;428:11;393:46;:::o;1334:122::-;1376:80;;;;;;;;;;;;;;;;;;;1334:122;:::o;5272:699::-;5354:4;5371:15;5389:10;5371:28;;5410:23;5436:10;:15;5447:3;5436:15;;;;;;;;;;;;;;;:24;5452:7;5436:24;;;;;;;;;;;;;;;;;;;;;;;;;5410:50;;5471:13;5487:62;5494:9;5487:62;;;;;;;;;;;;;;;;;:6;:62::i;:::-;5471:78;;5577:3;5566:14;;:7;:14;;;;:72;;;;;5611:26;5584:54;;:16;:54;;;;5566:72;5562:334;;;5655:19;5677:95;5683:16;5701:6;5677:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;5655:117;;5814:12;5787:10;:15;5798:3;5787:15;;;;;;;;;;;;;;;:24;5803:7;5787:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;5862:7;5848:36;;5857:3;5848:36;;;5871:12;5848:36;;;;;;;;;;;;;;;;;;;;5562:334;;5908:33;5924:3;5929;5934:6;5908:15;:33::i;:::-;5959:4;5952:11;;;;;5272:699;;;;;:::o;294:35::-;327:2;294:35;:::o;784:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6119:104::-;6183:32;6193:10;6205:9;6183;:32::i;:::-;6119:104;:::o;1212:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4353:108::-;4412:4;4436:8;:17;4445:7;4436:17;;;;;;;;;;;;;;;;;;;;;;;;;4429:24;;;;4353:108;;;:::o;8311:1219::-;8392:6;8433:12;8419:11;:26;8411:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8501:19;8523:14;:23;8538:7;8523:23;;;;;;;;;;;;;;;;;;;;;;;;;8501:45;;8577:1;8561:12;:17;;;8557:58;;;8602:1;8595:8;;;;;8557:58;8727:11;8675;:20;8687:7;8675:20;;;;;;;;;;;;;;;:38;8711:1;8696:12;:16;8675:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;8671:147;;8762:11;:20;8774:7;8762:20;;;;;;;;;;;;;;;:38;8798:1;8783:12;:16;8762:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;8755:51;;;;;8671:147;8915:11;8879;:20;8891:7;8879:20;;;;;;;;;;;;;;;:23;8900:1;8879:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;8875:88;;;8950:1;8943:8;;;;;8875:88;8975:12;8990:1;8975:16;;9002:12;9032:1;9017:12;:16;9002:31;;9044:428;9059:5;9051:13;;:5;:13;;;9044:428;;;9081:13;9123:1;9114:5;9106;:13;9105:19;;;;;;;;9097:5;:27;9081:43;;9166:20;;:::i;:::-;9189:11;:20;9201:7;9189:20;;;;;;;;;;;;;;;:28;9210:6;9189:28;;;;;;;;;;;;;;;9166:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9252:11;9236:2;:12;;;:27;;;9232:229;;;9291:2;:8;;;9284:15;;;;;;;;;9232:229;9340:11;9325:2;:12;;;:26;;;9321:140;;;9380:6;9372:14;;9321:140;;;9444:1;9435:6;:10;9427:18;;9321:140;9044:428;;;;;9489:11;:20;9501:7;9489:20;;;;;;;;;;;;;;;:27;9510:5;9489:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;9482:40;;;;;8311:1219;;;;;:::o;1748:39::-;;;;;;;;;;;;;;;;;:::o;194:37::-;;;;;;;;;;;;;;;;;;;:::o;4725:237::-;4790:4;4807:13;4823:58;4830:9;4823:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;4807:74;;4892:40;4908:10;4920:3;4925:6;4892:15;:40::i;:::-;4950:4;4943:11;;;4725:237;;;;:::o;7658:222::-;7723:6;7742:19;7764:14;:23;7779:7;7764:23;;;;;;;;;;;;;;;;;;;;;;;;;7742:45;;7820:1;7805:12;:16;;;:67;;7871:1;7805:67;;;7824:11;:20;7836:7;7824:20;;;;;;;;;;;;;;;:38;7860:1;7845:12;:16;7824:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;7805:67;7798:74;;;7658:222;;;:::o;6657:800::-;6775:23;1376:80;;;;;;;;;;;;;;;;;;;6855:4;;;;;;;;;;;;;;;;;6839:22;;;;;;6863:12;:10;:12::i;:::-;6885:4;6811:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6811:80:0;;;6801:91;;;;;;6775:117;;6903:18;1596:71;;;;;;;;;;;;;;;;;;;6966:9;6977:5;6984:6;6934:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6934:57:0;;;6924:68;;;;;;6903:89;;7003:14;7059:15;7076:10;7030:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7030:57:0;;;7020:68;;;;;;7003:85;;7099:17;7119:26;7129:6;7137:1;7140;7143;7119:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7119:26:0;;;;;;;;7099:46;;7185:1;7164:23;;:9;:23;;;;7156:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7257:6;:17;7264:9;7257:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;7248:5;:28;7240:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7352:6;7333:15;:25;;7325:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7418:31;7428:9;7439;7418;:31::i;:::-;7411:38;;;;6657:800;;;;;;:::o;3030:136::-;3106:4;3130:10;:19;3141:7;3130:19;;;;;;;;;;;;;;;:28;3150:7;3130:28;;;;;;;;;;;;;;;;;;;;;;;;;3123:35;;;;3030:136;;;;:::o;1550:117::-;1596:71;;;;;;;;;;;;;;;;;;;1550:117;:::o;1073:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12297:161::-;12372:6;12403:5;12399:1;:9;12410:12;12391:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12391:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12448:1;12434:16;;12297:161;;;;:::o;12662:165::-;12748:6;12780:1;12775:6;;:1;:6;;;;12783:12;12767:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12767:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12818:1;12814;:5;12807:12;;12662:165;;;;;:::o;9921:610::-;10030:1;10015:17;;:3;:17;;;;10007:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10130:1;10115:17;;:3;:17;;;;10107:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10223:85;10229:8;:13;10238:3;10229:13;;;;;;;;;;;;;;;;;;;;;;;;;10244:6;10223:85;;;;;;;;;;;;;;;;;:5;:85::i;:::-;10207:8;:13;10216:3;10207:13;;;;;;;;;;;;;;;;:101;;;;;;;;;;;;;;;;;;10335:79;10341:8;:13;10350:3;10341:13;;;;;;;;;;;;;;;;;;;;;;;;;10356:6;10335:79;;;;;;;;;;;;;;;;;:5;:79::i;:::-;10319:8;:13;10328:3;10319:13;;;;;;;;;;;;;;;;:95;;;;;;;;;;;;;;;;;;10444:3;10430:26;;10439:3;10430:26;;;10449:6;10430:26;;;;;;;;;;;;;;;;;;;;10469:54;10484:9;:14;10494:3;10484:14;;;;;;;;;;;;;;;;;;;;;;;;;10500:9;:14;10510:3;10500:14;;;;;;;;;;;;;;;;;;;;;;;;;10516:6;10469:14;:54::i;:::-;9921:610;;;:::o;9538:375::-;9615:23;9641:9;:20;9651:9;9641:20;;;;;;;;;;;;;;;;;;;;;;;;;9615:46;;9672:23;9698:8;:19;9707:9;9698:19;;;;;;;;;;;;;;;;;;;;;;;;;9672:45;;9751:9;9728;:20;9738:9;9728:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;9822:9;9778:54;;9805:15;9778:54;;9794:9;9778:54;;;;;;;;;;;;9845:60;9860:15;9877:9;9888:16;9845:14;:60::i;:::-;9538:375;;;;:::o;12835:153::-;12880:4;12897:15;12945:9;12934:20;;12973:7;12966:14;;;12835:153;:::o;12466:188::-;12552:6;12571:8;12586:1;12582;:5;12571:16;;12611:1;12606:6;;:1;:6;;;;12614:12;12598:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12598:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12645:1;12638:8;;;12466:188;;;;;:::o;10539:945::-;10644:6;10634:16;;:6;:16;;;;:30;;;;;10663:1;10654:6;:10;;;10634:30;10630:847;;;10703:1;10685:20;;:6;:20;;;10681:385;;10726:16;10745:14;:22;10760:6;10745:22;;;;;;;;;;;;;;;;;;;;;;;;;10726:41;;10786:16;10817:1;10805:9;:13;;;:60;;10864:1;10805:60;;;10821:11;:19;10833:6;10821:19;;;;;;;;;;;;;;;:34;10853:1;10841:9;:13;10821:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;10805:60;10786:79;;10884:16;10903:71;10909:9;10920:6;10903:71;;;;;;;;;;;;;;;;;:5;:71::i;:::-;10884:90;;10993:57;11010:6;11018:9;11029;11040;10993:16;:57::i;:::-;10681:385;;;;11104:1;11086:20;;:6;:20;;;11082:384;;11127:16;11146:14;:22;11161:6;11146:22;;;;;;;;;;;;;;;;;;;;;;;;;11127:41;;11187:16;11218:1;11206:9;:13;;;:60;;11265:1;11206:60;;;11222:11;:19;11234:6;11222:19;;;;;;;;;;;;;;;:34;11254:1;11242:9;:13;11222:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;11206:60;11187:79;;11285:16;11304:70;11310:9;11321:6;11304:70;;;;;;;;;;;;;;;;;:5;:70::i;:::-;11285:89;;11393:57;11410:6;11418:9;11429;11440;11393:16;:57::i;:::-;11082:384;;;;10630:847;10539:945;;;:::o;11492:628::-;11610:18;11631:75;11638:12;11631:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;11610:96;;11736:1;11721:12;:16;;;:85;;;;;11795:11;11741:65;;:11;:22;11753:9;11741:22;;;;;;;;;;;;;;;:40;11779:1;11764:12;:16;11741:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;11721:85;11717:329;;;11870:8;11821:11;:22;11833:9;11821:22;;;;;;;;;;;;;;;:40;11859:1;11844:12;:16;11821:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;11717:329;;;11946:33;;;;;;;;11957:11;11946:33;;;;;;11970:8;11946:33;;;;;11907:11;:22;11919:9;11907:22;;;;;;;;;;;;;;;:36;11930:12;11907:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12035:1;12020:12;:16;11992:14;:25;12007:9;11992:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;11717:329;12082:9;12061:51;;;12093:8;12103;12061:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;11492:628;;;;;:::o;12128:161::-;12203:6;12234:5;12230:1;:9;12241:12;12222:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12222:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12279:1;12265:16;;12128:161;;;;:::o;28:12963::-;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://7a561919745063e598a99d12fe08a41f53db12ad869013da73e80c1b6d1c6763

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.