ETH Price: $2,626.10 (+1.12%)

Token

$venom ($venom)
 

Overview

Max Total Supply

1,000,000,000 $venom

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: $venom 2
Balance
0.000000001 $venom

Value
$0.00
0xf81ad8fdb6cad75d2fe3119874c58d27353170ec
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:
$venom

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-17
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    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 onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    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 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 $venom is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "$venom";
    string constant _symbol = "$venom";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 100) / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 1;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0x9e65403e42843560D622806A6628A72ccdc43A84;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 4; // 0.5%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                0x9e65403e42843560D622806A6628A72ccdc43A84,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        require(amountPercent > 0, "Cannot be equal to zero");
        
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a62000464565b6200005890633b9aca006200047c565b600355606460035460646200006e91906200047c565b6200007a919062000496565b600455600060098190556001600a8190556200009691620004b9565b600b556064600c55600d80546001600160a01b031916739e65403e42843560d622806a6628a72ccdc43a84179055600f805460ff60a01b1916600160a01b179055600354620000e9906103e89062000496565b620000f69060046200047c565b6010553480156200010657600080fd5b5060008054336001600160a01b031991821617909155600154600e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001999190620004cf565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002219190620004cf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002949190620004cf565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600e5485168452825280832060001990558254841680845260088352818420805460ff19908116600190811790925560025490961685528285208054909616179094556003548484526005835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004fa565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003a65781600019048211156200038a576200038a6200034f565b808516156200039857918102915b93841c93908002906200036a565b509250929050565b600082620003bf575060016200045e565b81620003ce575060006200045e565b8160018114620003e75760028114620003f25762000412565b60019150506200045e565b60ff8411156200040657620004066200034f565b50506001821b6200045e565b5060208310610133831016604e8410600b841016171562000437575081810a6200045e565b62000443838362000365565b80600019048211156200045a576200045a6200034f565b0290505b92915050565b60006200047560ff841683620003ae565b9392505050565b80820281158282048414176200045e576200045e6200034f565b600082620004b457634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200045e576200045e6200034f565b600060208284031215620004e257600080fd5b81516001600160a01b03811681146200047557600080fd5b6113a7806200050a6000396000f3fe6080604052600436106101395760003560e01c80636ddd1713116100ab578063a8aa1b311161006f578063a8aa1b311461035e578063a9059cbb1461037e578063dd62ed3e1461039e578063e96fada2146103e4578063f1d5f51714610404578063f887ea401461042457600080fd5b80636ddd1713146102c057806370a08231146102e1578063715018a614610317578063893d20e81461032c57806395d89b411461016e57600080fd5b80632f54bf6e116100fd5780632f54bf6e14610208578063313ce56714610237578063364333f41461025357806352f7c9881461026a578063571ac8b01461028a5780636c0a24eb146102aa57600080fd5b80630445b6671461014557806306fdde031461016e578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101e857600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015b60105481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b5060408051808201825260068152652476656e6f6d60d01b6020820152905161016591906110a9565b3480156101af57600080fd5b506101c36101be36600461110c565b610444565b6040519015158152602001610165565b3480156101df57600080fd5b5060035461015b565b3480156101f457600080fd5b506101c3610203366004611138565b6104b1565b34801561021457600080fd5b506101c3610223366004611179565b6000546001600160a01b0391821691161490565b34801561024357600080fd5b5060405160098152602001610165565b34801561025f57600080fd5b50610268610573565b005b34801561027657600080fd5b50610268610285366004611196565b6105af565b34801561029657600080fd5b506101c36102a5366004611179565b6105fd565b3480156102b657600080fd5b5061015b60045481565b3480156102cc57600080fd5b50600f546101c390600160a01b900460ff1681565b3480156102ed57600080fd5b5061015b6102fc366004611179565b6001600160a01b031660009081526005602052604090205490565b34801561032357600080fd5b5061026861060b565b34801561033857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b34801561036a57600080fd5b50600f54610346906001600160a01b031681565b34801561038a57600080fd5b506101c361039936600461110c565b61067a565b3480156103aa57600080fd5b5061015b6103b93660046111b8565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156103f057600080fd5b50600d54610346906001600160a01b031681565b34801561041057600080fd5b5061026861041f3660046111f1565b610687565b34801561043057600080fd5b50600e54610346906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061049f9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461055e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610539918490610722565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61056984848461075c565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105ac573d6000803e3d6000fd5b50565b6000546001600160a01b031633146105e25760405162461bcd60e51b81526004016105d99061120a565b60405180910390fd5b6009829055600a8190556105f68183611240565b600b555050565b60006104ab82600019610444565b6000546001600160a01b031633146106355760405162461bcd60e51b81526004016105d99061120a565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b600061056c33848461075c565b6000546001600160a01b031633146106b15760405162461bcd60e51b81526004016105d99061120a565b600081116107015760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420626520657175616c20746f207a65726f00000000000000000060448201526064016105d9565b6103e8816003546107129190611253565b61071c919061126a565b60045550565b600081848411156107465760405162461bcd60e51b81526004016105d991906110a9565b506000610753848661128c565b95945050505050565b60115460009060ff161561077c57610775848484610986565b905061056c565b600f546001600160a01b038481169116148015906107a857506002546001600160a01b03848116911614155b15610853576001600160a01b03831660009081526008602052604090205460ff16806107f957506004546001600160a01b0384166000908152600560205260409020546107f6908490611240565b11155b6108535760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105d9565b61085b610a6c565b1561086857610868610ac4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546108ba918490610722565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108ef57826108f9565b6108f98584610e70565b6001600160a01b03851660009081526005602052604090205490915061091f9082610f16565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109739085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546109d7918490610722565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610a069083610f16565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a5a9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610a8d575060115460ff16155b8015610aa25750600f54600160a01b900460ff165b8015610abf57506010543060009081526005602052604090205410155b905090565b6011805460ff19166001179055601054600b54600954600091610af791600291610af19182908790610f75565b90610ff7565b90506000610b058383611039565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610b3f57610b3f61129f565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbc91906112b5565b81600181518110610bcf57610bcf61129f565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610c199086906000908790309042906004016112d2565b600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b505050506000610c60824761103990919063ffffffff16565b90506000610c86610c7d6002600954610ff790919063ffffffff16565b600b5490611039565b90506000610ca86002610af184610af160095488610f7590919063ffffffff16565b90506000610cc583610af1600a5487610f7590919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610d1c576040519150601f19603f3d011682016040523d82523d6000602084013e610d21565b606091505b5050905080610d725760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016105d9565b8815610e5a57600e5460405163f305d71960e01b8152306004820152602481018b90526000604482018190526064820152739e65403e42843560d622806a6628a72ccdc43a8460848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015610df8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e1d9190611343565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610e8e600c54610af1600b5486610f7590919063ffffffff16565b30600090815260056020526040902054909150610eab9082610f16565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610efc9085815260200190565b60405180910390a3610f0e8382611039565b949350505050565b600080610f238385611240565b90508381101561056c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d9565b600082600003610f87575060006104ab565b6000610f938385611253565b905082610fa0858361126a565b1461056c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d9565b600061056c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061107b565b600061056c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610722565b6000818361109c5760405162461bcd60e51b81526004016105d991906110a9565b506000610753848661126a565b600060208083528351808285015260005b818110156110d6578581018301518582016040015282016110ba565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105ac57600080fd5b6000806040838503121561111f57600080fd5b823561112a816110f7565b946020939093013593505050565b60008060006060848603121561114d57600080fd5b8335611158816110f7565b92506020840135611168816110f7565b929592945050506040919091013590565b60006020828403121561118b57600080fd5b813561056c816110f7565b600080604083850312156111a957600080fd5b50508035926020909101359150565b600080604083850312156111cb57600080fd5b82356111d6816110f7565b915060208301356111e6816110f7565b809150509250929050565b60006020828403121561120357600080fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156104ab576104ab61122a565b80820281158282048414176104ab576104ab61122a565b60008261128757634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104ab576104ab61122a565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156112c757600080fd5b815161056c816110f7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113225784516001600160a01b0316835293830193918301916001016112fd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561135857600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bd3b2f9a1343b75d014903d612fd2a698a2dc9cf06f9e07913c1df98d9ecc7bf64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80636ddd1713116100ab578063a8aa1b311161006f578063a8aa1b311461035e578063a9059cbb1461037e578063dd62ed3e1461039e578063e96fada2146103e4578063f1d5f51714610404578063f887ea401461042457600080fd5b80636ddd1713146102c057806370a08231146102e1578063715018a614610317578063893d20e81461032c57806395d89b411461016e57600080fd5b80632f54bf6e116100fd5780632f54bf6e14610208578063313ce56714610237578063364333f41461025357806352f7c9881461026a578063571ac8b01461028a5780636c0a24eb146102aa57600080fd5b80630445b6671461014557806306fdde031461016e578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101e857600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015b60105481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b5060408051808201825260068152652476656e6f6d60d01b6020820152905161016591906110a9565b3480156101af57600080fd5b506101c36101be36600461110c565b610444565b6040519015158152602001610165565b3480156101df57600080fd5b5060035461015b565b3480156101f457600080fd5b506101c3610203366004611138565b6104b1565b34801561021457600080fd5b506101c3610223366004611179565b6000546001600160a01b0391821691161490565b34801561024357600080fd5b5060405160098152602001610165565b34801561025f57600080fd5b50610268610573565b005b34801561027657600080fd5b50610268610285366004611196565b6105af565b34801561029657600080fd5b506101c36102a5366004611179565b6105fd565b3480156102b657600080fd5b5061015b60045481565b3480156102cc57600080fd5b50600f546101c390600160a01b900460ff1681565b3480156102ed57600080fd5b5061015b6102fc366004611179565b6001600160a01b031660009081526005602052604090205490565b34801561032357600080fd5b5061026861060b565b34801561033857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b34801561036a57600080fd5b50600f54610346906001600160a01b031681565b34801561038a57600080fd5b506101c361039936600461110c565b61067a565b3480156103aa57600080fd5b5061015b6103b93660046111b8565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156103f057600080fd5b50600d54610346906001600160a01b031681565b34801561041057600080fd5b5061026861041f3660046111f1565b610687565b34801561043057600080fd5b50600e54610346906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061049f9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461055e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610539918490610722565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61056984848461075c565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105ac573d6000803e3d6000fd5b50565b6000546001600160a01b031633146105e25760405162461bcd60e51b81526004016105d99061120a565b60405180910390fd5b6009829055600a8190556105f68183611240565b600b555050565b60006104ab82600019610444565b6000546001600160a01b031633146106355760405162461bcd60e51b81526004016105d99061120a565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b600061056c33848461075c565b6000546001600160a01b031633146106b15760405162461bcd60e51b81526004016105d99061120a565b600081116107015760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420626520657175616c20746f207a65726f00000000000000000060448201526064016105d9565b6103e8816003546107129190611253565b61071c919061126a565b60045550565b600081848411156107465760405162461bcd60e51b81526004016105d991906110a9565b506000610753848661128c565b95945050505050565b60115460009060ff161561077c57610775848484610986565b905061056c565b600f546001600160a01b038481169116148015906107a857506002546001600160a01b03848116911614155b15610853576001600160a01b03831660009081526008602052604090205460ff16806107f957506004546001600160a01b0384166000908152600560205260409020546107f6908490611240565b11155b6108535760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105d9565b61085b610a6c565b1561086857610868610ac4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546108ba918490610722565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108ef57826108f9565b6108f98584610e70565b6001600160a01b03851660009081526005602052604090205490915061091f9082610f16565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109739085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546109d7918490610722565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610a069083610f16565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a5a9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610a8d575060115460ff16155b8015610aa25750600f54600160a01b900460ff165b8015610abf57506010543060009081526005602052604090205410155b905090565b6011805460ff19166001179055601054600b54600954600091610af791600291610af19182908790610f75565b90610ff7565b90506000610b058383611039565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610b3f57610b3f61129f565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbc91906112b5565b81600181518110610bcf57610bcf61129f565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610c199086906000908790309042906004016112d2565b600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b505050506000610c60824761103990919063ffffffff16565b90506000610c86610c7d6002600954610ff790919063ffffffff16565b600b5490611039565b90506000610ca86002610af184610af160095488610f7590919063ffffffff16565b90506000610cc583610af1600a5487610f7590919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610d1c576040519150601f19603f3d011682016040523d82523d6000602084013e610d21565b606091505b5050905080610d725760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016105d9565b8815610e5a57600e5460405163f305d71960e01b8152306004820152602481018b90526000604482018190526064820152739e65403e42843560d622806a6628a72ccdc43a8460848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015610df8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e1d9190611343565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610e8e600c54610af1600b5486610f7590919063ffffffff16565b30600090815260056020526040902054909150610eab9082610f16565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610efc9085815260200190565b60405180910390a3610f0e8382611039565b949350505050565b600080610f238385611240565b90508381101561056c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105d9565b600082600003610f87575060006104ab565b6000610f938385611253565b905082610fa0858361126a565b1461056c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105d9565b600061056c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061107b565b600061056c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610722565b6000818361109c5760405162461bcd60e51b81526004016105d991906110a9565b506000610753848661126a565b600060208083528351808285015260005b818110156110d6578581018301518582016040015282016110ba565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105ac57600080fd5b6000806040838503121561111f57600080fd5b823561112a816110f7565b946020939093013593505050565b60008060006060848603121561114d57600080fd5b8335611158816110f7565b92506020840135611168816110f7565b929592945050506040919091013590565b60006020828403121561118b57600080fd5b813561056c816110f7565b600080604083850312156111a957600080fd5b50508035926020909101359150565b600080604083850312156111cb57600080fd5b82356111d6816110f7565b915060208301356111e6816110f7565b809150509250929050565b60006020828403121561120357600080fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156104ab576104ab61122a565b80820281158282048414176104ab576104ab61122a565b60008261128757634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104ab576104ab61122a565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156112c757600080fd5b815161056c816110f7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113225784516001600160a01b0316835293830193918301916001016112fd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561135857600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bd3b2f9a1343b75d014903d612fd2a698a2dc9cf06f9e07913c1df98d9ecc7bf64736f6c63430008130033

