ETH Price: $3,811.72 (-2.17%)
Gas: 9 Gwei

Token

ChadGPT (CHADGPT)
 

Overview

Max Total Supply

1,000,000,000 CHADGPT

Holders

547 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

OVERVIEW

ChadGPT is a memecoin and has an interesting and fun meme utility using AI chatbot.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ChadGPT

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-06-04
*/

// SPDX-License-Identifier: MIT

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

// File: token.sol


pragma solidity ^0.8.9;



abstract contract BPContract {
    function protect(address sender, address receiver, uint256 amount) external virtual;
}

contract ChadGPT is IERC20, Ownable {

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    string constant public name = "ChadGPT";
    string constant public symbol = "CHADGPT";
    uint constant public decimals = 18;
    uint256 private _totalSupply = 1 * 1E9 * 10 ** decimals;

    BPContract public BP;
    bool public bpEnabled = true;
    
    constructor() {
        _balances[msg.sender] = _totalSupply;
    }

    function totalSupply() external view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) external view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) external override returns (bool)  {
        _transfer(_msgSender(), to, amount);
        return true;
    }
    
    function allowance(address owner, address spender) external view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }


    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }


    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, this.allowance(owner, spender) + addedValue);
        return true;
    }


    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = this.allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (bpEnabled) {
            BP.protect(from, to, amount);
        }

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

    }


    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);
    }


    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = this.allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) external {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }

    function setBPAddress(address _bp) external onlyOwner {
        BP = BPContract(_bp);
    }

    function disableBP() external onlyOwner {
        require(bpEnabled);
        bpEnabled = false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BP","outputs":[{"internalType":"contract BPContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"amount","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":[],"name":"bpEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableBP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bp","type":"address"}],"name":"setBPAddress","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526012600a62000014919062000316565b633b9aca0062000025919062000367565b6003556001600460146101000a81548160ff0219169083151502179055503480156200005057600080fd5b506200007162000065620000bd60201b60201c565b620000c560201b60201c565b600354600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003b2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200021757808604811115620001ef57620001ee62000189565b5b6001851615620001ff5780820291505b80810290506200020f85620001b8565b9450620001cf565b94509492505050565b60008262000232576001905062000305565b8162000242576000905062000305565b81600181146200025b576002811462000266576200029c565b600191505062000305565b60ff8411156200027b576200027a62000189565b5b8360020a91508482111562000295576200029462000189565b5b5062000305565b5060208310610133831016604e8410600b8410161715620002d65782820a905083811115620002d057620002cf62000189565b5b62000305565b620002e58484846001620001c5565b92509050818404811115620002ff57620002fe62000189565b5b81810290505b9392505050565b6000819050919050565b600062000323826200030c565b915062000330836200030c565b92506200035f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000220565b905092915050565b600062000374826200030c565b915062000381836200030c565b925082820262000391816200030c565b91508282048414831517620003ab57620003aa62000189565b5b5092915050565b611c5f80620003c26000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806379cc6790116100ad578063a457c2d711610071578063a457c2d71461030f578063a9059cbb1461033f578063d39b7e4f1461036f578063dd62ed3e1461038b578063f2fde38b146103bb5761012c565b806379cc67901461028f5780637a59e169146102ab5780638da5cb5b146102b557806395d89b41146102d35780639cfdbd5e146102f15761012c565b8063313ce567116100f4578063313ce567146101eb578063395093511461020957806342966c681461023957806370a0823114610255578063715018a6146102855761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d57806326898da9146101cd575b600080fd5b6101396103d7565b604051610146919061123e565b60405180910390f35b610169600480360381019061016491906112f9565b610410565b6040516101769190611354565b60405180910390f35b61018761042e565b604051610194919061137e565b60405180910390f35b6101b760048036038101906101b29190611399565b610438565b6040516101c49190611354565b60405180910390f35b6101d5610467565b6040516101e29190611354565b60405180910390f35b6101f361047a565b604051610200919061137e565b60405180910390f35b610223600480360381019061021e91906112f9565b61047f565b6040516102309190611354565b60405180910390f35b610253600480360381019061024e91906113ec565b610528565b005b61026f600480360381019061026a9190611419565b61053c565b60405161027c919061137e565b60405180910390f35b61028d610585565b005b6102a960048036038101906102a491906112f9565b610599565b005b6102b36105b9565b005b6102bd6105f7565b6040516102ca9190611455565b60405180910390f35b6102db610620565b6040516102e8919061123e565b60405180910390f35b6102f9610659565b60405161030691906114cf565b60405180910390f35b610329600480360381019061032491906112f9565b61067f565b6040516103369190611354565b60405180910390f35b610359600480360381019061035491906112f9565b610768565b6040516103669190611354565b60405180910390f35b61038960048036038101906103849190611419565b610786565b005b6103a560048036038101906103a091906114ea565b6107d2565b6040516103b2919061137e565b60405180910390f35b6103d560048036038101906103d09190611419565b610859565b005b6040518060400160405280600781526020017f436861644750540000000000000000000000000000000000000000000000000081525081565b600061042461041d6108dc565b84846108e4565b6001905092915050565b6000600354905090565b6000806104436108dc565b9050610450858285610aad565b61045b858585610bab565b60019150509392505050565b600460149054906101000a900460ff1681565b601281565b60008061048a6108dc565b905061051d8185853073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e868a6040518363ffffffff1660e01b81526004016104cd92919061152a565b602060405180830381865afa1580156104ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050e9190611568565b61051891906115c4565b6108e4565b600191505092915050565b6105396105336108dc565b82610eb5565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61058d61106c565b61059760006110ea565b565b6105ab826105a56108dc565b83610aad565b6105b58282610eb5565b5050565b6105c161106c565b600460149054906101000a900460ff166105da57600080fd5b6000600460146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600781526020017f434841444750540000000000000000000000000000000000000000000000000081525081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068a6108dc565b905060003073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83876040518363ffffffff1660e01b81526004016106c992919061152a565b602060405180830381865afa1580156106e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070a9190611568565b90508381101561074f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107469061166a565b60405180910390fd5b61075c82868684036108e4565b60019250505092915050565b600061077c6107756108dc565b8484610bab565b6001905092915050565b61078e61106c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61086161106c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c7906116fc565b60405180910390fd5b6108d9816110ea565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094a9061178e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b990611820565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610aa0919061137e565b60405180910390a3505050565b60003073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e85856040518363ffffffff1660e01b8152600401610aea92919061152a565b602060405180830381865afa158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190611568565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ba55781811015610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e9061188c565b60405180910390fd5b610ba484848484036108e4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c119061191e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c80906119b0565b60405180910390fd5b600460149054906101000a900460ff1615610d3057600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e2f3afd8484846040518463ffffffff1660e01b8152600401610cfd939291906119d0565b600060405180830381600087803b158015610d1757600080fd5b505af1158015610d2b573d6000803e3d6000fd5b505050505b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90611a79565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea7919061137e565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b90611b0b565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290611b9d565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105f919061137e565b60405180910390a3505050565b6110746108dc565b73ffffffffffffffffffffffffffffffffffffffff166110926105f7565b73ffffffffffffffffffffffffffffffffffffffff16146110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df90611c09565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156111e85780820151818401526020810190506111cd565b60008484015250505050565b6000601f19601f8301169050919050565b6000611210826111ae565b61121a81856111b9565b935061122a8185602086016111ca565b611233816111f4565b840191505092915050565b600060208201905081810360008301526112588184611205565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061129082611265565b9050919050565b6112a081611285565b81146112ab57600080fd5b50565b6000813590506112bd81611297565b92915050565b6000819050919050565b6112d6816112c3565b81146112e157600080fd5b50565b6000813590506112f3816112cd565b92915050565b600080604083850312156113105761130f611260565b5b600061131e858286016112ae565b925050602061132f858286016112e4565b9150509250929050565b60008115159050919050565b61134e81611339565b82525050565b60006020820190506113696000830184611345565b92915050565b611378816112c3565b82525050565b6000602082019050611393600083018461136f565b92915050565b6000806000606084860312156113b2576113b1611260565b5b60006113c0868287016112ae565b93505060206113d1868287016112ae565b92505060406113e2868287016112e4565b9150509250925092565b60006020828403121561140257611401611260565b5b6000611410848285016112e4565b91505092915050565b60006020828403121561142f5761142e611260565b5b600061143d848285016112ae565b91505092915050565b61144f81611285565b82525050565b600060208201905061146a6000830184611446565b92915050565b6000819050919050565b600061149561149061148b84611265565b611470565b611265565b9050919050565b60006114a78261147a565b9050919050565b60006114b98261149c565b9050919050565b6114c9816114ae565b82525050565b60006020820190506114e460008301846114c0565b92915050565b6000806040838503121561150157611500611260565b5b600061150f858286016112ae565b9250506020611520858286016112ae565b9150509250929050565b600060408201905061153f6000830185611446565b61154c6020830184611446565b9392505050565b600081519050611562816112cd565b92915050565b60006020828403121561157e5761157d611260565b5b600061158c84828501611553565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115cf826112c3565b91506115da836112c3565b92508282019050808211156115f2576115f1611595565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006116546025836111b9565b915061165f826115f8565b604082019050919050565b6000602082019050818103600083015261168381611647565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006116e66026836111b9565b91506116f18261168a565b604082019050919050565b60006020820190508181036000830152611715816116d9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006117786024836111b9565b91506117838261171c565b604082019050919050565b600060208201905081810360008301526117a78161176b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061180a6022836111b9565b9150611815826117ae565b604082019050919050565b60006020820190508181036000830152611839816117fd565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611876601d836111b9565b915061188182611840565b602082019050919050565b600060208201905081810360008301526118a581611869565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006119086025836111b9565b9150611913826118ac565b604082019050919050565b60006020820190508181036000830152611937816118fb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061199a6023836111b9565b91506119a58261193e565b604082019050919050565b600060208201905081810360008301526119c98161198d565b9050919050565b60006060820190506119e56000830186611446565b6119f26020830185611446565b6119ff604083018461136f565b949350505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611a636026836111b9565b9150611a6e82611a07565b604082019050919050565b60006020820190508181036000830152611a9281611a56565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611af56021836111b9565b9150611b0082611a99565b604082019050919050565b60006020820190508181036000830152611b2481611ae8565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b876022836111b9565b9150611b9282611b2b565b604082019050919050565b60006020820190508181036000830152611bb681611b7a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611bf36020836111b9565b9150611bfe82611bbd565b602082019050919050565b60006020820190508181036000830152611c2281611be6565b905091905056fea2646970667358221220f1b0039af417b5c8b646915ebfa4cc1e598cdc03dbadc0e97e56b0896c571c9b64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806379cc6790116100ad578063a457c2d711610071578063a457c2d71461030f578063a9059cbb1461033f578063d39b7e4f1461036f578063dd62ed3e1461038b578063f2fde38b146103bb5761012c565b806379cc67901461028f5780637a59e169146102ab5780638da5cb5b146102b557806395d89b41146102d35780639cfdbd5e146102f15761012c565b8063313ce567116100f4578063313ce567146101eb578063395093511461020957806342966c681461023957806370a0823114610255578063715018a6146102855761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d57806326898da9146101cd575b600080fd5b6101396103d7565b604051610146919061123e565b60405180910390f35b610169600480360381019061016491906112f9565b610410565b6040516101769190611354565b60405180910390f35b61018761042e565b604051610194919061137e565b60405180910390f35b6101b760048036038101906101b29190611399565b610438565b6040516101c49190611354565b60405180910390f35b6101d5610467565b6040516101e29190611354565b60405180910390f35b6101f361047a565b604051610200919061137e565b60405180910390f35b610223600480360381019061021e91906112f9565b61047f565b6040516102309190611354565b60405180910390f35b610253600480360381019061024e91906113ec565b610528565b005b61026f600480360381019061026a9190611419565b61053c565b60405161027c919061137e565b60405180910390f35b61028d610585565b005b6102a960048036038101906102a491906112f9565b610599565b005b6102b36105b9565b005b6102bd6105f7565b6040516102ca9190611455565b60405180910390f35b6102db610620565b6040516102e8919061123e565b60405180910390f35b6102f9610659565b60405161030691906114cf565b60405180910390f35b610329600480360381019061032491906112f9565b61067f565b6040516103369190611354565b60405180910390f35b610359600480360381019061035491906112f9565b610768565b6040516103669190611354565b60405180910390f35b61038960048036038101906103849190611419565b610786565b005b6103a560048036038101906103a091906114ea565b6107d2565b6040516103b2919061137e565b60405180910390f35b6103d560048036038101906103d09190611419565b610859565b005b6040518060400160405280600781526020017f436861644750540000000000000000000000000000000000000000000000000081525081565b600061042461041d6108dc565b84846108e4565b6001905092915050565b6000600354905090565b6000806104436108dc565b9050610450858285610aad565b61045b858585610bab565b60019150509392505050565b600460149054906101000a900460ff1681565b601281565b60008061048a6108dc565b905061051d8185853073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e868a6040518363ffffffff1660e01b81526004016104cd92919061152a565b602060405180830381865afa1580156104ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050e9190611568565b61051891906115c4565b6108e4565b600191505092915050565b6105396105336108dc565b82610eb5565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61058d61106c565b61059760006110ea565b565b6105ab826105a56108dc565b83610aad565b6105b58282610eb5565b5050565b6105c161106c565b600460149054906101000a900460ff166105da57600080fd5b6000600460146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600781526020017f434841444750540000000000000000000000000000000000000000000000000081525081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061068a6108dc565b905060003073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e83876040518363ffffffff1660e01b81526004016106c992919061152a565b602060405180830381865afa1580156106e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070a9190611568565b90508381101561074f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107469061166a565b60405180910390fd5b61075c82868684036108e4565b60019250505092915050565b600061077c6107756108dc565b8484610bab565b6001905092915050565b61078e61106c565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61086161106c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c7906116fc565b60405180910390fd5b6108d9816110ea565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094a9061178e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b990611820565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610aa0919061137e565b60405180910390a3505050565b60003073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e85856040518363ffffffff1660e01b8152600401610aea92919061152a565b602060405180830381865afa158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190611568565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ba55781811015610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e9061188c565b60405180910390fd5b610ba484848484036108e4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c119061191e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c80906119b0565b60405180910390fd5b600460149054906101000a900460ff1615610d3057600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e2f3afd8484846040518463ffffffff1660e01b8152600401610cfd939291906119d0565b600060405180830381600087803b158015610d1757600080fd5b505af1158015610d2b573d6000803e3d6000fd5b505050505b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90611a79565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea7919061137e565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b90611b0b565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290611b9d565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105f919061137e565b60405180910390a3505050565b6110746108dc565b73ffffffffffffffffffffffffffffffffffffffff166110926105f7565b73ffffffffffffffffffffffffffffffffffffffff16146110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df90611c09565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156111e85780820151818401526020810190506111cd565b60008484015250505050565b6000601f19601f8301169050919050565b6000611210826111ae565b61121a81856111b9565b935061122a8185602086016111ca565b611233816111f4565b840191505092915050565b600060208201905081810360008301526112588184611205565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061129082611265565b9050919050565b6112a081611285565b81146112ab57600080fd5b50565b6000813590506112bd81611297565b92915050565b6000819050919050565b6112d6816112c3565b81146112e157600080fd5b50565b6000813590506112f3816112cd565b92915050565b600080604083850312156113105761130f611260565b5b600061131e858286016112ae565b925050602061132f858286016112e4565b9150509250929050565b60008115159050919050565b61134e81611339565b82525050565b60006020820190506113696000830184611345565b92915050565b611378816112c3565b82525050565b6000602082019050611393600083018461136f565b92915050565b6000806000606084860312156113b2576113b1611260565b5b60006113c0868287016112ae565b93505060206113d1868287016112ae565b92505060406113e2868287016112e4565b9150509250925092565b60006020828403121561140257611401611260565b5b6000611410848285016112e4565b91505092915050565b60006020828403121561142f5761142e611260565b5b600061143d848285016112ae565b91505092915050565b61144f81611285565b82525050565b600060208201905061146a6000830184611446565b92915050565b6000819050919050565b600061149561149061148b84611265565b611470565b611265565b9050919050565b60006114a78261147a565b9050919050565b60006114b98261149c565b9050919050565b6114c9816114ae565b82525050565b60006020820190506114e460008301846114c0565b92915050565b6000806040838503121561150157611500611260565b5b600061150f858286016112ae565b9250506020611520858286016112ae565b9150509250929050565b600060408201905061153f6000830185611446565b61154c6020830184611446565b9392505050565b600081519050611562816112cd565b92915050565b60006020828403121561157e5761157d611260565b5b600061158c84828501611553565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115cf826112c3565b91506115da836112c3565b92508282019050808211156115f2576115f1611595565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006116546025836111b9565b915061165f826115f8565b604082019050919050565b6000602082019050818103600083015261168381611647565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006116e66026836111b9565b91506116f18261168a565b604082019050919050565b60006020820190508181036000830152611715816116d9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006117786024836111b9565b91506117838261171c565b604082019050919050565b600060208201905081810360008301526117a78161176b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061180a6022836111b9565b9150611815826117ae565b604082019050919050565b60006020820190508181036000830152611839816117fd565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611876601d836111b9565b915061188182611840565b602082019050919050565b600060208201905081810360008301526118a581611869565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006119086025836111b9565b9150611913826118ac565b604082019050919050565b60006020820190508181036000830152611937816118fb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061199a6023836111b9565b91506119a58261193e565b604082019050919050565b600060208201905081810360008301526119c98161198d565b9050919050565b60006060820190506119e56000830186611446565b6119f26020830185611446565b6119ff604083018461136f565b949350505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611a636026836111b9565b9150611a6e82611a07565b604082019050919050565b60006020820190508181036000830152611a9281611a56565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611af56021836111b9565b9150611b0082611a99565b604082019050919050565b60006020820190508181036000830152611b2481611ae8565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b876022836111b9565b9150611b9282611b2b565b604082019050919050565b60006020820190508181036000830152611bb681611b7a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611bf36020836111b9565b9150611bfe82611bbd565b602082019050919050565b60006020820190508181036000830152611c2281611be6565b905091905056fea2646970667358221220f1b0039af417b5c8b646915ebfa4cc1e598cdc03dbadc0e97e56b0896c571c9b64736f6c63430008120033

