ETH Price: $3,264.92 (+0.15%)
Gas: 2 Gwei

Token

Monkeys (Monkeys)
 

Overview

Max Total Supply

500,000,000,000 Monkeys

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000301 Monkeys

Value
$0.00
0xe9755564c7aa65afab80cfba69847f6e91de64a3
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:
Monkeys

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-05-17
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function WETH() external pure returns (address);

    function factory() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);

    constructor(address creatorOwner) {
        _owner = creatorOwner;
    }

    modifier onlyOwner() {
        require(msg.sender == _owner, "Only owner can call this");
        _;
    }

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

    function renounceOwnership() external onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(address(0));
    }
}

contract Monkeys is IERC20, Auth {
    string private constant _name = "Monkeys";
    string private constant _symbol = "Monkeys";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 500_000_000_000 * (10**_decimals);

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

    uint32 private taxValue = 1000;

    address payable private constant _walletMarketing =
        payable(0x627a2196b244857E40c4e5d1D73BB48d511Bf2B6);
    uint256 private constant _taxSwapMin = _totalSupply / 200000;
    uint256 private constant _taxSwapMax = _totalSupply / 1000;

    mapping(address => bool) private _noFees;

    uint256 private startBlock;
    mapping(address => bool) private _isBot;

    address private constant _swapRouterAddress =
        address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    IUniswapV2Router02 private _primarySwapRouter =
        IUniswapV2Router02(_swapRouterAddress);

    address public _primaryLP;
    mapping(address => bool) private _isLP;

    bool public autoTrading = false;
    bool public _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap() {
        _inTaxSwap = true;
        _;
        _inTaxSwap = false;
    }

    constructor() Auth(msg.sender) {
        address receiver = address(0x592dE0eaBE4747106E2F2A0597596c446662CD2d);
        _balances[receiver] = _totalSupply;
        emit Transfer(address(0), receiver, _balances[receiver]);

        _noFees[receiver] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
    }

    receive() external payable {}

    function totalSupply() external pure 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 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 transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        require(_checkTradingOpen(msg.sender, recipient), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        require(_checkTradingOpen(sender, recipient), "Trading not open");
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if (_allowances[address(this)][_swapRouterAddress] < _tokenAmount) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function addLP(address _lp) external onlyOwner {
        _isLP[_lp] = true;
    }

    function removeLP(address _lp) external onlyOwner {
        _isLP[_lp] = false;
    }

    function createMainPair() external onlyOwner {
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(
            address(this),
            _primarySwapRouter.WETH()
        );
        _isLP[_primaryLP] = true;
    }

    function startTrade() internal {
        _tradingOpen = true;
        startBlock = block.number;
    }

    function enableAutoTrading(bool _able) external onlyOwner {
        // if you want to start trading by adding liquidity
        //  After using Create Main Pair and enable

        //  if you want to start trading by ...
        //  Enable after adding liquidity
        autoTrading = _able;
    }

    function startTradeManual() external onlyOwner {
        require(!_tradingOpen, "Trading Already Opened");
        _tradingOpen = true;
        startBlock = block.number;
    }

    function multiNoFee(address[] calldata noFeeList, bool isNoFee)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < noFeeList.length; i++) {
            _noFees[noFeeList[i]] = isNoFee;
        }
    }

    function multiBcList(address[] calldata bcList, bool isBlack)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < bcList.length; i++) {
            _isBot[bcList[i]] = isBlack;
        }
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        require(!_checkBot(sender), "Bot");

        if (!_inTaxSwap && _isLP[recipient]) {
            _swapTaxAndLiquify();
        }

        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        if (_taxAmount > 0) {
            //  AntiBot
            if (_isLP[sender])
                if (startBlock + 2 > block.number) {
                    _isBot[recipient] = true;
                }

            _balances[address(this)] += _taxAmount;
        }
        _balances[recipient] += _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _checkBot(address bot) public view returns (bool) {
        if (_isLP[bot] || bot == address(this) || _noFees[bot]) return false;
        //Vitalik is a bot
        if (bot == address(0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B))
            return true;
        return _isBot[bot];
    }

    function _checkTradingOpen(address sender, address recipient)
        private
        returns (bool)
    {
        bool checkResult = false;
        if (_tradingOpen) {
            checkResult = true;
        } else {
            //Trading is not opened here
            if (
                (_isLP[sender] && _noFees[recipient] && autoTrading) ||
                (_isLP[recipient] && _noFees[sender] && autoTrading)
            ) {
                startTrade();
                checkResult = true;
            }

            if (_noFees[sender]) {
                checkResult = true;
            }
        }
        return checkResult;
    }

    function tax()
        internal
        view
        returns (uint32 taxNumerator, uint32 taxDenominator)
    {
        (uint32 numerator, uint32 denominator) = (taxValue, 100_000);
        return (numerator, denominator);
    }

    function changeTaxValue(uint32 _taxValue) external onlyOwner {
        require(taxValue <= 30000, "Fee Too High");
        taxValue = _taxValue;
    }

    function _calculateTax(
        address sender,
        address recipient,
        uint256 amount
    ) internal view returns (uint256) {
        uint256 taxAmount;

        if (_tradingOpen && !_noFees[sender] && !_noFees[recipient]) {
            if (_isLP[sender] || _isLP[recipient]) {
                (uint32 numerator, uint32 denominator) = tax();
                taxAmount = (amount * numerator) / denominator;
            }
        }

        return taxAmount;
    }

    function marketingMultisig() external pure returns (address) {
        return _walletMarketing;
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = balanceOf(address(this));

        if (_taxTokensAvailable >= _taxSwapMin && _tradingOpen) {
            if (_taxTokensAvailable >= _taxSwapMax) {
                _taxTokensAvailable = _taxSwapMax;
            }

            uint256 _tokensToSwap = _taxTokensAvailable;
            if (_tokensToSwap > 10**_decimals) {
                _swapTaxTokensForEth(_tokensToSwap);
            }
            uint256 _contractETHBalance = address(this).balance;
            if (_contractETHBalance > 0) {
                (bool sent, bytes memory data) = _walletMarketing.call{
                    value: _contractETHBalance
                }("");
            }
        }
    }

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

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":"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":[{"internalType":"address","name":"bot","type":"address"}],"name":"_checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_primaryLP","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lp","type":"address"}],"name":"addLP","outputs":[],"stateMutability":"nonpayable","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":[],"name":"autoTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_taxValue","type":"uint32"}],"name":"changeTaxValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createMainPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_able","type":"bool"}],"name":"enableAutoTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingMultisig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"bcList","type":"address[]"},{"internalType":"bool","name":"isBlack","type":"bool"}],"name":"multiBcList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"noFeeList","type":"address[]"},{"internalType":"bool","name":"isNoFee","type":"bool"}],"name":"multiNoFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lp","type":"address"}],"name":"removeLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]