Deployed Bytecode Sourcemap

4082:7674:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5090:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5090:54:0;;;;;;;;6025:80;;;;;;;;;;-1:-1:-1;6097:5:0;;;;;;;;;;;-1:-1:-1;;;6097:5:0;;;;6025:80;;;;6097:5;6025:80;:::i;6447:216::-;;;;;;;;;;-1:-1:-1;6447:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6447:216:0;1205:187:1;5755:88:0;;;;;;;;;;-1:-1:-1;5828:12:0;;5755:88;;6965:370;;;;;;;;;;-1:-1:-1;6965:370:0;;;;;:::i;:::-;;:::i;2320:103::-;;;;;;;;;;-1:-1:-1;2320:103:0;;;;;:::i;:::-;2375:4;2410:5;-1:-1:-1;;;;;2399:16:0;;;2410:5;;2399:16;;2320:103;5849:80;;;;;;;;;;-1:-1:-1;5849:80:0;;4401:1;2252:36:1;;2240:2;2225:18;5849:80:0;2110:184:1;11107:118:0;;;;;;;;;;;;;:::i;:::-;;11457:220;;;;;;;;;;-1:-1:-1;11457:220:0;;;;;:::i;:::-;;:::i;6671:122::-;;;;;;;;;;-1:-1:-1;6671:122:0;;;;;:::i;:::-;;:::i;4474:60::-;;;;;;;;;;;;;;;;5053:30;;;;;;;;;;-1:-1:-1;5053:30:0;;;;-1:-1:-1;;;5053:30:0;;;;;;6195:105;;;;;;;;;;-1:-1:-1;6195:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6279:18:0;6261:7;6279:18;;;:9;:18;;;;;;;6195:105;2429:131;;;;;;;;;;;;;:::i;6111:78::-;;;;;;;;;;-1:-1:-1;6163:7:0;6181:5;-1:-1:-1;;;;;6181:5:0;6111:78;;;-1:-1:-1;;;;;2716:32:1;;;2698:51;;2686:2;2671:18;6111:78:0;2552:203:1;5025:19:0;;;;;;;;;;-1:-1:-1;5025:19:0;;;;-1:-1:-1;;;;;5025:19:0;;;6801:156;;;;;;;;;;-1:-1:-1;6801:156:0;;;;;:::i;:::-;;:::i;6306:133::-;;;;;;;;;;-1:-1:-1;6306:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6408:19:0;;;6390:7;6408:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6306:133;4905:80;;;;;;;;;;-1:-1:-1;4905:80:0;;;;-1:-1:-1;;;;;4905:80:0;;;11233:216;;;;;;;;;;-1:-1:-1;11233:216:0;;;;;:::i;:::-;;:::i;4994:24::-;;;;;;;;;;-1:-1:-1;4994:24:0;;;;-1:-1:-1;;;;;4994:24:0;;;6447:216;6551:10;6522:4;6539:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6539:32:0;;;;;;;;;;:41;;;6596:37;6522:4;;6539:32;;6596:37;;;;6574:6;160:25:1;;148:2;133:18;;14:177;6596:37:0;;;;;;;;-1:-1:-1;6651:4:0;6447:216;;;;;:::o;6965:370::-;-1:-1:-1;;;;;7085:19:0;;7065:4;7085:19;;;:11;:19;;;;;;;;7105:10;7085:31;;;;;;;;-1:-1:-1;;7085:52:0;7082:186;;7187:69;;;;;;;;;;;-1:-1:-1;;;7187:69:0;;;;;;;;-1:-1:-1;;;;;7187:19:0;;-1:-1:-1;7187:19:0;;;:11;:19;;;;;7207:10;7187:31;;;;;;;;;;:69;;7223:6;;7187:35;:69::i;:::-;-1:-1:-1;;;;;7153:19:0;;;;;;:11;:19;;;;;;;;7173:10;7153:31;;;;;;;:103;7082:186;7287:40;7301:6;7309:9;7320:6;7287:13;:40::i;:::-;7280:47;;6965:370;;;;;;:::o;11107:118::-;11164:20;;11156:61;;-1:-1:-1;;;;;11164:20:0;;;;11195:21;11156:61;;;;;11164:20;11156:61;11164:20;11156:61;11195:21;11164:20;11156:61;;;;;;;;;;;;;;;;;;;;;11107:118::o;11457:220::-;2375:4;2410:5;-1:-1:-1;;;;;2410:5:0;2281:10;2399:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;;;;;;;;;11550:12:::1;:28:::0;;;11591:12:::1;:28:::0;;;11642:27:::1;11606:13:::0;11565;11642:27:::1;:::i;:::-;11631:8;:38:::0;-1:-1:-1;;11457:220:0:o;6671:122::-;6726:4;6750:35;6758:7;-1:-1:-1;;6750:7:0;:35::i;2429:131::-;2375:4;2410:5;-1:-1:-1;;;;;2410:5:0;2281:10;2399:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;2502:1:::1;2486:18:::0;;-1:-1:-1;;;;;;2486:18:0::1;::::0;;2520:32:::1;::::0;2698:51:1;;;2520:32:0::1;::::0;2686:2:1;2671:18;2520:32:0::1;;;;;;;2429:131::o:0;6801:156::-;6881:4;6905:44;6919:10;6931:9;6942:6;6905:13;:44::i;11233:216::-;2375:4;2410:5;-1:-1:-1;;;;;2410:5:0;2281:10;2399:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;11334:1:::1;11318:13;:17;11310:53;;;::::0;-1:-1:-1;;;11310:53:0;;4362:2:1;11310:53:0::1;::::0;::::1;4344:21:1::0;4401:2;4381:18;;;4374:30;4440:25;4420:18;;;4413:53;4483:18;;11310:53:0::1;4160:347:1::0;11310:53:0::1;11437:4;11419:13;11404:12;;:28;;;;:::i;:::-;11403:38;;;;:::i;:::-;11384:16;:57:::0;-1:-1:-1;11233:216:0:o;409:190::-;495:7;531:12;523:6;;;;515:29;;;;-1:-1:-1;;;515:29:0;;;;;;;;:::i;:::-;-1:-1:-1;555:9:0;567:5;571:1;567;:5;:::i;:::-;555:17;409:190;-1:-1:-1;;;;;409:190:0:o;7343:792::-;7455:6;;7435:4;;7455:6;;7452:63;;;7471:41;7486:6;7494:9;7505:6;7471:14;:41::i;:::-;7464:48;;;;7452:63;7552:4;;-1:-1:-1;;;;;7539:17:0;;;7552:4;;7539:17;;;;:38;;-1:-1:-1;7573:4:0;;-1:-1:-1;;;;;7560:17:0;;;7573:4;;7560:17;;7539:38;7535:200;;;-1:-1:-1;;;;;7602:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;7665:16:0;;-1:-1:-1;;;;;7632:20:0;;;;;;:9;:20;;;;;;:29;;7655:6;;7632:29;:::i;:::-;:49;;7602:79;7594:129;;;;-1:-1:-1;;;7594:129:0;;5242:2:1;7594:129:0;;;5224:21:1;5281:2;5261:18;;;5254:30;5320:34;5300:18;;;5293:62;-1:-1:-1;;;5371:18:1;;;5364:35;5416:19;;7594:129:0;5040:401:1;7594:129:0;7758:16;:14;:16::i;:::-;7755:35;;;7777:10;:8;:10::i;:::-;7823:53;;;;;;;;;;;-1:-1:-1;;;7823:53:0;;;;;;;;-1:-1:-1;;;;;7823:17:0;;-1:-1:-1;7823:17:0;;;:9;:17;;;;;;;;:53;;7845:6;;7823:21;:53::i;:::-;-1:-1:-1;;;;;7803:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8572:11;:19;;;;;;;;8571:20;7914:56;;7964:6;7914:56;;;7938:23;7946:6;7954;7938:7;:23::i;:::-;-1:-1:-1;;;;;8004:20:0;;;;;;:9;:20;;;;;;7889:81;;-1:-1:-1;8004:40:0;;7889:81;8004:24;:40::i;:::-;-1:-1:-1;;;;;7981:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8062:43;;;;;;;;;;8090:14;160:25:1;;148:2;133:18;;14:177;8062:43:0;;;;;;;;-1:-1:-1;8123:4:0;;7343:792;-1:-1:-1;;;;7343:792:0:o;8147:330::-;8277:53;;;;;;;;;;;-1:-1:-1;;;8277:53:0;;;;;;;;-1:-1:-1;;;;;8277:17:0;;8240:4;8277:17;;;:9;:17;;;;;;;:53;;8299:6;;8277:21;:53::i;:::-;-1:-1:-1;;;;;8257:17:0;;;;;;;:9;:17;;;;;;:73;;;;8364:20;;;;;;;:32;;8389:6;8364:24;:32::i;:::-;-1:-1:-1;;;;;8341:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8412:35;;;;;;;;;;8440:6;160:25:1;;148:2;133:18;;14:177;8412:35:0;;;;;;;;-1:-1:-1;8465:4:0;8147:330;;;;;:::o;8944:197::-;9031:4;;8993;;-1:-1:-1;;;;;9031:4:0;9017:10;:18;;;;:38;;-1:-1:-1;9049:6:0;;;;9048:7;9017:38;:62;;;;-1:-1:-1;9068:11:0;;-1:-1:-1;;;9068:11:0;;;;9017:62;:116;;;;-1:-1:-1;9120:13:0;;9110:4;9092:24;;;;:9;:24;;;;;;:41;;9017:116;9010:123;;8944:197;:::o;9149:1572::-;5199:6;:13;;-1:-1:-1;;5199:13:0;5208:4;5199:13;;;9229::::1;::::0;9322:8:::1;::::0;9304:12:::1;::::0;5199:6;;9279:59:::1;::::0;9336:1:::1;::::0;9279:52:::1;::::0;;;9229:13;;9279:24:::1;:38::i;:::-;:42:::0;::::1;:52::i;:59::-;9253:85:::0;-1:-1:-1;9349:20:0::1;9372:41;:20:::0;9253:85;9372:24:::1;:41::i;:::-;9450:16;::::0;;9464:1:::1;9450:16:::0;;;;;::::1;::::0;;9349:64;;-1:-1:-1;9426:21:0::1;::::0;9450:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9450:16:0::1;9426:40;;9495:4;9477;9482:1;9477:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9477:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9521:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9521:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9477:7;;9521:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9511:4;9516:1;9511:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9511:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9605:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;9605:188:0;;9571:21:::1;::::0;9605:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;9677:12;;9547:21:::1;::::0;9720:4;;9747::::1;::::0;9767:15:::1;::::0;9605:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9804:17;9824:40;9850:13;9824:21;:25;;:40;;;;:::i;:::-;9804:60;;9875:19;9897:33;9910:19;9927:1;9910:12;;:16;;:19;;;;:::i;:::-;9897:8;::::0;;:12:::1;:33::i;:::-;9875:55;;9941:26;9970:51;10019:1;9970:44;10002:11;9970:27;9984:12;;9970:9;:13;;:27;;;;:::i;:51::-;9941:80;;10032:26;10061:44;10093:11;10061:27;10075:12;;10061:9;:13;;:27;;;;:::i;:44::-;10179:20;::::0;10171:77:::1;::::0;10032:73;;-1:-1:-1;10121:21:0::1;::::0;-1:-1:-1;;;;;10179:20:0;;::::1;::::0;10238:5:::1;::::0;10032:73;;10121:21;10171:77;10121:21;10171:77;10032:73;10179:20;10238:5;10171:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10120:128;;;10267:16;10259:59;;;::::0;-1:-1:-1;;;10259:59:0;;7363:2:1;10259:59:0::1;::::0;::::1;7345:21:1::0;7402:2;7382:18;;;7375:30;7441:32;7421:18;;;7414:60;7491:18;;10259:59:0::1;7161:354:1::0;10259:59:0::1;10334:19:::0;;10331:383:::1;;10369:6;::::0;:265:::1;::::0;-1:-1:-1;;;10369:265:0;;10445:4:::1;10369:265;::::0;::::1;7861:34:1::0;7911:18;;;7904:34;;;10369:6:0::1;7954:18:1::0;;;7947:34;;;7997:18;;;7990:34;10543:42:0::1;8040:19:1::0;;;8033:44;10604:15:0::1;8093:19:1::0;;;8086:35;-1:-1:-1;;;;;10369:6:0;;::::1;::::0;:22:::1;::::0;10399:18;;7795:19:1;;10369:265:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10654:48:0::1;::::0;;8617:25:1;;;8673:2;8658:18;;8651:34;;;10654:48:0::1;::::0;-1:-1:-1;8590:18:1;10654:48:0::1;;;;;;;10331:383;-1:-1:-1::0;;5217:6:0;:14;;-1:-1:-1;;5217:14:0;;;-1:-1:-1;;;;;;;;9149:1572:0:o;8607:329::-;8674:7;8694:17;8714:40;8739:14;;8714:20;8725:8;;8714:6;:10;;:20;;;;:::i;:40::-;8810:4;8792:24;;;;:9;:24;;;;;;8694:60;;-1:-1:-1;8792:39:0;;8694:60;8792:28;:39::i;:::-;8783:4;8765:24;;;;:9;:24;;;;;;;:66;;;;8847:42;;-1:-1:-1;;;;;8847:42:0;;;;;;;8879:9;160:25:1;;148:2;133:18;;14:177;8847:42:0;;;;;;;;8907:21;:6;8918:9;8907:10;:21::i;:::-;8900:28;8607:329;-1:-1:-1;;;;8607:329:0:o;82:179::-;140:7;;172:5;176:1;172;:5;:::i;:::-;160:17;;201:1;196;:6;;188:46;;;;-1:-1:-1;;;188:46:0;;8898:2:1;188:46:0;;;8880:21:1;8937:2;8917:18;;;8910:30;8976:29;8956:18;;;8949:57;9023:18;;188:46:0;8696:351:1;605:246:0;663:7;687:1;692;687:6;683:47;;-1:-1:-1;717:1:0;710:8;;683:47;740:9;752:5;756:1;752;:5;:::i;:::-;740:17;-1:-1:-1;785:1:0;776:5;780:1;740:17;776:5;:::i;:::-;:10;768:56;;;;-1:-1:-1;;;768:56:0;;9254:2:1;768:56:0;;;9236:21:1;9293:2;9273:18;;;9266:30;9332:34;9312:18;;;9305:62;-1:-1:-1;;;9383:18:1;;;9376:31;9424:19;;768:56:0;9052:397:1;857:132:0;915:7;942:39;946:1;949;942:39;;;;;;;;;;;;;;;;;:3;:39::i;267:136::-;325:7;352:43;356:1;359;352:43;;;;;;;;;;;;;;;;;:3;:43::i;995:189::-;1081:7;1116:12;1109:5;1101:28;;;;-1:-1:-1;;;1101:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1140:9:0;1152:5;1156:1;1152;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:180::-;3212:6;3265:2;3253:9;3244:7;3240:23;3236:32;3233:52;;;3281:1;3278;3271:12;3233:52;-1:-1:-1;3304:23:1;;3153:180;-1:-1:-1;3153:180:1:o;3564:329::-;3766:2;3748:21;;;3805:1;3785:18;;;3778:29;-1:-1:-1;;;3838:2:1;3823:18;;3816:36;3884:2;3869:18;;3564:329::o;3898:127::-;3959:10;3954:3;3950:20;3947:1;3940:31;3990:4;3987:1;3980:15;4014:4;4011:1;4004:15;4030:125;4095:9;;;4116:10;;;4113:36;;;4129:18;;:::i;4512:168::-;4585:9;;;4616;;4633:15;;;4627:22;;4613:37;4603:71;;4654:18;;:::i;4685:217::-;4725:1;4751;4741:132;;4795:10;4790:3;4786:20;4783:1;4776:31;4830:4;4827:1;4820:15;4858:4;4855:1;4848:15;4741:132;-1:-1:-1;4887:9:1;;4685:217::o;4907:128::-;4974:9;;;4995:11;;;4992:37;;;5009:18;;:::i;5578:127::-;5639:10;5634:3;5630:20;5627:1;5620:31;5670:4;5667:1;5660:15;5694:4;5691:1;5684:15;5710:251;5780:6;5833:2;5821:9;5812:7;5808:23;5804:32;5801:52;;;5849:1;5846;5839:12;5801:52;5881:9;5875:16;5900:31;5925:5;5900:31;:::i;5966:980::-;6228:4;6276:3;6265:9;6261:19;6307:6;6296:9;6289:25;6333:2;6371:6;6366:2;6355:9;6351:18;6344:34;6414:3;6409:2;6398:9;6394:18;6387:31;6438:6;6473;6467:13;6504:6;6496;6489:22;6542:3;6531:9;6527:19;6520:26;;6581:2;6573:6;6569:15;6555:29;;6602:1;6612:195;6626:6;6623:1;6620:13;6612:195;;;6691:13;;-1:-1:-1;;;;;6687:39:1;6675:52;;6782:15;;;;6747:12;;;;6723:1;6641:9;6612:195;;;-1:-1:-1;;;;;;;6863:32:1;;;;6858:2;6843:18;;6836:60;-1:-1:-1;;;6927:3:1;6912:19;6905:35;6824:3;5966:980;-1:-1:-1;;;5966:980:1:o;8132:306::-;8220:6;8228;8236;8289:2;8277:9;8268:7;8264:23;8260:32;8257:52;;;8305:1;8302;8295:12;8257:52;8334:9;8328:16;8318:26;;8384:2;8373:9;8369:18;8363:25;8353:35;;8428:2;8417:9;8413:18;8407:25;8397:35;;8132:306;;;;;:::o

Swarm Source

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