ETH Price: $3,441.48 (+0.02%)
Gas: 10 Gwei

Token

LaunchVerse (XLV)
 

Overview

Max Total Supply

1,000,000 XLV

Holders

3

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
497,630 XLV

Value
$0.00
0x09b59e16bcd9cf11bbdb62963b91f44017f7d81e
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:
LaunchVerse

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-11-14
*/

// Sources flattened with hardhat v2.18.0 https://hardhat.org

// SPDX-License-Identifier: MIT

// File @openzeppelin/contracts/utils/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File @openzeppelin/contracts/access/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
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 Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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);
    }
}

// File @uniswap/v2-periphery/contracts/interfaces/[email protected]

pragma solidity >=0.6.2;

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

    function WETH() external pure returns (address);

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

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountToken, uint amountETH);

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function swapTokensForExactETH(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapETHForExactTokens(
        uint amountOut,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function quote(
        uint amountA,
        uint reserveA,
        uint reserveB
    ) external pure returns (uint amountB);

    function getAmountOut(
        uint amountIn,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountOut);

    function getAmountIn(
        uint amountOut,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountIn);

    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);

    function getAmountsIn(
        uint amountOut,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

// File @uniswap/v2-periphery/contracts/interfaces/[email protected]

pragma solidity >=0.6.2;

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountETH);

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

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

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

// File @openzeppelin/contracts/token/ERC20/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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
    );

    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// File @uniswap/v2-core/contracts/interfaces/[email protected]

pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint
    );

    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(uint) external view returns (address pair);

    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

// File contracts/Lock.sol

// Original license: SPDX_License_Identifier: MIT

pragma solidity ^0.8.14;