60806040526003805463ffffffff19166103e8179055600780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600a805462ff00ff191690553480156200005457600080fd5b50600080546001600160a01b0319163317905573592de0eabe4747106e2f2a0597596c446662cd2d6200008a6009600a620002a8565b6200009b9064746a528800620002c0565b6001600160a01b038216600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36001600160a01b03166000908152600460205260408082208054600160ff19918216811790925530845291832080548316821790557f1fc5acd025f7cc5cf2691b667dba808b5a149bf27192c208fc66f1f0ec4222d7805483168217905573627a2196b244857e40c4e5d1d73bb48d511bf2b69092527f2a2f40743ef305501f26217f847fa60667a9fdea12a328bfabf9937db9b2ce3080549091169091179055620002da565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001ea578160001904821115620001ce57620001ce62000193565b80851615620001dc57918102915b93841c9390800290620001ae565b509250929050565b6000826200020357506001620002a2565b816200021257506000620002a2565b81600181146200022b5760028114620002365762000256565b6001915050620002a2565b60ff8411156200024a576200024a62000193565b50506001821b620002a2565b5060208310610133831016604e8410600b84101617156200027b575081810a620002a2565b620002878383620001a9565b80600019048211156200029e576200029e62000193565b0290505b92915050565b6000620002b960ff841683620001f2565b9392505050565b8082028115828204841417620002a257620002a262000193565b61188480620002ea6000396000f3fe60806040526004361061014f5760003560e01c8063a9059cbb116100b6578063dd62ed3e1161006f578063dd62ed3e146103b8578063ddf731f3146103fe578063f47a2c1d1461041e578063f74801f914610438578063f98d6ec614610458578063fbf2bcc71461047857600080fd5b8063a9059cbb1461030f578063a91046341461032f578063ae1b675b14610344578063bc47bf9314610364578063cd52c70114610384578063da2d3d59146103a357600080fd5b806341db26a41161010857806341db26a41461026457806370a0823114610286578063715018a6146102bc57806389da7deb146102d15780638da5cb5b146102f157806395d89b411461015b57600080fd5b806306fdde031461015b578063095ea7b31461019a5780631046128a146101ca57806318160ddd1461020557806323b872dd14610228578063313ce5671461024857600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201825260078152664d6f6e6b65797360c81b6020820152905161019191906113f2565b60405180910390f35b3480156101a657600080fd5b506101ba6101b5366004611455565b610498565b6040519015158152602001610191565b3480156101d657600080fd5b5073627a2196b244857e40c4e5d1d73bb48d511bf2b65b6040516001600160a01b039091168152602001610191565b34801561021157600080fd5b5061021a610505565b604051908152602001610191565b34801561023457600080fd5b506101ba610243366004611481565b610527565b34801561025457600080fd5b5060405160098152602001610191565b34801561027057600080fd5b5061028461027f3660046114d7565b61060a565b005b34801561029257600080fd5b5061021a6102a13660046114f2565b6001600160a01b031660009081526001602052604090205490565b3480156102c857600080fd5b50610284610647565b3480156102dd57600080fd5b506102846102ec3660046114f2565b6106b6565b3480156102fd57600080fd5b506000546001600160a01b03166101ed565b34801561031b57600080fd5b506101ba61032a366004611455565b610701565b34801561033b57600080fd5b5061028461075e565b34801561035057600080fd5b506008546101ed906001600160a01b031681565b34801561037057600080fd5b506101ba61037f3660046114f2565b610930565b34801561039057600080fd5b50600a546101ba90610100900460ff1681565b3480156103af57600080fd5b506102846109db565b3480156103c457600080fd5b5061021a6103d336600461150f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561040a57600080fd5b506102846104193660046114f2565b610a6b565b34801561042a57600080fd5b50600a546101ba9060ff1681565b34801561044457600080fd5b50610284610453366004611548565b610ab9565b34801561046457600080fd5b5061028461047336600461156e565b610b4a565b34801561048457600080fd5b5061028461049336600461156e565b610beb565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104f39086815260200190565b60405180910390a35060015b92915050565b60006105136009600a6116ec565b6105229064746a5288006116fb565b905090565b60006105338484610c86565b6105775760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146105f7576001600160a01b03841660009081526002602090815260408083203384529091529020546105d2908390611712565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610602848484610d91565b949350505050565b6000546001600160a01b031633146106345760405162461bcd60e51b815260040161056e90611725565b600a805460ff1916911515919091179055565b6000546001600160a01b031633146106715760405162461bcd60e51b815260040161056e90611725565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106e05760405162461bcd60e51b815260040161056e90611725565b6001600160a01b03166000908152600960205260409020805460ff19169055565b600061070d3384610c86565b61074c5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161056e565b610757338484610d91565b9392505050565b6000546001600160a01b031633146107885760405162461bcd60e51b815260040161056e90611725565b600760009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ff919061175c565b6001600160a01b031663c9c6539630600760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610861573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610885919061175c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f6919061175c565b600880546001600160a01b0319166001600160a01b039290921691821790556000908152600960205260409020805460ff19166001179055565b6001600160a01b03811660009081526009602052604081205460ff168061095f57506001600160a01b03821630145b8061098257506001600160a01b03821660009081526004602052604090205460ff165b1561098f57506000919050565b73ab5801a7d398351b8be11c439e05c5b3259aec9a196001600160a01b038316016109bc57506001919050565b506001600160a01b031660009081526006602052604090205460ff1690565b6000546001600160a01b03163314610a055760405162461bcd60e51b815260040161056e90611725565b600a54610100900460ff1615610a565760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c8105b1c9958591e4813dc195b995960521b604482015260640161056e565b600a805461ff00191661010017905543600555565b6000546001600160a01b03163314610a955760405162461bcd60e51b815260040161056e90611725565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000546001600160a01b03163314610ae35760405162461bcd60e51b815260040161056e90611725565b60035461753063ffffffff9091161115610b2e5760405162461bcd60e51b815260206004820152600c60248201526b08ccaca40a8dede4090d2ced60a31b604482015260640161056e565b6003805463ffffffff191663ffffffff92909216919091179055565b6000546001600160a01b03163314610b745760405162461bcd60e51b815260040161056e90611725565b60005b82811015610be5578160066000868685818110610b9657610b96611779565b9050602002016020810190610bab91906114f2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bdd8161178f565b915050610b77565b50505050565b6000546001600160a01b03163314610c155760405162461bcd60e51b815260040161056e90611725565b60005b82811015610be5578160046000868685818110610c3757610c37611779565b9050602002016020810190610c4c91906114f2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c7e8161178f565b915050610c18565b600a546000908190610100900460ff1615610ca357506001610757565b6001600160a01b03841660009081526009602052604090205460ff168015610ce357506001600160a01b03831660009081526004602052604090205460ff165b8015610cf15750600a5460ff165b80610d4557506001600160a01b03831660009081526009602052604090205460ff168015610d3757506001600160a01b03841660009081526004602052604090205460ff165b8015610d455750600a5460ff165b15610d6657610d62600a805461ff00191661010017905543600555565b5060015b6001600160a01b03841660009081526004602052604090205460ff1615610757575060019392505050565b60006001600160a01b038416610de95760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000604482015260640161056e565b610df284610930565b15610e255760405162461bcd60e51b8152602060048201526003602482015262109bdd60ea1b604482015260640161056e565b600a5462010000900460ff16158015610e5657506001600160a01b03831660009081526009602052604090205460ff165b15610e6357610e63610fbe565b6000610e70858585611117565b90506000610e7e8285611712565b6001600160a01b038716600090815260016020526040812080549293508692909190610eab908490611712565b90915550508115610f36576001600160a01b03861660009081526009602052604090205460ff1615610f1157436005546002610ee791906117a8565b1115610f11576001600160a01b0385166000908152600660205260409020805460ff191660011790555b3060009081526001602052604081208054849290610f309084906117a8565b90915550505b6001600160a01b03851660009081526001602052604081208054839290610f5e9084906117a8565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610faa91815260200190565b60405180910390a350600195945050505050565b600a805462ff000019166201000017905530600090815260016020526040812054905062030d40610ff16009600a6116ec565b6110009064746a5288006116fb565b61100a91906117bb565b81101580156110205750600a54610100900460ff165b15611108576103e86110346009600a6116ec565b6110439064746a5288006116fb565b61104d91906117bb565b811061107e576103e86110626009600a6116ec565b6110719064746a5288006116fb565b61107b91906117bb565b90505b8061108b6009600a6116ec565b81111561109b5761109b81611203565b47801561110557604051600090819073627a2196b244857e40c4e5d1d73bb48d511bf2b69084908381818185875af1925050503d80600081146110fa576040519150601f19603f3d011682016040523d82523d6000602084013e6110ff565b606091505b50505050505b50505b50600a805462ff000019169055565b600a546000908190610100900460ff16801561114c57506001600160a01b03851660009081526004602052604090205460ff16155b801561117157506001600160a01b03841660009081526004602052604090205460ff16155b15610602576001600160a01b03851660009081526009602052604090205460ff16806111b557506001600160a01b03841660009081526009602052604090205460ff165b15610602576000806111d160035463ffffffff1690620186a090565b915091508063ffffffff168263ffffffff16866111ee91906116fb565b6111f891906117bb565b979650505050505050565b61120c8161134d565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061124157611241611779565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561129a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112be919061175c565b816001815181106112d1576112d1611779565b6001600160a01b03928316602091820292909201015260075460405163791ac94760e01b815291169063791ac947906113179085906000908690309042906004016117dd565b600060405180830381600087803b15801561133157600080fd5b505af1158015611345573d6000803e3d6000fd5b505050505050565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156113ef57306000818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b600060208083528351808285015260005b8181101561141f57858101830151858201604001528201611403565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113ef57600080fd5b6000806040838503121561146857600080fd5b823561147381611440565b946020939093013593505050565b60008060006060848603121561149657600080fd5b83356114a181611440565b925060208401356114b181611440565b929592945050506040919091013590565b803580151581146114d257600080fd5b919050565b6000602082840312156114e957600080fd5b610757826114c2565b60006020828403121561150457600080fd5b813561075781611440565b6000806040838503121561152257600080fd5b823561152d81611440565b9150602083013561153d81611440565b809150509250929050565b60006020828403121561155a57600080fd5b813563ffffffff8116811461075757600080fd5b60008060006040848603121561158357600080fd5b833567ffffffffffffffff8082111561159b57600080fd5b818601915086601f8301126115af57600080fd5b8135818111156115be57600080fd5b8760208260051b85010111156115d357600080fd5b6020928301955093506115e991860190506114c2565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611643578160001904821115611629576116296115f2565b8085161561163657918102915b93841c939080029061160d565b509250929050565b60008261165a575060016104ff565b81611667575060006104ff565b816001811461167d5760028114611687576116a3565b60019150506104ff565b60ff841115611698576116986115f2565b50506001821b6104ff565b5060208310610133831016604e8410600b84101617156116c6575081810a6104ff565b6116d08383611608565b80600019048211156116e4576116e46115f2565b029392505050565b600061075760ff84168361164b565b80820281158282048414176104ff576104ff6115f2565b818103818111156104ff576104ff6115f2565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561176e57600080fd5b815161075781611440565b634e487b7160e01b600052603260045260246000fd5b6000600182016117a1576117a16115f2565b5060010190565b808201808211156104ff576104ff6115f2565b6000826117d857634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561182d5784516001600160a01b031683529383019391830191600101611808565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206ea532cbff3a598376824654e5e77c16966922cf95d2c98743cd8a7c6c2b920664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063a9059cbb116100b6578063dd62ed3e1161006f578063dd62ed3e146103b8578063ddf731f3146103fe578063f47a2c1d1461041e578063f74801f914610438578063f98d6ec614610458578063fbf2bcc71461047857600080fd5b8063a9059cbb1461030f578063a91046341461032f578063ae1b675b14610344578063bc47bf9314610364578063cd52c70114610384578063da2d3d59146103a357600080fd5b806341db26a41161010857806341db26a41461026457806370a0823114610286578063715018a6146102bc57806389da7deb146102d15780638da5cb5b146102f157806395d89b411461015b57600080fd5b806306fdde031461015b578063095ea7b31461019a5780631046128a146101ca57806318160ddd1461020557806323b872dd14610228578063313ce5671461024857600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201825260078152664d6f6e6b65797360c81b6020820152905161019191906113f2565b60405180910390f35b3480156101a657600080fd5b506101ba6101b5366004611455565b610498565b6040519015158152602001610191565b3480156101d657600080fd5b5073627a2196b244857e40c4e5d1d73bb48d511bf2b65b6040516001600160a01b039091168152602001610191565b34801561021157600080fd5b5061021a610505565b604051908152602001610191565b34801561023457600080fd5b506101ba610243366004611481565b610527565b34801561025457600080fd5b5060405160098152602001610191565b34801561027057600080fd5b5061028461027f3660046114d7565b61060a565b005b34801561029257600080fd5b5061021a6102a13660046114f2565b6001600160a01b031660009081526001602052604090205490565b3480156102c857600080fd5b50610284610647565b3480156102dd57600080fd5b506102846102ec3660046114f2565b6106b6565b3480156102fd57600080fd5b506000546001600160a01b03166101ed565b34801561031b57600080fd5b506101ba61032a366004611455565b610701565b34801561033b57600080fd5b5061028461075e565b34801561035057600080fd5b506008546101ed906001600160a01b031681565b34801561037057600080fd5b506101ba61037f3660046114f2565b610930565b34801561039057600080fd5b50600a546101ba90610100900460ff1681565b3480156103af57600080fd5b506102846109db565b3480156103c457600080fd5b5061021a6103d336600461150f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561040a57600080fd5b506102846104193660046114f2565b610a6b565b34801561042a57600080fd5b50600a546101ba9060ff1681565b34801561044457600080fd5b50610284610453366004611548565b610ab9565b34801561046457600080fd5b5061028461047336600461156e565b610b4a565b34801561048457600080fd5b5061028461049336600461156e565b610beb565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104f39086815260200190565b60405180910390a35060015b92915050565b60006105136009600a6116ec565b6105229064746a5288006116fb565b905090565b60006105338484610c86565b6105775760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146105f7576001600160a01b03841660009081526002602090815260408083203384529091529020546105d2908390611712565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610602848484610d91565b949350505050565b6000546001600160a01b031633146106345760405162461bcd60e51b815260040161056e90611725565b600a805460ff1916911515919091179055565b6000546001600160a01b031633146106715760405162461bcd60e51b815260040161056e90611725565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106e05760405162461bcd60e51b815260040161056e90611725565b6001600160a01b03166000908152600960205260409020805460ff19169055565b600061070d3384610c86565b61074c5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161056e565b610757338484610d91565b9392505050565b6000546001600160a01b031633146107885760405162461bcd60e51b815260040161056e90611725565b600760009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ff919061175c565b6001600160a01b031663c9c6539630600760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610861573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610885919061175c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f6919061175c565b600880546001600160a01b0319166001600160a01b039290921691821790556000908152600960205260409020805460ff19166001179055565b6001600160a01b03811660009081526009602052604081205460ff168061095f57506001600160a01b03821630145b8061098257506001600160a01b03821660009081526004602052604090205460ff165b1561098f57506000919050565b73ab5801a7d398351b8be11c439e05c5b3259aec9a196001600160a01b038316016109bc57506001919050565b506001600160a01b031660009081526006602052604090205460ff1690565b6000546001600160a01b03163314610a055760405162461bcd60e51b815260040161056e90611725565b600a54610100900460ff1615610a565760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c8105b1c9958591e4813dc195b995960521b604482015260640161056e565b600a805461ff00191661010017905543600555565b6000546001600160a01b03163314610a955760405162461bcd60e51b815260040161056e90611725565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000546001600160a01b03163314610ae35760405162461bcd60e51b815260040161056e90611725565b60035461753063ffffffff9091161115610b2e5760405162461bcd60e51b815260206004820152600c60248201526b08ccaca40a8dede4090d2ced60a31b604482015260640161056e565b6003805463ffffffff191663ffffffff92909216919091179055565b6000546001600160a01b03163314610b745760405162461bcd60e51b815260040161056e90611725565b60005b82811015610be5578160066000868685818110610b9657610b96611779565b9050602002016020810190610bab91906114f2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bdd8161178f565b915050610b77565b50505050565b6000546001600160a01b03163314610c155760405162461bcd60e51b815260040161056e90611725565b60005b82811015610be5578160046000868685818110610c3757610c37611779565b9050602002016020810190610c4c91906114f2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c7e8161178f565b915050610c18565b600a546000908190610100900460ff1615610ca357506001610757565b6001600160a01b03841660009081526009602052604090205460ff168015610ce357506001600160a01b03831660009081526004602052604090205460ff165b8015610cf15750600a5460ff165b80610d4557506001600160a01b03831660009081526009602052604090205460ff168015610d3757506001600160a01b03841660009081526004602052604090205460ff165b8015610d455750600a5460ff165b15610d6657610d62600a805461ff00191661010017905543600555565b5060015b6001600160a01b03841660009081526004602052604090205460ff1615610757575060019392505050565b60006001600160a01b038416610de95760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000604482015260640161056e565b610df284610930565b15610e255760405162461bcd60e51b8152602060048201526003602482015262109bdd60ea1b604482015260640161056e565b600a5462010000900460ff16158015610e5657506001600160a01b03831660009081526009602052604090205460ff165b15610e6357610e63610fbe565b6000610e70858585611117565b90506000610e7e8285611712565b6001600160a01b038716600090815260016020526040812080549293508692909190610eab908490611712565b90915550508115610f36576001600160a01b03861660009081526009602052604090205460ff1615610f1157436005546002610ee791906117a8565b1115610f11576001600160a01b0385166000908152600660205260409020805460ff191660011790555b3060009081526001602052604081208054849290610f309084906117a8565b90915550505b6001600160a01b03851660009081526001602052604081208054839290610f5e9084906117a8565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610faa91815260200190565b60405180910390a350600195945050505050565b600a805462ff000019166201000017905530600090815260016020526040812054905062030d40610ff16009600a6116ec565b6110009064746a5288006116fb565b61100a91906117bb565b81101580156110205750600a54610100900460ff165b15611108576103e86110346009600a6116ec565b6110439064746a5288006116fb565b61104d91906117bb565b811061107e576103e86110626009600a6116ec565b6110719064746a5288006116fb565b61107b91906117bb565b90505b8061108b6009600a6116ec565b81111561109b5761109b81611203565b47801561110557604051600090819073627a2196b244857e40c4e5d1d73bb48d511bf2b69084908381818185875af1925050503d80600081146110fa576040519150601f19603f3d011682016040523d82523d6000602084013e6110ff565b606091505b50505050505b50505b50600a805462ff000019169055565b600a546000908190610100900460ff16801561114c57506001600160a01b03851660009081526004602052604090205460ff16155b801561117157506001600160a01b03841660009081526004602052604090205460ff16155b15610602576001600160a01b03851660009081526009602052604090205460ff16806111b557506001600160a01b03841660009081526009602052604090205460ff165b15610602576000806111d160035463ffffffff1690620186a090565b915091508063ffffffff168263ffffffff16866111ee91906116fb565b6111f891906117bb565b979650505050505050565b61120c8161134d565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061124157611241611779565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561129a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112be919061175c565b816001815181106112d1576112d1611779565b6001600160a01b03928316602091820292909201015260075460405163791ac94760e01b815291169063791ac947906113179085906000908690309042906004016117dd565b600060405180830381600087803b15801561133157600080fd5b505af1158015611345573d6000803e3d6000fd5b505050505050565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156113ef57306000818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b600060208083528351808285015260005b8181101561141f57858101830151858201604001528201611403565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113ef57600080fd5b6000806040838503121561146857600080fd5b823561147381611440565b946020939093013593505050565b60008060006060848603121561149657600080fd5b83356114a181611440565b925060208401356114b181611440565b929592945050506040919091013590565b803580151581146114d257600080fd5b919050565b6000602082840312156114e957600080fd5b610757826114c2565b60006020828403121561150457600080fd5b813561075781611440565b6000806040838503121561152257600080fd5b823561152d81611440565b9150602083013561153d81611440565b809150509250929050565b60006020828403121561155a57600080fd5b813563ffffffff8116811461075757600080fd5b60008060006040848603121561158357600080fd5b833567ffffffffffffffff8082111561159b57600080fd5b818601915086601f8301126115af57600080fd5b8135818111156115be57600080fd5b8760208260051b85010111156115d357600080fd5b6020928301955093506115e991860190506114c2565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611643578160001904821115611629576116296115f2565b8085161561163657918102915b93841c939080029061160d565b509250929050565b60008261165a575060016104ff565b81611667575060006104ff565b816001811461167d5760028114611687576116a3565b60019150506104ff565b60ff841115611698576116986115f2565b50506001821b6104ff565b5060208310610133831016604e8410600b84101617156116c6575081810a6104ff565b6116d08383611608565b80600019048211156116e4576116e46115f2565b029392505050565b600061075760ff84168361164b565b80820281158282048414176104ff576104ff6115f2565b818103818111156104ff576104ff6115f2565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561176e57600080fd5b815161075781611440565b634e487b7160e01b600052603260045260246000fd5b6000600182016117a1576117a16115f2565b5060010190565b808201808211156104ff576104ff6115f2565b6000826117d857634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561182d5784516001600160a01b031683529383019391830191600101611808565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206ea532cbff3a598376824654e5e77c16966922cf95d2c98743cd8a7c6c2b920664736f6c63430008130033

