ETH Price: $2,394.09 (-0.42%)

Token

Yumeko (YUMEKO)
 

Overview

Max Total Supply

100,000,000 YUMEKO

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
38,096.344901783521138997 YUMEKO

Value
$0.00
0x803f7d1306f3911e40755491e85bea465622148c
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:
Yumeko

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-06
*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut 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");
        _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");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * generation and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be generated 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 {}
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

contract Yumeko is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool public providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 public tokenLiquidityThreshold = 500_000 * 10**18;
    uint256 public maxBuyLimit = 1_000_000 * 10**18;
    uint256 public maxSellLimit = 1_000_000 * 10**18;
    uint256 public maxWalletLimit = 1_000_000 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline;
    uint256 private launchtax;

    address public marketingWallet = 0xC4B4c3f49321575CF86325a669F6AFd050446AbC;
    address public devWallet = 0x655Fa1D1b7d825402834D5C17b1481e7825515E9;
    address public raffleWallet = 0x6Ac5c74CC559932e1859CA7BF687e8434133F231;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 raffle;
        uint256 dev;
    }

    Taxes public taxes = Taxes(2, 1, 2, 1);
    Taxes public sellTaxes = Taxes(2, 1, 2, 1);

    mapping(address => bool) public exemptFee;
    mapping(address => bool) public isBlacklisted;
    mapping(address => bool) public allowedTransfer;

    //Anti Dump
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 60 seconds;

    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor(address routerAdd) ERC20("Yumeko", "YUMEKO") {
        _tokengeneration(msg.sender, 1e8 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(routerAdd);
        // Create a uniswap pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[raffleWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true;
        exemptFee[0x33d4cC8716Beb13F814F538Ad3b2de3b036f5e2A] = true;
        

        allowedTransfer[address(this)] = true;
        allowedTransfer[owner()] = true;
        allowedTransfer[pair] = true;
        allowedTransfer[marketingWallet] = true;
        allowedTransfer[raffleWallet] = true;
        allowedTransfer[devWallet] = true;
        allowedTransfer[deadWallet] = true;
        allowedTransfer[0xD152f549545093347A162Dce210e7293f1452150] = true;
        allowedTransfer[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true;
        allowedTransfer[0x33d4cC8716Beb13F814F538Ad3b2de3b036f5e2A] = true;

    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(
            !isBlacklisted[sender] && !isBlacklisted[recipient],
            "You can't transfer tokens"
        );

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex
        ) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
            if (coolDownEnabled) {
                uint256 timePassed = block.timestamp - _lastSell[sender];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[sender] = block.timestamp;
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +
                sellTaxes.raffle +                
                sellTaxes.dev ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.raffle +
                taxes.dev;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity to uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

            uint256 raffleAmt = unitBalance * 2 * swapTaxes.raffle;
            if (raffleAmt > 0) {
                payable(raffleWallet).sendValue(raffleAmt);
            }

            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function updateTaxes(Taxes memory newTaxes) external onlyOwner {
        taxes = newTaxes;
    }

    function updateSellTaxes(Taxes memory newSellTaxes) external onlyOwner {
        sellTaxes = newSellTaxes;
    }

    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner {
        router = IRouter(newRouter);
        pair = newPair;
    }

    function updateTradingEnabled(
        bool state,
        uint256 _deadline,
        uint256 _launchtax
    ) external onlyOwner {
        deadline = _deadline;
        launchtax = _launchtax;
        tradingEnabled = state;
        providingLiquidity = state;
        if (state == true) genesis_block = block.number;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateRaffleWallet(address newWallet) external onlyOwner {
        raffleWallet = newWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        devWallet = newWallet;
    }

    function updateCooldown(bool state, uint256 time) external onlyOwner {
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner {
        isBlacklisted[account] = state;
    }

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

    function updateAllowedTransfer(address account, bool state) external onlyOwner {
        allowedTransfer[account] = state;
    }

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

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

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

    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell) external onlyOwner {
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
    }

    function updateMaxWalletlimit(uint256 amount) external onlyOwner {
        maxWalletLimit = amount * 10**decimals();
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(devWallet).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(devWallet, amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAdd","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"raffleWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"raffle","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"raffle","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateRaffleWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"raffle","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"internalType":"struct Yumeko.Taxes","name":"newSellTaxes","type":"tuple"}],"name":"updateSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"raffle","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"internalType":"struct Yumeko.Taxes","name":"newTaxes","type":"tuple"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint256","name":"_launchtax","type":"uint256"}],"name":"updateTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556969e10de76676d080000060085569d3c21bcecceda10000006009819055600a819055600b55600f80546001600160a01b031990811673c4b4c3f49321575cf86325a669f6afd050446abc1790915560108054821673655fa1d1b7d825402834d5c17b1481e7825515e917905560118054909116736ac5c74cc559932e1859ca7bf687e8434133f23117905560026080819052600160a081905260c082905260e08190526012829055601381905560148290556015819055610180604052610100829052610120819052610140829052610160819052601682905560178190556018919091556019819055601e805460ff19169091179055603c601f553480156200011857600080fd5b506040516200354c3803806200354c8339810160408190526200013b916200081a565b6040518060400160405280600681526020016559756d656b6f60d01b8152506040518060400160405280600681526020016559554d454b4f60d01b81525081600390805190602001906200019192919062000774565b508051620001a790600490602084019062000774565b505050620001c4620001be6200062860201b60201c565b6200062c565b620001ed33620001d76012600a620008b0565b620001e7906305f5e10062000971565b6200067e565b336000908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b815290518493926001600160a01b0385169263c45a01559260048083019392829003018186803b1580156200024857600080fd5b505afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028391906200081a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002cc57600080fd5b505afa158015620002e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030791906200081a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200035057600080fd5b505af115801562000365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038b91906200081a565b600680546001600160a01b038086166001600160a01b031992831617909255600780548385169216919091179055306000818152601a60209081526040808320805460ff199081166001908117909255600f54871685528285208054821683179055601154871685528285208054821683179055601054909616845281842080548716821790557f428bdc965569ef4717764ecfd84e88946a9a226b52b813e6ab6a7f46aad86e8880548716821790557f2fcec17b10d207b56bde579aeb215b58d6c4f64a986f1030b316c9e25b6b832b80548716821790557f54a07289f9bcce50727433c3935d341a715f3569b8d80545229402591066e56480548716821790557fbd707750a2b98938e2aa0099e9e123f406bdd7cb1bf478b0cce8748faec1a4e88054871682179055938352601c9182905282208054909416831790935592935091620004e26005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560075482168152601c909352818320805485166001908117909155600f54821684528284208054861682179055601154821684528284208054861682179055601054909116835290822080548416821790557fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc80548416821790557f6c1aff534cb60d09ff5c1e28020ddf8fa4318882dab0aa0fb74e99b43cee92b380548416821790557f53e29f4943ea19ad4eb51a2fbaba86ac601fb0df301a1aaed418383a145f58d180548416821790557333d4cc8716beb13f814f538ad3b2de3b036f5e2a9091527fbaadbc58e5d54a41b1a9db84b7ad7ea29ee78350642d4eedf2f0e4ddd5cb0e8f805490921617905550620009e6915050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620006e75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b8060026000828254620006fb91906200084c565b90915550506001600160a01b038216600090815260208190526040812080548392906200072a9084906200084c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620007829062000993565b90600052602060002090601f016020900481019282620007a65760008555620007f1565b82601f10620007c157805160ff1916838001178555620007f1565b82800160010185558215620007f1579182015b82811115620007f1578251825591602001919060010190620007d4565b50620007ff92915062000803565b5090565b5b80821115620007ff576000815560010162000804565b6000602082840312156200082d57600080fd5b81516001600160a01b03811681146200084557600080fd5b9392505050565b60008219821115620008625762000862620009d0565b500190565b600181815b80851115620008a85781600019048211156200088c576200088c620009d0565b808516156200089a57918102915b93841c93908002906200086c565b509250929050565b60006200084560ff841683600082620008cc575060016200096b565b81620008db575060006200096b565b8160018114620008f45760028114620008ff576200091f565b60019150506200096b565b60ff841115620009135762000913620009d0565b50506001821b6200096b565b5060208310610133831016604e8410600b841016171562000944575081810a6200096b565b62000950838362000867565b8060001904821115620009675762000967620009d0565b0290505b92915050565b60008160001904831182151516156200098e576200098e620009d0565b500290565b600181811c90821680620009a857607f821691505b60208210811415620009ca57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612b5680620009f66000396000f3fe6080604052600436106103395760003560e01c806375f0a874116101ab578063b5c57145116100f7578063e517f2b911610095578063f66895a31161006f578063f66895a3146109d5578063f887ea40146109f8578063fbe6324e14610a18578063fe575a8714610a3957600080fd5b8063e517f2b91461097b578063ee36e3591461099b578063f2fde38b146109b557600080fd5b8063d2ce0db2116100d1578063d2ce0db2146108df578063d8672e51146108f5578063dd62ed3e14610915578063e1f8fc161461095b57600080fd5b8063b5c571451461086f578063c5d32bb21461088f578063d189e6e1146108bf57600080fd5b80638ea5220f11610164578063a457c2d71161013e578063a457c2d7146107ef578063a8aa1b311461080f578063a9059cbb1461082f578063aacebbe31461084f57600080fd5b80638ea5220f1461079a57806395d89b41146107ba5780639e252f00146107cf57600080fd5b806375f0a874146106e65780637e554d471461070657806381428be11461072657806385141a77146107465780638cd4426d1461075c5780638da5cb5b1461077c57600080fd5b8063395093511161028557806362695eae116102235780636aa5b37f116101fd5780636aa5b37f1461064257806370a0823114610658578063715018a61461068e578063728f8eea146106a357600080fd5b806362695eae146105e6578063652e2f041461061657806366a88d961461062c57600080fd5b806342b6fa111161025f57806342b6fa11146105655780634ada218b1461058557806359759f61146105a65780635b24ea5e146105c657600080fd5b806339509351146105055780633d30d20b1461052557806340b28c2f1461054557600080fd5b806318160ddd116102f2578063274a533c116102cc578063274a533c1461047b578063313ce5671461049157806332d382cd146104ad578063355496ca146104e557600080fd5b806318160ddd146104265780631816467f1461043b57806323b872dd1461045b57600080fd5b806306fdde0314610345578063095ea7b3146103705780630e375a5c146103a05780631340538f146103c257806313f97a8e146103e25780631675d8021461040257600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a69565b60405161036791906127db565b60405180910390f35b34801561037c57600080fd5b5061039061038b366004612588565b610afb565b6040519015158152602001610367565b3480156103ac57600080fd5b506103c06103bb3660046125b4565b610b12565b005b3480156103ce57600080fd5b506103c06103dd36600461267f565b610bb1565b3480156103ee57600080fd5b506103c06103fd3660046125b4565b610bf9565b34801561040e57600080fd5b5061041860085481565b604051908152602001610367565b34801561043257600080fd5b50600254610418565b34801561044757600080fd5b506103c061045636600461249f565b610c8a565b34801561046757600080fd5b50610390610476366004612519565b610cd6565b34801561048757600080fd5b50610418600c5481565b34801561049d57600080fd5b5060405160128152602001610367565b3480156104b957600080fd5b506011546104cd906001600160a01b031681565b6040516001600160a01b039091168152602001610367565b3480156104f157600080fd5b506103c061050036600461255a565b610d87565b34801561051157600080fd5b50610390610520366004612588565b610ddc565b34801561053157600080fd5b506103c06105403660046126d7565b610e13565b34801561055157600080fd5b506103c06105603660046124e0565b610e85565b34801561057157600080fd5b506103c0610580366004612772565b610edd565b34801561059157600080fd5b5060075461039090600160b01b900460ff1681565b3480156105b257600080fd5b506103c06105c136600461278b565b610f23565b3480156105d257600080fd5b506103c06105e136600461255a565b610f83565b3480156105f257600080fd5b5061039061060136600461249f565b601c6020526000908152604090205460ff1681565b34801561062257600080fd5b50610418600a5481565b34801561063857600080fd5b50610418600b5481565b34801561064e57600080fd5b5061041860095481565b34801561066457600080fd5b5061041861067336600461249f565b6001600160a01b031660009081526020819052604090205490565b34801561069a57600080fd5b506103c0610fd8565b3480156106af57600080fd5b506012546013546014546015546106c69392919084565b604080519485526020850193909352918301526060820152608001610367565b3480156106f257600080fd5b50600f546104cd906001600160a01b031681565b34801561071257600080fd5b506103c061072136600461270c565b61100e565b34801561073257600080fd5b506103c06107413660046125b4565b611056565b34801561075257600080fd5b506104cd61dead81565b34801561076857600080fd5b506103c0610777366004612588565b6110e7565b34801561078857600080fd5b506005546001600160a01b03166104cd565b3480156107a657600080fd5b506010546104cd906001600160a01b031681565b3480156107c657600080fd5b5061035a611197565b3480156107db57600080fd5b506103c06107ea366004612772565b6111a6565b3480156107fb57600080fd5b5061039061080a366004612588565b61120e565b34801561081b57600080fd5b506007546104cd906001600160a01b031681565b34801561083b57600080fd5b5061039061084a366004612588565b6112a9565b34801561085b57600080fd5b506103c061086a36600461249f565b6112b6565b34801561087b57600080fd5b506103c061088a36600461255a565b611302565b34801561089b57600080fd5b506103906108aa36600461249f565b601a6020526000908152604090205460ff1681565b3480156108cb57600080fd5b506103c06108da36600461249f565b611357565b3480156108eb57600080fd5b50610418601f5481565b34801561090157600080fd5b506103c0610910366004612772565b6113a3565b34801561092157600080fd5b506104186109303660046124e0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561096757600080fd5b506103c061097636600461270c565b6113e9565b34801561098757600080fd5b506103c06109963660046126b9565b611431565b3480156109a757600080fd5b50601e546103909060ff1681565b3480156109c157600080fd5b506103c06109d036600461249f565b61147d565b3480156109e157600080fd5b506016546017546018546019546106c69392919084565b348015610a0457600080fd5b506006546104cd906001600160a01b031681565b348015610a2457600080fd5b5060075461039090600160a81b900460ff1681565b348015610a4557600080fd5b50610390610a5436600461249f565b601b6020526000908152604090205460ff1681565b606060038054610a7890612a65565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa490612a65565b8015610af15780601f10610ac657610100808354040283529160200191610af1565b820191906000526020600020905b815481529060010190602001808311610ad457829003601f168201915b5050505050905090565b6000610b08338484611518565b5060015b92915050565b6005546001600160a01b03163314610b455760405162461bcd60e51b8152600401610b3c90612830565b60405180910390fd5b60005b8251811015610bac5781601a6000858481518110610b6857610b68612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ba481612aa0565b915050610b48565b505050565b6005546001600160a01b03163314610bdb5760405162461bcd60e51b8152600401610b3c90612830565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c235760405162461bcd60e51b8152600401610b3c90612830565b60005b8251811015610bac5781601b6000858481518110610c4657610c46612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c8281612aa0565b915050610c26565b6005546001600160a01b03163314610cb45760405162461bcd60e51b8152600401610b3c90612830565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ce384848461163c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d685760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b3c565b610d7c8533610d778685612a4e565b611518565b506001949350505050565b6005546001600160a01b03163314610db15760405162461bcd60e51b8152600401610b3c90612830565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b08918590610d77908690612907565b6005546001600160a01b03163314610e3d5760405162461bcd60e51b8152600401610b3c90612830565b600d829055600e8190556007805461ffff60a81b1916600160b01b85151590810260ff60a81b191691909117600160a81b82021790915560011415610bac5743600c55505050565b6005546001600160a01b03163314610eaf5760405162461bcd60e51b8152600401610b3c90612830565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610f075760405162461bcd60e51b8152600401610b3c90612830565b610f136012600a612984565b610f1d9082612a2f565b60085550565b6005546001600160a01b03163314610f4d5760405162461bcd60e51b8152600401610b3c90612830565b610f596012600a612984565b610f639083612a2f565b600955610f726012600a612984565b610f7c9082612a2f565b600a555050565b6005546001600160a01b03163314610fad5760405162461bcd60e51b8152600401610b3c90612830565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110025760405162461bcd60e51b8152600401610b3c90612830565b61100c6000611d4f565b565b6005546001600160a01b031633146110385760405162461bcd60e51b8152600401610b3c90612830565b80516016556020810151601755604081015160185560600151601955565b6005546001600160a01b031633146110805760405162461bcd60e51b8152600401610b3c90612830565b60005b8251811015610bac5781601c60008584815181106110a3576110a3612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806110df81612aa0565b915050611083565b6005546001600160a01b031633146111115760405162461bcd60e51b8152600401610b3c90612830565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b15801561115f57600080fd5b505af1158015611173573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bac919061269c565b606060048054610a7890612a65565b6005546001600160a01b031633146111d05760405162461bcd60e51b8152600401610b3c90612830565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561120a573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b3c565b61129f3385610d778685612a4e565b5060019392505050565b6000610b0833848461163c565b6005546001600160a01b031633146112e05760405162461bcd60e51b8152600401610b3c90612830565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461132c5760405162461bcd60e51b8152600401610b3c90612830565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113815760405162461bcd60e51b8152600401610b3c90612830565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113cd5760405162461bcd60e51b8152600401610b3c90612830565b6113d96012600a612984565b6113e39082612a2f565b600b5550565b6005546001600160a01b031633146114135760405162461bcd60e51b8152600401610b3c90612830565b80516012556020810151601355604081015160145560600151601555565b6005546001600160a01b0316331461145b5760405162461bcd60e51b8152600401610b3c90612830565b611466816001612a2f565b601f5550601e805460ff1916911515919091179055565b6005546001600160a01b031633146114a75760405162461bcd60e51b8152600401610b3c90612830565b6001600160a01b03811661150c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b3c565b61151581611d4f565b50565b6001600160a01b03831661157a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b3c565b6001600160a01b0382166115db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b3c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161169e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b3c565b6001600160a01b0383166000908152601b602052604090205460ff161580156116e057506001600160a01b0382166000908152601b602052604090205460ff16155b61172c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610b3c565b6001600160a01b0383166000908152601a602052604090205460ff1615801561176e57506001600160a01b0382166000908152601a602052604090205460ff16155b156117c257600754600160b01b900460ff166117c25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610b3c565b6007546001600160a01b0384811691161480156117f857506001600160a01b0382166000908152601a602052604090205460ff16155b801561180e5750600754600160a01b900460ff16155b156118e0576009548111156118655760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610b3c565b600b5481611888846001600160a01b031660009081526020819052604090205490565b6118929190612907565b11156118e05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610b3c565b6007546001600160a01b0384811691161480159061191757506001600160a01b0382166000908152601a602052604090205460ff16155b801561193c57506001600160a01b0383166000908152601a602052604090205460ff16155b80156119525750600754600160a01b900460ff16155b15611acb57600a548111156119a95760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610b3c565b6007546001600160a01b03838116911614611a3957600b54816119e1846001600160a01b031660009081526020819052604090205490565b6119eb9190612907565b1115611a395760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610b3c565b601e5460ff1615611acb576001600160a01b0383166000908152601d6020526040812054611a679042612a4e565b9050601f54811015611aae5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610b3c565b506001600160a01b0383166000908152601d602052604090204290555b6000806000611afb6040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611b3d57506001600160a01b0387166000908152601a602052604090205460ff16155b8015611b575750600d54600c54611b549190612907565b43105b600754909150600160a01b900460ff1680611b8a57506001600160a01b0388166000908152601a602052604090205460ff165b80611bad57506001600160a01b0387166000908152601a602052604090205460ff165b15611bbb5760009250611caf565b6007546001600160a01b038881169116148015611bd6575080155b15611c3b57601954601854601654601754611bf19190612907565b611bfb9190612907565b611c059190612907565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611caf565b80611ca057601554601454601254601354611c569190612907565b611c609190612907565b611c6a9190612907565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611caf565b8015611caf57600e5494508493505b6064611cbb8588612a2f565b611cc5919061291f565b600754909350600160a81b900460ff168015611cef57506007546001600160a01b03898116911614155b15611cfe57611cfe8583611da1565b611d128888611d0d868a612a4e565b611f51565b8215611d45578415611d455760006064611d2c8789612a2f565b611d36919061291f565b9050611d43893083611f51565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff1661120a576007805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506008548110611f3f5760016008541115611df057506008545b6000611dfd846002612a2f565b9050600081846020015184611e129190612a2f565b611e1c919061291f565b90506000611e2a8285612a4e565b905047611e3682612129565b6000611e428247612a4e565b90506000876020015186611e569190612a4e565b611e60908361291f565b90506000886020015182611e749190612a2f565b90508015611e8657611e868682612292565b8851600090611e96846002612a2f565b611ea09190612a2f565b90508015611ebe57600f54611ebe906001600160a01b031682612376565b60408a0151600090611ed1856002612a2f565b611edb9190612a2f565b90508015611ef957601154611ef9906001600160a01b031682612376565b60608b0151600090611f0c866002612a2f565b611f169190612a2f565b90508015611f3457601054611f34906001600160a01b031682612376565b505050505050505050505b506007805460ff60a01b191690555050565b6001600160a01b038316611fb55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b3c565b6001600160a01b0382166120175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b3c565b6001600160a01b0383166000908152602081905260409020548181101561208f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b3c565b6120998282612a4e565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906120cf908490612907565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211b91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061215e5761215e612ad1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156121b257600080fd5b505afa1580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea91906124c3565b816001815181106121fd576121fd612ad1565b6001600160a01b0392831660209182029290920101526006546122239130911684611518565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061225c908590600090869030904290600401612865565b600060405180830381600087803b15801561227657600080fd5b505af115801561228a573d6000803e3d6000fd5b505050505050565b6006546122aa9030906001600160a01b031684611518565b6006546001600160a01b031663f305d7198230856000806122d36005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561233657600080fd5b505af115801561234a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236f91906127ad565b5050505050565b804710156123c65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b3c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612413576040519150601f19603f3d011682016040523d82523d6000602084013e612418565b606091505b5050905080610bac5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b3c565b803561249a81612b12565b919050565b6000602082840312156124b157600080fd5b81356124bc81612afd565b9392505050565b6000602082840312156124d557600080fd5b81516124bc81612afd565b600080604083850312156124f357600080fd5b82356124fe81612afd565b9150602083013561250e81612afd565b809150509250929050565b60008060006060848603121561252e57600080fd5b833561253981612afd565b9250602084013561254981612afd565b929592945050506040919091013590565b6000806040838503121561256d57600080fd5b823561257881612afd565b9150602083013561250e81612b12565b6000806040838503121561259b57600080fd5b82356125a681612afd565b946020939093013593505050565b600080604083850312156125c757600080fd5b823567ffffffffffffffff808211156125df57600080fd5b818501915085601f8301126125f357600080fd5b813560208282111561260757612607612ae7565b8160051b92506126188184016128d6565b8281528181019085830185870184018b101561263357600080fd5b600096505b84871015612662578035955061264d86612afd565b85835260019690960195918301918301612638565b509650612672905087820161248f565b9450505050509250929050565b60006020828403121561269157600080fd5b81356124bc81612b12565b6000602082840312156126ae57600080fd5b81516124bc81612b12565b600080604083850312156126cc57600080fd5b82356125a681612b12565b6000806000606084860312156126ec57600080fd5b83356126f781612b12565b95602085013595506040909401359392505050565b60006080828403121561271e57600080fd5b6040516080810181811067ffffffffffffffff8211171561274157612741612ae7565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60006020828403121561278457600080fd5b5035919050565b6000806040838503121561279e57600080fd5b50508035926020909101359150565b6000806000606084860312156127c257600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612808578581018301518582016040015282016127ec565b8181111561281a576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128b55784516001600160a01b031683529383019391830191600101612890565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128ff576128ff612ae7565b604052919050565b6000821982111561291a5761291a612abb565b500190565b60008261293c57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561297c57816000190482111561296257612962612abb565b8085161561296f57918102915b93841c9390800290612946565b509250929050565b60006124bc60ff84168360008261299d57506001610b0c565b816129aa57506000610b0c565b81600181146129c057600281146129ca576129e6565b6001915050610b0c565b60ff8411156129db576129db612abb565b50506001821b610b0c565b5060208310610133831016604e8410600b8410161715612a09575081810a610b0c565b612a138383612941565b8060001904821115612a2757612a27612abb565b029392505050565b6000816000190483118215151615612a4957612a49612abb565b500290565b600082821015612a6057612a60612abb565b500390565b600181811c90821680612a7957607f821691505b60208210811415612a9a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ab457612ab4612abb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461151557600080fd5b801515811461151557600080fdfea264697066735822122016aa755fb5785de5a7d2f2a6157c5d61af46d5366cc76e88ef171a4ec5c874e564736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106103395760003560e01c806375f0a874116101ab578063b5c57145116100f7578063e517f2b911610095578063f66895a31161006f578063f66895a3146109d5578063f887ea40146109f8578063fbe6324e14610a18578063fe575a8714610a3957600080fd5b8063e517f2b91461097b578063ee36e3591461099b578063f2fde38b146109b557600080fd5b8063d2ce0db2116100d1578063d2ce0db2146108df578063d8672e51146108f5578063dd62ed3e14610915578063e1f8fc161461095b57600080fd5b8063b5c571451461086f578063c5d32bb21461088f578063d189e6e1146108bf57600080fd5b80638ea5220f11610164578063a457c2d71161013e578063a457c2d7146107ef578063a8aa1b311461080f578063a9059cbb1461082f578063aacebbe31461084f57600080fd5b80638ea5220f1461079a57806395d89b41146107ba5780639e252f00146107cf57600080fd5b806375f0a874146106e65780637e554d471461070657806381428be11461072657806385141a77146107465780638cd4426d1461075c5780638da5cb5b1461077c57600080fd5b8063395093511161028557806362695eae116102235780636aa5b37f116101fd5780636aa5b37f1461064257806370a0823114610658578063715018a61461068e578063728f8eea146106a357600080fd5b806362695eae146105e6578063652e2f041461061657806366a88d961461062c57600080fd5b806342b6fa111161025f57806342b6fa11146105655780634ada218b1461058557806359759f61146105a65780635b24ea5e146105c657600080fd5b806339509351146105055780633d30d20b1461052557806340b28c2f1461054557600080fd5b806318160ddd116102f2578063274a533c116102cc578063274a533c1461047b578063313ce5671461049157806332d382cd146104ad578063355496ca146104e557600080fd5b806318160ddd146104265780631816467f1461043b57806323b872dd1461045b57600080fd5b806306fdde0314610345578063095ea7b3146103705780630e375a5c146103a05780631340538f146103c257806313f97a8e146103e25780631675d8021461040257600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a69565b60405161036791906127db565b60405180910390f35b34801561037c57600080fd5b5061039061038b366004612588565b610afb565b6040519015158152602001610367565b3480156103ac57600080fd5b506103c06103bb3660046125b4565b610b12565b005b3480156103ce57600080fd5b506103c06103dd36600461267f565b610bb1565b3480156103ee57600080fd5b506103c06103fd3660046125b4565b610bf9565b34801561040e57600080fd5b5061041860085481565b604051908152602001610367565b34801561043257600080fd5b50600254610418565b34801561044757600080fd5b506103c061045636600461249f565b610c8a565b34801561046757600080fd5b50610390610476366004612519565b610cd6565b34801561048757600080fd5b50610418600c5481565b34801561049d57600080fd5b5060405160128152602001610367565b3480156104b957600080fd5b506011546104cd906001600160a01b031681565b6040516001600160a01b039091168152602001610367565b3480156104f157600080fd5b506103c061050036600461255a565b610d87565b34801561051157600080fd5b50610390610520366004612588565b610ddc565b34801561053157600080fd5b506103c06105403660046126d7565b610e13565b34801561055157600080fd5b506103c06105603660046124e0565b610e85565b34801561057157600080fd5b506103c0610580366004612772565b610edd565b34801561059157600080fd5b5060075461039090600160b01b900460ff1681565b3480156105b257600080fd5b506103c06105c136600461278b565b610f23565b3480156105d257600080fd5b506103c06105e136600461255a565b610f83565b3480156105f257600080fd5b5061039061060136600461249f565b601c6020526000908152604090205460ff1681565b34801561062257600080fd5b50610418600a5481565b34801561063857600080fd5b50610418600b5481565b34801561064e57600080fd5b5061041860095481565b34801561066457600080fd5b5061041861067336600461249f565b6001600160a01b031660009081526020819052604090205490565b34801561069a57600080fd5b506103c0610fd8565b3480156106af57600080fd5b506012546013546014546015546106c69392919084565b604080519485526020850193909352918301526060820152608001610367565b3480156106f257600080fd5b50600f546104cd906001600160a01b031681565b34801561071257600080fd5b506103c061072136600461270c565b61100e565b34801561073257600080fd5b506103c06107413660046125b4565b611056565b34801561075257600080fd5b506104cd61dead81565b34801561076857600080fd5b506103c0610777366004612588565b6110e7565b34801561078857600080fd5b506005546001600160a01b03166104cd565b3480156107a657600080fd5b506010546104cd906001600160a01b031681565b3480156107c657600080fd5b5061035a611197565b3480156107db57600080fd5b506103c06107ea366004612772565b6111a6565b3480156107fb57600080fd5b5061039061080a366004612588565b61120e565b34801561081b57600080fd5b506007546104cd906001600160a01b031681565b34801561083b57600080fd5b5061039061084a366004612588565b6112a9565b34801561085b57600080fd5b506103c061086a36600461249f565b6112b6565b34801561087b57600080fd5b506103c061088a36600461255a565b611302565b34801561089b57600080fd5b506103906108aa36600461249f565b601a6020526000908152604090205460ff1681565b3480156108cb57600080fd5b506103c06108da36600461249f565b611357565b3480156108eb57600080fd5b50610418601f5481565b34801561090157600080fd5b506103c0610910366004612772565b6113a3565b34801561092157600080fd5b506104186109303660046124e0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561096757600080fd5b506103c061097636600461270c565b6113e9565b34801561098757600080fd5b506103c06109963660046126b9565b611431565b3480156109a757600080fd5b50601e546103909060ff1681565b3480156109c157600080fd5b506103c06109d036600461249f565b61147d565b3480156109e157600080fd5b506016546017546018546019546106c69392919084565b348015610a0457600080fd5b506006546104cd906001600160a01b031681565b348015610a2457600080fd5b5060075461039090600160a81b900460ff1681565b348015610a4557600080fd5b50610390610a5436600461249f565b601b6020526000908152604090205460ff1681565b606060038054610a7890612a65565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa490612a65565b8015610af15780601f10610ac657610100808354040283529160200191610af1565b820191906000526020600020905b815481529060010190602001808311610ad457829003601f168201915b5050505050905090565b6000610b08338484611518565b5060015b92915050565b6005546001600160a01b03163314610b455760405162461bcd60e51b8152600401610b3c90612830565b60405180910390fd5b60005b8251811015610bac5781601a6000858481518110610b6857610b68612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ba481612aa0565b915050610b48565b505050565b6005546001600160a01b03163314610bdb5760405162461bcd60e51b8152600401610b3c90612830565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c235760405162461bcd60e51b8152600401610b3c90612830565b60005b8251811015610bac5781601b6000858481518110610c4657610c46612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c8281612aa0565b915050610c26565b6005546001600160a01b03163314610cb45760405162461bcd60e51b8152600401610b3c90612830565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ce384848461163c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d685760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b3c565b610d7c8533610d778685612a4e565b611518565b506001949350505050565b6005546001600160a01b03163314610db15760405162461bcd60e51b8152600401610b3c90612830565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b08918590610d77908690612907565b6005546001600160a01b03163314610e3d5760405162461bcd60e51b8152600401610b3c90612830565b600d829055600e8190556007805461ffff60a81b1916600160b01b85151590810260ff60a81b191691909117600160a81b82021790915560011415610bac5743600c55505050565b6005546001600160a01b03163314610eaf5760405162461bcd60e51b8152600401610b3c90612830565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610f075760405162461bcd60e51b8152600401610b3c90612830565b610f136012600a612984565b610f1d9082612a2f565b60085550565b6005546001600160a01b03163314610f4d5760405162461bcd60e51b8152600401610b3c90612830565b610f596012600a612984565b610f639083612a2f565b600955610f726012600a612984565b610f7c9082612a2f565b600a555050565b6005546001600160a01b03163314610fad5760405162461bcd60e51b8152600401610b3c90612830565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110025760405162461bcd60e51b8152600401610b3c90612830565b61100c6000611d4f565b565b6005546001600160a01b031633146110385760405162461bcd60e51b8152600401610b3c90612830565b80516016556020810151601755604081015160185560600151601955565b6005546001600160a01b031633146110805760405162461bcd60e51b8152600401610b3c90612830565b60005b8251811015610bac5781601c60008584815181106110a3576110a3612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806110df81612aa0565b915050611083565b6005546001600160a01b031633146111115760405162461bcd60e51b8152600401610b3c90612830565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b15801561115f57600080fd5b505af1158015611173573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bac919061269c565b606060048054610a7890612a65565b6005546001600160a01b031633146111d05760405162461bcd60e51b8152600401610b3c90612830565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561120a573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b3c565b61129f3385610d778685612a4e565b5060019392505050565b6000610b0833848461163c565b6005546001600160a01b031633146112e05760405162461bcd60e51b8152600401610b3c90612830565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461132c5760405162461bcd60e51b8152600401610b3c90612830565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113815760405162461bcd60e51b8152600401610b3c90612830565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113cd5760405162461bcd60e51b8152600401610b3c90612830565b6113d96012600a612984565b6113e39082612a2f565b600b5550565b6005546001600160a01b031633146114135760405162461bcd60e51b8152600401610b3c90612830565b80516012556020810151601355604081015160145560600151601555565b6005546001600160a01b0316331461145b5760405162461bcd60e51b8152600401610b3c90612830565b611466816001612a2f565b601f5550601e805460ff1916911515919091179055565b6005546001600160a01b031633146114a75760405162461bcd60e51b8152600401610b3c90612830565b6001600160a01b03811661150c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b3c565b61151581611d4f565b50565b6001600160a01b03831661157a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b3c565b6001600160a01b0382166115db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b3c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161169e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b3c565b6001600160a01b0383166000908152601b602052604090205460ff161580156116e057506001600160a01b0382166000908152601b602052604090205460ff16155b61172c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610b3c565b6001600160a01b0383166000908152601a602052604090205460ff1615801561176e57506001600160a01b0382166000908152601a602052604090205460ff16155b156117c257600754600160b01b900460ff166117c25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610b3c565b6007546001600160a01b0384811691161480156117f857506001600160a01b0382166000908152601a602052604090205460ff16155b801561180e5750600754600160a01b900460ff16155b156118e0576009548111156118655760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610b3c565b600b5481611888846001600160a01b031660009081526020819052604090205490565b6118929190612907565b11156118e05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610b3c565b6007546001600160a01b0384811691161480159061191757506001600160a01b0382166000908152601a602052604090205460ff16155b801561193c57506001600160a01b0383166000908152601a602052604090205460ff16155b80156119525750600754600160a01b900460ff16155b15611acb57600a548111156119a95760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610b3c565b6007546001600160a01b03838116911614611a3957600b54816119e1846001600160a01b031660009081526020819052604090205490565b6119eb9190612907565b1115611a395760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610b3c565b601e5460ff1615611acb576001600160a01b0383166000908152601d6020526040812054611a679042612a4e565b9050601f54811015611aae5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610b3c565b506001600160a01b0383166000908152601d602052604090204290555b6000806000611afb6040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611b3d57506001600160a01b0387166000908152601a602052604090205460ff16155b8015611b575750600d54600c54611b549190612907565b43105b600754909150600160a01b900460ff1680611b8a57506001600160a01b0388166000908152601a602052604090205460ff165b80611bad57506001600160a01b0387166000908152601a602052604090205460ff165b15611bbb5760009250611caf565b6007546001600160a01b038881169116148015611bd6575080155b15611c3b57601954601854601654601754611bf19190612907565b611bfb9190612907565b611c059190612907565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611caf565b80611ca057601554601454601254601354611c569190612907565b611c609190612907565b611c6a9190612907565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611caf565b8015611caf57600e5494508493505b6064611cbb8588612a2f565b611cc5919061291f565b600754909350600160a81b900460ff168015611cef57506007546001600160a01b03898116911614155b15611cfe57611cfe8583611da1565b611d128888611d0d868a612a4e565b611f51565b8215611d45578415611d455760006064611d2c8789612a2f565b611d36919061291f565b9050611d43893083611f51565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff1661120a576007805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506008548110611f3f5760016008541115611df057506008545b6000611dfd846002612a2f565b9050600081846020015184611e129190612a2f565b611e1c919061291f565b90506000611e2a8285612a4e565b905047611e3682612129565b6000611e428247612a4e565b90506000876020015186611e569190612a4e565b611e60908361291f565b90506000886020015182611e749190612a2f565b90508015611e8657611e868682612292565b8851600090611e96846002612a2f565b611ea09190612a2f565b90508015611ebe57600f54611ebe906001600160a01b031682612376565b60408a0151600090611ed1856002612a2f565b611edb9190612a2f565b90508015611ef957601154611ef9906001600160a01b031682612376565b60608b0151600090611f0c866002612a2f565b611f169190612a2f565b90508015611f3457601054611f34906001600160a01b031682612376565b505050505050505050505b506007805460ff60a01b191690555050565b6001600160a01b038316611fb55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b3c565b6001600160a01b0382166120175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b3c565b6001600160a01b0383166000908152602081905260409020548181101561208f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b3c565b6120998282612a4e565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906120cf908490612907565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211b91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061215e5761215e612ad1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156121b257600080fd5b505afa1580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea91906124c3565b816001815181106121fd576121fd612ad1565b6001600160a01b0392831660209182029290920101526006546122239130911684611518565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061225c908590600090869030904290600401612865565b600060405180830381600087803b15801561227657600080fd5b505af115801561228a573d6000803e3d6000fd5b505050505050565b6006546122aa9030906001600160a01b031684611518565b6006546001600160a01b031663f305d7198230856000806122d36005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561233657600080fd5b505af115801561234a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236f91906127ad565b5050505050565b804710156123c65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b3c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612413576040519150601f19603f3d011682016040523d82523d6000602084013e612418565b606091505b5050905080610bac5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b3c565b803561249a81612b12565b919050565b6000602082840312156124b157600080fd5b81356124bc81612afd565b9392505050565b6000602082840312156124d557600080fd5b81516124bc81612afd565b600080604083850312156124f357600080fd5b82356124fe81612afd565b9150602083013561250e81612afd565b809150509250929050565b60008060006060848603121561252e57600080fd5b833561253981612afd565b9250602084013561254981612afd565b929592945050506040919091013590565b6000806040838503121561256d57600080fd5b823561257881612afd565b9150602083013561250e81612b12565b6000806040838503121561259b57600080fd5b82356125a681612afd565b946020939093013593505050565b600080604083850312156125c757600080fd5b823567ffffffffffffffff808211156125df57600080fd5b818501915085601f8301126125f357600080fd5b813560208282111561260757612607612ae7565b8160051b92506126188184016128d6565b8281528181019085830185870184018b101561263357600080fd5b600096505b84871015612662578035955061264d86612afd565b85835260019690960195918301918301612638565b509650612672905087820161248f565b9450505050509250929050565b60006020828403121561269157600080fd5b81356124bc81612b12565b6000602082840312156126ae57600080fd5b81516124bc81612b12565b600080604083850312156126cc57600080fd5b82356125a681612b12565b6000806000606084860312156126ec57600080fd5b83356126f781612b12565b95602085013595506040909401359392505050565b60006080828403121561271e57600080fd5b6040516080810181811067ffffffffffffffff8211171561274157612741612ae7565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60006020828403121561278457600080fd5b5035919050565b6000806040838503121561279e57600080fd5b50508035926020909101359150565b6000806000606084860312156127c257600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612808578581018301518582016040015282016127ec565b8181111561281a576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128b55784516001600160a01b031683529383019391830191600101612890565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128ff576128ff612ae7565b604052919050565b6000821982111561291a5761291a612abb565b500190565b60008261293c57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561297c57816000190482111561296257612962612abb565b8085161561296f57918102915b93841c9390800290612946565b509250929050565b60006124bc60ff84168360008261299d57506001610b0c565b816129aa57506000610b0c565b81600181146129c057600281146129ca576129e6565b6001915050610b0c565b60ff8411156129db576129db612abb565b50506001821b610b0c565b5060208310610133831016604e8410600b8410161715612a09575081810a610b0c565b612a138383612941565b8060001904821115612a2757612a27612abb565b029392505050565b6000816000190483118215151615612a4957612a49612abb565b500290565b600082821015612a6057612a60612abb565b500390565b600181811c90821680612a7957607f821691505b60208210811415612a9a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ab457612ab4612abb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461151557600080fd5b801515811461151557600080fdfea264697066735822122016aa755fb5785de5a7d2f2a6157c5d61af46d5366cc76e88ef171a4ec5c874e564736f6c63430008070033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAdd (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

13601:13787:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16640:161;;;;;;;;;;-1:-1:-1;16640:161:0;;;;;:::i;:::-;;:::i;:::-;;;7378:14:1;;7371:22;7353:41;;7341:2;7326:18;16640:161:0;7213:187:1;26537:202:0;;;;;;;;;;-1:-1:-1;26537:202:0;;;;;:::i;:::-;;:::i;:::-;;24107:152;;;;;;;;;;-1:-1:-1;24107:152:0;;;;;:::i;:::-;;:::i;25831:210::-;;;;;;;;;;-1:-1:-1;25831:210:0;;;;;:::i;:::-;;:::i;13871:57::-;;;;;;;;;;;;;;;;;;;15304:25:1;;;15292:2;15277:18;13871:57:0;15158:177:1;3497:108:0;;;;;;;;;;-1:-1:-1;3585:12:0;;3497:108;;25425:103;;;;;;;;;;-1:-1:-1;25425:103:0;;;;;:::i;:::-;;:::i;16809:448::-;;;;;;;;;;-1:-1:-1;16809:448:0;;;;;:::i;:::-;;:::i;14103:28::-;;;;;;;;;;;;;;;;3339:93;;;;;;;;;;-1:-1:-1;3339:93:0;;3422:2;16863:36:1;;16851:2;16836:18;3339:93:0;16721:184:1;14361:72:0;;;;;;;;;;-1:-1:-1;14361:72:0;;;;-1:-1:-1;;;;;14361:72:0;;;;;;-1:-1:-1;;;;;6278:32:1;;;6260:51;;6248:2;6233:18;14361:72:0;6114:203:1;26409:120:0;;;;;;;;;;-1:-1:-1;26409:120:0;;;;;:::i;:::-;;:::i;17265:248::-;;;;;;;;;;-1:-1:-1;17265:248:0;;;;;:::i;:::-;;:::i;24843:334::-;;;;;;;;;;-1:-1:-1;24843:334:0;;;;;:::i;:::-;;:::i;24680:155::-;;;;;;;;;;-1:-1:-1;24680:155:0;;;;;:::i;:::-;;:::i;24267:177::-;;;;;;;;;;-1:-1:-1;24267:177:0;;;;;:::i;:::-;;:::i;13828:34::-;;;;;;;;;;-1:-1:-1;13828:34:0;;;;-1:-1:-1;;;13828:34:0;;;;;;26747:184;;;;;;;;;;-1:-1:-1;26747:184:0;;;;;:::i;:::-;;:::i;25697:126::-;;;;;;;;;;-1:-1:-1;25697:126:0;;;;;:::i;:::-;;:::i;14853:47::-;;;;;;;;;;-1:-1:-1;14853:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13989:48;;;;;;;;;;;;;;;;14044:50;;;;;;;;;;;;;;;;13935:47;;;;;;;;;;;;;;;;3668:127;;;;;;;;;;-1:-1:-1;3668:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;12264:94;;;;;;;;;;;;;:::i;14657:38::-;;;;;;;;;;-1:-1:-1;14657:38:0;;;;;;;;;;;;;;;;;;;16556:25:1;;;16612:2;16597:18;;16590:34;;;;16640:18;;;16633:34;16698:2;16683:18;;16676:34;16543:3;16528:19;14657:38:0;16325:391:1;14203:75:0;;;;;;;;;;-1:-1:-1;14203:75:0;;;;-1:-1:-1;;;;;14203:75:0;;;24558:114;;;;;;;;;;-1:-1:-1;24558:114:0;;;;;:::i;:::-;;:::i;26187:214::-;;;;;;;;;;-1:-1:-1;26187:214:0;;;;;:::i;:::-;;:::i;14437:79::-;;;;;;;;;;;;14474:42;14437:79;;27193:137;;;;;;;;;;-1:-1:-1;27193:137:0;;;;;:::i;:::-;;:::i;12041:87::-;;;;;;;;;;-1:-1:-1;12114:6:0;;-1:-1:-1;;;;;12114:6:0;12041:87;;14285:69;;;;;;;;;;-1:-1:-1;14285:69:0;;;;-1:-1:-1;;;;;14285:69:0;;;2596:104;;;;;;;;;;;;;:::i;27071:114::-;;;;;;;;;;-1:-1:-1;27071:114:0;;;;;:::i;:::-;;:::i;17521:410::-;;;;;;;;;;-1:-1:-1;17521:410:0;;;;;:::i;:::-;;:::i;13712:19::-;;;;;;;;;;-1:-1:-1;13712:19:0;;;;-1:-1:-1;;;;;13712:19:0;;;17939:165;;;;;;;;;;-1:-1:-1;17939:165:0;;;;;:::i;:::-;;:::i;25185:115::-;;;;;;;;;;-1:-1:-1;25185:115:0;;;;;:::i;:::-;;:::i;26049:130::-;;;;;;;;;;-1:-1:-1;26049:130:0;;;;;:::i;:::-;;:::i;14753:41::-;;;;;;;;;;-1:-1:-1;14753:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;25308:109;;;;;;;;;;-1:-1:-1;25308:109:0;;;;;:::i;:::-;;:::i;15019:40::-;;;;;;;;;;;;;;;;26939:124;;;;;;;;;;-1:-1:-1;26939:124:0;;;;;:::i;:::-;;:::i;4287:201::-;;;;;;;;;;-1:-1:-1;4287:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4453:18:0;;;4421:7;4453:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4287:201;24452:98;;;;;;;;;;-1:-1:-1;24452:98:0;;;;;:::i;:::-;;:::i;25536:153::-;;;;;;;;;;-1:-1:-1;25536:153:0;;;;;:::i;:::-;;:::i;14978:34::-;;;;;;;;;;-1:-1:-1;14978:34:0;;;;;;;;12366:192;;;;;;;;;;-1:-1:-1;12366:192:0;;;;;:::i;:::-;;:::i;14702:42::-;;;;;;;;;;-1:-1:-1;14702:42:0;;;;;;;;;;;;;;;13684:21;;;;;;;;;;-1:-1:-1;13684:21:0;;;;-1:-1:-1;;;;;13684:21:0;;;13783:38;;;;;;;;;;-1:-1:-1;13783:38:0;;;;-1:-1:-1;;;13783:38:0;;;;;;14801:45;;;;;;;;;;-1:-1:-1;14801:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2377:100;2431:13;2464:5;2457:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;:::o;16640:161::-;16715:4;16732:39;179:10;16755:7;16764:6;16732:8;:39::i;:::-;-1:-1:-1;16789:4:0;16640:161;;;;;:::o;26537:202::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;;;;;;;;;26634:9:::1;26629:103;26653:8;:15;26649:1;:19;26629:103;;;26715:5;26690:9;:22;26700:8;26709:1;26700:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26690:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26690:22:0;:30;;-1:-1:-1;;26690:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26670:3;::::1;::::0;::::1;:::i;:::-;;;;26629:103;;;;26537:202:::0;;:::o;24107:152::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24225:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;24225:26:0::1;-1:-1:-1::0;;;;24225:26:0;;::::1;::::0;;;::::1;::::0;;24107:152::o;25831:210::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25932:9:::1;25927:107;25951:8;:15;25947:1;:19;25927:107;;;26017:5;25988:13;:26;26002:8;26011:1;26002:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25988:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25988:26:0;:34;;-1:-1:-1;;25988:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25968:3;::::1;::::0;::::1;:::i;:::-;;;;25927:107;;25425:103:::0;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25499:9:::1;:21:::0;;-1:-1:-1;;;;;;25499:21:0::1;-1:-1:-1::0;;;;;25499:21:0;;;::::1;::::0;;;::::1;::::0;;25425:103::o;16809:448::-;16941:4;16958:36;16968:6;16976:9;16987:6;16958:9;:36::i;:::-;-1:-1:-1;;;;;17034:19:0;;17007:24;17034:19;;;:11;:19;;;;;;;;179:10;17034:33;;;;;;;;17086:26;;;;17078:79;;;;-1:-1:-1;;;17078:79:0;;11557:2:1;17078:79:0;;;11539:21:1;11596:2;11576:18;;;11569:30;11635:34;11615:18;;;11608:62;-1:-1:-1;;;11686:18:1;;;11679:38;11734:19;;17078:79:0;11355:404:1;17078:79:0;17168:57;17177:6;179:10;17199:25;17218:6;17199:16;:25;:::i;:::-;17168:8;:57::i;:::-;-1:-1:-1;17245:4:0;;16809:448;-1:-1:-1;;;;16809:448:0:o;26409:120::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26494:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;26494:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26409:120::o;17265:248::-;179:10;17381:4;17435:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17435:34:0;;;;;;;;;;17381:4;;17403:80;;17426:7;;17435:47;;17472:10;;17435:47;:::i;24843:334::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24988:8:::1;:20:::0;;;25019:9:::1;:22:::0;;;25052:14:::1;:22:::0;;-1:-1:-1;;;;25085:26:0;-1:-1:-1;;;25052:22:0;::::1;;::::0;;::::1;-1:-1:-1::0;;;;25085:26:0;;;;;-1:-1:-1;;;25085:26:0;::::1;;::::0;;;-1:-1:-1;25126:13:0::1;25122:47;;;25157:12;25141:13;:28:::0;24843:334;;;:::o;24680:155::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24775:6:::1;:27:::0;;-1:-1:-1;;;;;24775:27:0;;::::1;-1:-1:-1::0;;;;;;24775:27:0;;::::1;;::::0;;;24813:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;24680:155::o;24267:177::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24422:14:::1;3422:2:::0;24422::::1;:14;:::i;:::-;24409:27;::::0;:10;:27:::1;:::i;:::-;24383:23;:53:::0;-1:-1:-1;24267:177:0:o;26747:184::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26859:14:::1;3422:2:::0;26859::::1;:14;:::i;:::-;26850:23;::::0;:6;:23:::1;:::i;:::-;26836:11;:37:::0;26909:14:::1;3422:2:::0;26909::::1;:14;:::i;:::-;26899:24;::::0;:7;:24:::1;:::i;:::-;26884:12;:39:::0;-1:-1:-1;;26747:184:0:o;25697:126::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25785:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;25785:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25697:126::o;12264:94::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;12329:21:::1;12347:1;12329:9;:21::i;:::-;12264:94::o:0;24558:114::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24640:24;;:9:::1;:24:::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;24558:114::o;26187:214::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26290:9:::1;26285:109;26309:8;:15;26305:1;:19;26285:109;;;26377:5;26346:15;:28;26362:8;26371:1;26362:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26346:28:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26346:28:0;:36;;-1:-1:-1;;26346:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26326:3;::::1;::::0;::::1;:::i;:::-;;;;26285:109;;27193:137:::0;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27304:9:::1;::::0;27278:44:::1;::::0;-1:-1:-1;;;27278:44:0;;-1:-1:-1;;;;;27304:9:0;;::::1;27278:44;::::0;::::1;6496:51:1::0;6563:18;;;6556:34;;;27278:25:0;;::::1;::::0;::::1;::::0;6469:18:1;;27278:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2596:104::-:0;2652:13;2685:7;2678:14;;;;;:::i;27071:114::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27147:9:::1;::::0;27139:38:::1;::::0;-1:-1:-1;;;;;27147:9:0;;::::1;::::0;27139:38;::::1;;;::::0;27167:9;;27147::::1;27139:38:::0;27147:9;27139:38;27167:9;27147;27139:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27071:114:::0;:::o;17521:410::-;179:10;17642:4;17691:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17691:34:0;;;;;;;;;;17744:35;;;;17736:85;;;;-1:-1:-1;;;17736:85:0;;14954:2:1;17736:85:0;;;14936:21:1;14993:2;14973:18;;;14966:30;15032:34;15012:18;;;15005:62;-1:-1:-1;;;15083:18:1;;;15076:35;15128:19;;17736:85:0;14752:401:1;17736:85:0;17832:67;179:10;17855:7;17864:34;17883:15;17864:16;:34;:::i;17832:67::-;-1:-1:-1;17919:4:0;;17521:410;-1:-1:-1;;;17521:410:0:o;17939:165::-;18017:4;18034:40;18044:10;18056:9;18067:6;18034:9;:40::i;25185:115::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25265:15:::1;:27:::0;;-1:-1:-1;;;;;;25265:27:0::1;-1:-1:-1::0;;;;;25265:27:0;;;::::1;::::0;;;::::1;::::0;;25185:115::o;26049:130::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26139:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;26139:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26049:130::o;25308:109::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25385:12:::1;:24:::0;;-1:-1:-1;;;;;;25385:24:0::1;-1:-1:-1::0;;;;;25385:24:0;;;::::1;::::0;;;::::1;::::0;;25308:109::o;26939:124::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27041:14:::1;3422:2:::0;27041::::1;:14;:::i;:::-;27032:23;::::0;:6;:23:::1;:::i;:::-;27015:14;:40:::0;-1:-1:-1;26939:124:0:o;24452:98::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24526:16;;:5:::1;:16:::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;24452:98::o;25536:153::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25631:16:::1;:4:::0;25638:9:::1;25631:16;:::i;:::-;25616:12;:31:::0;-1:-1:-1;25658:15:0::1;:23:::0;;-1:-1:-1;;25658:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25536:153::o;12366:192::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12455:22:0;::::1;12447:73;;;::::0;-1:-1:-1;;;12447:73:0;;9194:2:1;12447:73:0::1;::::0;::::1;9176:21:1::0;9233:2;9213:18;;;9206:30;9272:34;9252:18;;;9245:62;-1:-1:-1;;;9323:18:1;;;9316:36;9369:19;;12447:73:0::1;8992:402:1::0;12447:73:0::1;12531:19;12541:8;12531:9;:19::i;:::-;12366:192:::0;:::o;10340:380::-;-1:-1:-1;;;;;10476:19:0;;10468:68;;;;-1:-1:-1;;;10468:68:0;;14190:2:1;10468:68:0;;;14172:21:1;14229:2;14209:18;;;14202:30;14268:34;14248:18;;;14241:62;-1:-1:-1;;;14319:18:1;;;14312:34;14363:19;;10468:68:0;13988:400:1;10468:68:0;-1:-1:-1;;;;;10555:21:0;;10547:68;;;;-1:-1:-1;;;10547:68:0;;9601:2:1;10547:68:0;;;9583:21:1;9640:2;9620:18;;;9613:30;9679:34;9659:18;;;9652:62;-1:-1:-1;;;9730:18:1;;;9723:32;9772:19;;10547:68:0;9399:398:1;10547:68:0;-1:-1:-1;;;;;10628:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10680:32;;15304:25:1;;;10680:32:0;;15277:18:1;10680:32:0;;;;;;;10340:380;;;:::o;18112:3209::-;18262:1;18253:6;:10;18245:64;;;;-1:-1:-1;;;18245:64:0;;12327:2:1;18245:64:0;;;12309:21:1;12366:2;12346:18;;;12339:30;12405:34;12385:18;;;12378:62;-1:-1:-1;;;12456:18:1;;;12449:39;12505:19;;18245:64:0;12125:405:1;18245:64:0;-1:-1:-1;;;;;18343:21:0;;;;;;:13;:21;;;;;;;;18342:22;:51;;;;-1:-1:-1;;;;;;18369:24:0;;;;;;:13;:24;;;;;;;;18368:25;18342:51;18320:126;;;;-1:-1:-1;;;18320:126:0;;13430:2:1;18320:126:0;;;13412:21:1;13469:2;13449:18;;;13442:30;13508:27;13488:18;;;13481:55;13553:18;;18320:126:0;13228:349:1;18320:126:0;-1:-1:-1;;;;;18464:17:0;;;;;;:9;:17;;;;;;;;18463:18;:43;;;;-1:-1:-1;;;;;;18486:20:0;;;;;;:9;:20;;;;;;;;18485:21;18463:43;18459:122;;;18531:14;;-1:-1:-1;;;18531:14:0;;;;18523:46;;;;-1:-1:-1;;;18523:46:0;;12737:2:1;18523:46:0;;;12719:21:1;12776:2;12756:18;;;12749:30;-1:-1:-1;;;12795:18:1;;;12788:49;12854:18;;18523:46:0;12535:343:1;18523:46:0;18607:4;;-1:-1:-1;;;;;18597:14:0;;;18607:4;;18597:14;:39;;;;-1:-1:-1;;;;;;18616:20:0;;;;;;:9;:20;;;;;;;;18615:21;18597:39;:59;;;;-1:-1:-1;18641:15:0;;-1:-1:-1;;;18641:15:0;;;;18640:16;18597:59;18593:311;;;18691:11;;18681:6;:21;;18673:63;;;;-1:-1:-1;;;18673:63:0;;8836:2:1;18673:63:0;;;8818:21:1;8875:2;8855:18;;;8848:30;8914:31;8894:18;;;8887:59;8963:18;;18673:63:0;8634:353:1;18673:63:0;18810:14;;18800:6;18777:20;18787:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;18777:20;:29;;;;:::i;:::-;:47;;18751:141;;;;-1:-1:-1;;;18751:141:0;;10411:2:1;18751:141:0;;;10393:21:1;;;10430:18;;;10423:30;10489:34;10469:18;;;10462:62;10541:18;;18751:141:0;10209:356:1;18751:141:0;18944:4;;-1:-1:-1;;;;;18934:14:0;;;18944:4;;18934:14;;;;:39;;-1:-1:-1;;;;;;18953:20:0;;;;;;:9;:20;;;;;;;;18952:21;18934:39;:61;;;;-1:-1:-1;;;;;;18978:17:0;;;;;;:9;:17;;;;;;;;18977:18;18934:61;:81;;;;-1:-1:-1;19000:15:0;;-1:-1:-1;;;19000:15:0;;;;18999:16;18934:81;18916:682;;;19060:12;;19050:6;:22;;19042:65;;;;-1:-1:-1;;;19042:65:0;;14595:2:1;19042:65:0;;;14577:21:1;14634:2;14614:18;;;14607:30;14673:32;14653:18;;;14646:60;14723:18;;19042:65:0;14393:354:1;19042:65:0;19139:4;;-1:-1:-1;;;;;19126:17:0;;;19139:4;;19126:17;19122:211;;19227:14;;19217:6;19194:20;19204:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;19194:20;:29;;;;:::i;:::-;:47;;19164:153;;;;-1:-1:-1;;;19164:153:0;;10411:2:1;19164:153:0;;;10393:21:1;;;10430:18;;;10423:30;10489:34;10469:18;;;10462:62;10541:18;;19164:153:0;10209:356:1;19164:153:0;19351:15;;;;19347:240;;;-1:-1:-1;;;;;19426:17:0;;19387:18;19426:17;;;:9;:17;;;;;;19408:35;;:15;:35;:::i;:::-;19387:56;;19484:12;;19470:10;:26;;19462:55;;;;-1:-1:-1;;;19462:55:0;;13085:2:1;19462:55:0;;;13067:21:1;13124:2;13104:18;;;13097:30;-1:-1:-1;;;13143:18:1;;;13136:46;13199:18;;19462:55:0;12883:340:1;19462:55:0;-1:-1:-1;;;;;;19536:17:0;;;;;;:9;:17;;;;;19556:15;19536:35;;19347:240;19610:15;19636:14;19661:11;19683:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19683:25:0;-1:-1:-1;;;;;19742:17:0;;19721;19742;;;:9;:17;;;;;;;;19741:18;:56;;;;-1:-1:-1;;;;;;19777:20:0;;;;;;:9;:20;;;;;;;;19776:21;19741:56;:112;;;;;19845:8;;19829:13;;:24;;;;:::i;:::-;19814:12;:39;19741:112;19941:15;;19721:132;;-1:-1:-1;;;;19941:15:0;;;;;:36;;-1:-1:-1;;;;;;19960:17:0;;;;;;:9;:17;;;;;;;;19941:36;:60;;;-1:-1:-1;;;;;;19981:20:0;;;;;;:9;:20;;;;;;;;19941:60;19937:800;;;20022:1;20016:7;;19937:800;;;20087:4;;-1:-1:-1;;;;;20074:17:0;;;20087:4;;20074:17;:34;;;;;20096:12;20095:13;20074:34;20070:667;;;20282:13;;20230:16;;20282:9;20191:19;20152;;:58;;20191:19;20152:58;:::i;:::-;:94;;;;:::i;:::-;:143;;;;:::i;:::-;20342:24;;;;;;;;20357:9;20342:24;;;;;;;;;;;;;;;;;;;;;;;;20125:170;;-1:-1:-1;20125:170:0;;-1:-1:-1;20342:24:0;-1:-1:-1;20070:667:0;;;20389:12;20384:353;;20547:9;;20515:12;;20547:5;20480:15;20445;;:50;;20480:15;20445:50;:::i;:::-;:82;;;;:::i;:::-;:111;;;;:::i;:::-;20602:20;;;;;;;;20617:5;20602:20;;;;;;;;;;;;;;;;;;;;;;;;20418:138;;-1:-1:-1;20418:138:0;;-1:-1:-1;20602:20:0;-1:-1:-1;20384:353:0;;;20644:12;20640:97;;;20683:9;;;-1:-1:-1;20683:9:0;;-1:-1:-1;20640:97:0;20775:3;20756:15;20765:6;20756;:15;:::i;:::-;20755:23;;;;:::i;:::-;20892:18;;20749:29;;-1:-1:-1;;;;20892:18:0;;;;:36;;;;-1:-1:-1;20924:4:0;;-1:-1:-1;;;;;20914:14:0;;;20924:4;;20914:14;;20892:36;20888:76;;;20930:34;20942:7;20951:12;20930:11;:34::i;:::-;21006:48;21022:6;21030:9;21041:12;21050:3;21041:6;:12;:::i;:::-;21006:15;:48::i;:::-;21069:7;;21065:249;;21141:11;;21137:164;;21173:17;21214:3;21194:16;21203:7;21194:6;:16;:::i;:::-;21193:24;;;;:::i;:::-;21173:44;;21236:49;21252:6;21268:4;21275:9;21236:15;:49::i;:::-;21154:147;21137:164;18234:3087;;;;;18112:3209;;;:::o;12566:173::-;12641:6;;;-1:-1:-1;;;;;12658:17:0;;;-1:-1:-1;;;;;;12658:17:0;;;;;;;12691:40;;12641:6;;;12658:17;12641:6;;12691:40;;12622:16;;12691:40;12611:128;12566:173;:::o;21329:1723::-;15105:15;;-1:-1:-1;;;15105:15:0;;;;15100:125;;15137:15;:22;;-1:-1:-1;;;;15137:22:0;-1:-1:-1;;;15137:22:0;;;21464:4:::1;-1:-1:-1::0;3769:18:0;;;;;;;;;;;21420:50:::1;;21504:23;;21485:15;:42;21481:1564;;21574:1;21548:23;;:27;21544:109;;;-1:-1:-1::0;21614:23:0::1;::::0;21544:109:::1;21724:19;21746:11;:7:::0;21756:1:::1;21746:11;:::i;:::-;21724:33;;21772:32;21866:11;21826:9;:19;;;21808:15;:37;;;;:::i;:::-;21807:70;;;;:::i;:::-;21772:105:::0;-1:-1:-1;21892:14:0::1;21909:42;21772:105:::0;21909:15;:42:::1;:::i;:::-;21892:59:::0;-1:-1:-1;21993:21:0::1;22031:24;21892:59:::0;22031:16:::1;:24::i;:::-;22072:20;22095:38;22119:14:::0;22095:21:::1;:38;:::i;:::-;22072:61;;22148:19;22200:9;:19;;;22186:11;:33;;;;:::i;:::-;22170:50;::::0;:12;:50:::1;:::i;:::-;22148:72;;22235:29;22281:9;:19;;;22267:11;:33;;;;:::i;:::-;22235:65:::0;-1:-1:-1;22321:25:0;;22317:172:::1;;22412:61;22425:24;22451:21;22412:12;:61::i;:::-;22546:19:::0;;22505:20:::1;::::0;22528:15:::1;:11:::0;22542:1:::1;22528:15;:::i;:::-;:37;;;;:::i;:::-;22505:60:::0;-1:-1:-1;22584:16:0;;22580:105:::1;;22629:15;::::0;22621:48:::1;::::0;-1:-1:-1;;;;;22629:15:0::1;22656:12:::0;22621:34:::1;:48::i;:::-;22739:16;::::0;::::1;::::0;22701:17:::1;::::0;22721:15:::1;:11:::0;22735:1:::1;22721:15;:::i;:::-;:34;;;;:::i;:::-;22701:54:::0;-1:-1:-1;22774:13:0;;22770:96:::1;;22816:12;::::0;22808:42:::1;::::0;-1:-1:-1;;;;;22816:12:0::1;22840:9:::0;22808:31:::1;:42::i;:::-;22917:13;::::0;::::1;::::0;22882:14:::1;::::0;22899:15:::1;:11:::0;22913:1:::1;22899:15;:::i;:::-;:31;;;;:::i;:::-;22882:48:::0;-1:-1:-1;22949:10:0;;22945:87:::1;;22988:9;::::0;22980:36:::1;::::0;-1:-1:-1;;;;;22988:9:0::1;23009:6:::0;22980:28:::1;:36::i;:::-;21529:1516;;;;;;;;;;21481:1564;-1:-1:-1::0;15190:15:0;:23;;-1:-1:-1;;;;15190:23:0;;;21329:1723;;:::o;7800:638::-;-1:-1:-1;;;;;7940:20:0;;7932:70;;;;-1:-1:-1;;;7932:70:0;;13784:2:1;7932:70:0;;;13766:21:1;13823:2;13803:18;;;13796:30;13862:34;13842:18;;;13835:62;-1:-1:-1;;;13913:18:1;;;13906:35;13958:19;;7932:70:0;13582:401:1;7932:70:0;-1:-1:-1;;;;;8021:23:0;;8013:71;;;;-1:-1:-1;;;8013:71:0;;8432:2:1;8013:71:0;;;8414:21:1;8471:2;8451:18;;;8444:30;8510:34;8490:18;;;8483:62;-1:-1:-1;;;8561:18:1;;;8554:33;8604:19;;8013:71:0;8230:399:1;8013:71:0;-1:-1:-1;;;;;8181:17:0;;8157:21;8181:17;;;;;;;;;;;8217:23;;;;8209:74;;;;-1:-1:-1;;;8209:74:0;;10004:2:1;8209:74:0;;;9986:21:1;10043:2;10023:18;;;10016:30;10082:34;10062:18;;;10055:62;-1:-1:-1;;;10133:18:1;;;10126:36;10179:19;;8209:74:0;9802:402:1;8209:74:0;8314:22;8330:6;8314:13;:22;:::i;:::-;-1:-1:-1;;;;;8294:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8347:20;;;;;;;;:30;;8371:6;;8294:9;8347:30;;8371:6;;8347:30;:::i;:::-;;;;;;;;8412:9;-1:-1:-1;;;;;8395:35:0;8404:6;-1:-1:-1;;;;;8395:35:0;;8423:6;8395:35;;;;15304:25:1;;15292:2;15277:18;;15158:177;8395:35:0;;;;;;;;7921:517;7800:638;;;:::o;23060:534::-;23210:16;;;23224:1;23210:16;;;;;;;;23186:21;;23210:16;;;;;;;;;;-1:-1:-1;23210:16:0;23186:40;;23255:4;23237;23242:1;23237:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23237:23:0;;;:7;;;;;;;;;;:23;;;;23281:6;;:13;;;-1:-1:-1;;;23281:13:0;;;;:6;;;;;:11;;:13;;;;;23237:7;;23281:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23271:4;23276:1;23271:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23271:23:0;;;:7;;;;;;;;;:23;23339:6;;23307:53;;23324:4;;23339:6;23348:11;23307:8;:53::i;:::-;23399:6;;:187;;-1:-1:-1;;;23399:187:0;;-1:-1:-1;;;;;23399:6:0;;;;:57;;:187;;23471:11;;23399:6;;23513:4;;23540;;23560:15;;23399:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23115:479;23060:534;:::o;23602:497::-;23782:6;;23750:53;;23767:4;;-1:-1:-1;;;;;23782:6:0;23791:11;23750:8;:53::i;:::-;23846:6;;-1:-1:-1;;;;;23846:6:0;:22;23877:9;23911:4;23931:11;23846:6;;24043:7;12114:6;;-1:-1:-1;;;;;12114:6:0;;12041:87;24043:7;23846:245;;;;;;-1:-1:-1;;;;;;23846:245:0;;;-1:-1:-1;;;;;6960:15:1;;;23846:245:0;;;6942:34:1;6992:18;;;6985:34;;;;7035:18;;;7028:34;;;;7078:18;;;7071:34;7142:15;;;7121:19;;;7114:44;24065:15:0;7174:19:1;;;7167:35;6876:19;;23846:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23602:497;;:::o;11484:319::-;11599:6;11574:21;:31;;11566:73;;;;-1:-1:-1;;;11566:73:0;;11199:2:1;11566:73:0;;;11181:21:1;11238:2;11218:18;;;11211:30;11277:31;11257:18;;;11250:59;11326:18;;11566:73:0;10997:353:1;11566:73:0;11653:12;11671:9;-1:-1:-1;;;;;11671:14:0;11694:6;11671:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11652:54;;;11725:7;11717:78;;;;-1:-1:-1;;;11717:78:0;;10772:2:1;11717:78:0;;;10754:21:1;10811:2;10791:18;;;10784:30;10850:34;10830:18;;;10823:62;10921:28;10901:18;;;10894:56;10967:19;;11717:78:0;10570:422:1;14:128;79:20;;108:28;79:20;108:28;:::i;:::-;14:128;;;:::o;147:247::-;206:6;259:2;247:9;238:7;234:23;230:32;227:52;;;275:1;272;265:12;227:52;314:9;301:23;333:31;358:5;333:31;:::i;:::-;383:5;147:247;-1:-1:-1;;;147:247:1:o;399:251::-;469:6;522:2;510:9;501:7;497:23;493:32;490:52;;;538:1;535;528:12;490:52;570:9;564:16;589:31;614:5;589:31;:::i;655:388::-;723:6;731;784:2;772:9;763:7;759:23;755:32;752:52;;;800:1;797;790:12;752:52;839:9;826:23;858:31;883:5;858:31;:::i;:::-;908:5;-1:-1:-1;965:2:1;950:18;;937:32;978:33;937:32;978:33;:::i;:::-;1030:7;1020:17;;;655:388;;;;;:::o;1048:456::-;1125:6;1133;1141;1194:2;1182:9;1173:7;1169:23;1165:32;1162:52;;;1210:1;1207;1200:12;1162:52;1249:9;1236:23;1268:31;1293:5;1268:31;:::i;:::-;1318:5;-1:-1:-1;1375:2:1;1360:18;;1347:32;1388:33;1347:32;1388:33;:::i;:::-;1048:456;;1440:7;;-1:-1:-1;;;1494:2:1;1479:18;;;;1466:32;;1048:456::o;1509:382::-;1574:6;1582;1635:2;1623:9;1614:7;1610:23;1606:32;1603:52;;;1651:1;1648;1641:12;1603:52;1690:9;1677:23;1709:31;1734:5;1709:31;:::i;:::-;1759:5;-1:-1:-1;1816:2:1;1801:18;;1788:32;1829:30;1788:32;1829:30;:::i;1896:315::-;1964:6;1972;2025:2;2013:9;2004:7;2000:23;1996:32;1993:52;;;2041:1;2038;2031:12;1993:52;2080:9;2067:23;2099:31;2124:5;2099:31;:::i;:::-;2149:5;2201:2;2186:18;;;;2173:32;;-1:-1:-1;;;1896:315:1:o;2216:1102::-;2306:6;2314;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2423:9;2410:23;2452:18;2493:2;2485:6;2482:14;2479:34;;;2509:1;2506;2499:12;2479:34;2547:6;2536:9;2532:22;2522:32;;2592:7;2585:4;2581:2;2577:13;2573:27;2563:55;;2614:1;2611;2604:12;2563:55;2650:2;2637:16;2672:4;2695:2;2691;2688:10;2685:36;;;2701:18;;:::i;:::-;2747:2;2744:1;2740:10;2730:20;;2770:28;2794:2;2790;2786:11;2770:28;:::i;:::-;2832:15;;;2863:12;;;;2895:11;;;2925;;;2921:20;;2918:33;-1:-1:-1;2915:53:1;;;2964:1;2961;2954:12;2915:53;2986:1;2977:10;;2996:238;3010:2;3007:1;3004:9;2996:238;;;3081:3;3068:17;3055:30;;3098:31;3123:5;3098:31;:::i;:::-;3142:18;;;3028:1;3021:9;;;;;3180:12;;;;3212;;2996:238;;;-1:-1:-1;3253:5:1;-1:-1:-1;3277:35:1;;-1:-1:-1;3293:18:1;;;3277:35;:::i;:::-;3267:45;;;;;;2216:1102;;;;;:::o;3323:241::-;3379:6;3432:2;3420:9;3411:7;3407:23;3403:32;3400:52;;;3448:1;3445;3438:12;3400:52;3487:9;3474:23;3506:28;3528:5;3506:28;:::i;3569:245::-;3636:6;3689:2;3677:9;3668:7;3664:23;3660:32;3657:52;;;3705:1;3702;3695:12;3657:52;3737:9;3731:16;3756:28;3778:5;3756:28;:::i;3819:309::-;3884:6;3892;3945:2;3933:9;3924:7;3920:23;3916:32;3913:52;;;3961:1;3958;3951:12;3913:52;4000:9;3987:23;4019:28;4041:5;4019:28;:::i;4133:377::-;4207:6;4215;4223;4276:2;4264:9;4255:7;4251:23;4247:32;4244:52;;;4292:1;4289;4282:12;4244:52;4331:9;4318:23;4350:28;4372:5;4350:28;:::i;:::-;4397:5;4449:2;4434:18;;4421:32;;-1:-1:-1;4500:2:1;4485:18;;;4472:32;;4133:377;-1:-1:-1;;;4133:377:1:o;4515:635::-;4596:6;4649:3;4637:9;4628:7;4624:23;4620:33;4617:53;;;4666:1;4663;4656:12;4617:53;4699:2;4693:9;4741:3;4733:6;4729:16;4811:6;4799:10;4796:22;4775:18;4763:10;4760:34;4757:62;4754:88;;;4822:18;;:::i;:::-;4862:10;4858:2;4851:22;;4910:9;4897:23;4889:6;4882:39;4982:2;4971:9;4967:18;4954:32;4949:2;4941:6;4937:15;4930:57;5048:2;5037:9;5033:18;5020:32;5015:2;5007:6;5003:15;4996:57;5114:2;5103:9;5099:18;5086:32;5081:2;5073:6;5069:15;5062:57;5138:6;5128:16;;;4515:635;;;;:::o;5155:180::-;5214:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:52;;;5283:1;5280;5273:12;5235:52;-1:-1:-1;5306:23:1;;5155:180;-1:-1:-1;5155:180:1:o;5340:248::-;5408:6;5416;5469:2;5457:9;5448:7;5444:23;5440:32;5437:52;;;5485:1;5482;5475:12;5437:52;-1:-1:-1;;5508:23:1;;;5578:2;5563:18;;;5550:32;;-1:-1:-1;5340:248:1:o;5593:306::-;5681:6;5689;5697;5750:2;5738:9;5729:7;5725:23;5721:32;5718:52;;;5766:1;5763;5756:12;5718:52;5795:9;5789:16;5779:26;;5845:2;5834:9;5830:18;5824:25;5814:35;;5889:2;5878:9;5874:18;5868:25;5858:35;;5593:306;;;;;:::o;7628:597::-;7740:4;7769:2;7798;7787:9;7780:21;7830:6;7824:13;7873:6;7868:2;7857:9;7853:18;7846:34;7898:1;7908:140;7922:6;7919:1;7916:13;7908:140;;;8017:14;;;8013:23;;8007:30;7983:17;;;8002:2;7979:26;7972:66;7937:10;;7908:140;;;8066:6;8063:1;8060:13;8057:91;;;8136:1;8131:2;8122:6;8111:9;8107:22;8103:31;8096:42;8057:91;-1:-1:-1;8209:2:1;8188:15;-1:-1:-1;;8184:29:1;8169:45;;;;8216:2;8165:54;;7628:597;-1:-1:-1;;;7628:597:1:o;11764:356::-;11966:2;11948:21;;;11985:18;;;11978:30;12044:34;12039:2;12024:18;;12017:62;12111:2;12096:18;;11764:356::o;15340:980::-;15602:4;15650:3;15639:9;15635:19;15681:6;15670:9;15663:25;15707:2;15745:6;15740:2;15729:9;15725:18;15718:34;15788:3;15783:2;15772:9;15768:18;15761:31;15812:6;15847;15841:13;15878:6;15870;15863:22;15916:3;15905:9;15901:19;15894:26;;15955:2;15947:6;15943:15;15929:29;;15976:1;15986:195;16000:6;15997:1;15994:13;15986:195;;;16065:13;;-1:-1:-1;;;;;16061:39:1;16049:52;;16156:15;;;;16121:12;;;;16097:1;16015:9;15986:195;;;-1:-1:-1;;;;;;;16237:32:1;;;;16232:2;16217:18;;16210:60;-1:-1:-1;;;16301:3:1;16286:19;16279:35;16198:3;15340:980;-1:-1:-1;;;15340:980:1:o;16910:275::-;16981:2;16975:9;17046:2;17027:13;;-1:-1:-1;;17023:27:1;17011:40;;17081:18;17066:34;;17102:22;;;17063:62;17060:88;;;17128:18;;:::i;:::-;17164:2;17157:22;16910:275;;-1:-1:-1;16910:275:1:o;17190:128::-;17230:3;17261:1;17257:6;17254:1;17251:13;17248:39;;;17267:18;;:::i;:::-;-1:-1:-1;17303:9:1;;17190:128::o;17323:217::-;17363:1;17389;17379:132;;17433:10;17428:3;17424:20;17421:1;17414:31;17468:4;17465:1;17458:15;17496:4;17493:1;17486:15;17379:132;-1:-1:-1;17525:9:1;;17323:217::o;17545:422::-;17634:1;17677:5;17634:1;17691:270;17712:7;17702:8;17699:21;17691:270;;;17771:4;17767:1;17763:6;17759:17;17753:4;17750:27;17747:53;;;17780:18;;:::i;:::-;17830:7;17820:8;17816:22;17813:55;;;17850:16;;;;17813:55;17929:22;;;;17889:15;;;;17691:270;;;17695:3;17545:422;;;;;:::o;17972:140::-;18030:5;18059:47;18100:4;18090:8;18086:19;18080:4;18166:5;18196:8;18186:80;;-1:-1:-1;18237:1:1;18251:5;;18186:80;18285:4;18275:76;;-1:-1:-1;18322:1:1;18336:5;;18275:76;18367:4;18385:1;18380:59;;;;18453:1;18448:130;;;;18360:218;;18380:59;18410:1;18401:10;;18424:5;;;18448:130;18485:3;18475:8;18472:17;18469:43;;;18492:18;;:::i;:::-;-1:-1:-1;;18548:1:1;18534:16;;18563:5;;18360:218;;18662:2;18652:8;18649:16;18643:3;18637:4;18634:13;18630:36;18624:2;18614:8;18611:16;18606:2;18600:4;18597:12;18593:35;18590:77;18587:159;;;-1:-1:-1;18699:19:1;;;18731:5;;18587:159;18778:34;18803:8;18797:4;18778:34;:::i;:::-;18848:6;18844:1;18840:6;18836:19;18827:7;18824:32;18821:58;;;18859:18;;:::i;:::-;18897:20;;18117:806;-1:-1:-1;;;18117:806:1:o;18928:168::-;18968:7;19034:1;19030;19026:6;19022:14;19019:1;19016:21;19011:1;19004:9;18997:17;18993:45;18990:71;;;19041:18;;:::i;:::-;-1:-1:-1;19081:9:1;;18928:168::o;19101:125::-;19141:4;19169:1;19166;19163:8;19160:34;;;19174:18;;:::i;:::-;-1:-1:-1;19211:9:1;;19101:125::o;19231:380::-;19310:1;19306:12;;;;19353;;;19374:61;;19428:4;19420:6;19416:17;19406:27;;19374:61;19481:2;19473:6;19470:14;19450:18;19447:38;19444:161;;;19527:10;19522:3;19518:20;19515:1;19508:31;19562:4;19559:1;19552:15;19590:4;19587:1;19580:15;19444:161;;19231:380;;;:::o;19616:135::-;19655:3;-1:-1:-1;;19676:17:1;;19673:43;;;19696:18;;:::i;:::-;-1:-1:-1;19743:1:1;19732:13;;19616:135::o;19756:127::-;19817:10;19812:3;19808:20;19805:1;19798:31;19848:4;19845:1;19838:15;19872:4;19869:1;19862:15;19888:127;19949:10;19944:3;19940:20;19937:1;19930:31;19980:4;19977:1;19970:15;20004:4;20001:1;19994:15;20020:127;20081:10;20076:3;20072:20;20069:1;20062:31;20112:4;20109:1;20102:15;20136:4;20133:1;20126:15;20152:131;-1:-1:-1;;;;;20227:31:1;;20217:42;;20207:70;;20273:1;20270;20263:12;20288:118;20374:5;20367:13;20360:21;20353:5;20350:32;20340:60;;20396:1;20393;20386:12

Swarm Source

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