ETH Price: $3,203.40 (-7.15%)
Gas: 3 Gwei

Token

JustUP (JUSTUP)
 

Overview

Max Total Supply

100,000,000 JUSTUP

Holders

239

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.817779340097381209 JUSTUP

Value
$0.00
0xa1b178b52b622324aa8c344d53e2e7548cf087d7
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:
JustUp

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// Just Up.
// Simple. Just maths.
// Sell tax 30% to burn directly. Nothing else.

// THIS IS NOT AN INVESTMENT AND ONLY A WEB3 EXPERIMENT
// DO NOT EXPECT ANY RETURNS 

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]

// 
// 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 @openzeppelin/contracts/token/ERC20/[email protected]

// 
// 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 @openzeppelin/contracts/token/ERC20/extensions/[email protected]

// 
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
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);
}


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

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

pragma solidity ^0.8.0;



/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    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}.
     *
     * 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 default value returned by this function, unless
     * it's 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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 += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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 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].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

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


// 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 @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/JustUp.sol

pragma solidity ^0.8.18;
// Just Up.
// Simple. Just maths.
// Sell tax 30% to burn directly. Nothing else.

// THIS IS NOT AN INVESTMENT AND ONLY A WEB3 EXPERIMENT
// DO NOT EXPECT ANY RETURNS 

