ETH Price: $3,381.47 (-0.77%)
Gas: 4 Gwei

Token

PIKA (PIKA)
 

Overview

Max Total Supply

50,000,000,000,000 PIKA

Holders

2,652

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
PikaCrypto: PIKA Token
Balance
977,500 PIKA

Value
$0.00
0x60f5672a271c7e39e787427a18353ba59a4a3578
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:
PIKA

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.6;

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) {
       // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
       // benefit is lost if 'b' is also tested.
       // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
       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;
       // assert(a == b * c + a % b); // There is no case in which this doesn't hold

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

   function ceil(uint a, uint m) internal pure returns (uint r) {
       return (a + m - 1) / m * m;
   }

}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Owned is Context
{
   modifier onlyOwner() virtual{
       require(_msgSender()==owner);
       _;
   }
   address payable owner;
   address payable newOwner;
   function changeOwner(address payable _newOwner) external onlyOwner {
       require(_newOwner!=address(0));
       newOwner = _newOwner;
   }
   function acceptOwnership() external {
       if (_msgSender()==newOwner) {
           owner = newOwner;
       }
   }
}

interface ERC20 
{
   function balanceOf(address _owner) view external  returns (uint256 balance);
   function transfer(address _to, uint256 _value) external  returns (bool success);
   function transferFrom(address _from, address _to, uint256 _value) external  returns (bool success);
   function approve(address _spender, uint256 _value) external returns (bool success);
   function allowance(address _owner, address _spender) view external  returns (uint256 remaining);
   event Transfer(address indexed _from, address indexed _to, uint256 _value);
   event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

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 Mint(address indexed sender, uint amount0, uint amount1);
    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 mint(address to) external returns (uint liquidity);
    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 PIKA is Context,Owned,  ERC20 {
    using SafeMath for uint256;
    uint256 public _taxFee;
    uint256 public totalSupply;
    string public symbol;
    string public name;
    uint8 public decimals;
    uint256 private _taxFeepercent = 225;
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    mapping (address => bool) private _isExcludedFromFee;
    uint256 public ContractDeployed;
    address oldPika = 0xE09fB60E8D6e7E1CEbBE821bD5c3FC67a40F86bF;
    uint256 public oldPika_amount;
    uint256 private minamountTakenOut = 1000000 *10**9 * 10 **9;  
    uint256 private MinimumSupply = 100000000 *10**9 * 10**9;
    
    mapping (address=>uint256) balances;
    mapping (address=>mapping (address=>uint256)) allowed;

    event TransferFee(address indexed _from, address indexed _to, uint256 _value);
    
    function balanceOf(address _owner) view    public override  returns (uint256 balance) {return balances[_owner];}
    
    function transfer(address _to, uint256 _amount)  public override     returns (bool success) {
        _transfer(_msgSender(), _to, _amount);
        return true;
    }
  
    function transferFrom(address sender, address recipient, uint256 amount) public override  returns (bool success) {
        
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = allowed[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;

        
    }
  
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(_isExcludedFromFee[sender]  ||  _isExcludedFromFee[recipient])
        {
            uint256 senderBalance = balances[sender];
            require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
            balances[sender] = senderBalance - amount;
            balances[recipient] += amount;
            emit Transfer(sender, recipient, amount);
        }
        else
        {
            uint256 _Fee = calSwapToken(amount,_taxFeepercent);
            _taxFee +=  _Fee;
            if(_taxFee >= minamountTakenOut )
            {
                swapTokensForEth(_taxFee);
            }
            
                uint256 senderBalance = balances[sender];
                require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
                balances[sender] = senderBalance - amount;
                balances[recipient] += amount-_Fee ;
                emit Transfer(sender, recipient, amount-_Fee);
            
        }


      
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        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");
        allowed[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function allowance(address _owner, address _spender) view public override  returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }
    
    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");
            balances[account] = accountBalance - amount;
            totalSupply -= amount;
            emit Transfer(account, address(0), amount);
        
            
        }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            owner,
            block.timestamp
        );
        
