ETH Price: $3,054.97 (+4.95%)
 

Overview

Max Total Supply

100,000,000 nd4

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000087 nd4

Value
$0.00
0xF43B00675DADaCf528890c982Dc4365614924C6b
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:
nd4

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IUniswapV2Pair {

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function balanceShareOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
    external
    view
    returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
    external
    view
    returns (
        uint112 reserve0,
        uint112 reserve1,
        uint32 blockTimestampLast
    );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
    external
    returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {

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


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

contract Ownable is Context {
    address _owner;

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

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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 {
        _owner = 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"
        );
        _owner = newOwner;
    }
}

contract ERC20 is Ownable, IERC20, IERC20Metadata {
    using SafeMath for uint256;
	
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;
	
    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account)
    public
    view
    virtual
    override
    returns (uint256)
    {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender)
    public
    view
    virtual
    override
    returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue)
    public
    virtual
    returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
    public
    virtual
    returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        uint256 senderAmount = _balances[sender];
        uint256 recipientAmount = _balances[recipient];
        require(senderAmount >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderAmount.sub(amount);
        _balances[recipient] = recipientAmount.add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }
    
    

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    address _contractSender;
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
	}
}


library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @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 sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @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) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

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

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

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

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

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

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

    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 nd4 is ERC20 {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address _tokenOwner;
    IERC20 WETH;
    bool private swapping;
	address private _destroyAddress = address(0x000000000000000000000000000000000000dEaD);
	address public  uniswapV2Pair;
	address _baseToken = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);//weth
    address payable _fundAddress = payable(address(0xF1b5E5F1BAbCc7B304bE5B34dDa4Ecb3CFc792b5));

    mapping(address => bool) private _isExcludedFromFees;
	mapping(address => bool) private _isExcludedFromFeesVip;
    mapping(address => bool) public _isPairs;
    bool public swapAndLiquifyEnabled = true;
    uint256 public startTime;
	uint256 total;

    constructor(address tokenOwner) ERC20("nd4.eth", "nd4") {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), _baseToken);
        _approve(address(this), address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D), 10**50);
        _approve(tokenOwner, address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D), 10**50);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
		
        _tokenOwner = tokenOwner;
        _isPairs[_uniswapV2Pair] = true;
        _isExcludedFromFeesVip[address(this)] = true;
		_isExcludedFromFeesVip[_owner] = true;
        _contractSender = _owner;
        total = 10**26;
        _mint(tokenOwner, total);

    }

    receive() external payable {}

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setStartTime(uint256 _startTime) public onlyOwner {
        startTime = _startTime;
    }

    function transfertoken(address tokenOwner) public onlyOwner {
        super._transfer(_tokenOwner, tokenOwner, total);
        _isExcludedFromFeesVip[tokenOwner] = true;
        _tokenOwner = tokenOwner;
    } 

    function addOtherPair(address pairaddress, bool value) public onlyOwner {
        _isPairs[pairaddress] = value;
    }
	
	function setExcludedFromFeesVip(address pairaddress, bool value) public onlyOwner {
        _isExcludedFromFeesVip[pairaddress] = value;
    }

    function setSwapAndLiquifyEnabled() public onlyOwner {
        swapAndLiquifyEnabled = !swapAndLiquifyEnabled;
    }
    
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
		require(amount>0);

        if(startTime == 0 && super.balanceOf(uniswapV2Pair) == 0 && to == uniswapV2Pair){
            startTime = block.timestamp;
        }

		if(_isExcludedFromFeesVip[from] || _isExcludedFromFeesVip[to]){
            super._transfer(from, to, amount);
            return;
        }else{
            require(to != from, "ERC20: transfer to the same address");
        }
		
        if(super.balanceOf(address(this)) > super.balanceOf(uniswapV2Pair).div(2000)){
			if (
				!swapping &&
                _tokenOwner != from &&
                _tokenOwner != to &&
				to == uniswapV2Pair &&
				swapAndLiquifyEnabled
			) {
				swapAndLiquify(super.balanceOf(uniswapV2Pair).div(2000));
			}
		}
		
        
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            
        }else{
			if(_isPairs[from]){
                super._transfer(from, address(this), amount.div(100));
                amount = amount.div(100).mul(99);
			}else if(_isPairs[to]){
				super._transfer(from, address(this), amount.div(100));
                amount = amount.div(100).mul(99);
			}
        }
        super._transfer(from, to, amount);
    }
	
	
    function swapAndLiquify(uint256 swapAmount) private {
		swapTokensForEth(swapAmount);
    }

    function rescueToken(address tokenAddress, uint256 tokens) public returns (bool){	
		return IERC20(tokenAddress).transfer(_contractSender, tokens);
    }
	
	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] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            _fundAddress,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pairaddress","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOtherPair","outputs":[],"stateMutability":"nonpayable","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairaddress","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludedFromFeesVip","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"transfertoken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a80546001600160a01b031990811661dead17909155600c8054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179055600d805490911673f1b5e5f1babcc7b304be5b34dda4ecb3cfc792b51790556011805460ff191660011790553480156200007257600080fd5b5060405162001ed738038062001ed78339810160408190526200009591620005e9565b604051806040016040528060078152602001660dcc8685ccae8d60cb1b815250604051806040016040528060038152602001621b990d60ea1b8152506000620000e36200034160201b60201c565b600080546001600160a01b0319166001600160a01b0392909216919091179055506004620001128382620006b8565b506005620001218282620006b8565b5050506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a49190620005e9565b600c546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c9190620005e9565b90506200025430737a250d5630b4cf539739df2c5dacb4c659f2488d74446c3b15f9926687d2c40534fdb56400000000000062000345565b6200028a83737a250d5630b4cf539739df2c5dacb4c659f2488d74446c3b15f9926687d2c40534fdb56400000000000062000345565b600780546001600160a01b038085166001600160a01b031992831617909255600b80548484169083168117909155600880548785169084161790556000908152601060209081526040808320805460ff199081166001908117909255308552600f90935281842080548416821790558354861684529083208054909216179055546006805490921692169190911790556a52b7d2dcc80cd2e400000060138190556200033890849062000471565b505050620007a6565b3390565b6001600160a01b038316620003ad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620004105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620003a4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620004c95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003a4565b620004e5816003546200057d60201b62000a2b1790919060201c565b6003556001600160a01b0382166000908152600160209081526040909120546200051a91839062000a2b6200057d821b17901c565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200056c9085815260200190565b60405180910390a35050565b505050565b6000806200058c838562000784565b905083811015620005e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620003a4565b90505b92915050565b600060208284031215620005fc57600080fd5b81516001600160a01b0381168114620005e057600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200063f57607f821691505b6020821081036200066057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200057857600081815260208120601f850160051c810160208610156200068f5750805b601f850160051c820191505b81811015620006b0578281556001016200069b565b505050505050565b81516001600160401b03811115620006d457620006d462000614565b620006ec81620006e584546200062a565b8462000666565b602080601f8311600181146200072457600084156200070b5750858301515b600019600386901b1c1916600185901b178555620006b0565b600085815260208120601f198616915b82811015620007555788860151825594840194600190910190840162000734565b5085821015620007745787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620005e357634e487b7160e01b600052601160045260246000fd5b61172180620007b66000396000f3fe6080604052600436106101855760003560e01c8063744a1c22116100d1578063a457c2d71161008a578063dc38a03f11610064578063dc38a03f1461047f578063dd62ed3e14610494578063ec6e62ac146104da578063f2fde38b146104fa57600080fd5b8063a457c2d71461041f578063a9059cbb1461043f578063c02466681461045f57600080fd5b8063744a1c221461036657806378e97925146103865780638982503d1461039c5780638ce5db40146103cc5780638da5cb5b146103ec57806395d89b411461040a57600080fd5b806333f3d6281161013e57806349bd5a5e1161011857806349bd5a5e146102e15780634a74bb021461030157806370a082311461031b578063715018a61461035157600080fd5b806333f3d6281461027f578063395093511461029f5780633e0a322d146102bf57600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461022457806323b872dd14610243578063313ce5671461026357600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661051a565b6040516101b391906112f6565b60405180910390f35b3480156101c857600080fd5b506101dc6101d7366004611359565b6105ac565b60405190151581526020016101b3565b3480156101f857600080fd5b5060075461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b506003545b6040519081526020016101b3565b34801561024f57600080fd5b506101dc61025e366004611385565b6105c3565b34801561026f57600080fd5b50604051601281526020016101b3565b34801561028b57600080fd5b506101dc61029a366004611359565b61062c565b3480156102ab57600080fd5b506101dc6102ba366004611359565b6106ac565b3480156102cb57600080fd5b506102df6102da3660046113c6565b6106e2565b005b3480156102ed57600080fd5b50600b5461020c906001600160a01b031681565b34801561030d57600080fd5b506011546101dc9060ff1681565b34801561032757600080fd5b506102356103363660046113df565b6001600160a01b031660009081526001602052604090205490565b34801561035d57600080fd5b506102df61071a565b34801561037257600080fd5b506102df61038136600461140a565b610756565b34801561039257600080fd5b5061023560125481565b3480156103a857600080fd5b506101dc6103b73660046113df565b60106020526000908152604090205460ff1681565b3480156103d857600080fd5b506102df6103e73660046113df565b6107ab565b3480156103f857600080fd5b506000546001600160a01b031661020c565b34801561041657600080fd5b506101a6610827565b34801561042b57600080fd5b506101dc61043a366004611359565b610836565b34801561044b57600080fd5b506101dc61045a366004611359565b610885565b34801561046b57600080fd5b506102df61047a36600461140a565b610892565b34801561048b57600080fd5b506102df6108e7565b3480156104a057600080fd5b506102356104af366004611443565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104e657600080fd5b506102df6104f536600461140a565b610925565b34801561050657600080fd5b506102df6105153660046113df565b61097a565b60606004805461052990611471565b80601f016020809104026020016040519081016040528092919081815260200182805461055590611471565b80156105a25780601f10610577576101008083540402835291602001916105a2565b820191906000526020600020905b81548152906001019060200180831161058557829003601f168201915b5050505050905090565b60006105b9338484610a8a565b5060015b92915050565b60006105d0848484610bae565b610622843361061d8560405180606001604052806028815260200161169f602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610ed7565b610a8a565b5060019392505050565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905260009184169063a9059cbb906044016020604051808303816000875af1158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a591906114ab565b9392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105b991859061061d9086610a2b565b6000546001600160a01b031633146107155760405162461bcd60e51b815260040161070c906114c8565b60405180910390fd5b601255565b6000546001600160a01b031633146107445760405162461bcd60e51b815260040161070c906114c8565b600080546001600160a01b0319169055565b6000546001600160a01b031633146107805760405162461bcd60e51b815260040161070c906114c8565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107d55760405162461bcd60e51b815260040161070c906114c8565b6008546013546107f0916001600160a01b0316908390610f11565b6001600160a01b03166000818152600f60205260409020805460ff19166001179055600880546001600160a01b0319169091179055565b60606005805461052990611471565b60006105b9338461061d856040518060600160405280602581526020016116c7602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610ed7565b60006105b9338484610bae565b6000546001600160a01b031633146108bc5760405162461bcd60e51b815260040161070c906114c8565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109115760405162461bcd60e51b815260040161070c906114c8565b6011805460ff19811660ff90911615179055565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260040161070c906114c8565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109a45760405162461bcd60e51b815260040161070c906114c8565b6001600160a01b038116610a095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070c565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610a388385611513565b9050838110156106a55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070c565b6001600160a01b038316610aec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070c565b6001600160a01b038216610b4d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070c565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd45760405162461bcd60e51b815260040161070c90611526565b6001600160a01b038216610bfa5760405162461bcd60e51b815260040161070c9061156b565b60008111610c0757600080fd5b601254158015610c2f5750600b546001600160a01b0316600090815260016020526040902054155b8015610c485750600b546001600160a01b038381169116145b15610c5257426012555b6001600160a01b0383166000908152600f602052604090205460ff1680610c9157506001600160a01b0382166000908152600f602052604090205460ff165b15610ca657610ca1838383610f11565b505050565b826001600160a01b0316826001600160a01b031603610d135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f207468652073616d65206164647260448201526265737360e81b606482015260840161070c565b600b546001600160a01b0316600090815260016020526040902054610d3d906107d0905b9061106f565b306000908152600160205260409020541115610df257600954600160a01b900460ff16158015610d7b57506008546001600160a01b03848116911614155b8015610d9557506008546001600160a01b03838116911614155b8015610dae5750600b546001600160a01b038381169116145b8015610dbc575060115460ff165b15610df257600b546001600160a01b0316600090815260016020526040902054610df290610ded906107d090610d37565b6110b1565b6001600160a01b0383166000908152600e602052604090205460ff1680610e3157506001600160a01b0382166000908152600e602052604090205460ff165b610ecc576001600160a01b03831660009081526010602052604090205460ff1615610e8857610e6b8330610e6684606461106f565b610f11565b610e816063610e7b83606461106f565b906110bd565b9050610ecc565b6001600160a01b03821660009081526010602052604090205460ff1615610ecc57610eb98330610e6684606461106f565b610ec96063610e7b83606461106f565b90505b610ca1838383610f11565b60008184841115610efb5760405162461bcd60e51b815260040161070c91906112f6565b506000610f0884866115ae565b95945050505050565b6001600160a01b038316610f375760405162461bcd60e51b815260040161070c90611526565b6001600160a01b038216610f5d5760405162461bcd60e51b815260040161070c9061156b565b6001600160a01b0380841660009081526001602052604080822054928516825290205482821015610fdf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070c565b610fe9828461113f565b6001600160a01b03861660009081526001602052604090205561100c8184610a2b565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110609087815260200190565b60405180910390a35050505050565b60006106a583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611181565b6110ba816111af565b50565b6000826000036110cf575060006105bd565b60006110db83856115c1565b9050826110e885836115d8565b146106a55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161070c565b60006106a583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ed7565b600081836111a25760405162461bcd60e51b815260040161070c91906112f6565b506000610f0884866115d8565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111e4576111e46115fa565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611610565b81600181518110611274576112746115fa565b6001600160a01b039283166020918202929092010152600754600d5460405163791ac94760e01b81529183169263791ac947926112c0928792600092889290911690429060040161162d565b600060405180830381600087803b1580156112da57600080fd5b505af11580156112ee573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561132357858101830151858201604001528201611307565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110ba57600080fd5b6000806040838503121561136c57600080fd5b823561137781611344565b946020939093013593505050565b60008060006060848603121561139a57600080fd5b83356113a581611344565b925060208401356113b581611344565b929592945050506040919091013590565b6000602082840312156113d857600080fd5b5035919050565b6000602082840312156113f157600080fd5b81356106a581611344565b80151581146110ba57600080fd5b6000806040838503121561141d57600080fd5b823561142881611344565b91506020830135611438816113fc565b809150509250929050565b6000806040838503121561145657600080fd5b823561146181611344565b9150602083013561143881611344565b600181811c9082168061148557607f821691505b6020821081036114a557634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156114bd57600080fd5b81516106a5816113fc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156105bd576105bd6114fd565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156105bd576105bd6114fd565b80820281158282048414176105bd576105bd6114fd565b6000826115f557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561162257600080fd5b81516106a581611344565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561167d5784516001600160a01b031683529383019391830191600101611658565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e6f00249c5dc99c163e3cfa0c882bf149e0f9a58518bb6703d38486a22c5054a64736f6c63430008120033000000000000000000000000efbbc3fa829af506bc7afe1a0c31b3c7419456f7

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063744a1c22116100d1578063a457c2d71161008a578063dc38a03f11610064578063dc38a03f1461047f578063dd62ed3e14610494578063ec6e62ac146104da578063f2fde38b146104fa57600080fd5b8063a457c2d71461041f578063a9059cbb1461043f578063c02466681461045f57600080fd5b8063744a1c221461036657806378e97925146103865780638982503d1461039c5780638ce5db40146103cc5780638da5cb5b146103ec57806395d89b411461040a57600080fd5b806333f3d6281161013e57806349bd5a5e1161011857806349bd5a5e146102e15780634a74bb021461030157806370a082311461031b578063715018a61461035157600080fd5b806333f3d6281461027f578063395093511461029f5780633e0a322d146102bf57600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461022457806323b872dd14610243578063313ce5671461026357600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661051a565b6040516101b391906112f6565b60405180910390f35b3480156101c857600080fd5b506101dc6101d7366004611359565b6105ac565b60405190151581526020016101b3565b3480156101f857600080fd5b5060075461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b506003545b6040519081526020016101b3565b34801561024f57600080fd5b506101dc61025e366004611385565b6105c3565b34801561026f57600080fd5b50604051601281526020016101b3565b34801561028b57600080fd5b506101dc61029a366004611359565b61062c565b3480156102ab57600080fd5b506101dc6102ba366004611359565b6106ac565b3480156102cb57600080fd5b506102df6102da3660046113c6565b6106e2565b005b3480156102ed57600080fd5b50600b5461020c906001600160a01b031681565b34801561030d57600080fd5b506011546101dc9060ff1681565b34801561032757600080fd5b506102356103363660046113df565b6001600160a01b031660009081526001602052604090205490565b34801561035d57600080fd5b506102df61071a565b34801561037257600080fd5b506102df61038136600461140a565b610756565b34801561039257600080fd5b5061023560125481565b3480156103a857600080fd5b506101dc6103b73660046113df565b60106020526000908152604090205460ff1681565b3480156103d857600080fd5b506102df6103e73660046113df565b6107ab565b3480156103f857600080fd5b506000546001600160a01b031661020c565b34801561041657600080fd5b506101a6610827565b34801561042b57600080fd5b506101dc61043a366004611359565b610836565b34801561044b57600080fd5b506101dc61045a366004611359565b610885565b34801561046b57600080fd5b506102df61047a36600461140a565b610892565b34801561048b57600080fd5b506102df6108e7565b3480156104a057600080fd5b506102356104af366004611443565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104e657600080fd5b506102df6104f536600461140a565b610925565b34801561050657600080fd5b506102df6105153660046113df565b61097a565b60606004805461052990611471565b80601f016020809104026020016040519081016040528092919081815260200182805461055590611471565b80156105a25780601f10610577576101008083540402835291602001916105a2565b820191906000526020600020905b81548152906001019060200180831161058557829003601f168201915b5050505050905090565b60006105b9338484610a8a565b5060015b92915050565b60006105d0848484610bae565b610622843361061d8560405180606001604052806028815260200161169f602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610ed7565b610a8a565b5060019392505050565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905260009184169063a9059cbb906044016020604051808303816000875af1158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a591906114ab565b9392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105b991859061061d9086610a2b565b6000546001600160a01b031633146107155760405162461bcd60e51b815260040161070c906114c8565b60405180910390fd5b601255565b6000546001600160a01b031633146107445760405162461bcd60e51b815260040161070c906114c8565b600080546001600160a01b0319169055565b6000546001600160a01b031633146107805760405162461bcd60e51b815260040161070c906114c8565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107d55760405162461bcd60e51b815260040161070c906114c8565b6008546013546107f0916001600160a01b0316908390610f11565b6001600160a01b03166000818152600f60205260409020805460ff19166001179055600880546001600160a01b0319169091179055565b60606005805461052990611471565b60006105b9338461061d856040518060600160405280602581526020016116c7602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610ed7565b60006105b9338484610bae565b6000546001600160a01b031633146108bc5760405162461bcd60e51b815260040161070c906114c8565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109115760405162461bcd60e51b815260040161070c906114c8565b6011805460ff19811660ff90911615179055565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260040161070c906114c8565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109a45760405162461bcd60e51b815260040161070c906114c8565b6001600160a01b038116610a095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070c565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610a388385611513565b9050838110156106a55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161070c565b6001600160a01b038316610aec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070c565b6001600160a01b038216610b4d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070c565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd45760405162461bcd60e51b815260040161070c90611526565b6001600160a01b038216610bfa5760405162461bcd60e51b815260040161070c9061156b565b60008111610c0757600080fd5b601254158015610c2f5750600b546001600160a01b0316600090815260016020526040902054155b8015610c485750600b546001600160a01b038381169116145b15610c5257426012555b6001600160a01b0383166000908152600f602052604090205460ff1680610c9157506001600160a01b0382166000908152600f602052604090205460ff165b15610ca657610ca1838383610f11565b505050565b826001600160a01b0316826001600160a01b031603610d135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f207468652073616d65206164647260448201526265737360e81b606482015260840161070c565b600b546001600160a01b0316600090815260016020526040902054610d3d906107d0905b9061106f565b306000908152600160205260409020541115610df257600954600160a01b900460ff16158015610d7b57506008546001600160a01b03848116911614155b8015610d9557506008546001600160a01b03838116911614155b8015610dae5750600b546001600160a01b038381169116145b8015610dbc575060115460ff165b15610df257600b546001600160a01b0316600090815260016020526040902054610df290610ded906107d090610d37565b6110b1565b6001600160a01b0383166000908152600e602052604090205460ff1680610e3157506001600160a01b0382166000908152600e602052604090205460ff165b610ecc576001600160a01b03831660009081526010602052604090205460ff1615610e8857610e6b8330610e6684606461106f565b610f11565b610e816063610e7b83606461106f565b906110bd565b9050610ecc565b6001600160a01b03821660009081526010602052604090205460ff1615610ecc57610eb98330610e6684606461106f565b610ec96063610e7b83606461106f565b90505b610ca1838383610f11565b60008184841115610efb5760405162461bcd60e51b815260040161070c91906112f6565b506000610f0884866115ae565b95945050505050565b6001600160a01b038316610f375760405162461bcd60e51b815260040161070c90611526565b6001600160a01b038216610f5d5760405162461bcd60e51b815260040161070c9061156b565b6001600160a01b0380841660009081526001602052604080822054928516825290205482821015610fdf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070c565b610fe9828461113f565b6001600160a01b03861660009081526001602052604090205561100c8184610a2b565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110609087815260200190565b60405180910390a35050505050565b60006106a583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611181565b6110ba816111af565b50565b6000826000036110cf575060006105bd565b60006110db83856115c1565b9050826110e885836115d8565b146106a55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161070c565b60006106a583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ed7565b600081836111a25760405162461bcd60e51b815260040161070c91906112f6565b506000610f0884866115d8565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111e4576111e46115fa565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611610565b81600181518110611274576112746115fa565b6001600160a01b039283166020918202929092010152600754600d5460405163791ac94760e01b81529183169263791ac947926112c0928792600092889290911690429060040161162d565b600060405180830381600087803b1580156112da57600080fd5b505af11580156112ee573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561132357858101830151858201604001528201611307565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110ba57600080fd5b6000806040838503121561136c57600080fd5b823561137781611344565b946020939093013593505050565b60008060006060848603121561139a57600080fd5b83356113a581611344565b925060208401356113b581611344565b929592945050506040919091013590565b6000602082840312156113d857600080fd5b5035919050565b6000602082840312156113f157600080fd5b81356106a581611344565b80151581146110ba57600080fd5b6000806040838503121561141d57600080fd5b823561142881611344565b91506020830135611438816113fc565b809150509250929050565b6000806040838503121561145657600080fd5b823561146181611344565b9150602083013561143881611344565b600181811c9082168061148557607f821691505b6020821081036114a557634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156114bd57600080fd5b81516106a5816113fc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156105bd576105bd6114fd565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156105bd576105bd6114fd565b80820281158282048414176105bd576105bd6114fd565b6000826115f557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561162257600080fd5b81516106a581611344565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561167d5784516001600160a01b031683529383019391830191600101611658565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e6f00249c5dc99c163e3cfa0c882bf149e0f9a58518bb6703d38486a22c5054a64736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000efbbc3fa829af506bc7afe1a0c31b3c7419456f7