Deployed Bytecode Sourcemap

2477:9534:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4565:94;;;;;;;;;;-1:-1:-1;4646:5:0;;;;;;;;;;;-1:-1:-1;;;4646:5:0;;;;4565:94;;;;4646:5;4565:94;:::i;:::-;;;;;;;;4990:248;;;;;;;;;;-1:-1:-1;4990:248:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4990:248:0;1023:187:1;10669:103:0;;;;;;;;;;-1:-1:-1;2976:42:0;10669:103;;;-1:-1:-1;;;;;1379:32:1;;;1361:51;;1349:2;1334:18;10669:103:0;1215:203:1;4247:102:0;;;;;;;;;;;;;:::i;:::-;;;1569:25:1;;;1557:2;1542:18;4247:102:0;1423:177:1;5522:485:0;;;;;;;;;;-1:-1:-1;5522:485:0;;;;;:::i;:::-;;:::i;4357:94::-;;;;;;;;;;-1:-1:-1;4357:94:0;;2650:1;2208:36:1;;2196:2;2181:18;4357:94:0;2066:184:1;6894:304:0;;;;;;;;;;-1:-1:-1;6894:304:0;;;;;:::i;:::-;;:::i;:::-;;4667:119;;;;;;;;;;-1:-1:-1;4667:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4760:18:0;4733:7;4760:18;;;:9;:18;;;;;;;4667:119;2336:134;;;;;;;;;;;;;:::i;6429:87::-;;;;;;;;;;-1:-1:-1;6429:87:0;;;;;:::i;:::-;;:::i;2249:79::-;;;;;;;;;;-1:-1:-1;2287:7:0;2314:6;-1:-1:-1;;;;;2314:6:0;2249:79;;5246:268;;;;;;;;;;-1:-1:-1;5246:268:0;;;;;:::i;:::-;;:::i;6524:249::-;;;;;;;;;;;;;:::i;3509:25::-;;;;;;;;;;-1:-1:-1;3509:25:0;;;;-1:-1:-1;;;;;3509:25:0;;;8786:302;;;;;;;;;;-1:-1:-1;8786:302:0;;;;;:::i;:::-;;:::i;3626:24::-;;;;;;;;;;-1:-1:-1;3626:24:0;;;;;;;;;;;7206:180;;;;;;;;;;;;;:::i;4794:188::-;;;;;;;;;;-1:-1:-1;4794:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;4946:19:0;;;4914:7;4946:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;4794:188;6338:83;;;;;;;;;;-1:-1:-1;6338:83:0;;;;;:::i;:::-;;:::i;3588:31::-;;;;;;;;;;-1:-1:-1;3588:31:0;;;;;;;;10011:153;;;;;;;;;;-1:-1:-1;10011:153:0;;;;;:::i;:::-;;:::i;7631:220::-;;;;;;;;;;-1:-1:-1;7631:220:0;;;;;:::i;:::-;;:::i;7394:229::-;;;;;;;;;;-1:-1:-1;7394:229:0;;;;;:::i;:::-;;:::i;4990:248::-;5126:10;5092:4;5114:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5114:32:0;;;;;;;;;;:41;;;5171:37;5092:4;;5114:32;;5171:37;;;;5149:6;1569:25:1;;1557:2;1542:18;;1423:177;5171:37:0;;;;;;;;-1:-1:-1;5226:4:0;4990:248;;;;;:::o;4247:102::-;4302:7;2717:13;2650:1;2717:2;:13;:::i;:::-;2698:33;;:15;:33;:::i;:::-;4322:19;;4247:102;:::o;5522:485::-;5656:4;5681:36;5699:6;5707:9;5681:17;:36::i;:::-;5673:65;;;;-1:-1:-1;;;5673:65:0;;6115:2:1;5673:65:0;;;6097:21:1;6154:2;6134:18;;;6127:30;-1:-1:-1;;;6173:18:1;;;6166:46;6229:18;;5673:65:0;;;;;;;;;-1:-1:-1;;;;;5753:19:0;;;;;;:11;:19;;;;;;;;5773:10;5753:31;;;;;;;;-1:-1:-1;;5753:52:0;5749:193;;-1:-1:-1;;;;;5873:19:0;;;;;;:11;:19;;;;;;;;5893:10;5873:31;;;;;;;;:57;;5924:6;;5873:57;:::i;:::-;-1:-1:-1;;;;;5822:19:0;;;;;;:11;:19;;;;;;;;5842:10;5822:31;;;;;;;:108;5749:193;5959:40;5973:6;5981:9;5992:6;5959:13;:40::i;:::-;5952:47;5522:485;-1:-1:-1;;;;5522:485:0:o;6894:304::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;7171:11:::1;:19:::0;;-1:-1:-1;;7171:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6894:304::o;2336:134::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;2412:1:::1;2395:19:::0;;-1:-1:-1;;;;;;2395:19:0::1;::::0;;2430:32:::1;::::0;1361:51:1;;;2430:32:0::1;::::0;1349:2:1;1334:18;2430:32:0::1;;;;;;;2336:134::o:0;6429:87::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6490:10:0::1;6503:5;6490:10:::0;;;:5:::1;:10;::::0;;;;:18;;-1:-1:-1;;6490:18:0::1;::::0;;6429:87::o;5246:268::-;5353:4;5383:40;5401:10;5413:9;5383:17;:40::i;:::-;5375:69;;;;-1:-1:-1;;;5375:69:0;;6115:2:1;5375:69:0;;;6097:21:1;6154:2;6134:18;;;6127:30;-1:-1:-1;;;6173:18:1;;;6166:46;6229:18;;5375:69:0;5913:340:1;5375:69:0;5462:44;5476:10;5488:9;5499:6;5462:13;:44::i;:::-;5455:51;5246:268;-1:-1:-1;;;5246:268:0:o;6524:249::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;6611:18:::1;;;;;;;;;-1:-1:-1::0;;;;;6611:18:0::1;-1:-1:-1::0;;;;;6611:26:0::1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6593:58:0::1;;6674:4;6694:18;;;;;;;;;-1:-1:-1::0;;;;;6694:18:0::1;-1:-1:-1::0;;;;;6694:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6593:137;::::0;-1:-1:-1;;;;;;6593:137:0::1;::::0;;;;;;-1:-1:-1;;;;;7230:15:1;;;6593:137:0::1;::::0;::::1;7212:34:1::0;7282:15;;7262:18;;;7255:43;7147:18;;6593:137:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6580:10;:150:::0;;-1:-1:-1;;;;;;6580:150:0::1;-1:-1:-1::0;;;;;6580:150:0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;6741:17:0;;;:5:::1;:17;::::0;;;;:24;;-1:-1:-1;;6741:24:0::1;-1:-1:-1::0;6741:24:0::1;::::0;;6524:249::o;8786:302::-;-1:-1:-1;;;;;8860:10:0;;8839:4;8860:10;;;:5;:10;;;;;;;;;:34;;-1:-1:-1;;;;;;8874:20:0;;8889:4;8874:20;8860:34;:50;;;-1:-1:-1;;;;;;8898:12:0;;;;;;:7;:12;;;;;;;;8860:50;8856:68;;;-1:-1:-1;8919:5:0;;8786:302;-1:-1:-1;8786:302:0:o;8856:68::-;-1:-1:-1;;;;;;;8967:58:0;;;8963:88;;-1:-1:-1;9047:4:0;;8786:302;-1:-1:-1;8786:302:0:o;8963:88::-;-1:-1:-1;;;;;;9069:11:0;;;;;:6;:11;;;;;;;;;8786:302::o;7206:180::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;7273:12:::1;::::0;::::1;::::0;::::1;;;7272:13;7264:48;;;::::0;-1:-1:-1;;;7264:48:0;;7511:2:1;7264:48:0::1;::::0;::::1;7493:21:1::0;7550:2;7530:18;;;7523:30;-1:-1:-1;;;7569:18:1;;;7562:52;7631:18;;7264:48:0::1;7309:346:1::0;7264:48:0::1;7323:12;:19:::0;;-1:-1:-1;;7323:19:0::1;;;::::0;;7366:12:::1;7353:10;:25:::0;7206:180::o;6338:83::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6396:10:0::1;;::::0;;;:5:::1;:10;::::0;;;;:17;;-1:-1:-1;;6396:17:0::1;6409:4;6396:17;::::0;;6338:83::o;10011:153::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;10091:8:::1;::::0;10103:5:::1;10091:8;::::0;;::::1;:17;;10083:42;;;::::0;-1:-1:-1;;;10083:42:0;;7862:2:1;10083:42:0::1;::::0;::::1;7844:21:1::0;7901:2;7881:18;;;7874:30;-1:-1:-1;;;7920:18:1;;;7913:42;7972:18;;10083:42:0::1;7660:336:1::0;10083:42:0::1;10136:8;:20:::0;;-1:-1:-1;;10136:20:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;10011:153::o;7631:220::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;7751:9:::1;7746:98;7766:17:::0;;::::1;7746:98;;;7825:7;7805:6;:17;7812:6;;7819:1;7812:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7805:17:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7805:17:0;:27;;-1:-1:-1;;7805:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7785:3;::::1;::::0;::::1;:::i;:::-;;;;7746:98;;;;7631:220:::0;;;:::o;7394:229::-;2186:6;;-1:-1:-1;;;;;2186:6:0;2172:10;:20;2164:57;;;;-1:-1:-1;;;2164:57:0;;;;;;;:::i;:::-;7516:9:::1;7511:105;7531:20:::0;;::::1;7511:105;;;7597:7;7573;:21;7581:9;;7591:1;7581:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7573:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7573:21:0;:31;;-1:-1:-1;;7573:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7553:3;::::1;::::0;::::1;:::i;:::-;;;;7511:105;;9096:664:::0;9254:12;;9193:4;;;;9254:12;;;;;9250:474;;;-1:-1:-1;9297:4:0;9250:474;;;-1:-1:-1;;;;;9399:13:0;;;;;;:5;:13;;;;;;;;:35;;;;-1:-1:-1;;;;;;9416:18:0;;;;;;:7;:18;;;;;;;;9399:35;:50;;;;-1:-1:-1;9438:11:0;;;;9399:50;9398:125;;;-1:-1:-1;;;;;;9472:16:0;;;;;;:5;:16;;;;;;;;:35;;;;-1:-1:-1;;;;;;9492:15:0;;;;;;:7;:15;;;;;;;;9472:35;:50;;;;-1:-1:-1;9511:11:0;;;;9472:50;9376:247;;;9558:12;7323::::1;:19:::0;;-1:-1:-1;;7323:19:0::1;;;::::0;;7366:12:::1;7353:10;:25:::0;7206:180;9558:12;-1:-1:-1;9603:4:0;9376:247;-1:-1:-1;;;;;9643:15:0;;;;;;:7;:15;;;;;;;;9639:74;;;-1:-1:-1;9693:4:0;9741:11;9096:664;-1:-1:-1;;;9096:664:0:o;7859:919::-;7985:4;-1:-1:-1;;;;;8010:20:0;;8002:62;;;;-1:-1:-1;;;8002:62:0;;8475:2:1;8002:62:0;;;8457:21:1;8514:2;8494:18;;;8487:30;8553:31;8533:18;;;8526:59;8602:18;;8002:62:0;8273:353:1;8002:62:0;8084:17;8094:6;8084:9;:17::i;:::-;8083:18;8075:34;;;;-1:-1:-1;;;8075:34:0;;8833:2:1;8075:34:0;;;8815:21:1;8872:1;8852:18;;;8845:29;-1:-1:-1;;;8890:18:1;;;8883:33;8933:18;;8075:34:0;8631:326:1;8075:34:0;8127:10;;;;;;;8126:11;:31;;;;-1:-1:-1;;;;;;8141:16:0;;;;;;:5;:16;;;;;;;;8126:31;8122:84;;;8174:20;:18;:20::i;:::-;8218:18;8239:40;8253:6;8261:9;8272:6;8239:13;:40::i;:::-;8218:61;-1:-1:-1;8290:23:0;8316:19;8218:61;8316:6;:19;:::i;:::-;-1:-1:-1;;;;;8346:17:0;;;;;;:9;:17;;;;;:27;;8290:45;;-1:-1:-1;8367:6:0;;8346:17;;;:27;;8367:6;;8346:27;:::i;:::-;;;;-1:-1:-1;;8388:14:0;;8384:264;;-1:-1:-1;;;;;8448:13:0;;;;;;:5;:13;;;;;;;;8444:138;;;8501:12;8484:10;;8497:1;8484:14;;;;:::i;:::-;:29;8480:102;;;-1:-1:-1;;;;;8538:17:0;;;;;;:6;:17;;;;;:24;;-1:-1:-1;;8538:24:0;8558:4;8538:24;;;8480:102;8616:4;8598:24;;;;:9;:24;;;;;:38;;8626:10;;8598:24;:38;;8626:10;;8598:38;:::i;:::-;;;;-1:-1:-1;;8384:264:0;-1:-1:-1;;;;;8658:20:0;;;;;;:9;:20;;;;;:39;;8682:15;;8658:20;:39;;8682:15;;8658:39;:::i;:::-;;;;;;;;8730:9;-1:-1:-1;;;;;8713:35:0;8722:6;-1:-1:-1;;;;;8713:35:0;;8741:6;8713:35;;;;1569:25:1;;1557:2;1542:18;;1423:177;8713:35:0;;;;;;;;-1:-1:-1;8766:4:0;;7859:919;-1:-1:-1;;;;;7859:919:0:o;10780:774::-;3731:10;:17;;-1:-1:-1;;3731:17:0;;;;;10889:4:::1;-1:-1:-1::0;4760:18:0;;;-1:-1:-1;4760:18:0;;;;;;10841:54;-1:-1:-1;3080:6:0::1;2717:13;2650:1;2717:2;:13;:::i;:::-;2698:33;::::0;:15:::1;:33;:::i;:::-;3065:21;;;;:::i;:::-;10912:19;:34;;:50;;;;-1:-1:-1::0;10950:12:0::1;::::0;::::1;::::0;::::1;;;10912:50;10908:639;;;3147:4;2717:13;2650:1;2717:2;:13;:::i;:::-;2698:33;::::0;:15:::1;:33;:::i;:::-;3132:19;;;;:::i;:::-;10983;:34;10979:108;;3147:4;2717:13;2650:1;2717:2;:13;:::i;:::-;2698:33;::::0;:15:::1;:33;:::i;:::-;3132:19;;;;:::i;:::-;11038:33;;10979:108;11127:19:::0;11181:13:::1;2650:1;11181:2;:13;:::i;:::-;11165;:29;11161:105;;;11215:35;11236:13;11215:20;:35::i;:::-;11310:21;11350:23:::0;;11346:190:::1;;11427:93;::::0;11395:9:::1;::::0;;;2976:42:::1;::::0;11478:19;;11395:9;11427:93;11395:9;11427:93;11478:19;2976:42;11427:93:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11346:190:0::1;10964:583;;10908:639;-1:-1:-1::0;3771:10:0;:18;;-1:-1:-1;;3771:18:0;;;10780:774::o;10172:489::-;10357:12;;10303:7;;;;10357:12;;;;;:32;;;;-1:-1:-1;;;;;;10374:15:0;;;;;;:7;:15;;;;;;;;10373:16;10357:32;:55;;;;-1:-1:-1;;;;;;10394:18:0;;;;;;:7;:18;;;;;;;;10393:19;10357:55;10353:272;;;-1:-1:-1;;;;;10433:13:0;;;;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;10450:16:0;;;;;;:5;:16;;;;;;;;10433:33;10429:185;;;10488:16;10506:18;10528:5;9935:8;;;;;9945:7;;9768:235;10528:5;10487:46;;;;10587:11;10564:34;;10574:9;10565:18;;:6;:18;;;;:::i;:::-;10564:34;;;;:::i;:::-;10552:46;10644:9;-1:-1:-1;;;;;;;10172:489:0:o;11562:446::-;11632:27;11647:11;11632:14;:27::i;:::-;11694:16;;;11708:1;11694:16;;;;;;;;11670:21;;11694:16;;;;;;;;;;-1:-1:-1;11694:16:0;11670:40;;11739:4;11721;11726:1;11721:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11721:23:0;;;:7;;;;;;;;;;:23;;;;11765:18;;:25;;;-1:-1:-1;;;11765:25:0;;;;:18;;;;;:23;;:25;;;;;11721:7;;11765:25;;;;;:18;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11755:4;11760:1;11755:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11755:35:0;;;:7;;;;;;;;;:35;11801:18;;:199;;-1:-1:-1;;;11801:199:0;;:18;;;:69;;:199;;11885:11;;11801:18;;11927:4;;11954;;11974:15;;11801:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11621:387;11562:446;:::o;6015:315::-;6105:4;6085:26;;;;:11;:26;;;;;;;;3353:42;6085:46;;;;;;;;:61;-1:-1:-1;6081:242:0;;;6183:4;6163:26;;;;:11;:26;;;;;;;;3353:42;6163:46;;;;;;;;;;-1:-1:-1;;6163:66:0;;;;6249:62;;1569:25:1;;;3353:42:0;;6183:4;6249:62;;1542:18:1;6249:62:0;;;;;;;6081:242;6015:315;:::o;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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:160::-;2320:20;;2376:13;;2369:21;2359:32;;2349:60;;2405:1;2402;2395:12;2349:60;2255:160;;;:::o;2420:180::-;2476:6;2529:2;2517:9;2508:7;2504:23;2500:32;2497:52;;;2545:1;2542;2535:12;2497:52;2568:26;2584:9;2568:26;:::i;2605:247::-;2664:6;2717:2;2705:9;2696:7;2692:23;2688:32;2685:52;;;2733:1;2730;2723:12;2685:52;2772:9;2759:23;2791:31;2816:5;2791:31;:::i;2857:388::-;2925:6;2933;2986:2;2974:9;2965:7;2961:23;2957:32;2954:52;;;3002:1;2999;2992:12;2954:52;3041:9;3028:23;3060:31;3085:5;3060:31;:::i;:::-;3110:5;-1:-1:-1;3167:2:1;3152:18;;3139:32;3180:33;3139:32;3180:33;:::i;:::-;3232:7;3222:17;;;2857:388;;;;;:::o;3250:276::-;3308:6;3361:2;3349:9;3340:7;3336:23;3332:32;3329:52;;;3377:1;3374;3367:12;3329:52;3416:9;3403:23;3466:10;3459:5;3455:22;3448:5;3445:33;3435:61;;3492:1;3489;3482:12;3531:689;3623:6;3631;3639;3692:2;3680:9;3671:7;3667:23;3663:32;3660:52;;;3708:1;3705;3698:12;3660:52;3748:9;3735:23;3777:18;3818:2;3810:6;3807:14;3804:34;;;3834:1;3831;3824:12;3804:34;3872:6;3861:9;3857:22;3847:32;;3917:7;3910:4;3906:2;3902:13;3898:27;3888:55;;3939:1;3936;3929:12;3888:55;3979:2;3966:16;4005:2;3997:6;3994:14;3991:34;;;4021:1;4018;4011:12;3991:34;4076:7;4069:4;4059:6;4056:1;4052:14;4048:2;4044:23;4040:34;4037:47;4034:67;;;4097:1;4094;4087:12;4034:67;4128:4;4120:13;;;;-1:-1:-1;4152:6:1;-1:-1:-1;4177:37:1;;4193:20;;;-1:-1:-1;4177:37:1;:::i;:::-;4167:47;;3531:689;;;;;:::o;4225:127::-;4286:10;4281:3;4277:20;4274:1;4267:31;4317:4;4314:1;4307:15;4341:4;4338:1;4331:15;4357:422;4446:1;4489:5;4446:1;4503:270;4524:7;4514:8;4511:21;4503:270;;;4583:4;4579:1;4575:6;4571:17;4565:4;4562:27;4559:53;;;4592:18;;:::i;:::-;4642:7;4632:8;4628:22;4625:55;;;4662:16;;;;4625:55;4741:22;;;;4701:15;;;;4503:270;;;4507:3;4357:422;;;;;:::o;4784:806::-;4833:5;4863:8;4853:80;;-1:-1:-1;4904:1:1;4918:5;;4853:80;4952:4;4942:76;;-1:-1:-1;4989:1:1;5003:5;;4942:76;5034:4;5052:1;5047:59;;;;5120:1;5115:130;;;;5027:218;;5047:59;5077:1;5068:10;;5091:5;;;5115:130;5152:3;5142:8;5139:17;5136:43;;;5159:18;;:::i;:::-;-1:-1:-1;;5215:1:1;5201:16;;5230:5;;5027:218;;5329:2;5319:8;5316:16;5310:3;5304:4;5301:13;5297:36;5291:2;5281:8;5278:16;5273:2;5267:4;5264:12;5260:35;5257:77;5254:159;;;-1:-1:-1;5366:19:1;;;5398:5;;5254:159;5445:34;5470:8;5464:4;5445:34;:::i;:::-;5515:6;5511:1;5507:6;5503:19;5494:7;5491:32;5488:58;;;5526:18;;:::i;:::-;5564:20;;4784:806;-1:-1:-1;;;4784:806:1:o;5595:140::-;5653:5;5682:47;5723:4;5713:8;5709:19;5703:4;5682:47;:::i;5740:168::-;5813:9;;;5844;;5861:15;;;5855:22;;5841:37;5831:71;;5882:18;;:::i;6258:128::-;6325:9;;;6346:11;;;6343:37;;;6360:18;;:::i;6391:348::-;6593:2;6575:21;;;6632:2;6612:18;;;6605:30;6671:26;6666:2;6651:18;;6644:54;6730:2;6715:18;;6391:348::o;6744:251::-;6814:6;6867:2;6855:9;6846:7;6842:23;6838:32;6835:52;;;6883:1;6880;6873:12;6835:52;6915:9;6909:16;6934:31;6959:5;6934:31;:::i;8001:127::-;8062:10;8057:3;8053:20;8050:1;8043:31;8093:4;8090:1;8083:15;8117:4;8114:1;8107:15;8133:135;8172:3;8193:17;;;8190:43;;8213:18;;:::i;:::-;-1:-1:-1;8260:1:1;8249:13;;8133:135::o;8962:125::-;9027:9;;;9048:10;;;9045:36;;;9061:18;;:::i;9092:217::-;9132:1;9158;9148:132;;9202:10;9197:3;9193:20;9190:1;9183:31;9237:4;9234:1;9227:15;9265:4;9262:1;9255:15;9148:132;-1:-1:-1;9294:9:1;;9092:217::o;9656:980::-;9918:4;9966:3;9955:9;9951:19;9997:6;9986:9;9979:25;10023:2;10061:6;10056:2;10045:9;10041:18;10034:34;10104:3;10099:2;10088:9;10084:18;10077:31;10128:6;10163;10157:13;10194:6;10186;10179:22;10232:3;10221:9;10217:19;10210:26;;10271:2;10263:6;10259:15;10245:29;;10292:1;10302:195;10316:6;10313:1;10310:13;10302:195;;;10381:13;;-1:-1:-1;;;;;10377:39:1;10365:52;;10472:15;;;;10437:12;;;;10413:1;10331:9;10302:195;;;-1:-1:-1;;;;;;;10553:32:1;;;;10548:2;10533:18;;10526:60;-1:-1:-1;;;10617:3:1;10602:19;10595:35;10514:3;9656:980;-1:-1:-1;;;9656:980:1:o

Swarm Source

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