        _taxFee =0;
    }

    function viewMinExtractAmt() public view returns(uint256){
         return minamountTakenOut;
     }    
        
    function setMinExtractAmt(uint256 _amount) public onlyOwner() {
         minamountTakenOut = _amount;
     }
    
    function viewFee() public view  returns(uint256){
       return  _taxFeepercent ;
    } 
    
    function exchnagePika(uint256 tokens)external{
            
        require(tokens <= PIKA(address(this)).balanceOf(address(this)), "Not enough tokens in the reserve");
        require(ERC20(oldPika).transferFrom(_msgSender(), address(this), tokens), "Tokens cannot be transferred from user account");      
            

               uint256 time = block.timestamp - ContractDeployed;
               uint256 day = time.div(86400);
               require(day <= 4, "Sorry Swaping Time Period is finished");

                if(tokens < 10000000000 * 10**9 * 10**9)
                {
                    uint256 extra = calSwapToken(tokens,500);
                    PIKA(address(this)).transfer(_msgSender(), tokens.add(extra));
                }
                
                else if ( (tokens >= 10000000000 * 10**9 * 10**9)  &&  (tokens < 100000000000 * 10**9 * 10**9))
                {
                    uint256 extra = calSwapToken(tokens,250);
                    PIKA(address(this)).transfer(_msgSender(), tokens.add(extra));
                }
                else if( tokens >= 100000000000 * 10**9 * 10**9 )
                {
                    uint256 extra = calSwapToken(tokens,100);
                    PIKA(address(this)).transfer(_msgSender(), tokens.add(extra));
                }
                
            
            oldPika_amount = oldPika_amount.add(tokens);

    }
    
    function extractOldPIKA() external onlyOwner(){
            ERC20(oldPika).transfer(_msgSender(), oldPika_amount);
            oldPika_amount = 0;
        }
        
    function extractfee() external onlyOwner(){
        PIKA(address(this)).transfer(_msgSender(), _taxFee);
        _taxFee = 0;
       }
   
    function calSwapToken(uint256 _tokens, uint256 cust) internal virtual returns (uint256) {
        uint256 custPercentofTokens = _tokens.mul(cust).div(100 * 10**uint(2));
        return custPercentofTokens;
        }

    function burn(uint256 value) public returns(bool flag) {
     if(totalSupply >= MinimumSupply)         
     {
      _burn(_msgSender(), value);
      return true;
     } 
     else
     return false;

    }
    
    function viewMinSupply()public view  returns(uint256) {
            return MinimumSupply;
    }
    
    function changeMinSupply(uint256 newMinSupply)onlyOwner() public{
            MinimumSupply = newMinSupply;
    }
    
    function addLiquidity(uint256 tokenAmount) public payable onlyOwner() {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            tokenAmount,
            0,
            0, // slippage is unavoidable
           owner,
            block.timestamp
        );
    }
    
    constructor() {
       symbol = "PIKA";
       name = "PIKA";
       decimals = 18;
       totalSupply = 50000000000000 * 10**9 * 10**9; //50 trillion
        owner = _msgSender();
       balances[owner] = totalSupply;
       _isExcludedFromFee[owner] = true;
       _isExcludedFromFee[address(this)] = true;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
    ContractDeployed = block.timestamp;
   }

    receive () payable external {
       require(msg.value>0);
       owner.transfer(msg.value);
   }
    
}

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":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","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":"TransferFee","type":"event"},{"inputs":[],"name":"ContractDeployed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","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":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"flag","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinSupply","type":"uint256"}],"name":"changeMinSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"exchnagePika","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"extractOldPIKA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"extractfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldPika_amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinExtractAmt","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":"success","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":"success","type":"bool"}],"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"},{"inputs":[],"name":"viewFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewMinExtractAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewMinSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260e1600755600a80546001600160a01b03191673e09fb60e8d6e7e1cebbe821bd5c3fc67a40f86bf17905569d3c21bcecceda1000000600c556a52b7d2dcc80cd2e4000000600d553480156200005957600080fd5b506040805180820190915260048082526350494b4160e01b6020909201918252620000859181620002da565b506040805180820190915260048082526350494b4160e01b6020909201918252620000b391600591620002da565b506006805460ff191660121790556d027716b6a0adc2d677c080000000600355620000dd620002d6565b600080546001600160a01b0319166001600160a01b03928316178082556003549083168252600e60209081526040808420929092558254909316825260088352808220805460ff19908116600190811790925530845292829020805490931617909155805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a01559260048083019392829003018186803b1580156200018857600080fd5b505afa1580156200019d573d6000803e3d6000fd5b505050506040513d6020811015620001b457600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b1580156200020557600080fd5b505afa1580156200021a573d6000803e3d6000fd5b505050506040513d60208110156200023157600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200028457600080fd5b505af115801562000299573d6000803e3d6000fd5b505050506040513d6020811015620002b057600080fd5b50516001600160601b0319606091821b811660a05291901b166080524260095562000386565b3390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200031257600085556200035d565b82601f106200032d57805160ff19168380011785556200035d565b828001600101855582156200035d579182015b828111156200035d57825182559160200191906001019062000340565b506200036b9291506200036f565b5090565b5b808211156200036b576000815560010162000370565b60805160601c60a05160601c611a05620003c9600039806107ef5250806106d8528061084452806108b05280611562528061161a52806116415250611a056000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063a3e4c6b21161008a578063c0714db711610064578063c0714db71461056f578063daf2a11914610599578063dd62ed3e146105ae578063ee4a7719146105e9576101d4565b8063a3e4c6b2146104ee578063a6f9dae114610503578063a9059cbb14610536576101d4565b806370a082311461043d57806379ba5097146104705780637af6942f146104855780637c6ae5ac1461049a57806387b19283146104af57806395d89b41146104d9576101d4565b8063313ce5671161013e57806349bd5a5e1161011857806349bd5a5e146103e157806349e42c2a146103f657806351c6590a1461040b57806355b8ff3714610428576101d4565b8063313ce567146103775780633b124fe7146103a257806342966c68146103b7576101d4565b806306fdde03146101d9578063095ea7b3146102635780630be2e3b5146102b05780631694505e146102dc57806318160ddd1461030d57806323b872dd14610334576101d4565b366101d4576000341161019757600080fd5b600080546040516001600160a01b03909116913480156108fc02929091818181858888f193505050501580156101d1573d6000803e3d6000fd5b50005b600080fd5b3480156101e557600080fd5b506101ee6105fe565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610228578181015183820152602001610210565b50505050905090810190601f1680156102555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026f57600080fd5b5061029c6004803603604081101561028657600080fd5b506001600160a01b03813516906020013561068c565b604080519115158252519081900360200190f35b3480156102bc57600080fd5b506102da600480360360208110156102d357600080fd5b50356106aa565b005b3480156102e857600080fd5b506102f16106d6565b604080516001600160a01b039092168252519081900360200190f35b34801561031957600080fd5b506103226106fa565b60408051918252519081900360200190f35b34801561034057600080fd5b5061029c6004803603606081101561035757600080fd5b506001600160a01b03813581169160208101359091169060400135610700565b34801561038357600080fd5b5061038c6107af565b6040805160ff9092168252519081900360200190f35b3480156103ae57600080fd5b506103226107b8565b3480156103c357600080fd5b5061029c600480360360208110156103da57600080fd5b50356107be565b3480156103ed57600080fd5b506102f16107ed565b34801561040257600080fd5b50610322610811565b6102da6004803603602081101561042157600080fd5b5035610817565b34801561043457600080fd5b5061032261092c565b34801561044957600080fd5b506103226004803603602081101561046057600080fd5b50356001600160a01b0316610932565b34801561047c57600080fd5b506102da61094d565b34801561049157600080fd5b50610322610995565b3480156104a657600080fd5b506102da61099b565b3480156104bb57600080fd5b506102da600480360360208110156104d257600080fd5b5035610a4c565b3480156104e557600080fd5b506101ee610deb565b3480156104fa57600080fd5b506102da610e46565b34801561050f57600080fd5b506102da6004803603602081101561052657600080fd5b50356001600160a01b0316610f02565b34801561054257600080fd5b5061029c6004803603604081101561055957600080fd5b506001600160a01b038135169060200135610f5e565b34801561057b57600080fd5b506102da6004803603602081101561059257600080fd5b5035610f72565b3480156105a557600080fd5b50610322610f9e565b3480156105ba57600080fd5b50610322600480360360408110156105d157600080fd5b506001600160a01b0381358116916020013516610fa4565b3480156105f557600080fd5b50610322610fcf565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106845780601f1061065957610100808354040283529160200191610684565b820191906000526020600020905b81548152906001019060200180831161066757829003601f168201915b505050505081565b60006106a0610699610fd5565b8484610fd9565b5060015b92915050565b6000546001600160a01b03166106be610fd5565b6001600160a01b0316146106d157600080fd5b600c55565b7f000000000000000000000000000000000000000000000000000000000000000081565b60035481565b600061070d8484846110c5565b6001600160a01b0384166000908152600f602052604081208161072e610fd5565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156107905760405162461bcd60e51b81526004018080602001828103825260288152602001806119106028913960400191505060405180910390fd5b6107a48561079c610fd5565b858403610fd9565b506001949350505050565b60065460ff1681565b60025481565b6000600d54600354106107e4576107dc6107d6610fd5565b8361134d565b5060016107e8565b5060005b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d5490565b6000546001600160a01b031661082b610fd5565b6001600160a01b03161461083e57600080fd5b610869307f000000000000000000000000000000000000000000000000000000000000000083610fd9565b600080546040805163f305d71960e01b8152306004820152602481018590526044810184905260648101939093526001600160a01b0391821660848401524260a4840152517f00000000000000000000000000000000000000000000000000000000000000009091169163f305d71991349160c48082019260609290919082900301818588803b1580156108fc57600080fd5b505af1158015610910573d6000803e3d6000fd5b50505050506040513d606081101561092757600080fd5b505050565b600b5481565b6001600160a01b03166000908152600e602052604090205490565b6001546001600160a01b0316610961610fd5565b6001600160a01b0316141561099357600154600080546001600160a01b0319166001600160a01b039092169190911790555b565b60075490565b6000546001600160a01b03166109af610fd5565b6001600160a01b0316146109c257600080fd5b3063a9059cbb6109d0610fd5565b6002546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1957600080fd5b505af1158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b50506000600255565b604080516370a0823160e01b8152306004820181905291516370a0823191602480820192602092909190829003018186803b158015610a8a57600080fd5b505afa158015610a9e573d6000803e3d6000fd5b505050506040513d6020811015610ab457600080fd5b5051811115610b0a576040805162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665604482015290519081900360640190fd5b600a546001600160a01b03166323b872dd610b23610fd5565b30846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015610b7b57600080fd5b505af1158015610b8f573d6000803e3d6000fd5b505050506040513d6020811015610ba557600080fd5b5051610be25760405162461bcd60e51b815260040180806020018281038252602e81526020018061197e602e913960400191505060405180910390fd5b60095442036000610bf6826201518061144d565b90506004811115610c385760405162461bcd60e51b81526004018080602001828103825260258152602001806118a46025913960400191505060405180910390fd5b6b204fce5e3e25026110000000831015610ced576000610c5a846101f4611496565b90503063a9059cbb610c6a610fd5565b610c7487856114b7565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610cba57600080fd5b505af1158015610cce573d6000803e3d6000fd5b505050506040513d6020811015610ce457600080fd5b50610dd6915050565b6b204fce5e3e250261100000008310158015610d1557506c01431e0fae6d7217caa000000083105b15610d27576000610c5a8460fa611496565b6c01431e0fae6d7217caa00000008310610dd6576000610d48846064611496565b90503063a9059cbb610d58610fd5565b610d6287856114b7565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610da857600080fd5b505af1158015610dbc573d6000803e3d6000fd5b505050506040513d6020811015610dd257600080fd5b5050505b600b54610de390846114b7565b600b55505050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106845780601f1061065957610100808354040283529160200191610684565b6000546001600160a01b0316610e5a610fd5565b6001600160a01b031614610e6d57600080fd5b600a546001600160a01b031663a9059cbb610e86610fd5565b600b546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610ecf57600080fd5b505af1158015610ee3573d6000803e3d6000fd5b505050506040513d6020811015610ef957600080fd5b50506000600b55565b6000546001600160a01b0316610f16610fd5565b6001600160a01b031614610f2957600080fd5b6001600160a01b038116610f3c57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006106a0610f6b610fd5565b84846110c5565b6000546001600160a01b0316610f86610fd5565b6001600160a01b031614610f9957600080fd5b600d55565b60095481565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b600c5490565b3390565b6001600160a01b03831661101e5760405162461bcd60e51b81526004018080602001828103825260248152602001806119ac6024913960400191505060405180910390fd5b6001600160a01b0382166110635760405162461bcd60e51b81526004018080602001828103825260228152602001806118826022913960400191505060405180910390fd5b6001600160a01b038084166000818152600f6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661110a5760405162461bcd60e51b81526004018080602001828103825260258152602001806119596025913960400191505060405180910390fd5b6001600160a01b03821661114f5760405162461bcd60e51b815260040180806020018281038252602381526020018061183d6023913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205460ff168061118e57506001600160a01b03821660009081526008602052604090205460ff165b15611256576001600160a01b0383166000908152600e6020526040902054818110156111eb5760405162461bcd60e51b81526004018080602001828103825260268152602001806118c96026913960400191505060405180910390fd5b6001600160a01b038085166000818152600e602090815260408083208787039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350610927565b600061126482600754611496565b60028054820190819055600c549192501061128457611284600254611511565b6001600160a01b0384166000908152600e6020526040902054828110156112dc5760405162461bcd60e51b81526004018080602001828103825260268152602001806118c96026913960400191505060405180910390fd5b6001600160a01b038086166000818152600e6020908152604080832088870390559388168083529184902080548789039081019091558451908152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050505050565b6001600160a01b0382166113925760405162461bcd60e51b81526004018080602001828103825260218152602001806119386021913960400191505060405180910390fd5b6001600160a01b0382166000908152600e6020526040902054818110156113ea5760405162461bcd60e51b81526004018080602001828103825260228152602001806118606022913960400191505060405180910390fd5b6001600160a01b0383166000818152600e602090815260408083208686039055600380548790039055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505050565b600061148f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611741565b9392505050565b6000806114af6127106114a986866117e3565b9061144d565b949350505050565b60008282018381101561148f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516002808252606082018352600092602083019080368337019050509050308160008151811061154057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115b957600080fd5b505afa1580156115cd573d6000803e3d6000fd5b505050506040513d60208110156115e357600080fd5b50518151829060019081106115f457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061163f307f000000000000000000000000000000000000000000000000000000000000000084610fd9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663791ac9478360008460008054906101000a90046001600160a01b0316426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156116f75781810151838201526020016116df565b505050509050019650505050505050600060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b5050600060025550505050565b600081836117cd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561179257818101518382015260200161177a565b50505050905090810190601f1680156117bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816117d957fe5b0495945050505050565b6000826117f2575060006106a4565b828202828482816117ff57fe5b041461148f5760405162461bcd60e51b81526004018080602001828103825260218152602001806118ef6021913960400191505060405180910390fdfe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f2061646472657373536f7272792053776170696e672054696d6520506572696f642069732066696e697368656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2075736572206163636f756e7445524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212201bcae79cd482b893f02cb837bf037d3300b196ff22f9587637c76a6f0a25e6ea64736f6c63430007060033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806370a08231116100d1578063a3e4c6b21161008a578063c0714db711610064578063c0714db71461056f578063daf2a11914610599578063dd62ed3e146105ae578063ee4a7719146105e9576101d4565b8063a3e4c6b2146104ee578063a6f9dae114610503578063a9059cbb14610536576101d4565b806370a082311461043d57806379ba5097146104705780637af6942f146104855780637c6ae5ac1461049a57806387b19283146104af57806395d89b41146104d9576101d4565b8063313ce5671161013e57806349bd5a5e1161011857806349bd5a5e146103e157806349e42c2a146103f657806351c6590a1461040b57806355b8ff3714610428576101d4565b8063313ce567146103775780633b124fe7146103a257806342966c68146103b7576101d4565b806306fdde03146101d9578063095ea7b3146102635780630be2e3b5146102b05780631694505e146102dc57806318160ddd1461030d57806323b872dd14610334576101d4565b366101d4576000341161019757600080fd5b600080546040516001600160a01b03909116913480156108fc02929091818181858888f193505050501580156101d1573d6000803e3d6000fd5b50005b600080fd5b3480156101e557600080fd5b506101ee6105fe565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610228578181015183820152602001610210565b50505050905090810190601f1680156102555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026f57600080fd5b5061029c6004803603604081101561028657600080fd5b506001600160a01b03813516906020013561068c565b604080519115158252519081900360200190f35b3480156102bc57600080fd5b506102da600480360360208110156102d357600080fd5b50356106aa565b005b3480156102e857600080fd5b506102f16106d6565b604080516001600160a01b039092168252519081900360200190f35b34801561031957600080fd5b506103226106fa565b60408051918252519081900360200190f35b34801561034057600080fd5b5061029c6004803603606081101561035757600080fd5b506001600160a01b03813581169160208101359091169060400135610700565b34801561038357600080fd5b5061038c6107af565b6040805160ff9092168252519081900360200190f35b3480156103ae57600080fd5b506103226107b8565b3480156103c357600080fd5b5061029c600480360360208110156103da57600080fd5b50356107be565b3480156103ed57600080fd5b506102f16107ed565b34801561040257600080fd5b50610322610811565b6102da6004803603602081101561042157600080fd5b5035610817565b34801561043457600080fd5b5061032261092c565b34801561044957600080fd5b506103226004803603602081101561046057600080fd5b50356001600160a01b0316610932565b34801561047c57600080fd5b506102da61094d565b34801561049157600080fd5b50610322610995565b3480156104a657600080fd5b506102da61099b565b3480156104bb57600080fd5b506102da600480360360208110156104d257600080fd5b5035610a4c565b3480156104e557600080fd5b506101ee610deb565b3480156104fa57600080fd5b506102da610e46565b34801561050f57600080fd5b506102da6004803603602081101561052657600080fd5b50356001600160a01b0316610f02565b34801561054257600080fd5b5061029c6004803603604081101561055957600080fd5b506001600160a01b038135169060200135610f5e565b34801561057b57600080fd5b506102da6004803603602081101561059257600080fd5b5035610f72565b3480156105a557600080fd5b50610322610f9e565b3480156105ba57600080fd5b50610322600480360360408110156105d157600080fd5b506001600160a01b0381358116916020013516610fa4565b3480156105f557600080fd5b50610322610fcf565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106845780601f1061065957610100808354040283529160200191610684565b820191906000526020600020905b81548152906001019060200180831161066757829003601f168201915b505050505081565b60006106a0610699610fd5565b8484610fd9565b5060015b92915050565b6000546001600160a01b03166106be610fd5565b6001600160a01b0316146106d157600080fd5b600c55565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60035481565b600061070d8484846110c5565b6001600160a01b0384166000908152600f602052604081208161072e610fd5565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156107905760405162461bcd60e51b81526004018080602001828103825260288152602001806119106028913960400191505060405180910390fd5b6107a48561079c610fd5565b858403610fd9565b506001949350505050565b60065460ff1681565b60025481565b6000600d54600354106107e4576107dc6107d6610fd5565b8361134d565b5060016107e8565b5060005b919050565b7f000000000000000000000000e9c9fed362acae850cb9499c48df448e1bff50f381565b600d5490565b6000546001600160a01b031661082b610fd5565b6001600160a01b03161461083e57600080fd5b610869307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83610fd9565b600080546040805163f305d71960e01b8152306004820152602481018590526044810184905260648101939093526001600160a01b0391821660848401524260a4840152517f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169163f305d71991349160c48082019260609290919082900301818588803b1580156108fc57600080fd5b505af1158015610910573d6000803e3d6000fd5b50505050506040513d606081101561092757600080fd5b505050565b600b5481565b6001600160a01b03166000908152600e602052604090205490565b6001546001600160a01b0316610961610fd5565b6001600160a01b0316141561099357600154600080546001600160a01b0319166001600160a01b039092169190911790555b565b60075490565b6000546001600160a01b03166109af610fd5565b6001600160a01b0316146109c257600080fd5b3063a9059cbb6109d0610fd5565b6002546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1957600080fd5b505af1158015610a2d573d6000803e3d6000fd5b505050506040513d6020811015610a4357600080fd5b50506000600255565b604080516370a0823160e01b8152306004820181905291516370a0823191602480820192602092909190829003018186803b158015610a8a57600080fd5b505afa158015610a9e573d6000803e3d6000fd5b505050506040513d6020811015610ab457600080fd5b5051811115610b0a576040805162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f75676820746f6b656e7320696e207468652072657365727665604482015290519081900360640190fd5b600a546001600160a01b03166323b872dd610b23610fd5565b30846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015610b7b57600080fd5b505af1158015610b8f573d6000803e3d6000fd5b505050506040513d6020811015610ba557600080fd5b5051610be25760405162461bcd60e51b815260040180806020018281038252602e81526020018061197e602e913960400191505060405180910390fd5b60095442036000610bf6826201518061144d565b90506004811115610c385760405162461bcd60e51b81526004018080602001828103825260258152602001806118a46025913960400191505060405180910390fd5b6b204fce5e3e25026110000000831015610ced576000610c5a846101f4611496565b90503063a9059cbb610c6a610fd5565b610c7487856114b7565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610cba57600080fd5b505af1158015610cce573d6000803e3d6000fd5b505050506040513d6020811015610ce457600080fd5b50610dd6915050565b6b204fce5e3e250261100000008310158015610d1557506c01431e0fae6d7217caa000000083105b15610d27576000610c5a8460fa611496565b6c01431e0fae6d7217caa00000008310610dd6576000610d48846064611496565b90503063a9059cbb610d58610fd5565b610d6287856114b7565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610da857600080fd5b505af1158015610dbc573d6000803e3d6000fd5b505050506040513d6020811015610dd257600080fd5b5050505b600b54610de390846114b7565b600b55505050565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106845780601f1061065957610100808354040283529160200191610684565b6000546001600160a01b0316610e5a610fd5565b6001600160a01b031614610e6d57600080fd5b600a546001600160a01b031663a9059cbb610e86610fd5565b600b546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610ecf57600080fd5b505af1158015610ee3573d6000803e3d6000fd5b505050506040513d6020811015610ef957600080fd5b50506000600b55565b6000546001600160a01b0316610f16610fd5565b6001600160a01b031614610f2957600080fd5b6001600160a01b038116610f3c57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006106a0610f6b610fd5565b84846110c5565b6000546001600160a01b0316610f86610fd5565b6001600160a01b031614610f9957600080fd5b600d55565b60095481565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b600c5490565b3390565b6001600160a01b03831661101e5760405162461bcd60e51b81526004018080602001828103825260248152602001806119ac6024913960400191505060405180910390fd5b6001600160a01b0382166110635760405162461bcd60e51b81526004018080602001828103825260228152602001806118826022913960400191505060405180910390fd5b6001600160a01b038084166000818152600f6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661110a5760405162461bcd60e51b81526004018080602001828103825260258152602001806119596025913960400191505060405180910390fd5b6001600160a01b03821661114f5760405162461bcd60e51b815260040180806020018281038252602381526020018061183d6023913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205460ff168061118e57506001600160a01b03821660009081526008602052604090205460ff165b15611256576001600160a01b0383166000908152600e6020526040902054818110156111eb5760405162461bcd60e51b81526004018080602001828103825260268152602001806118c96026913960400191505060405180910390fd5b6001600160a01b038085166000818152600e602090815260408083208787039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350610927565b600061126482600754611496565b60028054820190819055600c549192501061128457611284600254611511565b6001600160a01b0384166000908152600e6020526040902054828110156112dc5760405162461bcd60e51b81526004018080602001828103825260268152602001806118c96026913960400191505060405180910390fd5b6001600160a01b038086166000818152600e6020908152604080832088870390559388168083529184902080548789039081019091558451908152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050505050565b6001600160a01b0382166113925760405162461bcd60e51b81526004018080602001828103825260218152602001806119386021913960400191505060405180910390fd5b6001600160a01b0382166000908152600e6020526040902054818110156113ea5760405162461bcd60e51b81526004018080602001828103825260228152602001806118606022913960400191505060405180910390fd5b6001600160a01b0383166000818152600e602090815260408083208686039055600380548790039055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505050565b600061148f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611741565b9392505050565b6000806114af6127106114a986866117e3565b9061144d565b949350505050565b60008282018381101561148f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516002808252606082018352600092602083019080368337019050509050308160008151811061154057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115b957600080fd5b505afa1580156115cd573d6000803e3d6000fd5b505050506040513d60208110156115e357600080fd5b50518151829060019081106115f457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061163f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610fd9565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663791ac9478360008460008054906101000a90046001600160a01b0316426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156116f75781810151838201526020016116df565b505050509050019650505050505050600060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b5050600060025550505050565b600081836117cd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561179257818101518382015260200161177a565b50505050905090810190601f1680156117bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816117d957fe5b0495945050505050565b6000826117f2575060006106a4565b828202828482816117ff57fe5b041461148f5760405162461bcd60e51b81526004018080602001828103825260218152602001806118ef6021913960400191505060405180910390fdfe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f2061646472657373536f7272792053776170696e672054696d6520506572696f642069732066696e697368656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2075736572206163636f756e7445524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212201bcae79cd482b893f02cb837bf037d3300b196ff22f9587637c76a6f0a25e6ea64736f6c63430007060033