contract JustUp is ERC20, Ownable {
    string private _name = "JustUP";
    string private _symbol = "JUSTUP";
    uint256 private _supply        = 100_000_000 ether;
    uint256 public maxTxAmount     = 300_000 ether;
    uint256 public maxWalletAmount = 300_000 ether;
    address public DEAD = 0x000000000000000000000000000000000000dEaD;

    mapping(address => bool) public _notax;
    bool progress_swap = false;

    uint256 public sellBurnTax = 30;
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public uniswapV2Pair;

    constructor() ERC20(_name, _symbol) {
        _mint(msg.sender, (_supply));

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
    
        _notax[owner()] = true;
        _notax[msg.sender] = true;
        _notax[DEAD] = true;
        _notax[address(_uniswapV2Router)] = true;
    }

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

        if (!_notax[from] && !_notax[to] ) {
            if (to != uniswapV2Pair) {
                require(amount <= maxTxAmount, "ERC20: transfer amount exceeds the max transaction amount bef");
                require(
                    (amount + balanceOf(to)) <= maxWalletAmount,
                    "ERC20: balance amount exceeded max wallet amount limit"
                );
            }
        }

        uint256 transferAmount = amount;
        if (!_notax[from] && !_notax[to]) {
            if ((from == uniswapV2Pair || to == uniswapV2Pair)) {
                require(amount <= maxTxAmount, "ERC20: transfer amount exceeds the max transaction amount");
                if (
                    uniswapV2Pair == to &&
                    to != address(this)
                ) {
                    
                    uint256 taxSell = sellBurnTax;
                    uint256 feeTokens = (amount * taxSell) / 100;
                    super._transfer(from, DEAD, feeTokens);
                    transferAmount = amount - feeTokens;
                }
            }
        }
        super._transfer(from, to, transferAmount);

    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_notax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":[],"name":"sellBurnTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600681526020017f4a75737455500000000000000000000000000000000000000000000000000000815250600690816200004a919062000b21565b506040518060400160405280600681526020017f4a555354555000000000000000000000000000000000000000000000000000008152506007908162000091919062000b21565b506a52b7d2dcc80cd2e4000000600855693f870857a3e0e3800000600955693f870857a3e0e3800000600a5561dead600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60006101000a81548160ff021916908315150217905550601e600e553480156200012d57600080fd5b50600680546200013d9062000910565b80601f01602080910402602001604051908101604052809291908181526020018280546200016b9062000910565b8015620001bc5780601f106200019057610100808354040283529160200191620001bc565b820191906000526020600020905b8154815290600101906020018083116200019e57829003601f168201915b505050505060078054620001d09062000910565b80601f0160208091040260200160405190810160405280929190818152602001828054620001fe9062000910565b80156200024f5780601f1062000223576101008083540402835291602001916200024f565b820191906000526020600020905b8154815290600101906020018083116200023157829003601f168201915b5050505050816003908162000265919062000b21565b50806004908162000277919062000b21565b5050506200029a6200028e6200063860201b60201c565b6200064060201b60201c565b620002ae336008546200070660201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000347573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036d919062000c72565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb919062000c72565b6040518363ffffffff1660e01b81526004016200041a92919062000cb5565b6020604051808303816000875af11580156200043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000460919062000c72565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000620004b66200087360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000dfd565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000778576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200076f9062000d43565b60405180910390fd5b6200078c600083836200089d60201b60201c565b8060026000828254620007a0919062000d94565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000853919062000de0565b60405180910390a36200086f60008383620008a260201b60201c565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200092957607f821691505b6020821081036200093f576200093e620008e1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200096a565b620009b586836200096a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a02620009fc620009f684620009cd565b620009d7565b620009cd565b9050919050565b6000819050919050565b62000a1e83620009e1565b62000a3662000a2d8262000a09565b84845462000977565b825550505050565b600090565b62000a4d62000a3e565b62000a5a81848462000a13565b505050565b5b8181101562000a825762000a7660008262000a43565b60018101905062000a60565b5050565b601f82111562000ad15762000a9b8162000945565b62000aa6846200095a565b8101602085101562000ab6578190505b62000ace62000ac5856200095a565b83018262000a5f565b50505b505050565b600082821c905092915050565b600062000af66000198460080262000ad6565b1980831691505092915050565b600062000b11838362000ae3565b9150826002028217905092915050565b62000b2c82620008a7565b67ffffffffffffffff81111562000b485762000b47620008b2565b5b62000b54825462000910565b62000b6182828562000a86565b600060209050601f83116001811462000b99576000841562000b84578287015190505b62000b90858262000b03565b86555062000c00565b601f19841662000ba98662000945565b60005b8281101562000bd35784890151825560018201915060208501945060208101905062000bac565b8683101562000bf3578489015162000bef601f89168262000ae3565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c3a8262000c0d565b9050919050565b62000c4c8162000c2d565b811462000c5857600080fd5b50565b60008151905062000c6c8162000c41565b92915050565b60006020828403121562000c8b5762000c8a62000c08565b5b600062000c9b8482850162000c5b565b91505092915050565b62000caf8162000c2d565b82525050565b600060408201905062000ccc600083018562000ca4565b62000cdb602083018462000ca4565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d2b601f8362000ce2565b915062000d388262000cf3565b602082019050919050565b6000602082019050818103600083015262000d5e8162000d1c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000da182620009cd565b915062000dae83620009cd565b925082820190508082111562000dc95762000dc862000d65565b5b92915050565b62000dda81620009cd565b82525050565b600060208201905062000df7600083018462000dcf565b92915050565b6080516120e762000e19600039600061061801526120e76000f3fe60806040526004361061012e5760003560e01c806349bd5a5e116100ab57806395d89b411161006f57806395d89b4114610405578063a457c2d714610430578063a9059cbb1461046d578063aa4bde28146104aa578063dd62ed3e146104d5578063f2fde38b1461051257610135565b806349bd5a5e1461033057806370a082311461035b578063715018a6146103985780638c0b5e22146103af5780638da5cb5b146103da57610135565b80631f3ecf65116100f25780631f3ecf651461022357806323b872dd1461024e5780632c2968351461028b578063313ce567146102c857806339509351146102f357610135565b806303fd2a451461013a57806306fdde0314610165578063095ea7b3146101905780631694505e146101cd57806318160ddd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f61053b565b60405161015c9190611547565b60405180910390f35b34801561017157600080fd5b5061017a610561565b60405161018791906115f2565b60405180910390f35b34801561019c57600080fd5b506101b760048036038101906101b2919061167b565b6105f3565b6040516101c491906116d6565b60405180910390f35b3480156101d957600080fd5b506101e2610616565b6040516101ef9190611750565b60405180910390f35b34801561020457600080fd5b5061020d61063a565b60405161021a919061177a565b60405180910390f35b34801561022f57600080fd5b50610238610644565b604051610245919061177a565b60405180910390f35b34801561025a57600080fd5b5061027560048036038101906102709190611795565b61064a565b60405161028291906116d6565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad91906117e8565b610679565b6040516102bf91906116d6565b60405180910390f35b3480156102d457600080fd5b506102dd610699565b6040516102ea9190611831565b60405180910390f35b3480156102ff57600080fd5b5061031a6004803603810190610315919061167b565b6106a2565b60405161032791906116d6565b60405180910390f35b34801561033c57600080fd5b506103456106d9565b6040516103529190611547565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906117e8565b6106ff565b60405161038f919061177a565b60405180910390f35b3480156103a457600080fd5b506103ad610747565b005b3480156103bb57600080fd5b506103c461075b565b6040516103d1919061177a565b60405180910390f35b3480156103e657600080fd5b506103ef610761565b6040516103fc9190611547565b60405180910390f35b34801561041157600080fd5b5061041a61078b565b60405161042791906115f2565b60405180910390f35b34801561043c57600080fd5b506104576004803603810190610452919061167b565b61081d565b60405161046491906116d6565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f919061167b565b610894565b6040516104a191906116d6565b60405180910390f35b3480156104b657600080fd5b506104bf6108b7565b6040516104cc919061177a565b60405180910390f35b3480156104e157600080fd5b506104fc60048036038101906104f7919061184c565b6108bd565b604051610509919061177a565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906117e8565b610944565b005b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060038054610570906118bb565b80601f016020809104026020016040519081016040528092919081815260200182805461059c906118bb565b80156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b5050505050905090565b6000806105fe6109c7565b905061060b8185856109cf565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b600e5481565b6000806106556109c7565b9050610662858285610b98565b61066d858585610c24565b60019150509392505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60006012905090565b6000806106ad6109c7565b90506106ce8185856106bf85896108bd565b6106c9919061191b565b6109cf565b600191505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61074f611142565b61075960006111c0565b565b60095481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461079a906118bb565b80601f01602080910402602001604051908101604052809291908181526020018280546107c6906118bb565b80156108135780601f106107e857610100808354040283529160200191610813565b820191906000526020600020905b8154815290600101906020018083116107f657829003601f168201915b5050505050905090565b6000806108286109c7565b9050600061083682866108bd565b90508381101561087b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610872906119c1565b60405180910390fd5b61088882868684036109cf565b60019250505092915050565b60008061089f6109c7565b90506108ac818585610c24565b600191505092915050565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61094c611142565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b290611a53565b60405180910390fd5b6109c4816111c0565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590611ae5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490611b77565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b8b919061177a565b60405180910390a3505050565b6000610ba484846108bd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c1e5781811015610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790611be3565b60405180910390fd5b610c1d84848484036109cf565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90611c75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990611d07565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610da65750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610e9f57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610e9e57600954811115610e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3c90611d99565b60405180910390fd5b600a54610e51836106ff565b82610e5c919061191b565b1115610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9490611e2b565b60405180910390fd5b5b5b6000819050600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f485750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561113157600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff65750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561113057600954821115611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790611ebd565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156110c957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561112f576000600e5490506000606482856110e59190611edd565b6110ef9190611f4e565b905061111e86600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611286565b808461112a9190611f7f565b925050505b5b5b61113c848483611286565b50505050565b61114a6109c7565b73ffffffffffffffffffffffffffffffffffffffff16611168610761565b73ffffffffffffffffffffffffffffffffffffffff16146111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b590611fff565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90611c75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90611d07565b60405180910390fd5b61136f8383836114fc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90612091565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e3919061177a565b60405180910390a36114f6848484611501565b50505050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061153182611506565b9050919050565b61154181611526565b82525050565b600060208201905061155c6000830184611538565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561159c578082015181840152602081019050611581565b60008484015250505050565b6000601f19601f8301169050919050565b60006115c482611562565b6115ce818561156d565b93506115de81856020860161157e565b6115e7816115a8565b840191505092915050565b6000602082019050818103600083015261160c81846115b9565b905092915050565b600080fd5b61162281611526565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000819050919050565b61165881611645565b811461166357600080fd5b50565b6000813590506116758161164f565b92915050565b6000806040838503121561169257611691611614565b5b60006116a085828601611630565b92505060206116b185828601611666565b9150509250929050565b60008115159050919050565b6116d0816116bb565b82525050565b60006020820190506116eb60008301846116c7565b92915050565b6000819050919050565b600061171661171161170c84611506565b6116f1565b611506565b9050919050565b6000611728826116fb565b9050919050565b600061173a8261171d565b9050919050565b61174a8161172f565b82525050565b60006020820190506117656000830184611741565b92915050565b61177481611645565b82525050565b600060208201905061178f600083018461176b565b92915050565b6000806000606084860312156117ae576117ad611614565b5b60006117bc86828701611630565b93505060206117cd86828701611630565b92505060406117de86828701611666565b9150509250925092565b6000602082840312156117fe576117fd611614565b5b600061180c84828501611630565b91505092915050565b600060ff82169050919050565b61182b81611815565b82525050565b60006020820190506118466000830184611822565b92915050565b6000806040838503121561186357611862611614565b5b600061187185828601611630565b925050602061188285828601611630565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118d357607f821691505b6020821081036118e6576118e561188c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061192682611645565b915061193183611645565b9250828201905080821115611949576119486118ec565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119ab60258361156d565b91506119b68261194f565b604082019050919050565b600060208201905081810360008301526119da8161199e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611a3d60268361156d565b9150611a48826119e1565b604082019050919050565b60006020820190508181036000830152611a6c81611a30565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611acf60248361156d565b9150611ada82611a73565b604082019050919050565b60006020820190508181036000830152611afe81611ac2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b6160228361156d565b9150611b6c82611b05565b604082019050919050565b60006020820190508181036000830152611b9081611b54565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611bcd601d8361156d565b9150611bd882611b97565b602082019050919050565b60006020820190508181036000830152611bfc81611bc0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611c5f60258361156d565b9150611c6a82611c03565b604082019050919050565b60006020820190508181036000830152611c8e81611c52565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611cf160238361156d565b9150611cfc82611c95565b604082019050919050565b60006020820190508181036000830152611d2081611ce4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473207460008201527f6865206d6178207472616e73616374696f6e20616d6f756e7420626566000000602082015250565b6000611d83603d8361156d565b9150611d8e82611d27565b604082019050919050565b60006020820190508181036000830152611db281611d76565b9050919050565b7f45524332303a2062616c616e636520616d6f756e74206578636565646564206d60008201527f61782077616c6c657420616d6f756e74206c696d697400000000000000000000602082015250565b6000611e1560368361156d565b9150611e2082611db9565b604082019050919050565b60006020820190508181036000830152611e4481611e08565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473207460008201527f6865206d6178207472616e73616374696f6e20616d6f756e7400000000000000602082015250565b6000611ea760398361156d565b9150611eb282611e4b565b604082019050919050565b60006020820190508181036000830152611ed681611e9a565b9050919050565b6000611ee882611645565b9150611ef383611645565b9250828202611f0181611645565b91508282048414831517611f1857611f176118ec565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f5982611645565b9150611f6483611645565b925082611f7457611f73611f1f565b5b828204905092915050565b6000611f8a82611645565b9150611f9583611645565b9250828203905081811115611fad57611fac6118ec565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fe960208361156d565b9150611ff482611fb3565b602082019050919050565b6000602082019050818103600083015261201881611fdc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061207b60268361156d565b91506120868261201f565b604082019050919050565b600060208201905081810360008301526120aa8161206e565b905091905056fea264697066735822122052702136d34a98953bd9079f42e217427304f813b42c4b81528f7c9667a859c264736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806349bd5a5e116100ab57806395d89b411161006f57806395d89b4114610405578063a457c2d714610430578063a9059cbb1461046d578063aa4bde28146104aa578063dd62ed3e146104d5578063f2fde38b1461051257610135565b806349bd5a5e1461033057806370a082311461035b578063715018a6146103985780638c0b5e22146103af5780638da5cb5b146103da57610135565b80631f3ecf65116100f25780631f3ecf651461022357806323b872dd1461024e5780632c2968351461028b578063313ce567146102c857806339509351146102f357610135565b806303fd2a451461013a57806306fdde0314610165578063095ea7b3146101905780631694505e146101cd57806318160ddd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f61053b565b60405161015c9190611547565b60405180910390f35b34801561017157600080fd5b5061017a610561565b60405161018791906115f2565b60405180910390f35b34801561019c57600080fd5b506101b760048036038101906101b2919061167b565b6105f3565b6040516101c491906116d6565b60405180910390f35b3480156101d957600080fd5b506101e2610616565b6040516101ef9190611750565b60405180910390f35b34801561020457600080fd5b5061020d61063a565b60405161021a919061177a565b60405180910390f35b34801561022f57600080fd5b50610238610644565b604051610245919061177a565b60405180910390f35b34801561025a57600080fd5b5061027560048036038101906102709190611795565b61064a565b60405161028291906116d6565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad91906117e8565b610679565b6040516102bf91906116d6565b60405180910390f35b3480156102d457600080fd5b506102dd610699565b6040516102ea9190611831565b60405180910390f35b3480156102ff57600080fd5b5061031a6004803603810190610315919061167b565b6106a2565b60405161032791906116d6565b60405180910390f35b34801561033c57600080fd5b506103456106d9565b6040516103529190611547565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906117e8565b6106ff565b60405161038f919061177a565b60405180910390f35b3480156103a457600080fd5b506103ad610747565b005b3480156103bb57600080fd5b506103c461075b565b6040516103d1919061177a565b60405180910390f35b3480156103e657600080fd5b506103ef610761565b6040516103fc9190611547565b60405180910390f35b34801561041157600080fd5b5061041a61078b565b60405161042791906115f2565b60405180910390f35b34801561043c57600080fd5b506104576004803603810190610452919061167b565b61081d565b60405161046491906116d6565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f919061167b565b610894565b6040516104a191906116d6565b60405180910390f35b3480156104b657600080fd5b506104bf6108b7565b6040516104cc919061177a565b60405180910390f35b3480156104e157600080fd5b506104fc60048036038101906104f7919061184c565b6108bd565b604051610509919061177a565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906117e8565b610944565b005b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060038054610570906118bb565b80601f016020809104026020016040519081016040528092919081815260200182805461059c906118bb565b80156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b5050505050905090565b6000806105fe6109c7565b905061060b8185856109cf565b600191505092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b600e5481565b6000806106556109c7565b9050610662858285610b98565b61066d858585610c24565b60019150509392505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60006012905090565b6000806106ad6109c7565b90506106ce8185856106bf85896108bd565b6106c9919061191b565b6109cf565b600191505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61074f611142565b61075960006111c0565b565b60095481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461079a906118bb565b80601f01602080910402602001604051908101604052809291908181526020018280546107c6906118bb565b80156108135780601f106107e857610100808354040283529160200191610813565b820191906000526020600020905b8154815290600101906020018083116107f657829003601f168201915b5050505050905090565b6000806108286109c7565b9050600061083682866108bd565b90508381101561087b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610872906119c1565b60405180910390fd5b61088882868684036109cf565b60019250505092915050565b60008061089f6109c7565b90506108ac818585610c24565b600191505092915050565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61094c611142565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b290611a53565b60405180910390fd5b6109c4816111c0565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590611ae5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa490611b77565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b8b919061177a565b60405180910390a3505050565b6000610ba484846108bd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c1e5781811015610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790611be3565b60405180910390fd5b610c1d84848484036109cf565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90611c75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990611d07565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610da65750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610e9f57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610e9e57600954811115610e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3c90611d99565b60405180910390fd5b600a54610e51836106ff565b82610e5c919061191b565b1115610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9490611e2b565b60405180910390fd5b5b5b6000819050600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f485750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561113157600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff65750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561113057600954821115611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790611ebd565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156110c957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561112f576000600e5490506000606482856110e59190611edd565b6110ef9190611f4e565b905061111e86600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611286565b808461112a9190611f7f565b925050505b5b5b61113c848483611286565b50505050565b61114a6109c7565b73ffffffffffffffffffffffffffffffffffffffff16611168610761565b73ffffffffffffffffffffffffffffffffffffffff16146111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b590611fff565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90611c75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90611d07565b60405180910390fd5b61136f8383836114fc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90612091565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e3919061177a565b60405180910390a36114f6848484611501565b50505050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061153182611506565b9050919050565b61154181611526565b82525050565b600060208201905061155c6000830184611538565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561159c578082015181840152602081019050611581565b60008484015250505050565b6000601f19601f8301169050919050565b60006115c482611562565b6115ce818561156d565b93506115de81856020860161157e565b6115e7816115a8565b840191505092915050565b6000602082019050818103600083015261160c81846115b9565b905092915050565b600080fd5b61162281611526565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000819050919050565b61165881611645565b811461166357600080fd5b50565b6000813590506116758161164f565b92915050565b6000806040838503121561169257611691611614565b5b60006116a085828601611630565b92505060206116b185828601611666565b9150509250929050565b60008115159050919050565b6116d0816116bb565b82525050565b60006020820190506116eb60008301846116c7565b92915050565b6000819050919050565b600061171661171161170c84611506565b6116f1565b611506565b9050919050565b6000611728826116fb565b9050919050565b600061173a8261171d565b9050919050565b61174a8161172f565b82525050565b60006020820190506117656000830184611741565b92915050565b61177481611645565b82525050565b600060208201905061178f600083018461176b565b92915050565b6000806000606084860312156117ae576117ad611614565b5b60006117bc86828701611630565b93505060206117cd86828701611630565b92505060406117de86828701611666565b9150509250925092565b6000602082840312156117fe576117fd611614565b5b600061180c84828501611630565b91505092915050565b600060ff82169050919050565b61182b81611815565b82525050565b60006020820190506118466000830184611822565b92915050565b6000806040838503121561186357611862611614565b5b600061187185828601611630565b925050602061188285828601611630565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118d357607f821691505b6020821081036118e6576118e561188c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061192682611645565b915061193183611645565b9250828201905080821115611949576119486118ec565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119ab60258361156d565b91506119b68261194f565b604082019050919050565b600060208201905081810360008301526119da8161199e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611a3d60268361156d565b9150611a48826119e1565b604082019050919050565b60006020820190508181036000830152611a6c81611a30565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611acf60248361156d565b9150611ada82611a73565b604082019050919050565b60006020820190508181036000830152611afe81611ac2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b6160228361156d565b9150611b6c82611b05565b604082019050919050565b60006020820190508181036000830152611b9081611b54565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611bcd601d8361156d565b9150611bd882611b97565b602082019050919050565b60006020820190508181036000830152611bfc81611bc0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611c5f60258361156d565b9150611c6a82611c03565b604082019050919050565b60006020820190508181036000830152611c8e81611c52565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611cf160238361156d565b9150611cfc82611c95565b604082019050919050565b60006020820190508181036000830152611d2081611ce4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473207460008201527f6865206d6178207472616e73616374696f6e20616d6f756e7420626566000000602082015250565b6000611d83603d8361156d565b9150611d8e82611d27565b604082019050919050565b60006020820190508181036000830152611db281611d76565b9050919050565b7f45524332303a2062616c616e636520616d6f756e74206578636565646564206d60008201527f61782077616c6c657420616d6f756e74206c696d697400000000000000000000602082015250565b6000611e1560368361156d565b9150611e2082611db9565b604082019050919050565b60006020820190508181036000830152611e4481611e08565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473207460008201527f6865206d6178207472616e73616374696f6e20616d6f756e7400000000000000602082015250565b6000611ea760398361156d565b9150611eb282611e4b565b604082019050919050565b60006020820190508181036000830152611ed681611e9a565b9050919050565b6000611ee882611645565b9150611ef383611645565b9250828202611f0181611645565b91508282048414831517611f1857611f176118ec565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f5982611645565b9150611f6483611645565b925082611f7457611f73611f1f565b5b828204905092915050565b6000611f8a82611645565b9150611f9583611645565b9250828203905081811115611fad57611fac6118ec565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fe960208361156d565b9150611ff482611fb3565b602082019050919050565b6000602082019050818103600083015261201881611fdc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061207b60268361156d565b91506120868261201f565b604082019050919050565b600060208201905081810360008301526120aa8161206e565b905091905056fea264697066735822122052702136d34a98953bd9079f42e217427304f813b42c4b81528f7c9667a859c264736f6c63430008120033

Deployed Bytecode Sourcemap

26558:2580:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26840:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9464:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11824:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27031:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10593:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26993:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12605:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26913:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10435:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13275:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27089:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10764:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2844:103;;;;;;;;;;;;;:::i;:::-;;26734:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2203:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9683:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14016:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11097:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26787:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11353:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3102:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26840:64;;;;;;;;;;;;;:::o;9464:100::-;9518:13;9551:5;9544:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9464:100;:::o;11824:201::-;11907:4;11924:13;11940:12;:10;:12::i;:::-;11924:28;;11963:32;11972:5;11979:7;11988:6;11963:8;:32::i;:::-;12013:4;12006:11;;;11824:201;;;;:::o;27031:51::-;;;:::o;10593:108::-;10654:7;10681:12;;10674:19;;10593:108;:::o;26993:31::-;;;;:::o;12605:261::-;12702:4;12719:15;12737:12;:10;:12::i;:::-;12719:30;;12760:38;12776:4;12782:7;12791:6;12760:15;:38::i;:::-;12809:27;12819:4;12825:2;12829:6;12809:9;:27::i;:::-;12854:4;12847:11;;;12605:261;;;;;:::o;26913:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;10435:93::-;10493:5;10518:2;10511:9;;10435:93;:::o;13275:238::-;13363:4;13380:13;13396:12;:10;:12::i;:::-;13380:28;;13419:64;13428:5;13435:7;13472:10;13444:25;13454:5;13461:7;13444:9;:25::i;:::-;:38;;;;:::i;:::-;13419:8;:64::i;:::-;13501:4;13494:11;;;13275:238;;;;:::o;27089:28::-;;;;;;;;;;;;;:::o;10764:127::-;10838:7;10865:9;:18;10875:7;10865:18;;;;;;;;;;;;;;;;10858:25;;10764:127;;;:::o;2844:103::-;2089:13;:11;:13::i;:::-;2909:30:::1;2936:1;2909:18;:30::i;:::-;2844:103::o:0;26734:46::-;;;;:::o;2203:87::-;2249:7;2276:6;;;;;;;;;;;2269:13;;2203:87;:::o;9683:104::-;9739:13;9772:7;9765:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9683:104;:::o;14016:436::-;14109:4;14126:13;14142:12;:10;:12::i;:::-;14126:28;;14165:24;14192:25;14202:5;14209:7;14192:9;:25::i;:::-;14165:52;;14256:15;14236:16;:35;;14228:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14349:60;14358:5;14365:7;14393:15;14374:16;:34;14349:8;:60::i;:::-;14440:4;14433:11;;;;14016:436;;;;:::o;11097:193::-;11176:4;11193:13;11209:12;:10;:12::i;:::-;11193:28;;11232;11242:5;11249:2;11253:6;11232:9;:28::i;:::-;11278:4;11271:11;;;11097:193;;;;:::o;26787:46::-;;;;:::o;11353:151::-;11442:7;11469:11;:18;11481:5;11469:18;;;;;;;;;;;;;;;:27;11488:7;11469:27;;;;;;;;;;;;;;;;11462:34;;11353:151;;;;:::o;3102:201::-;2089:13;:11;:13::i;:::-;3211:1:::1;3191:22;;:8;:22;;::::0;3183:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3267:28;3286:8;3267:18;:28::i;:::-;3102:201:::0;:::o;745:98::-;798:7;825:10;818:17;;745:98;:::o;18009:346::-;18128:1;18111:19;;:5;:19;;;18103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18209:1;18190:21;;:7;:21;;;18182:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18293:6;18263:11;:18;18275:5;18263:18;;;;;;;;;;;;;;;:27;18282:7;18263:27;;;;;;;;;;;;;;;:36;;;;18331:7;18315:32;;18324:5;18315:32;;;18340:6;18315:32;;;;;;:::i;:::-;;;;;;;;18009:346;;;:::o;18646:419::-;18747:24;18774:25;18784:5;18791:7;18774:9;:25::i;:::-;18747:52;;18834:17;18814:16;:37;18810:248;;18896:6;18876:16;:26;;18868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18980:51;18989:5;18996:7;19024:6;19005:16;:25;18980:8;:51::i;:::-;18810:248;18736:329;18646:419;;;:::o;27654:1446::-;27802:1;27786:18;;:4;:18;;;27778:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27879:1;27865:16;;:2;:16;;;27857:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;27939:6;:12;27946:4;27939:12;;;;;;;;;;;;;;;;;;;;;;;;;27938:13;:28;;;;;27956:6;:10;27963:2;27956:10;;;;;;;;;;;;;;;;;;;;;;;;;27955:11;27938:28;27934:406;;;27994:13;;;;;;;;;;;27988:19;;:2;:19;;;27984:345;;28046:11;;28036:6;:21;;28028:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;28200:15;;28182:13;28192:2;28182:9;:13::i;:::-;28173:6;:22;;;;:::i;:::-;28172:43;;28142:171;;;;;;;;;;;;:::i;:::-;;;;;;;;;27984:345;27934:406;28352:22;28377:6;28352:31;;28399:6;:12;28406:4;28399:12;;;;;;;;;;;;;;;;;;;;;;;;;28398:13;:28;;;;;28416:6;:10;28423:2;28416:10;;;;;;;;;;;;;;;;;;;;;;;;;28415:11;28398:28;28394:645;;;28456:13;;;;;;;;;;;28448:21;;:4;:21;;;:44;;;;28479:13;;;;;;;;;;;28473:19;;:2;:19;;;28448:44;28443:585;;;28532:11;;28522:6;:21;;28514:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;28667:2;28650:19;;:13;;;;;;;;;;;:19;;;:63;;;;;28708:4;28694:19;;:2;:19;;;;28650:63;28624:389;;;28778:15;28796:11;;28778:29;;28830:17;28871:3;28860:7;28851:6;:16;;;;:::i;:::-;28850:24;;;;:::i;:::-;28830:44;;28897:38;28913:4;28919;;;;;;;;;;;28925:9;28897:15;:38::i;:::-;28984:9;28975:6;:18;;;;:::i;:::-;28958:35;;28733:280;;28624:389;28443:585;28394:645;29049:41;29065:4;29071:2;29075:14;29049:15;:41::i;:::-;27767:1333;27654:1446;;;:::o;2368:132::-;2443:12;:10;:12::i;:::-;2432:23;;:7;:5;:7::i;:::-;:23;;;2424:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2368:132::o;3463:191::-;3537:16;3556:6;;;;;;;;;;;3537:25;;3582:8;3573:6;;:17;;;;;;;;;;;;;;;;;;3637:8;3606:40;;3627:8;3606:40;;;;;;;;;;;;3526:128;3463:191;:::o;14922:806::-;15035:1;15019:18;;:4;:18;;;15011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15112:1;15098:16;;:2;:16;;;15090:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15167:38;15188:4;15194:2;15198:6;15167:20;:38::i;:::-;15218:19;15240:9;:15;15250:4;15240:15;;;;;;;;;;;;;;;;15218:37;;15289:6;15274:11;:21;;15266:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15406:6;15392:11;:20;15374:9;:15;15384:4;15374:15;;;;;;;;;;;;;;;:38;;;;15609:6;15592:9;:13;15602:2;15592:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15659:2;15644:26;;15653:4;15644:26;;;15663:6;15644:26;;;;;;:::i;:::-;;;;;;;;15683:37;15703:4;15709:2;15713:6;15683:19;:37::i;:::-;15000:728;14922:806;;;:::o;19665:91::-;;;;:::o;20360:90::-;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:153::-;4221:9;4254:37;4285:5;4254:37;:::i;:::-;4241:50;;4144:153;;;:::o;4303:185::-;4417:64;4475:5;4417:64;:::i;:::-;4412:3;4405:77;4303:185;;:::o;4494:276::-;4614:4;4652:2;4641:9;4637:18;4629:26;;4665:98;4760:1;4749:9;4745:17;4736:6;4665:98;:::i;:::-;4494:276;;;;:::o;4776:118::-;4863:24;4881:5;4863:24;:::i;:::-;4858:3;4851:37;4776:118;;:::o;4900:222::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:71;5112:1;5101:9;5097:17;5088:6;5044:71;:::i;:::-;4900:222;;;;:::o;5128:619::-;5205:6;5213;5221;5270:2;5258:9;5249:7;5245:23;5241:32;5238:119;;;5276:79;;:::i;:::-;5238:119;5396:1;5421:53;5466:7;5457:6;5446:9;5442:22;5421:53;:::i;:::-;5411:63;;5367:117;5523:2;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5494:118;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5128:619;;;;;:::o;5753:329::-;5812:6;5861:2;5849:9;5840:7;5836:23;5832:32;5829:119;;;5867:79;;:::i;:::-;5829:119;5987:1;6012:53;6057:7;6048:6;6037:9;6033:22;6012:53;:::i;:::-;6002:63;;5958:117;5753:329;;;;:::o;6088:86::-;6123:7;6163:4;6156:5;6152:16;6141:27;;6088:86;;;:::o;6180:112::-;6263:22;6279:5;6263:22;:::i;:::-;6258:3;6251:35;6180:112;;:::o;6298:214::-;6387:4;6425:2;6414:9;6410:18;6402:26;;6438:67;6502:1;6491:9;6487:17;6478:6;6438:67;:::i;:::-;6298:214;;;;:::o;6518:474::-;6586:6;6594;6643:2;6631:9;6622:7;6618:23;6614:32;6611:119;;;6649:79;;:::i;:::-;6611:119;6769:1;6794:53;6839:7;6830:6;6819:9;6815:22;6794:53;:::i;:::-;6784:63;;6740:117;6896:2;6922:53;6967:7;6958:6;6947:9;6943:22;6922:53;:::i;:::-;6912:63;;6867:118;6518:474;;;;;:::o;6998:180::-;7046:77;7043:1;7036:88;7143:4;7140:1;7133:15;7167:4;7164:1;7157:15;7184:320;7228:6;7265:1;7259:4;7255:12;7245:22;;7312:1;7306:4;7302:12;7333:18;7323:81;;7389:4;7381:6;7377:17;7367:27;;7323:81;7451:2;7443:6;7440:14;7420:18;7417:38;7414:84;;7470:18;;:::i;:::-;7414:84;7235:269;7184:320;;;:::o;7510:180::-;7558:77;7555:1;7548:88;7655:4;7652:1;7645:15;7679:4;7676:1;7669:15;7696:191;7736:3;7755:20;7773:1;7755:20;:::i;:::-;7750:25;;7789:20;7807:1;7789:20;:::i;:::-;7784:25;;7832:1;7829;7825:9;7818:16;;7853:3;7850:1;7847:10;7844:36;;;7860:18;;:::i;:::-;7844:36;7696:191;;;;:::o;7893:224::-;8033:34;8029:1;8021:6;8017:14;8010:58;8102:7;8097:2;8089:6;8085:15;8078:32;7893:224;:::o;8123:366::-;8265:3;8286:67;8350:2;8345:3;8286:67;:::i;:::-;8279:74;;8362:93;8451:3;8362:93;:::i;:::-;8480:2;8475:3;8471:12;8464:19;;8123:366;;;:::o;8495:419::-;8661:4;8699:2;8688:9;8684:18;8676:26;;8748:9;8742:4;8738:20;8734:1;8723:9;8719:17;8712:47;8776:131;8902:4;8776:131;:::i;:::-;8768:139;;8495:419;;;:::o;8920:225::-;9060:34;9056:1;9048:6;9044:14;9037:58;9129:8;9124:2;9116:6;9112:15;9105:33;8920:225;:::o;9151:366::-;9293:3;9314:67;9378:2;9373:3;9314:67;:::i;:::-;9307:74;;9390:93;9479:3;9390:93;:::i;:::-;9508:2;9503:3;9499:12;9492:19;;9151:366;;;:::o;9523:419::-;9689:4;9727:2;9716:9;9712:18;9704:26;;9776:9;9770:4;9766:20;9762:1;9751:9;9747:17;9740:47;9804:131;9930:4;9804:131;:::i;:::-;9796:139;;9523:419;;;:::o;9948:223::-;10088:34;10084:1;10076:6;10072:14;10065:58;10157:6;10152:2;10144:6;10140:15;10133:31;9948:223;:::o;10177:366::-;10319:3;10340:67;10404:2;10399:3;10340:67;:::i;:::-;10333:74;;10416:93;10505:3;10416:93;:::i;:::-;10534:2;10529:3;10525:12;10518:19;;10177:366;;;:::o;10549:419::-;10715:4;10753:2;10742:9;10738:18;10730:26;;10802:9;10796:4;10792:20;10788:1;10777:9;10773:17;10766:47;10830:131;10956:4;10830:131;:::i;:::-;10822:139;;10549:419;;;:::o;10974:221::-;11114:34;11110:1;11102:6;11098:14;11091:58;11183:4;11178:2;11170:6;11166:15;11159:29;10974:221;:::o;11201:366::-;11343:3;11364:67;11428:2;11423:3;11364:67;:::i;:::-;11357:74;;11440:93;11529:3;11440:93;:::i;:::-;11558:2;11553:3;11549:12;11542:19;;11201:366;;;:::o;11573:419::-;11739:4;11777:2;11766:9;11762:18;11754:26;;11826:9;11820:4;11816:20;11812:1;11801:9;11797:17;11790:47;11854:131;11980:4;11854:131;:::i;:::-;11846:139;;11573:419;;;:::o;11998:179::-;12138:31;12134:1;12126:6;12122:14;12115:55;11998:179;:::o;12183:366::-;12325:3;12346:67;12410:2;12405:3;12346:67;:::i;:::-;12339:74;;12422:93;12511:3;12422:93;:::i;:::-;12540:2;12535:3;12531:12;12524:19;;12183:366;;;:::o;12555:419::-;12721:4;12759:2;12748:9;12744:18;12736:26;;12808:9;12802:4;12798:20;12794:1;12783:9;12779:17;12772:47;12836:131;12962:4;12836:131;:::i;:::-;12828:139;;12555:419;;;:::o;12980:224::-;13120:34;13116:1;13108:6;13104:14;13097:58;13189:7;13184:2;13176:6;13172:15;13165:32;12980:224;:::o;13210:366::-;13352:3;13373:67;13437:2;13432:3;13373:67;:::i;:::-;13366:74;;13449:93;13538:3;13449:93;:::i;:::-;13567:2;13562:3;13558:12;13551:19;;13210:366;;;:::o;13582:419::-;13748:4;13786:2;13775:9;13771:18;13763:26;;13835:9;13829:4;13825:20;13821:1;13810:9;13806:17;13799:47;13863:131;13989:4;13863:131;:::i;:::-;13855:139;;13582:419;;;:::o;14007:222::-;14147:34;14143:1;14135:6;14131:14;14124:58;14216:5;14211:2;14203:6;14199:15;14192:30;14007:222;:::o;14235:366::-;14377:3;14398:67;14462:2;14457:3;14398:67;:::i;:::-;14391:74;;14474:93;14563:3;14474:93;:::i;:::-;14592:2;14587:3;14583:12;14576:19;;14235:366;;;:::o;14607:419::-;14773:4;14811:2;14800:9;14796:18;14788:26;;14860:9;14854:4;14850:20;14846:1;14835:9;14831:17;14824:47;14888:131;15014:4;14888:131;:::i;:::-;14880:139;;14607:419;;;:::o;15032:248::-;15172:34;15168:1;15160:6;15156:14;15149:58;15241:31;15236:2;15228:6;15224:15;15217:56;15032:248;:::o;15286:366::-;15428:3;15449:67;15513:2;15508:3;15449:67;:::i;:::-;15442:74;;15525:93;15614:3;15525:93;:::i;:::-;15643:2;15638:3;15634:12;15627:19;;15286:366;;;:::o;15658:419::-;15824:4;15862:2;15851:9;15847:18;15839:26;;15911:9;15905:4;15901:20;15897:1;15886:9;15882:17;15875:47;15939:131;16065:4;15939:131;:::i;:::-;15931:139;;15658:419;;;:::o;16083:241::-;16223:34;16219:1;16211:6;16207:14;16200:58;16292:24;16287:2;16279:6;16275:15;16268:49;16083:241;:::o;16330:366::-;16472:3;16493:67;16557:2;16552:3;16493:67;:::i;:::-;16486:74;;16569:93;16658:3;16569:93;:::i;:::-;16687:2;16682:3;16678:12;16671:19;;16330:366;;;:::o;16702:419::-;16868:4;16906:2;16895:9;16891:18;16883:26;;16955:9;16949:4;16945:20;16941:1;16930:9;16926:17;16919:47;16983:131;17109:4;16983:131;:::i;:::-;16975:139;;16702:419;;;:::o;17127:244::-;17267:34;17263:1;17255:6;17251:14;17244:58;17336:27;17331:2;17323:6;17319:15;17312:52;17127:244;:::o;17377:366::-;17519:3;17540:67;17604:2;17599:3;17540:67;:::i;:::-;17533:74;;17616:93;17705:3;17616:93;:::i;:::-;17734:2;17729:3;17725:12;17718:19;;17377:366;;;:::o;17749:419::-;17915:4;17953:2;17942:9;17938:18;17930:26;;18002:9;17996:4;17992:20;17988:1;17977:9;17973:17;17966:47;18030:131;18156:4;18030:131;:::i;:::-;18022:139;;17749:419;;;:::o;18174:410::-;18214:7;18237:20;18255:1;18237:20;:::i;:::-;18232:25;;18271:20;18289:1;18271:20;:::i;:::-;18266:25;;18326:1;18323;18319:9;18348:30;18366:11;18348:30;:::i;:::-;18337:41;;18527:1;18518:7;18514:15;18511:1;18508:22;18488:1;18481:9;18461:83;18438:139;;18557:18;;:::i;:::-;18438:139;18222:362;18174:410;;;;:::o;18590:180::-;18638:77;18635:1;18628:88;18735:4;18732:1;18725:15;18759:4;18756:1;18749:15;18776:185;18816:1;18833:20;18851:1;18833:20;:::i;:::-;18828:25;;18867:20;18885:1;18867:20;:::i;:::-;18862:25;;18906:1;18896:35;;18911:18;;:::i;:::-;18896:35;18953:1;18950;18946:9;18941:14;;18776:185;;;;:::o;18967:194::-;19007:4;19027:20;19045:1;19027:20;:::i;:::-;19022:25;;19061:20;19079:1;19061:20;:::i;:::-;19056:25;;19105:1;19102;19098:9;19090:17;;19129:1;19123:4;19120:11;19117:37;;;19134:18;;:::i;:::-;19117:37;18967:194;;;;:::o;19167:182::-;19307:34;19303:1;19295:6;19291:14;19284:58;19167:182;:::o;19355:366::-;19497:3;19518:67;19582:2;19577:3;19518:67;:::i;:::-;19511:74;;19594:93;19683:3;19594:93;:::i;:::-;19712:2;19707:3;19703:12;19696:19;;19355:366;;;:::o;19727:419::-;19893:4;19931:2;19920:9;19916:18;19908:26;;19980:9;19974:4;19970:20;19966:1;19955:9;19951:17;19944:47;20008:131;20134:4;20008:131;:::i;:::-;20000:139;;19727:419;;;:::o;20152:225::-;20292:34;20288:1;20280:6;20276:14;20269:58;20361:8;20356:2;20348:6;20344:15;20337:33;20152:225;:::o;20383:366::-;20525:3;20546:67;20610:2;20605:3;20546:67;:::i;:::-;20539:74;;20622:93;20711:3;20622:93;:::i;:::-;20740:2;20735:3;20731:12;20724:19;;20383:366;;;:::o;20755:419::-;20921:4;20959:2;20948:9;20944:18;20936:26;;21008:9;21002:4;20998:20;20994:1;20983:9;20979:17;20972:47;21036:131;21162:4;21036:131;:::i;:::-;21028:139;;20755:419;;;:::o

Swarm Source

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