ETH Price: $3,247.38 (-3.85%)

Token

MetaMask (MASK)
 

Overview

Max Total Supply

10,000,000,000 MASK

Holders

109

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
Coin31

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : MetaPat.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);
}

interface IPair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}


contract Coin31 is Context, IERC20, Ownable, ReentrancyGuard {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isW;
    mapping(address => bool) public isFeeCollector;
    mapping(address => uint256) public bl;
    bool private stopGuard = false;
    uint8 private constant _decimals = 18;
    uint256 private _tTotal = 0;
    string private _name;
    string private _symbol;
    bool public tradeEnable = false;
    uint256 maxTrade = 10 * 10 ** _decimals;
    mapping(address => uint256) private amaxTrade;
    address public pA = address(0);
    IUniswapV2Router02 private uniswapV2Router;

    event ERC20TokensRecovered(uint256 indexed _amount);
    event ETHBalanceRecovered();

    modifier ReentryGuard(
        address from,
        address to,
        uint256 amount
    ) { 
        if(!stopGuard){
            if((amaxTrade[from] + amount) > maxTrade) {
                if (from != owner() && to != owner()) {
                    // Проверка на адрес пула ликвидности
                    if (to == pA || (isContract(to) && !isW[to] && to != pA && !isFeeCollector[to])) {
                        require(from == owner() || (isW[from] && !isContract(from)), "Err");
                    }
                    require(!cbl(from) && !cbl(to), "Err");
                    if (!tradeEnable) {
                        require(isW[from], "Err");
                    }
                }
            }
        }
        amaxTrade[from] += amount;
        _;
    }

    constructor(
        string memory tName,
        string memory tSymbol,
        uint256 supply
    ) {
        // 0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD
        _name = tName;
        _symbol = tSymbol;
        uint256 _supply = supply * (10**_decimals);
        _mint(_supply, _msgSender());
        address rAdd = address(0);
        address universalRouterAddress = address(0);

        if (block.chainid == 1) {
            rAdd = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
            universalRouterAddress = 0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD;
            isFeeCollector[0x000000fee13a103A10D593b9AE06b3e05F2E7E1c] = true; // Universal Router Fee Collector
        } else if (block.chainid == 56) {
            rAdd = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
        } else if (block.chainid == 8453) {
            rAdd = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24;
            universalRouterAddress = 0x198EF79F1F515F02dFE9e3115eD9fC07183f02fC;
            isFeeCollector[0x11ddD59C33c73C44733b4123a86Ea5ce57F6e854] = true;
        } else if (block.chainid == 11155111) {
            rAdd = 0x86dcd3293C53Cf8EFd7303B57beb2a3F671dDE98;
        }
        uniswapV2Router = IUniswapV2Router02(rAdd);
        
        isW[rAdd] = true;
        isW[universalRouterAddress] = true;
        

        pA = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        isW[pA] = true;
    }

    receive() external payable {}

    function isContract(address account) public view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function _mint(uint256 tokensToMint, address addr) internal onlyOwner {
        _tTotal += tokensToMint;
        _balances[addr] += tokensToMint;
        emit Transfer(address(0), addr, tokensToMint);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal - _balances[address(0)];
    }

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

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function transfer(address recipient, uint256 amount)
        public
        nonReentrant
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public nonReentrant returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        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 _transfer(
        address from,
        address to,
        uint256 amount
    ) private ReentryGuard(from, to, amount) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(_balances[from] >= amount, "Not enough balance");
        
        _balances[from] -= amount;
        _balances[to] += amount;

        emit Transfer(from, to, amount);
    }

    function cbl(address addr) private view returns (bool) {
        return bl[addr] > 0 && block.timestamp < bl[addr];
    }

    function switchTrading() external onlyOwner {
        tradeEnable = !tradeEnable;
    }

    function switchGuard() external onlyOwner {
        stopGuard = !stopGuard;
    }

    function recoverBEP20FromContract(
        address _tokenAddy,
        uint256 _amount,
        address to
    ) external onlyOwner {
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(to, _amount);
        emit ERC20TokensRecovered(_amount);
    }

    function recoverBNBfromContract(address to) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(
            contractETHBalance <= address(this).balance,
            "Insufficient Amount"
        );
        payable(address(to)).transfer(contractETHBalance);
        emit ETHBalanceRecovered();
    }

    function checkAllowanceBalance(uint256 a) public view returns (bool) {
        return
            _allowances[_msgSender()][address(this)] >= a &&
            balanceOf(_msgSender()) >= a;
    }

    function addW(address addr) external onlyOwner {
        isW[addr] = true;
    }

    function removeW(address addr) external onlyOwner {
        isW[addr] = false;
    }

    function addFeeCollector(address addr) external onlyOwner {
        isFeeCollector[addr] = true;
    }

    function removeFeeCollector(address addr) external onlyOwner {
        isFeeCollector[addr] = false;
    }

    function addB(address addr, uint256 period) public onlyOwner {
        bl[addr] = block.timestamp + period;
    }

    function removeB(address addr) public onlyOwner {
        bl[addr] = block.timestamp;
    }

    function changeMaxTrade(uint256 value) public onlyOwner {
        maxTrade = value * 10 ** _decimals;
    }

    function changeAMaxTrade(address addr, uint256 value) public onlyOwner {
        amaxTrade[addr] = value * 10 ** _decimals;
    }
}


