ETH Price: $2,897.97 (-4.05%)
Gas: 5 Gwei

Token

FOMO (FOMO)
 

Overview

Max Total Supply

50,000,000,000 FOMO

Holders

1,519

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
FOMO

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

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

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

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

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)

pragma solidity ^0.8.0;


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

    function WETH() external pure returns (address);

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

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

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


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



/**
 * @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 Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

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

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

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

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




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

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

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

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

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

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

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

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



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





/**
 * @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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * 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}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

        _totalSupply += amount;
        _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;
        }
        _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 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 {}
}


//Telegram:https://t.me/FoMo_EthToken
//twitter:https://twitter.com/FomoEthOfficial
contract FOMO is Ownable, ERC20 {
    bool public limited;
    bool public enableWhitel;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;
    mapping(address => bool) public whitelists;

    IRouter public router;
    IFactory public factory;


    constructor() ERC20("FOMO", "FOMO") {
        uint256 _totalSupply = 5 * 10**10 * 10**18;
        _mint(msg.sender, _totalSupply);

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        uniswapV2Pair = _pair;

        enableWhitel = true;
        whitelists[msg.sender] = true;
        whitelists[address(router)] = true;
        whitelists[uniswapV2Pair] = true;
    }

    function settwhitelist(address[] memory accounts, bool _iswhitelisting) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            whitelists[accounts[i]] = _iswhitelisting;
        }
    }

    function whitelist(address _address, bool _iswhitelisting) external onlyOwner {
        whitelists[_address] = _iswhitelisting;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function setblacklists(address[] memory accounts, bool _isBlacklisting) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            blacklists[accounts[i]] = _isBlacklisting;
        }
    }

    function setEnableWhitel(bool isEnableWhitel)  external onlyOwner {
        enableWhitel = isEnableWhitel;
    }

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;

        if(_uniswapV2Pair != uniswapV2Pair && _uniswapV2Pair != address(0))
        {
            uniswapV2Pair = _uniswapV2Pair;
            whitelists[uniswapV2Pair] = true;
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");

        if(enableWhitel) {
            require(whitelists[from]==true && whitelists[to]==true, "whitelist");
        }

        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "trading is not started");
            return;
        }

        if (limited && from == uniswapV2Pair) {
            require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid");
        }
    }


    function multiTransfer(address from, address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
        require(addresses.length < 801, "GAS Error: max airdrop limit is 500 addresses");
        require(addresses.length == amounts.length, "Mismatch between Address and token count");

        uint256 sum = 0;
        for (uint256 i = 0; i < addresses.length; i++) {
            sum = sum + amounts[i];
        }

        require(balanceOf(from) >= sum, "Not enough amount in wallet");
        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i]);
        }
    }

    function multiTransfer_fixed(address from, address[] calldata addresses, uint256 amount) external onlyOwner {
        require(addresses.length < 2001, "GAS Error: max airdrop limit is 2000 addresses");

        uint256 sum = amount * addresses.length;
        require(balanceOf(from) >= sum, "Not enough amount in wallet");

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amount);
        }
    }
}

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":[{"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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"enableWhitel","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IFactory","name":"","type":"address"}],"stateMutability":"view","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":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnableWhitel","type":"bool"}],"name":"setEnableWhitel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"setblacklists","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_iswhitelisting","type":"bool"}],"name":"settwhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_iswhitelisting","type":"bool"}],"name":"whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5060405180604001604052806004815260200163464f4d4f60e01b81525060405180604001604052806004815260200163464f4d4f60e01b81525062000066620000606200029560201b60201c565b62000299565b6004620000748382620006f8565b506005620000838282620006f8565b506ba18f07d736b90be5500000009150620000a190503382620002e9565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001219190620007c4565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001959190620007c4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002099190620007c4565b600c80546001600160a01b039485166001600160a01b031991821617825560098054938616939091169290921782556006805461ff001916610100179055336000908152600b6020526040808220805460ff19908116600190811790925593548716835281832080548516821790559354909516815293909320805490931617909155506200081e9050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620003455760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200035360008383620003e0565b8060036000828254620003679190620007f6565b90915550506001600160a01b0382166000908152600160205260408120805483929062000396908490620007f6565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166000908152600a602052604090205460ff161580156200042357506001600160a01b0383166000908152600a602052604090205460ff16155b6200045f5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016200033c565b600654610100900460ff1615620004f5576001600160a01b0383166000908152600b602052604090205460ff1615156001148015620004bb57506001600160a01b0382166000908152600b602052604090205460ff1615156001145b620004f55760405162461bcd60e51b81526020600482015260096024820152681dda1a5d195b1a5cdd60ba1b60448201526064016200033c565b6009546001600160a01b031662000583576000546001600160a01b03848116911614806200053057506000546001600160a01b038381169116145b6200057e5760405162461bcd60e51b815260206004820152601660248201527f74726164696e67206973206e6f7420737461727465640000000000000000000060448201526064016200033c565b505050565b60065460ff168015620005a357506009546001600160a01b038481169116145b156200057e5760075481620005c3846200063960201b62000a5e1760201c565b620005cf9190620007f6565b1115801562000602575060085481620005f3846200063960201b62000a5e1760201c565b620005ff9190620007f6565b10155b6200057e5760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b60448201526064016200033c565b6001600160a01b031660009081526001602052604090205490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200067f57607f821691505b602082108103620006a057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200057e57600081815260208120601f850160051c81016020861015620006cf5750805b601f850160051c820191505b81811015620006f057828155600101620006db565b505050505050565b81516001600160401b0381111562000714576200071462000654565b6200072c816200072584546200066a565b84620006a6565b602080601f8311600181146200076457600084156200074b5750858301515b600019600386901b1c1916600185901b178555620006f0565b600085815260208120601f198616915b82811015620007955788860151825594840194600190910190840162000774565b5085821015620007b45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620007d757600080fd5b81516001600160a01b0381168114620007ef57600080fd5b9392505050565b808201808211156200081857634e487b7160e01b600052601160045260246000fd5b92915050565b61180f806200082e6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063715018a61161010f578063abdd77dd116100a2578063dd62ed3e11610071578063dd62ed3e14610408578063f2fde38b14610441578063f59c370814610454578063f887ea401461046757600080fd5b8063abdd77dd146103bc578063ae1344ef146103cf578063c45a0155146103e2578063d59093f6146103f557600080fd5b806395c45729116100de57806395c457291461037c57806395d89b411461038e578063a457c2d714610396578063a9059cbb146103a957600080fd5b8063715018a61461034d578063860a32ec1461035557806389f9a1d3146103625780638da5cb5b1461036b57600080fd5b806323b872dd116101875780633aa633aa116101565780633aa633aa146102e9578063404e5129146102fc57806349bd5a5e1461030f57806370a082311461033a57600080fd5b806323b872dd146102a1578063313ce567146102b4578063335f6a43146102c357806339509351146102d657600080fd5b806318160ddd116101c357806318160ddd1461024e5780631ab99e12146102605780631ca0a28d146102695780631e7be2101461027e57600080fd5b806306fdde03146101ea578063095ea7b31461020857806316c021291461022b575b600080fd5b6101f261047a565b6040516101ff919061132b565b60405180910390f35b61021b610216366004611395565b61050c565b60405190151581526020016101ff565b61021b6102393660046113bf565b600a6020526000908152604090205460ff1681565b6003545b6040519081526020016101ff565b61025260085481565b61027c61027736600461142d565b610523565b005b61021b61028c3660046113bf565b600b6020526000908152604090205460ff1681565b61021b6102af3660046114ae565b610729565b604051601281526020016101ff565b61027c6102d13660046114ea565b6107d3565b61021b6102e4366004611395565b610921565b61027c6102f7366004611554565b61095d565b61027c61030a366004611596565b610a09565b600954610322906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b6102526103483660046113bf565b610a5e565b61027c610a79565b60065461021b9060ff1681565b61025260075481565b6000546001600160a01b0316610322565b60065461021b90610100900460ff1681565b6101f2610aaf565b61021b6103a4366004611395565b610abe565b61021b6103b7366004611395565b610b57565b61027c6103ca3660046115df565b610b64565b61027c6103dd3660046115df565b610bfa565b600d54610322906001600160a01b031681565b61027c6104033660046116b6565b610c8b565b6102526104163660046116d1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61027c61044f3660046113bf565b610ccf565b61027c610462366004611596565b610d6a565b600c54610322906001600160a01b031681565b606060048054610489906116fb565b80601f01602080910402602001604051908101604052809291908181526020018280546104b5906116fb565b80156105025780601f106104d757610100808354040283529160200191610502565b820191906000526020600020905b8154815290600101906020018083116104e557829003601f168201915b5050505050905090565b6000610519338484610dbf565b5060015b92915050565b6000546001600160a01b031633146105565760405162461bcd60e51b815260040161054d90611735565b60405180910390fd5b61032183106105bd5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b606482015260840161054d565b82811461061d5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b606482015260840161054d565b6000805b848110156106615783838281811061063b5761063b61176a565b905060200201358261064d9190611796565b915080610659816117a9565b915050610621565b508061066c87610a5e565b10156106ba5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000604482015260640161054d565b60005b848110156107205761070e878787848181106106db576106db61176a565b90506020020160208101906106f091906113bf565b8686858181106107025761070261176a565b90506020020135610ee3565b80610718816117a9565b9150506106bd565b50505050505050565b6000610736848484610ee3565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107bb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161054d565b6107c88533858403610dbf565b506001949350505050565b6000546001600160a01b031633146107fd5760405162461bcd60e51b815260040161054d90611735565b6107d182106108655760405162461bcd60e51b815260206004820152602e60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526d323030302061646472657373657360901b606482015260840161054d565b600061087183836117c2565b90508061087d86610a5e565b10156108cb5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000604482015260640161054d565b60005b8381101561091957610907868686848181106108ec576108ec61176a565b905060200201602081019061090191906113bf565b85610ee3565b80610911816117a9565b9150506108ce565b505050505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610519918590610958908690611796565b610dbf565b6000546001600160a01b031633146109875760405162461bcd60e51b815260040161054d90611735565b6006805460ff1916851515179055600782905560088190556009546001600160a01b03908116908416148015906109c657506001600160a01b03831615155b15610a0357600980546001600160a01b0319166001600160a01b0385169081179091556000908152600b60205260409020805460ff191660011790555b50505050565b6000546001600160a01b03163314610a335760405162461bcd60e51b815260040161054d90611735565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b03163314610aa35760405162461bcd60e51b815260040161054d90611735565b610aad60006110bc565b565b606060058054610489906116fb565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610b405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161054d565b610b4d3385858403610dbf565b5060019392505050565b6000610519338484610ee3565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161054d90611735565b60005b8251811015610bf55781600b6000858481518110610bb157610bb161176a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bed816117a9565b915050610b91565b505050565b6000546001600160a01b03163314610c245760405162461bcd60e51b815260040161054d90611735565b60005b8251811015610bf55781600a6000858481518110610c4757610c4761176a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c83816117a9565b915050610c27565b6000546001600160a01b03163314610cb55760405162461bcd60e51b815260040161054d90611735565b600680549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610cf95760405162461bcd60e51b815260040161054d90611735565b6001600160a01b038116610d5e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161054d565b610d67816110bc565b50565b6000546001600160a01b03163314610d945760405162461bcd60e51b815260040161054d90611735565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b038316610e215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054d565b6001600160a01b038216610e825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f475760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054d565b6001600160a01b038216610fa95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054d565b610fb483838361110c565b6001600160a01b0383166000908152600160205260409020548181101561102c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161054d565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290611063908490611796565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110af91815260200190565b60405180910390a3610a03565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000908152600a602052604090205460ff1615801561114e57506001600160a01b0383166000908152600a602052604090205460ff16155b6111885760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015260640161054d565b600654610100900460ff161561121a576001600160a01b0383166000908152600b602052604090205460ff16151560011480156111e257506001600160a01b0382166000908152600b602052604090205460ff1615156001145b61121a5760405162461bcd60e51b81526020600482015260096024820152681dda1a5d195b1a5cdd60ba1b604482015260640161054d565b6009546001600160a01b0316611298576000546001600160a01b038481169116148061125357506000546001600160a01b038381169116145b610bf55760405162461bcd60e51b81526020600482015260166024820152751d1c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b604482015260640161054d565b60065460ff1680156112b757506009546001600160a01b038481169116145b15610bf557600754816112c984610a5e565b6112d39190611796565b111580156112f65750600854816112e984610a5e565b6112f39190611796565b10155b610bf55760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b604482015260640161054d565b600060208083528351808285015260005b818110156113585785810183015185820160400152820161133c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461139057600080fd5b919050565b600080604083850312156113a857600080fd5b6113b183611379565b946020939093013593505050565b6000602082840312156113d157600080fd5b6113da82611379565b9392505050565b60008083601f8401126113f357600080fd5b50813567ffffffffffffffff81111561140b57600080fd5b6020830191508360208260051b850101111561142657600080fd5b9250929050565b60008060008060006060868803121561144557600080fd5b61144e86611379565b9450602086013567ffffffffffffffff8082111561146b57600080fd5b61147789838a016113e1565b9096509450604088013591508082111561149057600080fd5b5061149d888289016113e1565b969995985093965092949392505050565b6000806000606084860312156114c357600080fd5b6114cc84611379565b92506114da60208501611379565b9150604084013590509250925092565b6000806000806060858703121561150057600080fd5b61150985611379565b9350602085013567ffffffffffffffff81111561152557600080fd5b611531878288016113e1565b9598909750949560400135949350505050565b8035801515811461139057600080fd5b6000806000806080858703121561156a57600080fd5b61157385611544565b935061158160208601611379565b93969395505050506040820135916060013590565b600080604083850312156115a957600080fd5b6115b283611379565b91506115c060208401611544565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115f257600080fd5b823567ffffffffffffffff8082111561160a57600080fd5b818501915085601f83011261161e57600080fd5b8135602082821115611632576116326115c9565b8160051b604051601f19603f83011681018181108682111715611657576116576115c9565b60405292835281830193508481018201928984111561167557600080fd5b948201945b8386101561169a5761168b86611379565b8552948201949382019361167a565b96506116a99050878201611544565b9450505050509250929050565b6000602082840312156116c857600080fd5b6113da82611544565b600080604083850312156116e457600080fd5b6116ed83611379565b91506115c060208401611379565b600181811c9082168061170f57607f821691505b60208210810361172f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561051d5761051d611780565b6000600182016117bb576117bb611780565b5060010190565b808202811582820484141761051d5761051d61178056fea26469706673582212200cb7ead923ec413c60a1e615ab17e5ee34ae88fa47f8351c9ba4060af7b59d1764736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063715018a61161010f578063abdd77dd116100a2578063dd62ed3e11610071578063dd62ed3e14610408578063f2fde38b14610441578063f59c370814610454578063f887ea401461046757600080fd5b8063abdd77dd146103bc578063ae1344ef146103cf578063c45a0155146103e2578063d59093f6146103f557600080fd5b806395c45729116100de57806395c457291461037c57806395d89b411461038e578063a457c2d714610396578063a9059cbb146103a957600080fd5b8063715018a61461034d578063860a32ec1461035557806389f9a1d3146103625780638da5cb5b1461036b57600080fd5b806323b872dd116101875780633aa633aa116101565780633aa633aa146102e9578063404e5129146102fc57806349bd5a5e1461030f57806370a082311461033a57600080fd5b806323b872dd146102a1578063313ce567146102b4578063335f6a43146102c357806339509351146102d657600080fd5b806318160ddd116101c357806318160ddd1461024e5780631ab99e12146102605780631ca0a28d146102695780631e7be2101461027e57600080fd5b806306fdde03146101ea578063095ea7b31461020857806316c021291461022b575b600080fd5b6101f261047a565b6040516101ff919061132b565b60405180910390f35b61021b610216366004611395565b61050c565b60405190151581526020016101ff565b61021b6102393660046113bf565b600a6020526000908152604090205460ff1681565b6003545b6040519081526020016101ff565b61025260085481565b61027c61027736600461142d565b610523565b005b61021b61028c3660046113bf565b600b6020526000908152604090205460ff1681565b61021b6102af3660046114ae565b610729565b604051601281526020016101ff565b61027c6102d13660046114ea565b6107d3565b61021b6102e4366004611395565b610921565b61027c6102f7366004611554565b61095d565b61027c61030a366004611596565b610a09565b600954610322906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b6102526103483660046113bf565b610a5e565b61027c610a79565b60065461021b9060ff1681565b61025260075481565b6000546001600160a01b0316610322565b60065461021b90610100900460ff1681565b6101f2610aaf565b61021b6103a4366004611395565b610abe565b61021b6103b7366004611395565b610b57565b61027c6103ca3660046115df565b610b64565b61027c6103dd3660046115df565b610bfa565b600d54610322906001600160a01b031681565b61027c6104033660046116b6565b610c8b565b6102526104163660046116d1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61027c61044f3660046113bf565b610ccf565b61027c610462366004611596565b610d6a565b600c54610322906001600160a01b031681565b606060048054610489906116fb565b80601f01602080910402602001604051908101604052809291908181526020018280546104b5906116fb565b80156105025780601f106104d757610100808354040283529160200191610502565b820191906000526020600020905b8154815290600101906020018083116104e557829003601f168201915b5050505050905090565b6000610519338484610dbf565b5060015b92915050565b6000546001600160a01b031633146105565760405162461bcd60e51b815260040161054d90611735565b60405180910390fd5b61032183106105bd5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b606482015260840161054d565b82811461061d5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b606482015260840161054d565b6000805b848110156106615783838281811061063b5761063b61176a565b905060200201358261064d9190611796565b915080610659816117a9565b915050610621565b508061066c87610a5e565b10156106ba5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000604482015260640161054d565b60005b848110156107205761070e878787848181106106db576106db61176a565b90506020020160208101906106f091906113bf565b8686858181106107025761070261176a565b90506020020135610ee3565b80610718816117a9565b9150506106bd565b50505050505050565b6000610736848484610ee3565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107bb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161054d565b6107c88533858403610dbf565b506001949350505050565b6000546001600160a01b031633146107fd5760405162461bcd60e51b815260040161054d90611735565b6107d182106108655760405162461bcd60e51b815260206004820152602e60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526d323030302061646472657373657360901b606482015260840161054d565b600061087183836117c2565b90508061087d86610a5e565b10156108cb5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000604482015260640161054d565b60005b8381101561091957610907868686848181106108ec576108ec61176a565b905060200201602081019061090191906113bf565b85610ee3565b80610911816117a9565b9150506108ce565b505050505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610519918590610958908690611796565b610dbf565b6000546001600160a01b031633146109875760405162461bcd60e51b815260040161054d90611735565b6006805460ff1916851515179055600782905560088190556009546001600160a01b03908116908416148015906109c657506001600160a01b03831615155b15610a0357600980546001600160a01b0319166001600160a01b0385169081179091556000908152600b60205260409020805460ff191660011790555b50505050565b6000546001600160a01b03163314610a335760405162461bcd60e51b815260040161054d90611735565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b03163314610aa35760405162461bcd60e51b815260040161054d90611735565b610aad60006110bc565b565b606060058054610489906116fb565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610b405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161054d565b610b4d3385858403610dbf565b5060019392505050565b6000610519338484610ee3565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161054d90611735565b60005b8251811015610bf55781600b6000858481518110610bb157610bb161176a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bed816117a9565b915050610b91565b505050565b6000546001600160a01b03163314610c245760405162461bcd60e51b815260040161054d90611735565b60005b8251811015610bf55781600a6000858481518110610c4757610c4761176a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c83816117a9565b915050610c27565b6000546001600160a01b03163314610cb55760405162461bcd60e51b815260040161054d90611735565b600680549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610cf95760405162461bcd60e51b815260040161054d90611735565b6001600160a01b038116610d5e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161054d565b610d67816110bc565b50565b6000546001600160a01b03163314610d945760405162461bcd60e51b815260040161054d90611735565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b038316610e215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054d565b6001600160a01b038216610e825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f475760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054d565b6001600160a01b038216610fa95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054d565b610fb483838361110c565b6001600160a01b0383166000908152600160205260409020548181101561102c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161054d565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290611063908490611796565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110af91815260200190565b60405180910390a3610a03565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000908152600a602052604090205460ff1615801561114e57506001600160a01b0383166000908152600a602052604090205460ff16155b6111885760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015260640161054d565b600654610100900460ff161561121a576001600160a01b0383166000908152600b602052604090205460ff16151560011480156111e257506001600160a01b0382166000908152600b602052604090205460ff1615156001145b61121a5760405162461bcd60e51b81526020600482015260096024820152681dda1a5d195b1a5cdd60ba1b604482015260640161054d565b6009546001600160a01b0316611298576000546001600160a01b038481169116148061125357506000546001600160a01b038381169116145b610bf55760405162461bcd60e51b81526020600482015260166024820152751d1c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b604482015260640161054d565b60065460ff1680156112b757506009546001600160a01b038481169116145b15610bf557600754816112c984610a5e565b6112d39190611796565b111580156112f65750600854816112e984610a5e565b6112f39190611796565b10155b610bf55760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b604482015260640161054d565b600060208083528351808285015260005b818110156113585785810183015185820160400152820161133c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461139057600080fd5b919050565b600080604083850312156113a857600080fd5b6113b183611379565b946020939093013593505050565b6000602082840312156113d157600080fd5b6113da82611379565b9392505050565b60008083601f8401126113f357600080fd5b50813567ffffffffffffffff81111561140b57600080fd5b6020830191508360208260051b850101111561142657600080fd5b9250929050565b60008060008060006060868803121561144557600080fd5b61144e86611379565b9450602086013567ffffffffffffffff8082111561146b57600080fd5b61147789838a016113e1565b9096509450604088013591508082111561149057600080fd5b5061149d888289016113e1565b969995985093965092949392505050565b6000806000606084860312156114c357600080fd5b6114cc84611379565b92506114da60208501611379565b9150604084013590509250925092565b6000806000806060858703121561150057600080fd5b61150985611379565b9350602085013567ffffffffffffffff81111561152557600080fd5b611531878288016113e1565b9598909750949560400135949350505050565b8035801515811461139057600080fd5b6000806000806080858703121561156a57600080fd5b61157385611544565b935061158160208601611379565b93969395505050506040820135916060013590565b600080604083850312156115a957600080fd5b6115b283611379565b91506115c060208401611544565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115f257600080fd5b823567ffffffffffffffff8082111561160a57600080fd5b818501915085601f83011261161e57600080fd5b8135602082821115611632576116326115c9565b8160051b604051601f19603f83011681018181108682111715611657576116576115c9565b60405292835281830193508481018201928984111561167557600080fd5b948201945b8386101561169a5761168b86611379565b8552948201949382019361167a565b96506116a99050878201611544565b9450505050509250929050565b6000602082840312156116c857600080fd5b6113da82611544565b600080604083850312156116e457600080fd5b6116ed83611379565b91506115c060208401611379565b600181811c9082168061170f57607f821691505b60208210810361172f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561051d5761051d611780565b6000600182016117bb576117bb611780565b5060010190565b808202811582820484141761051d5761051d61178056fea26469706673582212200cb7ead923ec413c60a1e615ab17e5ee34ae88fa47f8351c9ba4060af7b59d1764736f6c63430008120033

Deployed Bytecode Sourcemap

19657:4060:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9604:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11771:169;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;11771:169:0;1004:187:1;19864:42:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10724:108;10812:12;;10724:108;;;1533:25:1;;;1521:2;1506:18;10724:108:0;1387:177:1;19791:31:0;;;;;;22604:645;;;;;;:::i;:::-;;:::i;:::-;;19913:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12422:492;;;;;;:::i;:::-;;:::i;10566:93::-;;;10649:2;3268:36:1;;3256:2;3241:18;10566:93:0;3126:184:1;23257:457:0;;;;;;:::i;:::-;;:::i;13323:215::-;;;;;;:::i;:::-;;:::i;21442:453::-;;;;;;:::i;:::-;;:::i;20946:135::-;;;;;;:::i;:::-;;:::i;19829:28::-;;;;;-1:-1:-1;;;;;19829:28:0;;;;;;-1:-1:-1;;;;;4883:32:1;;;4865:51;;4853:2;4838:18;19829:28:0;4719:203:1;10895:127:0;;;;;;:::i;:::-;;:::i;3498:103::-;;;:::i;19696:19::-;;;;;;;;;19753:31;;;;;;2847:87;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;2847:87;;19722:24;;;;;;;;;;;;9823:104;;;:::i;14041:413::-;;;;;;:::i;:::-;;:::i;11235:175::-;;;;;;:::i;:::-;;:::i;20572:223::-;;;;;;:::i;:::-;;:::i;21089:::-;;;;;;:::i;:::-;;:::i;19992:23::-;;;;;-1:-1:-1;;;;;19992:23:0;;;21320:114;;;;;;:::i;:::-;;:::i;11473:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11589:18:0;;;11562:7;11589:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11473:151;3756:201;;;;;;:::i;:::-;;:::i;20803:135::-;;;;;;:::i;:::-;;:::i;19964:21::-;;;;;-1:-1:-1;;;;;19964:21:0;;;9604:100;9658:13;9691:5;9684:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9604:100;:::o;11771:169::-;11854:4;11871:39;1790:10;11894:7;11903:6;11871:8;:39::i;:::-;-1:-1:-1;11928:4:0;11771:169;;;;;:::o;22604:645::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;;;;;;;;;22756:3:::1;22737:22:::0;::::1;22729:80;;;::::0;-1:-1:-1;;;22729:80:0;;8098:2:1;22729:80:0::1;::::0;::::1;8080:21:1::0;8137:2;8117:18;;;8110:30;8176:34;8156:18;;;8149:62;-1:-1:-1;;;8227:18:1;;;8220:43;8280:19;;22729:80:0::1;7896:409:1::0;22729:80:0::1;22828:34:::0;;::::1;22820:87;;;::::0;-1:-1:-1;;;22820:87:0;;8512:2:1;22820:87:0::1;::::0;::::1;8494:21:1::0;8551:2;8531:18;;;8524:30;8590:34;8570:18;;;8563:62;-1:-1:-1;;;8641:18:1;;;8634:38;8689:19;;22820:87:0::1;8310:404:1::0;22820:87:0::1;22920:11;22951:9:::0;22946:96:::1;22966:20:::0;;::::1;22946:96;;;23020:7;;23028:1;23020:10;;;;;;;:::i;:::-;;;;;;;23014:3;:16;;;;:::i;:::-;23008:22:::0;-1:-1:-1;22988:3:0;::::1;::::0;::::1;:::i;:::-;;;;22946:96;;;;23081:3;23062:15;23072:4;23062:9;:15::i;:::-;:22;;23054:62;;;::::0;-1:-1:-1;;;23054:62:0;;9455:2:1;23054:62:0::1;::::0;::::1;9437:21:1::0;9494:2;9474:18;;;9467:30;9533:29;9513:18;;;9506:57;9580:18;;23054:62:0::1;9253:351:1::0;23054:62:0::1;23132:9;23127:115;23147:20:::0;;::::1;23127:115;;;23189:41;23199:4;23205:9;;23215:1;23205:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23219:7;;23227:1;23219:10;;;;;;;:::i;:::-;;;;;;;23189:9;:41::i;:::-;23169:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23127:115;;;;22718:531;22604:645:::0;;;;;:::o;12422:492::-;12562:4;12579:36;12589:6;12597:9;12608:6;12579:9;:36::i;:::-;-1:-1:-1;;;;;12655:19:0;;12628:24;12655:19;;;:11;:19;;;;;;;;1790:10;12655:33;;;;;;;;12707:26;;;;12699:79;;;;-1:-1:-1;;;12699:79:0;;9811:2:1;12699:79:0;;;9793:21:1;9850:2;9830:18;;;9823:30;9889:34;9869:18;;;9862:62;-1:-1:-1;;;9940:18:1;;;9933:38;9988:19;;12699:79:0;9609:404:1;12699:79:0;12814:57;12823:6;1790:10;12864:6;12845:16;:25;12814:8;:57::i;:::-;-1:-1:-1;12902:4:0;;12422:492;-1:-1:-1;;;;12422:492:0:o;23257:457::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;23403:4:::1;23384:23:::0;::::1;23376:82;;;::::0;-1:-1:-1;;;23376:82:0;;10220:2:1;23376:82:0::1;::::0;::::1;10202:21:1::0;10259:2;10239:18;;;10232:30;10298:34;10278:18;;;10271:62;-1:-1:-1;;;10349:18:1;;;10342:44;10403:19;;23376:82:0::1;10018:410:1::0;23376:82:0::1;23471:11;23485:25;23494:9:::0;23485:6;:25:::1;:::i;:::-;23471:39;;23548:3;23529:15;23539:4;23529:9;:15::i;:::-;:22;;23521:62;;;::::0;-1:-1:-1;;;23521:62:0;;9455:2:1;23521:62:0::1;::::0;::::1;9437:21:1::0;9494:2;9474:18;;;9467:30;9533:29;9513:18;;;9506:57;9580:18;;23521:62:0::1;9253:351:1::0;23521:62:0::1;23601:9;23596:111;23616:20:::0;;::::1;23596:111;;;23658:37;23668:4;23674:9;;23684:1;23674:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23688:6;23658:9;:37::i;:::-;23638:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23596:111;;;;23365:349;23257:457:::0;;;;:::o;13323:215::-;1790:10;13411:4;13460:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13460:34:0;;;;;;;;;;13411:4;;13428:80;;13451:7;;13460:47;;13497:10;;13460:47;:::i;:::-;13428:8;:80::i;21442:453::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;21582:7:::1;:18:::0;;-1:-1:-1;;21582:18:0::1;::::0;::::1;;;::::0;;21611:16:::1;:36:::0;;;21658:16:::1;:36:::0;;;21728:13:::1;::::0;-1:-1:-1;;;;;21728:13:0;;::::1;21710:31:::0;;::::1;;::::0;::::1;::::0;:63:::1;;-1:-1:-1::0;;;;;;21745:28:0;::::1;::::0;::::1;21710:63;21707:181;;;21799:13;:30:::0;;-1:-1:-1;;;;;;21799:30:0::1;-1:-1:-1::0;;;;;21799:30:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;21844:25:0;;;:10:::1;:25;::::0;;;;:32;;-1:-1:-1;;21844:32:0::1;-1:-1:-1::0;21844:32:0::1;::::0;;21707:181:::1;21442:453:::0;;;;:::o;20946:135::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21035:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:38;;-1:-1:-1;;21035:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20946:135::o;10895:127::-;-1:-1:-1;;;;;10996:18:0;10969:7;10996:18;;;:9;:18;;;;;;;10895:127::o;3498:103::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;3563:30:::1;3590:1;3563:18;:30::i;:::-;3498:103::o:0;9823:104::-;9879:13;9912:7;9905:14;;;;;:::i;14041:413::-;1790:10;14134:4;14178:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14178:34:0;;;;;;;;;;14231:35;;;;14223:85;;;;-1:-1:-1;;;14223:85:0;;10808:2:1;14223:85:0;;;10790:21:1;10847:2;10827:18;;;10820:30;10886:34;10866:18;;;10859:62;-1:-1:-1;;;10937:18:1;;;10930:35;10982:19;;14223:85:0;10606:401:1;14223:85:0;14344:67;1790:10;14367:7;14395:15;14376:16;:34;14344:8;:67::i;:::-;-1:-1:-1;14442:4:0;;14041:413;-1:-1:-1;;;14041:413:0:o;11235:175::-;11321:4;11338:42;1790:10;11362:9;11373:6;11338:9;:42::i;20572:223::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;20679:9:::1;20674:114;20698:8;:15;20694:1;:19;20674:114;;;20761:15;20735:10;:23;20746:8;20755:1;20746:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20735:23:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20735:23:0;:41;;-1:-1:-1;;20735:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20715:3;::::1;::::0;::::1;:::i;:::-;;;;20674:114;;;;20572:223:::0;;:::o;21089:::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;21196:9:::1;21191:114;21215:8;:15;21211:1;:19;21191:114;;;21278:15;21252:10;:23;21263:8;21272:1;21263:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21252:23:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21252:23:0;:41;;-1:-1:-1;;21252:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21232:3;::::1;::::0;::::1;:::i;:::-;;;;21191:114;;21320::::0;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;21397:12:::1;:29:::0;;;::::1;;;;-1:-1:-1::0;;21397:29:0;;::::1;::::0;;;::::1;::::0;;21320:114::o;3756:201::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3845:22:0;::::1;3837:73;;;::::0;-1:-1:-1;;;3837:73:0;;11214:2:1;3837:73:0::1;::::0;::::1;11196:21:1::0;11253:2;11233:18;;;11226:30;11292:34;11272:18;;;11265:62;-1:-1:-1;;;11343:18:1;;;11336:36;11389:19;;3837:73:0::1;11012:402:1::0;3837:73:0::1;3921:28;3940:8;3921:18;:28::i;:::-;3756:201:::0;:::o;20803:135::-;2893:7;2920:6;-1:-1:-1;;;;;2920:6:0;1790:10;3067:23;3059:68;;;;-1:-1:-1;;;3059:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20892:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:38;;-1:-1:-1;;20892:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20803:135::o;17725:380::-;-1:-1:-1;;;;;17861:19:0;;17853:68;;;;-1:-1:-1;;;17853:68:0;;11621:2:1;17853:68:0;;;11603:21:1;11660:2;11640:18;;;11633:30;11699:34;11679:18;;;11672:62;-1:-1:-1;;;11750:18:1;;;11743:34;11794:19;;17853:68:0;11419:400:1;17853:68:0;-1:-1:-1;;;;;17940:21:0;;17932:68;;;;-1:-1:-1;;;17932:68:0;;12026:2:1;17932:68:0;;;12008:21:1;12065:2;12045:18;;;12038:30;12104:34;12084:18;;;12077:62;-1:-1:-1;;;12155:18:1;;;12148:32;12197:19;;17932:68:0;11824:398:1;17932:68:0;-1:-1:-1;;;;;18013:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18065:32;;1533:25:1;;;18065:32:0;;1506:18:1;18065:32:0;;;;;;;17725:380;;;:::o;14944:733::-;-1:-1:-1;;;;;15084:20:0;;15076:70;;;;-1:-1:-1;;;15076:70:0;;12429:2:1;15076:70:0;;;12411:21:1;12468:2;12448:18;;;12441:30;12507:34;12487:18;;;12480:62;-1:-1:-1;;;12558:18:1;;;12551:35;12603:19;;15076:70:0;12227:401:1;15076:70:0;-1:-1:-1;;;;;15165:23:0;;15157:71;;;;-1:-1:-1;;;15157:71:0;;12835:2:1;15157:71:0;;;12817:21:1;12874:2;12854:18;;;12847:30;12913:34;12893:18;;;12886:62;-1:-1:-1;;;12964:18:1;;;12957:33;13007:19;;15157:71:0;12633:399:1;15157:71:0;15241:47;15262:6;15270:9;15281:6;15241:20;:47::i;:::-;-1:-1:-1;;;;;15325:17:0;;15301:21;15325:17;;;:9;:17;;;;;;15361:23;;;;15353:74;;;;-1:-1:-1;;;15353:74:0;;13239:2:1;15353:74:0;;;13221:21:1;13278:2;13258:18;;;13251:30;13317:34;13297:18;;;13290:62;-1:-1:-1;;;13368:18:1;;;13361:36;13414:19;;15353:74:0;13037:402:1;15353:74:0;-1:-1:-1;;;;;15463:17:0;;;;;;;:9;:17;;;;;;15483:22;;;15463:42;;15527:20;;;;;;;;:30;;15499:6;;15463:17;15527:30;;15499:6;;15527:30;:::i;:::-;;;;;;;;15592:9;-1:-1:-1;;;;;15575:35:0;15584:6;-1:-1:-1;;;;;15575:35:0;;15603:6;15575:35;;;;1533:25:1;;1521:2;1506:18;;1387:177;15575:35:0;;;;;;;;15623:46;20572:223;4117:191;4191:16;4210:6;;-1:-1:-1;;;;;4227:17:0;;;-1:-1:-1;;;;;;4227:17:0;;;;;;4260:40;;4210:6;;;;;;;4260:40;;4191:16;4260:40;4180:128;4117:191;:::o;21903:691::-;-1:-1:-1;;;;;22055:14:0;;;;;;:10;:14;;;;;;;;22054:15;:36;;;;-1:-1:-1;;;;;;22074:16:0;;;;;;:10;:16;;;;;;;;22073:17;22054:36;22046:60;;;;-1:-1:-1;;;22046:60:0;;13646:2:1;22046:60:0;;;13628:21:1;13685:2;13665:18;;;13658:30;-1:-1:-1;;;13704:18:1;;;13697:41;13755:18;;22046:60:0;13444:335:1;22046:60:0;22122:12;;;;;;;22119:112;;;-1:-1:-1;;;;;22159:16:0;;;;;;:10;:16;;;;;;;;:22;;:16;:22;:46;;;;-1:-1:-1;;;;;;22185:14:0;;;;;;:10;:14;;;;;;;;:20;;:14;:20;22159:46;22151:68;;;;-1:-1:-1;;;22151:68:0;;13986:2:1;22151:68:0;;;13968:21:1;14025:1;14005:18;;;13998:29;-1:-1:-1;;;14043:18:1;;;14036:39;14092:18;;22151:68:0;13784:332:1;22151:68:0;22247:13;;-1:-1:-1;;;;;22247:13:0;22243:148;;2893:7;2920:6;-1:-1:-1;;;;;22299:15:0;;;2920:6;;22299:15;;:32;;-1:-1:-1;2893:7:0;2920:6;-1:-1:-1;;;;;22318:13:0;;;2920:6;;22318:13;22299:32;22291:67;;;;-1:-1:-1;;;22291:67:0;;14323:2:1;22291:67:0;;;14305:21:1;14362:2;14342:18;;;14335:30;-1:-1:-1;;;14381:18:1;;;14374:52;14443:18;;22291:67:0;14121:346:1;22243:148:0;22407:7;;;;:32;;;;-1:-1:-1;22426:13:0;;-1:-1:-1;;;;;22418:21:0;;;22426:13;;22418:21;22407:32;22403:184;;;22496:16;;22486:6;22464:19;22480:2;22464:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;22548:16;;22538:6;22516:19;22532:2;22516:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;22464:100;22456:119;;;;-1:-1:-1;;;22456:119:0;;14674:2:1;22456:119:0;;;14656:21:1;14713:1;14693:18;;;14686:29;-1:-1:-1;;;14731:18:1;;;14724:36;14777:18;;22456:119:0;14472:329:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:186::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;1347:29;1366:9;1347:29;:::i;:::-;1337:39;1196:186;-1:-1:-1;;;1196:186:1:o;1569:367::-;1632:8;1642:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:55;;1714:1;1711;1704:12;1663:55;-1:-1:-1;1737:20:1;;1780:18;1769:30;;1766:50;;;1812:1;1809;1802:12;1766:50;1849:4;1841:6;1837:17;1825:29;;1909:3;1902:4;1892:6;1889:1;1885:14;1877:6;1873:27;1869:38;1866:47;1863:67;;;1926:1;1923;1916:12;1863:67;1569:367;;;;;:::o;1941:847::-;2072:6;2080;2088;2096;2104;2157:2;2145:9;2136:7;2132:23;2128:32;2125:52;;;2173:1;2170;2163:12;2125:52;2196:29;2215:9;2196:29;:::i;:::-;2186:39;;2276:2;2265:9;2261:18;2248:32;2299:18;2340:2;2332:6;2329:14;2326:34;;;2356:1;2353;2346:12;2326:34;2395:70;2457:7;2448:6;2437:9;2433:22;2395:70;:::i;:::-;2484:8;;-1:-1:-1;2369:96:1;-1:-1:-1;2572:2:1;2557:18;;2544:32;;-1:-1:-1;2588:16:1;;;2585:36;;;2617:1;2614;2607:12;2585:36;;2656:72;2720:7;2709:8;2698:9;2694:24;2656:72;:::i;:::-;1941:847;;;;-1:-1:-1;1941:847:1;;-1:-1:-1;2747:8:1;;2630:98;1941:847;-1:-1:-1;;;1941:847:1:o;2793:328::-;2870:6;2878;2886;2939:2;2927:9;2918:7;2914:23;2910:32;2907:52;;;2955:1;2952;2945:12;2907:52;2978:29;2997:9;2978:29;:::i;:::-;2968:39;;3026:38;3060:2;3049:9;3045:18;3026:38;:::i;:::-;3016:48;;3111:2;3100:9;3096:18;3083:32;3073:42;;2793:328;;;;;:::o;3315:579::-;3419:6;3427;3435;3443;3496:2;3484:9;3475:7;3471:23;3467:32;3464:52;;;3512:1;3509;3502:12;3464:52;3535:29;3554:9;3535:29;:::i;:::-;3525:39;;3615:2;3604:9;3600:18;3587:32;3642:18;3634:6;3631:30;3628:50;;;3674:1;3671;3664:12;3628:50;3713:70;3775:7;3766:6;3755:9;3751:22;3713:70;:::i;:::-;3315:579;;3802:8;;-1:-1:-1;3687:96:1;;3884:2;3869:18;3856:32;;3315:579;-1:-1:-1;;;;3315:579:1:o;3899:160::-;3964:20;;4020:13;;4013:21;4003:32;;3993:60;;4049:1;4046;4039:12;4064:391;4147:6;4155;4163;4171;4224:3;4212:9;4203:7;4199:23;4195:33;4192:53;;;4241:1;4238;4231:12;4192:53;4264:26;4280:9;4264:26;:::i;:::-;4254:36;;4309:38;4343:2;4332:9;4328:18;4309:38;:::i;:::-;4064:391;;4299:48;;-1:-1:-1;;;;4394:2:1;4379:18;;4366:32;;4445:2;4430:18;4417:32;;4064:391::o;4460:254::-;4525:6;4533;4586:2;4574:9;4565:7;4561:23;4557:32;4554:52;;;4602:1;4599;4592:12;4554:52;4625:29;4644:9;4625:29;:::i;:::-;4615:39;;4673:35;4704:2;4693:9;4689:18;4673:35;:::i;:::-;4663:45;;4460:254;;;;;:::o;4927:127::-;4988:10;4983:3;4979:20;4976:1;4969:31;5019:4;5016:1;5009:15;5043:4;5040:1;5033:15;5059:1191;5149:6;5157;5210:2;5198:9;5189:7;5185:23;5181:32;5178:52;;;5226:1;5223;5216:12;5178:52;5266:9;5253:23;5295:18;5336:2;5328:6;5325:14;5322:34;;;5352:1;5349;5342:12;5322:34;5390:6;5379:9;5375:22;5365:32;;5435:7;5428:4;5424:2;5420:13;5416:27;5406:55;;5457:1;5454;5447:12;5406:55;5493:2;5480:16;5515:4;5538:2;5534;5531:10;5528:36;;;5544:18;;:::i;:::-;5590:2;5587:1;5583:10;5622:2;5616:9;5685:2;5681:7;5676:2;5672;5668:11;5664:25;5656:6;5652:38;5740:6;5728:10;5725:22;5720:2;5708:10;5705:18;5702:46;5699:72;;;5751:18;;:::i;:::-;5787:2;5780:22;5837:18;;;5871:15;;;;-1:-1:-1;5913:11:1;;;5909:20;;;5941:19;;;5938:39;;;5973:1;5970;5963:12;5938:39;5997:11;;;;6017:148;6033:6;6028:3;6025:15;6017:148;;;6099:23;6118:3;6099:23;:::i;:::-;6087:36;;6050:12;;;;6143;;;;6017:148;;;6184:6;-1:-1:-1;6209:35:1;;-1:-1:-1;6225:18:1;;;6209:35;:::i;:::-;6199:45;;;;;;5059:1191;;;;;:::o;6478:180::-;6534:6;6587:2;6575:9;6566:7;6562:23;6558:32;6555:52;;;6603:1;6600;6593:12;6555:52;6626:26;6642:9;6626:26;:::i;6663:260::-;6731:6;6739;6792:2;6780:9;6771:7;6767:23;6763:32;6760:52;;;6808:1;6805;6798:12;6760:52;6831:29;6850:9;6831:29;:::i;:::-;6821:39;;6879:38;6913:2;6902:9;6898:18;6879:38;:::i;7150:380::-;7229:1;7225:12;;;;7272;;;7293:61;;7347:4;7339:6;7335:17;7325:27;;7293:61;7400:2;7392:6;7389:14;7369:18;7366:38;7363:161;;7446:10;7441:3;7437:20;7434:1;7427:31;7481:4;7478:1;7471:15;7509:4;7506:1;7499:15;7363:161;;7150:380;;;:::o;7535:356::-;7737:2;7719:21;;;7756:18;;;7749:30;7815:34;7810:2;7795:18;;7788:62;7882:2;7867:18;;7535:356::o;8719:127::-;8780:10;8775:3;8771:20;8768:1;8761:31;8811:4;8808:1;8801:15;8835:4;8832:1;8825:15;8851:127;8912:10;8907:3;8903:20;8900:1;8893:31;8943:4;8940:1;8933:15;8967:4;8964:1;8957:15;8983:125;9048:9;;;9069:10;;;9066:36;;;9082:18;;:::i;9113:135::-;9152:3;9173:17;;;9170:43;;9193:18;;:::i;:::-;-1:-1:-1;9240:1:1;9229:13;;9113:135::o;10433:168::-;10506:9;;;10537;;10554:15;;;10548:22;;10534:37;10524:71;;10575:18;;:::i

Swarm Source

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