ETH Price: $3,624.33 (-2.79%)

Token

ERC-20: Burnana (NANA)
 

Overview

Max Total Supply

1,000,000,000 NANA

Holders

98

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
100,825.78088791910678201 NANA

Value
$0.00
0xdaa9bc477c87cd99bbca95670b619c7629be4594
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:
Burnana

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-03-05
*/

//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 Burnana is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

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

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

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

    address public marketingWallet = 0x39Fe76601F19579B2bC19221161d1C226D47f861;
    address public devWallet = 0x30F19082E6CcCF388C6d69517FB5A876a79709bE;
    address public buybackWallet = 0xEF73F5d792355B599fe402eF18b8458B569d92D3;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

    Taxes public taxes = Taxes(5, 0, 7, 1);
    Taxes public sellTaxes = Taxes(5, 0, 7, 1);

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

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

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

    constructor(address routerAdd) ERC20("Burnana", "NANA") {
        _tokengeneration(msg.sender, 1e9 * 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[buybackWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true;
        exemptFee[0x33d4cC8716Beb13F814F538Ad3b2de3b036f5e2A] = true;
        

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

    }

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

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

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

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

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

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

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

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

        fee = (amount * feesum) / 100;

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

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

        }
    }

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

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

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

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

            uint256 buybackAmt = unitBalance * 2 * swapTaxes.buyback;
            if (buybackAmt > 0) {
                payable(buybackWallet).sendValue(buybackAmt);
            }

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

        }
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function updateBuybackWallet(address newWallet) external onlyOwner {
        buybackWallet = newWallet;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAdd","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"buyback","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":"buyback","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateBuybackWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"internalType":"struct Burnana.Taxes","name":"newSellTaxes","type":"tuple"}],"name":"updateSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"internalType":"struct Burnana.Taxes","name":"newTaxes","type":"tuple"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint256","name":"_launchtax","type":"uint256"}],"name":"updateTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191681556b019d971e4fe8401e740000006008556a295be96e640669720000006009819055600a819055600b55600f80546001600160a01b03199081167339fe76601f19579b2bc19221161d1c226d47f861179091556010805482167330f19082e6cccf388c6d69517fb5a876a79709be1790556011805490911673ef73f5d792355b599fe402ef18b8458b569d92d317905560056080819052600060a081905260c0839052600160e081905260128390556013829055601484905560158190556101806040526101008390526101208290526101408490526101608190526016929092556017556018919091556019819055601e805460ff19169091179055603c601f553480156200011c57600080fd5b5060405162003545380380620035458339810160408190526200013f9162000813565b60408051808201825260078152664275726e616e6160c81b6020808301918252835180850190945260048452634e414e4160e01b9084015281519192916200018a916003916200076d565b508051620001a09060049060208401906200076d565b505050620001bd620001b76200062160201b60201c565b62000625565b620001e633620001d06012600a620008a9565b620001e090633b9aca006200096a565b62000677565b336000908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b815290518493926001600160a01b0385169263c45a01559260048083019392829003018186803b1580156200024157600080fd5b505afa15801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c919062000813565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c557600080fd5b505afa158015620002da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000300919062000813565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034957600080fd5b505af11580156200035e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000384919062000813565b600680546001600160a01b038086166001600160a01b031992831617909255600780548385169216919091179055306000818152601a60209081526040808320805460ff199081166001908117909255600f54871685528285208054821683179055601154871685528285208054821683179055601054909616845281842080548716821790557f428bdc965569ef4717764ecfd84e88946a9a226b52b813e6ab6a7f46aad86e8880548716821790557f2fcec17b10d207b56bde579aeb215b58d6c4f64a986f1030b316c9e25b6b832b80548716821790557f54a07289f9bcce50727433c3935d341a715f3569b8d80545229402591066e56480548716821790557fbd707750a2b98938e2aa0099e9e123f406bdd7cb1bf478b0cce8748faec1a4e88054871682179055938352601c9182905282208054909416831790935592935091620004db6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560075482168152601c909352818320805485166001908117909155600f54821684528284208054861682179055601154821684528284208054861682179055601054909116835290822080548416821790557fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc80548416821790557f6c1aff534cb60d09ff5c1e28020ddf8fa4318882dab0aa0fb74e99b43cee92b380548416821790557f53e29f4943ea19ad4eb51a2fbaba86ac601fb0df301a1aaed418383a145f58d180548416821790557333d4cc8716beb13f814f538ad3b2de3b036f5e2a9091527fbaadbc58e5d54a41b1a9db84b7ad7ea29ee78350642d4eedf2f0e4ddd5cb0e8f805490921617905550620009df915050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620006e05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b8060026000828254620006f4919062000845565b90915550506001600160a01b038216600090815260208190526040812080548392906200072390849062000845565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200077b906200098c565b90600052602060002090601f0160209004810192826200079f5760008555620007ea565b82601f10620007ba57805160ff1916838001178555620007ea565b82800160010185558215620007ea579182015b82811115620007ea578251825591602001919060010190620007cd565b50620007f8929150620007fc565b5090565b5b80821115620007f85760008155600101620007fd565b6000602082840312156200082657600080fd5b81516001600160a01b03811681146200083e57600080fd5b9392505050565b600082198211156200085b576200085b620009c9565b500190565b600181815b80851115620008a1578160001904821115620008855762000885620009c9565b808516156200089357918102915b93841c939080029062000865565b509250929050565b60006200083e60ff841683600082620008c55750600162000964565b81620008d45750600062000964565b8160018114620008ed5760028114620008f85762000918565b600191505062000964565b60ff8411156200090c576200090c620009c9565b50506001821b62000964565b5060208310610133831016604e8410600b84101617156200093d575081810a62000964565b62000949838362000860565b8060001904821115620009605762000960620009c9565b0290505b92915050565b6000816000190483118215151615620009875762000987620009c9565b500290565b600181811c90821680620009a157607f821691505b60208210811415620009c357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612b5680620009ef6000396000f3fe6080604052600436106103395760003560e01c806375f0a874116101ab578063b5c57145116100f7578063e517f2b911610095578063f66895a31161006f578063f66895a3146109d5578063f887ea40146109f8578063fbe6324e14610a18578063fe575a8714610a3957600080fd5b8063e517f2b91461097b578063ee36e3591461099b578063f2fde38b146109b557600080fd5b8063d8672e51116100d1578063d8672e51146108d5578063dd62ed3e146108f5578063deab8aea1461093b578063e1f8fc161461095b57600080fd5b8063b5c571451461086f578063c5d32bb21461088f578063d2ce0db2146108bf57600080fd5b80638ea5220f11610164578063a457c2d71161013e578063a457c2d7146107ef578063a8aa1b311461080f578063a9059cbb1461082f578063aacebbe31461084f57600080fd5b80638ea5220f1461079a57806395d89b41146107ba5780639e252f00146107cf57600080fd5b806375f0a874146106ce5780637e554d471461070657806381428be11461072657806385141a77146107465780638cd4426d1461075c5780638da5cb5b1461077c57600080fd5b8063395093511161028557806362695eae116102235780636aa5b37f116101fd5780636aa5b37f1461062a57806370a0823114610640578063715018a614610676578063728f8eea1461068b57600080fd5b806362695eae146105ce578063652e2f04146105fe57806366a88d961461061457600080fd5b806342b6fa111161025f57806342b6fa111461054d5780634ada218b1461056d57806359759f611461058e5780635b24ea5e146105ae57600080fd5b806339509351146104ed5780633d30d20b1461050d57806340b28c2f1461052d57600080fd5b80631675d802116102f257806323b872dd116102cc57806323b872dd1461047b578063274a533c1461049b578063313ce567146104b1578063355496ca146104cd57600080fd5b80631675d8021461042257806318160ddd146104465780631816467f1461045b57600080fd5b806304dacd501461034557806306fdde0314610367578063095ea7b3146103925780630e375a5c146103c25780631340538f146103e257806313f97a8e1461040257600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061036561036036600461249f565b610a69565b005b34801561037357600080fd5b5061037c610abe565b60405161038991906127db565b60405180910390f35b34801561039e57600080fd5b506103b26103ad366004612588565b610b50565b6040519015158152602001610389565b3480156103ce57600080fd5b506103656103dd3660046125b4565b610b67565b3480156103ee57600080fd5b506103656103fd36600461267f565b610bfd565b34801561040e57600080fd5b5061036561041d3660046125b4565b610c45565b34801561042e57600080fd5b5061043860085481565b604051908152602001610389565b34801561045257600080fd5b50600254610438565b34801561046757600080fd5b5061036561047636600461249f565b610cd6565b34801561048757600080fd5b506103b2610496366004612519565b610d22565b3480156104a757600080fd5b50610438600c5481565b3480156104bd57600080fd5b5060405160128152602001610389565b3480156104d957600080fd5b506103656104e836600461255a565b610dd3565b3480156104f957600080fd5b506103b2610508366004612588565b610e28565b34801561051957600080fd5b506103656105283660046126d7565b610e5f565b34801561053957600080fd5b506103656105483660046124e0565b610ed1565b34801561055957600080fd5b50610365610568366004612772565b610f29565b34801561057957600080fd5b506007546103b290600160b01b900460ff1681565b34801561059a57600080fd5b506103656105a936600461278b565b610f6f565b3480156105ba57600080fd5b506103656105c936600461255a565b610fcf565b3480156105da57600080fd5b506103b26105e936600461249f565b601c6020526000908152604090205460ff1681565b34801561060a57600080fd5b50610438600a5481565b34801561062057600080fd5b50610438600b5481565b34801561063657600080fd5b5061043860095481565b34801561064c57600080fd5b5061043861065b36600461249f565b6001600160a01b031660009081526020819052604090205490565b34801561068257600080fd5b50610365611024565b34801561069757600080fd5b506012546013546014546015546106ae9392919084565b604080519485526020850193909352918301526060820152608001610389565b3480156106da57600080fd5b50600f546106ee906001600160a01b031681565b6040516001600160a01b039091168152602001610389565b34801561071257600080fd5b5061036561072136600461270c565b61105a565b34801561073257600080fd5b506103656107413660046125b4565b6110a2565b34801561075257600080fd5b506106ee61dead81565b34801561076857600080fd5b50610365610777366004612588565b611133565b34801561078857600080fd5b506005546001600160a01b03166106ee565b3480156107a657600080fd5b506010546106ee906001600160a01b031681565b3480156107c657600080fd5b5061037c6111e3565b3480156107db57600080fd5b506103656107ea366004612772565b6111f2565b3480156107fb57600080fd5b506103b261080a366004612588565b61125a565b34801561081b57600080fd5b506007546106ee906001600160a01b031681565b34801561083b57600080fd5b506103b261084a366004612588565b6112f5565b34801561085b57600080fd5b5061036561086a36600461249f565b611302565b34801561087b57600080fd5b5061036561088a36600461255a565b61134e565b34801561089b57600080fd5b506103b26108aa36600461249f565b601a6020526000908152604090205460ff1681565b3480156108cb57600080fd5b50610438601f5481565b3480156108e157600080fd5b506103656108f0366004612772565b6113a3565b34801561090157600080fd5b506104386109103660046124e0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561094757600080fd5b506011546106ee906001600160a01b031681565b34801561096757600080fd5b5061036561097636600461270c565b6113e9565b34801561098757600080fd5b506103656109963660046126b9565b611431565b3480156109a757600080fd5b50601e546103b29060ff1681565b3480156109c157600080fd5b506103656109d036600461249f565b61147d565b3480156109e157600080fd5b506016546017546018546019546106ae9392919084565b348015610a0457600080fd5b506006546106ee906001600160a01b031681565b348015610a2457600080fd5b506007546103b290600160a81b900460ff1681565b348015610a4557600080fd5b506103b2610a5436600461249f565b601b6020526000908152604090205460ff1681565b6005546001600160a01b03163314610a9c5760405162461bcd60e51b8152600401610a9390612830565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b606060038054610acd90612a65565b80601f0160208091040260200160405190810160405280929190818152602001828054610af990612a65565b8015610b465780601f10610b1b57610100808354040283529160200191610b46565b820191906000526020600020905b815481529060010190602001808311610b2957829003601f168201915b5050505050905090565b6000610b5d338484611518565b5060015b92915050565b6005546001600160a01b03163314610b915760405162461bcd60e51b8152600401610a9390612830565b60005b8251811015610bf85781601a6000858481518110610bb457610bb4612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bf081612aa0565b915050610b94565b505050565b6005546001600160a01b03163314610c275760405162461bcd60e51b8152600401610a9390612830565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b8152600401610a9390612830565b60005b8251811015610bf85781601b6000858481518110610c9257610c92612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610cce81612aa0565b915050610c72565b6005546001600160a01b03163314610d005760405162461bcd60e51b8152600401610a9390612830565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d2f84848461163c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610db45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a93565b610dc88533610dc38685612a4e565b611518565b506001949350505050565b6005546001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610a9390612830565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b5d918590610dc3908690612907565b6005546001600160a01b03163314610e895760405162461bcd60e51b8152600401610a9390612830565b600d829055600e8190556007805461ffff60a81b1916600160b01b85151590810260ff60a81b191691909117600160a81b82021790915560011415610bf85743600c55505050565b6005546001600160a01b03163314610efb5760405162461bcd60e51b8152600401610a9390612830565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610f535760405162461bcd60e51b8152600401610a9390612830565b610f5f6012600a612984565b610f699082612a2f565b60085550565b6005546001600160a01b03163314610f995760405162461bcd60e51b8152600401610a9390612830565b610fa56012600a612984565b610faf9083612a2f565b600955610fbe6012600a612984565b610fc89082612a2f565b600a555050565b6005546001600160a01b03163314610ff95760405162461bcd60e51b8152600401610a9390612830565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461104e5760405162461bcd60e51b8152600401610a9390612830565b6110586000611d4f565b565b6005546001600160a01b031633146110845760405162461bcd60e51b8152600401610a9390612830565b80516016556020810151601755604081015160185560600151601955565b6005546001600160a01b031633146110cc5760405162461bcd60e51b8152600401610a9390612830565b60005b8251811015610bf85781601c60008584815181106110ef576110ef612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061112b81612aa0565b9150506110cf565b6005546001600160a01b0316331461115d5760405162461bcd60e51b8152600401610a9390612830565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf8919061269c565b606060048054610acd90612a65565b6005546001600160a01b0316331461121c5760405162461bcd60e51b8152600401610a9390612830565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611256573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a93565b6112eb3385610dc38685612a4e565b5060019392505050565b6000610b5d33848461163c565b6005546001600160a01b0316331461132c5760405162461bcd60e51b8152600401610a9390612830565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113785760405162461bcd60e51b8152600401610a9390612830565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113cd5760405162461bcd60e51b8152600401610a9390612830565b6113d96012600a612984565b6113e39082612a2f565b600b5550565b6005546001600160a01b031633146114135760405162461bcd60e51b8152600401610a9390612830565b80516012556020810151601355604081015160145560600151601555565b6005546001600160a01b0316331461145b5760405162461bcd60e51b8152600401610a9390612830565b611466816001612a2f565b601f5550601e805460ff1916911515919091179055565b6005546001600160a01b031633146114a75760405162461bcd60e51b8152600401610a9390612830565b6001600160a01b03811661150c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a93565b61151581611d4f565b50565b6001600160a01b03831661157a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a93565b6001600160a01b0382166115db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a93565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161169e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a93565b6001600160a01b0383166000908152601b602052604090205460ff161580156116e057506001600160a01b0382166000908152601b602052604090205460ff16155b61172c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610a93565b6001600160a01b0383166000908152601a602052604090205460ff1615801561176e57506001600160a01b0382166000908152601a602052604090205460ff16155b156117c257600754600160b01b900460ff166117c25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a93565b6007546001600160a01b0384811691161480156117f857506001600160a01b0382166000908152601a602052604090205460ff16155b801561180e5750600754600160a01b900460ff16155b156118e0576009548111156118655760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a93565b600b5481611888846001600160a01b031660009081526020819052604090205490565b6118929190612907565b11156118e05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a93565b6007546001600160a01b0384811691161480159061191757506001600160a01b0382166000908152601a602052604090205460ff16155b801561193c57506001600160a01b0383166000908152601a602052604090205460ff16155b80156119525750600754600160a01b900460ff16155b15611acb57600a548111156119a95760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a93565b6007546001600160a01b03838116911614611a3957600b54816119e1846001600160a01b031660009081526020819052604090205490565b6119eb9190612907565b1115611a395760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a93565b601e5460ff1615611acb576001600160a01b0383166000908152601d6020526040812054611a679042612a4e565b9050601f54811015611aae5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a93565b506001600160a01b0383166000908152601d602052604090204290555b6000806000611afb6040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611b3d57506001600160a01b0387166000908152601a602052604090205460ff16155b8015611b575750600d54600c54611b549190612907565b43105b600754909150600160a01b900460ff1680611b8a57506001600160a01b0388166000908152601a602052604090205460ff165b80611bad57506001600160a01b0387166000908152601a602052604090205460ff165b15611bbb5760009250611caf565b6007546001600160a01b038881169116148015611bd6575080155b15611c3b57601954601854601654601754611bf19190612907565b611bfb9190612907565b611c059190612907565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611caf565b80611ca057601554601454601254601354611c569190612907565b611c609190612907565b611c6a9190612907565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611caf565b8015611caf57600e5494508493505b6064611cbb8588612a2f565b611cc5919061291f565b600754909350600160a81b900460ff168015611cef57506007546001600160a01b03898116911614155b15611cfe57611cfe8583611da1565b611d128888611d0d868a612a4e565b611f51565b8215611d45578415611d455760006064611d2c8789612a2f565b611d36919061291f565b9050611d43893083611f51565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611256576007805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506008548110611f3f5760016008541115611df057506008545b6000611dfd846002612a2f565b9050600081846020015184611e129190612a2f565b611e1c919061291f565b90506000611e2a8285612a4e565b905047611e3682612129565b6000611e428247612a4e565b90506000876020015186611e569190612a4e565b611e60908361291f565b90506000886020015182611e749190612a2f565b90508015611e8657611e868682612292565b8851600090611e96846002612a2f565b611ea09190612a2f565b90508015611ebe57600f54611ebe906001600160a01b031682612376565b60408a0151600090611ed1856002612a2f565b611edb9190612a2f565b90508015611ef957601154611ef9906001600160a01b031682612376565b60608b0151600090611f0c866002612a2f565b611f169190612a2f565b90508015611f3457601054611f34906001600160a01b031682612376565b505050505050505050505b506007805460ff60a01b191690555050565b6001600160a01b038316611fb55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a93565b6001600160a01b0382166120175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a93565b6001600160a01b0383166000908152602081905260409020548181101561208f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a93565b6120998282612a4e565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906120cf908490612907565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211b91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061215e5761215e612ad1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156121b257600080fd5b505afa1580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea91906124c3565b816001815181106121fd576121fd612ad1565b6001600160a01b0392831660209182029290920101526006546122239130911684611518565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061225c908590600090869030904290600401612865565b600060405180830381600087803b15801561227657600080fd5b505af115801561228a573d6000803e3d6000fd5b505050505050565b6006546122aa9030906001600160a01b031684611518565b6006546001600160a01b031663f305d7198230856000806122d36005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561233657600080fd5b505af115801561234a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236f91906127ad565b5050505050565b804710156123c65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a93565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612413576040519150601f19603f3d011682016040523d82523d6000602084013e612418565b606091505b5050905080610bf85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a93565b803561249a81612b12565b919050565b6000602082840312156124b157600080fd5b81356124bc81612afd565b9392505050565b6000602082840312156124d557600080fd5b81516124bc81612afd565b600080604083850312156124f357600080fd5b82356124fe81612afd565b9150602083013561250e81612afd565b809150509250929050565b60008060006060848603121561252e57600080fd5b833561253981612afd565b9250602084013561254981612afd565b929592945050506040919091013590565b6000806040838503121561256d57600080fd5b823561257881612afd565b9150602083013561250e81612b12565b6000806040838503121561259b57600080fd5b82356125a681612afd565b946020939093013593505050565b600080604083850312156125c757600080fd5b823567ffffffffffffffff808211156125df57600080fd5b818501915085601f8301126125f357600080fd5b813560208282111561260757612607612ae7565b8160051b92506126188184016128d6565b8281528181019085830185870184018b101561263357600080fd5b600096505b84871015612662578035955061264d86612afd565b85835260019690960195918301918301612638565b509650612672905087820161248f565b9450505050509250929050565b60006020828403121561269157600080fd5b81356124bc81612b12565b6000602082840312156126ae57600080fd5b81516124bc81612b12565b600080604083850312156126cc57600080fd5b82356125a681612b12565b6000806000606084860312156126ec57600080fd5b83356126f781612b12565b95602085013595506040909401359392505050565b60006080828403121561271e57600080fd5b6040516080810181811067ffffffffffffffff8211171561274157612741612ae7565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60006020828403121561278457600080fd5b5035919050565b6000806040838503121561279e57600080fd5b50508035926020909101359150565b6000806000606084860312156127c257600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612808578581018301518582016040015282016127ec565b8181111561281a576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128b55784516001600160a01b031683529383019391830191600101612890565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128ff576128ff612ae7565b604052919050565b6000821982111561291a5761291a612abb565b500190565b60008261293c57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561297c57816000190482111561296257612962612abb565b8085161561296f57918102915b93841c9390800290612946565b509250929050565b60006124bc60ff84168360008261299d57506001610b61565b816129aa57506000610b61565b81600181146129c057600281146129ca576129e6565b6001915050610b61565b60ff8411156129db576129db612abb565b50506001821b610b61565b5060208310610133831016604e8410600b8410161715612a09575081810a610b61565b612a138383612941565b8060001904821115612a2757612a27612abb565b029392505050565b6000816000190483118215151615612a4957612a49612abb565b500290565b600082821015612a6057612a60612abb565b500390565b600181811c90821680612a7957607f821691505b60208210811415612a9a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ab457612ab4612abb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461151557600080fd5b801515811461151557600080fdfea264697066735822122030918e4d560cee78ce1a947d49258dca5e690e12b757a025798252f896b8b8f964736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106103395760003560e01c806375f0a874116101ab578063b5c57145116100f7578063e517f2b911610095578063f66895a31161006f578063f66895a3146109d5578063f887ea40146109f8578063fbe6324e14610a18578063fe575a8714610a3957600080fd5b8063e517f2b91461097b578063ee36e3591461099b578063f2fde38b146109b557600080fd5b8063d8672e51116100d1578063d8672e51146108d5578063dd62ed3e146108f5578063deab8aea1461093b578063e1f8fc161461095b57600080fd5b8063b5c571451461086f578063c5d32bb21461088f578063d2ce0db2146108bf57600080fd5b80638ea5220f11610164578063a457c2d71161013e578063a457c2d7146107ef578063a8aa1b311461080f578063a9059cbb1461082f578063aacebbe31461084f57600080fd5b80638ea5220f1461079a57806395d89b41146107ba5780639e252f00146107cf57600080fd5b806375f0a874146106ce5780637e554d471461070657806381428be11461072657806385141a77146107465780638cd4426d1461075c5780638da5cb5b1461077c57600080fd5b8063395093511161028557806362695eae116102235780636aa5b37f116101fd5780636aa5b37f1461062a57806370a0823114610640578063715018a614610676578063728f8eea1461068b57600080fd5b806362695eae146105ce578063652e2f04146105fe57806366a88d961461061457600080fd5b806342b6fa111161025f57806342b6fa111461054d5780634ada218b1461056d57806359759f611461058e5780635b24ea5e146105ae57600080fd5b806339509351146104ed5780633d30d20b1461050d57806340b28c2f1461052d57600080fd5b80631675d802116102f257806323b872dd116102cc57806323b872dd1461047b578063274a533c1461049b578063313ce567146104b1578063355496ca146104cd57600080fd5b80631675d8021461042257806318160ddd146104465780631816467f1461045b57600080fd5b806304dacd501461034557806306fdde0314610367578063095ea7b3146103925780630e375a5c146103c25780631340538f146103e257806313f97a8e1461040257600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061036561036036600461249f565b610a69565b005b34801561037357600080fd5b5061037c610abe565b60405161038991906127db565b60405180910390f35b34801561039e57600080fd5b506103b26103ad366004612588565b610b50565b6040519015158152602001610389565b3480156103ce57600080fd5b506103656103dd3660046125b4565b610b67565b3480156103ee57600080fd5b506103656103fd36600461267f565b610bfd565b34801561040e57600080fd5b5061036561041d3660046125b4565b610c45565b34801561042e57600080fd5b5061043860085481565b604051908152602001610389565b34801561045257600080fd5b50600254610438565b34801561046757600080fd5b5061036561047636600461249f565b610cd6565b34801561048757600080fd5b506103b2610496366004612519565b610d22565b3480156104a757600080fd5b50610438600c5481565b3480156104bd57600080fd5b5060405160128152602001610389565b3480156104d957600080fd5b506103656104e836600461255a565b610dd3565b3480156104f957600080fd5b506103b2610508366004612588565b610e28565b34801561051957600080fd5b506103656105283660046126d7565b610e5f565b34801561053957600080fd5b506103656105483660046124e0565b610ed1565b34801561055957600080fd5b50610365610568366004612772565b610f29565b34801561057957600080fd5b506007546103b290600160b01b900460ff1681565b34801561059a57600080fd5b506103656105a936600461278b565b610f6f565b3480156105ba57600080fd5b506103656105c936600461255a565b610fcf565b3480156105da57600080fd5b506103b26105e936600461249f565b601c6020526000908152604090205460ff1681565b34801561060a57600080fd5b50610438600a5481565b34801561062057600080fd5b50610438600b5481565b34801561063657600080fd5b5061043860095481565b34801561064c57600080fd5b5061043861065b36600461249f565b6001600160a01b031660009081526020819052604090205490565b34801561068257600080fd5b50610365611024565b34801561069757600080fd5b506012546013546014546015546106ae9392919084565b604080519485526020850193909352918301526060820152608001610389565b3480156106da57600080fd5b50600f546106ee906001600160a01b031681565b6040516001600160a01b039091168152602001610389565b34801561071257600080fd5b5061036561072136600461270c565b61105a565b34801561073257600080fd5b506103656107413660046125b4565b6110a2565b34801561075257600080fd5b506106ee61dead81565b34801561076857600080fd5b50610365610777366004612588565b611133565b34801561078857600080fd5b506005546001600160a01b03166106ee565b3480156107a657600080fd5b506010546106ee906001600160a01b031681565b3480156107c657600080fd5b5061037c6111e3565b3480156107db57600080fd5b506103656107ea366004612772565b6111f2565b3480156107fb57600080fd5b506103b261080a366004612588565b61125a565b34801561081b57600080fd5b506007546106ee906001600160a01b031681565b34801561083b57600080fd5b506103b261084a366004612588565b6112f5565b34801561085b57600080fd5b5061036561086a36600461249f565b611302565b34801561087b57600080fd5b5061036561088a36600461255a565b61134e565b34801561089b57600080fd5b506103b26108aa36600461249f565b601a6020526000908152604090205460ff1681565b3480156108cb57600080fd5b50610438601f5481565b3480156108e157600080fd5b506103656108f0366004612772565b6113a3565b34801561090157600080fd5b506104386109103660046124e0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561094757600080fd5b506011546106ee906001600160a01b031681565b34801561096757600080fd5b5061036561097636600461270c565b6113e9565b34801561098757600080fd5b506103656109963660046126b9565b611431565b3480156109a757600080fd5b50601e546103b29060ff1681565b3480156109c157600080fd5b506103656109d036600461249f565b61147d565b3480156109e157600080fd5b506016546017546018546019546106ae9392919084565b348015610a0457600080fd5b506006546106ee906001600160a01b031681565b348015610a2457600080fd5b506007546103b290600160a81b900460ff1681565b348015610a4557600080fd5b506103b2610a5436600461249f565b601b6020526000908152604090205460ff1681565b6005546001600160a01b03163314610a9c5760405162461bcd60e51b8152600401610a9390612830565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b606060038054610acd90612a65565b80601f0160208091040260200160405190810160405280929190818152602001828054610af990612a65565b8015610b465780601f10610b1b57610100808354040283529160200191610b46565b820191906000526020600020905b815481529060010190602001808311610b2957829003601f168201915b5050505050905090565b6000610b5d338484611518565b5060015b92915050565b6005546001600160a01b03163314610b915760405162461bcd60e51b8152600401610a9390612830565b60005b8251811015610bf85781601a6000858481518110610bb457610bb4612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bf081612aa0565b915050610b94565b505050565b6005546001600160a01b03163314610c275760405162461bcd60e51b8152600401610a9390612830565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b8152600401610a9390612830565b60005b8251811015610bf85781601b6000858481518110610c9257610c92612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610cce81612aa0565b915050610c72565b6005546001600160a01b03163314610d005760405162461bcd60e51b8152600401610a9390612830565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d2f84848461163c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610db45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a93565b610dc88533610dc38685612a4e565b611518565b506001949350505050565b6005546001600160a01b03163314610dfd5760405162461bcd60e51b8152600401610a9390612830565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b5d918590610dc3908690612907565b6005546001600160a01b03163314610e895760405162461bcd60e51b8152600401610a9390612830565b600d829055600e8190556007805461ffff60a81b1916600160b01b85151590810260ff60a81b191691909117600160a81b82021790915560011415610bf85743600c55505050565b6005546001600160a01b03163314610efb5760405162461bcd60e51b8152600401610a9390612830565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610f535760405162461bcd60e51b8152600401610a9390612830565b610f5f6012600a612984565b610f699082612a2f565b60085550565b6005546001600160a01b03163314610f995760405162461bcd60e51b8152600401610a9390612830565b610fa56012600a612984565b610faf9083612a2f565b600955610fbe6012600a612984565b610fc89082612a2f565b600a555050565b6005546001600160a01b03163314610ff95760405162461bcd60e51b8152600401610a9390612830565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461104e5760405162461bcd60e51b8152600401610a9390612830565b6110586000611d4f565b565b6005546001600160a01b031633146110845760405162461bcd60e51b8152600401610a9390612830565b80516016556020810151601755604081015160185560600151601955565b6005546001600160a01b031633146110cc5760405162461bcd60e51b8152600401610a9390612830565b60005b8251811015610bf85781601c60008584815181106110ef576110ef612ad1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061112b81612aa0565b9150506110cf565b6005546001600160a01b0316331461115d5760405162461bcd60e51b8152600401610a9390612830565b60105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf8919061269c565b606060048054610acd90612a65565b6005546001600160a01b0316331461121c5760405162461bcd60e51b8152600401610a9390612830565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611256573d6000803e3d6000fd5b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a93565b6112eb3385610dc38685612a4e565b5060019392505050565b6000610b5d33848461163c565b6005546001600160a01b0316331461132c5760405162461bcd60e51b8152600401610a9390612830565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113785760405162461bcd60e51b8152600401610a9390612830565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113cd5760405162461bcd60e51b8152600401610a9390612830565b6113d96012600a612984565b6113e39082612a2f565b600b5550565b6005546001600160a01b031633146114135760405162461bcd60e51b8152600401610a9390612830565b80516012556020810151601355604081015160145560600151601555565b6005546001600160a01b0316331461145b5760405162461bcd60e51b8152600401610a9390612830565b611466816001612a2f565b601f5550601e805460ff1916911515919091179055565b6005546001600160a01b031633146114a75760405162461bcd60e51b8152600401610a9390612830565b6001600160a01b03811661150c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a93565b61151581611d4f565b50565b6001600160a01b03831661157a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a93565b6001600160a01b0382166115db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a93565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161169e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a93565b6001600160a01b0383166000908152601b602052604090205460ff161580156116e057506001600160a01b0382166000908152601b602052604090205460ff16155b61172c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610a93565b6001600160a01b0383166000908152601a602052604090205460ff1615801561176e57506001600160a01b0382166000908152601a602052604090205460ff16155b156117c257600754600160b01b900460ff166117c25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a93565b6007546001600160a01b0384811691161480156117f857506001600160a01b0382166000908152601a602052604090205460ff16155b801561180e5750600754600160a01b900460ff16155b156118e0576009548111156118655760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a93565b600b5481611888846001600160a01b031660009081526020819052604090205490565b6118929190612907565b11156118e05760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a93565b6007546001600160a01b0384811691161480159061191757506001600160a01b0382166000908152601a602052604090205460ff16155b801561193c57506001600160a01b0383166000908152601a602052604090205460ff16155b80156119525750600754600160a01b900460ff16155b15611acb57600a548111156119a95760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a93565b6007546001600160a01b03838116911614611a3957600b54816119e1846001600160a01b031660009081526020819052604090205490565b6119eb9190612907565b1115611a395760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a93565b601e5460ff1615611acb576001600160a01b0383166000908152601d6020526040812054611a679042612a4e565b9050601f54811015611aae5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a93565b506001600160a01b0383166000908152601d602052604090204290555b6000806000611afb6040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611b3d57506001600160a01b0387166000908152601a602052604090205460ff16155b8015611b575750600d54600c54611b549190612907565b43105b600754909150600160a01b900460ff1680611b8a57506001600160a01b0388166000908152601a602052604090205460ff165b80611bad57506001600160a01b0387166000908152601a602052604090205460ff165b15611bbb5760009250611caf565b6007546001600160a01b038881169116148015611bd6575080155b15611c3b57601954601854601654601754611bf19190612907565b611bfb9190612907565b611c059190612907565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611caf565b80611ca057601554601454601254601354611c569190612907565b611c609190612907565b611c6a9190612907565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611caf565b8015611caf57600e5494508493505b6064611cbb8588612a2f565b611cc5919061291f565b600754909350600160a81b900460ff168015611cef57506007546001600160a01b03898116911614155b15611cfe57611cfe8583611da1565b611d128888611d0d868a612a4e565b611f51565b8215611d45578415611d455760006064611d2c8789612a2f565b611d36919061291f565b9050611d43893083611f51565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611256576007805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506008548110611f3f5760016008541115611df057506008545b6000611dfd846002612a2f565b9050600081846020015184611e129190612a2f565b611e1c919061291f565b90506000611e2a8285612a4e565b905047611e3682612129565b6000611e428247612a4e565b90506000876020015186611e569190612a4e565b611e60908361291f565b90506000886020015182611e749190612a2f565b90508015611e8657611e868682612292565b8851600090611e96846002612a2f565b611ea09190612a2f565b90508015611ebe57600f54611ebe906001600160a01b031682612376565b60408a0151600090611ed1856002612a2f565b611edb9190612a2f565b90508015611ef957601154611ef9906001600160a01b031682612376565b60608b0151600090611f0c866002612a2f565b611f169190612a2f565b90508015611f3457601054611f34906001600160a01b031682612376565b505050505050505050505b506007805460ff60a01b191690555050565b6001600160a01b038316611fb55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a93565b6001600160a01b0382166120175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a93565b6001600160a01b0383166000908152602081905260409020548181101561208f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a93565b6120998282612a4e565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906120cf908490612907565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211b91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061215e5761215e612ad1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156121b257600080fd5b505afa1580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea91906124c3565b816001815181106121fd576121fd612ad1565b6001600160a01b0392831660209182029290920101526006546122239130911684611518565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061225c908590600090869030904290600401612865565b600060405180830381600087803b15801561227657600080fd5b505af115801561228a573d6000803e3d6000fd5b505050505050565b6006546122aa9030906001600160a01b031684611518565b6006546001600160a01b031663f305d7198230856000806122d36005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561233657600080fd5b505af115801561234a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236f91906127ad565b5050505050565b804710156123c65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a93565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612413576040519150601f19603f3d011682016040523d82523d6000602084013e612418565b606091505b5050905080610bf85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a93565b803561249a81612b12565b919050565b6000602082840312156124b157600080fd5b81356124bc81612afd565b9392505050565b6000602082840312156124d557600080fd5b81516124bc81612afd565b600080604083850312156124f357600080fd5b82356124fe81612afd565b9150602083013561250e81612afd565b809150509250929050565b60008060006060848603121561252e57600080fd5b833561253981612afd565b9250602084013561254981612afd565b929592945050506040919091013590565b6000806040838503121561256d57600080fd5b823561257881612afd565b9150602083013561250e81612b12565b6000806040838503121561259b57600080fd5b82356125a681612afd565b946020939093013593505050565b600080604083850312156125c757600080fd5b823567ffffffffffffffff808211156125df57600080fd5b818501915085601f8301126125f357600080fd5b813560208282111561260757612607612ae7565b8160051b92506126188184016128d6565b8281528181019085830185870184018b101561263357600080fd5b600096505b84871015612662578035955061264d86612afd565b85835260019690960195918301918301612638565b509650612672905087820161248f565b9450505050509250929050565b60006020828403121561269157600080fd5b81356124bc81612b12565b6000602082840312156126ae57600080fd5b81516124bc81612b12565b600080604083850312156126cc57600080fd5b82356125a681612b12565b6000806000606084860312156126ec57600080fd5b83356126f781612b12565b95602085013595506040909401359392505050565b60006080828403121561271e57600080fd5b6040516080810181811067ffffffffffffffff8211171561274157612741612ae7565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60006020828403121561278457600080fd5b5035919050565b6000806040838503121561279e57600080fd5b50508035926020909101359150565b6000806000606084860312156127c257600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612808578581018301518582016040015282016127ec565b8181111561281a576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128b55784516001600160a01b031683529383019391830191600101612890565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128ff576128ff612ae7565b604052919050565b6000821982111561291a5761291a612abb565b500190565b60008261293c57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561297c57816000190482111561296257612962612abb565b8085161561296f57918102915b93841c9390800290612946565b509250929050565b60006124bc60ff84168360008261299d57506001610b61565b816129aa57506000610b61565b81600181146129c057600281146129ca576129e6565b6001915050610b61565b60ff8411156129db576129db612abb565b50506001821b610b61565b5060208310610133831016604e8410600b8410161715612a09575081810a610b61565b612a138383612941565b8060001904821115612a2757612a27612abb565b029392505050565b6000816000190483118215151615612a4957612a49612abb565b500290565b600082821015612a6057612a60612abb565b500390565b600181811c90821680612a7957607f821691505b60208210811415612a9a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ab457612ab4612abb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461151557600080fd5b801515811461151557600080fdfea264697066735822122030918e4d560cee78ce1a947d49258dca5e690e12b757a025798252f896b8b8f964736f6c63430008070033

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:13807:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25326:111;;;;;;;;;;-1:-1:-1;25326:111:0;;;;;:::i;:::-;;:::i;:::-;;2377:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16651:161;;;;;;;;;;-1:-1:-1;16651:161:0;;;;;:::i;:::-;;:::i;:::-;;;7378:14:1;;7371:22;7353:41;;7341:2;7326:18;16651:161:0;7213:187:1;26557:202:0;;;;;;;;;;-1:-1:-1;26557:202:0;;;;;:::i;:::-;;:::i;24125:152::-;;;;;;;;;;-1:-1:-1;24125:152:0;;;;;:::i;:::-;;:::i;25851:210::-;;;;;;;;;;-1:-1:-1;25851:210:0;;;;;:::i;:::-;;:::i;13872:61::-;;;;;;;;;;;;;;;;;;;15304:25:1;;;15292:2;15277:18;13872:61:0;15158:177:1;3497:108:0;;;;;;;;;;-1:-1:-1;3585:12:0;;3497:108;;25445:103;;;;;;;;;;-1:-1:-1;25445:103:0;;;;;:::i;:::-;;:::i;16820:448::-;;;;;;;;;;-1:-1:-1;16820:448:0;;;;;:::i;:::-;;:::i;14111:28::-;;;;;;;;;;;;;;;;3339:93;;;;;;;;;;-1:-1:-1;3339:93:0;;3422:2;16863:36:1;;16851:2;16836:18;3339:93:0;16721:184:1;26429:120:0;;;;;;;;;;-1:-1:-1;26429:120:0;;;;;:::i;:::-;;:::i;17276:248::-;;;;;;;;;;-1:-1:-1;17276:248:0;;;;;:::i;:::-;;:::i;24861:334::-;;;;;;;;;;-1:-1:-1;24861:334:0;;;;;:::i;:::-;;:::i;24698:155::-;;;;;;;;;;-1:-1:-1;24698:155:0;;;;;:::i;:::-;;:::i;24285:177::-;;;;;;;;;;-1:-1:-1;24285:177:0;;;;;:::i;:::-;;:::i;13829:34::-;;;;;;;;;;-1:-1:-1;13829:34:0;;;;-1:-1:-1;;;13829:34:0;;;;;;26767:184;;;;;;;;;;-1:-1:-1;26767:184:0;;;;;:::i;:::-;;:::i;25717:126::-;;;;;;;;;;-1:-1:-1;25717:126:0;;;;;:::i;:::-;;:::i;14863:47::-;;;;;;;;;;-1:-1:-1;14863:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13995:49;;;;;;;;;;;;;;;;14051:51;;;;;;;;;;;;;;;;13940:48;;;;;;;;;;;;;;;;3668:127;;;;;;;;;;-1:-1:-1;3668:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;12264:94;;;;;;;;;;;;;:::i;14667:38::-;;;;;;;;;;-1:-1:-1;14667:38:0;;;;;;;;;;;;;;;;;;;16556:25:1;;;16612:2;16597:18;;16590:34;;;;16640:18;;;16633:34;16698:2;16683:18;;16676:34;16543:3;16528:19;14667:38:0;16325:391:1;14211:75:0;;;;;;;;;;-1:-1:-1;14211:75:0;;;;-1:-1:-1;;;;;14211:75:0;;;;;;-1:-1:-1;;;;;6278:32:1;;;6260:51;;6248:2;6233:18;14211:75:0;6114:203:1;24576:114:0;;;;;;;;;;-1:-1:-1;24576:114:0;;;;;:::i;:::-;;:::i;26207:214::-;;;;;;;;;;-1:-1:-1;26207:214:0;;;;;:::i;:::-;;:::i;14446:79::-;;;;;;;;;;;;14483:42;14446:79;;27213:137;;;;;;;;;;-1:-1:-1;27213:137:0;;;;;:::i;:::-;;:::i;12041:87::-;;;;;;;;;;-1:-1:-1;12114:6:0;;-1:-1:-1;;;;;12114:6:0;12041:87;;14293:69;;;;;;;;;;-1:-1:-1;14293:69:0;;;;-1:-1:-1;;;;;14293:69:0;;;2596:104;;;;;;;;;;;;;:::i;27091:114::-;;;;;;;;;;-1:-1:-1;27091:114:0;;;;;:::i;:::-;;:::i;17532:410::-;;;;;;;;;;-1:-1:-1;17532:410:0;;;;;:::i;:::-;;:::i;13713:19::-;;;;;;;;;;-1:-1:-1;13713:19:0;;;;-1:-1:-1;;;;;13713:19:0;;;17950:165;;;;;;;;;;-1:-1:-1;17950:165:0;;;;;:::i;:::-;;:::i;25203:115::-;;;;;;;;;;-1:-1:-1;25203:115:0;;;;;:::i;:::-;;:::i;26069:130::-;;;;;;;;;;-1:-1:-1;26069:130:0;;;;;:::i;:::-;;:::i;14763:41::-;;;;;;;;;;-1:-1:-1;14763:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15029:40;;;;;;;;;;;;;;;;26959:124;;;;;;;;;;-1:-1:-1;26959:124:0;;;;;:::i;:::-;;:::i;4287:201::-;;;;;;;;;;-1:-1:-1;4287:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4453:18:0;;;4421:7;4453:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4287:201;14369:73;;;;;;;;;;-1:-1:-1;14369:73:0;;;;-1:-1:-1;;;;;14369:73:0;;;24470:98;;;;;;;;;;-1:-1:-1;24470:98:0;;;;;:::i;:::-;;:::i;25556:153::-;;;;;;;;;;-1:-1:-1;25556:153:0;;;;;:::i;:::-;;:::i;14988:34::-;;;;;;;;;;-1:-1:-1;14988:34:0;;;;;;;;12366:192;;;;;;;;;;-1:-1:-1;12366:192:0;;;;;:::i;:::-;;:::i;14712:42::-;;;;;;;;;;-1:-1:-1;14712:42:0;;;;;;;;;;;;;;;13685:21;;;;;;;;;;-1:-1:-1;13685:21:0;;;;-1:-1:-1;;;;;13685:21:0;;;13784:38;;;;;;;;;;-1:-1:-1;13784:38:0;;;;-1:-1:-1;;;13784:38:0;;;;;;14811:45;;;;;;;;;;-1:-1:-1;14811:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;25326:111;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;;;;;;;;;25404:13:::1;:25:::0;;-1:-1:-1;;;;;;25404:25:0::1;-1:-1:-1::0;;;;;25404:25:0;;;::::1;::::0;;;::::1;::::0;;25326:111::o;2377:100::-;2431:13;2464:5;2457:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:100;:::o;16651:161::-;16726:4;16743:39;179:10;16766:7;16775:6;16743:8;:39::i;:::-;-1:-1:-1;16800:4:0;16651:161;;;;;:::o;26557:202::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26654:9:::1;26649:103;26673:8;:15;26669:1;:19;26649:103;;;26735:5;26710:9;:22;26720:8;26729:1;26720:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26710:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26710:22:0;:30;;-1:-1:-1;;26710:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26690:3;::::1;::::0;::::1;:::i;:::-;;;;26649:103;;;;26557:202:::0;;:::o;24125:152::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24243:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;24243:26:0::1;-1:-1:-1::0;;;;24243:26:0;;::::1;::::0;;;::::1;::::0;;24125:152::o;25851:210::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25952:9:::1;25947:107;25971:8;:15;25967:1;:19;25947:107;;;26037:5;26008:13;:26;26022:8;26031:1;26022:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26008:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26008:26:0;:34;;-1:-1:-1;;26008:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25988:3;::::1;::::0;::::1;:::i;:::-;;;;25947:107;;25445:103:::0;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25519:9:::1;:21:::0;;-1:-1:-1;;;;;;25519:21:0::1;-1:-1:-1::0;;;;;25519:21:0;;;::::1;::::0;;;::::1;::::0;;25445:103::o;16820:448::-;16952:4;16969:36;16979:6;16987:9;16998:6;16969:9;:36::i;:::-;-1:-1:-1;;;;;17045:19:0;;17018:24;17045:19;;;:11;:19;;;;;;;;179:10;17045:33;;;;;;;;17097:26;;;;17089:79;;;;-1:-1:-1;;;17089:79:0;;11557:2:1;17089:79:0;;;11539:21:1;11596:2;11576:18;;;11569:30;11635:34;11615:18;;;11608:62;-1:-1:-1;;;11686:18:1;;;11679:38;11734:19;;17089:79:0;11355:404:1;17089:79:0;17179:57;17188:6;179:10;17210:25;17229:6;17210:16;:25;:::i;:::-;17179:8;:57::i;:::-;-1:-1:-1;17256:4:0;;16820:448;-1:-1:-1;;;;16820:448:0:o;26429: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;;;;;26514:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;26514:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26429:120::o;17276:248::-;179:10;17392:4;17446:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17446:34:0;;;;;;;;;;17392:4;;17414:80;;17437:7;;17446:47;;17483:10;;17446:47;:::i;24861:334::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25006:8:::1;:20:::0;;;25037:9:::1;:22:::0;;;25070:14:::1;:22:::0;;-1:-1:-1;;;;25103:26:0;-1:-1:-1;;;25070:22:0;::::1;;::::0;;::::1;-1:-1:-1::0;;;;25103:26:0;;;;;-1:-1:-1;;;25103:26:0;::::1;;::::0;;;-1:-1:-1;25144:13:0::1;25140:47;;;25175:12;25159:13;:28:::0;24861:334;;;:::o;24698:155::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24793:6:::1;:27:::0;;-1:-1:-1;;;;;24793:27:0;;::::1;-1:-1:-1::0;;;;;;24793:27:0;;::::1;;::::0;;;24831:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;24698:155::o;24285:177::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24440:14:::1;3422:2:::0;24440::::1;:14;:::i;:::-;24427:27;::::0;:10;:27:::1;:::i;:::-;24401:23;:53:::0;-1:-1:-1;24285:177:0:o;26767:184::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26879:14:::1;3422:2:::0;26879::::1;:14;:::i;:::-;26870:23;::::0;:6;:23:::1;:::i;:::-;26856:11;:37:::0;26929:14:::1;3422:2:::0;26929::::1;:14;:::i;:::-;26919:24;::::0;:7;:24:::1;:::i;:::-;26904:12;:39:::0;-1:-1:-1;;26767:184:0:o;25717: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;;;;;25805:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;25805:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25717:126::o;12264:94::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;12329:21:::1;12347:1;12329:9;:21::i;:::-;12264:94::o:0;24576:114::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24658:24;;:9:::1;:24:::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;24576:114::o;26207:214::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;26310:9:::1;26305:109;26329:8;:15;26325:1;:19;26305:109;;;26397:5;26366:15;:28;26382:8;26391:1;26382:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26366:28:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26366:28:0;:36;;-1:-1:-1;;26366:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26346:3;::::1;::::0;::::1;:::i;:::-;;;;26305:109;;27213:137:::0;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27324:9:::1;::::0;27298:44:::1;::::0;-1:-1:-1;;;27298:44:0;;-1:-1:-1;;;;;27324:9:0;;::::1;27298:44;::::0;::::1;6496:51:1::0;6563:18;;;6556:34;;;27298:25:0;;::::1;::::0;::::1;::::0;6469:18:1;;27298:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2596:104::-:0;2652:13;2685:7;2678:14;;;;;:::i;27091:114::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27167:9:::1;::::0;27159:38:::1;::::0;-1:-1:-1;;;;;27167:9:0;;::::1;::::0;27159:38;::::1;;;::::0;27187:9;;27167::::1;27159:38:::0;27167:9;27159:38;27187:9;27167;27159:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27091:114:::0;:::o;17532:410::-;179:10;17653:4;17702:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17702:34:0;;;;;;;;;;17755:35;;;;17747:85;;;;-1:-1:-1;;;17747:85:0;;14954:2:1;17747:85:0;;;14936:21:1;14993:2;14973:18;;;14966:30;15032:34;15012:18;;;15005:62;-1:-1:-1;;;15083:18:1;;;15076:35;15128:19;;17747:85:0;14752:401:1;17747:85:0;17843:67;179:10;17866:7;17875:34;17894:15;17875:16;:34;:::i;17843:67::-;-1:-1:-1;17930:4:0;;17532:410;-1:-1:-1;;;17532:410:0:o;17950:165::-;18028:4;18045:40;18055:10;18067:9;18078:6;18045:9;:40::i;25203:115::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25283:15:::1;:27:::0;;-1:-1:-1;;;;;;25283:27:0::1;-1:-1:-1::0;;;;;25283:27:0;;;::::1;::::0;;;::::1;::::0;;25203:115::o;26069:130::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26159:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;26159:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26069:130::o;26959:124::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;27061:14:::1;3422:2:::0;27061::::1;:14;:::i;:::-;27052:23;::::0;:6;:23:::1;:::i;:::-;27035:14;:40:::0;-1:-1:-1;26959:124:0:o;24470:98::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;24544:16;;:5:::1;:16:::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;24470:98::o;25556:153::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;25651:16:::1;:4:::0;25658:9:::1;25651:16;:::i;:::-;25636:12;:31:::0;-1:-1:-1;25678:15:0::1;:23:::0;;-1:-1:-1;;25678:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25556:153::o;12366:192::-;12114:6;;-1:-1:-1;;;;;12114:6:0;179:10;12176:23;12168:68;;;;-1:-1:-1;;;12168:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12455:22:0;::::1;12447:73;;;::::0;-1:-1:-1;;;12447:73:0;;9194:2:1;12447:73:0::1;::::0;::::1;9176:21:1::0;9233:2;9213:18;;;9206:30;9272:34;9252:18;;;9245:62;-1:-1:-1;;;9323:18:1;;;9316:36;9369:19;;12447:73:0::1;8992:402:1::0;12447:73:0::1;12531:19;12541:8;12531:9;:19::i;:::-;12366:192:::0;:::o;10340:380::-;-1:-1:-1;;;;;10476:19:0;;10468:68;;;;-1:-1:-1;;;10468:68:0;;14190:2:1;10468:68:0;;;14172:21:1;14229:2;14209:18;;;14202:30;14268:34;14248:18;;;14241:62;-1:-1:-1;;;14319:18:1;;;14312:34;14363:19;;10468:68:0;13988:400:1;10468:68:0;-1:-1:-1;;;;;10555:21:0;;10547:68;;;;-1:-1:-1;;;10547:68:0;;9601:2:1;10547:68:0;;;9583:21:1;9640:2;9620:18;;;9613:30;9679:34;9659:18;;;9652:62;-1:-1:-1;;;9730:18:1;;;9723:32;9772:19;;10547:68:0;9399:398:1;10547:68:0;-1:-1:-1;;;;;10628:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10680:32;;15304:25:1;;;10680:32:0;;15277:18:1;10680:32:0;;;;;;;10340:380;;;:::o;18123:3211::-;18273:1;18264:6;:10;18256:64;;;;-1:-1:-1;;;18256:64:0;;12327:2:1;18256:64:0;;;12309:21:1;12366:2;12346:18;;;12339:30;12405:34;12385:18;;;12378:62;-1:-1:-1;;;12456:18:1;;;12449:39;12505:19;;18256:64:0;12125:405:1;18256:64:0;-1:-1:-1;;;;;18354:21:0;;;;;;:13;:21;;;;;;;;18353:22;:51;;;;-1:-1:-1;;;;;;18380:24:0;;;;;;:13;:24;;;;;;;;18379:25;18353:51;18331:126;;;;-1:-1:-1;;;18331:126:0;;13430:2:1;18331:126:0;;;13412:21:1;13469:2;13449:18;;;13442:30;13508:27;13488:18;;;13481:55;13553:18;;18331:126:0;13228:349:1;18331:126:0;-1:-1:-1;;;;;18475:17:0;;;;;;:9;:17;;;;;;;;18474:18;:43;;;;-1:-1:-1;;;;;;18497:20:0;;;;;;:9;:20;;;;;;;;18496:21;18474:43;18470:122;;;18542:14;;-1:-1:-1;;;18542:14:0;;;;18534:46;;;;-1:-1:-1;;;18534:46:0;;12737:2:1;18534:46:0;;;12719:21:1;12776:2;12756:18;;;12749:30;-1:-1:-1;;;12795:18:1;;;12788:49;12854:18;;18534:46:0;12535:343:1;18534:46:0;18618:4;;-1:-1:-1;;;;;18608:14:0;;;18618:4;;18608:14;:39;;;;-1:-1:-1;;;;;;18627:20:0;;;;;;:9;:20;;;;;;;;18626:21;18608:39;:59;;;;-1:-1:-1;18652:15:0;;-1:-1:-1;;;18652:15:0;;;;18651:16;18608:59;18604:311;;;18702:11;;18692:6;:21;;18684:63;;;;-1:-1:-1;;;18684:63:0;;8836:2:1;18684:63:0;;;8818:21:1;8875:2;8855:18;;;8848:30;8914:31;8894:18;;;8887:59;8963:18;;18684:63:0;8634:353:1;18684:63:0;18821:14;;18811:6;18788:20;18798:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;18788:20;:29;;;;:::i;:::-;:47;;18762:141;;;;-1:-1:-1;;;18762:141:0;;10411:2:1;18762:141:0;;;10393:21:1;;;10430:18;;;10423:30;10489:34;10469:18;;;10462:62;10541:18;;18762:141:0;10209:356:1;18762:141:0;18955:4;;-1:-1:-1;;;;;18945:14:0;;;18955:4;;18945:14;;;;:39;;-1:-1:-1;;;;;;18964:20:0;;;;;;:9;:20;;;;;;;;18963:21;18945:39;:61;;;;-1:-1:-1;;;;;;18989:17:0;;;;;;:9;:17;;;;;;;;18988:18;18945:61;:81;;;;-1:-1:-1;19011:15:0;;-1:-1:-1;;;19011:15:0;;;;19010:16;18945:81;18927:682;;;19071:12;;19061:6;:22;;19053:65;;;;-1:-1:-1;;;19053:65:0;;14595:2:1;19053:65:0;;;14577:21:1;14634:2;14614:18;;;14607:30;14673:32;14653:18;;;14646:60;14723:18;;19053:65:0;14393:354:1;19053:65:0;19150:4;;-1:-1:-1;;;;;19137:17:0;;;19150:4;;19137:17;19133:211;;19238:14;;19228:6;19205:20;19215:9;-1:-1:-1;;;;;3769:18:0;3742:7;3769:18;;;;;;;;;;;;3668:127;19205:20;:29;;;;:::i;:::-;:47;;19175:153;;;;-1:-1:-1;;;19175:153:0;;10411:2:1;19175:153:0;;;10393:21:1;;;10430:18;;;10423:30;10489:34;10469:18;;;10462:62;10541:18;;19175:153:0;10209:356:1;19175:153:0;19362:15;;;;19358:240;;;-1:-1:-1;;;;;19437:17:0;;19398:18;19437:17;;;:9;:17;;;;;;19419:35;;:15;:35;:::i;:::-;19398:56;;19495:12;;19481:10;:26;;19473:55;;;;-1:-1:-1;;;19473:55:0;;13085:2:1;19473:55:0;;;13067:21:1;13124:2;13104:18;;;13097:30;-1:-1:-1;;;13143:18:1;;;13136:46;13199:18;;19473:55:0;12883:340:1;19473:55:0;-1:-1:-1;;;;;;19547:17:0;;;;;;:9;:17;;;;;19567:15;19547:35;;19358:240;19621:15;19647:14;19672:11;19694:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19694:25:0;-1:-1:-1;;;;;19753:17:0;;19732;19753;;;:9;:17;;;;;;;;19752:18;:56;;;;-1:-1:-1;;;;;;19788:20:0;;;;;;:9;:20;;;;;;;;19787:21;19752:56;:112;;;;;19856:8;;19840:13;;:24;;;;:::i;:::-;19825:12;:39;19752:112;19952:15;;19732:132;;-1:-1:-1;;;;19952:15:0;;;;;:36;;-1:-1:-1;;;;;;19971:17:0;;;;;;:9;:17;;;;;;;;19952:36;:60;;;-1:-1:-1;;;;;;19992:20:0;;;;;;:9;:20;;;;;;;;19952:60;19948:802;;;20033:1;20027:7;;19948:802;;;20098:4;;-1:-1:-1;;;;;20085:17:0;;;20098:4;;20085:17;:34;;;;;20107:12;20106:13;20085:34;20081:669;;;20294:13;;20241:17;;20294:9;20202:19;20163;;:58;;20202:19;20163:58;:::i;:::-;:95;;;;:::i;:::-;:144;;;;:::i;:::-;20353:24;;;;;;;;20368:9;20353:24;;;;;;;;;;;;;;;;;;;;;;;;20136:171;;-1:-1:-1;20136:171:0;;-1:-1:-1;20353:24:0;-1:-1:-1;20081:669:0;;;20400:12;20395:355;;20559:9;;20526:13;;20559:5;20491:15;20456;;:50;;20491:15;20456:50;:::i;:::-;:83;;;;:::i;:::-;:112;;;;:::i;:::-;20615:20;;;;;;;;20630:5;20615:20;;;;;;;;;;;;;;;;;;;;;;;;20429:139;;-1:-1:-1;20429:139:0;;-1:-1:-1;20615:20:0;-1:-1:-1;20395:355:0;;;20657:12;20653:97;;;20696:9;;;-1:-1:-1;20696:9:0;;-1:-1:-1;20653:97:0;20788:3;20769:15;20778:6;20769;:15;:::i;:::-;20768:23;;;;:::i;:::-;20905:18;;20762:29;;-1:-1:-1;;;;20905:18:0;;;;:36;;;;-1:-1:-1;20937:4:0;;-1:-1:-1;;;;;20927:14:0;;;20937:4;;20927:14;;20905:36;20901:76;;;20943:34;20955:7;20964:12;20943:11;:34::i;:::-;21019:48;21035:6;21043:9;21054:12;21063:3;21054:6;:12;:::i;:::-;21019:15;:48::i;:::-;21082:7;;21078:249;;21154:11;;21150:164;;21186:17;21227:3;21207:16;21216:7;21207:6;:16;:::i;:::-;21206:24;;;;:::i;:::-;21186:44;;21249:49;21265:6;21281:4;21288:9;21249:15;:49::i;:::-;21167:147;21150:164;18245:3089;;;;;18123:3211;;;:::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;21342:1728::-;15115:15;;-1:-1:-1;;;15115:15:0;;;;15110:125;;15147:15;:22;;-1:-1:-1;;;;15147:22:0;-1:-1:-1;;;15147:22:0;;;21477:4:::1;-1:-1:-1::0;3769:18:0;;;;;;;;;;;21433:50:::1;;21517:23;;21498:15;:42;21494:1569;;21587:1;21561:23;;:27;21557:109;;;-1:-1:-1::0;21627:23:0::1;::::0;21557:109:::1;21737:19;21759:11;:7:::0;21769:1:::1;21759:11;:::i;:::-;21737:33;;21785:32;21879:11;21839:9;:19;;;21821:15;:37;;;;:::i;:::-;21820:70;;;;:::i;:::-;21785:105:::0;-1:-1:-1;21905:14:0::1;21922:42;21785:105:::0;21922:15;:42:::1;:::i;:::-;21905:59:::0;-1:-1:-1;22006:21:0::1;22044:24;21905:59:::0;22044:16:::1;:24::i;:::-;22085:20;22108:38;22132:14:::0;22108:21:::1;:38;:::i;:::-;22085:61;;22161:19;22213:9;:19;;;22199:11;:33;;;;:::i;:::-;22183:50;::::0;:12;:50:::1;:::i;:::-;22161:72;;22248:29;22294:9;:19;;;22280:11;:33;;;;:::i;:::-;22248:65:::0;-1:-1:-1;22334:25:0;;22330:172:::1;;22425:61;22438:24;22464:21;22425:12;:61::i;:::-;22559:19:::0;;22518:20:::1;::::0;22541:15:::1;:11:::0;22555:1:::1;22541:15;:::i;:::-;:37;;;;:::i;:::-;22518:60:::0;-1:-1:-1;22597:16:0;;22593:105:::1;;22642:15;::::0;22634:48:::1;::::0;-1:-1:-1;;;;;22642:15:0::1;22669:12:::0;22634:34:::1;:48::i;:::-;22753:17;::::0;::::1;::::0;22714:18:::1;::::0;22735:15:::1;:11:::0;22749:1:::1;22735:15;:::i;:::-;:35;;;;:::i;:::-;22714:56:::0;-1:-1:-1;22789:14:0;;22785:99:::1;;22832:13;::::0;22824:44:::1;::::0;-1:-1:-1;;;;;22832:13:0::1;22857:10:::0;22824:32:::1;:44::i;:::-;22935:13;::::0;::::1;::::0;22900:14:::1;::::0;22917:15:::1;:11:::0;22931:1:::1;22917:15;:::i;:::-;:31;;;;:::i;:::-;22900:48:::0;-1:-1:-1;22967:10:0;;22963:87:::1;;23006:9;::::0;22998:36:::1;::::0;-1:-1:-1;;;;;23006:9:0::1;23027:6:::0;22998:28:::1;:36::i;:::-;21542:1521;;;;;;;;;;21494:1569;-1:-1:-1::0;15200:15:0;:23;;-1:-1:-1;;;;15200:23:0;;;21342:1728;;:::o;7800:638::-;-1:-1:-1;;;;;7940:20:0;;7932:70;;;;-1:-1:-1;;;7932:70:0;;13784:2:1;7932:70:0;;;13766:21:1;13823:2;13803:18;;;13796:30;13862:34;13842:18;;;13835:62;-1:-1:-1;;;13913:18:1;;;13906:35;13958:19;;7932:70:0;13582:401:1;7932:70:0;-1:-1:-1;;;;;8021:23:0;;8013:71;;;;-1:-1:-1;;;8013:71:0;;8432:2:1;8013:71:0;;;8414:21:1;8471:2;8451:18;;;8444:30;8510:34;8490:18;;;8483:62;-1:-1:-1;;;8561:18:1;;;8554:33;8604:19;;8013:71:0;8230:399:1;8013:71:0;-1:-1:-1;;;;;8181:17:0;;8157:21;8181:17;;;;;;;;;;;8217:23;;;;8209:74;;;;-1:-1:-1;;;8209:74:0;;10004:2:1;8209:74:0;;;9986:21:1;10043:2;10023:18;;;10016:30;10082:34;10062:18;;;10055:62;-1:-1:-1;;;10133:18:1;;;10126:36;10179:19;;8209:74:0;9802:402:1;8209:74:0;8314:22;8330:6;8314:13;:22;:::i;:::-;-1:-1:-1;;;;;8294:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8347:20;;;;;;;;:30;;8371:6;;8294:9;8347:30;;8371:6;;8347:30;:::i;:::-;;;;;;;;8412:9;-1:-1:-1;;;;;8395:35:0;8404:6;-1:-1:-1;;;;;8395:35:0;;8423:6;8395:35;;;;15304:25:1;;15292:2;15277:18;;15158:177;8395:35:0;;;;;;;;7921:517;7800:638;;;:::o;23078:534::-;23228:16;;;23242:1;23228:16;;;;;;;;23204:21;;23228:16;;;;;;;;;;-1:-1:-1;23228:16:0;23204:40;;23273:4;23255;23260:1;23255:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23255:23:0;;;:7;;;;;;;;;;:23;;;;23299:6;;:13;;;-1:-1:-1;;;23299:13:0;;;;:6;;;;;:11;;:13;;;;;23255:7;;23299:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23289:4;23294:1;23289:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23289:23:0;;;:7;;;;;;;;;:23;23357:6;;23325:53;;23342:4;;23357:6;23366:11;23325:8;:53::i;:::-;23417:6;;:187;;-1:-1:-1;;;23417:187:0;;-1:-1:-1;;;;;23417:6:0;;;;:57;;:187;;23489:11;;23417:6;;23531:4;;23558;;23578:15;;23417:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23133:479;23078:534;:::o;23620:497::-;23800:6;;23768:53;;23785:4;;-1:-1:-1;;;;;23800:6:0;23809:11;23768:8;:53::i;:::-;23864:6;;-1:-1:-1;;;;;23864:6:0;:22;23895:9;23929:4;23949:11;23864:6;;24061:7;12114:6;;-1:-1:-1;;;;;12114:6:0;;12041:87;24061:7;23864:245;;;;;;-1:-1:-1;;;;;;23864:245:0;;;-1:-1:-1;;;;;6960:15:1;;;23864:245:0;;;6942:34:1;6992:18;;;6985:34;;;;7035:18;;;7028:34;;;;7078:18;;;7071:34;7142:15;;;7121:19;;;7114:44;24083:15:0;7174:19:1;;;7167:35;6876:19;;23864:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23620:497;;:::o;11484:319::-;11599:6;11574:21;:31;;11566:73;;;;-1:-1:-1;;;11566:73:0;;11199:2:1;11566:73:0;;;11181:21:1;11238:2;11218:18;;;11211:30;11277:31;11257:18;;;11250:59;11326:18;;11566:73:0;10997:353:1;11566:73:0;11653:12;11671:9;-1:-1:-1;;;;;11671:14:0;11694:6;11671:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11652:54;;;11725:7;11717:78;;;;-1:-1:-1;;;11717:78:0;;10772:2:1;11717:78:0;;;10754:21:1;10811:2;10791:18;;;10784:30;10850:34;10830:18;;;10823:62;10921:28;10901:18;;;10894:56;10967:19;;11717:78:0;10570:422:1;14:128;79:20;;108:28;79:20;108:28;:::i;:::-;14:128;;;:::o;147:247::-;206:6;259:2;247:9;238:7;234:23;230:32;227:52;;;275:1;272;265:12;227:52;314:9;301:23;333:31;358:5;333:31;:::i;:::-;383:5;147:247;-1:-1:-1;;;147:247:1:o;399:251::-;469:6;522:2;510:9;501:7;497:23;493:32;490:52;;;538:1;535;528:12;490:52;570:9;564:16;589:31;614:5;589:31;:::i;655:388::-;723:6;731;784:2;772:9;763:7;759:23;755:32;752:52;;;800:1;797;790:12;752:52;839:9;826:23;858:31;883:5;858:31;:::i;:::-;908:5;-1:-1:-1;965:2:1;950:18;;937:32;978:33;937:32;978:33;:::i;:::-;1030:7;1020:17;;;655:388;;;;;:::o;1048:456::-;1125:6;1133;1141;1194:2;1182:9;1173:7;1169:23;1165:32;1162:52;;;1210:1;1207;1200:12;1162:52;1249:9;1236:23;1268:31;1293:5;1268:31;:::i;:::-;1318:5;-1:-1:-1;1375:2:1;1360:18;;1347:32;1388:33;1347:32;1388:33;:::i;:::-;1048:456;;1440:7;;-1:-1:-1;;;1494:2:1;1479:18;;;;1466:32;;1048:456::o;1509:382::-;1574:6;1582;1635:2;1623:9;1614:7;1610:23;1606:32;1603:52;;;1651:1;1648;1641:12;1603:52;1690:9;1677:23;1709:31;1734:5;1709:31;:::i;:::-;1759:5;-1:-1:-1;1816:2:1;1801:18;;1788:32;1829:30;1788:32;1829:30;:::i;1896:315::-;1964:6;1972;2025:2;2013:9;2004:7;2000:23;1996:32;1993:52;;;2041:1;2038;2031:12;1993:52;2080:9;2067:23;2099:31;2124:5;2099:31;:::i;:::-;2149:5;2201:2;2186:18;;;;2173:32;;-1:-1:-1;;;1896:315:1:o;2216:1102::-;2306:6;2314;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2423:9;2410:23;2452:18;2493:2;2485:6;2482:14;2479:34;;;2509:1;2506;2499:12;2479:34;2547:6;2536:9;2532:22;2522:32;;2592:7;2585:4;2581:2;2577:13;2573:27;2563:55;;2614:1;2611;2604:12;2563:55;2650:2;2637:16;2672:4;2695:2;2691;2688:10;2685:36;;;2701:18;;:::i;:::-;2747:2;2744:1;2740:10;2730:20;;2770:28;2794:2;2790;2786:11;2770:28;:::i;:::-;2832:15;;;2863:12;;;;2895:11;;;2925;;;2921:20;;2918:33;-1:-1:-1;2915:53:1;;;2964:1;2961;2954:12;2915:53;2986:1;2977:10;;2996:238;3010:2;3007:1;3004:9;2996:238;;;3081:3;3068:17;3055:30;;3098:31;3123:5;3098:31;:::i;:::-;3142:18;;;3028:1;3021:9;;;;;3180:12;;;;3212;;2996:238;;;-1:-1:-1;3253:5:1;-1:-1:-1;3277:35:1;;-1:-1:-1;3293:18:1;;;3277:35;:::i;:::-;3267:45;;;;;;2216:1102;;;;;:::o;3323:241::-;3379:6;3432:2;3420:9;3411:7;3407:23;3403:32;3400:52;;;3448:1;3445;3438:12;3400:52;3487:9;3474:23;3506:28;3528:5;3506:28;:::i;3569:245::-;3636:6;3689:2;3677:9;3668:7;3664:23;3660:32;3657:52;;;3705:1;3702;3695:12;3657:52;3737:9;3731:16;3756:28;3778:5;3756:28;:::i;3819:309::-;3884:6;3892;3945:2;3933:9;3924:7;3920:23;3916:32;3913:52;;;3961:1;3958;3951:12;3913:52;4000:9;3987:23;4019:28;4041:5;4019:28;:::i;4133:377::-;4207:6;4215;4223;4276:2;4264:9;4255:7;4251:23;4247:32;4244:52;;;4292:1;4289;4282:12;4244:52;4331:9;4318:23;4350:28;4372:5;4350:28;:::i;:::-;4397:5;4449:2;4434:18;;4421:32;;-1:-1:-1;4500:2:1;4485:18;;;4472:32;;4133:377;-1:-1:-1;;;4133:377:1:o;4515:635::-;4596:6;4649:3;4637:9;4628:7;4624:23;4620:33;4617:53;;;4666:1;4663;4656:12;4617:53;4699:2;4693:9;4741:3;4733:6;4729:16;4811:6;4799:10;4796:22;4775:18;4763:10;4760:34;4757:62;4754:88;;;4822:18;;:::i;:::-;4862:10;4858:2;4851:22;;4910:9;4897:23;4889:6;4882:39;4982:2;4971:9;4967:18;4954:32;4949:2;4941:6;4937:15;4930:57;5048:2;5037:9;5033:18;5020:32;5015:2;5007:6;5003:15;4996:57;5114:2;5103:9;5099:18;5086:32;5081:2;5073:6;5069:15;5062:57;5138:6;5128:16;;;4515:635;;;;:::o;5155:180::-;5214:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:52;;;5283:1;5280;5273:12;5235:52;-1:-1:-1;5306:23:1;;5155:180;-1:-1:-1;5155:180:1:o;5340:248::-;5408:6;5416;5469:2;5457:9;5448:7;5444:23;5440:32;5437:52;;;5485:1;5482;5475:12;5437:52;-1:-1:-1;;5508:23:1;;;5578:2;5563:18;;;5550:32;;-1:-1:-1;5340:248:1:o;5593:306::-;5681:6;5689;5697;5750:2;5738:9;5729:7;5725:23;5721:32;5718:52;;;5766:1;5763;5756:12;5718:52;5795:9;5789:16;5779:26;;5845:2;5834:9;5830:18;5824:25;5814:35;;5889:2;5878:9;5874:18;5868:25;5858:35;;5593:306;;;;;:::o;7628:597::-;7740:4;7769:2;7798;7787:9;7780:21;7830:6;7824:13;7873:6;7868:2;7857:9;7853:18;7846:34;7898:1;7908:140;7922:6;7919:1;7916:13;7908:140;;;8017:14;;;8013:23;;8007:30;7983:17;;;8002:2;7979:26;7972:66;7937:10;;7908:140;;;8066:6;8063:1;8060:13;8057:91;;;8136:1;8131:2;8122:6;8111:9;8107:22;8103:31;8096:42;8057:91;-1:-1:-1;8209:2:1;8188:15;-1:-1:-1;;8184:29:1;8169:45;;;;8216:2;8165:54;;7628:597;-1:-1:-1;;;7628:597:1:o;11764:356::-;11966:2;11948:21;;;11985:18;;;11978:30;12044:34;12039:2;12024:18;;12017:62;12111:2;12096:18;;11764:356::o;15340:980::-;15602:4;15650:3;15639:9;15635:19;15681:6;15670:9;15663:25;15707:2;15745:6;15740:2;15729:9;15725:18;15718:34;15788:3;15783:2;15772:9;15768:18;15761:31;15812:6;15847;15841:13;15878:6;15870;15863:22;15916:3;15905:9;15901:19;15894:26;;15955:2;15947:6;15943:15;15929:29;;15976:1;15986:195;16000:6;15997:1;15994:13;15986:195;;;16065:13;;-1:-1:-1;;;;;16061:39:1;16049:52;;16156:15;;;;16121:12;;;;16097:1;16015:9;15986:195;;;-1:-1:-1;;;;;;;16237:32:1;;;;16232:2;16217:18;;16210:60;-1:-1:-1;;;16301:3:1;16286:19;16279:35;16198:3;15340:980;-1:-1:-1;;;15340:980:1:o;16910:275::-;16981:2;16975:9;17046:2;17027:13;;-1:-1:-1;;17023:27:1;17011:40;;17081:18;17066:34;;17102:22;;;17063:62;17060:88;;;17128:18;;:::i;:::-;17164:2;17157:22;16910:275;;-1:-1:-1;16910:275:1:o;17190:128::-;17230:3;17261:1;17257:6;17254:1;17251:13;17248:39;;;17267:18;;:::i;:::-;-1:-1:-1;17303:9:1;;17190:128::o;17323:217::-;17363:1;17389;17379:132;;17433:10;17428:3;17424:20;17421:1;17414:31;17468:4;17465:1;17458:15;17496:4;17493:1;17486:15;17379:132;-1:-1:-1;17525:9:1;;17323:217::o;17545:422::-;17634:1;17677:5;17634:1;17691:270;17712:7;17702:8;17699:21;17691:270;;;17771:4;17767:1;17763:6;17759:17;17753:4;17750:27;17747:53;;;17780:18;;:::i;:::-;17830:7;17820:8;17816:22;17813:55;;;17850:16;;;;17813:55;17929:22;;;;17889:15;;;;17691:270;;;17695:3;17545:422;;;;;:::o;17972:140::-;18030:5;18059:47;18100:4;18090:8;18086:19;18080:4;18166:5;18196:8;18186:80;;-1:-1:-1;18237:1:1;18251:5;;18186:80;18285:4;18275:76;;-1:-1:-1;18322:1:1;18336:5;;18275:76;18367:4;18385:1;18380:59;;;;18453:1;18448:130;;;;18360:218;;18380:59;18410:1;18401:10;;18424:5;;;18448:130;18485:3;18475:8;18472:17;18469:43;;;18492:18;;:::i;:::-;-1:-1:-1;;18548:1:1;18534:16;;18563:5;;18360:218;;18662:2;18652:8;18649:16;18643:3;18637:4;18634:13;18630:36;18624:2;18614:8;18611:16;18606:2;18600:4;18597:12;18593:35;18590:77;18587:159;;;-1:-1:-1;18699:19:1;;;18731:5;;18587:159;18778:34;18803:8;18797:4;18778:34;:::i;:::-;18848:6;18844:1;18840:6;18836:19;18827:7;18824:32;18821:58;;;18859:18;;:::i;:::-;18897:20;;18117:806;-1:-1:-1;;;18117:806:1:o;18928:168::-;18968:7;19034:1;19030;19026:6;19022:14;19019:1;19016:21;19011:1;19004:9;18997:17;18993:45;18990:71;;;19041:18;;:::i;:::-;-1:-1:-1;19081:9:1;;18928:168::o;19101:125::-;19141:4;19169:1;19166;19163:8;19160:34;;;19174:18;;:::i;:::-;-1:-1:-1;19211:9:1;;19101:125::o;19231:380::-;19310:1;19306:12;;;;19353;;;19374:61;;19428:4;19420:6;19416:17;19406:27;;19374:61;19481:2;19473:6;19470:14;19450:18;19447:38;19444:161;;;19527:10;19522:3;19518:20;19515:1;19508:31;19562:4;19559:1;19552:15;19590:4;19587:1;19580:15;19444:161;;19231:380;;;:::o;19616:135::-;19655:3;-1:-1:-1;;19676:17:1;;19673:43;;;19696:18;;:::i;:::-;-1:-1:-1;19743:1:1;19732:13;;19616:135::o;19756:127::-;19817:10;19812:3;19808:20;19805:1;19798:31;19848:4;19845:1;19838:15;19872:4;19869:1;19862:15;19888:127;19949:10;19944:3;19940:20;19937:1;19930:31;19980:4;19977:1;19970:15;20004:4;20001:1;19994:15;20020:127;20081:10;20076:3;20072:20;20069:1;20062:31;20112:4;20109:1;20102:15;20136:4;20133:1;20126:15;20152:131;-1:-1:-1;;;;;20227:31:1;;20217:42;;20207:70;;20273:1;20270;20263:12;20288:118;20374:5;20367:13;20360:21;20353:5;20350:32;20340:60;;20396:1;20393;20386:12

Swarm Source

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