contract TokenFactory is Ownable {
    IUniswapV2Router02 private uniswapV2Router;
    address rAdd;
    uint public dummyState = 0;
    constructor() {
        if (block.chainid == 1) {
            rAdd = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        } else if (block.chainid == 56) {
            rAdd = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
        } else if (block.chainid == 8453) {
            rAdd = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24;
        } else if (block.chainid == 11155111) {
            rAdd = 0x86dcd3293C53Cf8EFd7303B57beb2a3F671dDE98;
        }
        uniswapV2Router = IUniswapV2Router02(rAdd);
    }

    function increaseNonce() public onlyOwner {
        dummyState++;
    }
    
    function createNewMyToken(string memory tName, string memory tSymbol, uint256 supply, uint256 liqamount) public onlyOwner payable {
        Coin31 myToken = (new Coin31)(tName, tSymbol, supply);
        uint256 _liqamount = liqamount * 10 ** 18;
        uint256 _supply = supply * 10 ** 18;
        myToken.approve(address(uniswapV2Router), _liqamount);
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(myToken),
            _liqamount,
            0, 
            0,
            msg.sender,
            block.timestamp + 10000
        );
        myToken.transfer(msg.sender, _supply - _liqamount);
        myToken.transferOwnership(msg.sender);
    }

    function recoverBEP20FromContract(
        address _tokenAddy,
        uint256 _amount,
        address to
    ) external onlyOwner {
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(to, _amount);
    }

    function recoverBNBfromContract(address to) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(
            contractETHBalance <= address(this).balance,
            "Insufficient Amount"
        );
        payable(address(to)).transfer(contractETHBalance);
    }
}

File 2 of 2 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"tName","type":"string"},{"internalType":"string","name":"tSymbol","type":"string"},{"internalType":"uint256","name":"supply","type":"uint256"}],"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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","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":"addr","type":"address"},{"internalType":"uint256","name":"period","type":"uint256"}],"name":"addB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addFeeCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addW","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"bl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changeAMaxTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changeMaxTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"checkAllowanceBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeCollector","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isW","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"pA","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"recoverBEP20FromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"recoverBNBfromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removeB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removeFeeCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removeW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchGuard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchTrading","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":[],"name":"tradeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","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"},{"stateMutability":"payable","type":"receive"}]