contract LaunchVerse is IERC20, Ownable {
    string constant _name = "LaunchVerse";
    string constant _symbol = "XLV";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000 * (10 ** _decimals);

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isMaxWalletExclude;

    address public investmentWallet;
    address public marketingDevWallet;

    uint256 public sellInvestmentFee = 0;
    uint256 public sellMarketingFee = 0;
    uint256 public sellTotalFee = 0;

    uint256 public buyInvestmentFee = 0;
    uint256 public buyMarketingFee = 0;
    uint256 public buyTotalFee = 0;

    IUniswapV2Router02 public router;
    address public pair;

    uint256 public swapThreshold = 2000 * 10 ** _decimals;
    uint256 public maxWalletAmount = 20000 * 10 ** _decimals;
    bool public contractSwapEnabled = true;

    bool inContractSwap;
    modifier swapping() {
        inContractSwap = true;
        _;
        inContractSwap = false;
    }

    event SetIsFeeExempt(address holder, bool status);
    event AddAuthorizedWallet(address holder, bool status);
    event SetDoContractSwap(bool status);
    event DoContractSwap(uint256 amount, uint256 time);

    constructor() {
        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniswapV2Factory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = type(uint256).max;

        investmentWallet = 0xbe8f81f8d05862CcD0cF04024aA1025552f9372e;

        marketingDevWallet = 0xA9e5C9ceE6f57864F18135f6Cc2c3A137E133020;

        address newOwner = 0xEd64B363f7698b27265b8680Ac3B68ddfBA80a30;

        isFeeExempt[newOwner] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[investmentWallet] = true;
        isFeeExempt[marketingDevWallet] = true;

        isMaxWalletExclude[newOwner] = true;
        isMaxWalletExclude[address(this)] = true;
        isMaxWalletExclude[investmentWallet] = true;
        isMaxWalletExclude[marketingDevWallet] = true;

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

        transferOwnership(newOwner);
    }

    receive() external payable {}

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    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 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 _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (!isMaxWalletExclude[recipient] && recipient != pair) {
            require(
                (_balances[recipient] + amount) <= maxWalletAmount,
                "Max wallet exceeded"
            );
        }
        if (inContractSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (shouldDoContractSwap()) {
            doContractSwap();
        }

        require(_balances[sender] >= amount, "Insufficient Balance");
        _balances[sender] = _balances[sender] - amount;

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

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeToken;

        if (recipient == pair) feeToken = (amount * sellTotalFee) / 100;
        else if (sender == pair) feeToken = (amount * buyTotalFee) / 100;
        if (feeToken > 0) {
            _balances[address(this)] = _balances[address(this)] + feeToken;
            emit Transfer(sender, address(this), feeToken);
        }

        return (amount - feeToken);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(_balances[sender] >= amount, "Insufficient Balance");
        _balances[sender] = _balances[sender] - amount;

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

    function shouldTakeFee(
        address sender,
        address to
    ) internal view returns (bool) {
        if (
            isFeeExempt[sender] ||
            isFeeExempt[to] ||
            (sender != pair && to != pair)
        ) {
            return false;
        } else {
            return true;
        }
    }

    function shouldDoContractSwap() internal view returns (bool) {
        return (msg.sender != pair &&
            !inContractSwap &&
            contractSwapEnabled &&
            sellTotalFee != 0 &&
            _balances[address(this)] >= swapThreshold);
    }

    function doContractSwap() internal swapping {
        uint256 contractTokenBalance = _balances[address(this)];

        if (contractTokenBalance > 0) {
            swapTokensForEth(contractTokenBalance);

            uint256 swappedTokens = address(this).balance;

            if (swappedTokens > 0) {
                payable(investmentWallet).transfer(
                    (swappedTokens / sellInvestmentFee) / sellTotalFee
                );
                payable(marketingDevWallet).transfer(
                    (swappedTokens / sellMarketingFee) / sellTotalFee
                );
            }
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;

        emit SetIsFeeExempt(holder, exempt);
    }

    function setDoContractSwap(bool _enabled) external onlyOwner {
        contractSwapEnabled = _enabled;

        emit SetDoContractSwap(_enabled);
    }

    function changeInvestmentWallet(address _wallet) external onlyOwner {
        investmentWallet = _wallet;
    }

    function changeMarketingDevWallet(address _wallet) external onlyOwner {
        marketingDevWallet = _wallet;
    }

    function changeSellFees(
        uint256 _sellInvestmentFee,
        uint256 _sellMarketingFee
    ) external onlyOwner {
        sellInvestmentFee = _sellInvestmentFee;
        sellMarketingFee = _sellMarketingFee;
        sellTotalFee = _sellInvestmentFee + _sellMarketingFee;

        require(sellTotalFee <= 7, "can not greater than 7%");
    }

    function changeBuyFees(
        uint256 _buyInvestmentFee,
        uint256 _buyMarketingFee
    ) external onlyOwner {
        buyInvestmentFee = _buyInvestmentFee;
        buyMarketingFee = _buyMarketingFee;
        buyTotalFee = _buyInvestmentFee + _buyMarketingFee;

        require(buyTotalFee <= 5, "can not greater than 5%");
    }

    function rescueETH() external onlyOwner {
        uint256 balance = address(this).balance;
        require(balance > 0, "No enough ETH to transfer");

        payable(msg.sender).transfer(balance);
    }

    function changeSwapPoint(uint256 _amount) external onlyOwner {
        swapThreshold = _amount;
    }

    function changeMaxWallet(uint256 _amount) external onlyOwner {
        require(_amount >= 10000 * 10 ** 9, "amount should be greater than 1%");
        maxWalletAmount = _amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AddAuthorizedWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"DoContractSwap","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":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetDoContractSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetIsFeeExempt","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":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyInvestmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyInvestmentFee","type":"uint256"},{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"}],"name":"changeBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"changeInvestmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"changeMarketingDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellInvestmentFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"changeSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeSwapPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"investmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExclude","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingDevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellInvestmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setDoContractSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200063f565b6200002190620f424062000657565b600155600060085560006009556000600a556000600b556000600c556000600d556009600a6200005291906200063f565b62000060906107d062000657565b601055620000716009600a6200063f565b6200007f90614e2062000657565b6011556012805460ff191660011790553480156200009c57600080fd5b50620000a833620003f9565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200010d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000133919062000671565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb919062000671565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022e919062000671565b600f80546001600160a01b039283166001600160a01b031991821617909155306000818152600360209081526040808320600e54871684528252808320600019905560068054861673be8f81f8d05862ccd0cf04024aa1025552f9372e1781556007805490961673a9e5c9cee6f57864f18135f6cc2c3a137e133020178655600483527f095fb0baedbfa20bc8df355e9de6fdd3bcc6e151c7df94212d5c3becddc9c3aa805460ff199081166001908117909255868652838620805482168317905582548916865283862080548216831790558754891686528386208054821683179055600585527fb5487802c713ff60a8492ce63eb187aa6e1fae83e649e9f55834451170cdb7b78054821683179055958552828520805487168217905590548716845281842080548616821790559454909516825284822080549093168417909255915473ed64b363f7698b27265b8680ac3b68ddfba80a30808452600283527fdb6d8863a07d489c182560020d8ed296c1dfd154848f94c7f8ff1137b3c2927e82905593519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003f28162000449565b506200069c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000453620004cc565b6001600160a01b038116620004be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b620004c981620003f9565b50565b6000546001600160a01b03163314620005285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620004b5565b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005815781600019048211156200056557620005656200052a565b808516156200057357918102915b93841c939080029062000545565b509250929050565b6000826200059a5750600162000639565b81620005a95750600062000639565b8160018114620005c25760028114620005cd57620005ed565b600191505062000639565b60ff841115620005e157620005e16200052a565b50506001821b62000639565b5060208310610133831016604e8410600b841016171562000612575081810a62000639565b6200061e838362000540565b80600019048211156200063557620006356200052a565b0290505b92915050565b60006200065060ff84168362000589565b9392505050565b80820281158282048414176200063957620006396200052a565b6000602082840312156200068457600080fd5b81516001600160a01b03811681146200065057600080fd5b61186a80620006ac6000396000f3fe60806040526004361061021d5760003560e01c8063715018a611610123578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e14610658578063ddc84d921461069e578063f2fde38b146106b4578063f887ea40146106d4578063fdb78c0e146106f457600080fd5b8063a9059cbb146105b2578063aa4bde28146105d2578063b6fa37bc146105e8578063c3a7c7f714610608578063ce5414941461063857600080fd5b80638d4c8a52116100f25780638d4c8a52146104fa5780638da5cb5b14610532578063921369131461055057806395d89b4114610566578063a8aa1b311461059257600080fd5b8063715018a61461049957806375c2d8f2146104ae5780637812b876146104ce5780637bce5a04146104e457600080fd5b80631d7efc04116101a65780633705b392116101755780633705b392146103dd5780633f4218e0146103f3578063571ac8b014610423578063658d4b7f1461044357806370a082311461046357600080fd5b80631d7efc041461036c57806320800a001461038c57806323b872dd146103a1578063313ce567146103c157600080fd5b806306fdde03116101ed57806306fdde03146102aa578063095ea7b3146102e75780630a7787fd146103175780630b006d601461033757806318160ddd1461035757600080fd5b8062afb32514610229578063036958a2146102525780630445b6671461027457806306e454ad1461028a57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b5061023f600a5481565b6040519081526020015b60405180910390f35b34801561025e57600080fd5b5061027261026d366004611555565b61070e565b005b34801561028057600080fd5b5061023f60105481565b34801561029657600080fd5b506102726102a5366004611577565b610788565b3480156102b657600080fd5b5060408051808201909152600b81526a4c61756e6368566572736560a81b60208201525b6040516102499190611590565b3480156102f357600080fd5b506103076103023660046115f3565b610795565b6040519015158152602001610249565b34801561032357600080fd5b5061027261033236600461161f565b610802565b34801561034357600080fd5b50610272610352366004611577565b61082c565b34801561036357600080fd5b5060015461023f565b34801561037857600080fd5b50610272610387366004611555565b61088f565b34801561039857600080fd5b50610272610900565b3480156103ad57600080fd5b506103076103bc36600461163c565b610983565b3480156103cd57600080fd5b5060405160098152602001610249565b3480156103e957600080fd5b5061023f600d5481565b3480156103ff57600080fd5b5061030761040e36600461161f565b60046020526000908152604090205460ff1681565b34801561042f57600080fd5b5061030761043e36600461161f565b610a84565b34801561044f57600080fd5b5061027261045e366004611692565b610a92565b34801561046f57600080fd5b5061023f61047e36600461161f565b6001600160a01b031660009081526002602052604090205490565b3480156104a557600080fd5b50610272610afd565b3480156104ba57600080fd5b506102726104c936600461161f565b610b11565b3480156104da57600080fd5b5061023f60085481565b3480156104f057600080fd5b5061023f600c5481565b34801561050657600080fd5b5060075461051a906001600160a01b031681565b6040516001600160a01b039091168152602001610249565b34801561053e57600080fd5b506000546001600160a01b031661051a565b34801561055c57600080fd5b5061023f60095481565b34801561057257600080fd5b506040805180820190915260038152622c262b60e91b60208201526102da565b34801561059e57600080fd5b50600f5461051a906001600160a01b031681565b3480156105be57600080fd5b506103076105cd3660046115f3565b610b3b565b3480156105de57600080fd5b5061023f60115481565b3480156105f457600080fd5b5060065461051a906001600160a01b031681565b34801561061457600080fd5b5061030761062336600461161f565b60056020526000908152604090205460ff1681565b34801561064457600080fd5b506102726106533660046116c7565b610b48565b34801561066457600080fd5b5061023f6106733660046116e2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106aa57600080fd5b5061023f600b5481565b3480156106c057600080fd5b506102726106cf36600461161f565b610b97565b3480156106e057600080fd5b50600e5461051a906001600160a01b031681565b34801561070057600080fd5b506012546103079060ff1681565b610716610c10565b600b829055600c81905561072a8183611731565b600d819055600510156107845760405162461bcd60e51b815260206004820152601760248201527f63616e206e6f742067726561746572207468616e20352500000000000000000060448201526064015b60405180910390fd5b5050565b610790610c10565b601055565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107f09086815260200190565b60405180910390a35060015b92915050565b61080a610c10565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610834610c10565b6509184e72a00081101561088a5760405162461bcd60e51b815260206004820181905260248201527f616d6f756e742073686f756c642062652067726561746572207468616e203125604482015260640161077b565b601155565b610897610c10565b600882905560098190556108ab8183611731565b600a819055600710156107845760405162461bcd60e51b815260206004820152601760248201527f63616e206e6f742067726561746572207468616e203725000000000000000000604482015260640161077b565b610908610c10565b47806109565760405162461bcd60e51b815260206004820152601960248201527f4e6f20656e6f7567682045544820746f207472616e7366657200000000000000604482015260640161077b565b604051339082156108fc029083906000818181858888f19350505050158015610784573d6000803e3d6000fd5b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610a6f576001600160a01b0384166000908152600360209081526040808320338452909152902054821115610a1b5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b604482015260640161077b565b6001600160a01b0384166000908152600360209081526040808320338452909152902054610a4a908390611744565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610a7a848484610c6a565b90505b9392505050565b60006107fc82600019610795565b610a9a610c10565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d69910160405180910390a15050565b610b05610c10565b610b0f6000610e94565b565b610b19610c10565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a7d338484610c6a565b610b50610c10565b6012805460ff19168215159081179091556040519081527f0d537fcb73bb9654441eb9bd03c28d4b833e5a2da1f53bf422424cb01bc80fc79060200160405180910390a150565b610b9f610c10565b6001600160a01b038116610c045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161077b565b610c0d81610e94565b50565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161077b565b6001600160a01b03821660009081526005602052604081205460ff16158015610ca15750600f546001600160a01b03848116911614155b15610d11576011546001600160a01b038416600090815260026020526040902054610ccd908490611731565b1115610d115760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161077b565b601254610100900460ff1615610d3357610d2c848484610ee4565b9050610a7d565b610d3b610ffd565b15610d4857610d48611060565b6001600160a01b038416600090815260026020526040902054821115610da75760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b604482015260640161077b565b6001600160a01b038416600090815260026020526040902054610dcb908390611744565b6001600160a01b038516600090815260026020526040812091909155610df18585611154565b610dfb5782610e06565b610e068585856111da565b6001600160a01b038516600090815260026020526040902054909150610e2d908290611731565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e819085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260026020526040812054821115610f435760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b604482015260640161077b565b6001600160a01b038416600090815260026020526040902054610f67908390611744565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610f97908390611731565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610feb9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b031633148015906110235750601254610100900460ff16155b8015611031575060125460ff165b801561103e5750600a5415155b801561105b57506010543060009081526002602052604090205410155b905090565b6012805461ff0019166101001790553060009081526002602052604090205480156111465761108e816112d7565b47801561114457600654600a546008546001600160a01b03909216916108fc91906110b99085611757565b6110c39190611757565b6040518115909202916000818181858888f193505050501580156110eb573d6000803e3d6000fd5b50600754600a546009546001600160a01b03909216916108fc91906111109085611757565b61111a9190611757565b6040518115909202916000818181858888f19350505050158015611142573d6000803e3d6000fd5b505b505b506012805461ff0019169055565b6001600160a01b03821660009081526004602052604081205460ff168061119357506001600160a01b03821660009081526004602052604090205460ff165b806111c55750600f546001600160a01b038481169116148015906111c55750600f546001600160a01b03838116911614155b156111d2575060006107fc565b5060016107fc565b600f5460009081906001600160a01b0390811690851603611216576064600a54846112059190611779565b61120f9190611757565b9050611249565b600f546001600160a01b0390811690861603611249576064600d548461123c9190611779565b6112469190611757565b90505b80156112c4573060009081526002602052604090205461126a908290611731565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112bb9085815260200190565b60405180910390a35b6112ce8184611744565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061130c5761130c611790565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611365573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138991906117a6565b8160018151811061139c5761139c611790565b6001600160a01b039283166020918202929092010152600e546113c29130911684611431565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906113fb9085906000908690309042906004016117c3565b600060405180830381600087803b15801561141557600080fd5b505af1158015611429573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166114935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161077b565b6001600160a01b0382166114f45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161077b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806040838503121561156857600080fd5b50508035926020909101359150565b60006020828403121561158957600080fd5b5035919050565b600060208083528351808285015260005b818110156115bd578581018301518582016040015282016115a1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c0d57600080fd5b6000806040838503121561160657600080fd5b8235611611816115de565b946020939093013593505050565b60006020828403121561163157600080fd5b8135610a7d816115de565b60008060006060848603121561165157600080fd5b833561165c816115de565b9250602084013561166c816115de565b929592945050506040919091013590565b8035801515811461168d57600080fd5b919050565b600080604083850312156116a557600080fd5b82356116b0816115de565b91506116be6020840161167d565b90509250929050565b6000602082840312156116d957600080fd5b610a7d8261167d565b600080604083850312156116f557600080fd5b8235611700816115de565b91506020830135611710816115de565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107fc576107fc61171b565b818103818111156107fc576107fc61171b565b60008261177457634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176107fc576107fc61171b565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117b857600080fd5b8151610a7d816115de565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118135784516001600160a01b0316835293830193918301916001016117ee565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cbaab0c48debee9e51dafef3e18efc34f3a9258aceb940bba7d755a337f80cb464736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021d5760003560e01c8063715018a611610123578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e14610658578063ddc84d921461069e578063f2fde38b146106b4578063f887ea40146106d4578063fdb78c0e146106f457600080fd5b8063a9059cbb146105b2578063aa4bde28146105d2578063b6fa37bc146105e8578063c3a7c7f714610608578063ce5414941461063857600080fd5b80638d4c8a52116100f25780638d4c8a52146104fa5780638da5cb5b14610532578063921369131461055057806395d89b4114610566578063a8aa1b311461059257600080fd5b8063715018a61461049957806375c2d8f2146104ae5780637812b876146104ce5780637bce5a04146104e457600080fd5b80631d7efc04116101a65780633705b392116101755780633705b392146103dd5780633f4218e0146103f3578063571ac8b014610423578063658d4b7f1461044357806370a082311461046357600080fd5b80631d7efc041461036c57806320800a001461038c57806323b872dd146103a1578063313ce567146103c157600080fd5b806306fdde03116101ed57806306fdde03146102aa578063095ea7b3146102e75780630a7787fd146103175780630b006d601461033757806318160ddd1461035757600080fd5b8062afb32514610229578063036958a2146102525780630445b6671461027457806306e454ad1461028a57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b5061023f600a5481565b6040519081526020015b60405180910390f35b34801561025e57600080fd5b5061027261026d366004611555565b61070e565b005b34801561028057600080fd5b5061023f60105481565b34801561029657600080fd5b506102726102a5366004611577565b610788565b3480156102b657600080fd5b5060408051808201909152600b81526a4c61756e6368566572736560a81b60208201525b6040516102499190611590565b3480156102f357600080fd5b506103076103023660046115f3565b610795565b6040519015158152602001610249565b34801561032357600080fd5b5061027261033236600461161f565b610802565b34801561034357600080fd5b50610272610352366004611577565b61082c565b34801561036357600080fd5b5060015461023f565b34801561037857600080fd5b50610272610387366004611555565b61088f565b34801561039857600080fd5b50610272610900565b3480156103ad57600080fd5b506103076103bc36600461163c565b610983565b3480156103cd57600080fd5b5060405160098152602001610249565b3480156103e957600080fd5b5061023f600d5481565b3480156103ff57600080fd5b5061030761040e36600461161f565b60046020526000908152604090205460ff1681565b34801561042f57600080fd5b5061030761043e36600461161f565b610a84565b34801561044f57600080fd5b5061027261045e366004611692565b610a92565b34801561046f57600080fd5b5061023f61047e36600461161f565b6001600160a01b031660009081526002602052604090205490565b3480156104a557600080fd5b50610272610afd565b3480156104ba57600080fd5b506102726104c936600461161f565b610b11565b3480156104da57600080fd5b5061023f60085481565b3480156104f057600080fd5b5061023f600c5481565b34801561050657600080fd5b5060075461051a906001600160a01b031681565b6040516001600160a01b039091168152602001610249565b34801561053e57600080fd5b506000546001600160a01b031661051a565b34801561055c57600080fd5b5061023f60095481565b34801561057257600080fd5b506040805180820190915260038152622c262b60e91b60208201526102da565b34801561059e57600080fd5b50600f5461051a906001600160a01b031681565b3480156105be57600080fd5b506103076105cd3660046115f3565b610b3b565b3480156105de57600080fd5b5061023f60115481565b3480156105f457600080fd5b5060065461051a906001600160a01b031681565b34801561061457600080fd5b5061030761062336600461161f565b60056020526000908152604090205460ff1681565b34801561064457600080fd5b506102726106533660046116c7565b610b48565b34801561066457600080fd5b5061023f6106733660046116e2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106aa57600080fd5b5061023f600b5481565b3480156106c057600080fd5b506102726106cf36600461161f565b610b97565b3480156106e057600080fd5b50600e5461051a906001600160a01b031681565b34801561070057600080fd5b506012546103079060ff1681565b610716610c10565b600b829055600c81905561072a8183611731565b600d819055600510156107845760405162461bcd60e51b815260206004820152601760248201527f63616e206e6f742067726561746572207468616e20352500000000000000000060448201526064015b60405180910390fd5b5050565b610790610c10565b601055565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107f09086815260200190565b60405180910390a35060015b92915050565b61080a610c10565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b610834610c10565b6509184e72a00081101561088a5760405162461bcd60e51b815260206004820181905260248201527f616d6f756e742073686f756c642062652067726561746572207468616e203125604482015260640161077b565b601155565b610897610c10565b600882905560098190556108ab8183611731565b600a819055600710156107845760405162461bcd60e51b815260206004820152601760248201527f63616e206e6f742067726561746572207468616e203725000000000000000000604482015260640161077b565b610908610c10565b47806109565760405162461bcd60e51b815260206004820152601960248201527f4e6f20656e6f7567682045544820746f207472616e7366657200000000000000604482015260640161077b565b604051339082156108fc029083906000818181858888f19350505050158015610784573d6000803e3d6000fd5b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610a6f576001600160a01b0384166000908152600360209081526040808320338452909152902054821115610a1b5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b604482015260640161077b565b6001600160a01b0384166000908152600360209081526040808320338452909152902054610a4a908390611744565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610a7a848484610c6a565b90505b9392505050565b60006107fc82600019610795565b610a9a610c10565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d69910160405180910390a15050565b610b05610c10565b610b0f6000610e94565b565b610b19610c10565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a7d338484610c6a565b610b50610c10565b6012805460ff19168215159081179091556040519081527f0d537fcb73bb9654441eb9bd03c28d4b833e5a2da1f53bf422424cb01bc80fc79060200160405180910390a150565b610b9f610c10565b6001600160a01b038116610c045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161077b565b610c0d81610e94565b50565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161077b565b6001600160a01b03821660009081526005602052604081205460ff16158015610ca15750600f546001600160a01b03848116911614155b15610d11576011546001600160a01b038416600090815260026020526040902054610ccd908490611731565b1115610d115760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161077b565b601254610100900460ff1615610d3357610d2c848484610ee4565b9050610a7d565b610d3b610ffd565b15610d4857610d48611060565b6001600160a01b038416600090815260026020526040902054821115610da75760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b604482015260640161077b565b6001600160a01b038416600090815260026020526040902054610dcb908390611744565b6001600160a01b038516600090815260026020526040812091909155610df18585611154565b610dfb5782610e06565b610e068585856111da565b6001600160a01b038516600090815260026020526040902054909150610e2d908290611731565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e819085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260026020526040812054821115610f435760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b604482015260640161077b565b6001600160a01b038416600090815260026020526040902054610f67908390611744565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610f97908390611731565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610feb9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b031633148015906110235750601254610100900460ff16155b8015611031575060125460ff165b801561103e5750600a5415155b801561105b57506010543060009081526002602052604090205410155b905090565b6012805461ff0019166101001790553060009081526002602052604090205480156111465761108e816112d7565b47801561114457600654600a546008546001600160a01b03909216916108fc91906110b99085611757565b6110c39190611757565b6040518115909202916000818181858888f193505050501580156110eb573d6000803e3d6000fd5b50600754600a546009546001600160a01b03909216916108fc91906111109085611757565b61111a9190611757565b6040518115909202916000818181858888f19350505050158015611142573d6000803e3d6000fd5b505b505b506012805461ff0019169055565b6001600160a01b03821660009081526004602052604081205460ff168061119357506001600160a01b03821660009081526004602052604090205460ff165b806111c55750600f546001600160a01b038481169116148015906111c55750600f546001600160a01b03838116911614155b156111d2575060006107fc565b5060016107fc565b600f5460009081906001600160a01b0390811690851603611216576064600a54846112059190611779565b61120f9190611757565b9050611249565b600f546001600160a01b0390811690861603611249576064600d548461123c9190611779565b6112469190611757565b90505b80156112c4573060009081526002602052604090205461126a908290611731565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112bb9085815260200190565b60405180910390a35b6112ce8184611744565b95945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061130c5761130c611790565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611365573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138991906117a6565b8160018151811061139c5761139c611790565b6001600160a01b039283166020918202929092010152600e546113c29130911684611431565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906113fb9085906000908690309042906004016117c3565b600060405180830381600087803b15801561141557600080fd5b505af1158015611429573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166114935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161077b565b6001600160a01b0382166114f45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161077b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806040838503121561156857600080fd5b50508035926020909101359150565b60006020828403121561158957600080fd5b5035919050565b600060208083528351808285015260005b818110156115bd578581018301518582016040015282016115a1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c0d57600080fd5b6000806040838503121561160657600080fd5b8235611611816115de565b946020939093013593505050565b60006020828403121561163157600080fd5b8135610a7d816115de565b60008060006060848603121561165157600080fd5b833561165c816115de565b9250602084013561166c816115de565b929592945050506040919091013590565b8035801515811461168d57600080fd5b919050565b600080604083850312156116a557600080fd5b82356116b0816115de565b91506116be6020840161167d565b90509250929050565b6000602082840312156116d957600080fd5b610a7d8261167d565b600080604083850312156116f557600080fd5b8235611700816115de565b91506020830135611710816115de565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107fc576107fc61171b565b818103818111156107fc576107fc61171b565b60008261177457634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176107fc576107fc61171b565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117b857600080fd5b8151610a7d816115de565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118135784516001600160a01b0316835293830193918301916001016117ee565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cbaab0c48debee9e51dafef3e18efc34f3a9258aceb940bba7d755a337f80cb464736f6c63430008130033

Deployed Bytecode Sourcemap

13316:10278:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13927:31;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13927:31:0;;;;;;;;22723:346;;;;;;;;;;-1:-1:-1;22723:346:0;;;;;:::i;:::-;;:::i;:::-;;14156:53;;;;;;;;;;;;;;;;23293:103;;;;;;;;;;-1:-1:-1;23293:103:0;;;;;:::i;:::-;;:::i;15909:83::-;;;;;;;;;;-1:-1:-1;15979:5:0;;;;;;;;;;;;-1:-1:-1;;;15979:5:0;;;;15909:83;;;;;;;:::i;16493:241::-;;;;;;;;;;-1:-1:-1;16493:241:0;;;;;:::i;:::-;;:::i;:::-;;;1808:14:1;;1801:22;1783:41;;1771:2;1756:18;16493:241:0;1643:187:1;22112:113:0;;;;;;;;;;-1:-1:-1;22112:113:0;;;;;:::i;:::-;;:::i;23404:187::-;;;;;;;;;;-1:-1:-1;23404:187:0;;;;;:::i;:::-;;:::i;15799:102::-;;;;;;;;;;-1:-1:-1;15881:12:0;;15799:102;;22358:357;;;;;;;;;;-1:-1:-1;22358:357:0;;;;;:::i;:::-;;:::i;23077:208::-;;;;;;;;;;;;;:::i;17449:551::-;;;;;;;;;;-1:-1:-1;17449:551:0;;;;;:::i;:::-;;:::i;16095:83::-;;;;;;;;;;-1:-1:-1;16095:83:0;;13472:1;2690:36:1;;2678:2;2663:18;16095:83:0;2548:184:1;14050:30:0;;;;;;;;;;;;;;;;13653:43;;;;;;;;;;-1:-1:-1;13653:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17130:122;;;;;;;;;;-1:-1:-1;17130:122:0;;;;;:::i;:::-;;:::i;21774:167::-;;;;;;;;;;-1:-1:-1;21774:167:0;;;;;:::i;:::-;;:::i;16186:119::-;;;;;;;;;;-1:-1:-1;16186:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;16279:18:0;16252:7;16279:18;;;:9;:18;;;;;;;16186:119;3002:103;;;;;;;;;;;;;:::i;22233:117::-;;;;;;;;;;-1:-1:-1;22233:117:0;;;;;:::i;:::-;;:::i;13842:36::-;;;;;;;;;;;;;;;;14009:34;;;;;;;;;;;;;;;;13800:33;;;;;;;;;;-1:-1:-1;13800:33:0;;;;-1:-1:-1;;;;;13800:33:0;;;;;;-1:-1:-1;;;;;3386:32:1;;;3368:51;;3356:2;3341:18;13800:33:0;3222:203:1;2361:87:0;;;;;;;;;;-1:-1:-1;2407:7:0;2434:6;-1:-1:-1;;;;;2434:6:0;2361:87;;13885:35;;;;;;;;;;;;;;;;16000:87;;;;;;;;;;-1:-1:-1;16072:7:0;;;;;;;;;;;;-1:-1:-1;;;16072:7:0;;;;16000:87;;14128:19;;;;;;;;;;-1:-1:-1;14128:19:0;;;;-1:-1:-1;;;;;14128:19:0;;;17260:181;;;;;;;;;;-1:-1:-1;17260:181:0;;;;;:::i;:::-;;:::i;14216:56::-;;;;;;;;;;;;;;;;13762:31;;;;;;;;;;-1:-1:-1;13762:31:0;;;;-1:-1:-1;;;;;13762:31:0;;;13703:50;;;;;;;;;;-1:-1:-1;13703:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21949:155;;;;;;;;;;-1:-1:-1;21949:155:0;;;;;:::i;:::-;;:::i;16313:172::-;;;;;;;;;;-1:-1:-1;16313:172:0;;;;;:::i;:::-;-1:-1:-1;;;;;16449:19:0;;;16422:7;16449:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;16313:172;13967:35;;;;;;;;;;;;;;;;3260:238;;;;;;;;;;-1:-1:-1;3260:238:0;;;;;:::i;:::-;;:::i;14089:32::-;;;;;;;;;;-1:-1:-1;14089:32:0;;;;-1:-1:-1;;;;;14089:32:0;;;14279:38;;;;;;;;;;-1:-1:-1;14279:38:0;;;;;;;;22723:346;2247:13;:11;:13::i;:::-;22854:16:::1;:36:::0;;;22901:15:::1;:34:::0;;;22960:36:::1;22919:16:::0;22873:17;22960:36:::1;:::i;:::-;22946:11;:50:::0;;;23032:1:::1;-1:-1:-1::0;23017:16:0::1;23009:52;;;::::0;-1:-1:-1;;;23009:52:0;;4706:2:1;23009:52:0::1;::::0;::::1;4688:21:1::0;4745:2;4725:18;;;4718:30;4784:25;4764:18;;;4757:53;4827:18;;23009:52:0::1;;;;;;;;;22723:346:::0;;:::o;23293:103::-;2247:13;:11;:13::i;:::-;23365::::1;:23:::0;23293:103::o;16493:241::-;16622:10;16593:4;16610:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;16610:32:0;;;;;;;;;;:41;;;16667:37;16593:4;;16610:32;;16667:37;;;;16645:6;160:25:1;;148:2;133:18;;14:177;16667:37:0;;;;;;;;-1:-1:-1;16722:4:0;16493:241;;;;;:::o;22112:113::-;2247:13;:11;:13::i;:::-;22191:16:::1;:26:::0;;-1:-1:-1;;;;;;22191:26:0::1;-1:-1:-1::0;;;;;22191:26:0;;;::::1;::::0;;;::::1;::::0;;22112:113::o;23404:187::-;2247:13;:11;:13::i;:::-;23495:15:::1;23484:7;:26;;23476:71;;;::::0;-1:-1:-1;;;23476:71:0;;5058:2:1;23476:71:0::1;::::0;::::1;5040:21:1::0;;;5077:18;;;5070:30;5136:34;5116:18;;;5109:62;5188:18;;23476:71:0::1;4856:356:1::0;23476:71:0::1;23558:15;:25:::0;23404:187::o;22358:357::-;2247:13;:11;:13::i;:::-;22492:17:::1;:38:::0;;;22541:16:::1;:36:::0;;;22603:38:::1;22560:17:::0;22512:18;22603:38:::1;:::i;:::-;22588:12;:53:::0;;;22678:1:::1;-1:-1:-1::0;22662:17:0::1;22654:53;;;::::0;-1:-1:-1;;;22654:53:0;;5419:2:1;22654:53:0::1;::::0;::::1;5401:21:1::0;5458:2;5438:18;;;5431:30;5497:25;5477:18;;;5470:53;5540:18;;22654:53:0::1;5217:347:1::0;23077:208:0;2247:13;:11;:13::i;:::-;23146:21:::1;23186:11:::0;23178:49:::1;;;::::0;-1:-1:-1;;;23178:49:0;;5771:2:1;23178:49:0::1;::::0;::::1;5753:21:1::0;5810:2;5790:18;;;5783:30;5849:27;5829:18;;;5822:55;5894:18;;23178:49:0::1;5569:349:1::0;23178:49:0::1;23240:37;::::0;23248:10:::1;::::0;23240:37;::::1;;;::::0;23269:7;;23240:37:::1;::::0;;;23269:7;23248:10;23240:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;17449:551:::0;-1:-1:-1;;;;;17604:19:0;;17583:4;17604:19;;;:11;:19;;;;;;;;17624:10;17604:31;;;;;;;;-1:-1:-1;;17604:52:0;17600:333;;-1:-1:-1;;;;;17699:19:0;;;;;;:11;:19;;;;;;;;17719:10;17699:31;;;;;;;;:41;-1:-1:-1;17699:41:0;17673:125;;;;-1:-1:-1;;;17673:125:0;;6125:2:1;17673:125:0;;;6107:21:1;6164:2;6144:18;;;6137:30;-1:-1:-1;;;6183:18:1;;;6176:52;6245:18;;17673:125:0;5923:346:1;17673:125:0;-1:-1:-1;;;;;17864:19:0;;;;;;:11;:19;;;;;;;;17884:10;17864:31;;;;;;;;:57;;17915:6;;17864:57;:::i;:::-;-1:-1:-1;;;;;17813:19:0;;;;;;:11;:19;;;;;;;;17833:10;17813:31;;;;;;;:108;17600:333;17952:40;17966:6;17974:9;17985:6;17952:13;:40::i;:::-;17945:47;;17449:551;;;;;;:::o;17130:122::-;17185:4;17209:35;17217:7;-1:-1:-1;;17209:7:0;:35::i;21774:167::-;2247:13;:11;:13::i;:::-;-1:-1:-1;;;;;21857:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;21857:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21903:30;;6575:51:1;;;6642:18;;;6635:50;21903:30:0::1;::::0;6548:18:1;21903:30:0::1;;;;;;;21774:167:::0;;:::o;3002:103::-;2247:13;:11;:13::i;:::-;3067:30:::1;3094:1;3067:18;:30::i;:::-;3002:103::o:0;22233:117::-;2247:13;:11;:13::i;:::-;22314:18:::1;:28:::0;;-1:-1:-1;;;;;;22314:28:0::1;-1:-1:-1::0;;;;;22314:28:0;;;::::1;::::0;;;::::1;::::0;;22233:117::o;17260:181::-;17365:4;17389:44;17403:10;17415:9;17426:6;17389:13;:44::i;21949:155::-;2247:13;:11;:13::i;:::-;22021:19:::1;:30:::0;;-1:-1:-1;;22021:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;;22069:27:::1;::::0;1783:41:1;;;22069:27:0::1;::::0;1771:2:1;1756:18;22069:27:0::1;;;;;;;21949:155:::0;:::o;3260:238::-;2247:13;:11;:13::i;:::-;-1:-1:-1;;;;;3363:22:0;::::1;3341:110;;;::::0;-1:-1:-1;;;3341:110:0;;6898:2:1;3341:110:0::1;::::0;::::1;6880:21:1::0;6937:2;6917:18;;;6910:30;6976:34;6956:18;;;6949:62;-1:-1:-1;;;7027:18:1;;;7020:36;7073:19;;3341:110:0::1;6696:402:1::0;3341:110:0::1;3462:28;3481:8;3462:18;:28::i;:::-;3260:238:::0;:::o;2526:132::-;2407:7;2434:6;-1:-1:-1;;;;;2434:6:0;914:10;2590:23;2582:68;;;;-1:-1:-1;;;2582:68:0;;7305:2:1;2582:68:0;;;7287:21:1;;;7324:18;;;7317:30;7383:34;7363:18;;;7356:62;7435:18;;2582:68:0;7103:356:1;18008:979:0;-1:-1:-1;;;;;18156:29:0;;18134:4;18156:29;;;:18;:29;;;;;;;;18155:30;:51;;;;-1:-1:-1;18202:4:0;;-1:-1:-1;;;;;18189:17:0;;;18202:4;;18189:17;;18155:51;18151:215;;;18284:15;;-1:-1:-1;;;;;18250:20:0;;;;;;:9;:20;;;;;;:29;;18273:6;;18250:29;:::i;:::-;18249:50;;18223:131;;;;-1:-1:-1;;;18223:131:0;;7666:2:1;18223:131:0;;;7648:21:1;7705:2;7685:18;;;7678:30;-1:-1:-1;;;7724:18:1;;;7717:49;7783:18;;18223:131:0;7464:343:1;18223:131:0;18380:14;;;;;;;18376:95;;;18418:41;18433:6;18441:9;18452:6;18418:14;:41::i;:::-;18411:48;;;;18376:95;18487:22;:20;:22::i;:::-;18483:71;;;18526:16;:14;:16::i;:::-;-1:-1:-1;;;;;18574:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;18574:27:0;18566:60;;;;-1:-1:-1;;;18566:60:0;;8014:2:1;18566:60:0;;;7996:21:1;8053:2;8033:18;;;8026:30;-1:-1:-1;;;8072:18:1;;;8065:50;8132:18;;18566:60:0;7812:344:1;18566:60:0;-1:-1:-1;;;;;18657:17:0;;;;;;:9;:17;;;;;;:26;;18677:6;;18657:26;:::i;:::-;-1:-1:-1;;;;;18637:17:0;;;;;;:9;:17;;;;;:46;;;;18721:32;18647:6;18743:9;18721:13;:32::i;:::-;:104;;18819:6;18721:104;;;18769:34;18777:6;18785:9;18796:6;18769:7;:34::i;:::-;-1:-1:-1;;;;;18859:20:0;;;;;;:9;:20;;;;;;18696:129;;-1:-1:-1;18859:37:0;;18696:129;;18859:37;:::i;:::-;-1:-1:-1;;;;;18836:20:0;;;;;;;:9;:20;;;;;;;:60;;;;18914:43;;;;;;;;;;18942:14;160:25:1;;148:2;133:18;;14:177;18914:43:0;;;;;;;;-1:-1:-1;18975:4:0;;18008:979;-1:-1:-1;;;;18008:979:0:o;3658:191::-;3732:16;3751:6;;-1:-1:-1;;;;;3768:17:0;;;-1:-1:-1;;;;;;3768:17:0;;;;;;3801:40;;3751:6;;;;;;;3801:40;;3732:16;3801:40;3721:128;3658:191;:::o;19535:407::-;-1:-1:-1;;;;;19687:17:0;;19662:4;19687:17;;;:9;:17;;;;;;:27;-1:-1:-1;19687:27:0;19679:60;;;;-1:-1:-1;;;19679:60:0;;8014:2:1;19679:60:0;;;7996:21:1;8053:2;8033:18;;;8026:30;-1:-1:-1;;;8072:18:1;;;8065:50;8132:18;;19679:60:0;7812:344:1;19679:60:0;-1:-1:-1;;;;;19770:17:0;;;;;;:9;:17;;;;;;:26;;19790:6;;19770:26;:::i;:::-;-1:-1:-1;;;;;19750:17:0;;;;;;;:9;:17;;;;;;:46;;;;19832:20;;;;;;;:29;;19855:6;;19832:29;:::i;:::-;-1:-1:-1;;;;;19809:20:0;;;;;;;:9;:20;;;;;;;:52;;;;19877:35;;;;;;;;;;19905:6;160:25:1;;148:2;133:18;;14:177;19877:35:0;;;;;;;;-1:-1:-1;19930:4:0;19535:407;;;;;:::o;20292:267::-;20386:4;;20347;;-1:-1:-1;;;;;20386:4:0;20372:10;:18;;;;:50;;-1:-1:-1;20408:14:0;;;;;;;20407:15;20372:50;:86;;;;-1:-1:-1;20439:19:0;;;;20372:86;:120;;;;-1:-1:-1;20475:12:0;;:17;;20372:120;:178;;;;-1:-1:-1;20537:13:0;;20527:4;20509:24;;;;:9;:24;;;;;;:41;;20372:178;20364:187;;20292:267;:::o;20567:633::-;14383:14;:21;;-1:-1:-1;;14383:21:0;;;;;20671:4:::1;14383:21:::0;20653:24;;;:9:::1;:24;::::0;;;;;20694;;20690:503:::1;;20735:38;20752:20;20735:16;:38::i;:::-;20814:21;20856:17:::0;;20852:330:::1;;20902:16;::::0;20989:12:::1;::::0;20968:17:::1;::::0;-1:-1:-1;;;;;20902:16:0;;::::1;::::0;20894:126:::1;::::0;20989:12;20952:33:::1;::::0;:13;:33:::1;:::i;:::-;20951:50;;;;:::i;:::-;20894:126;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21047:18:0::1;::::0;21135:12:::1;::::0;21115:16:::1;::::0;-1:-1:-1;;;;;21047:18:0;;::::1;::::0;21039:127:::1;::::0;21135:12;21099:32:::1;::::0;:13;:32:::1;:::i;:::-;21098:49;;;;:::i;:::-;21039:127;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20852:330;20720:473;20690:503;-1:-1:-1::0;14427:14:0;:22;;-1:-1:-1;;14427:22:0;;;20567:633::o;19950:334::-;-1:-1:-1;;;;;20084:19:0;;20049:4;20084:19;;;:11;:19;;;;;;;;;:51;;-1:-1:-1;;;;;;20120:15:0;;;;;;:11;:15;;;;;;;;20084:51;:98;;;-1:-1:-1;20163:4:0;;-1:-1:-1;;;;;20153:14:0;;;20163:4;;20153:14;;;;:28;;-1:-1:-1;20177:4:0;;-1:-1:-1;;;;;20171:10:0;;;20177:4;;20171:10;;20153:28;20066:211;;;-1:-1:-1;20216:5:0;20209:12;;20066:211;-1:-1:-1;20261:4:0;20254:11;;18995:532;19181:4;;19115:7;;;;-1:-1:-1;;;;;19181:4:0;;;19168:17;;;;19164:138;;19224:3;19208:12;;19199:6;:21;;;;:::i;:::-;19198:29;;;;:::i;:::-;19187:40;;19164:138;;;19257:4;;-1:-1:-1;;;;;19257:4:0;;;19247:14;;;;19243:59;;19299:3;19284:11;;19275:6;:20;;;;:::i;:::-;19274:28;;;;:::i;:::-;19263:39;;19243:59;19317:12;;19313:168;;19391:4;19373:24;;;;:9;:24;;;;;;:35;;19400:8;;19373:35;:::i;:::-;19364:4;19346:24;;;;:9;:24;;;;;;;:62;;;;19428:41;;-1:-1:-1;;;;;19428:41:0;;;;;;;19460:8;160:25:1;;148:2;133:18;;14:177;19428:41:0;;;;;;;;19313:168;19501:17;19510:8;19501:6;:17;:::i;:::-;19493:26;18995:532;-1:-1:-1;;;;;18995:532:0:o;21208:558::-;21358:16;;;21372:1;21358:16;;;;;;;;21334:21;;21358:16;;;;;;;;;;-1:-1:-1;21358:16:0;21334:40;;21403:4;21385;21390:1;21385:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21385:23:0;;;:7;;;;;;;;;;:23;;;;21429:6;;:13;;;-1:-1:-1;;;21429:13:0;;;;:6;;;;;:11;;:13;;;;;21385:7;;21429:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21419:4;21424:1;21419:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21419:23:0;;;:7;;;;;;;;;:23;21485:6;;21453:53;;21470:4;;21485:6;21494:11;21453:8;:53::i;:::-;21543:6;;:215;;-1:-1:-1;;;21543:215:0;;-1:-1:-1;;;;;21543:6:0;;;;:57;;:215;;21615:11;;21543:6;;21685:4;;21712;;21732:15;;21543:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21263:503;21208:558;:::o;16742:380::-;-1:-1:-1;;;;;16878:19:0;;16870:68;;;;-1:-1:-1;;;16870:68:0;;10263:2:1;16870:68:0;;;10245:21:1;10302:2;10282:18;;;10275:30;10341:34;10321:18;;;10314:62;-1:-1:-1;;;10392:18:1;;;10385:34;10436:19;;16870:68:0;10061:400:1;16870:68:0;-1:-1:-1;;;;;16957:21:0;;16949:68;;;;-1:-1:-1;;;16949:68:0;;10668:2:1;16949:68:0;;;10650:21:1;10707:2;10687:18;;;10680:30;10746:34;10726:18;;;10719:62;-1:-1:-1;;;10797:18:1;;;10790:32;10839:19;;16949:68:0;10466:398:1;16949:68:0;-1:-1:-1;;;;;17030:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17082:32;;160:25:1;;;17082:32:0;;133:18:1;17082:32:0;;;;;;;16742:380;;;:::o;196:248:1:-;264:6;272;325:2;313:9;304:7;300:23;296:32;293:52;;;341:1;338;331:12;293:52;-1:-1:-1;;364:23:1;;;434:2;419:18;;;406:32;;-1:-1:-1;196:248:1:o;449:180::-;508:6;561:2;549:9;540:7;536:23;532:32;529:52;;;577:1;574;567:12;529:52;-1:-1:-1;600:23:1;;449:180;-1:-1:-1;449:180:1:o;634:548::-;746:4;775:2;804;793:9;786:21;836:6;830:13;879:6;874:2;863:9;859:18;852:34;904:1;914:140;928:6;925:1;922:13;914:140;;;1023:14;;;1019:23;;1013:30;989:17;;;1008:2;985:26;978:66;943:10;;914:140;;;918:3;1103:1;1098:2;1089:6;1078:9;1074:22;1070:31;1063:42;1173:2;1166;1162:7;1157:2;1149:6;1145:15;1141:29;1130:9;1126:45;1122:54;1114:62;;;;634:548;;;;:::o;1187:131::-;-1:-1:-1;;;;;1262:31:1;;1252:42;;1242:70;;1308:1;1305;1298:12;1323:315;1391:6;1399;1452:2;1440:9;1431:7;1427:23;1423:32;1420:52;;;1468:1;1465;1458:12;1420:52;1507:9;1494:23;1526:31;1551:5;1526:31;:::i;:::-;1576:5;1628:2;1613:18;;;;1600:32;;-1:-1:-1;;;1323:315:1:o;1835:247::-;1894:6;1947:2;1935:9;1926:7;1922:23;1918:32;1915:52;;;1963:1;1960;1953:12;1915:52;2002:9;1989:23;2021:31;2046:5;2021:31;:::i;2087:456::-;2164:6;2172;2180;2233:2;2221:9;2212:7;2208:23;2204:32;2201:52;;;2249:1;2246;2239:12;2201:52;2288:9;2275:23;2307:31;2332:5;2307:31;:::i;:::-;2357:5;-1:-1:-1;2414:2:1;2399:18;;2386:32;2427:33;2386:32;2427:33;:::i;:::-;2087:456;;2479:7;;-1:-1:-1;;;2533:2:1;2518:18;;;;2505:32;;2087:456::o;2737:160::-;2802:20;;2858:13;;2851:21;2841:32;;2831:60;;2887:1;2884;2877:12;2831:60;2737:160;;;:::o;2902:315::-;2967:6;2975;3028:2;3016:9;3007:7;3003:23;2999:32;2996:52;;;3044:1;3041;3034:12;2996:52;3083:9;3070:23;3102:31;3127:5;3102:31;:::i;:::-;3152:5;-1:-1:-1;3176:35:1;3207:2;3192:18;;3176:35;:::i;:::-;3166:45;;2902:315;;;;;:::o;3430:180::-;3486:6;3539:2;3527:9;3518:7;3514:23;3510:32;3507:52;;;3555:1;3552;3545:12;3507:52;3578:26;3594:9;3578:26;:::i;3615:388::-;3683:6;3691;3744:2;3732:9;3723:7;3719:23;3715:32;3712:52;;;3760:1;3757;3750:12;3712:52;3799:9;3786:23;3818:31;3843:5;3818:31;:::i;:::-;3868:5;-1:-1:-1;3925:2:1;3910:18;;3897:32;3938:33;3897:32;3938:33;:::i;:::-;3990:7;3980:17;;;3615:388;;;;;:::o;4242:127::-;4303:10;4298:3;4294:20;4291:1;4284:31;4334:4;4331:1;4324:15;4358:4;4355:1;4348:15;4374:125;4439:9;;;4460:10;;;4457:36;;;4473:18;;:::i;6274:128::-;6341:9;;;6362:11;;;6359:37;;;6376:18;;:::i;8161:217::-;8201:1;8227;8217:132;;8271:10;8266:3;8262:20;8259:1;8252:31;8306:4;8303:1;8296:15;8334:4;8331:1;8324:15;8217:132;-1:-1:-1;8363:9:1;;8161:217::o;8383:168::-;8456:9;;;8487;;8504:15;;;8498:22;;8484:37;8474:71;;8525:18;;:::i;8688:127::-;8749:10;8744:3;8740:20;8737:1;8730:31;8780:4;8777:1;8770:15;8804:4;8801:1;8794:15;8820:251;8890:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:52;;;8959:1;8956;8949:12;8911:52;8991:9;8985:16;9010:31;9035:5;9010:31;:::i;9076:980::-;9338:4;9386:3;9375:9;9371:19;9417:6;9406:9;9399:25;9443:2;9481:6;9476:2;9465:9;9461:18;9454:34;9524:3;9519:2;9508:9;9504:18;9497:31;9548:6;9583;9577:13;9614:6;9606;9599:22;9652:3;9641:9;9637:19;9630:26;;9691:2;9683:6;9679:15;9665:29;;9712:1;9722:195;9736:6;9733:1;9730:13;9722:195;;;9801:13;;-1:-1:-1;;;;;9797:39:1;9785:52;;9892:15;;;;9857:12;;;;9833:1;9751:9;9722:195;;;-1:-1:-1;;;;;;;9973:32:1;;;;9968:2;9953:18;;9946:60;-1:-1:-1;;;10037:3:1;10022:19;10015:35;9934:3;9076:980;-1:-1:-1;;;9076:980:1:o

Swarm Source

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