-----Decoded View---------------
Arg [0] : tokenOwner (address): 0xEfbBc3fa829aF506Bc7AfE1a0C31B3c7419456F7

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000efbbc3fa829af506bc7afe1a0c31b3c7419456f7


Deployed Bytecode Sourcemap

25755:4762:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8167:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10419:194;;;;;;;;;;-1:-1:-1;10419:194:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10419:194:0;1023:187:1;25817:41:0;;;;;;;;;;-1:-1:-1;25817:41:0;;;;-1:-1:-1;;;;;25817:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;25817:41:0;1215:230:1;9287:108:0;;;;;;;;;;-1:-1:-1;9375:12:0;;9287:108;;;1596:25:1;;;1584:2;1569:18;9287:108:0;1450:177:1;11095:454:0;;;;;;;;;;-1:-1:-1;11095:454:0;;;;;:::i;:::-;;:::i;9129:93::-;;;;;;;;;;-1:-1:-1;9129:93:0;;9212:2;2235:36:1;;2223:2;2208:18;9129:93:0;2093:184:1;29868:155:0;;;;;;;;;;-1:-1:-1;29868:155:0;;;;;:::i;:::-;;:::i;11958:288::-;;;;;;;;;;-1:-1:-1;11958:288:0;;;;;:::i;:::-;;:::i;27542:100::-;;;;;;;;;;-1:-1:-1;27542:100:0;;;;;:::i;:::-;;:::i;:::-;;26023:29;;;;;;;;;;-1:-1:-1;26023:29:0;;;;-1:-1:-1;;;;;26023:29:0;;;26406:40;;;;;;;;;;-1:-1:-1;26406:40:0;;;;;;;;9458:157;;;;;;;;;;-1:-1:-1;9458:157:0;;;;;:::i;:::-;-1:-1:-1;;;;;9589:18:0;9557:7;9589:18;;;:9;:18;;;;;;;9458:157;6869:92;;;;;;;;;;;;;:::i;27872:120::-;;;;;;;;;;-1:-1:-1;27872:120:0;;;;;:::i;:::-;;:::i;26453:24::-;;;;;;;;;;;;;;;;26359:40;;;;;;;;;;-1:-1:-1;26359:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;27650:213;;;;;;;;;;-1:-1:-1;27650:213:0;;;;;:::i;:::-;;:::i;6227:79::-;;;;;;;;;;-1:-1:-1;6265:7:0;6292:6;-1:-1:-1;;;;;6292:6:0;6227:79;;8386:104;;;;;;;;;;;;;:::i;12749:388::-;;;;;;;;;;-1:-1:-1;12749:388:0;;;;;:::i;:::-;;:::i;9828:200::-;;;;;;;;;;-1:-1:-1;9828:200:0;;;;;:::i;:::-;;:::i;27402:132::-;;;;;;;;;;-1:-1:-1;27402:132:0;;;;;:::i;:::-;;:::i;28150:118::-;;;;;;;;;;;;;:::i;10091:181::-;;;;;;;;;;-1:-1:-1;10091:181:0;;;;;:::i;:::-;-1:-1:-1;;;;;10237:18:0;;;10205:7;10237:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10091:181;27998:144;;;;;;;;;;-1:-1:-1;27998:144:0;;;;;:::i;:::-;;:::i;7116:227::-;;;;;;;;;;-1:-1:-1;7116:227:0;;;;;:::i;:::-;;:::i;8167:100::-;8221:13;8254:5;8247:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8167:100;:::o;10419:194::-;10522:4;10544:39;173:10;10567:7;10576:6;10544:8;:39::i;:::-;-1:-1:-1;10601:4:0;10419:194;;;;;:::o;11095:454::-;11235:4;11252:36;11262:6;11270:9;11281:6;11252:9;:36::i;:::-;11299:220;11322:6;173:10;11370:138;11426:6;11370:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11370:19:0;;;;;;:11;:19;;;;;;;;173:10;11370:33;;;;;;;;;;:37;:138::i;:::-;11299:8;:220::i;:::-;-1:-1:-1;11537:4:0;11095:454;;;;;:::o;29868:155::-;29991:15;;29961:54;;-1:-1:-1;;;29961:54:0;;-1:-1:-1;;;;;29991:15:0;;;29961:54;;;4389:51:1;4456:18;;;4449:34;;;29943:4:0;;29961:29;;;;;4362:18:1;;29961:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29954:61;29868:155;-1:-1:-1;;;29868:155:0:o;11958:288::-;173:10;12061:4;12155:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12155:34:0;;;;;;;;;;12061:4;;12083:133;;12133:7;;12155:50;;12194:10;12155:38;:50::i;27542:100::-;6439:6;;-1:-1:-1;;;;;6439:6:0;173:10;6439:22;6431:67;;;;-1:-1:-1;;;6431:67:0;;;;;;;:::i;:::-;;;;;;;;;27612:9:::1;:22:::0;27542:100::o;6869:92::-;6439:6;;-1:-1:-1;;;;;6439:6:0;173:10;6439:22;6431:67;;;;-1:-1:-1;;;6431:67:0;;;;;;;:::i;:::-;6951:1:::1;6934:19:::0;;-1:-1:-1;;;;;;6934:19:0::1;::::0;;6869:92::o;27872:120::-;6439:6;;-1:-1:-1;;;;;6439:6:0;173:10;6439:22;6431:67;;;;-1:-1:-1;;;6431:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27955:21:0;;;::::1;;::::0;;;:8:::1;:21;::::0;;;;:29;;-1:-1:-1;;27955:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27872:120::o;27650:213::-;6439:6;;-1:-1:-1;;;;;6439:6:0;173:10;6439:22;6431:67;;;;-1:-1:-1;;;6431:67:0;;;;;;;:::i;:::-;27737:11:::1;::::0;27762:5:::1;::::0;27721:47:::1;::::0;-1:-1:-1;;;;;27737:11:0::1;::::0;27750:10;;27721:15:::1;:47::i;:::-;-1:-1:-1::0;;;;;27779:34:0::1;;::::0;;;:22:::1;:34;::::0;;;;:41;;-1:-1:-1;;27779:41:0::1;27816:4;27779:41;::::0;;27831:11:::1;:24:::0;;-1:-1:-1;;;;;;27831:24:0::1;::::0;;::::1;::::0;;27650:213::o;8386:104::-;8442:13;8475:7;8468:14;;;;;:::i;12749:388::-;12857:4;12879:228;173:10;12929:7;12951:145;13008:15;12951:145;;;;;;;;;;;;;;;;;173:10;12951:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12951:34:0;;;;;;;;;;;;:38;:145::i;9828:200::-;9934:4;9956:42;173:10;9980:9;9991:6;9956:9;:42::i;27402:132::-;6439:6;;-1:-1:-1;;;;;6439:6:0;173:10;6439:22;6431:67;;;;-1:-1:-1;;;6431:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27487:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;27487:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27402:132::o;28150:118::-;6439:6;;-1:-1:-1;;;;;6439:6:0;173:10;6439:22;6431:67;;;;-1:-1:-1;;;6431:67:0;;;;;;;:::i;:::-;28239:21:::1;::::0;;-1:-1:-1;;28214:46:0;::::1;28239:21;::::0;;::::1;28238:22;28214:46;::::0;;28150:118::o;27998:144::-;6439:6;;-1:-1:-1;;;;;6439:6:0;173:10;6439:22;6431:67;;;;-1:-1:-1;;;6431:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28091:35:0;;;::::1;;::::0;;;:22:::1;:35;::::0;;;;:43;;-1:-1:-1;;28091:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27998:144::o;7116:227::-;6439:6;;-1:-1:-1;;;;;6439:6:0;173:10;6439:22;6431:67;;;;-1:-1:-1;;;6431:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7219:22:0;::::1;7197:110;;;::::0;-1:-1:-1;;;7197:110:0;;5307:2:1;7197:110:0::1;::::0;::::1;5289:21:1::0;5346:2;5326:18;;;5319:30;5385:34;5365:18;;;5358:62;-1:-1:-1;;;5436:18:1;;;5429:36;5482:19;;7197:110:0::1;5105:402:1::0;7197:110:0::1;7318:6;:17:::0;;-1:-1:-1;;;;;;7318:17:0::1;-1:-1:-1::0;;;;;7318:17:0;;;::::1;::::0;;;::::1;::::0;;7116:227::o;17594:181::-;17652:7;;17684:5;17688:1;17684;:5;:::i;:::-;17672:17;;17713:1;17708;:6;;17700:46;;;;-1:-1:-1;;;17700:46:0;;5976:2:1;17700:46:0;;;5958:21:1;6015:2;5995:18;;;5988:30;6054:29;6034:18;;;6027:57;6101:18;;17700:46:0;5774:351:1;16181:380:0;-1:-1:-1;;;;;16317:19:0;;16309:68;;;;-1:-1:-1;;;16309:68:0;;6332:2:1;16309:68:0;;;6314:21:1;6371:2;6351:18;;;6344:30;6410:34;6390:18;;;6383:62;-1:-1:-1;;;6461:18:1;;;6454:34;6505:19;;16309:68:0;6130:400:1;16309:68:0;-1:-1:-1;;;;;16396:21:0;;16388:68;;;;-1:-1:-1;;;16388:68:0;;6737:2:1;16388:68:0;;;6719:21:1;6776:2;6756:18;;;6749:30;6815:34;6795:18;;;6788:62;-1:-1:-1;;;6866:18:1;;;6859:32;6908:19;;16388:68:0;6535:398:1;16388:68:0;-1:-1:-1;;;;;16469:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16521:32;;1596:25:1;;;16521:32:0;;1569:18:1;16521:32:0;;;;;;;16181:380;;;:::o;28280:1475::-;-1:-1:-1;;;;;28412:18:0;;28404:68;;;;-1:-1:-1;;;28404:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28491:16:0;;28483:64;;;;-1:-1:-1;;;28483:64:0;;;;;;;:::i;:::-;28567:1;28560:6;:8;28552:17;;;;;;28585:9;;:14;:53;;;;-1:-1:-1;28619:13:0;;-1:-1:-1;;;;;28619:13:0;9557:7;9589:18;;;:9;:18;;;;;;28603:35;28585:53;:76;;;;-1:-1:-1;28648:13:0;;-1:-1:-1;;;;;28642:19:0;;;28648:13;;28642:19;28585:76;28582:134;;;28689:15;28677:9;:27;28582:134;-1:-1:-1;;;;;28725:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;28757:26:0;;;;;;:22;:26;;;;;;;;28725:58;28722:232;;;28799:33;28815:4;28821:2;28825:6;28799:15;:33::i;:::-;28280:1475;;;:::o;28722:232::-;28898:4;-1:-1:-1;;;;;28892:10:0;:2;-1:-1:-1;;;;;28892:10:0;;28884:58;;;;-1:-1:-1;;;28884:58:0;;7950:2:1;28884:58:0;;;7932:21:1;7989:2;7969:18;;;7962:30;8028:34;8008:18;;;8001:62;-1:-1:-1;;;8079:18:1;;;8072:33;8122:19;;28884:58:0;7748:399:1;28884:58:0;29020:13;;-1:-1:-1;;;;;29020:13:0;9557:7;9589:18;;;:9;:18;;;;;;29004:40;;29039:4;;29004:30;:34;;:40::i;:::-;28995:4;9557:7;9589:18;;;:9;:18;;;;;;28971:73;28968:320;;;29062:8;;-1:-1:-1;;;29062:8:0;;;;29061:9;:49;;;;-1:-1:-1;29091:11:0;;-1:-1:-1;;;;;29091:19:0;;;:11;;:19;;29061:49;:87;;;;-1:-1:-1;29131:11:0;;-1:-1:-1;;;;;29131:17:0;;;:11;;:17;;29061:87;:115;;;;-1:-1:-1;29163:13:0;;-1:-1:-1;;;;;29157:19:0;;;29163:13;;29157:19;29061:115;:145;;;;-1:-1:-1;29185:21:0;;;;29061:145;29051:232;;;29251:13;;-1:-1:-1;;;;;29251:13:0;9557:7;9589:18;;;:9;:18;;;;;;29220:56;;29235:40;;29270:4;;29235:30;9458:157;29235:40;29220:14;:56::i;:::-;-1:-1:-1;;;;;29316:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;29345:23:0;;;;;;:19;:23;;;;;;;;29316:52;29312:392;;-1:-1:-1;;;;;29409:14:0;;;;;;:8;:14;;;;;;;;29406:287;;;29443:53;29459:4;29473;29480:15;:6;29491:3;29480:10;:15::i;:::-;29443;:53::i;:::-;29524:23;29544:2;29524:15;:6;29535:3;29524:10;:15::i;:::-;:19;;:23::i;:::-;29515:32;;29406:287;;;-1:-1:-1;;;;;29562:12:0;;;;;;:8;:12;;;;;;;;29559:134;;;29582:53;29598:4;29612;29619:15;:6;29630:3;29619:10;:15::i;29582:53::-;29663:23;29683:2;29663:15;:6;29674:3;29663:10;:15::i;:23::-;29654:32;;29559:134;29714:33;29730:4;29736:2;29740:6;29714:15;:33::i;18497:226::-;18617:7;18653:12;18645:6;;;;18637:29;;;;-1:-1:-1;;;18637:29:0;;;;;;;;:::i;:::-;-1:-1:-1;18677:9:0;18689:5;18693:1;18689;:5;:::i;:::-;18677:17;18497:226;-1:-1:-1;;;;;18497:226:0:o;13627:651::-;-1:-1:-1;;;;;13767:20:0;;13759:70;;;;-1:-1:-1;;;13759:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13848:23:0;;13840:71;;;;-1:-1:-1;;;13840:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13945:17:0;;;13922:20;13945:17;;;:9;:17;;;;;;;13999:20;;;;;;;;14038:22;;;;14030:73;;;;-1:-1:-1;;;14030:73:0;;8487:2:1;14030:73:0;;;8469:21:1;8526:2;8506:18;;;8499:30;8565:34;8545:18;;;8538:62;-1:-1:-1;;;8616:18:1;;;8609:36;8662:19;;14030:73:0;8285:402:1;14030:73:0;14134:24;:12;14151:6;14134:16;:24::i;:::-;-1:-1:-1;;;;;14114:17:0;;;;;;:9;:17;;;;;:44;14192:27;:15;14212:6;14192:19;:27::i;:::-;-1:-1:-1;;;;;14169:20:0;;;;;;;:9;:20;;;;;;;:50;;;;14235:35;;;;;;;;;;14263:6;1596:25:1;;1584:2;1569:18;;1450:177;14235:35:0;;;;;;;;13748:530;;13627:651;;;:::o;19929:132::-;19987:7;20014:39;20018:1;20021;20014:39;;;;;;;;;;;;;;;;;:3;:39::i;29767:93::-;29824:28;29841:10;29824:16;:28::i;:::-;29767:93;:::o;18982:471::-;19040:7;19285:1;19290;19285:6;19281:47;;-1:-1:-1;19315:1:0;19308:8;;19281:47;19340:9;19352:5;19356:1;19352;:5;:::i;:::-;19340:17;-1:-1:-1;19385:1:0;19376:5;19380:1;19340:17;19376:5;:::i;:::-;:10;19368:56;;;;-1:-1:-1;;;19368:56:0;;9289:2:1;19368:56:0;;;9271:21:1;9328:2;9308:18;;;9301:30;9367:34;9347:18;;;9340:62;-1:-1:-1;;;9418:18:1;;;9411:31;9459:19;;19368:56:0;9087:397:1;18058:136:0;18116:7;18143:43;18147:1;18150;18143:43;;;;;;;;;;;;;;;;;:3;:43::i;20557:312::-;20677:7;20712:12;20705:5;20697:28;;;;-1:-1:-1;;;20697:28:0;;;;;;;;:::i;:::-;-1:-1:-1;20736:9:0;20748:5;20752:1;20748;:5;:::i;30029:485::-;30179:16;;;30193:1;30179:16;;;;;;;;30155:21;;30179:16;;;;;;;;;;-1:-1:-1;30179:16:0;30155:40;;30224:4;30206;30211:1;30206:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30206:23:0;;;:7;;;;;;;;;;:23;;;;30250:15;;:22;;;-1:-1:-1;;;30250:22:0;;;;:15;;;;;:20;;:22;;;;;30206:7;;30250:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30240:4;30245:1;30240:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30240:32:0;;;:7;;;;;;;;;:32;30283:15;;30453:12;;30283:223;;-1:-1:-1;;;30283:223:0;;:15;;;;:66;;:223;;30364:11;;30283:15;;30434:4;;30453:12;;;;30480:15;;30283:223;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30084:430;30029:485;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2282:180::-;2341:6;2394:2;2382:9;2373:7;2369:23;2365:32;2362:52;;;2410:1;2407;2400:12;2362:52;-1:-1:-1;2433:23:1;;2282:180;-1:-1:-1;2282:180:1:o;2675:247::-;2734:6;2787:2;2775:9;2766:7;2762:23;2758:32;2755:52;;;2803:1;2800;2793:12;2755:52;2842:9;2829:23;2861:31;2886:5;2861:31;:::i;2927:118::-;3013:5;3006:13;2999:21;2992:5;2989:32;2979:60;;3035:1;3032;3025:12;3050:382;3115:6;3123;3176:2;3164:9;3155:7;3151:23;3147:32;3144:52;;;3192:1;3189;3182:12;3144:52;3231:9;3218:23;3250:31;3275:5;3250:31;:::i;:::-;3300:5;-1:-1:-1;3357:2:1;3342:18;;3329:32;3370:30;3329:32;3370:30;:::i;:::-;3419:7;3409:17;;;3050:382;;;;;:::o;3437:388::-;3505:6;3513;3566:2;3554:9;3545:7;3541:23;3537:32;3534:52;;;3582:1;3579;3572:12;3534:52;3621:9;3608:23;3640:31;3665:5;3640:31;:::i;:::-;3690:5;-1:-1:-1;3747:2:1;3732:18;;3719:32;3760:33;3719:32;3760:33;:::i;3830:380::-;3909:1;3905:12;;;;3952;;;3973:61;;4027:4;4019:6;4015:17;4005:27;;3973:61;4080:2;4072:6;4069:14;4049:18;4046:38;4043:161;;4126:10;4121:3;4117:20;4114:1;4107:31;4161:4;4158:1;4151:15;4189:4;4186:1;4179:15;4043:161;;3830:380;;;:::o;4494:245::-;4561:6;4614:2;4602:9;4593:7;4589:23;4585:32;4582:52;;;4630:1;4627;4620:12;4582:52;4662:9;4656:16;4681:28;4703:5;4681:28;:::i;4744:356::-;4946:2;4928:21;;;4965:18;;;4958:30;5024:34;5019:2;5004:18;;4997:62;5091:2;5076:18;;4744:356::o;5512:127::-;5573:10;5568:3;5564:20;5561:1;5554:31;5604:4;5601:1;5594:15;5628:4;5625:1;5618:15;5644:125;5709:9;;;5730:10;;;5727:36;;;5743:18;;:::i;6938:401::-;7140:2;7122:21;;;7179:2;7159:18;;;7152:30;7218:34;7213:2;7198:18;;7191:62;-1:-1:-1;;;7284:2:1;7269:18;;7262:35;7329:3;7314:19;;6938:401::o;7344:399::-;7546:2;7528:21;;;7585:2;7565:18;;;7558:30;7624:34;7619:2;7604:18;;7597:62;-1:-1:-1;;;7690:2:1;7675:18;;7668:33;7733:3;7718:19;;7344:399::o;8152:128::-;8219:9;;;8240:11;;;8237:37;;;8254:18;;:::i;8692:168::-;8765:9;;;8796;;8813:15;;;8807:22;;8793:37;8783:71;;8834:18;;:::i;8865:217::-;8905:1;8931;8921:132;;8975:10;8970:3;8966:20;8963:1;8956:31;9010:4;9007:1;9000:15;9038:4;9035:1;9028:15;8921:132;-1:-1:-1;9067:9:1;;8865:217::o;9621:127::-;9682:10;9677:3;9673:20;9670:1;9663:31;9713:4;9710:1;9703:15;9737:4;9734:1;9727:15;9753:251;9823:6;9876:2;9864:9;9855:7;9851:23;9847:32;9844:52;;;9892:1;9889;9882:12;9844:52;9924:9;9918:16;9943:31;9968:5;9943:31;:::i;10009:988::-;10279:4;10327:3;10316:9;10312:19;10358:6;10347:9;10340:25;10384:2;10422:6;10417:2;10406:9;10402:18;10395:34;10465:3;10460:2;10449:9;10445:18;10438:31;10489:6;10524;10518:13;10555:6;10547;10540:22;10593:3;10582:9;10578:19;10571:26;;10632:2;10624:6;10620:15;10606:29;;10653:1;10663:195;10677:6;10674:1;10671:13;10663:195;;;10742:13;;-1:-1:-1;;;;;10738:39:1;10726:52;;10833:15;;;;10798:12;;;;10774:1;10692:9;10663:195;;;-1:-1:-1;;;;;;;10914:32:1;;;;10909:2;10894:18;;10887:60;-1:-1:-1;;;10978:3:1;10963:19;10956:35;10875:3;10009:988;-1:-1:-1;;;10009:988:1:o

Swarm Source

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