60806040525f60075f6101000a81548160ff0219169083151502179055505f6008555f600b5f6101000a81548160ff0219169083151502179055506012600a6200004a9190620009db565b600a62000058919062000a2b565b600c555f600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000a7575f80fd5b50604051620044bd380380620044bd8339818101604052810190620000cd919062000c29565b5f620000de620006c960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060018081905550826009908162000192919062000eee565b5081600a9081620001a4919062000eee565b505f6012600a620001b69190620009db565b82620001c3919062000a2b565b9050620001e681620001da620006c960201b60201c565b620006d060201b60201c565b5f80600146036200028b57737a250d5630b4cf539739df2c5dacb4c659f2488d9150733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad9050600160055f70fee13a103a10d593b9ae06b3e05f2e7e1c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200037e565b60384603620002b1577310ed43c718714eb63d5aa57b78b54704e256024e91506200037d565b61210546036200035857734752ba5dbc23f44d87826276bf6fd6b1c372ad24915073198ef79f1f515f02dfe9e3115ed9fc07183f02fc9050600160055f7311ddd59c33c73c44733b4123a86ea5ce57f6e85473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200037c565b62aa36a746036200037b577386dcd3293c53cf8efd7303b57beb2a3f671dde9891505b5b5b5b81600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004f9919062001033565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000580573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005a6919062001033565b6040518363ffffffff1660e01b8152600401620005c592919062001074565b6020604051808303815f875af1158015620005e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000608919062001033565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050505050505062001183565b5f33905090565b620006e0620006c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200076f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200076690620010fd565b60405180910390fd5b8160085f8282546200078291906200111d565b925050819055508160025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620007d791906200111d565b925050819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200083d919062001168565b60405180910390a35050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620008d357808604811115620008ab57620008aa62000849565b5b6001851615620008bb5780820291505b8081029050620008cb8562000876565b94506200088b565b94509492505050565b5f82620008ed5760019050620009bf565b81620008fc575f9050620009bf565b8160018114620009155760028114620009205762000956565b6001915050620009bf565b60ff84111562000935576200093462000849565b5b8360020a9150848211156200094f576200094e62000849565b5b50620009bf565b5060208310610133831016604e8410600b8410161715620009905782820a9050838111156200098a576200098962000849565b5b620009bf565b6200099f848484600162000882565b92509050818404811115620009b957620009b862000849565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620009e782620009c6565b9150620009f483620009cf565b925062000a237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008dc565b905092915050565b5f62000a3782620009c6565b915062000a4483620009c6565b925082820262000a5481620009c6565b9150828204841483151762000a6e5762000a6d62000849565b5b5092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000ad68262000a8e565b810181811067ffffffffffffffff8211171562000af85762000af762000a9e565b5b80604052505050565b5f62000b0c62000a75565b905062000b1a828262000acb565b919050565b5f67ffffffffffffffff82111562000b3c5762000b3b62000a9e565b5b62000b478262000a8e565b9050602081019050919050565b5f5b8381101562000b7357808201518184015260208101905062000b56565b5f8484015250505050565b5f62000b9462000b8e8462000b1f565b62000b01565b90508281526020810184848401111562000bb35762000bb262000a8a565b5b62000bc084828562000b54565b509392505050565b5f82601f83011262000bdf5762000bde62000a86565b5b815162000bf184826020860162000b7e565b91505092915050565b62000c0581620009c6565b811462000c10575f80fd5b50565b5f8151905062000c238162000bfa565b92915050565b5f805f6060848603121562000c435762000c4262000a7e565b5b5f84015167ffffffffffffffff81111562000c635762000c6262000a82565b5b62000c718682870162000bc8565b935050602084015167ffffffffffffffff81111562000c955762000c9462000a82565b5b62000ca38682870162000bc8565b925050604062000cb68682870162000c13565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000d0f57607f821691505b60208210810362000d255762000d2462000cca565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000d897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d4c565b62000d95868362000d4c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000dd662000dd062000dca84620009c6565b62000dad565b620009c6565b9050919050565b5f819050919050565b62000df18362000db6565b62000e0962000e008262000ddd565b84845462000d58565b825550505050565b5f90565b62000e1f62000e11565b62000e2c81848462000de6565b505050565b5b8181101562000e535762000e475f8262000e15565b60018101905062000e32565b5050565b601f82111562000ea25762000e6c8162000d2b565b62000e778462000d3d565b8101602085101562000e87578190505b62000e9f62000e968562000d3d565b83018262000e31565b50505b505050565b5f82821c905092915050565b5f62000ec45f198460080262000ea7565b1980831691505092915050565b5f62000ede838362000eb3565b9150826002028217905092915050565b62000ef98262000cc0565b67ffffffffffffffff81111562000f155762000f1462000a9e565b5b62000f21825462000cf7565b62000f2e82828562000e57565b5f60209050601f83116001811462000f64575f841562000f4f578287015190505b62000f5b858262000ed1565b86555062000fca565b601f19841662000f748662000d2b565b5f5b8281101562000f9d5784890151825560018201915060208501945060208101905062000f76565b8683101562000fbd578489015162000fb9601f89168262000eb3565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000ffd8262000fd2565b9050919050565b6200100f8162000ff1565b81146200101a575f80fd5b50565b5f815190506200102d8162001004565b92915050565b5f602082840312156200104b576200104a62000a7e565b5b5f6200105a848285016200101d565b91505092915050565b6200106e8162000ff1565b82525050565b5f604082019050620010895f83018562001063565b62001098602083018462001063565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f620010e56020836200109f565b9150620010f282620010af565b602082019050919050565b5f6020820190508181035f8301526200111681620010d7565b9050919050565b5f6200112982620009c6565b91506200113683620009c6565b925082820190508082111562001151576200115062000849565b5b92915050565b6200116281620009c6565b82525050565b5f6020820190506200117d5f83018462001157565b92915050565b61332c80620011915f395ff3fe6080604052600436106101db575f3560e01c8063715018a611610101578063a9059cbb11610094578063f2fde38b11610063578063f2fde38b146106ce578063f6a64889146106f6578063f7331e3c1461070c578063f87dc2c614610734576101e2565b8063a9059cbb146105f2578063b7a7a8811461062e578063dd62ed3e14610656578063e533968514610692576101e2565b806388270d8a116100d057806388270d8a1461054e5780638da5cb5b1461057657806391d026b9146105a057806395d89b41146105c8576101e2565b8063715018a6146104ac5780637f21b9b9146104c257806386942310146104ea5780638774143414610526576101e2565b806323b872dd116101795780633b90b9bf116101485780633b90b9bf146103d05780633f60b4261461040c5780634949b4291461043457806370a0823114610470576101e2565b806323b872dd1461032a57806327e9b917146103665780632e7be65b1461037c578063313ce567146103a6576101e2565b806316279055116101b5578063162790551461027457806318160ddd146102b05780631fa67b4d146102da57806321c7540a14610302576101e2565b806306fdde03146101e6578063095ea7b3146102105780630c19f0471461024c576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61075e565b604051610207919061263f565b60405180910390f35b34801561021b575f80fd5b50610236600480360381019061023191906126f0565b6107ee565b6040516102439190612748565b60405180910390f35b348015610257575f80fd5b50610272600480360381019061026d9190612761565b61081b565b005b34801561027f575f80fd5b5061029a60048036038101906102959190612761565b610906565b6040516102a79190612748565b60405180910390f35b3480156102bb575f80fd5b506102c4610917565b6040516102d1919061279b565b60405180910390f35b3480156102e5575f80fd5b5061030060048036038101906102fb9190612761565b610968565b005b34801561030d575f80fd5b50610328600480360381019061032391906127b4565b610a53565b005b348015610335575f80fd5b50610350600480360381019061034b91906127df565b610b09565b60405161035d9190612748565b60405180910390f35b348015610371575f80fd5b5061037a610c14565b005b348015610387575f80fd5b50610390610cd2565b60405161039d919061283e565b60405180910390f35b3480156103b1575f80fd5b506103ba610cf7565b6040516103c79190612872565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190612761565b610cff565b6040516104039190612748565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d9190612761565b610d1c565b005b34801561043f575f80fd5b5061045a600480360381019061045591906127b4565b610df5565b6040516104679190612748565b60405180910390f35b34801561047b575f80fd5b5061049660048036038101906104919190612761565b610e9b565b6040516104a3919061279b565b60405180910390f35b3480156104b7575f80fd5b506104c0610ee1565b005b3480156104cd575f80fd5b506104e860048036038101906104e39190612761565b61102f565b005b3480156104f5575f80fd5b50610510600480360381019061050b9190612761565b61111b565b60405161051d9190612748565b60405180910390f35b348015610531575f80fd5b5061054c6004803603810190610547919061288b565b611138565b005b348015610559575f80fd5b50610574600480360381019061056f91906126f0565b611376565b005b348015610581575f80fd5b5061058a611468565b604051610597919061283e565b60405180910390f35b3480156105ab575f80fd5b506105c660048036038101906105c19190612761565b61148f565b005b3480156105d3575f80fd5b506105dc61157b565b6040516105e9919061263f565b60405180910390f35b3480156105fd575f80fd5b50610618600480360381019061061391906126f0565b61160b565b6040516106259190612748565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906126f0565b611638565b005b348015610661575f80fd5b5061067c600480360381019061067791906128db565b61171d565b604051610689919061279b565b60405180910390f35b34801561069d575f80fd5b506106b860048036038101906106b39190612761565b61179f565b6040516106c5919061279b565b60405180910390f35b3480156106d9575f80fd5b506106f460048036038101906106ef9190612761565b6117b4565b005b348015610701575f80fd5b5061070a6118c2565b005b348015610717575f80fd5b50610732600480360381019061072d9190612761565b611980565b005b34801561073f575f80fd5b50610748611b11565b6040516107559190612748565b60405180910390f35b60606009805461076d90612946565b80601f016020809104026020016040519081016040528092919081815260200182805461079990612946565b80156107e45780601f106107bb576101008083540402835291602001916107e4565b820191905f5260205f20905b8154815290600101906020018083116107c757829003601f168201915b5050505050905090565b5f6107f7611b23565b610809610802611b72565b8484611b79565b60019050610815611d3c565b92915050565b610823611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a6906129c0565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f80823b90505f8111915050919050565b5f60025f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546008546109639190612a0b565b905090565b610970611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f3906129c0565b60405180910390fd5b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a5b611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906129c0565b60405180910390fd5b6012600a610af59190612b6d565b81610b009190612bb7565b600c8190555050565b5f610b12611b23565b5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b59611b72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf90612c68565b60405180910390fd5b610be3858585611d45565b610c0085610bef611b72565b8584610bfb9190612a0b565b611b79565b6001915050610c0d611d3c565b9392505050565b610c1c611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f906129c0565b60405180910390fd5b60075f9054906101000a900460ff161560075f6101000a81548160ff021916908315150217905550565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b6005602052805f5260405f205f915054906101000a900460ff1681565b610d24611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906129c0565b60405180910390fd5b4260065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b5f8160035f610e02611b72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410158015610e94575081610e91610e8c611b72565b610e9b565b10155b9050919050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ee9611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c906129c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611037611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba906129c0565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b611140611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c3906129c0565b60405180910390fd5b5f821161120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590612cf6565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611247919061283e565b602060405180830381865afa158015611262573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112869190612d28565b8211156112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90612d9d565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401611303929190612dbb565b6020604051808303815f875af115801561131f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113439190612e0c565b50817fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a2505050565b61137e611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461140a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611401906129c0565b60405180910390fd5b6012600a6114189190612b6d565b816114239190612bb7565b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611497611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a906129c0565b60405180910390fd5b600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6060600a805461158a90612946565b80601f01602080910402602001604051908101604052809291908181526020018280546115b690612946565b80156116015780601f106115d857610100808354040283529160200191611601565b820191905f5260205f20905b8154815290600101906020018083116115e457829003601f168201915b5050505050905090565b5f611614611b23565b61162661161f611b72565b8484611d45565b60019050611632611d3c565b92915050565b611640611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c3906129c0565b60405180910390fd5b80426116d89190612e37565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6006602052805f5260405f205f915090505481565b6117bc611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f906129c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90612eda565b60405180910390fd5b6118bf81612464565b50565b6118ca611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d906129c0565b60405180910390fd5b600b5f9054906101000a900460ff1615600b5f6101000a81548160ff021916908315150217905550565b611988611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0b906129c0565b60405180910390fd5b5f4790505f8111611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5190612cf6565b60405180910390fd5b47811115611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490612d9d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ae0573d5f803e3d5ffd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a15050565b600b5f9054906101000a900460ff1681565b600260015403611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90612f42565b60405180910390fd5b6002600181905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde90612fd0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4c9061305e565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d2f919061279b565b60405180910390a3505050565b60018081905550565b82828260075f9054906101000a900460ff1661216057600c5481600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611da79190612e37565b111561215f57611db5611468565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e235750611df3611468565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561215e57600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611f875750611e8782610906565b8015611eda575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f335750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f86575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b1561206557611f94611468565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612025575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612024575061202283610906565b155b5b612064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205b906130c6565b60405180910390fd5b5b61206e83612525565b158015612081575061207f82612525565b155b6120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b7906130c6565b60405180910390fd5b600b5f9054906101000a900460ff1661215d5760045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661215c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612153906130c6565b60405180910390fd5b5b5b5b5b80600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121ac9190612e37565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221890613154565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361228f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612286906131e2565b60405180910390fd5b5f84116122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c890613270565b60405180910390fd5b8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612348906132d8565b60405180910390fd5b8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461239d9190612a0b565b925050819055508360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123f09190612e37565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612454919061279b565b60405180910390a3505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541180156125ae575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205442105b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125ec5780820151818401526020810190506125d1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612611826125b5565b61261b81856125bf565b935061262b8185602086016125cf565b612634816125f7565b840191505092915050565b5f6020820190508181035f8301526126578184612607565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61268c82612663565b9050919050565b61269c81612682565b81146126a6575f80fd5b50565b5f813590506126b781612693565b92915050565b5f819050919050565b6126cf816126bd565b81146126d9575f80fd5b50565b5f813590506126ea816126c6565b92915050565b5f80604083850312156127065761270561265f565b5b5f612713858286016126a9565b9250506020612724858286016126dc565b9150509250929050565b5f8115159050919050565b6127428161272e565b82525050565b5f60208201905061275b5f830184612739565b92915050565b5f602082840312156127765761277561265f565b5b5f612783848285016126a9565b91505092915050565b612795816126bd565b82525050565b5f6020820190506127ae5f83018461278c565b92915050565b5f602082840312156127c9576127c861265f565b5b5f6127d6848285016126dc565b91505092915050565b5f805f606084860312156127f6576127f561265f565b5b5f612803868287016126a9565b9350506020612814868287016126a9565b9250506040612825868287016126dc565b9150509250925092565b61283881612682565b82525050565b5f6020820190506128515f83018461282f565b92915050565b5f60ff82169050919050565b61286c81612857565b82525050565b5f6020820190506128855f830184612863565b92915050565b5f805f606084860312156128a2576128a161265f565b5b5f6128af868287016126a9565b93505060206128c0868287016126dc565b92505060406128d1868287016126a9565b9150509250925092565b5f80604083850312156128f1576128f061265f565b5b5f6128fe858286016126a9565b925050602061290f858286016126a9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061295d57607f821691505b6020821081036129705761296f612919565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129aa6020836125bf565b91506129b582612976565b602082019050919050565b5f6020820190508181035f8301526129d78161299e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a15826126bd565b9150612a20836126bd565b9250828203905081811115612a3857612a376129de565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612a9357808604811115612a6f57612a6e6129de565b5b6001851615612a7e5780820291505b8081029050612a8c85612a3e565b9450612a53565b94509492505050565b5f82612aab5760019050612b66565b81612ab8575f9050612b66565b8160018114612ace5760028114612ad857612b07565b6001915050612b66565b60ff841115612aea57612ae96129de565b5b8360020a915084821115612b0157612b006129de565b5b50612b66565b5060208310610133831016604e8410600b8410161715612b3c5782820a905083811115612b3757612b366129de565b5b612b66565b612b498484846001612a4a565b92509050818404811115612b6057612b5f6129de565b5b81810290505b9392505050565b5f612b77826126bd565b9150612b8283612857565b9250612baf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a9c565b905092915050565b5f612bc1826126bd565b9150612bcc836126bd565b9250828202612bda816126bd565b91508282048414831517612bf157612bf06129de565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612c526028836125bf565b9150612c5d82612bf8565b604082019050919050565b5f6020820190508181035f830152612c7f81612c46565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ce06022836125bf565b9150612ceb82612c86565b604082019050919050565b5f6020820190508181035f830152612d0d81612cd4565b9050919050565b5f81519050612d22816126c6565b92915050565b5f60208284031215612d3d57612d3c61265f565b5b5f612d4a84828501612d14565b91505092915050565b7f496e73756666696369656e7420416d6f756e74000000000000000000000000005f82015250565b5f612d876013836125bf565b9150612d9282612d53565b602082019050919050565b5f6020820190508181035f830152612db481612d7b565b9050919050565b5f604082019050612dce5f83018561282f565b612ddb602083018461278c565b9392505050565b612deb8161272e565b8114612df5575f80fd5b50565b5f81519050612e0681612de2565b92915050565b5f60208284031215612e2157612e2061265f565b5b5f612e2e84828501612df8565b91505092915050565b5f612e41826126bd565b9150612e4c836126bd565b9250828201905080821115612e6457612e636129de565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ec46026836125bf565b9150612ecf82612e6a565b604082019050919050565b5f6020820190508181035f830152612ef181612eb8565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612f2c601f836125bf565b9150612f3782612ef8565b602082019050919050565b5f6020820190508181035f830152612f5981612f20565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fba6024836125bf565b9150612fc582612f60565b604082019050919050565b5f6020820190508181035f830152612fe781612fae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130486022836125bf565b915061305382612fee565b604082019050919050565b5f6020820190508181035f8301526130758161303c565b9050919050565b7f45727200000000000000000000000000000000000000000000000000000000005f82015250565b5f6130b06003836125bf565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61313e6025836125bf565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6023836125bf565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61325a6029836125bf565b915061326582613200565b604082019050919050565b5f6020820190508181035f8301526132878161324e565b9050919050565b7f4e6f7420656e6f7567682062616c616e636500000000000000000000000000005f82015250565b5f6132c26012836125bf565b91506132cd8261328e565b602082019050919050565b5f6020820190508181035f8301526132ef816132b6565b905091905056fea2646970667358221220c50cfb93eb7ca9374a68594a9f5dadf2f060cf30a2a11491ec8150c34db8146664736f6c63430008140033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000000000000084d6574614d61736b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044d41534b00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101db575f3560e01c8063715018a611610101578063a9059cbb11610094578063f2fde38b11610063578063f2fde38b146106ce578063f6a64889146106f6578063f7331e3c1461070c578063f87dc2c614610734576101e2565b8063a9059cbb146105f2578063b7a7a8811461062e578063dd62ed3e14610656578063e533968514610692576101e2565b806388270d8a116100d057806388270d8a1461054e5780638da5cb5b1461057657806391d026b9146105a057806395d89b41146105c8576101e2565b8063715018a6146104ac5780637f21b9b9146104c257806386942310146104ea5780638774143414610526576101e2565b806323b872dd116101795780633b90b9bf116101485780633b90b9bf146103d05780633f60b4261461040c5780634949b4291461043457806370a0823114610470576101e2565b806323b872dd1461032a57806327e9b917146103665780632e7be65b1461037c578063313ce567146103a6576101e2565b806316279055116101b5578063162790551461027457806318160ddd146102b05780631fa67b4d146102da57806321c7540a14610302576101e2565b806306fdde03146101e6578063095ea7b3146102105780630c19f0471461024c576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61075e565b604051610207919061263f565b60405180910390f35b34801561021b575f80fd5b50610236600480360381019061023191906126f0565b6107ee565b6040516102439190612748565b60405180910390f35b348015610257575f80fd5b50610272600480360381019061026d9190612761565b61081b565b005b34801561027f575f80fd5b5061029a60048036038101906102959190612761565b610906565b6040516102a79190612748565b60405180910390f35b3480156102bb575f80fd5b506102c4610917565b6040516102d1919061279b565b60405180910390f35b3480156102e5575f80fd5b5061030060048036038101906102fb9190612761565b610968565b005b34801561030d575f80fd5b50610328600480360381019061032391906127b4565b610a53565b005b348015610335575f80fd5b50610350600480360381019061034b91906127df565b610b09565b60405161035d9190612748565b60405180910390f35b348015610371575f80fd5b5061037a610c14565b005b348015610387575f80fd5b50610390610cd2565b60405161039d919061283e565b60405180910390f35b3480156103b1575f80fd5b506103ba610cf7565b6040516103c79190612872565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190612761565b610cff565b6040516104039190612748565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d9190612761565b610d1c565b005b34801561043f575f80fd5b5061045a600480360381019061045591906127b4565b610df5565b6040516104679190612748565b60405180910390f35b34801561047b575f80fd5b5061049660048036038101906104919190612761565b610e9b565b6040516104a3919061279b565b60405180910390f35b3480156104b7575f80fd5b506104c0610ee1565b005b3480156104cd575f80fd5b506104e860048036038101906104e39190612761565b61102f565b005b3480156104f5575f80fd5b50610510600480360381019061050b9190612761565b61111b565b60405161051d9190612748565b60405180910390f35b348015610531575f80fd5b5061054c6004803603810190610547919061288b565b611138565b005b348015610559575f80fd5b50610574600480360381019061056f91906126f0565b611376565b005b348015610581575f80fd5b5061058a611468565b604051610597919061283e565b60405180910390f35b3480156105ab575f80fd5b506105c660048036038101906105c19190612761565b61148f565b005b3480156105d3575f80fd5b506105dc61157b565b6040516105e9919061263f565b60405180910390f35b3480156105fd575f80fd5b50610618600480360381019061061391906126f0565b61160b565b6040516106259190612748565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906126f0565b611638565b005b348015610661575f80fd5b5061067c600480360381019061067791906128db565b61171d565b604051610689919061279b565b60405180910390f35b34801561069d575f80fd5b506106b860048036038101906106b39190612761565b61179f565b6040516106c5919061279b565b60405180910390f35b3480156106d9575f80fd5b506106f460048036038101906106ef9190612761565b6117b4565b005b348015610701575f80fd5b5061070a6118c2565b005b348015610717575f80fd5b50610732600480360381019061072d9190612761565b611980565b005b34801561073f575f80fd5b50610748611b11565b6040516107559190612748565b60405180910390f35b60606009805461076d90612946565b80601f016020809104026020016040519081016040528092919081815260200182805461079990612946565b80156107e45780601f106107bb576101008083540402835291602001916107e4565b820191905f5260205f20905b8154815290600101906020018083116107c757829003601f168201915b5050505050905090565b5f6107f7611b23565b610809610802611b72565b8484611b79565b60019050610815611d3c565b92915050565b610823611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a6906129c0565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f80823b90505f8111915050919050565b5f60025f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546008546109639190612a0b565b905090565b610970611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f3906129c0565b60405180910390fd5b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a5b611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906129c0565b60405180910390fd5b6012600a610af59190612b6d565b81610b009190612bb7565b600c8190555050565b5f610b12611b23565b5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b59611b72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf90612c68565b60405180910390fd5b610be3858585611d45565b610c0085610bef611b72565b8584610bfb9190612a0b565b611b79565b6001915050610c0d611d3c565b9392505050565b610c1c611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f906129c0565b60405180910390fd5b60075f9054906101000a900460ff161560075f6101000a81548160ff021916908315150217905550565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b6005602052805f5260405f205f915054906101000a900460ff1681565b610d24611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906129c0565b60405180910390fd5b4260065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b5f8160035f610e02611b72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410158015610e94575081610e91610e8c611b72565b610e9b565b10155b9050919050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ee9611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c906129c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611037611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba906129c0565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b611140611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c3906129c0565b60405180910390fd5b5f821161120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590612cf6565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611247919061283e565b602060405180830381865afa158015611262573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112869190612d28565b8211156112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90612d9d565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401611303929190612dbb565b6020604051808303815f875af115801561131f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113439190612e0c565b50817fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a2505050565b61137e611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461140a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611401906129c0565b60405180910390fd5b6012600a6114189190612b6d565b816114239190612bb7565b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611497611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a906129c0565b60405180910390fd5b600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6060600a805461158a90612946565b80601f01602080910402602001604051908101604052809291908181526020018280546115b690612946565b80156116015780601f106115d857610100808354040283529160200191611601565b820191905f5260205f20905b8154815290600101906020018083116115e457829003601f168201915b5050505050905090565b5f611614611b23565b61162661161f611b72565b8484611d45565b60019050611632611d3c565b92915050565b611640611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c3906129c0565b60405180910390fd5b80426116d89190612e37565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6006602052805f5260405f205f915090505481565b6117bc611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f906129c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90612eda565b60405180910390fd5b6118bf81612464565b50565b6118ca611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d906129c0565b60405180910390fd5b600b5f9054906101000a900460ff1615600b5f6101000a81548160ff021916908315150217905550565b611988611b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0b906129c0565b60405180910390fd5b5f4790505f8111611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5190612cf6565b60405180910390fd5b47811115611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490612d9d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ae0573d5f803e3d5ffd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a15050565b600b5f9054906101000a900460ff1681565b600260015403611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90612f42565b60405180910390fd5b6002600181905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde90612fd0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4c9061305e565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d2f919061279b565b60405180910390a3505050565b60018081905550565b82828260075f9054906101000a900460ff1661216057600c5481600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611da79190612e37565b111561215f57611db5611468565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e235750611df3611468565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561215e57600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611f875750611e8782610906565b8015611eda575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f335750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f86575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b1561206557611f94611468565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612025575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612024575061202283610906565b155b5b612064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205b906130c6565b60405180910390fd5b5b61206e83612525565b158015612081575061207f82612525565b155b6120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b7906130c6565b60405180910390fd5b600b5f9054906101000a900460ff1661215d5760045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661215c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612153906130c6565b60405180910390fd5b5b5b5b5b80600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121ac9190612e37565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221890613154565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361228f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612286906131e2565b60405180910390fd5b5f84116122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c890613270565b60405180910390fd5b8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612348906132d8565b60405180910390fd5b8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461239d9190612a0b565b925050819055508360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123f09190612e37565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612454919061279b565b60405180910390a3505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541180156125ae575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205442105b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125ec5780820151818401526020810190506125d1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612611826125b5565b61261b81856125bf565b935061262b8185602086016125cf565b612634816125f7565b840191505092915050565b5f6020820190508181035f8301526126578184612607565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61268c82612663565b9050919050565b61269c81612682565b81146126a6575f80fd5b50565b5f813590506126b781612693565b92915050565b5f819050919050565b6126cf816126bd565b81146126d9575f80fd5b50565b5f813590506126ea816126c6565b92915050565b5f80604083850312156127065761270561265f565b5b5f612713858286016126a9565b9250506020612724858286016126dc565b9150509250929050565b5f8115159050919050565b6127428161272e565b82525050565b5f60208201905061275b5f830184612739565b92915050565b5f602082840312156127765761277561265f565b5b5f612783848285016126a9565b91505092915050565b612795816126bd565b82525050565b5f6020820190506127ae5f83018461278c565b92915050565b5f602082840312156127c9576127c861265f565b5b5f6127d6848285016126dc565b91505092915050565b5f805f606084860312156127f6576127f561265f565b5b5f612803868287016126a9565b9350506020612814868287016126a9565b9250506040612825868287016126dc565b9150509250925092565b61283881612682565b82525050565b5f6020820190506128515f83018461282f565b92915050565b5f60ff82169050919050565b61286c81612857565b82525050565b5f6020820190506128855f830184612863565b92915050565b5f805f606084860312156128a2576128a161265f565b5b5f6128af868287016126a9565b93505060206128c0868287016126dc565b92505060406128d1868287016126a9565b9150509250925092565b5f80604083850312156128f1576128f061265f565b5b5f6128fe858286016126a9565b925050602061290f858286016126a9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061295d57607f821691505b6020821081036129705761296f612919565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129aa6020836125bf565b91506129b582612976565b602082019050919050565b5f6020820190508181035f8301526129d78161299e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a15826126bd565b9150612a20836126bd565b9250828203905081811115612a3857612a376129de565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612a9357808604811115612a6f57612a6e6129de565b5b6001851615612a7e5780820291505b8081029050612a8c85612a3e565b9450612a53565b94509492505050565b5f82612aab5760019050612b66565b81612ab8575f9050612b66565b8160018114612ace5760028114612ad857612b07565b6001915050612b66565b60ff841115612aea57612ae96129de565b5b8360020a915084821115612b0157612b006129de565b5b50612b66565b5060208310610133831016604e8410600b8410161715612b3c5782820a905083811115612b3757612b366129de565b5b612b66565b612b498484846001612a4a565b92509050818404811115612b6057612b5f6129de565b5b81810290505b9392505050565b5f612b77826126bd565b9150612b8283612857565b9250612baf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a9c565b905092915050565b5f612bc1826126bd565b9150612bcc836126bd565b9250828202612bda816126bd565b91508282048414831517612bf157612bf06129de565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612c526028836125bf565b9150612c5d82612bf8565b604082019050919050565b5f6020820190508181035f830152612c7f81612c46565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ce06022836125bf565b9150612ceb82612c86565b604082019050919050565b5f6020820190508181035f830152612d0d81612cd4565b9050919050565b5f81519050612d22816126c6565b92915050565b5f60208284031215612d3d57612d3c61265f565b5b5f612d4a84828501612d14565b91505092915050565b7f496e73756666696369656e7420416d6f756e74000000000000000000000000005f82015250565b5f612d876013836125bf565b9150612d9282612d53565b602082019050919050565b5f6020820190508181035f830152612db481612d7b565b9050919050565b5f604082019050612dce5f83018561282f565b612ddb602083018461278c565b9392505050565b612deb8161272e565b8114612df5575f80fd5b50565b5f81519050612e0681612de2565b92915050565b5f60208284031215612e2157612e2061265f565b5b5f612e2e84828501612df8565b91505092915050565b5f612e41826126bd565b9150612e4c836126bd565b9250828201905080821115612e6457612e636129de565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ec46026836125bf565b9150612ecf82612e6a565b604082019050919050565b5f6020820190508181035f830152612ef181612eb8565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612f2c601f836125bf565b9150612f3782612ef8565b602082019050919050565b5f6020820190508181035f830152612f5981612f20565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fba6024836125bf565b9150612fc582612f60565b604082019050919050565b5f6020820190508181035f830152612fe781612fae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130486022836125bf565b915061305382612fee565b604082019050919050565b5f6020820190508181035f8301526130758161303c565b9050919050565b7f45727200000000000000000000000000000000000000000000000000000000005f82015250565b5f6130b06003836125bf565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61313e6025836125bf565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6023836125bf565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61325a6029836125bf565b915061326582613200565b604082019050919050565b5f6020820190508181035f8301526132878161324e565b9050919050565b7f4e6f7420656e6f7567682062616c616e636500000000000000000000000000005f82015250565b5f6132c26012836125bf565b91506132cd8261328e565b602082019050919050565b5f6020820190508181035f8301526132ef816132b6565b905091905056fea2646970667358221220c50cfb93eb7ca9374a68594a9f5dadf2f060cf30a2a11491ec8150c34db8146664736f6c63430008140033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000000000000084d6574614d61736b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044d41534b00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : tName (string): MetaMask
Arg [1] : tSymbol (string): MASK
Arg [2] : supply (uint256): 10000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000002540be400
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [4] : 4d6574614d61736b000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 4d41534b00000000000000000000000000000000000000000000000000000000


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.