ETH Price: $3,481.61 (+2.16%)
Gas: 7 Gwei

Token

InsomniaDAO (EYE)
 

Overview

Max Total Supply

100,000,000 EYE

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.459767749638728443 EYE

Value
$0.00
0xc799d491fbbc7846616cebdf3d180690c1d5e0ba
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:
InsomniaDAO

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.17;

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 IBEP20 {
    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 IBEP20Metadata is IBEP20 {
    /**
     * @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 BEP20 is Context, IBEP20, IBEP20Metadata {
    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 {BEP20} 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
     * {IBEP20-balanceOf} and {IBEP20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    /**
     * @dev See {IBEP20-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 {IBEP20-allowance}.
     */
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IBEP20-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 {IBEP20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {BEP20}.
     *
     * 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, "BEP20: 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 {IBEP20-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 {IBEP20-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, "BEP20: 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), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");

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

        emit Transfer(sender, recipient, amount);
    }

    /** This function will be used to generate the total supply
    * while deploying the contract
    *
    * This function can never be called again after deploying contract
    */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, 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), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

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

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 InsomniaDAO is BEP20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

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

    uint256 public tokenLiquidityThreshold = 1e5 * 10**18;
    uint256 public maxBuyLimit = 1e6 * 10**18;
    uint256 public maxSellLimit = 1e6 * 10**18;
    uint256 public maxWalletLimit = 1e6 * 10**18;

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

    address public marketingWallet = 0xA267E8e3c0B842b5139f21E04759734Df2b246fC;
    address public treasuryWallet = 0xE8440EDf77fbd60ED44c96A5c6f442B138593801;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 treasury;
    }

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

    mapping(address => bool) public exemptFee;

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

    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }

    constructor() BEP20("InsomniaDAO", "EYE") {
        _tokengeneration(msg.sender, 1e8 * 10**decimals());
        exemptFee[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pancake 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[treasuryWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = 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, "BEP20: 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, "BEP20: 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");

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

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

        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_interlock
        ) {
            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 (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +      
                sellTaxes.treasury;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.treasury ;
            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) Liquify(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 Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {

        if(feeswap == 0){
            return;
        }

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

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

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

            uint256 treasuryAmt = unitBalance * 2 * swapTaxes.treasury;
            if (treasuryAmt > 0) {
                payable(treasuryWallet).sendValue(treasuryAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pancake 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
        require(new_amount <= 1e6, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function SetZeroBuyTax() external onlyOwner {
        taxes = Taxes(0, 0, 0);
    }

    function SetZeroSellTax() external onlyOwner {
        sellTaxes= Taxes(0, 0, 0);
    }

    function RevertAllTaxes() external onlyOwner {
        taxes = Taxes(3, 1, 1);
        sellTaxes= Taxes(3, 1, 1);
    }

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

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

    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        marketingWallet = newWallet;
    }

    function TreasuryWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        treasuryWallet = newWallet;
    }

    function updateCooldown(bool state, uint256 time) external onlyOwner {
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
        require(time <= 300, "cooldown timer cannot exceed 5 minutes");
    }

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

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

    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e5, "Cannot set max buy amount lower than 0.1%");
        require(maxSell >= 1e5, "Cannot set max sell amount lower than 0.1%");
        require(maxWallet >= 1e5, "Cannot set max wallet amount lower than 0.1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function rescueBNB(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueBSC20(address tokenAdd, uint256 amount) external onlyOwner {
        IBEP20(tokenAdd).transfer(owner(), amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RevertAllTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetZeroBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetZeroSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"TreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[{"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":[],"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":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBSC20","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":"treasury","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":"treasury","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":[],"name":"treasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b1916905569152d02c7e14af680000060085569d3c21bcecceda10000006009819055600a819055600b556003600d8190556063600e55600f80546001600160a01b031990811673a267e8e3c0b842b5139f21e04759734df2b246fc179091556010805490911673e8440edf77fbd60ed44c96a5c6f442b1385938011790556080819052600160a081905260c081905260118290556012819055601381905561014060405260e0829052610100819052610120819052601491909155601581905560168190556019805460ff19169091179055603c601a55348015620000ee57600080fd5b506040518060400160405280600b81526020016a496e736f6d6e696144414f60a81b8152506040518060400160405280600381526020016245594560e81b81525081600390816200014091906200056b565b5060046200014f82826200056b565b5050506200016c620001666200041c60201b60201c565b62000420565b62000195336200017f6012600a6200074c565b6200018f906305f5e10062000764565b62000472565b336000908152601760209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa15801562000200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022691906200077e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a91906200077e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e91906200077e565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260176020526040808220805460ff199081166001908117909255600f54851684528284208054821683179055601054909416835290822080548416821790557f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b030380548416821790557ff4d8fe8682944aad7910cbbf27da6916af3289a2a48b6811250a498b558b931c805484168217905573407993575c91ce7643a4d4ccacc9a98c36ee1bbe9091527f074a0fd27439428490cc7751d857bc1e8fdca06eda19210ccf4c6048437143cd8054909216179055620007a9565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004f157607f821691505b6020821081036200051257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200056657600081815260208120601f850160051c81016020861015620005415750805b601f850160051c820191505b8181101562000562578281556001016200054d565b5050505b505050565b81516001600160401b03811115620005875762000587620004c6565b6200059f81620005988454620004dc565b8462000518565b602080601f831160018114620005d75760008415620005be5750858301515b600019600386901b1c1916600185901b17855562000562565b600085815260208120601f198616915b828110156200060857888601518255948401946001909101908401620005e7565b5085821015620006275787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200068e57816000190482111562000672576200067262000637565b808516156200068057918102915b93841c939080029062000652565b509250929050565b600082620006a75750600162000746565b81620006b65750600062000746565b8160018114620006cf5760028114620006da57620006fa565b600191505062000746565b60ff841115620006ee57620006ee62000637565b50506001821b62000746565b5060208310610133831016604e8410600b84101617156200071f575081810a62000746565b6200072b83836200064d565b806000190482111562000742576200074262000637565b0290505b92915050565b60006200075d60ff84168362000696565b9392505050565b808202811582820484141762000746576200074662000637565b6000602082840312156200079157600080fd5b81516001600160a01b03811681146200075d57600080fd5b61292e80620007b96000396000f3fe6080604052600436106102815760003560e01c8063728f8eea1161014f578063c9300ed5116100c1578063edaa11681161007a578063edaa11681461079e578063ee36e359146107be578063f2fde38b146107d8578063f66895a3146107f8578063f887ea4014610817578063fbe6324e1461083757600080fd5b8063c9300ed5146106c2578063ce5d7999146106e2578063d2ce0db214610702578063dd62ed3e14610718578063e1b450ad1461075e578063e517f2b91461077e57600080fd5b80639e88ae2c116101135780639e88ae2c146105fd578063a457c2d714610612578063a8aa1b3114610632578063a9059cbb14610652578063aacebbe314610672578063c5d32bb21461069257600080fd5b8063728f8eea1461055a57806375f0a8741461059457806385141a77146105b45780638da5cb5b146105ca57806395d89b41146105e857600080fd5b8063355496ca116101f35780634ada218b116101ac5780634ada218b146104ac578063652e2f04146104cd57806366a88d96146104e35780636aa5b37f146104f957806370a082311461050f578063715018a61461054557600080fd5b8063355496ca146103df57806339509351146103ff57806342b6fa111461041f578063441b1d301461043f57806344f3dc8b1461045f5780634626402b1461047457600080fd5b80631675d802116102455780631675d8021461033f57806318160ddd146103635780631d97b7cd1461037857806323b872dd1461038d578063274a533c146103ad578063313ce567146103c357600080fd5b806306fdde031461028d578063095ea7b3146102b85780630e375a5c146102e8578063105dc7c51461030a5780631340538f1461031f57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2610858565b6040516102af91906122e6565b60405180910390f35b3480156102c457600080fd5b506102d86102d3366004612359565b6108ea565b60405190151581526020016102af565b3480156102f457600080fd5b506103086103033660046123b4565b610901565b005b34801561031657600080fd5b506103086109a0565b34801561032b57600080fd5b5061030861033a36600461248b565b610a1e565b34801561034b57600080fd5b5061035560085481565b6040519081526020016102af565b34801561036f57600080fd5b50600254610355565b34801561038457600080fd5b50610308610a66565b34801561039957600080fd5b506102d86103a83660046124af565b610b05565b3480156103b957600080fd5b50610355600c5481565b3480156103cf57600080fd5b50604051601281526020016102af565b3480156103eb57600080fd5b506103086103fa3660046124f0565b610bb6565b34801561040b57600080fd5b506102d861041a366004612359565b610c0b565b34801561042b57600080fd5b5061030861043a366004612529565b610c42565b34801561044b57600080fd5b5061030861045a366004612529565b610d01565b34801561046b57600080fd5b50610308610d69565b34801561048057600080fd5b50601054610494906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b3480156104b857600080fd5b506007546102d890600160b01b900460ff1681565b3480156104d957600080fd5b50610355600a5481565b3480156104ef57600080fd5b50610355600b5481565b34801561050557600080fd5b5061035560095481565b34801561051b57600080fd5b5061035561052a366004612542565b6001600160a01b031660009081526020819052604090205490565b34801561055157600080fd5b50610308610dbd565b34801561056657600080fd5b5060115460125460135461057992919083565b604080519384526020840192909252908201526060016102af565b3480156105a057600080fd5b50600f54610494906001600160a01b031681565b3480156105c057600080fd5b5061049461dead81565b3480156105d657600080fd5b506005546001600160a01b0316610494565b3480156105f457600080fd5b506102a2610df3565b34801561060957600080fd5b50610308610e02565b34801561061e57600080fd5b506102d861062d366004612359565b610e56565b34801561063e57600080fd5b50600754610494906001600160a01b031681565b34801561065e57600080fd5b506102d861066d366004612359565b610ef1565b34801561067e57600080fd5b5061030861068d366004612542565b610efe565b34801561069e57600080fd5b506102d86106ad366004612542565b60176020526000908152604090205460ff1681565b3480156106ce57600080fd5b506103086106dd366004612359565b610f70565b3480156106ee57600080fd5b506103086106fd366004612542565b61102c565b34801561070e57600080fd5b50610355601a5481565b34801561072457600080fd5b5061035561073336600461255f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076a57600080fd5b5061030861077936600461258d565b61109e565b34801561078a57600080fd5b506103086107993660046125b9565b61124c565b3480156107aa57600080fd5b506103086107b9366004612529565b6112f3565b3480156107ca57600080fd5b506019546102d89060ff1681565b3480156107e457600080fd5b506103086107f3366004612542565b6113e8565b34801561080457600080fd5b5060145460155460165461057992919083565b34801561082357600080fd5b50600654610494906001600160a01b031681565b34801561084357600080fd5b506007546102d890600160a81b900460ff1681565b606060038054610867906125d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610893906125d7565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b5050505050905090565b60006108f7338484611483565b5060015b92915050565b6005546001600160a01b031633146109345760405162461bcd60e51b815260040161092b90612611565b60405180910390fd5b60005b825181101561099b57816017600085848151811061095757610957612646565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061099381612672565b915050610937565b505050565b6005546001600160a01b031633146109ca5760405162461bcd60e51b815260040161092b90612611565b60408051606080820183526003808352600160208085018290529385018190526011829055601281905560138190558451928301855281835292820183905292018190526014919091556015819055601655565b6005546001600160a01b03163314610a485760405162461bcd60e51b815260040161092b90612611565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610a905760405162461bcd60e51b815260040161092b90612611565b600754600160b01b900460ff1615610aea5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161092b565b6007805461ffff60a81b191661010160a81b17905543600c55565b6000610b128484846115a7565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b975760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161092b565b610bab8533610ba6868561268b565b611483565b506001949350505050565b6005546001600160a01b03163314610be05760405162461bcd60e51b815260040161092b90612611565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108f7918590610ba690869061269e565b6005546001600160a01b03163314610c6c5760405162461bcd60e51b815260040161092b90612611565b620f4240811115610ce55760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000606482015260840161092b565b610cf16012600a612795565b610cfb90826127a4565b60085550565b6005546001600160a01b03163314610d2b5760405162461bcd60e51b815260040161092b90612611565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d65573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610d935760405162461bcd60e51b815260040161092b90612611565b60408051606081018252600080825260208201819052910181905260118190556012819055601355565b6005546001600160a01b03163314610de75760405162461bcd60e51b815260040161092b90612611565b610df16000611bfb565b565b606060048054610867906125d7565b6005546001600160a01b03163314610e2c5760405162461bcd60e51b815260040161092b90612611565b60408051606081018252600080825260208201819052910181905260148190556015819055601655565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ed85760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161092b565b610ee73385610ba6868561268b565b5060019392505050565b60006108f73384846115a7565b6005546001600160a01b03163314610f285760405162461bcd60e51b815260040161092b90612611565b6001600160a01b038116610f4e5760405162461bcd60e51b815260040161092b906127bb565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f9a5760405162461bcd60e51b815260040161092b90612611565b816001600160a01b031663a9059cbb610fbb6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015611008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b91906127fd565b6005546001600160a01b031633146110565760405162461bcd60e51b815260040161092b90612611565b6001600160a01b03811661107c5760405162461bcd60e51b815260040161092b906127bb565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110c85760405162461bcd60e51b815260040161092b90612611565b620186a083101561112d5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b606482015260840161092b565b620186a08210156111935760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b606482015260840161092b565b620186a08110156111fb5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b606482015260840161092b565b6112076012600a612795565b61121190846127a4565b6009556112206012600a612795565b61122a90836127a4565b600a55601261123a90600a612795565b61124490826127a4565b600b55505050565b6005546001600160a01b031633146112765760405162461bcd60e51b815260040161092b90612611565b6112818160016127a4565b601a556019805460ff191683151517905561012c811115610d655760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b606482015260840161092b565b6005546001600160a01b0316331461131d5760405162461bcd60e51b815260040161092b90612611565b600754600160b01b900460ff16156113855760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161092b565b600581106113e35760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b606482015260840161092b565b600d55565b6005546001600160a01b031633146114125760405162461bcd60e51b815260040161092b90612611565b6001600160a01b0381166114775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161092b565b61148081611bfb565b50565b6001600160a01b0383166114e55760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161092b565b6001600160a01b0382166115465760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161092b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116116095760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161092b565b6001600160a01b03831660009081526017602052604090205460ff1615801561164b57506001600160a01b03821660009081526017602052604090205460ff16155b1561169f57600754600160b01b900460ff1661169f5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161092b565b6007546001600160a01b0384811691161480156116d557506001600160a01b03821660009081526017602052604090205460ff16155b80156116eb5750600754600160a01b900460ff16155b156117bd576009548111156117425760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d6974000000604482015260640161092b565b600b5481611765846001600160a01b031660009081526020819052604090205490565b61176f919061269e565b11156117bd5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d6974604482015260640161092b565b6007546001600160a01b038481169116148015906117f457506001600160a01b03821660009081526017602052604090205460ff16155b801561181957506001600160a01b03831660009081526017602052604090205460ff16155b801561182f5750600754600160a01b900460ff16155b156119a857600a548111156118865760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d69740000604482015260640161092b565b6007546001600160a01b0383811691161461191657600b54816118be846001600160a01b031660009081526020819052604090205490565b6118c8919061269e565b11156119165760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d6974604482015260640161092b565b60195460ff16156119a8576001600160a01b038316600090815260186020526040812054611944904261268b565b9050601a5481101561198b5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b604482015260640161092b565b506001600160a01b03831660009081526018602052604090204290555b60008060006119d160405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526017602052604081205460ff16158015611a1357506001600160a01b03871660009081526017602052604090205460ff16155b8015611a2d5750600d54600c54611a2a919061269e565b43105b600754909150600160a01b900460ff1680611a6057506001600160a01b03881660009081526017602052604090205460ff165b80611a8357506001600160a01b03871660009081526017602052604090205460ff165b15611a915760009250611b5b565b6007546001600160a01b038881169116148015611aac575080155b15611afc57601654601454601554611ac4919061269e565b611ace919061269e565b6040805160608101825260145481526015546020820152601654918101919091529095508594509150611b5b565b80611b4c57601354601154601254611b14919061269e565b611b1e919061269e565b6040805160608101825260115481526012546020820152601354918101919091529095508594509150611b5b565b8015611b5b57600e5494508493505b6064611b6785886127a4565b611b71919061281a565b600754909350600160a81b900460ff168015611b9b57506007546001600160a01b03898116911614155b15611baa57611baa8583611c4d565b611bbe8888611bb9868a61268b565b611dc6565b8215611bf1578415611bf15760006064611bd887896127a4565b611be2919061281a565b9050611bef893083611dc6565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d65576007805460ff60a01b1916600160a01b1790558115611db557306000908152602081905260409020546008548110611db35760016008541115611ca057506008545b6000611cad8460026127a4565b9050600081846020015184611cc291906127a4565b611ccc919061281a565b90506000611cda828561268b565b905047611ce682611f9e565b6000611cf2824761268b565b90506000876020015186611d06919061268b565b611d10908361281a565b90506000886020015182611d2491906127a4565b90508015611d3657611d3686826120f8565b8851600090611d468460026127a4565b611d5091906127a4565b90508015611d6e57600f54611d6e906001600160a01b0316826121cd565b60408a0151600090611d818560026127a4565b611d8b91906127a4565b90508015611da957601054611da9906001600160a01b0316826121cd565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611e2a5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161092b565b6001600160a01b038216611e8c5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161092b565b6001600160a01b03831660009081526020819052604090205481811015611f045760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161092b565b611f0e828261268b565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611f4490849061269e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9091815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fd357611fd3612646565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561202c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612050919061283c565b8160018151811061206357612063612646565b6001600160a01b0392831660209182029290920101526006546120899130911684611483565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906120c2908590600090869030904290600401612859565b600060405180830381600087803b1580156120dc57600080fd5b505af11580156120f0573d6000803e3d6000fd5b505050505050565b6006546121109030906001600160a01b031684611483565b6006546001600160a01b031663f305d7198230856000806121396005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156121a1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121c691906128ca565b5050505050565b8047101561221d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161092b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461226a576040519150601f19603f3d011682016040523d82523d6000602084013e61226f565b606091505b505090508061099b5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161092b565b600060208083528351808285015260005b81811015612313578581018301518582016040015282016122f7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461148057600080fd5b803561235481612334565b919050565b6000806040838503121561236c57600080fd5b823561237781612334565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461148057600080fd5b80356123548161239b565b600080604083850312156123c757600080fd5b823567ffffffffffffffff808211156123df57600080fd5b818501915085601f8301126123f357600080fd5b813560208282111561240757612407612385565b8160051b604051601f19603f8301168101818110868211171561242c5761242c612385565b60405292835281830193508481018201928984111561244a57600080fd5b948201945b8386101561246f5761246086612349565b8552948201949382019361244f565b965061247e90508782016123a9565b9450505050509250929050565b60006020828403121561249d57600080fd5b81356124a88161239b565b9392505050565b6000806000606084860312156124c457600080fd5b83356124cf81612334565b925060208401356124df81612334565b929592945050506040919091013590565b6000806040838503121561250357600080fd5b823561250e81612334565b9150602083013561251e8161239b565b809150509250929050565b60006020828403121561253b57600080fd5b5035919050565b60006020828403121561255457600080fd5b81356124a881612334565b6000806040838503121561257257600080fd5b823561257d81612334565b9150602083013561251e81612334565b6000806000606084860312156125a257600080fd5b505081359360208301359350604090920135919050565b600080604083850312156125cc57600080fd5b82356123778161239b565b600181811c908216806125eb57607f821691505b60208210810361260b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016126845761268461265c565b5060010190565b818103818111156108fb576108fb61265c565b808201808211156108fb576108fb61265c565b600181815b808511156126ec5781600019048211156126d2576126d261265c565b808516156126df57918102915b93841c93908002906126b6565b509250929050565b600082612703575060016108fb565b81612710575060006108fb565b816001811461272657600281146127305761274c565b60019150506108fb565b60ff8411156127415761274161265c565b50506001821b6108fb565b5060208310610133831016604e8410600b841016171561276f575081810a6108fb565b61277983836126b1565b806000190482111561278d5761278d61265c565b029392505050565b60006124a860ff8416836126f4565b80820281158282048414176108fb576108fb61265c565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60006020828403121561280f57600080fd5b81516124a88161239b565b60008261283757634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561284e57600080fd5b81516124a881612334565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128a95784516001600160a01b031683529383019391830191600101612884565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156128df57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122056e5b8eb7c82c2bc820966cd4d1150abaeb76c0404964fd5d792b4d26e3bcaf364736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102815760003560e01c8063728f8eea1161014f578063c9300ed5116100c1578063edaa11681161007a578063edaa11681461079e578063ee36e359146107be578063f2fde38b146107d8578063f66895a3146107f8578063f887ea4014610817578063fbe6324e1461083757600080fd5b8063c9300ed5146106c2578063ce5d7999146106e2578063d2ce0db214610702578063dd62ed3e14610718578063e1b450ad1461075e578063e517f2b91461077e57600080fd5b80639e88ae2c116101135780639e88ae2c146105fd578063a457c2d714610612578063a8aa1b3114610632578063a9059cbb14610652578063aacebbe314610672578063c5d32bb21461069257600080fd5b8063728f8eea1461055a57806375f0a8741461059457806385141a77146105b45780638da5cb5b146105ca57806395d89b41146105e857600080fd5b8063355496ca116101f35780634ada218b116101ac5780634ada218b146104ac578063652e2f04146104cd57806366a88d96146104e35780636aa5b37f146104f957806370a082311461050f578063715018a61461054557600080fd5b8063355496ca146103df57806339509351146103ff57806342b6fa111461041f578063441b1d301461043f57806344f3dc8b1461045f5780634626402b1461047457600080fd5b80631675d802116102455780631675d8021461033f57806318160ddd146103635780631d97b7cd1461037857806323b872dd1461038d578063274a533c146103ad578063313ce567146103c357600080fd5b806306fdde031461028d578063095ea7b3146102b85780630e375a5c146102e8578063105dc7c51461030a5780631340538f1461031f57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2610858565b6040516102af91906122e6565b60405180910390f35b3480156102c457600080fd5b506102d86102d3366004612359565b6108ea565b60405190151581526020016102af565b3480156102f457600080fd5b506103086103033660046123b4565b610901565b005b34801561031657600080fd5b506103086109a0565b34801561032b57600080fd5b5061030861033a36600461248b565b610a1e565b34801561034b57600080fd5b5061035560085481565b6040519081526020016102af565b34801561036f57600080fd5b50600254610355565b34801561038457600080fd5b50610308610a66565b34801561039957600080fd5b506102d86103a83660046124af565b610b05565b3480156103b957600080fd5b50610355600c5481565b3480156103cf57600080fd5b50604051601281526020016102af565b3480156103eb57600080fd5b506103086103fa3660046124f0565b610bb6565b34801561040b57600080fd5b506102d861041a366004612359565b610c0b565b34801561042b57600080fd5b5061030861043a366004612529565b610c42565b34801561044b57600080fd5b5061030861045a366004612529565b610d01565b34801561046b57600080fd5b50610308610d69565b34801561048057600080fd5b50601054610494906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b3480156104b857600080fd5b506007546102d890600160b01b900460ff1681565b3480156104d957600080fd5b50610355600a5481565b3480156104ef57600080fd5b50610355600b5481565b34801561050557600080fd5b5061035560095481565b34801561051b57600080fd5b5061035561052a366004612542565b6001600160a01b031660009081526020819052604090205490565b34801561055157600080fd5b50610308610dbd565b34801561056657600080fd5b5060115460125460135461057992919083565b604080519384526020840192909252908201526060016102af565b3480156105a057600080fd5b50600f54610494906001600160a01b031681565b3480156105c057600080fd5b5061049461dead81565b3480156105d657600080fd5b506005546001600160a01b0316610494565b3480156105f457600080fd5b506102a2610df3565b34801561060957600080fd5b50610308610e02565b34801561061e57600080fd5b506102d861062d366004612359565b610e56565b34801561063e57600080fd5b50600754610494906001600160a01b031681565b34801561065e57600080fd5b506102d861066d366004612359565b610ef1565b34801561067e57600080fd5b5061030861068d366004612542565b610efe565b34801561069e57600080fd5b506102d86106ad366004612542565b60176020526000908152604090205460ff1681565b3480156106ce57600080fd5b506103086106dd366004612359565b610f70565b3480156106ee57600080fd5b506103086106fd366004612542565b61102c565b34801561070e57600080fd5b50610355601a5481565b34801561072457600080fd5b5061035561073336600461255f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076a57600080fd5b5061030861077936600461258d565b61109e565b34801561078a57600080fd5b506103086107993660046125b9565b61124c565b3480156107aa57600080fd5b506103086107b9366004612529565b6112f3565b3480156107ca57600080fd5b506019546102d89060ff1681565b3480156107e457600080fd5b506103086107f3366004612542565b6113e8565b34801561080457600080fd5b5060145460155460165461057992919083565b34801561082357600080fd5b50600654610494906001600160a01b031681565b34801561084357600080fd5b506007546102d890600160a81b900460ff1681565b606060038054610867906125d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610893906125d7565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b5050505050905090565b60006108f7338484611483565b5060015b92915050565b6005546001600160a01b031633146109345760405162461bcd60e51b815260040161092b90612611565b60405180910390fd5b60005b825181101561099b57816017600085848151811061095757610957612646565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061099381612672565b915050610937565b505050565b6005546001600160a01b031633146109ca5760405162461bcd60e51b815260040161092b90612611565b60408051606080820183526003808352600160208085018290529385018190526011829055601281905560138190558451928301855281835292820183905292018190526014919091556015819055601655565b6005546001600160a01b03163314610a485760405162461bcd60e51b815260040161092b90612611565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610a905760405162461bcd60e51b815260040161092b90612611565b600754600160b01b900460ff1615610aea5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161092b565b6007805461ffff60a81b191661010160a81b17905543600c55565b6000610b128484846115a7565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b975760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161092b565b610bab8533610ba6868561268b565b611483565b506001949350505050565b6005546001600160a01b03163314610be05760405162461bcd60e51b815260040161092b90612611565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108f7918590610ba690869061269e565b6005546001600160a01b03163314610c6c5760405162461bcd60e51b815260040161092b90612611565b620f4240811115610ce55760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000606482015260840161092b565b610cf16012600a612795565b610cfb90826127a4565b60085550565b6005546001600160a01b03163314610d2b5760405162461bcd60e51b815260040161092b90612611565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d65573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610d935760405162461bcd60e51b815260040161092b90612611565b60408051606081018252600080825260208201819052910181905260118190556012819055601355565b6005546001600160a01b03163314610de75760405162461bcd60e51b815260040161092b90612611565b610df16000611bfb565b565b606060048054610867906125d7565b6005546001600160a01b03163314610e2c5760405162461bcd60e51b815260040161092b90612611565b60408051606081018252600080825260208201819052910181905260148190556015819055601655565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ed85760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161092b565b610ee73385610ba6868561268b565b5060019392505050565b60006108f73384846115a7565b6005546001600160a01b03163314610f285760405162461bcd60e51b815260040161092b90612611565b6001600160a01b038116610f4e5760405162461bcd60e51b815260040161092b906127bb565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f9a5760405162461bcd60e51b815260040161092b90612611565b816001600160a01b031663a9059cbb610fbb6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015611008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b91906127fd565b6005546001600160a01b031633146110565760405162461bcd60e51b815260040161092b90612611565b6001600160a01b03811661107c5760405162461bcd60e51b815260040161092b906127bb565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110c85760405162461bcd60e51b815260040161092b90612611565b620186a083101561112d5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b606482015260840161092b565b620186a08210156111935760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b606482015260840161092b565b620186a08110156111fb5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b606482015260840161092b565b6112076012600a612795565b61121190846127a4565b6009556112206012600a612795565b61122a90836127a4565b600a55601261123a90600a612795565b61124490826127a4565b600b55505050565b6005546001600160a01b031633146112765760405162461bcd60e51b815260040161092b90612611565b6112818160016127a4565b601a556019805460ff191683151517905561012c811115610d655760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b606482015260840161092b565b6005546001600160a01b0316331461131d5760405162461bcd60e51b815260040161092b90612611565b600754600160b01b900460ff16156113855760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b606482015260840161092b565b600581106113e35760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b606482015260840161092b565b600d55565b6005546001600160a01b031633146114125760405162461bcd60e51b815260040161092b90612611565b6001600160a01b0381166114775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161092b565b61148081611bfb565b50565b6001600160a01b0383166114e55760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161092b565b6001600160a01b0382166115465760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161092b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116116095760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161092b565b6001600160a01b03831660009081526017602052604090205460ff1615801561164b57506001600160a01b03821660009081526017602052604090205460ff16155b1561169f57600754600160b01b900460ff1661169f5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161092b565b6007546001600160a01b0384811691161480156116d557506001600160a01b03821660009081526017602052604090205460ff16155b80156116eb5750600754600160a01b900460ff16155b156117bd576009548111156117425760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d6974000000604482015260640161092b565b600b5481611765846001600160a01b031660009081526020819052604090205490565b61176f919061269e565b11156117bd5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d6974604482015260640161092b565b6007546001600160a01b038481169116148015906117f457506001600160a01b03821660009081526017602052604090205460ff16155b801561181957506001600160a01b03831660009081526017602052604090205460ff16155b801561182f5750600754600160a01b900460ff16155b156119a857600a548111156118865760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d69740000604482015260640161092b565b6007546001600160a01b0383811691161461191657600b54816118be846001600160a01b031660009081526020819052604090205490565b6118c8919061269e565b11156119165760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d6974604482015260640161092b565b60195460ff16156119a8576001600160a01b038316600090815260186020526040812054611944904261268b565b9050601a5481101561198b5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b604482015260640161092b565b506001600160a01b03831660009081526018602052604090204290555b60008060006119d160405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03871660009081526017602052604081205460ff16158015611a1357506001600160a01b03871660009081526017602052604090205460ff16155b8015611a2d5750600d54600c54611a2a919061269e565b43105b600754909150600160a01b900460ff1680611a6057506001600160a01b03881660009081526017602052604090205460ff165b80611a8357506001600160a01b03871660009081526017602052604090205460ff165b15611a915760009250611b5b565b6007546001600160a01b038881169116148015611aac575080155b15611afc57601654601454601554611ac4919061269e565b611ace919061269e565b6040805160608101825260145481526015546020820152601654918101919091529095508594509150611b5b565b80611b4c57601354601154601254611b14919061269e565b611b1e919061269e565b6040805160608101825260115481526012546020820152601354918101919091529095508594509150611b5b565b8015611b5b57600e5494508493505b6064611b6785886127a4565b611b71919061281a565b600754909350600160a81b900460ff168015611b9b57506007546001600160a01b03898116911614155b15611baa57611baa8583611c4d565b611bbe8888611bb9868a61268b565b611dc6565b8215611bf1578415611bf15760006064611bd887896127a4565b611be2919061281a565b9050611bef893083611dc6565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d65576007805460ff60a01b1916600160a01b1790558115611db557306000908152602081905260409020546008548110611db35760016008541115611ca057506008545b6000611cad8460026127a4565b9050600081846020015184611cc291906127a4565b611ccc919061281a565b90506000611cda828561268b565b905047611ce682611f9e565b6000611cf2824761268b565b90506000876020015186611d06919061268b565b611d10908361281a565b90506000886020015182611d2491906127a4565b90508015611d3657611d3686826120f8565b8851600090611d468460026127a4565b611d5091906127a4565b90508015611d6e57600f54611d6e906001600160a01b0316826121cd565b60408a0151600090611d818560026127a4565b611d8b91906127a4565b90508015611da957601054611da9906001600160a01b0316826121cd565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611e2a5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161092b565b6001600160a01b038216611e8c5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161092b565b6001600160a01b03831660009081526020819052604090205481811015611f045760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161092b565b611f0e828261268b565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611f4490849061269e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9091815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fd357611fd3612646565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561202c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612050919061283c565b8160018151811061206357612063612646565b6001600160a01b0392831660209182029290920101526006546120899130911684611483565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906120c2908590600090869030904290600401612859565b600060405180830381600087803b1580156120dc57600080fd5b505af11580156120f0573d6000803e3d6000fd5b505050505050565b6006546121109030906001600160a01b031684611483565b6006546001600160a01b031663f305d7198230856000806121396005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156121a1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121c691906128ca565b5050505050565b8047101561221d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161092b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461226a576040519150601f19603f3d011682016040523d82523d6000602084013e61226f565b606091505b505090508061099b5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161092b565b600060208083528351808285015260005b81811015612313578581018301518582016040015282016122f7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461148057600080fd5b803561235481612334565b919050565b6000806040838503121561236c57600080fd5b823561237781612334565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461148057600080fd5b80356123548161239b565b600080604083850312156123c757600080fd5b823567ffffffffffffffff808211156123df57600080fd5b818501915085601f8301126123f357600080fd5b813560208282111561240757612407612385565b8160051b604051601f19603f8301168101818110868211171561242c5761242c612385565b60405292835281830193508481018201928984111561244a57600080fd5b948201945b8386101561246f5761246086612349565b8552948201949382019361244f565b965061247e90508782016123a9565b9450505050509250929050565b60006020828403121561249d57600080fd5b81356124a88161239b565b9392505050565b6000806000606084860312156124c457600080fd5b83356124cf81612334565b925060208401356124df81612334565b929592945050506040919091013590565b6000806040838503121561250357600080fd5b823561250e81612334565b9150602083013561251e8161239b565b809150509250929050565b60006020828403121561253b57600080fd5b5035919050565b60006020828403121561255457600080fd5b81356124a881612334565b6000806040838503121561257257600080fd5b823561257d81612334565b9150602083013561251e81612334565b6000806000606084860312156125a257600080fd5b505081359360208301359350604090920135919050565b600080604083850312156125cc57600080fd5b82356123778161239b565b600181811c908216806125eb57607f821691505b60208210810361260b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016126845761268461265c565b5060010190565b818103818111156108fb576108fb61265c565b808201808211156108fb576108fb61265c565b600181815b808511156126ec5781600019048211156126d2576126d261265c565b808516156126df57918102915b93841c93908002906126b6565b509250929050565b600082612703575060016108fb565b81612710575060006108fb565b816001811461272657600281146127305761274c565b60019150506108fb565b60ff8411156127415761274161265c565b50506001821b6108fb565b5060208310610133831016604e8410600b841016171561276f575081810a6108fb565b61277983836126b1565b806000190482111561278d5761278d61265c565b029392505050565b60006124a860ff8416836126f4565b80820281158282048414176108fb576108fb61265c565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60006020828403121561280f57600080fd5b81516124a88161239b565b60008261283757634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561284e57600080fd5b81516124a881612334565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128a95784516001600160a01b031683529383019391830191600101612884565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156128df57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122056e5b8eb7c82c2bc820966cd4d1150abaeb76c0404964fd5d792b4d26e3bcaf364736f6c63430008110033

Deployed Bytecode Sourcemap

11749:12355:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13909:161;;;;;;;;;;-1:-1:-1;13909:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;13909:161:0;1162:187:1;23073:202:0;;;;;;;;;;-1:-1:-1;23073:202:0;;;;;:::i;:::-;;:::i;:::-;;21695:122;;;;;;;;;;;;;:::i;21057:152::-;;;;;;;;;;-1:-1:-1;21057:152:0;;;;;:::i;:::-;;:::i;12019:53::-;;;;;;;;;;;;;;;;;;;3330:25:1;;;3318:2;3303:18;12019:53:0;3184:177:1;3500:108:0;;;;;;;;;;-1:-1:-1;3588:12:0;;3500:108;;21825:222;;;;;;;;;;;;;:::i;14078:448::-;;;;;;;;;;-1:-1:-1;14078:448:0;;;;;:::i;:::-;;:::i;12229:28::-;;;;;;;;;;;;;;;;3342:93;;;;;;;;;;-1:-1:-1;3342:93:0;;3425:2;3969:36:1;;3957:2;3942:18;3342:93:0;3827:184:1;22945:120:0;;;;;;;;;;-1:-1:-1;22945:120:0;;;;;:::i;:::-;;:::i;14534:248::-;;;;;;;;;;-1:-1:-1;14534:248:0;;;;;:::i;:::-;;:::i;21217:280::-;;;;;;;;;;-1:-1:-1;21217:280:0;;;;;:::i;:::-;;:::i;23791:112::-;;;;;;;;;;-1:-1:-1;23791:112:0;;;;;:::i;:::-;;:::i;21505:85::-;;;;;;;;;;;;;:::i;12420:74::-;;;;;;;;;;-1:-1:-1;12420:74:0;;;;-1:-1:-1;;;;;12420:74:0;;;;;;-1:-1:-1;;;;;4752:32:1;;;4734:51;;4722:2;4707:18;12420:74:0;4588:203:1;11976:34:0;;;;;;;;;;-1:-1:-1;11976:34:0;;;;-1:-1:-1;;;11976:34:0;;;;;;12127:42;;;;;;;;;;;;;;;;12176:44;;;;;;;;;;;;;;;;12079:41;;;;;;;;;;;;;;;;3671:127;;;;;;;;;;-1:-1:-1;3671:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3772:18:0;3745:7;3772:18;;;;;;;;;;;;3671:127;10412:94;;;;;;;;;;;;;:::i;12698:35::-;;;;;;;;;;-1:-1:-1;12698:35:0;;;;;;;;;;;;;;;;5250:25:1;;;5306:2;5291:18;;5284:34;;;;5334:18;;;5327:34;5238:2;5223:18;12698:35:0;5048:319:1;12338:75:0;;;;;;;;;;-1:-1:-1;12338:75:0;;;;-1:-1:-1;;;;;12338:75:0;;;12498:79;;;;;;;;;;;;12535:42;12498:79;;10189:87;;;;;;;;;;-1:-1:-1;10262:6:0;;-1:-1:-1;;;;;10262:6:0;10189:87;;2599:104;;;;;;;;;;;;;:::i;21598:89::-;;;;;;;;;;;;;:::i;14790:410::-;;;;;;;;;;-1:-1:-1;14790:410:0;;;;;:::i;:::-;;:::i;11865:19::-;;;;;;;;;;-1:-1:-1;11865:19:0;;;;-1:-1:-1;;;;;11865:19:0;;;15208:165;;;;;;;;;;-1:-1:-1;15208:165:0;;;;;:::i;:::-;;:::i;22313:195::-;;;;;;;;;;-1:-1:-1;22313:195:0;;;;;:::i;:::-;;:::i;12788:41::-;;;;;;;;;;-1:-1:-1;12788:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23911:135;;;;;;;;;;-1:-1:-1;23911:135:0;;;;;:::i;:::-;;:::i;22516:187::-;;;;;;;;;;-1:-1:-1;22516:187:0;;;;;:::i;:::-;;:::i;12948:40::-;;;;;;;;;;;;;;;;4290:201;;;;;;;;;;-1:-1:-1;4290:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4456:18:0;;;4424:7;4456:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4290:201;23283:500;;;;;;;;;;-1:-1:-1;23283:500:0;;;;;:::i;:::-;;:::i;22711:226::-;;;;;;;;;;-1:-1:-1;22711:226:0;;;;;:::i;:::-;;:::i;22055:250::-;;;;;;;;;;-1:-1:-1;22055:250:0;;;;;:::i;:::-;;:::i;12907:34::-;;;;;;;;;;-1:-1:-1;12907:34:0;;;;;;;;10514:192;;;;;;;;;;-1:-1:-1;10514:192:0;;;;;:::i;:::-;;:::i;12740:39::-;;;;;;;;;;-1:-1:-1;12740:39:0;;;;;;;;;;;;11837:21;;;;;;;;;;-1:-1:-1;11837:21:0;;;;-1:-1:-1;;;;;11837:21:0;;;11931:38;;;;;;;;;;-1:-1:-1;11931:38:0;;;;-1:-1:-1;;;11931:38:0;;;;;;2380:100;2434:13;2467:5;2460:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:100;:::o;13909:161::-;13984:4;14001:39;182:10;14024:7;14033:6;14001:8;:39::i;:::-;-1:-1:-1;14058:4:0;13909:161;;;;;:::o;23073:202::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;;;;;;;;;23170:9:::1;23165:103;23189:8;:15;23185:1;:19;23165:103;;;23251:5;23226:9;:22;23236:8;23245:1;23236:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23226:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23226:22:0;:30;;-1:-1:-1;;23226:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23206:3;::::1;::::0;::::1;:::i;:::-;;;;23165:103;;;;23073:202:::0;;:::o;21695:122::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;21759:14:::1;::::0;;::::1;::::0;;::::1;::::0;;21765:1:::1;21759:14:::0;;;21768:1:::1;21759:14;::::0;;::::1;::::0;;;;;;;;;21751:5:::1;:22:::0;;;;;;;;;;;21795:14;;;;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;21784:9:::1;:25:::0;;;;;;;;;;21695:122::o;21057:152::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;21175:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21175:26:0::1;-1:-1:-1::0;;;;21175:26:0;;::::1;::::0;;;::::1;::::0;;21057:152::o;21825:222::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;21889:14:::1;::::0;-1:-1:-1;;;21889:14:0;::::1;;;21888:15;21880:52;;;::::0;-1:-1:-1;;;21880:52:0;;7975:2:1;21880:52:0::1;::::0;::::1;7957:21:1::0;8014:2;7994:18;;;7987:30;8053:26;8033:18;;;8026:54;8097:18;;21880:52:0::1;7773:348:1::0;21880:52:0::1;21943:14;:21:::0;;-1:-1:-1;;;;21975:25:0;-1:-1:-1;;;21975:25:0;;;22027:12:::1;22011:13;:28:::0;21825:222::o;14078:448::-;14210:4;14227:36;14237:6;14245:9;14256:6;14227:9;:36::i;:::-;-1:-1:-1;;;;;14303:19:0;;14276:24;14303:19;;;:11;:19;;;;;;;;182:10;14303:33;;;;;;;;14355:26;;;;14347:79;;;;-1:-1:-1;;;14347:79:0;;8328:2:1;14347:79:0;;;8310:21:1;8367:2;8347:18;;;8340:30;8406:34;8386:18;;;8379:62;-1:-1:-1;;;8457:18:1;;;8450:38;8505:19;;14347:79:0;8126:404:1;14347:79:0;14437:57;14446:6;182:10;14468:25;14487:6;14468:16;:25;:::i;:::-;14437:8;:57::i;:::-;-1:-1:-1;14514:4:0;;14078:448;-1:-1:-1;;;;14078:448:0:o;22945:120::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23030:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;23030:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22945:120::o;14534:248::-;182:10;14650:4;14704:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14704:34:0;;;;;;;;;;14650:4;;14672:80;;14695:7;;14704:47;;14741:10;;14704:47;:::i;21217:280::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;21355:3:::1;21341:10;:17;;21333:92;;;::::0;-1:-1:-1;;;21333:92:0;;9000:2:1;21333:92:0::1;::::0;::::1;8982:21:1::0;9039:2;9019:18;;;9012:30;9078:34;9058:18;;;9051:62;9149:32;9129:18;;;9122:60;9199:19;;21333:92:0::1;8798:426:1::0;21333:92:0::1;21475:14;3425:2:::0;21475::::1;:14;:::i;:::-;21462:27;::::0;:10;:27:::1;:::i;:::-;21436:23;:53:::0;-1:-1:-1;21217:280:0:o;23791:112::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;10262:6;;23859:36:::1;::::0;-1:-1:-1;;;;;10262:6:0;;;;23859:36;::::1;;;::::0;23885:9;;23859:36:::1;::::0;;;23885:9;10262:6;23859:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23791:112:::0;:::o;21505:85::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;21568:14:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;21568:14:0;;;::::1;::::0;::::1;::::0;;;;;;;;21560:5:::1;:22:::0;;;;;;;;;21505:85::o;10412:94::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;10477:21:::1;10495:1;10477:9;:21::i;:::-;10412:94::o:0;2599:104::-;2655:13;2688:7;2681:14;;;;;:::i;21598:89::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;21665:14:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;21665:14:0;;;::::1;::::0;::::1;::::0;;;;;;;;21654:9:::1;:25:::0;;;;;;;;;21598:89::o;14790:410::-;182:10;14911:4;14960:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14960:34:0;;;;;;;;;;15013:35;;;;15005:85;;;;-1:-1:-1;;;15005:85:0;;10987:2:1;15005:85:0;;;10969:21:1;11026:2;11006:18;;;10999:30;11065:34;11045:18;;;11038:62;-1:-1:-1;;;11116:18:1;;;11109:35;11161:19;;15005:85:0;10785:401:1;15005:85:0;15101:67;182:10;15124:7;15133:34;15152:15;15133:16;:34;:::i;15101:67::-;-1:-1:-1;15188:4:0;;14790:410;-1:-1:-1;;;14790:410:0:o;15208:165::-;15286:4;15303:40;15313:10;15325:9;15336:6;15303:9;:40::i;22313:195::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22401:23:0;::::1;22393:69;;;;-1:-1:-1::0;;;22393:69:0::1;;;;;;;:::i;:::-;22473:15;:27:::0;;-1:-1:-1;;;;;;22473:27:0::1;-1:-1:-1::0;;;;;22473:27:0;;;::::1;::::0;;;::::1;::::0;;22313:195::o;23911:135::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;24003:8:::1;-1:-1:-1::0;;;;;23996:25:0::1;;24022:7;10262:6:::0;;-1:-1:-1;;;;;10262:6:0;;10189:87;24022:7:::1;23996:42;::::0;-1:-1:-1;;;;;;23996:42:0::1;::::0;;;;;;-1:-1:-1;;;;;11786:32:1;;;23996:42:0::1;::::0;::::1;11768:51:1::0;11835:18;;;11828:34;;;11741:18;;23996:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22516:187::-:0;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22597:23:0;::::1;22589:69;;;;-1:-1:-1::0;;;22589:69:0::1;;;;;;;:::i;:::-;22669:14;:26:::0;;-1:-1:-1;;;;;;22669:26:0::1;-1:-1:-1::0;;;;;22669:26:0;;;::::1;::::0;;;::::1;::::0;;22516:187::o;23283:500::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;23409:3:::1;23399:6;:13;;23391:67;;;::::0;-1:-1:-1;;;23391:67:0;;12325:2:1;23391:67:0::1;::::0;::::1;12307:21:1::0;12364:2;12344:18;;;12337:30;12403:34;12383:18;;;12376:62;-1:-1:-1;;;12454:18:1;;;12447:39;12503:19;;23391:67:0::1;12123:405:1::0;23391:67:0::1;23488:3;23477:7;:14;;23469:69;;;::::0;-1:-1:-1;;;23469:69:0;;12735:2:1;23469:69:0::1;::::0;::::1;12717:21:1::0;12774:2;12754:18;;;12747:30;12813:34;12793:18;;;12786:62;-1:-1:-1;;;12864:18:1;;;12857:40;12914:19;;23469:69:0::1;12533:406:1::0;23469:69:0::1;23570:3;23557:9;:16;;23549:73;;;::::0;-1:-1:-1;;;23549:73:0;;13146:2:1;23549:73:0::1;::::0;::::1;13128:21:1::0;13185:2;13165:18;;;13158:30;13224:34;13204:18;;;13197:62;-1:-1:-1;;;13275:18:1;;;13268:42;13327:19;;23549:73:0::1;12944:408:1::0;23549:73:0::1;23656:14;3425:2:::0;23656::::1;:14;:::i;:::-;23647:23;::::0;:6;:23:::1;:::i;:::-;23633:11;:37:::0;23706:14:::1;3425:2:::0;23706::::1;:14;:::i;:::-;23696:24;::::0;:7;:24:::1;:::i;:::-;23681:12;:39:::0;3425:2;23760:14:::1;::::0;:2:::1;:14;:::i;:::-;23748:26;::::0;:9;:26:::1;:::i;:::-;23731:14;:43:::0;-1:-1:-1;;;23283:500:0:o;22711:226::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;22806:16:::1;:4:::0;22813:9:::1;22806:16;:::i;:::-;22791:12;:31:::0;22833:15:::1;:23:::0;;-1:-1:-1;;22833:23:0::1;::::0;::::1;;;::::0;;22883:3:::1;22875:11:::0;::::1;;22867:62;;;::::0;-1:-1:-1;;;22867:62:0;;13559:2:1;22867:62:0::1;::::0;::::1;13541:21:1::0;13598:2;13578:18;;;13571:30;13637:34;13617:18;;;13610:62;-1:-1:-1;;;13688:18:1;;;13681:36;13734:19;;22867:62:0::1;13357:402:1::0;22055:250:0;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;22137:14:::1;::::0;-1:-1:-1;;;22137:14:0;::::1;;;22136:15;22128:65;;;::::0;-1:-1:-1;;;22128:65:0;;13966:2:1;22128:65:0::1;::::0;::::1;13948:21:1::0;14005:2;13985:18;;;13978:30;14044:34;14024:18;;;14017:62;-1:-1:-1;;;14095:18:1;;;14088:35;14140:19;;22128:65:0::1;13764:401:1::0;22128:65:0::1;22224:1;22212:9;:13;22204:62;;;::::0;-1:-1:-1;;;22204:62:0;;14372:2:1;22204:62:0::1;::::0;::::1;14354:21:1::0;14411:2;14391:18;;;14384:30;14450:34;14430:18;;;14423:62;-1:-1:-1;;;14501:18:1;;;14494:35;14546:19;;22204:62:0::1;14170:401:1::0;22204:62:0::1;22277:8;:20:::0;22055:250::o;10514:192::-;10262:6;;-1:-1:-1;;;;;10262:6:0;182:10;10324:23;10316:68;;;;-1:-1:-1;;;10316:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10603:22:0;::::1;10595:73;;;::::0;-1:-1:-1;;;10595:73:0;;14778:2:1;10595:73:0::1;::::0;::::1;14760:21:1::0;14817:2;14797:18;;;14790:30;14856:34;14836:18;;;14829:62;-1:-1:-1;;;14907:18:1;;;14900:36;14953:19;;10595:73:0::1;14576:402:1::0;10595:73:0::1;10679:19;10689:8;10679:9;:19::i;:::-;10514:192:::0;:::o;9222:380::-;-1:-1:-1;;;;;9358:19:0;;9350:68;;;;-1:-1:-1;;;9350:68:0;;15185:2:1;9350:68:0;;;15167:21:1;15224:2;15204:18;;;15197:30;15263:34;15243:18;;;15236:62;-1:-1:-1;;;15314:18:1;;;15307:34;15358:19;;9350:68:0;14983:400:1;9350:68:0;-1:-1:-1;;;;;9437:21:0;;9429:68;;;;-1:-1:-1;;;9429:68:0;;15590:2:1;9429:68:0;;;15572:21:1;15629:2;15609:18;;;15602:30;15668:34;15648:18;;;15641:62;-1:-1:-1;;;15719:18:1;;;15712:32;15761:19;;9429:68:0;15388:398:1;9429:68:0;-1:-1:-1;;;;;9510:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9562:32;;3330:25:1;;;9562:32:0;;3303:18:1;9562:32:0;;;;;;;9222:380;;;:::o;15381:2985::-;15531:1;15522:6;:10;15514:64;;;;-1:-1:-1;;;15514:64:0;;15993:2:1;15514:64:0;;;15975:21:1;16032:2;16012:18;;;16005:30;16071:34;16051:18;;;16044:62;-1:-1:-1;;;16122:18:1;;;16115:39;16171:19;;15514:64:0;15791:405:1;15514:64:0;-1:-1:-1;;;;;15596:17:0;;;;;;:9;:17;;;;;;;;15595:18;:43;;;;-1:-1:-1;;;;;;15618:20:0;;;;;;:9;:20;;;;;;;;15617:21;15595:43;15591:122;;;15663:14;;-1:-1:-1;;;15663:14:0;;;;15655:46;;;;-1:-1:-1;;;15655:46:0;;16403:2:1;15655:46:0;;;16385:21:1;16442:2;16422:18;;;16415:30;-1:-1:-1;;;16461:18:1;;;16454:49;16520:18;;15655:46:0;16201:343:1;15655:46:0;15739:4;;-1:-1:-1;;;;;15729:14:0;;;15739:4;;15729:14;:39;;;;-1:-1:-1;;;;;;15748:20:0;;;;;;:9;:20;;;;;;;;15747:21;15729:39;:54;;;;-1:-1:-1;15773:10:0;;-1:-1:-1;;;15773:10:0;;;;15772:11;15729:54;15725:306;;;15818:11;;15808:6;:21;;15800:63;;;;-1:-1:-1;;;15800:63:0;;16751:2:1;15800:63:0;;;16733:21:1;16790:2;16770:18;;;16763:30;16829:31;16809:18;;;16802:59;16878:18;;15800:63:0;16549:353:1;15800:63:0;15937:14;;15927:6;15904:20;15914:9;-1:-1:-1;;;;;3772:18:0;3745:7;3772:18;;;;;;;;;;;;3671:127;15904:20;:29;;;;:::i;:::-;:47;;15878:141;;;;-1:-1:-1;;;15878:141:0;;17109:2:1;15878:141:0;;;17091:21:1;;;17128:18;;;17121:30;17187:34;17167:18;;;17160:62;17239:18;;15878:141:0;16907:356:1;15878:141:0;16071:4;;-1:-1:-1;;;;;16061:14:0;;;16071:4;;16061:14;;;;:39;;-1:-1:-1;;;;;;16080:20:0;;;;;;:9;:20;;;;;;;;16079:21;16061:39;:61;;;;-1:-1:-1;;;;;;16105:17:0;;;;;;:9;:17;;;;;;;;16104:18;16061:61;:76;;;;-1:-1:-1;16127:10:0;;-1:-1:-1;;;16127:10:0;;;;16126:11;16061:76;16043:677;;;16182:12;;16172:6;:22;;16164:65;;;;-1:-1:-1;;;16164:65:0;;17470:2:1;16164:65:0;;;17452:21:1;17509:2;17489:18;;;17482:30;17548:32;17528:18;;;17521:60;17598:18;;16164:65:0;17268:354:1;16164:65:0;16261:4;;-1:-1:-1;;;;;16248:17:0;;;16261:4;;16248:17;16244:211;;16349:14;;16339:6;16316:20;16326:9;-1:-1:-1;;;;;3772:18:0;3745:7;3772:18;;;;;;;;;;;;3671:127;16316:20;:29;;;;:::i;:::-;:47;;16286:153;;;;-1:-1:-1;;;16286:153:0;;17109:2:1;16286:153:0;;;17091:21:1;;;17128:18;;;17121:30;17187:34;17167:18;;;17160:62;17239:18;;16286:153:0;16907:356:1;16286:153:0;16473:15;;;;16469:240;;;-1:-1:-1;;;;;16548:17:0;;16509:18;16548:17;;;:9;:17;;;;;;16530:35;;:15;:35;:::i;:::-;16509:56;;16606:12;;16592:10;:26;;16584:55;;;;-1:-1:-1;;;16584:55:0;;17829:2:1;16584:55:0;;;17811:21:1;17868:2;17848:18;;;17841:30;-1:-1:-1;;;17887:18:1;;;17880:46;17943:18;;16584:55:0;17627:340:1;16584:55:0;-1:-1:-1;;;;;;16658:17:0;;;;;;:9;:17;;;;;16678:15;16658:35;;16469:240;16732:15;16758:14;16783:11;16805:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;16805:25:0;-1:-1:-1;;;;;16864:17:0;;16843;16864;;;:9;:17;;;;;;;;16863:18;:56;;;;-1:-1:-1;;;;;;16899:20:0;;;;;;:9;:20;;;;;;;;16898:21;16863:56;:112;;;;;16967:8;;16951:13;;:24;;;;:::i;:::-;16936:12;:39;16863:112;17063:10;;16843:132;;-1:-1:-1;;;;17063:10:0;;;;;:31;;-1:-1:-1;;;;;;17077:17:0;;;;;;:9;:17;;;;;;;;17063:31;:55;;;-1:-1:-1;;;;;;17098:20:0;;;;;;:9;:20;;;;;;;;17063:55;17059:727;;;17139:1;17133:7;;17059:727;;;17204:4;;-1:-1:-1;;;;;17191:17:0;;;17204:4;;17191:17;:34;;;;;17213:12;17212:13;17191:34;17187:599;;;17353:18;;:9;17308:19;17269;;:58;;17308:19;17269:58;:::i;:::-;:102;;;;:::i;:::-;17417:24;;;;;;;;17432:9;17417:24;;;;;;;;;;;;;;;;;;17242:129;;-1:-1:-1;17242:129:0;;-1:-1:-1;17417:24:0;-1:-1:-1;17187:599:0;;;17464:12;17459:327;;17590:14;;:5;17555:15;17520;;:50;;17555:15;17520:50;:::i;:::-;:84;;;;:::i;:::-;17651:20;;;;;;;;17666:5;17651:20;;;;;;;;;;;;;;;;;;17493:111;;-1:-1:-1;17493:111:0;;-1:-1:-1;17651:20:0;-1:-1:-1;17459:327:0;;;17693:12;17689:97;;;17732:9;;;-1:-1:-1;17732:9:0;;-1:-1:-1;17689:97:0;17824:3;17805:15;17814:6;17805;:15;:::i;:::-;17804:23;;;;:::i;:::-;17941:18;;17798:29;;-1:-1:-1;;;;17941:18:0;;;;:36;;;;-1:-1:-1;17973:4:0;;-1:-1:-1;;;;;17963:14:0;;;17973:4;;17963:14;;17941:36;17937:72;;;17979:30;17987:7;17996:12;17979:7;:30::i;:::-;18051:48;18067:6;18075:9;18086:12;18095:3;18086:6;:12;:::i;:::-;18051:15;:48::i;:::-;18114:7;;18110:249;;18186:11;;18182:164;;18218:17;18259:3;18239:16;18248:7;18239:6;:16;:::i;:::-;18238:24;;;;:::i;:::-;18218:44;;18281:49;18297:6;18313:4;18320:9;18281:15;:49::i;:::-;18199:147;18182:164;15503:2863;;;;;15381:2985;;;:::o;10714:173::-;10789:6;;;-1:-1:-1;;;;;10806:17:0;;;-1:-1:-1;;;;;;10806:17:0;;;;;;;10839:40;;10789:6;;;10806:17;10789:6;;10839:40;;10770:16;;10839:40;10759:128;10714:173;:::o;18374:1628::-;13036:10;;-1:-1:-1;;;13036:10:0;;;;13031:110;;13063:10;:17;;-1:-1:-1;;;;13063:17:0;-1:-1:-1;;;13063:17:0;;;18465:49;;18496:7:::1;18465:49;18570:4;18526:23;3772:18:::0;;;;;;;;;;;18610:23:::1;::::0;18591:42;::::1;18587:1408;;18680:1;18654:23;;:27;18650:109;;;-1:-1:-1::0;18720:23:0::1;::::0;18650:109:::1;18830:19;18852:11;:7:::0;18862:1:::1;18852:11;:::i;:::-;18830:33;;18878:32;18972:11;18932:9;:19;;;18914:15;:37;;;;:::i;:::-;18913:70;;;;:::i;:::-;18878:105:::0;-1:-1:-1;18998:14:0::1;19015:42;18878:105:::0;19015:15;:42:::1;:::i;:::-;18998:59:::0;-1:-1:-1;19099:21:0::1;19137:24;18998:59:::0;19137:16:::1;:24::i;:::-;19178:20;19201:38;19225:14:::0;19201:21:::1;:38;:::i;:::-;19178:61;;19254:19;19306:9;:19;;;19292:11;:33;;;;:::i;:::-;19276:50;::::0;:12;:50:::1;:::i;:::-;19254:72;;19341:29;19387:9;:19;;;19373:11;:33;;;;:::i;:::-;19341:65:::0;-1:-1:-1;19427:25:0;;19423:172:::1;;19518:61;19531:24;19557:21;19518:12;:61::i;:::-;19652:19:::0;;19611:20:::1;::::0;19634:15:::1;:11:::0;19648:1:::1;19634:15;:::i;:::-;:37;;;;:::i;:::-;19611:60:::0;-1:-1:-1;19690:16:0;;19686:105:::1;;19735:15;::::0;19727:48:::1;::::0;-1:-1:-1;;;;;19735:15:0::1;19762:12:::0;19727:34:::1;:48::i;:::-;19847:18;::::0;::::1;::::0;19807:19:::1;::::0;19829:15:::1;:11:::0;19843:1:::1;19829:15;:::i;:::-;:36;;;;:::i;:::-;19807:58:::0;-1:-1:-1;19884:15:0;;19880:102:::1;;19928:14;::::0;19920:46:::1;::::0;-1:-1:-1;;;;;19928:14:0::1;19954:11:::0;19920:33:::1;:46::i;:::-;18635:1360;;;;;;;;;18587:1408;18452:1550;13095:1;13111:10:::0;:18;;-1:-1:-1;;;;13111:18:0;;;18374:1628;;:::o;7803:578::-;-1:-1:-1;;;;;7943:20:0;;7935:70;;;;-1:-1:-1;;;7935:70:0;;18396:2:1;7935:70:0;;;18378:21:1;18435:2;18415:18;;;18408:30;18474:34;18454:18;;;18447:62;-1:-1:-1;;;18525:18:1;;;18518:35;18570:19;;7935:70:0;18194:401:1;7935:70:0;-1:-1:-1;;;;;8024:23:0;;8016:71;;;;-1:-1:-1;;;8016:71:0;;18802:2:1;8016:71:0;;;18784:21:1;18841:2;18821:18;;;18814:30;18880:34;18860:18;;;18853:62;-1:-1:-1;;;18931:18:1;;;18924:33;18974:19;;8016:71:0;18600:399:1;8016:71:0;-1:-1:-1;;;;;8124:17:0;;8100:21;8124:17;;;;;;;;;;;8160:23;;;;8152:74;;;;-1:-1:-1;;;8152:74:0;;19206:2:1;8152:74:0;;;19188:21:1;19245:2;19225:18;;;19218:30;19284:34;19264:18;;;19257:62;-1:-1:-1;;;19335:18:1;;;19328:36;19381:19;;8152:74:0;19004:402:1;8152:74:0;8257:22;8273:6;8257:13;:22;:::i;:::-;-1:-1:-1;;;;;8237:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8290:20;;;;;;;;:30;;8314:6;;8237:9;8290:30;;8314:6;;8290:30;:::i;:::-;;;;;;;;8355:9;-1:-1:-1;;;;;8338:35:0;8347:6;-1:-1:-1;;;;;8338:35:0;;8366:6;8338:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;8338:35:0;;;;;;;;7924:457;7803:578;;;:::o;20010:534::-;20160:16;;;20174:1;20160:16;;;;;;;;20136:21;;20160:16;;;;;;;;;;-1:-1:-1;20160:16:0;20136:40;;20205:4;20187;20192:1;20187:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20187:23:0;;;:7;;;;;;;;;;:23;;;;20231:6;;:13;;;-1:-1:-1;;;20231:13:0;;;;:6;;;;;:11;;:13;;;;;20187:7;;20231:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20221:4;20226:1;20221:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20221:23:0;;;:7;;;;;;;;;:23;20289:6;;20257:53;;20274:4;;20289:6;20298:11;20257:8;:53::i;:::-;20349:6;;:187;;-1:-1:-1;;;20349:187:0;;-1:-1:-1;;;;;20349:6:0;;;;:57;;:187;;20421:11;;20349:6;;20463:4;;20490;;20510:15;;20349:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20065:479;20010:534;:::o;20552:497::-;20732:6;;20700:53;;20717:4;;-1:-1:-1;;;;;20732:6:0;20741:11;20700:8;:53::i;:::-;20796:6;;-1:-1:-1;;;;;20796:6:0;:22;20827:9;20861:4;20881:11;20796:6;;20993:7;10262:6;;-1:-1:-1;;;;;10262:6:0;;10189:87;20993:7;20796:245;;;;;;-1:-1:-1;;;;;;20796:245:0;;;-1:-1:-1;;;;;21011:15:1;;;20796:245:0;;;20993:34:1;21043:18;;;21036:34;;;;21086:18;;;21079:34;;;;21129:18;;;21122:34;21193:15;;;21172:19;;;21165:44;21015:15:0;21225:19:1;;;21218:35;20927:19;;20796:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20552:497;;:::o;9632:319::-;9747:6;9722:21;:31;;9714:73;;;;-1:-1:-1;;;9714:73:0;;21777:2:1;9714:73:0;;;21759:21:1;21816:2;21796:18;;;21789:30;21855:31;21835:18;;;21828:59;21904:18;;9714:73:0;21575:353:1;9714:73:0;9801:12;9819:9;-1:-1:-1;;;;;9819:14:0;9842:6;9819:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9800:54;;;9873:7;9865:78;;;;-1:-1:-1;;;9865:78:0;;22345:2:1;9865:78:0;;;22327:21:1;22384:2;22364:18;;;22357:30;22423:34;22403:18;;;22396:62;22494:28;22474:18;;;22467:56;22540:19;;9865:78:0;22143:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:241::-;2994:6;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3102:9;3089:23;3121:28;3143:5;3121:28;:::i;:::-;3168:5;2938:241;-1:-1:-1;;;2938:241:1:o;3366:456::-;3443:6;3451;3459;3512:2;3500:9;3491:7;3487:23;3483:32;3480:52;;;3528:1;3525;3518:12;3480:52;3567:9;3554:23;3586:31;3611:5;3586:31;:::i;:::-;3636:5;-1:-1:-1;3693:2:1;3678:18;;3665:32;3706:33;3665:32;3706:33;:::i;:::-;3366:456;;3758:7;;-1:-1:-1;;;3812:2:1;3797:18;;;;3784:32;;3366:456::o;4016:382::-;4081:6;4089;4142:2;4130:9;4121:7;4117:23;4113:32;4110:52;;;4158:1;4155;4148:12;4110:52;4197:9;4184:23;4216:31;4241:5;4216:31;:::i;:::-;4266:5;-1:-1:-1;4323:2:1;4308:18;;4295:32;4336:30;4295:32;4336:30;:::i;:::-;4385:7;4375:17;;;4016:382;;;;;:::o;4403:180::-;4462:6;4515:2;4503:9;4494:7;4490:23;4486:32;4483:52;;;4531:1;4528;4521:12;4483:52;-1:-1:-1;4554:23:1;;4403:180;-1:-1:-1;4403:180:1:o;4796:247::-;4855:6;4908:2;4896:9;4887:7;4883:23;4879:32;4876:52;;;4924:1;4921;4914:12;4876:52;4963:9;4950:23;4982:31;5007:5;4982:31;:::i;5372:388::-;5440:6;5448;5501:2;5489:9;5480:7;5476:23;5472:32;5469:52;;;5517:1;5514;5507:12;5469:52;5556:9;5543:23;5575:31;5600:5;5575:31;:::i;:::-;5625:5;-1:-1:-1;5682:2:1;5667:18;;5654:32;5695:33;5654:32;5695:33;:::i;5765:316::-;5842:6;5850;5858;5911:2;5899:9;5890:7;5886:23;5882:32;5879:52;;;5927:1;5924;5917:12;5879:52;-1:-1:-1;;5950:23:1;;;6020:2;6005:18;;5992:32;;-1:-1:-1;6071:2:1;6056:18;;;6043:32;;5765:316;-1:-1:-1;5765:316:1:o;6086:309::-;6151:6;6159;6212:2;6200:9;6191:7;6187:23;6183:32;6180:52;;;6228:1;6225;6218:12;6180:52;6267:9;6254:23;6286:28;6308:5;6286:28;:::i;6623:380::-;6702:1;6698:12;;;;6745;;;6766:61;;6820:4;6812:6;6808:17;6798:27;;6766:61;6873:2;6865:6;6862:14;6842:18;6839:38;6836:161;;6919:10;6914:3;6910:20;6907:1;6900:31;6954:4;6951:1;6944:15;6982:4;6979:1;6972:15;6836:161;;6623:380;;;:::o;7008:356::-;7210:2;7192:21;;;7229:18;;;7222:30;7288:34;7283:2;7268:18;;7261:62;7355:2;7340:18;;7008:356::o;7369:127::-;7430:10;7425:3;7421:20;7418:1;7411:31;7461:4;7458:1;7451:15;7485:4;7482:1;7475:15;7501:127;7562:10;7557:3;7553:20;7550:1;7543:31;7593:4;7590:1;7583:15;7617:4;7614:1;7607:15;7633:135;7672:3;7693:17;;;7690:43;;7713:18;;:::i;:::-;-1:-1:-1;7760:1:1;7749:13;;7633:135::o;8535:128::-;8602:9;;;8623:11;;;8620:37;;;8637:18;;:::i;8668:125::-;8733:9;;;8754:10;;;8751:36;;;8767:18;;:::i;9229:422::-;9318:1;9361:5;9318:1;9375:270;9396:7;9386:8;9383:21;9375:270;;;9455:4;9451:1;9447:6;9443:17;9437:4;9434:27;9431:53;;;9464:18;;:::i;:::-;9514:7;9504:8;9500:22;9497:55;;;9534:16;;;;9497:55;9613:22;;;;9573:15;;;;9375:270;;;9379:3;9229:422;;;;;:::o;9656:806::-;9705:5;9735:8;9725:80;;-1:-1:-1;9776:1:1;9790:5;;9725:80;9824:4;9814:76;;-1:-1:-1;9861:1:1;9875:5;;9814:76;9906:4;9924:1;9919:59;;;;9992:1;9987:130;;;;9899:218;;9919:59;9949:1;9940:10;;9963:5;;;9987:130;10024:3;10014:8;10011:17;10008:43;;;10031:18;;:::i;:::-;-1:-1:-1;;10087:1:1;10073:16;;10102:5;;9899:218;;10201:2;10191:8;10188:16;10182:3;10176:4;10173:13;10169:36;10163:2;10153:8;10150:16;10145:2;10139:4;10136:12;10132:35;10129:77;10126:159;;;-1:-1:-1;10238:19:1;;;10270:5;;10126:159;10317:34;10342:8;10336:4;10317:34;:::i;:::-;10387:6;10383:1;10379:6;10375:19;10366:7;10363:32;10360:58;;;10398:18;;:::i;:::-;10436:20;;9656:806;-1:-1:-1;;;9656:806:1:o;10467:140::-;10525:5;10554:47;10595:4;10585:8;10581:19;10575:4;10554:47;:::i;10612:168::-;10685:9;;;10716;;10733:15;;;10727:22;;10713:37;10703:71;;10754:18;;:::i;11191:398::-;11393:2;11375:21;;;11432:2;11412:18;;;11405:30;11471:34;11466:2;11451:18;;11444:62;-1:-1:-1;;;11537:2:1;11522:18;;11515:32;11579:3;11564:19;;11191:398::o;11873:245::-;11940:6;11993:2;11981:9;11972:7;11968:23;11964:32;11961:52;;;12009:1;12006;11999:12;11961:52;12041:9;12035:16;12060:28;12082:5;12060:28;:::i;17972:217::-;18012:1;18038;18028:132;;18082:10;18077:3;18073:20;18070:1;18063:31;18117:4;18114:1;18107:15;18145:4;18142:1;18135:15;18028:132;-1:-1:-1;18174:9:1;;17972:217::o;19411:251::-;19481:6;19534:2;19522:9;19513:7;19509:23;19505:32;19502:52;;;19550:1;19547;19540:12;19502:52;19582:9;19576:16;19601:31;19626:5;19601:31;:::i;19667:980::-;19929:4;19977:3;19966:9;19962:19;20008:6;19997:9;19990:25;20034:2;20072:6;20067:2;20056:9;20052:18;20045:34;20115:3;20110:2;20099:9;20095:18;20088:31;20139:6;20174;20168:13;20205:6;20197;20190:22;20243:3;20232:9;20228:19;20221:26;;20282:2;20274:6;20270:15;20256:29;;20303:1;20313:195;20327:6;20324:1;20321:13;20313:195;;;20392:13;;-1:-1:-1;;;;;20388:39:1;20376:52;;20483:15;;;;20448:12;;;;20424:1;20342:9;20313:195;;;-1:-1:-1;;;;;;;20564:32:1;;;;20559:2;20544:18;;20537:60;-1:-1:-1;;;20628:3:1;20613:19;20606:35;20525:3;19667:980;-1:-1:-1;;;19667:980:1:o;21264:306::-;21352:6;21360;21368;21421:2;21409:9;21400:7;21396:23;21392:32;21389:52;;;21437:1;21434;21427:12;21389:52;21466:9;21460:16;21450:26;;21516:2;21505:9;21501:18;21495:25;21485:35;;21560:2;21549:9;21545:18;21539:25;21529:35;;21264:306;;;;;:::o

Swarm Source

ipfs://56e5b8eb7c82c2bc820966cd4d1150abaeb76c0404964fd5d792b4d26e3bcaf3
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.