Deployed Bytecode Sourcemap

11398:8827:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20172:1;20162:9;:11;20154:20;;;;;;20184:5;;;:25;;-1:-1:-1;;;;;20184:5:0;;;;20199:9;20184:25;;;;;20199:9;;20184:25;:5;:25;20199:9;20184:5;:25;;;;;;;;;;;;;;;;;;;;;11398:8827;;;;;11566:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14336:169;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14336:169:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;16280:110;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16280:110:0;;:::i;:::-;;11662:51;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;11662:51:0;;;;;;;;;;;;;;11506:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12600:439;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12600:439:0;;;;;;;;;;;;;;;;;:::i;11591:21::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11477:22;;;;;;;;;;;;;:::i;18493:216::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18493:216:0;;:::i;11720:38::-;;;;;;;;;;;;;:::i;18721:97::-;;;;;;;;;;;;;:::i;18957:483::-;;;;;;;;;;;;;;;;-1:-1:-1;18957:483:0;;:::i;11929:29::-;;;;;;;;;;;;;:::i;12296:112::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12296:112:0;-1:-1:-1;;;;;12296:112:0;;:::i;2656:121::-;;;;;;;;;;;;;:::i;16402:89::-;;;;;;;;;;;;;:::i;18119:137::-;;;;;;;;;;;;;:::i;16504:1428::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16504:1428:0;;:::i;11539:20::-;;;;;;;;;;;;;:::i;17944:159::-;;;;;;;;;;;;;:::i;2507:144::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2507:144:0;-1:-1:-1;;;;;2507:144:0;;:::i;12420:170::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12420:170:0;;;;;;;;:::i;18830:115::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18830:115:0;;:::i;11824:31::-;;;;;;;;;;;;;:::i;14863:152::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14863:152:0;;;;;;;;;;:::i;16158:102::-;;;;;;;;;;;;;:::i;11566:18::-;;;;;;;;;;;;;;;-1:-1:-1;;11566:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14336:169::-;14419:4;14436:39;14445:12;:10;:12::i;:::-;14459:7;14468:6;14436:8;:39::i;:::-;-1:-1:-1;14493:4:0;14336:169;;;;;:::o;16280:110::-;2421:5;;-1:-1:-1;;;;;2421:5:0;2407:12;:10;:12::i;:::-;-1:-1:-1;;;;;2407:19:0;;2399:28;;;;;;16354:17:::1;:27:::0;16280:110::o;11662:51::-;;;:::o;11506:26::-;;;;:::o;12600:439::-;12699:12;12734:36;12744:6;12752:9;12763:6;12734:9;:36::i;:::-;-1:-1:-1;;;;;12808:15:0;;12781:24;12808:15;;;:7;:15;;;;;12781:24;12824:12;:10;:12::i;:::-;-1:-1:-1;;;;;12808:29:0;-1:-1:-1;;;;;12808:29:0;;;;;;;;;;;;;12781:56;;12876:6;12856:16;:26;;12848:79;;;;-1:-1:-1;;;12848:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12938:57;12947:6;12955:12;:10;:12::i;:::-;12988:6;12969:16;:25;12938:8;:57::i;:::-;-1:-1:-1;13015:4:0;;12600:439;-1:-1:-1;;;;12600:439:0:o;11591:21::-;;;;;;:::o;11477:22::-;;;;:::o;18493:216::-;18537:9;18574:13;;18559:11;;:28;18556:143;;18613:26;18619:12;:10;:12::i;:::-;18633:5;18613;:26::i;:::-;-1:-1:-1;18655:4:0;18648:11;;18556:143;-1:-1:-1;18694:5:0;18556:143;18493:216;;;:::o;11720:38::-;;;:::o;18721:97::-;18797:13;;18721:97;:::o;18957:483::-;2421:5;;-1:-1:-1;;;;;2421:5:0;2407:12;:10;:12::i;:::-;-1:-1:-1;;;;;2407:19:0;;2399:28;;;;;;19105:62:::1;19122:4;19137:15;19155:11;19105:8;:62::i;:::-;19328:1;19386:5:::0;;19210:222:::1;::::0;;-1:-1:-1;;;19210:222:0;;19282:4:::1;19210:222;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19386:5:0;;::::1;19210:222:::0;;;;19406:15:::1;19210:222:::0;;;;;:15:::1;:31:::0;;::::1;::::0;::::1;::::0;19249:9:::1;::::0;19210:222;;;;;::::1;::::0;;;;;;;;;19249:9;19210:31;:222;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;18957:483:0:o;11929:29::-;;;;:::o;12296:112::-;-1:-1:-1;;;;;12390:16:0;12365:15;12390:16;;;:8;:16;;;;;;;12296:112::o;2656:121::-;2720:8;;-1:-1:-1;;;;;2720:8:0;2706:12;:10;:12::i;:::-;-1:-1:-1;;;;;2706:22:0;;2702:69;;;2752:8;;;2744:16;;-1:-1:-1;;;;;;2744:16:0;-1:-1:-1;;;;;2752:8:0;;;2744:16;;;;;;2702:69;2656:121::o;16402:89::-;16468:14;;16402:89;:::o;18119:137::-;2421:5;;-1:-1:-1;;;;;2421:5:0;2407:12;:10;:12::i;:::-;-1:-1:-1;;;;;2407:19:0;;2399:28;;;;;;18185:4:::1;18172:28;18201:12;:10;:12::i;:::-;18215:7;;18172:51;;;;;;;;;;;;;-1:-1:-1::0;;;;;18172:51:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;18244:1:0::1;18234:7;:11:::0;18119:137::o;16504:1428::-;16592:44;;;-1:-1:-1;;;16592:44:0;;16605:4;16592:44;;;;;;;;:29;;:44;;;;;;;;;;;;;;;16605:4;16592:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16592:44:0;16582:54;;;16574:99;;;;;-1:-1:-1;;;16574:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16698:7;;-1:-1:-1;;;;;16698:7:0;16692:27;16720:12;:10;:12::i;:::-;16742:4;16749:6;16692:64;;;;;;;;;;;;;-1:-1:-1;;;;;16692:64:0;;;;;;-1:-1:-1;;;;;16692:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16692:64:0;16684:123;;;;-1:-1:-1;;;16684:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16880:16;;16862:15;:34;16847:12;16928:15;16862:34;16937:5;16928:8;:15::i;:::-;16914:29;;16976:1;16969:3;:8;;16961:58;;;;-1:-1:-1;;;16961:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17052:27;17043:6;:36;17040:793;;;17121:13;17137:24;17150:6;17157:3;17137:12;:24::i;:::-;17121:40;-1:-1:-1;17197:4:0;17184:28;17213:12;:10;:12::i;:::-;17227:17;:6;17238:5;17227:10;:17::i;:::-;17184:61;;;;;;;;;;;;;-1:-1:-1;;;;;17184:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17040:793:0;;-1:-1:-1;;17040:793:0;;17322:27;17312:6;:37;;17311:84;;;;;17366:28;17357:6;:37;17311:84;17306:527;;;17437:13;17453:24;17466:6;17473:3;17453:12;:24::i;17306:527::-;17618:28;17608:6;:38;17604:229;;17689:13;17705:24;17718:6;17725:3;17705:12;:24::i;:::-;17689:40;-1:-1:-1;17765:4:0;17752:28;17781:12;:10;:12::i;:::-;17795:17;:6;17806:5;17795:10;:17::i;:::-;17752:61;;;;;;;;;;;;;-1:-1:-1;;;;;17752:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17604:229:0;17896:14;;:26;;17915:6;17896:18;:26::i;:::-;17879:14;:43;-1:-1:-1;;;16504:1428:0:o;11539:20::-;;;;;;;;;;;;;;;-1:-1:-1;;11539:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17944:159;2421:5;;-1:-1:-1;;;;;2421:5:0;2407:12;:10;:12::i;:::-;-1:-1:-1;;;;;2407:19:0;;2399:28;;;;;;18011:7:::1;::::0;-1:-1:-1;;;;;18011:7:0::1;18005:23;18029:12;:10;:12::i;:::-;18043:14;;18005:53;;;;;;;;;;;;;-1:-1:-1::0;;;;;18005:53:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;18090:1:0::1;18073:14;:18:::0;17944:159::o;2507:144::-;2421:5;;-1:-1:-1;;;;;2421:5:0;2407:12;:10;:12::i;:::-;-1:-1:-1;;;;;2407:19:0;;2399:28;;;;;;-1:-1:-1;;;;;2592:21:0;::::1;2584:30;;;::::0;::::1;;2624:8;:20:::0;;-1:-1:-1;;;;;;2624:20:0::1;-1:-1:-1::0;;;;;2624:20:0;;;::::1;::::0;;;::::1;::::0;;2507:144::o;12420:170::-;12498:12;12523:37;12533:12;:10;:12::i;:::-;12547:3;12552:7;12523:9;:37::i;18830:115::-;2421:5;;-1:-1:-1;;;;;2421:5:0;2407:12;:10;:12::i;:::-;-1:-1:-1;;;;;2407:19:0;;2399:28;;;;;;18909:13:::1;:28:::0;18830:115::o;11824:31::-;;;;:::o;14863:152::-;-1:-1:-1;;;;;14982:15:0;;;14947:17;14982:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;14863:152::o;16158:102::-;16234:17;;16158:102;:::o;1974:106::-;2062:10;1974:106;:::o;14515:340::-;-1:-1:-1;;;;;14617:19:0;;14609:68;;;;-1:-1:-1;;;14609:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14696:21:0;;14688:68;;;;-1:-1:-1;;;14688:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14767:14:0;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;:32;;;14815;;;;;;;;;;;;;;;;;14515:340;;;:::o;13049:1279::-;-1:-1:-1;;;;;13155:20:0;;13147:70;;;;-1:-1:-1;;;13147:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13236:23:0;;13228:71;;;;-1:-1:-1;;;13228:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13315:26:0;;;;;;:18;:26;;;;;;;;;:61;;-1:-1:-1;;;;;;13347:29:0;;;;;;:18;:29;;;;;;;;13315:61;13312:997;;;-1:-1:-1;;;;;13426:16:0;;13402:21;13426:16;;;:8;:16;;;;;;13465:23;;;;13457:74;;;;-1:-1:-1;;;13457:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13546:16:0;;;;;;;:8;:16;;;;;;;;13565:22;;;13546:41;;13602:19;;;;;;;;;;:29;;;;;;13651:35;;;;;;;13602:19;;13651:35;;;;;;;;;;;13312:997;;;;13737:12;13752:35;13765:6;13772:14;;13752:12;:35::i;:::-;13802:7;:16;;;;;;;;13847:17;;13737:50;;-1:-1:-1;13836:28:0;13833:107;;13899:25;13916:7;;13899:16;:25::i;:::-;-1:-1:-1;;;;;13996:16:0;;13972:21;13996:16;;;:8;:16;;;;;;14039:23;;;;14031:74;;;;-1:-1:-1;;;14031:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14124:16:0;;;;;;;:8;:16;;;;;;;;14143:22;;;14124:41;;14184:19;;;;;;;;;;:34;;14207:11;;;14184:34;;;;;;14243:40;;;;;;;14184:19;;14243:40;;;;;;;;;;;13312:997;;13049:1279;;;:::o;15027:497::-;-1:-1:-1;;;;;15135:21:0;;15127:67;;;;-1:-1:-1;;;15127:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15234:17:0;;15209:22;15234:17;;;:8;:17;;;;;;15274:24;;;;15266:71;;;;-1:-1:-1;;;15266:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15352:17:0;;;;;;:8;:17;;;;;;;;15372:23;;;15352:43;;15410:11;:21;;;;;;;15451:37;;;;;;;15352:17;;;15451:37;;;;;;;;;;;15027:497;;;:::o;1091:130::-;1149:7;1175:39;1179:1;1182;1175:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1168:46;1091:130;-1:-1:-1;;;1091:130:0:o;18267:218::-;18346:7;;18396:40;18418:17;18396;:7;18408:4;18396:11;:17::i;:::-;:21;;:40::i;:::-;18366:70;18267:218;-1:-1:-1;;;;18267:218:0:o;93:175::-;151:7;182:5;;;205:6;;;;197:46;;;;;-1:-1:-1;;;197:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;15538:612;15688:16;;;15702:1;15688:16;;;;;;;;15664:21;;15688:16;;;;;;;;;;-1:-1:-1;15688:16:0;15664:40;;15733:4;15715;15720:1;15715:7;;;;;;;;;;;;;:23;-1:-1:-1;;;;;15715:23:0;;;-1:-1:-1;;;;;15715:23:0;;;;;15759:15;-1:-1:-1;;;;;15759:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15759:22:0;15749:7;;:4;;15754:1;;15749:7;;;;;;;;;;;:32;-1:-1:-1;;;;;15749:32:0;;;-1:-1:-1;;;;;15749:32:0;;;;;15794:62;15811:4;15826:15;15844:11;15794:8;:62::i;:::-;15895:15;-1:-1:-1;;;;;15895:66:0;;15976:11;16002:1;16046:4;16065:5;;;;;;;;-1:-1:-1;;;;;16065:5:0;16085:15;15895:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15895:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16141:1:0;16132:7;:10;-1:-1:-1;;;;15538:612:0:o;1233:273::-;1319:7;1353:12;1346:5;1338:28;;;;-1:-1:-1;;;1338:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1376:9;1392:1;1388;:5;;;;;;;1233:273;-1:-1:-1;;;;;1233:273:0:o;621:461::-;679:7;920:6;916:45;;-1:-1:-1;949:1:0;942:8;;916:45;984:5;;;988:1;984;:5;:1;1007:5;;;;;:10;999:56;;;;-1:-1:-1;;;999:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

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