ETH Price: $2,855.52 (-10.20%)
Gas: 13 Gwei

Token

SPACEN (SPN)
 

Overview

Max Total Supply

10,000,000,000 SPN

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.114388642764561781 SPN

Value
$0.00
0x9F7EeCA178bbD940595f18f743d202B344ac6122
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:
SpaceN

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-09-30
*/

//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 SpaceN 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 = 20_000_000 * 10**18;
    uint256 public maxBuyLimit = 100_000_000 * 10**18;
    uint256 public maxSellLimit = 100_000_000 * 10**18;
    uint256 public maxWalletLimit = 100_000_000 * 10**18;

    uint256 public genesis_block;
    uint256 private deadline = 1;
    uint256 private launchtax = 99;

    address public marketingWallet = 0xD33932E394eA0B7aE46152ea063036A1aD301F11;
    address public devWallet = 0xe4A8B590Ed49dB7Cb93027B1bb2b7de4f1339a41;
    address public appmaintenanceWallet = 0xf3D819C23A04D24F15527624c26f0b69ae8b5552;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

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

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

    //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("SPACEN", "SPN") {
        _tokengeneration(msg.sender, 1e10 * 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[appmaintenanceWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true;
        exemptFee[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;
    }

    ////////////////////////
    // Transfer Functions //
    ////////////////////////

    function airdropTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner{
        require(accounts.length == amounts.length, "Arrays must have same size");
        for(uint256 i; i< accounts.length; i++){
            super._transfer(msg.sender, accounts[i], amounts[i]);
        }
    }

    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.appmaintenance +                
                sellTaxes.dev ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.appmaintenance +
                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 {

        if(feeswap == 0){
            return;
        }

        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 appmaintenanceAmt = unitBalance * 2 * swapTaxes.appmaintenance;
            if (appmaintenanceAmt > 0) {
                payable(appmaintenanceWallet).sendValue(appmaintenanceAmt);
            }

            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 SetBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _appmaintenance,
        uint256 _dev
    ) external onlyOwner {
        require((_marketing + _liquidity + _appmaintenance + _dev) <= 10, "Must keep fees at 10% or less");
        taxes = Taxes(_marketing, _liquidity, _appmaintenance, _dev);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _appmaintenance,
        uint256 _dev
    ) external onlyOwner {
        require((_marketing + _liquidity + _appmaintenance + _dev) <= 20, "Must keep fees at 20% or less");
        sellTaxes = Taxes(_marketing, _liquidity, _appmaintenance, _dev);
    }

    function EnableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 5,"Deadline should be less than 5 Blocks");
        deadline = _deadline;
    }

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

    function updateAppmaintenanceWallet(address newWallet) external onlyOwner {
        appmaintenanceWallet = 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 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, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e7, "Cannot set max buy amount lower than 0.1%");
        require(maxSell >= 1e7, "Cannot set max sell amount lower than 0.1%");
        require(maxWallet >= 1e7, "Cannot set max wallet amount lower than 1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 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":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_appmaintenance","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_appmaintenance","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"appmaintenanceWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"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":"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":"appmaintenance","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":"appmaintenance","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":"newWallet","type":"address"}],"name":"updateAppmaintenanceWallet","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"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556a108b2a2c280290940000006008556a52b7d2dcc80cd2e40000006009819055600a819055600b556001600d8190556063600e55600f80546001600160a01b031990811673d33932e394ea0b7ae46152ea063036a1ad301f111790915560108054821673e4a8b590ed49db7cb93027b1bb2b7de4f1339a411790556011805490911673f3d819c23a04d24f15527624c26f0b69ae8b555217905560036080819052600260a081905260c081905260e0839052601282905560138190556014819055601583905561018060405261010082905261012081905261014081905261016083905260169190915560178190556018556019819055601d805460ff19169091179055603c601e553480156200012457600080fd5b506040516200367a3803806200367a8339810160408190526200014791620006d1565b6040518060400160405280600681526020016529a820a1a2a760d11b8152506040518060400160405280600381526020016229a82760e91b81525081600390805190602001906200019a9291906200062b565b508051620001b09060049060208401906200062b565b505050620001cd620001c7620004df60201b60201c565b620004e3565b620001f733620001e06012600a62000767565b620001f1906402540be40062000828565b62000535565b336000908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b815290518493926001600160a01b0385169263c45a01559260048083019392829003018186803b1580156200025257600080fd5b505afa15801562000267573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028d9190620006d1565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d657600080fd5b505afa158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003119190620006d1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200035a57600080fd5b505af11580156200036f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003959190620006d1565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550306000908152601a6020526040808220805460ff199081166001908117909255600f54851684528284208054821683179055601154851684528284208054821683179055601054909416835290822080548416821790557f428bdc965569ef4717764ecfd84e88946a9a226b52b813e6ab6a7f46aad86e8880548416821790557f2fcec17b10d207b56bde579aeb215b58d6c4f64a986f1030b316c9e25b6b832b80548416821790557f54a07289f9bcce50727433c3935d341a715f3569b8d80545229402591066e56480548416821790557333d4cc8716beb13f814f538ad3b2de3b036f5e2a9091527fbd707750a2b98938e2aa0099e9e123f406bdd7cb1bf478b0cce8748faec1a4e88054909216179055506200089d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200059e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b8060026000828254620005b2919062000703565b90915550506001600160a01b03821660009081526020819052604081208054839290620005e190849062000703565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b82805462000639906200084a565b90600052602060002090601f0160209004810192826200065d5760008555620006a8565b82601f106200067857805160ff1916838001178555620006a8565b82800160010185558215620006a8579182015b82811115620006a85782518255916020019190600101906200068b565b50620006b6929150620006ba565b5090565b5b80821115620006b65760008155600101620006bb565b600060208284031215620006e457600080fd5b81516001600160a01b0381168114620006fc57600080fd5b9392505050565b6000821982111562000719576200071962000887565b500190565b600181815b808511156200075f57816000190482111562000743576200074362000887565b808516156200075157918102915b93841c939080029062000723565b509250929050565b6000620006fc60ff841683600082620007835750600162000822565b81620007925750600062000822565b8160018114620007ab5760028114620007b657620007d6565b600191505062000822565b60ff841115620007ca57620007ca62000887565b50506001821b62000822565b5060208310610133831016604e8410600b8410161715620007fb575081810a62000822565b6200080783836200071e565b80600019048211156200081e576200081e62000887565b0290505b92915050565b600081600019048311821515161562000845576200084562000887565b500290565b600181811c908216806200085f57607f821691505b602082108114156200088157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612dcd80620008ad6000396000f3fe6080604052600436106102e85760003560e01c806375f0a87411610190578063cfd193c1116100dc578063edaa116811610095578063f66895a31161006f578063f66895a314610909578063f887ea401461092c578063fbe6324e1461094c578063fe575a871461096d57600080fd5b8063edaa1168146108af578063ee36e359146108cf578063f2fde38b146108e957600080fd5b8063cfd193c1146107d3578063d2ce0db2146107f3578063dc820c6414610809578063dd62ed3e14610829578063e1b450ad1461086f578063e517f2b91461088f57600080fd5b806397973a2b11610149578063a8aa1b3111610123578063a8aa1b3114610743578063a9059cbb14610763578063aacebbe314610783578063c5d32bb2146107a357600080fd5b806397973a2b146106e35780639e252f0014610703578063a457c2d71461072357600080fd5b806375f0a8741461062257806385141a771461065a5780638cd4426d146106705780638da5cb5b146106905780638ea5220f146106ae57806395d89b41146106ce57600080fd5b8063313ce5671161024f578063652e2f0411610208578063706f6937116101e2578063706f69371461057457806370a0823114610594578063715018a6146105ca578063728f8eea146105df57600080fd5b8063652e2f041461053257806366a88d96146105485780636aa5b37f1461055e57600080fd5b8063313ce56714610475578063355496ca1461049157806339509351146104b157806342b6fa11146104d15780634ada218b146104f15780635b24ea5e1461051257600080fd5b80631675d802116102a15780631675d802146103d157806318160ddd146103f55780631816467f1461040a5780631d97b7cd1461042a57806323b872dd1461043f578063274a533c1461045f57600080fd5b806306fdde03146102f4578063095ea7b31461031f5780630e375a5c1461034f578063105cafb6146103715780631340538f1461039157806313f97a8e146103b157600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030961099d565b6040516103169190612a2e565b60405180910390f35b34801561032b57600080fd5b5061033f61033a3660046127fc565b610a2f565b6040519015158152602001610316565b34801561035b57600080fd5b5061036f61036a3660046128ea565b610a46565b005b34801561037d57600080fd5b5061036f61038c3660046129fc565b610ae5565b34801561039d57600080fd5b5061036f6103ac366004612931565b610bb3565b3480156103bd57600080fd5b5061036f6103cc3660046128ea565b610bfb565b3480156103dd57600080fd5b506103e760085481565b604051908152602001610316565b34801561040157600080fd5b506002546103e7565b34801561041657600080fd5b5061036f610425366004612713565b610c8c565b34801561043657600080fd5b5061036f610cd8565b34801561044b57600080fd5b5061033f61045a36600461278d565b610d77565b34801561046b57600080fd5b506103e7600c5481565b34801561048157600080fd5b5060405160128152602001610316565b34801561049d57600080fd5b5061036f6104ac3660046127ce565b610e28565b3480156104bd57600080fd5b5061033f6104cc3660046127fc565b610e7d565b3480156104dd57600080fd5b5061036f6104ec366004612989565b610eb4565b3480156104fd57600080fd5b5060075461033f90600160b01b900460ff1681565b34801561051e57600080fd5b5061036f61052d3660046127ce565b610efa565b34801561053e57600080fd5b506103e7600a5481565b34801561055457600080fd5b506103e7600b5481565b34801561056a57600080fd5b506103e760095481565b34801561058057600080fd5b5061036f61058f366004612828565b610f4f565b3480156105a057600080fd5b506103e76105af366004612713565b6001600160a01b031660009081526020819052604090205490565b3480156105d657600080fd5b5061036f611025565b3480156105eb57600080fd5b506012546013546014546015546106029392919084565b604080519485526020850193909352918301526060820152608001610316565b34801561062e57600080fd5b50600f54610642906001600160a01b031681565b6040516001600160a01b039091168152602001610316565b34801561066657600080fd5b5061064261dead81565b34801561067c57600080fd5b5061036f61068b3660046127fc565b61105b565b34801561069c57600080fd5b506005546001600160a01b0316610642565b3480156106ba57600080fd5b50601054610642906001600160a01b031681565b3480156106da57600080fd5b5061030961110b565b3480156106ef57600080fd5b5061036f6106fe3660046129fc565b61111a565b34801561070f57600080fd5b5061036f61071e366004612989565b6111e8565b34801561072f57600080fd5b5061033f61073e3660046127fc565b611250565b34801561074f57600080fd5b50600754610642906001600160a01b031681565b34801561076f57600080fd5b5061033f61077e3660046127fc565b6112eb565b34801561078f57600080fd5b5061036f61079e366004612713565b6112f8565b3480156107af57600080fd5b5061033f6107be366004612713565b601a6020526000908152604090205460ff1681565b3480156107df57600080fd5b5061036f6107ee366004612713565b611344565b3480156107ff57600080fd5b506103e7601e5481565b34801561081557600080fd5b50601154610642906001600160a01b031681565b34801561083557600080fd5b506103e7610844366004612754565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561087b57600080fd5b5061036f61088a3660046129a2565b611390565b34801561089b57600080fd5b5061036f6108aa36600461296b565b61153c565b3480156108bb57600080fd5b5061036f6108ca366004612989565b611588565b3480156108db57600080fd5b50601d5461033f9060ff1681565b3480156108f557600080fd5b5061036f610904366004612713565b61167d565b34801561091557600080fd5b506016546017546018546019546106029392919084565b34801561093857600080fd5b50600654610642906001600160a01b031681565b34801561095857600080fd5b5060075461033f90600160a81b900460ff1681565b34801561097957600080fd5b5061033f610988366004612713565b601b6020526000908152604090205460ff1681565b6060600380546109ac90612cdc565b80601f01602080910402602001604051908101604052809291908181526020018280546109d890612cdc565b8015610a255780601f106109fa57610100808354040283529160200191610a25565b820191906000526020600020905b815481529060010190602001808311610a0857829003601f168201915b5050505050905090565b6000610a3c338484611718565b5060015b92915050565b6005546001600160a01b03163314610a795760405162461bcd60e51b8152600401610a7090612a83565b60405180910390fd5b60005b8251811015610ae05781601a6000858481518110610a9c57610a9c612d48565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ad881612d17565b915050610a7c565b505050565b6005546001600160a01b03163314610b0f5760405162461bcd60e51b8152600401610a7090612a83565b60148183610b1d8688612b7e565b610b279190612b7e565b610b319190612b7e565b1115610b7f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c6573730000006044820152606401610a70565b6040805160808101825285815260208101859052908101839052606001819052601693909355601791909155601855601955565b6005546001600160a01b03163314610bdd5760405162461bcd60e51b8152600401610a7090612a83565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c255760405162461bcd60e51b8152600401610a7090612a83565b60005b8251811015610ae05781601b6000858481518110610c4857610c48612d48565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c8481612d17565b915050610c28565b6005546001600160a01b03163314610cb65760405162461bcd60e51b8152600401610a7090612a83565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d025760405162461bcd60e51b8152600401610a7090612a83565b600754600160b01b900460ff1615610d5c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610a70565b6007805461ffff60a81b191661010160a81b17905543600c55565b6000610d8484848461183c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610e095760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a70565b610e1d8533610e188685612cc5565b611718565b506001949350505050565b6005546001600160a01b03163314610e525760405162461bcd60e51b8152600401610a7090612a83565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a3c918590610e18908690612b7e565b6005546001600160a01b03163314610ede5760405162461bcd60e51b8152600401610a7090612a83565b610eea6012600a612bfb565b610ef49082612ca6565b60085550565b6005546001600160a01b03163314610f245760405162461bcd60e51b8152600401610a7090612a83565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f795760405162461bcd60e51b8152600401610a7090612a83565b8051825114610fca5760405162461bcd60e51b815260206004820152601a60248201527f417272617973206d75737420686176652073616d652073697a650000000000006044820152606401610a70565b60005b8251811015610ae05761101333848381518110610fec57610fec612d48565b602002602001015184848151811061100657611006612d48565b6020026020010151611f4f565b8061101d81612d17565b915050610fcd565b6005546001600160a01b0316331461104f5760405162461bcd60e51b8152600401610a7090612a83565b6110596000612127565b565b6005546001600160a01b031633146110855760405162461bcd60e51b8152600401610a7090612a83565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156110d357600080fd5b505af11580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae0919061294e565b6060600480546109ac90612cdc565b6005546001600160a01b031633146111445760405162461bcd60e51b8152600401610a7090612a83565b600a81836111528688612b7e565b61115c9190612b7e565b6111669190612b7e565b11156111b45760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610a70565b6040805160808101825285815260208101859052908101839052606001819052601293909355601391909155601455601555565b6005546001600160a01b031633146112125760405162461bcd60e51b8152600401610a7090612a83565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561124c573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a70565b6112e13385610e188685612cc5565b5060019392505050565b6000610a3c33848461183c565b6005546001600160a01b031633146113225760405162461bcd60e51b8152600401610a7090612a83565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461136e5760405162461bcd60e51b8152600401610a7090612a83565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113ba5760405162461bcd60e51b8152600401610a7090612a83565b6298968083101561141f5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b6064820152608401610a70565b629896808210156114855760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b6064820152608401610a70565b629896808110156114eb5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610a70565b6114f76012600a612bfb565b6115019084612ca6565b6009556115106012600a612bfb565b61151a9083612ca6565b600a55601261152a90600a612bfb565b6115349082612ca6565b600b55505050565b6005546001600160a01b031633146115665760405162461bcd60e51b8152600401610a7090612a83565b611571816001612ca6565b601e5550601d805460ff1916911515919091179055565b6005546001600160a01b031633146115b25760405162461bcd60e51b8152600401610a7090612a83565b600754600160b01b900460ff161561161a5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610a70565b600581106116785760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b6064820152608401610a70565b600d55565b6005546001600160a01b031633146116a75760405162461bcd60e51b8152600401610a7090612a83565b6001600160a01b03811661170c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a70565b61171581612127565b50565b6001600160a01b03831661177a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a70565b6001600160a01b0382166117db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a70565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161189e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a70565b6001600160a01b0383166000908152601b602052604090205460ff161580156118e057506001600160a01b0382166000908152601b602052604090205460ff16155b61192c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610a70565b6001600160a01b0383166000908152601a602052604090205460ff1615801561196e57506001600160a01b0382166000908152601a602052604090205460ff16155b156119c257600754600160b01b900460ff166119c25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a70565b6007546001600160a01b0384811691161480156119f857506001600160a01b0382166000908152601a602052604090205460ff16155b8015611a0e5750600754600160a01b900460ff16155b15611ae057600954811115611a655760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a70565b600b5481611a88846001600160a01b031660009081526020819052604090205490565b611a929190612b7e565b1115611ae05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a70565b6007546001600160a01b03848116911614801590611b1757506001600160a01b0382166000908152601a602052604090205460ff16155b8015611b3c57506001600160a01b0383166000908152601a602052604090205460ff16155b8015611b525750600754600160a01b900460ff16155b15611ccb57600a54811115611ba95760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a70565b6007546001600160a01b03838116911614611c3957600b5481611be1846001600160a01b031660009081526020819052604090205490565b611beb9190612b7e565b1115611c395760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a70565b601d5460ff1615611ccb576001600160a01b0383166000908152601c6020526040812054611c679042612cc5565b9050601e54811015611cae5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a70565b506001600160a01b0383166000908152601c602052604090204290555b6000806000611cfb6040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611d3d57506001600160a01b0387166000908152601a602052604090205460ff16155b8015611d575750600d54600c54611d549190612b7e565b43105b600754909150600160a01b900460ff1680611d8a57506001600160a01b0388166000908152601a602052604090205460ff165b80611dad57506001600160a01b0387166000908152601a602052604090205460ff165b15611dbb5760009250611eaf565b6007546001600160a01b038881169116148015611dd6575080155b15611e3b57601954601854601654601754611df19190612b7e565b611dfb9190612b7e565b611e059190612b7e565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611eaf565b80611ea057601554601454601254601354611e569190612b7e565b611e609190612b7e565b611e6a9190612b7e565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611eaf565b8015611eaf57600e5494508493505b6064611ebb8588612ca6565b611ec59190612b96565b600754909350600160a81b900460ff168015611eef57506007546001600160a01b03898116911614155b15611efe57611efe8583612179565b611f128888611f0d868a612cc5565b611f4f565b8215611f45578415611f455760006064611f2c8789612ca6565b611f369190612b96565b9050611f43893083611f4f565b505b5050505050505050565b6001600160a01b038316611fb35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a70565b6001600160a01b0382166120155760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a70565b6001600160a01b0383166000908152602081905260409020548181101561208d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a70565b6120978282612cc5565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906120cd908490612b7e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211991815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff1661124c576007805460ff60a01b1916600160a01b179055816121a757612321565b30600090815260208190526040902054600854811061231f57600160085411156121d057506008545b60006121dd846002612ca6565b90506000818460200151846121f29190612ca6565b6121fc9190612b96565b9050600061220a8285612cc5565b90504761221682612332565b60006122228247612cc5565b905060008760200151866122369190612cc5565b6122409083612b96565b905060008860200151826122549190612ca6565b9050801561226657612266868261249b565b8851600090612276846002612ca6565b6122809190612ca6565b9050801561229e57600f5461229e906001600160a01b03168261257f565b60408a01516000906122b1856002612ca6565b6122bb9190612ca6565b905080156122d9576011546122d9906001600160a01b03168261257f565b60608b01516000906122ec866002612ca6565b6122f69190612ca6565b9050801561231457601054612314906001600160a01b03168261257f565b505050505050505050505b505b6007805460ff60a01b191690555050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061236757612367612d48565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156123bb57600080fd5b505afa1580156123cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f39190612737565b8160018151811061240657612406612d48565b6001600160a01b03928316602091820292909201015260065461242c9130911684611718565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612465908590600090869030904290600401612ab8565b600060405180830381600087803b15801561247f57600080fd5b505af1158015612493573d6000803e3d6000fd5b505050505050565b6006546124b39030906001600160a01b031684611718565b6006546001600160a01b031663f305d7198230856000806124dc6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561253f57600080fd5b505af1158015612553573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061257891906129ce565b5050505050565b804710156125cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a70565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461261c576040519150601f19603f3d011682016040523d82523d6000602084013e612621565b606091505b5050905080610ae05760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a70565b600082601f8301126126a957600080fd5b813560206126be6126b983612b5a565b612b29565b80838252828201915082860187848660051b89010111156126de57600080fd5b60005b858110156127065781356126f481612d74565b845292840192908401906001016126e1565b5090979650505050505050565b60006020828403121561272557600080fd5b813561273081612d74565b9392505050565b60006020828403121561274957600080fd5b815161273081612d74565b6000806040838503121561276757600080fd5b823561277281612d74565b9150602083013561278281612d74565b809150509250929050565b6000806000606084860312156127a257600080fd5b83356127ad81612d74565b925060208401356127bd81612d74565b929592945050506040919091013590565b600080604083850312156127e157600080fd5b82356127ec81612d74565b9150602083013561278281612d89565b6000806040838503121561280f57600080fd5b823561281a81612d74565b946020939093013593505050565b6000806040838503121561283b57600080fd5b823567ffffffffffffffff8082111561285357600080fd5b61285f86838701612698565b935060209150818501358181111561287657600080fd5b85019050601f8101861361288957600080fd5b80356128976126b982612b5a565b80828252848201915084840189868560051b87010111156128b757600080fd5b600094505b838510156128da5780358352600194909401939185019185016128bc565b5080955050505050509250929050565b600080604083850312156128fd57600080fd5b823567ffffffffffffffff81111561291457600080fd5b61292085828601612698565b925050602083013561278281612d89565b60006020828403121561294357600080fd5b813561273081612d89565b60006020828403121561296057600080fd5b815161273081612d89565b6000806040838503121561297e57600080fd5b823561281a81612d89565b60006020828403121561299b57600080fd5b5035919050565b6000806000606084860312156129b757600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156129e357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215612a1257600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015612a5b57858101830151858201604001528201612a3f565b81811115612a6d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b085784516001600160a01b031683529383019391830191600101612ae3565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612b5257612b52612d5e565b604052919050565b600067ffffffffffffffff821115612b7457612b74612d5e565b5060051b60200190565b60008219821115612b9157612b91612d32565b500190565b600082612bb357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612bf3578160001904821115612bd957612bd9612d32565b80851615612be657918102915b93841c9390800290612bbd565b509250929050565b600061273060ff841683600082612c1457506001610a40565b81612c2157506000610a40565b8160018114612c375760028114612c4157612c5d565b6001915050610a40565b60ff841115612c5257612c52612d32565b50506001821b610a40565b5060208310610133831016604e8410600b8410161715612c80575081810a610a40565b612c8a8383612bb8565b8060001904821115612c9e57612c9e612d32565b029392505050565b6000816000190483118215151615612cc057612cc0612d32565b500290565b600082821015612cd757612cd7612d32565b500390565b600181811c90821680612cf057607f821691505b60208210811415612d1157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612d2b57612d2b612d32565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461171557600080fd5b801515811461171557600080fdfea2646970667358221220952f7e125a1f66a1c5c7a4696aa2cb0cd01d554433260980e41e2074cfd957dc64736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102e85760003560e01c806375f0a87411610190578063cfd193c1116100dc578063edaa116811610095578063f66895a31161006f578063f66895a314610909578063f887ea401461092c578063fbe6324e1461094c578063fe575a871461096d57600080fd5b8063edaa1168146108af578063ee36e359146108cf578063f2fde38b146108e957600080fd5b8063cfd193c1146107d3578063d2ce0db2146107f3578063dc820c6414610809578063dd62ed3e14610829578063e1b450ad1461086f578063e517f2b91461088f57600080fd5b806397973a2b11610149578063a8aa1b3111610123578063a8aa1b3114610743578063a9059cbb14610763578063aacebbe314610783578063c5d32bb2146107a357600080fd5b806397973a2b146106e35780639e252f0014610703578063a457c2d71461072357600080fd5b806375f0a8741461062257806385141a771461065a5780638cd4426d146106705780638da5cb5b146106905780638ea5220f146106ae57806395d89b41146106ce57600080fd5b8063313ce5671161024f578063652e2f0411610208578063706f6937116101e2578063706f69371461057457806370a0823114610594578063715018a6146105ca578063728f8eea146105df57600080fd5b8063652e2f041461053257806366a88d96146105485780636aa5b37f1461055e57600080fd5b8063313ce56714610475578063355496ca1461049157806339509351146104b157806342b6fa11146104d15780634ada218b146104f15780635b24ea5e1461051257600080fd5b80631675d802116102a15780631675d802146103d157806318160ddd146103f55780631816467f1461040a5780631d97b7cd1461042a57806323b872dd1461043f578063274a533c1461045f57600080fd5b806306fdde03146102f4578063095ea7b31461031f5780630e375a5c1461034f578063105cafb6146103715780631340538f1461039157806313f97a8e146103b157600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030961099d565b6040516103169190612a2e565b60405180910390f35b34801561032b57600080fd5b5061033f61033a3660046127fc565b610a2f565b6040519015158152602001610316565b34801561035b57600080fd5b5061036f61036a3660046128ea565b610a46565b005b34801561037d57600080fd5b5061036f61038c3660046129fc565b610ae5565b34801561039d57600080fd5b5061036f6103ac366004612931565b610bb3565b3480156103bd57600080fd5b5061036f6103cc3660046128ea565b610bfb565b3480156103dd57600080fd5b506103e760085481565b604051908152602001610316565b34801561040157600080fd5b506002546103e7565b34801561041657600080fd5b5061036f610425366004612713565b610c8c565b34801561043657600080fd5b5061036f610cd8565b34801561044b57600080fd5b5061033f61045a36600461278d565b610d77565b34801561046b57600080fd5b506103e7600c5481565b34801561048157600080fd5b5060405160128152602001610316565b34801561049d57600080fd5b5061036f6104ac3660046127ce565b610e28565b3480156104bd57600080fd5b5061033f6104cc3660046127fc565b610e7d565b3480156104dd57600080fd5b5061036f6104ec366004612989565b610eb4565b3480156104fd57600080fd5b5060075461033f90600160b01b900460ff1681565b34801561051e57600080fd5b5061036f61052d3660046127ce565b610efa565b34801561053e57600080fd5b506103e7600a5481565b34801561055457600080fd5b506103e7600b5481565b34801561056a57600080fd5b506103e760095481565b34801561058057600080fd5b5061036f61058f366004612828565b610f4f565b3480156105a057600080fd5b506103e76105af366004612713565b6001600160a01b031660009081526020819052604090205490565b3480156105d657600080fd5b5061036f611025565b3480156105eb57600080fd5b506012546013546014546015546106029392919084565b604080519485526020850193909352918301526060820152608001610316565b34801561062e57600080fd5b50600f54610642906001600160a01b031681565b6040516001600160a01b039091168152602001610316565b34801561066657600080fd5b5061064261dead81565b34801561067c57600080fd5b5061036f61068b3660046127fc565b61105b565b34801561069c57600080fd5b506005546001600160a01b0316610642565b3480156106ba57600080fd5b50601054610642906001600160a01b031681565b3480156106da57600080fd5b5061030961110b565b3480156106ef57600080fd5b5061036f6106fe3660046129fc565b61111a565b34801561070f57600080fd5b5061036f61071e366004612989565b6111e8565b34801561072f57600080fd5b5061033f61073e3660046127fc565b611250565b34801561074f57600080fd5b50600754610642906001600160a01b031681565b34801561076f57600080fd5b5061033f61077e3660046127fc565b6112eb565b34801561078f57600080fd5b5061036f61079e366004612713565b6112f8565b3480156107af57600080fd5b5061033f6107be366004612713565b601a6020526000908152604090205460ff1681565b3480156107df57600080fd5b5061036f6107ee366004612713565b611344565b3480156107ff57600080fd5b506103e7601e5481565b34801561081557600080fd5b50601154610642906001600160a01b031681565b34801561083557600080fd5b506103e7610844366004612754565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561087b57600080fd5b5061036f61088a3660046129a2565b611390565b34801561089b57600080fd5b5061036f6108aa36600461296b565b61153c565b3480156108bb57600080fd5b5061036f6108ca366004612989565b611588565b3480156108db57600080fd5b50601d5461033f9060ff1681565b3480156108f557600080fd5b5061036f610904366004612713565b61167d565b34801561091557600080fd5b506016546017546018546019546106029392919084565b34801561093857600080fd5b50600654610642906001600160a01b031681565b34801561095857600080fd5b5060075461033f90600160a81b900460ff1681565b34801561097957600080fd5b5061033f610988366004612713565b601b6020526000908152604090205460ff1681565b6060600380546109ac90612cdc565b80601f01602080910402602001604051908101604052809291908181526020018280546109d890612cdc565b8015610a255780601f106109fa57610100808354040283529160200191610a25565b820191906000526020600020905b815481529060010190602001808311610a0857829003601f168201915b5050505050905090565b6000610a3c338484611718565b5060015b92915050565b6005546001600160a01b03163314610a795760405162461bcd60e51b8152600401610a7090612a83565b60405180910390fd5b60005b8251811015610ae05781601a6000858481518110610a9c57610a9c612d48565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ad881612d17565b915050610a7c565b505050565b6005546001600160a01b03163314610b0f5760405162461bcd60e51b8152600401610a7090612a83565b60148183610b1d8688612b7e565b610b279190612b7e565b610b319190612b7e565b1115610b7f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c6573730000006044820152606401610a70565b6040805160808101825285815260208101859052908101839052606001819052601693909355601791909155601855601955565b6005546001600160a01b03163314610bdd5760405162461bcd60e51b8152600401610a7090612a83565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c255760405162461bcd60e51b8152600401610a7090612a83565b60005b8251811015610ae05781601b6000858481518110610c4857610c48612d48565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c8481612d17565b915050610c28565b6005546001600160a01b03163314610cb65760405162461bcd60e51b8152600401610a7090612a83565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d025760405162461bcd60e51b8152600401610a7090612a83565b600754600160b01b900460ff1615610d5c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610a70565b6007805461ffff60a81b191661010160a81b17905543600c55565b6000610d8484848461183c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610e095760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a70565b610e1d8533610e188685612cc5565b611718565b506001949350505050565b6005546001600160a01b03163314610e525760405162461bcd60e51b8152600401610a7090612a83565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a3c918590610e18908690612b7e565b6005546001600160a01b03163314610ede5760405162461bcd60e51b8152600401610a7090612a83565b610eea6012600a612bfb565b610ef49082612ca6565b60085550565b6005546001600160a01b03163314610f245760405162461bcd60e51b8152600401610a7090612a83565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f795760405162461bcd60e51b8152600401610a7090612a83565b8051825114610fca5760405162461bcd60e51b815260206004820152601a60248201527f417272617973206d75737420686176652073616d652073697a650000000000006044820152606401610a70565b60005b8251811015610ae05761101333848381518110610fec57610fec612d48565b602002602001015184848151811061100657611006612d48565b6020026020010151611f4f565b8061101d81612d17565b915050610fcd565b6005546001600160a01b0316331461104f5760405162461bcd60e51b8152600401610a7090612a83565b6110596000612127565b565b6005546001600160a01b031633146110855760405162461bcd60e51b8152600401610a7090612a83565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156110d357600080fd5b505af11580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae0919061294e565b6060600480546109ac90612cdc565b6005546001600160a01b031633146111445760405162461bcd60e51b8152600401610a7090612a83565b600a81836111528688612b7e565b61115c9190612b7e565b6111669190612b7e565b11156111b45760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610a70565b6040805160808101825285815260208101859052908101839052606001819052601293909355601391909155601455601555565b6005546001600160a01b031633146112125760405162461bcd60e51b8152600401610a7090612a83565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561124c573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a70565b6112e13385610e188685612cc5565b5060019392505050565b6000610a3c33848461183c565b6005546001600160a01b031633146113225760405162461bcd60e51b8152600401610a7090612a83565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461136e5760405162461bcd60e51b8152600401610a7090612a83565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113ba5760405162461bcd60e51b8152600401610a7090612a83565b6298968083101561141f5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b6064820152608401610a70565b629896808210156114855760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b6064820152608401610a70565b629896808110156114eb5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610a70565b6114f76012600a612bfb565b6115019084612ca6565b6009556115106012600a612bfb565b61151a9083612ca6565b600a55601261152a90600a612bfb565b6115349082612ca6565b600b55505050565b6005546001600160a01b031633146115665760405162461bcd60e51b8152600401610a7090612a83565b611571816001612ca6565b601e5550601d805460ff1916911515919091179055565b6005546001600160a01b031633146115b25760405162461bcd60e51b8152600401610a7090612a83565b600754600160b01b900460ff161561161a5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610a70565b600581106116785760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b6064820152608401610a70565b600d55565b6005546001600160a01b031633146116a75760405162461bcd60e51b8152600401610a7090612a83565b6001600160a01b03811661170c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a70565b61171581612127565b50565b6001600160a01b03831661177a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a70565b6001600160a01b0382166117db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a70565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161189e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a70565b6001600160a01b0383166000908152601b602052604090205460ff161580156118e057506001600160a01b0382166000908152601b602052604090205460ff16155b61192c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610a70565b6001600160a01b0383166000908152601a602052604090205460ff1615801561196e57506001600160a01b0382166000908152601a602052604090205460ff16155b156119c257600754600160b01b900460ff166119c25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a70565b6007546001600160a01b0384811691161480156119f857506001600160a01b0382166000908152601a602052604090205460ff16155b8015611a0e5750600754600160a01b900460ff16155b15611ae057600954811115611a655760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a70565b600b5481611a88846001600160a01b031660009081526020819052604090205490565b611a929190612b7e565b1115611ae05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a70565b6007546001600160a01b03848116911614801590611b1757506001600160a01b0382166000908152601a602052604090205460ff16155b8015611b3c57506001600160a01b0383166000908152601a602052604090205460ff16155b8015611b525750600754600160a01b900460ff16155b15611ccb57600a54811115611ba95760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a70565b6007546001600160a01b03838116911614611c3957600b5481611be1846001600160a01b031660009081526020819052604090205490565b611beb9190612b7e565b1115611c395760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a70565b601d5460ff1615611ccb576001600160a01b0383166000908152601c6020526040812054611c679042612cc5565b9050601e54811015611cae5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a70565b506001600160a01b0383166000908152601c602052604090204290555b6000806000611cfb6040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611d3d57506001600160a01b0387166000908152601a602052604090205460ff16155b8015611d575750600d54600c54611d549190612b7e565b43105b600754909150600160a01b900460ff1680611d8a57506001600160a01b0388166000908152601a602052604090205460ff165b80611dad57506001600160a01b0387166000908152601a602052604090205460ff165b15611dbb5760009250611eaf565b6007546001600160a01b038881169116148015611dd6575080155b15611e3b57601954601854601654601754611df19190612b7e565b611dfb9190612b7e565b611e059190612b7e565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611eaf565b80611ea057601554601454601254601354611e569190612b7e565b611e609190612b7e565b611e6a9190612b7e565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611eaf565b8015611eaf57600e5494508493505b6064611ebb8588612ca6565b611ec59190612b96565b600754909350600160a81b900460ff168015611eef57506007546001600160a01b03898116911614155b15611efe57611efe8583612179565b611f128888611f0d868a612cc5565b611f4f565b8215611f45578415611f455760006064611f2c8789612ca6565b611f369190612b96565b9050611f43893083611f4f565b505b5050505050505050565b6001600160a01b038316611fb35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a70565b6001600160a01b0382166120155760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a70565b6001600160a01b0383166000908152602081905260409020548181101561208d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a70565b6120978282612cc5565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906120cd908490612b7e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211991815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff1661124c576007805460ff60a01b1916600160a01b179055816121a757612321565b30600090815260208190526040902054600854811061231f57600160085411156121d057506008545b60006121dd846002612ca6565b90506000818460200151846121f29190612ca6565b6121fc9190612b96565b9050600061220a8285612cc5565b90504761221682612332565b60006122228247612cc5565b905060008760200151866122369190612cc5565b6122409083612b96565b905060008860200151826122549190612ca6565b9050801561226657612266868261249b565b8851600090612276846002612ca6565b6122809190612ca6565b9050801561229e57600f5461229e906001600160a01b03168261257f565b60408a01516000906122b1856002612ca6565b6122bb9190612ca6565b905080156122d9576011546122d9906001600160a01b03168261257f565b60608b01516000906122ec866002612ca6565b6122f69190612ca6565b9050801561231457601054612314906001600160a01b03168261257f565b505050505050505050505b505b6007805460ff60a01b191690555050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061236757612367612d48565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156123bb57600080fd5b505afa1580156123cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f39190612737565b8160018151811061240657612406612d48565b6001600160a01b03928316602091820292909201015260065461242c9130911684611718565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612465908590600090869030904290600401612ab8565b600060405180830381600087803b15801561247f57600080fd5b505af1158015612493573d6000803e3d6000fd5b505050505050565b6006546124b39030906001600160a01b031684611718565b6006546001600160a01b031663f305d7198230856000806124dc6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561253f57600080fd5b505af1158015612553573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061257891906129ce565b5050505050565b804710156125cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a70565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461261c576040519150601f19603f3d011682016040523d82523d6000602084013e612621565b606091505b5050905080610ae05760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a70565b600082601f8301126126a957600080fd5b813560206126be6126b983612b5a565b612b29565b80838252828201915082860187848660051b89010111156126de57600080fd5b60005b858110156127065781356126f481612d74565b845292840192908401906001016126e1565b5090979650505050505050565b60006020828403121561272557600080fd5b813561273081612d74565b9392505050565b60006020828403121561274957600080fd5b815161273081612d74565b6000806040838503121561276757600080fd5b823561277281612d74565b9150602083013561278281612d74565b809150509250929050565b6000806000606084860312156127a257600080fd5b83356127ad81612d74565b925060208401356127bd81612d74565b929592945050506040919091013590565b600080604083850312156127e157600080fd5b82356127ec81612d74565b9150602083013561278281612d89565b6000806040838503121561280f57600080fd5b823561281a81612d74565b946020939093013593505050565b6000806040838503121561283b57600080fd5b823567ffffffffffffffff8082111561285357600080fd5b61285f86838701612698565b935060209150818501358181111561287657600080fd5b85019050601f8101861361288957600080fd5b80356128976126b982612b5a565b80828252848201915084840189868560051b87010111156128b757600080fd5b600094505b838510156128da5780358352600194909401939185019185016128bc565b5080955050505050509250929050565b600080604083850312156128fd57600080fd5b823567ffffffffffffffff81111561291457600080fd5b61292085828601612698565b925050602083013561278281612d89565b60006020828403121561294357600080fd5b813561273081612d89565b60006020828403121561296057600080fd5b815161273081612d89565b6000806040838503121561297e57600080fd5b823561281a81612d89565b60006020828403121561299b57600080fd5b5035919050565b6000806000606084860312156129b757600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156129e357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215612a1257600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015612a5b57858101830151858201604001528201612a3f565b81811115612a6d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b085784516001600160a01b031683529383019391830191600101612ae3565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612b5257612b52612d5e565b604052919050565b600067ffffffffffffffff821115612b7457612b74612d5e565b5060051b60200190565b60008219821115612b9157612b91612d32565b500190565b600082612bb357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612bf3578160001904821115612bd957612bd9612d32565b80851615612be657918102915b93841c9390800290612bbd565b509250929050565b600061273060ff841683600082612c1457506001610a40565b81612c2157506000610a40565b8160018114612c375760028114612c4157612c5d565b6001915050610a40565b60ff841115612c5257612c52612d32565b50506001821b610a40565b5060208310610133831016604e8410600b8410161715612c80575081810a610a40565b612c8a8383612bb8565b8060001904821115612c9e57612c9e612d32565b029392505050565b6000816000190483118215151615612cc057612cc0612d32565b500290565b600082821015612cd757612cd7612d32565b500390565b600181811c90821680612cf057607f821691505b60208210811415612d1157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612d2b57612d2b612d32565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461171557600080fd5b801515811461171557600080fdfea2646970667358221220952f7e125a1f66a1c5c7a4696aa2cb0cd01d554433260980e41e2074cfd957dc64736f6c63430008070033

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:14061:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16068:161;;;;;;;;;;-1:-1:-1;16068:161:0;;;;;:::i;:::-;;:::i;:::-;;;7963:14:1;;7956:22;7938:41;;7926:2;7911:18;16068:161:0;7798:187:1;26629:202:0;;;;;;;;;;-1:-1:-1;26629:202:0;;;;;:::i;:::-;;:::i;:::-;;24770:355;;;;;;;;;;-1:-1:-1;24770:355:0;;;;;:::i;:::-;;:::i;24067:152::-;;;;;;;;;;-1:-1:-1;24067:152:0;;;;;:::i;:::-;;:::i;26283:210::-;;;;;;;;;;-1:-1:-1;26283:210:0;;;;;:::i;:::-;;:::i;13871:60::-;;;;;;;;;;;;;;;;;;;19357:25:1;;;19345:2;19330:18;13871:60:0;19211:177:1;3497:108:0;;;;;;;;;;-1:-1:-1;3585:12:0;;3497:108;;25877:103;;;;;;;;;;-1:-1:-1;25877:103:0;;;;;:::i;:::-;;:::i;25133:222::-;;;;;;;;;;;;;:::i;16237:448::-;;;;;;;;;;-1:-1:-1;16237:448:0;;;;;:::i;:::-;;:::i;14112:28::-;;;;;;;;;;;;;;;;3339:93;;;;;;;;;;-1:-1:-1;3339:93:0;;3422:2;20916:36:1;;20904:2;20889:18;3339:93:0;20774:184:1;26501:120:0;;;;;;;;;;-1:-1:-1;26501:120:0;;;;;:::i;:::-;;:::i;16693:248::-;;;;;;;;;;-1:-1:-1;16693:248:0;;;;;:::i;:::-;;:::i;24227:177::-;;;;;;;;;;-1:-1:-1;24227:177:0;;;;;:::i;:::-;;:::i;13828:34::-;;;;;;;;;;-1:-1:-1;13828:34:0;;;;-1:-1:-1;;;13828:34:0;;;;;;26149:126;;;;;;;;;;-1:-1:-1;26149:126:0;;;;;:::i;:::-;;:::i;13994:50::-;;;;;;;;;;;;;;;;14051:52;;;;;;;;;;;;;;;;13938:49;;;;;;;;;;;;;;;;17632:313;;;;;;;;;;-1:-1:-1;17632:313:0;;;;;:::i;:::-;;:::i;3668:127::-;;;;;;;;;;-1:-1:-1;3668:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;12264:94;;;;;;;;;;;;;:::i;14691:38::-;;;;;;;;;;-1:-1:-1;14691:38:0;;;;;;;;;;;;;;;;;;;20609:25:1;;;20665:2;20650:18;;20643:34;;;;20693:18;;;20686:34;20751:2;20736:18;;20729:34;20596:3;20581:19;14691:38:0;20378:391:1;14221:75:0;;;;;;;;;;-1:-1:-1;14221:75:0;;;;-1:-1:-1;;;;;14221:75:0;;;;;;-1:-1:-1;;;;;6863:32:1;;;6845:51;;6833:2;6818:18;14221:75:0;6699:203:1;14463:79:0;;;;;;;;;;;;14500:42;14463:79;;27467:137;;;;;;;;;;-1:-1:-1;27467:137:0;;;;;:::i;:::-;;:::i;12041:87::-;;;;;;;;;;-1:-1:-1;12114:6:0;;-1:-1:-1;;;;;12114:6:0;12041:87;;14303:69;;;;;;;;;;-1:-1:-1;14303:69:0;;;;-1:-1:-1;;;;;14303:69:0;;;2596:104;;;;;;;;;;;;;:::i;24412:350::-;;;;;;;;;;-1:-1:-1;24412:350:0;;;;;:::i;:::-;;:::i;27345:114::-;;;;;;;;;;-1:-1:-1;27345:114:0;;;;;:::i;:::-;;:::i;16949:410::-;;;;;;;;;;-1:-1:-1;16949:410:0;;;;;:::i;:::-;;:::i;13712:19::-;;;;;;;;;;-1:-1:-1;13712:19:0;;;;-1:-1:-1;;;;;13712:19:0;;;17367:165;;;;;;;;;;-1:-1:-1;17367:165:0;;;;;:::i;:::-;;:::i;25621:115::-;;;;;;;;;;-1:-1:-1;25621:115:0;;;;;:::i;:::-;;:::i;14787:41::-;;;;;;;;;;-1:-1:-1;14787:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;25744:125;;;;;;;;;;-1:-1:-1;25744:125:0;;;;;:::i;:::-;;:::i;14999:40::-;;;;;;;;;;;;;;;;14379:80;;;;;;;;;;-1:-1:-1;14379:80:0;;;;-1:-1:-1;;;;;14379:80:0;;;4287:201;;;;;;;;;;-1:-1:-1;4287:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4453:18:0;;;4421:7;4453:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4287:201;26839:498;;;;;;;;;;-1:-1:-1;26839:498:0;;;;;:::i;:::-;;:::i;25988:153::-;;;;;;;;;;-1:-1:-1;25988:153:0;;;;;:::i;:::-;;:::i;25363:250::-;;;;;;;;;;-1:-1:-1;25363:250:0;;;;;:::i;:::-;;:::i;14958:34::-;;;;;;;;;;-1:-1:-1;14958:34:0;;;;;;;;12366:192;;;;;;;;;;-1:-1:-1;12366:192:0;;;;;:::i;:::-;;:::i;14736:42::-;;;;;;;;;;-1:-1:-1;14736: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;;;;;;14835:45;;;;;;;;;;-1:-1:-1;14835:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2377:100;2431:13;2464:5;2457:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;:::o;16068:161::-;16143:4;16160:39;179:10;16183:7;16192:6;16160:8;:39::i;:::-;-1:-1:-1;16217:4:0;16068:161;;;;;:::o;26629:202::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;;;;;;;;;26726:9:::1;26721:103;26745:8;:15;26741:1;:19;26721:103;;;26807:5;26782:9;:22;26792:8;26801:1;26792:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26782:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26782:22:0;:30;;-1:-1:-1;;26782:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26762:3;::::1;::::0;::::1;:::i;:::-;;;;26721:103;;;;26629:202:::0;;:::o;24770:355::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25006:2:::1;24997:4:::0;24979:15;24953:23:::1;24966:10:::0;24953;:23:::1;:::i;:::-;:41;;;;:::i;:::-;:48;;;;:::i;:::-;24952:56;;24944:98;;;::::0;-1:-1:-1;;;24944:98:0;;13321:2:1;24944:98:0::1;::::0;::::1;13303:21:1::0;13360:2;13340:18;;;13333:30;13399:31;13379:18;;;13372:59;13448:18;;24944:98:0::1;13119:353:1::0;24944:98:0::1;25065:52;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;25053:9:::1;:64:::0;;;;;;;;;;;;;24770:355::o;24067:152::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24185:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;24185:26:0::1;-1:-1:-1::0;;;;24185:26:0;;::::1;::::0;;;::::1;::::0;;24067:152::o;26283:210::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26384:9:::1;26379:107;26403:8;:15;26399:1;:19;26379:107;;;26469:5;26440:13;:26;26454:8;26463:1;26454:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26440:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26440:26:0;:34;;-1:-1:-1;;26440:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26420:3;::::1;::::0;::::1;:::i;:::-;;;;26379:107;;25877:103:::0;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25951:9:::1;:21:::0;;-1:-1:-1;;;;;;25951:21:0::1;-1:-1:-1::0;;;;;25951:21:0;;;::::1;::::0;;;::::1;::::0;;25877:103::o;25133:222::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25197:14:::1;::::0;-1:-1:-1;;;25197:14:0;::::1;;;25196:15;25188:52;;;::::0;-1:-1:-1;;;25188:52:0;;14496:2:1;25188:52:0::1;::::0;::::1;14478:21:1::0;14535:2;14515:18;;;14508:30;14574:26;14554:18;;;14547:54;14618:18;;25188:52:0::1;14294:348:1::0;25188:52:0::1;25251:14;:21:::0;;-1:-1:-1;;;;25283:25:0;-1:-1:-1;;;25283:25:0;;;25335:12:::1;25319:13;:28:::0;25133:222::o;16237:448::-;16369:4;16386:36;16396:6;16404:9;16415:6;16386:9;:36::i;:::-;-1:-1:-1;;;;;16462:19:0;;16435:24;16462:19;;;:11;:19;;;;;;;;179:10;16462:33;;;;;;;;16514:26;;;;16506:79;;;;-1:-1:-1;;;16506:79:0;;15255:2:1;16506:79:0;;;15237:21:1;15294:2;15274:18;;;15267:30;15333:34;15313:18;;;15306:62;-1:-1:-1;;;15384:18:1;;;15377:38;15432:19;;16506:79:0;15053:404:1;16506:79:0;16596:57;16605:6;179:10;16627:25;16646:6;16627:16;:25;:::i;:::-;16596:8;:57::i;:::-;-1:-1:-1;16673:4:0;;16237:448;-1:-1:-1;;;;16237:448:0:o;26501: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;;;;;26586:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;26586:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26501:120::o;16693:248::-;179:10;16809:4;16863:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16863:34:0;;;;;;;;;;16809:4;;16831:80;;16854:7;;16863:47;;16900:10;;16863:47;:::i;24227:177::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24382:14:::1;3422:2:::0;24382::::1;:14;:::i;:::-;24369:27;::::0;:10;:27:::1;:::i;:::-;24343:23;:53:::0;-1:-1:-1;24227:177:0:o;26149: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;;;;;26237:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;26237:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26149:126::o;17632:313::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;17764:7:::1;:14;17745:8;:15;:33;17737:72;;;::::0;-1:-1:-1;;;17737:72:0;;18293:2:1;17737:72:0::1;::::0;::::1;18275:21:1::0;18332:2;18312:18;;;18305:30;18371:28;18351:18;;;18344:56;18417:18;;17737:72:0::1;18091:350:1::0;17737:72:0::1;17824:9;17820:118;17838:8;:15;17835:1;:18;17820:118;;;17874:52;17890:10;17902:8;17911:1;17902:11;;;;;;;;:::i;:::-;;;;;;;17915:7;17923:1;17915:10;;;;;;;;:::i;:::-;;;;;;;17874:15;:52::i;:::-;17855:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17820:118;;12264:94:::0;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;27467:137::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27578:9:::1;::::0;27552:44:::1;::::0;-1:-1:-1;;;27552:44:0;;-1:-1:-1;;;;;27578:9:0;;::::1;27552:44;::::0;::::1;7081:51:1::0;7148:18;;;7141:34;;;27552:25:0;;::::1;::::0;::::1;::::0;7054:18:1;;27552:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2596:104::-:0;2652:13;2685:7;2678:14;;;;;:::i;24412:350::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24647:2:::1;24638:4:::0;24620:15;24594:23:::1;24607:10:::0;24594;:23:::1;:::i;:::-;:41;;;;:::i;:::-;:48;;;;:::i;:::-;24593:56;;24585:98;;;::::0;-1:-1:-1;;;24585:98:0;;9421:2:1;24585:98:0::1;::::0;::::1;9403:21:1::0;9460:2;9440:18;;;9433:30;9499:31;9479:18;;;9472:59;9548:18;;24585:98:0::1;9219:353:1::0;24585:98:0::1;24702:52;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;24694:5:::1;:60:::0;;;;;;;;;;;;;24412:350::o;27345:114::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27421:9:::1;::::0;27413:38:::1;::::0;-1:-1:-1;;;;;27421:9:0;;::::1;::::0;27413:38;::::1;;;::::0;27441:9;;27421::::1;27413:38:::0;27421:9;27413:38;27441:9;27421;27413:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27345:114:::0;:::o;16949:410::-;179:10;17070:4;17119:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17119:34:0;;;;;;;;;;17172:35;;;;17164:85;;;;-1:-1:-1;;;17164:85:0;;19007:2:1;17164:85:0;;;18989:21:1;19046:2;19026:18;;;19019:30;19085:34;19065:18;;;19058:62;-1:-1:-1;;;19136:18:1;;;19129:35;19181:19;;17164:85:0;18805:401:1;17164:85:0;17260:67;179:10;17283:7;17292:34;17311:15;17292:16;:34;:::i;17260:67::-;-1:-1:-1;17347:4:0;;16949:410;-1:-1:-1;;;16949:410:0:o;17367:165::-;17445:4;17462:40;17472:10;17484:9;17495:6;17462:9;:40::i;25621:115::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25701:15:::1;:27:::0;;-1:-1:-1;;;;;;25701:27:0::1;-1:-1:-1::0;;;;;25701:27:0;;;::::1;::::0;;;::::1;::::0;;25621:115::o;25744:125::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25829:20:::1;:32:::0;;-1:-1:-1;;;;;;25829:32:0::1;-1:-1:-1::0;;;;;25829:32:0;;;::::1;::::0;;;::::1;::::0;;25744:125::o;26839:498::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26965:3:::1;26955:6;:13;;26947:67;;;::::0;-1:-1:-1;;;26947:67:0;;12911:2:1;26947:67:0::1;::::0;::::1;12893:21:1::0;12950:2;12930:18;;;12923:30;12989:34;12969:18;;;12962:62;-1:-1:-1;;;13040:18:1;;;13033:39;13089:19;;26947:67:0::1;12709:405:1::0;26947:67:0::1;27044:3;27033:7;:14;;27025:69;;;::::0;-1:-1:-1;;;27025:69:0;;10947:2:1;27025:69:0::1;::::0;::::1;10929:21:1::0;10986:2;10966:18;;;10959:30;11025:34;11005:18;;;10998:62;-1:-1:-1;;;11076:18:1;;;11069:40;11126:19;;27025:69:0::1;10745:406:1::0;27025:69:0::1;27126:3;27113:9;:16;;27105:71;;;::::0;-1:-1:-1;;;27105:71:0;;13679:2:1;27105:71:0::1;::::0;::::1;13661:21:1::0;13718:2;13698:18;;;13691:30;13757:34;13737:18;;;13730:62;-1:-1:-1;;;13808:18:1;;;13801:40;13858:19;;27105:71:0::1;13477:406:1::0;27105:71:0::1;27210:14;3422:2:::0;27210::::1;:14;:::i;:::-;27201:23;::::0;:6;:23:::1;:::i;:::-;27187:11;:37:::0;27260:14:::1;3422:2:::0;27260::::1;:14;:::i;:::-;27250:24;::::0;:7;:24:::1;:::i;:::-;27235:12;:39:::0;3422:2;27314:14:::1;::::0;:2:::1;:14;:::i;:::-;27302:26;::::0;:9;:26:::1;:::i;:::-;27285:14;:43:::0;-1:-1:-1;;;26839:498:0:o;25988:153::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26083:16:::1;:4:::0;26090:9:::1;26083:16;:::i;:::-;26068:12;:31:::0;-1:-1:-1;26110:15:0::1;:23:::0;;-1:-1:-1;;26110:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25988:153::o;25363:250::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25445:14:::1;::::0;-1:-1:-1;;;25445:14:0;::::1;;;25444:15;25436:65;;;::::0;-1:-1:-1;;;25436:65:0;;14849:2:1;25436:65:0::1;::::0;::::1;14831:21:1::0;14888:2;14868:18;;;14861:30;14927:34;14907:18;;;14900:62;-1:-1:-1;;;14978:18:1;;;14971:35;15023:19;;25436:65:0::1;14647:401:1::0;25436:65:0::1;25532:1;25520:9;:13;25512:62;;;::::0;-1:-1:-1;;;25512:62:0;;14090:2:1;25512:62:0::1;::::0;::::1;14072:21:1::0;14129:2;14109:18;;;14102:30;14168:34;14148:18;;;14141:62;-1:-1:-1;;;14219:18:1;;;14212:35;14264:19;;25512:62:0::1;13888:401:1::0;25512:62:0::1;25585:8;:20:::0;25363:250::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;;10137:2:1;12447:73:0::1;::::0;::::1;10119:21:1::0;10176:2;10156:18;;;10149:30;10215:34;10195:18;;;10188:62;-1:-1:-1;;;10266:18:1;;;10259:36;10312:19;;12447:73:0::1;9935: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;;17888:2:1;10468:68:0;;;17870:21:1;17927:2;17907:18;;;17900:30;17966:34;17946:18;;;17939:62;-1:-1:-1;;;18017:18:1;;;18010:34;18061:19;;10468:68:0;17686:400:1;10468:68:0;-1:-1:-1;;;;;10555:21:0;;10547:68;;;;-1:-1:-1;;;10547:68:0;;10544:2:1;10547:68:0;;;10526:21:1;10583:2;10563:18;;;10556:30;10622:34;10602:18;;;10595:62;-1:-1:-1;;;10673:18:1;;;10666:32;10715:19;;10547:68:0;10342:398:1;10547:68:0;-1:-1:-1;;;;;10628:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10680:32;;19357:25:1;;;10680:32:0;;19330:18:1;10680:32:0;;;;;;;10340:380;;;:::o;17953:3225::-;18103:1;18094:6;:10;18086:64;;;;-1:-1:-1;;;18086:64:0;;16025:2:1;18086:64:0;;;16007:21:1;16064:2;16044:18;;;16037:30;16103:34;16083:18;;;16076:62;-1:-1:-1;;;16154:18:1;;;16147:39;16203:19;;18086:64:0;15823:405:1;18086:64:0;-1:-1:-1;;;;;18184:21:0;;;;;;:13;:21;;;;;;;;18183:22;:51;;;;-1:-1:-1;;;;;;18210:24:0;;;;;;:13;:24;;;;;;;;18209:25;18183:51;18161:126;;;;-1:-1:-1;;;18161:126:0;;17128:2:1;18161:126:0;;;17110:21:1;17167:2;17147:18;;;17140:30;17206:27;17186:18;;;17179:55;17251:18;;18161:126:0;16926:349:1;18161:126:0;-1:-1:-1;;;;;18305:17:0;;;;;;:9;:17;;;;;;;;18304:18;:43;;;;-1:-1:-1;;;;;;18327:20:0;;;;;;:9;:20;;;;;;;;18326:21;18304:43;18300:122;;;18372:14;;-1:-1:-1;;;18372:14:0;;;;18364:46;;;;-1:-1:-1;;;18364:46:0;;16435:2:1;18364:46:0;;;16417:21:1;16474:2;16454:18;;;16447:30;-1:-1:-1;;;16493:18:1;;;16486:49;16552:18;;18364:46:0;16233:343:1;18364:46:0;18448:4;;-1:-1:-1;;;;;18438:14:0;;;18448:4;;18438:14;:39;;;;-1:-1:-1;;;;;;18457:20:0;;;;;;:9;:20;;;;;;;;18456:21;18438:39;:59;;;;-1:-1:-1;18482:15:0;;-1:-1:-1;;;18482:15:0;;;;18481:16;18438:59;18434:311;;;18532:11;;18522:6;:21;;18514:63;;;;-1:-1:-1;;;18514:63:0;;9779:2:1;18514:63:0;;;9761:21:1;9818:2;9798:18;;;9791:30;9857:31;9837:18;;;9830:59;9906:18;;18514:63:0;9577:353:1;18514:63:0;18651:14;;18641:6;18618:20;18628:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;18618:20;:29;;;;:::i;:::-;:47;;18592:141;;;;-1:-1:-1;;;18592:141:0;;11765:2:1;18592:141:0;;;11747:21:1;;;11784:18;;;11777:30;11843:34;11823:18;;;11816:62;11895:18;;18592:141:0;11563:356:1;18592:141:0;18785:4;;-1:-1:-1;;;;;18775:14:0;;;18785:4;;18775:14;;;;:39;;-1:-1:-1;;;;;;18794:20:0;;;;;;:9;:20;;;;;;;;18793:21;18775:39;:61;;;;-1:-1:-1;;;;;;18819:17:0;;;;;;:9;:17;;;;;;;;18818:18;18775:61;:81;;;;-1:-1:-1;18841:15:0;;-1:-1:-1;;;18841:15:0;;;;18840:16;18775:81;18757:682;;;18901:12;;18891:6;:22;;18883:65;;;;-1:-1:-1;;;18883:65:0;;18648:2:1;18883:65:0;;;18630:21:1;18687:2;18667:18;;;18660:30;18726:32;18706:18;;;18699:60;18776:18;;18883:65:0;18446:354:1;18883:65:0;18980:4;;-1:-1:-1;;;;;18967:17:0;;;18980:4;;18967:17;18963:211;;19068:14;;19058:6;19035:20;19045:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;19035:20;:29;;;;:::i;:::-;:47;;19005:153;;;;-1:-1:-1;;;19005:153:0;;11765:2:1;19005:153:0;;;11747:21:1;;;11784:18;;;11777:30;11843:34;11823:18;;;11816:62;11895:18;;19005:153:0;11563:356:1;19005:153:0;19192:15;;;;19188:240;;;-1:-1:-1;;;;;19267:17:0;;19228:18;19267:17;;;:9;:17;;;;;;19249:35;;:15;:35;:::i;:::-;19228:56;;19325:12;;19311:10;:26;;19303:55;;;;-1:-1:-1;;;19303:55:0;;16783:2:1;19303:55:0;;;16765:21:1;16822:2;16802:18;;;16795:30;-1:-1:-1;;;16841:18:1;;;16834:46;16897:18;;19303:55:0;16581:340:1;19303:55:0;-1:-1:-1;;;;;;19377:17:0;;;;;;:9;:17;;;;;19397:15;19377:35;;19188:240;19451:15;19477:14;19502:11;19524:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19524:25:0;-1:-1:-1;;;;;19583:17:0;;19562;19583;;;:9;:17;;;;;;;;19582:18;:56;;;;-1:-1:-1;;;;;;19618:20:0;;;;;;:9;:20;;;;;;;;19617:21;19582:56;:112;;;;;19686:8;;19670:13;;:24;;;;:::i;:::-;19655:12;:39;19582:112;19782:15;;19562:132;;-1:-1:-1;;;;19782:15:0;;;;;:36;;-1:-1:-1;;;;;;19801:17:0;;;;;;:9;:17;;;;;;;;19782:36;:60;;;-1:-1:-1;;;;;;19822:20:0;;;;;;:9;:20;;;;;;;;19782:60;19778:816;;;19863:1;19857:7;;19778:816;;;19928:4;;-1:-1:-1;;;;;19915:17:0;;;19928:4;;19915:17;:34;;;;;19937:12;19936:13;19915:34;19911:683;;;20131:13;;20071:24;;20131:9;20032:19;19993;;:58;;20032:19;19993:58;:::i;:::-;:102;;;;:::i;:::-;:151;;;;:::i;:::-;20191:24;;;;;;;;20206:9;20191:24;;;;;;;;;;;;;;;;;;;;;;;;19966:178;;-1:-1:-1;19966:178:0;;-1:-1:-1;20191:24:0;-1:-1:-1;19911:683:0;;;20238:12;20233:361;;20404:9;;20364:20;;20404:5;20329:15;20294;;:50;;20329:15;20294:50;:::i;:::-;:90;;;;:::i;:::-;:119;;;;:::i;:::-;20459:20;;;;;;;;20474:5;20459:20;;;;;;;;;;;;;;;;;;;;;;;;20267:146;;-1:-1:-1;20267:146:0;;-1:-1:-1;20459:20:0;-1:-1:-1;20233:361:0;;;20501:12;20497:97;;;20540:9;;;-1:-1:-1;20540:9:0;;-1:-1:-1;20497:97:0;20632:3;20613:15;20622:6;20613;:15;:::i;:::-;20612:23;;;;:::i;:::-;20749:18;;20606:29;;-1:-1:-1;;;;20749:18:0;;;;:36;;;;-1:-1:-1;20781:4:0;;-1:-1:-1;;;;;20771:14:0;;;20781:4;;20771:14;;20749:36;20745:76;;;20787:34;20799:7;20808:12;20787:11;:34::i;:::-;20863:48;20879:6;20887:9;20898:12;20907:3;20898:6;:12;:::i;:::-;20863:15;:48::i;:::-;20926:7;;20922:249;;20998:11;;20994:164;;21030:17;21071:3;21051:16;21060:7;21051:6;:16;:::i;:::-;21050:24;;;;:::i;:::-;21030:44;;21093:49;21109:6;21125:4;21132:9;21093:15;:49::i;:::-;21011:147;20994:164;18075:3103;;;;;17953:3225;;;:::o;7800:638::-;-1:-1:-1;;;;;7940:20:0;;7932:70;;;;-1:-1:-1;;;7932:70:0;;17482:2:1;7932:70:0;;;17464:21:1;17521:2;17501:18;;;17494:30;17560:34;17540:18;;;17533:62;-1:-1:-1;;;17611:18:1;;;17604:35;17656:19;;7932:70:0;17280:401:1;7932:70:0;-1:-1:-1;;;;;8021:23:0;;8013:71;;;;-1:-1:-1;;;8013:71:0;;9017:2:1;8013:71:0;;;8999:21:1;9056:2;9036:18;;;9029:30;9095:34;9075:18;;;9068:62;-1:-1:-1;;;9146:18:1;;;9139:33;9189:19;;8013:71:0;8815: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;;11358:2:1;8209:74:0;;;11340:21:1;11397:2;11377:18;;;11370:30;11436:34;11416:18;;;11409:62;-1:-1:-1;;;11487:18:1;;;11480:36;11533:19;;8209:74:0;11156: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;;;;19357:25:1;;19345:2;19330:18;;19211:177;8395:35:0;;;;;;;;7921:517;7800:638;;;:::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;21186:1826::-;15085:15;;-1:-1:-1;;;15085:15:0;;;;15080:125;;15117:15;:22;;-1:-1:-1;;;;15117:22:0;-1:-1:-1;;;15117:22:0;;;21282:12;21279:49:::1;;21310:7;;21279:49;21384:4;21340:23;3769:18:::0;;;;;;;;;;;21424:23:::1;::::0;21405:42;::::1;21401:1604;;21494:1;21468:23;;:27;21464:109;;;-1:-1:-1::0;21534:23:0::1;::::0;21464:109:::1;21644:19;21666:11;:7:::0;21676:1:::1;21666:11;:::i;:::-;21644:33;;21692:32;21786:11;21746:9;:19;;;21728:15;:37;;;;:::i;:::-;21727:70;;;;:::i;:::-;21692:105:::0;-1:-1:-1;21812:14:0::1;21829:42;21692:105:::0;21829:15;:42:::1;:::i;:::-;21812:59:::0;-1:-1:-1;21913:21:0::1;21951:24;21812:59:::0;21951:16:::1;:24::i;:::-;21992:20;22015:38;22039:14:::0;22015:21:::1;:38;:::i;:::-;21992:61;;22068:19;22120:9;:19;;;22106:11;:33;;;;:::i;:::-;22090:50;::::0;:12;:50:::1;:::i;:::-;22068:72;;22155:29;22201:9;:19;;;22187:11;:33;;;;:::i;:::-;22155:65:::0;-1:-1:-1;22241:25:0;;22237:172:::1;;22332:61;22345:24;22371:21;22332:12;:61::i;:::-;22466:19:::0;;22425:20:::1;::::0;22448:15:::1;:11:::0;22462:1:::1;22448:15;:::i;:::-;:37;;;;:::i;:::-;22425:60:::0;-1:-1:-1;22504:16:0;;22500:105:::1;;22549:15;::::0;22541:48:::1;::::0;-1:-1:-1;;;;;22549:15:0::1;22576:12:::0;22541:34:::1;:48::i;:::-;22667:24;::::0;::::1;::::0;22621:25:::1;::::0;22649:15:::1;:11:::0;22663:1:::1;22649:15;:::i;:::-;:42;;;;:::i;:::-;22621:70:::0;-1:-1:-1;22710:21:0;;22706:120:::1;;22760:20;::::0;22752:58:::1;::::0;-1:-1:-1;;;;;22760:20:0::1;22792:17:::0;22752:39:::1;:58::i;:::-;22877:13;::::0;::::1;::::0;22842:14:::1;::::0;22859:15:::1;:11:::0;22873:1:::1;22859:15;:::i;:::-;:31;;;;:::i;:::-;22842:48:::0;-1:-1:-1;22909:10:0;;22905:87:::1;;22948:9;::::0;22940:36:::1;::::0;-1:-1:-1;;;;;22948:9:0::1;22969:6:::0;22940:28:::1;:36::i;:::-;21449:1556;;;;;;;;;;21401:1604;21266:1746;15154:1;15170:15:::0;:23;;-1:-1:-1;;;;15170:23:0;;;21186:1826;;:::o;23020:534::-;23170:16;;;23184:1;23170:16;;;;;;;;23146:21;;23170:16;;;;;;;;;;-1:-1:-1;23170:16:0;23146:40;;23215:4;23197;23202:1;23197:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23197:23:0;;;:7;;;;;;;;;;:23;;;;23241:6;;:13;;;-1:-1:-1;;;23241:13:0;;;;:6;;;;;:11;;:13;;;;;23197:7;;23241:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23231:4;23236:1;23231:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23231:23:0;;;:7;;;;;;;;;:23;23299:6;;23267:53;;23284:4;;23299:6;23308:11;23267:8;:53::i;:::-;23359:6;;:187;;-1:-1:-1;;;23359:187:0;;-1:-1:-1;;;;;23359:6:0;;;;:57;;:187;;23431:11;;23359:6;;23473:4;;23500;;23520:15;;23359:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23075:479;23020:534;:::o;23562:497::-;23742:6;;23710:53;;23727:4;;-1:-1:-1;;;;;23742:6:0;23751:11;23710:8;:53::i;:::-;23806:6;;-1:-1:-1;;;;;23806:6:0;:22;23837:9;23871:4;23891:11;23806:6;;24003:7;12114:6;;-1:-1:-1;;;;;12114:6:0;;12041:87;24003:7;23806:245;;;;;;-1:-1:-1;;;;;;23806:245:0;;;-1:-1:-1;;;;;7545:15:1;;;23806:245:0;;;7527:34:1;7577:18;;;7570:34;;;;7620:18;;;7613:34;;;;7663:18;;;7656:34;7727:15;;;7706:19;;;7699:44;24025:15:0;7759:19:1;;;7752:35;7461:19;;23806:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23562:497;;:::o;11484:319::-;11599:6;11574:21;:31;;11566:73;;;;-1:-1:-1;;;11566:73:0;;12553:2:1;11566:73:0;;;12535:21:1;12592:2;12572:18;;;12565:30;12631:31;12611:18;;;12604:59;12680:18;;11566:73:0;12351: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;;12126:2:1;11717:78:0;;;12108:21:1;12165:2;12145:18;;;12138:30;12204:34;12184:18;;;12177:62;12275:28;12255:18;;;12248:56;12321:19;;11717:78:0;11924:422:1;14:748;68:5;121:3;114:4;106:6;102:17;98:27;88:55;;139:1;136;129:12;88:55;175:6;162:20;201:4;225:60;241:43;281:2;241:43;:::i;:::-;225:60;:::i;:::-;307:3;331:2;326:3;319:15;359:2;354:3;350:12;343:19;;394:2;386:6;382:15;446:3;441:2;435;432:1;428:10;420:6;416:23;412:32;409:41;406:61;;;463:1;460;453:12;406:61;485:1;495:238;509:2;506:1;503:9;495:238;;;580:3;567:17;597:31;622:5;597:31;:::i;:::-;641:18;;679:12;;;;711;;;;527:1;520:9;495:238;;;-1:-1:-1;751:5:1;;14:748;-1:-1:-1;;;;;;;14:748:1:o;767:247::-;826:6;879:2;867:9;858:7;854:23;850:32;847:52;;;895:1;892;885:12;847:52;934:9;921:23;953:31;978:5;953:31;:::i;:::-;1003:5;767:247;-1:-1:-1;;;767:247:1:o;1019:251::-;1089:6;1142:2;1130:9;1121:7;1117:23;1113:32;1110:52;;;1158:1;1155;1148:12;1110:52;1190:9;1184:16;1209:31;1234:5;1209:31;:::i;1275:388::-;1343:6;1351;1404:2;1392:9;1383:7;1379:23;1375:32;1372:52;;;1420:1;1417;1410:12;1372:52;1459:9;1446:23;1478:31;1503:5;1478:31;:::i;:::-;1528:5;-1:-1:-1;1585:2:1;1570:18;;1557:32;1598:33;1557:32;1598:33;:::i;:::-;1650:7;1640:17;;;1275:388;;;;;:::o;1668:456::-;1745:6;1753;1761;1814:2;1802:9;1793:7;1789:23;1785:32;1782:52;;;1830:1;1827;1820:12;1782:52;1869:9;1856:23;1888:31;1913:5;1888:31;:::i;:::-;1938:5;-1:-1:-1;1995:2:1;1980:18;;1967:32;2008:33;1967:32;2008:33;:::i;:::-;1668:456;;2060:7;;-1:-1:-1;;;2114:2:1;2099:18;;;;2086:32;;1668:456::o;2129:382::-;2194:6;2202;2255:2;2243:9;2234:7;2230:23;2226:32;2223:52;;;2271:1;2268;2261:12;2223:52;2310:9;2297:23;2329:31;2354:5;2329:31;:::i;:::-;2379:5;-1:-1:-1;2436:2:1;2421:18;;2408:32;2449:30;2408:32;2449:30;:::i;2516:315::-;2584:6;2592;2645:2;2633:9;2624:7;2620:23;2616:32;2613:52;;;2661:1;2658;2651:12;2613:52;2700:9;2687:23;2719:31;2744:5;2719:31;:::i;:::-;2769:5;2821:2;2806:18;;;;2793:32;;-1:-1:-1;;;2516:315:1:o;2836:1149::-;2954:6;2962;3015:2;3003:9;2994:7;2990:23;2986:32;2983:52;;;3031:1;3028;3021:12;2983:52;3071:9;3058:23;3100:18;3141:2;3133:6;3130:14;3127:34;;;3157:1;3154;3147:12;3127:34;3180:61;3233:7;3224:6;3213:9;3209:22;3180:61;:::i;:::-;3170:71;;3260:2;3250:12;;3315:2;3304:9;3300:18;3287:32;3344:2;3334:8;3331:16;3328:36;;;3360:1;3357;3350:12;3328:36;3383:24;;;-1:-1:-1;3438:4:1;3430:13;;3426:27;-1:-1:-1;3416:55:1;;3467:1;3464;3457:12;3416:55;3503:2;3490:16;3526:60;3542:43;3582:2;3542:43;:::i;3526:60::-;3608:3;3632:2;3627:3;3620:15;3660:2;3655:3;3651:12;3644:19;;3691:2;3687;3683:11;3739:7;3734:2;3728;3725:1;3721:10;3717:2;3713:19;3709:28;3706:41;3703:61;;;3760:1;3757;3750:12;3703:61;3782:1;3773:10;;3792:163;3806:2;3803:1;3800:9;3792:163;;;3863:17;;3851:30;;3824:1;3817:9;;;;;3901:12;;;;3933;;3792:163;;;3796:3;3974:5;3964:15;;;;;;;2836:1149;;;;;:::o;3990:477::-;4080:6;4088;4141:2;4129:9;4120:7;4116:23;4112:32;4109:52;;;4157:1;4154;4147:12;4109:52;4197:9;4184:23;4230:18;4222:6;4219:30;4216:50;;;4262:1;4259;4252:12;4216:50;4285:61;4338:7;4329:6;4318:9;4314:22;4285:61;:::i;:::-;4275:71;;;4396:2;4385:9;4381:18;4368:32;4409:28;4431:5;4409:28;:::i;4472:241::-;4528:6;4581:2;4569:9;4560:7;4556:23;4552:32;4549:52;;;4597:1;4594;4587:12;4549:52;4636:9;4623:23;4655:28;4677:5;4655:28;:::i;4718:245::-;4785:6;4838:2;4826:9;4817:7;4813:23;4809:32;4806:52;;;4854:1;4851;4844:12;4806:52;4886:9;4880:16;4905:28;4927:5;4905:28;:::i;4968:309::-;5033:6;5041;5094:2;5082:9;5073:7;5069:23;5065:32;5062:52;;;5110:1;5107;5100:12;5062:52;5149:9;5136:23;5168:28;5190:5;5168:28;:::i;5282:180::-;5341:6;5394:2;5382:9;5373:7;5369:23;5365:32;5362:52;;;5410:1;5407;5400:12;5362:52;-1:-1:-1;5433:23:1;;5282:180;-1:-1:-1;5282:180:1:o;5467:316::-;5544:6;5552;5560;5613:2;5601:9;5592:7;5588:23;5584:32;5581:52;;;5629:1;5626;5619:12;5581:52;-1:-1:-1;;5652:23:1;;;5722:2;5707:18;;5694:32;;-1:-1:-1;5773:2:1;5758:18;;;5745:32;;5467:316;-1:-1:-1;5467:316:1:o;5788:306::-;5876:6;5884;5892;5945:2;5933:9;5924:7;5920:23;5916:32;5913:52;;;5961:1;5958;5951:12;5913:52;5990:9;5984:16;5974:26;;6040:2;6029:9;6025:18;6019:25;6009:35;;6084:2;6073:9;6069:18;6063:25;6053:35;;5788:306;;;;;:::o;6099:385::-;6185:6;6193;6201;6209;6262:3;6250:9;6241:7;6237:23;6233:33;6230:53;;;6279:1;6276;6269:12;6230:53;-1:-1:-1;;6302:23:1;;;6372:2;6357:18;;6344:32;;-1:-1:-1;6423:2:1;6408:18;;6395:32;;6474:2;6459:18;6446:32;;-1:-1:-1;6099:385:1;-1:-1:-1;6099:385:1:o;8213:597::-;8325:4;8354:2;8383;8372:9;8365:21;8415:6;8409:13;8458:6;8453:2;8442:9;8438:18;8431:34;8483:1;8493:140;8507:6;8504:1;8501:13;8493:140;;;8602:14;;;8598:23;;8592:30;8568:17;;;8587:2;8564:26;8557:66;8522:10;;8493:140;;;8651:6;8648:1;8645:13;8642:91;;;8721:1;8716:2;8707:6;8696:9;8692:22;8688:31;8681:42;8642:91;-1:-1:-1;8794:2:1;8773:15;-1:-1:-1;;8769:29:1;8754:45;;;;8801:2;8750:54;;8213:597;-1:-1:-1;;;8213:597:1:o;15462:356::-;15664:2;15646:21;;;15683:18;;;15676:30;15742:34;15737:2;15722:18;;15715:62;15809:2;15794:18;;15462:356::o;19393:980::-;19655:4;19703:3;19692:9;19688:19;19734:6;19723:9;19716:25;19760:2;19798:6;19793:2;19782:9;19778:18;19771:34;19841:3;19836:2;19825:9;19821:18;19814:31;19865:6;19900;19894:13;19931:6;19923;19916:22;19969:3;19958:9;19954:19;19947:26;;20008:2;20000:6;19996:15;19982:29;;20029:1;20039:195;20053:6;20050:1;20047:13;20039:195;;;20118:13;;-1:-1:-1;;;;;20114:39:1;20102:52;;20209:15;;;;20174:12;;;;20150:1;20068:9;20039:195;;;-1:-1:-1;;;;;;;20290:32:1;;;;20285:2;20270:18;;20263:60;-1:-1:-1;;;20354:3:1;20339:19;20332:35;20251:3;19393:980;-1:-1:-1;;;19393:980:1:o;20963:275::-;21034:2;21028:9;21099:2;21080:13;;-1:-1:-1;;21076:27:1;21064:40;;21134:18;21119:34;;21155:22;;;21116:62;21113:88;;;21181:18;;:::i;:::-;21217:2;21210:22;20963:275;;-1:-1:-1;20963:275:1:o;21243:183::-;21303:4;21336:18;21328:6;21325:30;21322:56;;;21358:18;;:::i;:::-;-1:-1:-1;21403:1:1;21399:14;21415:4;21395:25;;21243:183::o;21431:128::-;21471:3;21502:1;21498:6;21495:1;21492:13;21489:39;;;21508:18;;:::i;:::-;-1:-1:-1;21544:9:1;;21431:128::o;21564:217::-;21604:1;21630;21620:132;;21674:10;21669:3;21665:20;21662:1;21655:31;21709:4;21706:1;21699:15;21737:4;21734:1;21727:15;21620:132;-1:-1:-1;21766:9:1;;21564:217::o;21786:422::-;21875:1;21918:5;21875:1;21932:270;21953:7;21943:8;21940:21;21932:270;;;22012:4;22008:1;22004:6;22000:17;21994:4;21991:27;21988:53;;;22021:18;;:::i;:::-;22071:7;22061:8;22057:22;22054:55;;;22091:16;;;;22054:55;22170:22;;;;22130:15;;;;21932:270;;;21936:3;21786:422;;;;;:::o;22213:140::-;22271:5;22300:47;22341:4;22331:8;22327:19;22321:4;22407:5;22437:8;22427:80;;-1:-1:-1;22478:1:1;22492:5;;22427:80;22526:4;22516:76;;-1:-1:-1;22563:1:1;22577:5;;22516:76;22608:4;22626:1;22621:59;;;;22694:1;22689:130;;;;22601:218;;22621:59;22651:1;22642:10;;22665:5;;;22689:130;22726:3;22716:8;22713:17;22710:43;;;22733:18;;:::i;:::-;-1:-1:-1;;22789:1:1;22775:16;;22804:5;;22601:218;;22903:2;22893:8;22890:16;22884:3;22878:4;22875:13;22871:36;22865:2;22855:8;22852:16;22847:2;22841:4;22838:12;22834:35;22831:77;22828:159;;;-1:-1:-1;22940:19:1;;;22972:5;;22828:159;23019:34;23044:8;23038:4;23019:34;:::i;:::-;23089:6;23085:1;23081:6;23077:19;23068:7;23065:32;23062:58;;;23100:18;;:::i;:::-;23138:20;;22358:806;-1:-1:-1;;;22358:806:1:o;23169:168::-;23209:7;23275:1;23271;23267:6;23263:14;23260:1;23257:21;23252:1;23245:9;23238:17;23234:45;23231:71;;;23282:18;;:::i;:::-;-1:-1:-1;23322:9:1;;23169:168::o;23342:125::-;23382:4;23410:1;23407;23404:8;23401:34;;;23415:18;;:::i;:::-;-1:-1:-1;23452:9:1;;23342:125::o;23472:380::-;23551:1;23547:12;;;;23594;;;23615:61;;23669:4;23661:6;23657:17;23647:27;;23615:61;23722:2;23714:6;23711:14;23691:18;23688:38;23685:161;;;23768:10;23763:3;23759:20;23756:1;23749:31;23803:4;23800:1;23793:15;23831:4;23828:1;23821:15;23685:161;;23472:380;;;:::o;23857:135::-;23896:3;-1:-1:-1;;23917:17:1;;23914:43;;;23937:18;;:::i;:::-;-1:-1:-1;23984:1:1;23973:13;;23857:135::o;23997:127::-;24058:10;24053:3;24049:20;24046:1;24039:31;24089:4;24086:1;24079:15;24113:4;24110:1;24103:15;24129:127;24190:10;24185:3;24181:20;24178:1;24171:31;24221:4;24218:1;24211:15;24245:4;24242:1;24235:15;24261:127;24322:10;24317:3;24313:20;24310:1;24303:31;24353:4;24350:1;24343:15;24377:4;24374:1;24367:15;24393:131;-1:-1:-1;;;;;24468:31:1;;24458:42;;24448:70;;24514:1;24511;24504:12;24529:118;24615:5;24608:13;24601:21;24594:5;24591:32;24581:60;;24637:1;24634;24627:12

Swarm Source

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