Deployed Bytecode Sourcemap

6648:4837:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6821:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7733:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7165:110;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7906:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7047:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6915:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8177:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11017:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7283:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2804:103;;;:::i;:::-;;11110:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11377:105;;;:::i;:::-;;2163:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6867:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7020:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8430:441;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7412:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11276:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7580:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3062:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6821:39;;;;;;;;;;;;;;;;;;;:::o;7733:163::-;7810:4;7827:39;7836:12;:10;:12::i;:::-;7850:7;7859:6;7827:8;:39::i;:::-;7884:4;7877:11;;7733:163;;;;:::o;7165:110::-;7228:7;7255:12;;7248:19;;7165:110;:::o;7906:261::-;8003:4;8020:15;8038:12;:10;:12::i;:::-;8020:30;;8061:38;8077:4;8083:7;8092:6;8061:15;:38::i;:::-;8110:27;8120:4;8126:2;8130:6;8110:9;:27::i;:::-;8155:4;8148:11;;;7906:261;;;;;:::o;7047:28::-;;;;;;;;;;;;;:::o;6915:34::-;6947:2;6915:34;:::o;8177:243::-;8265:4;8282:13;8298:12;:10;:12::i;:::-;8282:28;;8321:69;8330:5;8337:7;8379:10;8346:4;:14;;;8361:5;8368:7;8346:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;;:::i;:::-;8321:8;:69::i;:::-;8408:4;8401:11;;;8177:243;;;;:::o;11017:85::-;11067:27;11073:12;:10;:12::i;:::-;11087:6;11067:5;:27::i;:::-;11017:85;:::o;7283:121::-;7351:7;7378:9;:18;7388:7;7378:18;;;;;;;;;;;;;;;;7371:25;;7283:121;;;:::o;2804:103::-;2049:13;:11;:13::i;:::-;2869:30:::1;2896:1;2869:18;:30::i;:::-;2804:103::o:0;11110:158::-;11181:46;11197:7;11206:12;:10;:12::i;:::-;11220:6;11181:15;:46::i;:::-;11238:22;11244:7;11253:6;11238:5;:22::i;:::-;11110:158;;:::o;11377:105::-;2049:13;:11;:13::i;:::-;11436:9:::1;;;;;;;;;;;11428:18;;;::::0;::::1;;11469:5;11457:9;;:17;;;;;;;;;;;;;;;;;;11377:105::o:0;2163:87::-;2209:7;2236:6;;;;;;;;;;;2229:13;;2163:87;:::o;6867:41::-;;;;;;;;;;;;;;;;;;;:::o;7020:20::-;;;;;;;;;;;;;:::o;8430:441::-;8523:4;8540:13;8556:12;:10;:12::i;:::-;8540:28;;8579:24;8606:4;:14;;;8621:5;8628:7;8606:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8579:57;;8675:15;8655:16;:35;;8647:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8768:60;8777:5;8784:7;8812:15;8793:16;:34;8768:8;:60::i;:::-;8859:4;8852:11;;;;8430:441;;;;:::o;7412:156::-;7485:4;7503:35;7513:12;:10;:12::i;:::-;7527:2;7531:6;7503:9;:35::i;:::-;7556:4;7549:11;;7412:156;;;;:::o;11276:93::-;2049:13;:11;:13::i;:::-;11357:3:::1;11341:2;;:20;;;;;;;;;;;;;;;;;;11276:93:::0;:::o;7580:145::-;7663:7;7690:11;:18;7702:5;7690:18;;;;;;;;;;;;;;;:27;7709:7;7690:27;;;;;;;;;;;;;;;;7683:34;;7580:145;;;;:::o;3062:201::-;2049:13;:11;:13::i;:::-;3171:1:::1;3151:22;;:8;:22;;::::0;3143:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3227:28;3246:8;3227:18;:28::i;:::-;3062:201:::0;:::o;714:98::-;767:7;794:10;787:17;;714:98;:::o;10231:346::-;10350:1;10333:19;;:5;:19;;;10325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10431:1;10412:21;;:7;:21;;;10404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10515:6;10485:11;:18;10497:5;10485:18;;;;;;;;;;;;;;;:27;10504:7;10485:27;;;;;;;;;;;;;;;:36;;;;10553:7;10537:32;;10546:5;10537:32;;;10562:6;10537:32;;;;;;:::i;:::-;;;;;;;;10231:346;;;:::o;10585:424::-;10686:24;10713:4;:14;;;10728:5;10735:7;10713:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10686:57;;10778:17;10758:16;:37;10754:248;;10840:6;10820:16;:26;;10812:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10924:51;10933:5;10940:7;10968:6;10949:16;:25;10924:8;:51::i;:::-;10754:248;10675:334;10585:424;;;:::o;8879:780::-;8983:1;8967:18;;:4;:18;;;8959:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9060:1;9046:16;;:2;:16;;;9038:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9119:9;;;;;;;;;;;9115:70;;;9145:2;;;;;;;;;;;:10;;;9156:4;9162:2;9166:6;9145:28;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9115:70;9197:19;9219:9;:15;9229:4;9219:15;;;;;;;;;;;;;;;;9197:37;;9268:6;9253:11;:21;;9245:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9385:6;9371:11;:20;9353:9;:15;9363:4;9353:15;;;;;;;;;;;;;;;:38;;;;9588:6;9571:9;:13;9581:2;9571:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;9638:2;9623:26;;9632:4;9623:26;;;9642:6;9623:26;;;;;;:::i;:::-;;;;;;;;8948:711;8879:780;;;:::o;9669:552::-;9772:1;9753:21;;:7;:21;;;9745:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9825:22;9850:9;:18;9860:7;9850:18;;;;;;;;;;;;;;;;9825:43;;9905:6;9887:14;:24;;9879:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10024:6;10007:14;:23;9986:9;:18;9996:7;9986:18;;;;;;;;;;;;;;;:44;;;;10141:6;10125:12;;:22;;;;;;;;;;;10202:1;10176:37;;10185:7;10176:37;;;10206:6;10176:37;;;;;;:::i;:::-;;;;;;;;9734:487;9669:552;;:::o;2328:132::-;2403:12;:10;:12::i;:::-;2392:23;;:7;:5;:7::i;:::-;:23;;;2384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2328:132::o;3423:191::-;3497:16;3516:6;;;;;;;;;;;3497:25;;3542:8;3533:6;;:17;;;;;;;;;;;;;;;;;;3597:8;3566:40;;3587:8;3566:40;;;;;;;;;;;;3486:128;3423:191;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:::-;4817:6;4866:2;4854:9;4845:7;4841:23;4837:32;4834:119;;;4872:79;;:::i;:::-;4834:119;4992:1;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4963:117;4758:329;;;;:::o;5093:118::-;5180:24;5198:5;5180:24;:::i;:::-;5175:3;5168:37;5093:118;;:::o;5217:222::-;5310:4;5348:2;5337:9;5333:18;5325:26;;5361:71;5429:1;5418:9;5414:17;5405:6;5361:71;:::i;:::-;5217:222;;;;:::o;5445:60::-;5473:3;5494:5;5487:12;;5445:60;;;:::o;5511:142::-;5561:9;5594:53;5612:34;5621:24;5639:5;5621:24;:::i;:::-;5612:34;:::i;:::-;5594:53;:::i;:::-;5581:66;;5511:142;;;:::o;5659:126::-;5709:9;5742:37;5773:5;5742:37;:::i;:::-;5729:50;;5659:126;;;:::o;5791:144::-;5859:9;5892:37;5923:5;5892:37;:::i;:::-;5879:50;;5791:144;;;:::o;5941:167::-;6046:55;6095:5;6046:55;:::i;:::-;6041:3;6034:68;5941:167;;:::o;6114:258::-;6225:4;6263:2;6252:9;6248:18;6240:26;;6276:89;6362:1;6351:9;6347:17;6338:6;6276:89;:::i;:::-;6114:258;;;;:::o;6378:474::-;6446:6;6454;6503:2;6491:9;6482:7;6478:23;6474:32;6471:119;;;6509:79;;:::i;:::-;6471:119;6629:1;6654:53;6699:7;6690:6;6679:9;6675:22;6654:53;:::i;:::-;6644:63;;6600:117;6756:2;6782:53;6827:7;6818:6;6807:9;6803:22;6782:53;:::i;:::-;6772:63;;6727:118;6378:474;;;;;:::o;6858:332::-;6979:4;7017:2;7006:9;7002:18;6994:26;;7030:71;7098:1;7087:9;7083:17;7074:6;7030:71;:::i;:::-;7111:72;7179:2;7168:9;7164:18;7155:6;7111:72;:::i;:::-;6858:332;;;;;:::o;7196:143::-;7253:5;7284:6;7278:13;7269:22;;7300:33;7327:5;7300:33;:::i;:::-;7196:143;;;;:::o;7345:351::-;7415:6;7464:2;7452:9;7443:7;7439:23;7435:32;7432:119;;;7470:79;;:::i;:::-;7432:119;7590:1;7615:64;7671:7;7662:6;7651:9;7647:22;7615:64;:::i;:::-;7605:74;;7561:128;7345:351;;;;:::o;7702:180::-;7750:77;7747:1;7740:88;7847:4;7844:1;7837:15;7871:4;7868:1;7861:15;7888:191;7928:3;7947:20;7965:1;7947:20;:::i;:::-;7942:25;;7981:20;7999:1;7981:20;:::i;:::-;7976:25;;8024:1;8021;8017:9;8010:16;;8045:3;8042:1;8039:10;8036:36;;;8052:18;;:::i;:::-;8036:36;7888:191;;;;:::o;8085:224::-;8225:34;8221:1;8213:6;8209:14;8202:58;8294:7;8289:2;8281:6;8277:15;8270:32;8085:224;:::o;8315:366::-;8457:3;8478:67;8542:2;8537:3;8478:67;:::i;:::-;8471:74;;8554:93;8643:3;8554:93;:::i;:::-;8672:2;8667:3;8663:12;8656:19;;8315:366;;;:::o;8687:419::-;8853:4;8891:2;8880:9;8876:18;8868:26;;8940:9;8934:4;8930:20;8926:1;8915:9;8911:17;8904:47;8968:131;9094:4;8968:131;:::i;:::-;8960:139;;8687:419;;;:::o;9112:225::-;9252:34;9248:1;9240:6;9236:14;9229:58;9321:8;9316:2;9308:6;9304:15;9297:33;9112:225;:::o;9343:366::-;9485:3;9506:67;9570:2;9565:3;9506:67;:::i;:::-;9499:74;;9582:93;9671:3;9582:93;:::i;:::-;9700:2;9695:3;9691:12;9684:19;;9343:366;;;:::o;9715:419::-;9881:4;9919:2;9908:9;9904:18;9896:26;;9968:9;9962:4;9958:20;9954:1;9943:9;9939:17;9932:47;9996:131;10122:4;9996:131;:::i;:::-;9988:139;;9715:419;;;:::o;10140:223::-;10280:34;10276:1;10268:6;10264:14;10257:58;10349:6;10344:2;10336:6;10332:15;10325:31;10140:223;:::o;10369:366::-;10511:3;10532:67;10596:2;10591:3;10532:67;:::i;:::-;10525:74;;10608:93;10697:3;10608:93;:::i;:::-;10726:2;10721:3;10717:12;10710:19;;10369:366;;;:::o;10741:419::-;10907:4;10945:2;10934:9;10930:18;10922:26;;10994:9;10988:4;10984:20;10980:1;10969:9;10965:17;10958:47;11022:131;11148:4;11022:131;:::i;:::-;11014:139;;10741:419;;;:::o;11166:221::-;11306:34;11302:1;11294:6;11290:14;11283:58;11375:4;11370:2;11362:6;11358:15;11351:29;11166:221;:::o;11393:366::-;11535:3;11556:67;11620:2;11615:3;11556:67;:::i;:::-;11549:74;;11632:93;11721:3;11632:93;:::i;:::-;11750:2;11745:3;11741:12;11734:19;;11393:366;;;:::o;11765:419::-;11931:4;11969:2;11958:9;11954:18;11946:26;;12018:9;12012:4;12008:20;12004:1;11993:9;11989:17;11982:47;12046:131;12172:4;12046:131;:::i;:::-;12038:139;;11765:419;;;:::o;12190:179::-;12330:31;12326:1;12318:6;12314:14;12307:55;12190:179;:::o;12375:366::-;12517:3;12538:67;12602:2;12597:3;12538:67;:::i;:::-;12531:74;;12614:93;12703:3;12614:93;:::i;:::-;12732:2;12727:3;12723:12;12716:19;;12375:366;;;:::o;12747:419::-;12913:4;12951:2;12940:9;12936:18;12928:26;;13000:9;12994:4;12990:20;12986:1;12975:9;12971:17;12964:47;13028:131;13154:4;13028:131;:::i;:::-;13020:139;;12747:419;;;:::o;13172:224::-;13312:34;13308:1;13300:6;13296:14;13289:58;13381:7;13376:2;13368:6;13364:15;13357:32;13172:224;:::o;13402:366::-;13544:3;13565:67;13629:2;13624:3;13565:67;:::i;:::-;13558:74;;13641:93;13730:3;13641:93;:::i;:::-;13759:2;13754:3;13750:12;13743:19;;13402:366;;;:::o;13774:419::-;13940:4;13978:2;13967:9;13963:18;13955:26;;14027:9;14021:4;14017:20;14013:1;14002:9;13998:17;13991:47;14055:131;14181:4;14055:131;:::i;:::-;14047:139;;13774:419;;;:::o;14199:222::-;14339:34;14335:1;14327:6;14323:14;14316:58;14408:5;14403:2;14395:6;14391:15;14384:30;14199:222;:::o;14427:366::-;14569:3;14590:67;14654:2;14649:3;14590:67;:::i;:::-;14583:74;;14666:93;14755:3;14666:93;:::i;:::-;14784:2;14779:3;14775:12;14768:19;;14427:366;;;:::o;14799:419::-;14965:4;15003:2;14992:9;14988:18;14980:26;;15052:9;15046:4;15042:20;15038:1;15027:9;15023:17;15016:47;15080:131;15206:4;15080:131;:::i;:::-;15072:139;;14799:419;;;:::o;15224:442::-;15373:4;15411:2;15400:9;15396:18;15388:26;;15424:71;15492:1;15481:9;15477:17;15468:6;15424:71;:::i;:::-;15505:72;15573:2;15562:9;15558:18;15549:6;15505:72;:::i;:::-;15587;15655:2;15644:9;15640:18;15631:6;15587:72;:::i;:::-;15224:442;;;;;;:::o;15672:225::-;15812:34;15808:1;15800:6;15796:14;15789:58;15881:8;15876:2;15868:6;15864:15;15857:33;15672:225;:::o;15903:366::-;16045:3;16066:67;16130:2;16125:3;16066:67;:::i;:::-;16059:74;;16142:93;16231:3;16142:93;:::i;:::-;16260:2;16255:3;16251:12;16244:19;;15903:366;;;:::o;16275:419::-;16441:4;16479:2;16468:9;16464:18;16456:26;;16528:9;16522:4;16518:20;16514:1;16503:9;16499:17;16492:47;16556:131;16682:4;16556:131;:::i;:::-;16548:139;;16275:419;;;:::o;16700:220::-;16840:34;16836:1;16828:6;16824:14;16817:58;16909:3;16904:2;16896:6;16892:15;16885:28;16700:220;:::o;16926:366::-;17068:3;17089:67;17153:2;17148:3;17089:67;:::i;:::-;17082:74;;17165:93;17254:3;17165:93;:::i;:::-;17283:2;17278:3;17274:12;17267:19;;16926:366;;;:::o;17298:419::-;17464:4;17502:2;17491:9;17487:18;17479:26;;17551:9;17545:4;17541:20;17537:1;17526:9;17522:17;17515:47;17579:131;17705:4;17579:131;:::i;:::-;17571:139;;17298:419;;;:::o;17723:221::-;17863:34;17859:1;17851:6;17847:14;17840:58;17932:4;17927:2;17919:6;17915:15;17908:29;17723:221;:::o;17950:366::-;18092:3;18113:67;18177:2;18172:3;18113:67;:::i;:::-;18106:74;;18189:93;18278:3;18189:93;:::i;:::-;18307:2;18302:3;18298:12;18291:19;;17950:366;;;:::o;18322:419::-;18488:4;18526:2;18515:9;18511:18;18503:26;;18575:9;18569:4;18565:20;18561:1;18550:9;18546:17;18539:47;18603:131;18729:4;18603:131;:::i;:::-;18595:139;;18322:419;;;:::o;18747:182::-;18887:34;18883:1;18875:6;18871:14;18864:58;18747:182;:::o;18935:366::-;19077:3;19098:67;19162:2;19157:3;19098:67;:::i;:::-;19091:74;;19174:93;19263:3;19174:93;:::i;:::-;19292:2;19287:3;19283:12;19276:19;;18935:366;;;:::o;19307:419::-;19473:4;19511:2;19500:9;19496:18;19488:26;;19560:9;19554:4;19550:20;19546:1;19535:9;19531:17;19524:47;19588:131;19714:4;19588:131;:::i;:::-;19580:139;;19307:419;;;:::o

Swarm Source

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