ETH Price: $3,422.46 (-2.22%)
Gas: 8 Gwei

Token

Contra (CONTRA)
 

Overview

Max Total Supply

81,000,000,000 CONTRA

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 12 Decimals)

Balance
1,095,160,544.746961513863 CONTRA

Value
$0.00
0x887580D5086995e41eFd71500cA729ecBEBA591b
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:
ContraErc

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

/*

Contra Erc Portal : https://t.me/ContraErcPortal
Twitter : https://twitter.com/ContraErcToken

*/

pragma solidity 0.8.20;

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 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 Ownr {
    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() external onlyOwner {
        owner = address(0);
    }

}

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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract ContraErc is ERC20, Ownr {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Contra";
    string public constant symbol = "CONTRA";
    uint8 public constant decimals = 12;
    
    uint256 public constant totalSupply = 81 * 10**9 * 10**decimals;

    uint256 public _maxWalletAmount = totalSupply / 50;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public _isFeesExempt;
    mapping (address => bool) public _isWalletLimitExmpt;

    uint256 public totalFee = 10;
    uint256 public constant feeBase = 100;
    
    uint256 public buyMultiplr = 100;
    uint256 public sellMultiplr = 100;
    uint256 public transfrMultiplr = 0;
    address public operationsWallet;

    IDEXRouter public router;
    address public immutable pair;

    bool public tokenswapEnabled = true;
    uint256 swapThreshold = totalSupply / 100;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownr(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        operationsWallet = 0x9762fb0D4b72bA9026E98cE63724283C5309dc44;
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        _isFeesExempt[msg.sender] = true;

        _isWalletLimitExmpt[msg.sender] = true;
        _isWalletLimitExmpt[address(this)] = true;
        _isWalletLimitExmpt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    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 setMaxWallet_base100(uint256 _maxwal) external onlyOwner {
        require(_maxwal >= 1,"Minimum 1% max wallet required");
        _maxWalletAmount = (totalSupply * _maxwal ) / 100;
    }


    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (!_isWalletLimitExmpt[sender] && !_isWalletLimitExmpt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletAmount,"max wallet limit reached");
        }
    
        if(shouldSwapBack()){ swapBack(); }

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

        uint256 amountReceived = (_isFeesExempt[sender] || _isFeesExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transfrMultiplr;

        if(recipient == pair) {
            multiplier = sellMultiplr;
        } else if(sender == pair) {
            multiplier = buyMultiplr;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeBase * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[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
        && tokenswapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapThreshold,
            0,
            path,
            operationsWallet,
            block.timestamp
        );
    }

    function setFee(uint256 _buy, uint256 _sell) external onlyOwner {
        require(_sell <= 50,"Max sell tax 5%");
        require(_buy <= 50,"Max buy tax 5%");
        sellMultiplr = _sell;
        buyMultiplr = _buy;
    }

    function manualSwap(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        uint256 amountToClear = ( amountETH * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
    }

    function rescueToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isFeesExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isWalletLimitExmpt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMultiplr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxwal","type":"uint256"}],"name":"setMaxWallet_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenswapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[],"name":"transfrMultiplr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052603262000014600c600a62000467565b62000025906412dbf9ea006200047e565b62000031919062000498565b600155600a60068190556064600781905560088190555f600955600b805460ff60a01b1916600160a01b179055906200006d90600c9062000467565b6200007e906412dbf9ea006200047e565b6200008a919062000498565b600c5534801562000099575f80fd5b505f80546001600160a01b03199081163317909155600b80548216737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600a8054909216739762fb0d4b72ba9026e98ce63724283c5309dc4417909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000129573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200014f9190620004b8565b6001600160a01b03908116608052600b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200019e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c49190620004b8565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af115801562000213573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002399190620004b8565b6001600160a01b0390811660a052305f818152600360209081526040808320600b5490951683529381528382205f199055338252600481528382208054600160ff19918216811790925560059092528483208054831682179055928252928120805484168317905561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909216179055620002dd600c600a62000467565b620002ee906412dbf9ea006200047e565b335f81815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000330600c600a62000467565b62000341906412dbf9ea006200047e565b60405190815260200160405180910390a3620004e0565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003ac57815f190482111562000390576200039062000358565b808516156200039e57918102915b93841c939080029062000371565b509250929050565b5f82620003c45750600162000461565b81620003d257505f62000461565b8160018114620003eb5760028114620003f65762000416565b600191505062000461565b60ff8411156200040a576200040a62000358565b50506001821b62000461565b5060208310610133831016604e8410600b84101617156200043b575081810a62000461565b6200044783836200036c565b805f19048211156200045d576200045d62000358565b0290505b92915050565b5f6200047760ff841683620003b4565b9392505050565b808202811582820484141762000461576200046162000358565b5f82620004b357634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620004c9575f80fd5b81516001600160a01b038116811462000477575f80fd5b60805160a0516116af6200051e5f395f818161049701528181610ba901528181610e980152818161103e015261107201525f610f5f01526116af5ff3fe6080604052600436106101c8575f3560e01c8063715018a6116100f2578063b1d86da811610092578063ed2cdab711610062578063ed2cdab714610570578063f887ea401461059e578063fd72e22a146105bd578063fe809c16146105dc575f80fd5b8063b1d86da8146104d8578063b70143c9146104ed578063c14bc0221461050c578063dd62ed3e1461052c575f80fd5b806395e911a8116100cd57806395e911a81461045d5780639ad082d314610471578063a8aa1b3114610486578063a9059cbb146104b9575f80fd5b8063715018a6146103e8578063893d20e8146103fc57806395d89b411461042c575f80fd5b8063313ce56711610168578063571ac8b011610138578063571ac8b01461035b5780636c0a24eb1461037a5780636d34efdd1461038f57806370a08231146103bd575f80fd5b8063313ce567146102e057806333f3d628146103065780633556790d1461032557806352f7c9881461033a575f80fd5b80631df4ccfc116101a35780631df4ccfc1461026b57806323b872dd146102805780632b112e491461029f5780632f54bf6e146102b3575f80fd5b806306fdde03146101d3578063095ea7b31461021a57806318160ddd14610249575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b5061020460405180604001604052806006815260200165436f6e74726160d01b81525081565b60405161021191906112fa565b60405180910390f35b348015610225575f80fd5b50610239610234366004611360565b6105fb565b6040519015158152602001610211565b348015610254575f80fd5b5061025d610667565b604051908152602001610211565b348015610276575f80fd5b5061025d60065481565b34801561028b575f80fd5b5061023961029a366004611388565b610685565b3480156102aa575f80fd5b5061025d610743565b3480156102be575f80fd5b506102396102cd3660046113c1565b5f546001600160a01b0391821691161490565b3480156102eb575f80fd5b506102f4600c81565b60405160ff9091168152602001610211565b348015610311575f80fd5b50610239610320366004611360565b6107ca565b348015610330575f80fd5b5061025d60085481565b348015610345575f80fd5b506103596103543660046113da565b6108db565b005b348015610366575f80fd5b506102396103753660046113c1565b610991565b348015610385575f80fd5b5061025d60015481565b34801561039a575f80fd5b506102396103a93660046113c1565b60056020525f908152604090205460ff1681565b3480156103c8575f80fd5b5061025d6103d73660046113c1565b60026020525f908152604090205481565b3480156103f3575f80fd5b5061035961099d565b348015610407575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610211565b348015610437575f80fd5b5061020460405180604001604052806006815260200165434f4e54524160d01b81525081565b348015610468575f80fd5b5061025d606481565b34801561047c575f80fd5b5061025d60075481565b348015610491575f80fd5b506104147f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c4575f80fd5b506102396104d3366004611360565b6109d7565b3480156104e3575f80fd5b5061025d60095481565b3480156104f8575f80fd5b506103596105073660046113fa565b6109e3565b348015610517575f80fd5b50600b5461023990600160a01b900460ff1681565b348015610537575f80fd5b5061025d610546366004611411565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561057b575f80fd5b5061023961058a3660046113c1565b60046020525f908152604090205460ff1681565b3480156105a9575f80fd5b50600b54610414906001600160a01b031681565b3480156105c8575f80fd5b50600a54610414906001600160a01b031681565b3480156105e7575f80fd5b506103596105f63660046113fa565b610a57565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106559086815260200190565b60405180910390a35060015b92915050565b610673600c600a611536565b610682906412dbf9ea00611544565b81565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f191461072e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260038252838120338252909152919091205461070a918490610b09565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b610739848484610b41565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc549091906107a2600c600a611536565b6107b1906412dbf9ea00611544565b6107bb919061155b565b6107c5919061155b565b905090565b5f80546001600160a01b031633146107fd5760405162461bcd60e51b81526004016107f49061156e565b60405180910390fd5b815f0361086d576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086a919061158e565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af11580156108b7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c91906115a5565b5f546001600160a01b031633146109045760405162461bcd60e51b81526004016107f49061156e565b60328111156109475760405162461bcd60e51b815260206004820152600f60248201526e4d61782073656c6c2074617820352560881b60448201526064016107f4565b60328211156109895760405162461bcd60e51b815260206004820152600e60248201526d4d6178206275792074617820352560901b60448201526064016107f4565b600855600755565b5f610661825f196105fb565b5f546001600160a01b031633146109c65760405162461bcd60e51b81526004016107f49061156e565b5f80546001600160a01b0319169055565b5f61073c338484610b41565b5f546001600160a01b03163314610a0c5760405162461bcd60e51b81526004016107f49061156e565b475f6064610a1a8484611544565b610a2491906115c4565b604051909150339082156108fc029083905f818181858888f19350505050158015610a51573d5f803e3d5ffd5b50505050565b5f546001600160a01b03163314610a805760405162461bcd60e51b81526004016107f49061156e565b6001811015610ad15760405162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d203125206d61782077616c6c6574207265717569726564000060448201526064016107f4565b606481610ae0600c600a611536565b610aef906412dbf9ea00611544565b610af99190611544565b610b0391906115c4565b60015550565b5f8184841115610b2c5760405162461bcd60e51b81526004016107f491906112fa565b505f610b38848661155b565b95945050505050565b600d545f9060ff1615610b6057610b59848484610da9565b905061073c565b6001600160a01b0384165f9081526005602052604090205460ff16158015610ba057506001600160a01b0383165f9081526005602052604090205460ff16155b8015610bde57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610c57576001546001600160a01b0384165f90815260026020526040902054610c099084906115e3565b1115610c575760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016107f4565b610c5f610e8c565b15610c6c57610c6c610efd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260029091529190912054610cbd918490610b09565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff1680610d0857506001600160a01b0384165f9081526004602052604090205460ff165b610d1c57610d17858486611017565b610d1e565b825b6001600160a01b0385165f90815260026020526040902054909150610d439082611170565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d969085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600290915291822054610df9918490610b09565b6001600160a01b038086165f908152600260205260408082209390935590851681522054610e279083611170565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e7a9086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610ec95750600d5460ff16155b8015610ede5750600b54600160a01b900460ff165b80156107c5575050600c54305f90815260026020526040902054101590565b600d805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f3d57610f3d6115f6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f9157610f916115f6565b6001600160a01b039283166020918202929092010152600b54600c54600a5460405163791ac94760e01b81529284169363791ac94793610fdd93925f928892911690429060040161160a565b5f604051808303815f87803b158015610ff4575f80fd5b505af1158015611006573d5f803e3d5ffd5b5050600d805460ff19169055505050565b5f8215806110255750600654155b1561103157508161073c565b6009546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169084160361107057506008546110ae565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036110ae57506007545b5f6110e26110bd606480611544565b6110dc846110d66006548a6111ce90919063ffffffff16565b906111ce565b9061124c565b9050801561115c57305f908152600260205260409020546111039082611170565b305f81815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111539085815260200190565b60405180910390a35b611166858261128d565b9695505050505050565b5f8061117c83856115e3565b90508381101561073c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f4565b5f825f036111dd57505f610661565b5f6111e88385611544565b9050826111f585836115c4565b1461073c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f4565b5f61073c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112ce565b5f61073c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b09565b5f81836112ee5760405162461bcd60e51b81526004016107f491906112fa565b505f610b3884866115c4565b5f6020808352835180828501525f5b8181101561132557858101830151858201604001528201611309565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461135b575f80fd5b919050565b5f8060408385031215611371575f80fd5b61137a83611345565b946020939093013593505050565b5f805f6060848603121561139a575f80fd5b6113a384611345565b92506113b160208501611345565b9150604084013590509250925092565b5f602082840312156113d1575f80fd5b61073c82611345565b5f80604083850312156113eb575f80fd5b50508035926020909101359150565b5f6020828403121561140a575f80fd5b5035919050565b5f8060408385031215611422575f80fd5b61142b83611345565b915061143960208401611345565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561149057815f190482111561147657611476611442565b8085161561148357918102915b93841c939080029061145b565b509250929050565b5f826114a657506001610661565b816114b257505f610661565b81600181146114c857600281146114d2576114ee565b6001915050610661565b60ff8411156114e3576114e3611442565b50506001821b610661565b5060208310610133831016604e8410600b8410161715611511575081810a610661565b61151b8383611456565b805f190482111561152e5761152e611442565b029392505050565b5f61073c60ff841683611498565b808202811582820484141761066157610661611442565b8181038181111561066157610661611442565b60208082526006908201526510a7aba722a960d11b604082015260600190565b5f6020828403121561159e575f80fd5b5051919050565b5f602082840312156115b5575f80fd5b8151801515811461073c575f80fd5b5f826115de57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561066157610661611442565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116585784516001600160a01b031683529383019391830191600101611633565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207b93ec3c99ac1e29fd8accdd15e2e528438147d9b4c34f33c896acd390eeedd264736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101c8575f3560e01c8063715018a6116100f2578063b1d86da811610092578063ed2cdab711610062578063ed2cdab714610570578063f887ea401461059e578063fd72e22a146105bd578063fe809c16146105dc575f80fd5b8063b1d86da8146104d8578063b70143c9146104ed578063c14bc0221461050c578063dd62ed3e1461052c575f80fd5b806395e911a8116100cd57806395e911a81461045d5780639ad082d314610471578063a8aa1b3114610486578063a9059cbb146104b9575f80fd5b8063715018a6146103e8578063893d20e8146103fc57806395d89b411461042c575f80fd5b8063313ce56711610168578063571ac8b011610138578063571ac8b01461035b5780636c0a24eb1461037a5780636d34efdd1461038f57806370a08231146103bd575f80fd5b8063313ce567146102e057806333f3d628146103065780633556790d1461032557806352f7c9881461033a575f80fd5b80631df4ccfc116101a35780631df4ccfc1461026b57806323b872dd146102805780632b112e491461029f5780632f54bf6e146102b3575f80fd5b806306fdde03146101d3578063095ea7b31461021a57806318160ddd14610249575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b5061020460405180604001604052806006815260200165436f6e74726160d01b81525081565b60405161021191906112fa565b60405180910390f35b348015610225575f80fd5b50610239610234366004611360565b6105fb565b6040519015158152602001610211565b348015610254575f80fd5b5061025d610667565b604051908152602001610211565b348015610276575f80fd5b5061025d60065481565b34801561028b575f80fd5b5061023961029a366004611388565b610685565b3480156102aa575f80fd5b5061025d610743565b3480156102be575f80fd5b506102396102cd3660046113c1565b5f546001600160a01b0391821691161490565b3480156102eb575f80fd5b506102f4600c81565b60405160ff9091168152602001610211565b348015610311575f80fd5b50610239610320366004611360565b6107ca565b348015610330575f80fd5b5061025d60085481565b348015610345575f80fd5b506103596103543660046113da565b6108db565b005b348015610366575f80fd5b506102396103753660046113c1565b610991565b348015610385575f80fd5b5061025d60015481565b34801561039a575f80fd5b506102396103a93660046113c1565b60056020525f908152604090205460ff1681565b3480156103c8575f80fd5b5061025d6103d73660046113c1565b60026020525f908152604090205481565b3480156103f3575f80fd5b5061035961099d565b348015610407575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610211565b348015610437575f80fd5b5061020460405180604001604052806006815260200165434f4e54524160d01b81525081565b348015610468575f80fd5b5061025d606481565b34801561047c575f80fd5b5061025d60075481565b348015610491575f80fd5b506104147f0000000000000000000000008132b48c1c17894d015fa327f2e3a13d21ade06981565b3480156104c4575f80fd5b506102396104d3366004611360565b6109d7565b3480156104e3575f80fd5b5061025d60095481565b3480156104f8575f80fd5b506103596105073660046113fa565b6109e3565b348015610517575f80fd5b50600b5461023990600160a01b900460ff1681565b348015610537575f80fd5b5061025d610546366004611411565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561057b575f80fd5b5061023961058a3660046113c1565b60046020525f908152604090205460ff1681565b3480156105a9575f80fd5b50600b54610414906001600160a01b031681565b3480156105c8575f80fd5b50600a54610414906001600160a01b031681565b3480156105e7575f80fd5b506103596105f63660046113fa565b610a57565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106559086815260200190565b60405180910390a35060015b92915050565b610673600c600a611536565b610682906412dbf9ea00611544565b81565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f191461072e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260038252838120338252909152919091205461070a918490610b09565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b610739848484610b41565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc549091906107a2600c600a611536565b6107b1906412dbf9ea00611544565b6107bb919061155b565b6107c5919061155b565b905090565b5f80546001600160a01b031633146107fd5760405162461bcd60e51b81526004016107f49061156e565b60405180910390fd5b815f0361086d576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086a919061158e565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af11580156108b7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c91906115a5565b5f546001600160a01b031633146109045760405162461bcd60e51b81526004016107f49061156e565b60328111156109475760405162461bcd60e51b815260206004820152600f60248201526e4d61782073656c6c2074617820352560881b60448201526064016107f4565b60328211156109895760405162461bcd60e51b815260206004820152600e60248201526d4d6178206275792074617820352560901b60448201526064016107f4565b600855600755565b5f610661825f196105fb565b5f546001600160a01b031633146109c65760405162461bcd60e51b81526004016107f49061156e565b5f80546001600160a01b0319169055565b5f61073c338484610b41565b5f546001600160a01b03163314610a0c5760405162461bcd60e51b81526004016107f49061156e565b475f6064610a1a8484611544565b610a2491906115c4565b604051909150339082156108fc029083905f818181858888f19350505050158015610a51573d5f803e3d5ffd5b50505050565b5f546001600160a01b03163314610a805760405162461bcd60e51b81526004016107f49061156e565b6001811015610ad15760405162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d203125206d61782077616c6c6574207265717569726564000060448201526064016107f4565b606481610ae0600c600a611536565b610aef906412dbf9ea00611544565b610af99190611544565b610b0391906115c4565b60015550565b5f8184841115610b2c5760405162461bcd60e51b81526004016107f491906112fa565b505f610b38848661155b565b95945050505050565b600d545f9060ff1615610b6057610b59848484610da9565b905061073c565b6001600160a01b0384165f9081526005602052604090205460ff16158015610ba057506001600160a01b0383165f9081526005602052604090205460ff16155b8015610bde57507f0000000000000000000000008132b48c1c17894d015fa327f2e3a13d21ade0696001600160a01b0316836001600160a01b031614155b15610c57576001546001600160a01b0384165f90815260026020526040902054610c099084906115e3565b1115610c575760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016107f4565b610c5f610e8c565b15610c6c57610c6c610efd565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260029091529190912054610cbd918490610b09565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff1680610d0857506001600160a01b0384165f9081526004602052604090205460ff165b610d1c57610d17858486611017565b610d1e565b825b6001600160a01b0385165f90815260026020526040902054909150610d439082611170565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d969085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600290915291822054610df9918490610b09565b6001600160a01b038086165f908152600260205260408082209390935590851681522054610e279083611170565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e7a9086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f0000000000000000000000008132b48c1c17894d015fa327f2e3a13d21ade0691614801590610ec95750600d5460ff16155b8015610ede5750600b54600160a01b900460ff165b80156107c5575050600c54305f90815260026020526040902054101590565b600d805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f3d57610f3d6115f6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610f9157610f916115f6565b6001600160a01b039283166020918202929092010152600b54600c54600a5460405163791ac94760e01b81529284169363791ac94793610fdd93925f928892911690429060040161160a565b5f604051808303815f87803b158015610ff4575f80fd5b505af1158015611006573d5f803e3d5ffd5b5050600d805460ff19169055505050565b5f8215806110255750600654155b1561103157508161073c565b6009546001600160a01b037f0000000000000000000000008132b48c1c17894d015fa327f2e3a13d21ade06981169084160361107057506008546110ae565b7f0000000000000000000000008132b48c1c17894d015fa327f2e3a13d21ade0696001600160a01b0316856001600160a01b0316036110ae57506007545b5f6110e26110bd606480611544565b6110dc846110d66006548a6111ce90919063ffffffff16565b906111ce565b9061124c565b9050801561115c57305f908152600260205260409020546111039082611170565b305f81815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111539085815260200190565b60405180910390a35b611166858261128d565b9695505050505050565b5f8061117c83856115e3565b90508381101561073c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f4565b5f825f036111dd57505f610661565b5f6111e88385611544565b9050826111f585836115c4565b1461073c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f4565b5f61073c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112ce565b5f61073c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b09565b5f81836112ee5760405162461bcd60e51b81526004016107f491906112fa565b505f610b3884866115c4565b5f6020808352835180828501525f5b8181101561132557858101830151858201604001528201611309565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461135b575f80fd5b919050565b5f8060408385031215611371575f80fd5b61137a83611345565b946020939093013593505050565b5f805f6060848603121561139a575f80fd5b6113a384611345565b92506113b160208501611345565b9150604084013590509250925092565b5f602082840312156113d1575f80fd5b61073c82611345565b5f80604083850312156113eb575f80fd5b50508035926020909101359150565b5f6020828403121561140a575f80fd5b5035919050565b5f8060408385031215611422575f80fd5b61142b83611345565b915061143960208401611345565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561149057815f190482111561147657611476611442565b8085161561148357918102915b93841c939080029061145b565b509250929050565b5f826114a657506001610661565b816114b257505f610661565b81600181146114c857600281146114d2576114ee565b6001915050610661565b60ff8411156114e3576114e3611442565b50506001821b610661565b5060208310610133831016604e8410600b8410161715611511575081810a610661565b61151b8383611456565b805f190482111561152e5761152e611442565b029392505050565b5f61073c60ff841683611498565b808202811582820484141761066157610661611442565b8181038181111561066157610661611442565b60208082526006908201526510a7aba722a960d11b604082015260600190565b5f6020828403121561159e575f80fd5b5051919050565b5f602082840312156115b5575f80fd5b8151801515811461073c575f80fd5b5f826115de57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561066157610661611442565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116585784516001600160a01b031683529383019391830191600101611633565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207b93ec3c99ac1e29fd8accdd15e2e528438147d9b4c34f33c896acd390eeedd264736f6c63430008140033

Deployed Bytecode Sourcemap

2893:6693:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3146:38;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3146:38:0;;;;;;;;;;;;:::i;:::-;;;;;;;;5083:216;;;;;;;;;;-1:-1:-1;5083:216:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;5083:216:0;1004:187:1;3286:63:0;;;;;;;;;;;;;:::i;:::-;;;1342:25:1;;;1330:2;1315:18;3286:63:0;1196:177:1;3653:28:0;;;;;;;;;;;;;;;;5601:370;;;;;;;;;;-1:-1:-1;5601:370:0;;;;;:::i;:::-;;:::i;9446:137::-;;;;;;;;;;;;;:::i;2213:103::-;;;;;;;;;;-1:-1:-1;2213:103:0;;;;;:::i;:::-;2268:4;2303:5;-1:-1:-1;;;;;2292:16:0;;;2303:5;;2292:16;;2213:103;3238:35;;;;;;;;;;;;3271:2;3238:35;;;;;2074:4:1;2062:17;;;2044:36;;2032:2;2017:18;3238:35:0;1902:184:1;9158:280:0;;;;;;;;;;-1:-1:-1;9158:280:0;;;;;:::i;:::-;;:::i;3777:33::-;;;;;;;;;;;;;;;;8662:228;;;;;;;;;;-1:-1:-1;8662:228:0;;;;;:::i;:::-;;:::i;:::-;;5307:122;;;;;;;;;;-1:-1:-1;5307:122:0;;;;;:::i;:::-;;:::i;3358:50::-;;;;;;;;;;;;;;;;3592:52;;;;;;;;;;-1:-1:-1;3592:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3417:45;;;;;;;;;;-1:-1:-1;3417:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2324:85;;;;;;;;;;;;;:::i;4858:78::-;;;;;;;;;;-1:-1:-1;4910:7:0;4928:5;-1:-1:-1;;;;;4928:5:0;4858:78;;;-1:-1:-1;;;;;2508:32:1;;;2490:51;;2478:2;2463:18;4858:78:0;2344:203:1;3191:40:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3191:40:0;;;;;3688:37;;;;;;;;;;;;3722:3;3688:37;;3738:32;;;;;;;;;;;;;;;;3929:29;;;;;;;;;;;;;;;5437:156;;;;;;;;;;-1:-1:-1;5437:156:0;;;;;:::i;:::-;;:::i;3817:34::-;;;;;;;;;;;;;;;;8898:252;;;;;;;;;;-1:-1:-1;8898:252:0;;;;;:::i;:::-;;:::i;3967:35::-;;;;;;;;;;-1:-1:-1;3967:35:0;;;;-1:-1:-1;;;3967:35:0;;;;;;4942:133;;;;;;;;;;-1:-1:-1;4942:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5044:19:0;;;5026:7;5044:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;4942:133;3539:46;;;;;;;;;;-1:-1:-1;3539:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3898:24;;;;;;;;;;-1:-1:-1;3898:24:0;;;;-1:-1:-1;;;;;3898:24:0;;;3858:31;;;;;;;;;;-1:-1:-1;3858:31:0;;;;-1:-1:-1;;;;;3858:31:0;;;5979:199;;;;;;;;;;-1:-1:-1;5979:199:0;;;;;:::i;:::-;;:::i;5083:216::-;5187:10;5158:4;5175:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5175:32:0;;;;;;;;;;:41;;;5232:37;5158:4;;5175:32;;5232:37;;;;5210:6;1342:25:1;;1330:2;1315:18;;1196:177;5232:37:0;;;;;;;;-1:-1:-1;5287:4:0;5083:216;;;;;:::o;3286:63::-;3337:12;3271:2;3337;:12;:::i;:::-;3324:25;;:10;:25;:::i;:::-;3286:63;:::o;5601:370::-;-1:-1:-1;;;;;5721:19:0;;5701:4;5721:19;;;:11;:19;;;;;;;;5741:10;5721:31;;;;;;;;-1:-1:-1;;5721:52:0;5718:186;;5823:69;;;;;;;;;;;-1:-1:-1;;;5823:69:0;;;;;;;;-1:-1:-1;;;;;5823:19:0;;-1:-1:-1;5823:19:0;;;:11;:19;;;;;5843:10;5823:31;;;;;;;;;;:69;;5859:6;;5823:35;:69::i;:::-;-1:-1:-1;;;;;5789:19:0;;;;;;:11;:19;;;;;;;;5809:10;5789:31;;;;;;;:103;5718:186;5923:40;5937:6;5945:9;5956:6;5923:13;:40::i;:::-;5916:47;;5601:370;;;;;;:::o;9446:137::-;9559:9;:15;;;;3022:42;9499:7;9541:15;;;;;9499:7;;9559:15;3337:12;3271:2;3337;:12;:::i;:::-;3324:25;;:10;:25;:::i;:::-;9527:29;;;;:::i;:::-;:47;;;;:::i;:::-;9519:56;;9446:137;:::o;9158:280::-;9245:12;2303:5;;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;;;;;;;;;9273:6:::1;9283:1;9273:11:::0;9270:95:::1;;9309:44;::::0;-1:-1:-1;;;9309:44:0;;9347:4:::1;9309:44;::::0;::::1;2490:51:1::0;-1:-1:-1;;;;;9309:29:0;::::1;::::0;::::1;::::0;2463:18:1;;9309:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9300:53;;9270:95;9382:48;::::0;-1:-1:-1;;;9382:48:0;;9411:10:::1;9382:48;::::0;::::1;5746:51:1::0;5813:18;;;5806:34;;;-1:-1:-1;;;;;9382:28:0;::::1;::::0;::::1;::::0;5719:18:1;;9382:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8662:228::-:0;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;8754:2:::1;8745:5;:11;;8737:38;;;::::0;-1:-1:-1;;;8737:38:0;;6335:2:1;8737:38:0::1;::::0;::::1;6317:21:1::0;6374:2;6354:18;;;6347:30;-1:-1:-1;;;6393:18:1;;;6386:45;6448:18;;8737:38:0::1;6133:339:1::0;8737:38:0::1;8802:2;8794:4;:10;;8786:36;;;::::0;-1:-1:-1;;;8786:36:0;;6679:2:1;8786:36:0::1;::::0;::::1;6661:21:1::0;6718:2;6698:18;;;6691:30;-1:-1:-1;;;6737:18:1;;;6730:44;6791:18;;8786:36:0::1;6477:338:1::0;8786:36:0::1;8833:12;:20:::0;8864:11:::1;:18:::0;8662:228::o;5307:122::-;5362:4;5386:35;5394:7;-1:-1:-1;;5386:7:0;:35::i;2324:85::-;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;2399:1:::1;2383:18:::0;;-1:-1:-1;;;;;;2383:18:0::1;::::0;;2324:85::o;5437:156::-;5517:4;5541:44;5555:10;5567:9;5578:6;5541:13;:44::i;8898:252::-;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;8994:21:::1;8974:17;9085:3;9052:28;9064:16:::0;8994:21;9052:28:::1;:::i;:::-;9050:38;;;;:::i;:::-;9099:43;::::0;9026:62;;-1:-1:-1;9107:10:0::1;::::0;9099:43;::::1;;;::::0;9026:62;;9099:43:::1;::::0;;;9026:62;9107:10;9099:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8963:187;;8898:252:::0;:::o;5979:199::-;2268:4;2303:5;-1:-1:-1;;;;;2303:5:0;2172:10;2292:16;2156:38;;;;-1:-1:-1;;;2156:38:0;;;;;;;:::i;:::-;6075:1:::1;6064:7;:12;;6056:54;;;::::0;-1:-1:-1;;;6056:54:0;;7244:2:1;6056:54:0::1;::::0;::::1;7226:21:1::0;7283:2;7263:18;;;7256:30;7322:32;7302:18;;;7295:60;7372:18;;6056:54:0::1;7042:354:1::0;6056:54:0::1;6167:3;6155:7:::0;3337:12:::1;3271:2;3337;:12;:::i;:::-;3324:25;::::0;:10:::1;:25;:::i;:::-;6141:21;;;;:::i;:::-;6140:30;;;;:::i;:::-;6121:16;:49:::0;-1:-1:-1;5979:199:0:o;532:192::-;618:7;654:12;646:6;;;;638:29;;;;-1:-1:-1;;;638:29:0;;;;;;;;:::i;:::-;-1:-1:-1;678:9:0;690:5;694:1;690;:5;:::i;:::-;678:17;532:192;-1:-1:-1;;;;;532:192:0:o;6188:826::-;6300:6;;6280:4;;6300:6;;6297:63;;;6316:41;6331:6;6339:9;6350:6;6316:14;:41::i;:::-;6309:48;;;;6297:63;-1:-1:-1;;;;;6377:27:0;;;;;;:19;:27;;;;;;;;6376:28;:63;;;;-1:-1:-1;;;;;;6409:30:0;;;;;;:19;:30;;;;;;;;6408:31;6376:63;:84;;;;;6456:4;-1:-1:-1;;;;;6443:17:0;:9;-1:-1:-1;;;;;6443:17:0;;;6376:84;6372:204;;;6520:16;;-1:-1:-1;;;;;6486:20:0;;;;;;:9;:20;;;;;;:29;;6509:6;;6486:29;:::i;:::-;6485:51;;6477:87;;;;-1:-1:-1;;;6477:87:0;;7733:2:1;6477:87:0;;;7715:21:1;7772:2;7752:18;;;7745:30;7811:26;7791:18;;;7784:54;7855:18;;6477:87:0;7531:348:1;6477:87:0;6595:16;:14;:16::i;:::-;6592:35;;;6614:10;:8;:10::i;:::-;6659:53;;;;;;;;;;;-1:-1:-1;;;6659:53:0;;;;;;;;-1:-1:-1;;;;;6659:17:0;;-1:-1:-1;6659:17:0;;;:9;:17;;;;;;;;:53;;6681:6;;6659:21;:53::i;:::-;-1:-1:-1;;;;;6639:17:0;;;;;;:9;:17;;;;;;;;:73;;;;6751:13;:21;;;;;;;;;:49;;-1:-1:-1;;;;;;6776:24:0;;;;;;:13;:24;;;;;;;;6751:49;6750:97;;6813:34;6821:6;6829;6837:9;6813:7;:34::i;:::-;6750:97;;;6804:6;6750:97;-1:-1:-1;;;;;6883:20:0;;;;;;:9;:20;;;;;;6725:122;;-1:-1:-1;6883:40:0;;6725:122;6883:24;:40::i;:::-;-1:-1:-1;;;;;6860:20:0;;;;;;;:9;:20;;;;;;;:63;;;;6941:43;;;;;;;;;;6969:14;1342:25:1;;1330:2;1315:18;;1196:177;6941:43:0;;;;;;;;-1:-1:-1;7002:4:0;;6188:826;-1:-1:-1;;;;6188:826:0:o;7026:330::-;7156:53;;;;;;;;;;;-1:-1:-1;;;7156:53:0;;;;;;;;-1:-1:-1;;;;;7156:17:0;;7119:4;7156:17;;;:9;:17;;;;;;;:53;;7178:6;;7156:21;:53::i;:::-;-1:-1:-1;;;;;7136:17:0;;;;;;;:9;:17;;;;;;:73;;;;7243:20;;;;;;;:32;;7268:6;7243:24;:32::i;:::-;-1:-1:-1;;;;;7220:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7291:35;;;;;;;;;;7319:6;1342:25:1;;1330:2;1315:18;;1196:177;7291:35:0;;;;;;;;-1:-1:-1;7344:4:0;7026:330;;;;;:::o;8081:202::-;8130:4;8154:10;-1:-1:-1;;;;;8168:4:0;8154:18;;;;;:38;;-1:-1:-1;8186:6:0;;;;8185:7;8154:38;:67;;;;-1:-1:-1;8205:16:0;;-1:-1:-1;;;8205:16:0;;;;8154:67;:121;;;;-1:-1:-1;;8262:13:0;;8252:4;8234:24;;;;:9;:24;;;;;;:41;;;8081:202::o;8291:363::-;4097:6;:13;;-1:-1:-1;;4097:13:0;4106:4;4097:13;;;8366:16:::1;::::0;;8380:1:::1;8366:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8366:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8366:16:0::1;8342:40;;8411:4;8393;8398:1;8393:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8393:23:0::1;;;-1:-1:-1::0;;;;;8393:23:0::1;;;::::0;::::1;8437:4;8427;8432:1;8427:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8427:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;8454:6:::1;::::0;8526:13:::1;::::0;8589:16:::1;::::0;8454:192:::1;::::0;-1:-1:-1;;;8454:192:0;;:6;;::::1;::::0;:57:::1;::::0;:192:::1;::::0;8526:13;8454:6:::1;::::0;8570:4;;8589:16;::::1;::::0;8620:15:::1;::::0;8454:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4115:6:0;:14;;-1:-1:-1;;4115:14:0;;;-1:-1:-1;;;8291:363:0:o;7364:709::-;7450:7;7473:11;;;:28;;-1:-1:-1;7488:8:0;;:13;7473:28;7470:72;;;-1:-1:-1;7524:6:0;7517:13;;7470:72;7575:15;;-1:-1:-1;;;;;7619:4:0;7606:17;;;;;;7603:150;;-1:-1:-1;7653:12:0;;7603:150;;;7696:4;-1:-1:-1;;;;;7686:14:0;:6;-1:-1:-1;;;;;7686:14:0;;7683:70;;-1:-1:-1;7730:11:0;;7683:70;7765:17;7785:55;7826:13;3722:3;;7826:13;:::i;:::-;7785:36;7810:10;7785:20;7796:8;;7785:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:55::i;:::-;7765:75;-1:-1:-1;7856:13:0;;7853:172;;7930:4;7912:24;;;;:9;:24;;;;;;:39;;7941:9;7912:28;:39::i;:::-;7903:4;7885:24;;;;:9;:24;;;;;;;:66;;;;7971:42;;-1:-1:-1;;;;;7971:42:0;;;;;;;8003:9;1342:25:1;;1330:2;1315:18;;1196:177;7971:42:0;;;;;;;;7853:172;8044:21;:6;8055:9;8044:10;:21::i;:::-;8037:28;7364:709;-1:-1:-1;;;;;;7364:709:0:o;203:181::-;261:7;;293:5;297:1;293;:5;:::i;:::-;281:17;;322:1;317;:6;;309:46;;;;-1:-1:-1;;;309:46:0;;9335:2:1;309:46:0;;;9317:21:1;9374:2;9354:18;;;9347:30;9413:29;9393:18;;;9386:57;9460:18;;309:46:0;9133:351:1;730:250:0;788:7;812:1;817;812:6;808:47;;-1:-1:-1;842:1:0;835:8;;808:47;867:9;879:5;883:1;879;:5;:::i;:::-;867:17;-1:-1:-1;912:1:0;903:5;907:1;867:17;903:5;:::i;:::-;:10;895:56;;;;-1:-1:-1;;;895:56:0;;9691:2:1;895:56:0;;;9673:21:1;9730:2;9710:18;;;9703:30;9769:34;9749:18;;;9742:62;-1:-1:-1;;;9820:18:1;;;9813:31;9861:19;;895:56:0;9489:397:1;986:132:0;1044:7;1071:39;1075:1;1078;1071:39;;;;;;;;;;;;;;;;;:3;:39::i;390:136::-;448:7;475:43;479:1;482;475:43;;;;;;;;;;;;;;;;;:3;:43::i;1124:189::-;1210:7;1245:12;1238:5;1230:28;;;;-1:-1:-1;;;1230:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1269:9:0;1281:5;1285:1;1281;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1711:186::-;1770:6;1823:2;1811:9;1802:7;1798:23;1794:32;1791:52;;;1839:1;1836;1829:12;1791:52;1862:29;1881:9;1862:29;:::i;2091:248::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;-1:-1:-1;;2259:23:1;;;2329:2;2314:18;;;2301:32;;-1:-1:-1;2091:248:1:o;2552:180::-;2611:6;2664:2;2652:9;2643:7;2639:23;2635:32;2632:52;;;2680:1;2677;2670:12;2632:52;-1:-1:-1;2703:23:1;;2552:180;-1:-1:-1;2552:180:1:o;2737:260::-;2805:6;2813;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2905:29;2924:9;2905:29;:::i;:::-;2895:39;;2953:38;2987:2;2976:9;2972:18;2953:38;:::i;:::-;2943:48;;2737:260;;;;;:::o;3228:127::-;3289:10;3284:3;3280:20;3277:1;3270:31;3320:4;3317:1;3310:15;3344:4;3341:1;3334:15;3360:422;3449:1;3492:5;3449:1;3506:270;3527:7;3517:8;3514:21;3506:270;;;3586:4;3582:1;3578:6;3574:17;3568:4;3565:27;3562:53;;;3595:18;;:::i;:::-;3645:7;3635:8;3631:22;3628:55;;;3665:16;;;;3628:55;3744:22;;;;3704:15;;;;3506:270;;;3510:3;3360:422;;;;;:::o;3787:806::-;3836:5;3866:8;3856:80;;-1:-1:-1;3907:1:1;3921:5;;3856:80;3955:4;3945:76;;-1:-1:-1;3992:1:1;4006:5;;3945:76;4037:4;4055:1;4050:59;;;;4123:1;4118:130;;;;4030:218;;4050:59;4080:1;4071:10;;4094:5;;;4118:130;4155:3;4145:8;4142:17;4139:43;;;4162:18;;:::i;:::-;-1:-1:-1;;4218:1:1;4204:16;;4233:5;;4030:218;;4332:2;4322:8;4319:16;4313:3;4307:4;4304:13;4300:36;4294:2;4284:8;4281:16;4276:2;4270:4;4267:12;4263:35;4260:77;4257:159;;;-1:-1:-1;4369:19:1;;;4401:5;;4257:159;4448:34;4473:8;4467:4;4448:34;:::i;:::-;4518:6;4514:1;4510:6;4506:19;4497:7;4494:32;4491:58;;;4529:18;;:::i;:::-;4567:20;;3787:806;-1:-1:-1;;;3787:806:1:o;4598:140::-;4656:5;4685:47;4726:4;4716:8;4712:19;4706:4;4685:47;:::i;4743:168::-;4816:9;;;4847;;4864:15;;;4858:22;;4844:37;4834:71;;4885:18;;:::i;4916:128::-;4983:9;;;5004:11;;;5001:37;;;5018:18;;:::i;5049:329::-;5251:2;5233:21;;;5290:1;5270:18;;;5263:29;-1:-1:-1;;;5323:2:1;5308:18;;5301:36;5369:2;5354:18;;5049:329::o;5383:184::-;5453:6;5506:2;5494:9;5485:7;5481:23;5477:32;5474:52;;;5522:1;5519;5512:12;5474:52;-1:-1:-1;5545:16:1;;5383:184;-1:-1:-1;5383:184:1:o;5851:277::-;5918:6;5971:2;5959:9;5950:7;5946:23;5942:32;5939:52;;;5987:1;5984;5977:12;5939:52;6019:9;6013:16;6072:5;6065:13;6058:21;6051:5;6048:32;6038:60;;6094:1;6091;6084:12;6820:217;6860:1;6886;6876:132;;6930:10;6925:3;6921:20;6918:1;6911:31;6965:4;6962:1;6955:15;6993:4;6990:1;6983:15;6876:132;-1:-1:-1;7022:9:1;;6820:217::o;7401:125::-;7466:9;;;7487:10;;;7484:36;;;7500:18;;:::i;8016:127::-;8077:10;8072:3;8068:20;8065:1;8058:31;8108:4;8105:1;8098:15;8132:4;8129:1;8122:15;8148:980;8410:4;8458:3;8447:9;8443:19;8489:6;8478:9;8471:25;8515:2;8553:6;8548:2;8537:9;8533:18;8526:34;8596:3;8591:2;8580:9;8576:18;8569:31;8620:6;8655;8649:13;8686:6;8678;8671:22;8724:3;8713:9;8709:19;8702:26;;8763:2;8755:6;8751:15;8737:29;;8784:1;8794:195;8808:6;8805:1;8802:13;8794:195;;;8873:13;;-1:-1:-1;;;;;8869:39:1;8857:52;;8964:15;;;;8929:12;;;;8905:1;8823:9;8794:195;;;-1:-1:-1;;;;;;;9045:32:1;;;;9040:2;9025:18;;9018:60;-1:-1:-1;;;9109:3:1;9094:19;9087:35;9006:3;8148:980;-1:-1:-1;;;8148:980:1:o

Swarm Source

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