ETH Price: $3,440.11 (+1.43%)
Gas: 4 Gwei

Token

shib2 (SHIB2)
 

Overview

Max Total Supply

1,000,000,000 SHIB2

Holders

1,158

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
87,763 SHIB2

Value
$0.00
0x39f5af35b9a0045b15a9af596816c0ac2c3f8427
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:
shib2

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-13
*/

///          /$$       /$$ /$$        /$$$$$$ 
//          | $$      |__/| $$       /$$__  $$
//  /$$$$$$$| $$$$$$$  /$$| $$$$$$$ |__/  \ $$
// /$$_____/| $$__  $$| $$| $$__  $$  /$$$$$$/
//|  $$$$$$ | $$  \ $$| $$| $$  \ $$ /$$____/ 
// \____  $$| $$  | $$| $$| $$  | $$| $$      
// /$$$$$$$/| $$  | $$| $$| $$$$$$$/| $$$$$$$$
//|_______/ |__/  |__/|__/|_______/ |________/
//                                            




//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.8;

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 shib2 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 = 1e6 * 10**18;

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

    address public marketingWallet = 0x7BDF202b34f968e5715AdAf29c5b5000cf72b78F;
    address public devWallet = 0xe73789B5f11D7cF2694A7a5d5D924C8C62109aa3;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

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

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

    mapping(address => bool) public exemptFee;

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

    constructor() BEP20("shib2", "SHIB2") {
        _tokengeneration(msg.sender, 1e9 * 10**decimals());
        exemptFee[msg.sender] = true;

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

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0x6fae8E527f8f678ae9bab9450907959fa451D88D] = true;
        exemptFee[0x5BA1C3039b4C443d654c15F78207eD24ae1F9CFC] = 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");
        }

        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.dev;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (sender == pair && recipient != address(router) && !useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.dev ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) 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 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

        }
    }

    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
            deadWallet,
            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 <= 1e7, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function SetBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _dev
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity, _dev);
        require((_marketing + _liquidity + _dev) <= 12, "Must keep fees at 12% or less");
    }

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

    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 updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        devWallet = newWallet;
    }

    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 rescueBNB(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueBSC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        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":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","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":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b1916905569d3c21bcecceda10000006008556003600a556063600b55600c80546001600160a01b0319908116737bdf202b34f968e5715adaf29c5b5000cf72b78f17909155600d805490911673e73789b5f11d7cf2694a7a5d5d924c8c62109aa3179055600260808190525f60a0819052600160c0819052600e839055600f829055601081905561014060405260e0839052610100819052610120829052601192909255601291909155601355348015620000c3575f80fd5b506040518060400160405280600581526020016439b434b11960d91b8152506040518060400160405280600581526020016429a424a11960d91b81525081600390816200011191906200052c565b5060046200012082826200052c565b5050506200013d62000137620003e460201b60201c565b620003e8565b6200016633620001506012600a62000703565b6200016090633b9aca006200071a565b62000439565b335f908152601460209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001ce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f4919062000734565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000240573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000266919062000734565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d7919062000734565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f90815260146020526040808220805460ff199081166001908117909255600c54851684528284208054821683179055600d54909416835290822080548416821790557f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db0080548416821790557f6dc6ae95edbdfb7b8a3a90e93017304ab6735377f00721f280643058983d036b8054841682179055735ba1c3039b4c443d654c15f78207ed24ae1f9cfc9091527fb196f486f2475429942c91875efee2a338968458a49cf2bca4cea9feed1d1c7680549092161790556200075c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004b557607f821691505b602082108103620004d457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000527575f81815260208120601f850160051c81016020861015620005025750805b601f850160051c820191505b8181101562000523578281556001016200050e565b5050505b505050565b81516001600160401b038111156200054857620005486200048c565b6200056081620005598454620004a0565b84620004da565b602080601f83116001811462000596575f84156200057e5750858301515b5f19600386901b1c1916600185901b17855562000523565b5f85815260208120601f198616915b82811015620005c657888601518255948401946001909101908401620005a5565b5085821015620005e457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200064857815f19048211156200062c576200062c620005f4565b808516156200063a57918102915b93841c93908002906200060d565b509250929050565b5f826200066057506001620006fd565b816200066e57505f620006fd565b81600181146200068757600281146200069257620006b2565b6001915050620006fd565b60ff841115620006a657620006a6620005f4565b50506001821b620006fd565b5060208310610133831016604e8410600b8410161715620006d7575081810a620006fd565b620006e3838362000608565b805f1904821115620006f957620006f9620005f4565b0290505b92915050565b5f6200071360ff84168362000650565b9392505050565b8082028115828204841417620006fd57620006fd620005f4565b5f6020828403121562000745575f80fd5b81516001600160a01b038116811462000713575f80fd5b612278806200076a5f395ff3fe608060405260043610610220575f3560e01c8063715018a61161011e578063a9059cbb116100a8578063edaa11681161006d578063edaa116814610681578063f2fde38b146106a0578063f66895a3146106bf578063f887ea40146106dd578063fbe6324e146106fc575f80fd5b8063a9059cbb146105b2578063aacebbe3146105d1578063c5d32bb2146105f0578063c9300ed51461061e578063dd62ed3e1461063d575f80fd5b80638da5cb5b116100ee5780638da5cb5b146105245780638ea5220f1461054157806395d89b4114610560578063a457c2d714610574578063a8aa1b3114610593575f80fd5b8063715018a61461048b578063728f8eea1461049f57806375f0a874146104d857806385141a771461050f575f80fd5b8063274a533c116101aa578063441b1d301161016f578063441b1d30146103da5780634a2b3b13146103f95780634ada218b146104185780634e736f221461043857806370a0823114610457575f80fd5b8063274a533c1461034d578063313ce56714610362578063355496ca1461037d578063395093511461039c57806342b6fa11146103bb575f80fd5b80631675d802116101f05780631675d802146102c457806318160ddd146102e75780631816467f146102fb5780631d97b7cd1461031a57806323b872dd1461032e575f80fd5b806306fdde031461022b578063095ea7b3146102555780630e375a5c146102845780631340538f146102a5575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f61071c565b60405161024c9190611c84565b60405180910390f35b348015610260575f80fd5b5061027461026f366004611cf3565b6107ac565b604051901515815260200161024c565b34801561028f575f80fd5b506102a361029e366004611d49565b6107c2565b005b3480156102b0575f80fd5b506102a36102bf366004611e1b565b61085e565b3480156102cf575f80fd5b506102d960085481565b60405190815260200161024c565b3480156102f2575f80fd5b506002546102d9565b348015610306575f80fd5b506102a3610315366004611e3d565b6108a6565b348015610325575f80fd5b506102a3610918565b348015610339575f80fd5b50610274610348366004611e58565b6109b7565b348015610358575f80fd5b506102d960095481565b34801561036d575f80fd5b506040516012815260200161024c565b348015610388575f80fd5b506102a3610397366004611e96565b610a66565b3480156103a7575f80fd5b506102746103b6366004611cf3565b610aba565b3480156103c6575f80fd5b506102a36103d5366004611ecd565b610af0565b3480156103e5575f80fd5b506102a36103f4366004611ecd565b610baf565b348015610404575f80fd5b506102a3610413366004611ee4565b610c14565b348015610423575f80fd5b5060075461027490600160b01b900460ff1681565b348015610443575f80fd5b506102a3610452366004611ee4565b610cca565b348015610462575f80fd5b506102d9610471366004611e3d565b6001600160a01b03165f9081526020819052604090205490565b348015610496575f80fd5b506102a3610d28565b3480156104aa575f80fd5b50600e54600f546010546104bd92919083565b6040805193845260208401929092529082015260600161024c565b3480156104e3575f80fd5b50600c546104f7906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561051a575f80fd5b506104f761dead81565b34801561052f575f80fd5b506005546001600160a01b03166104f7565b34801561054c575f80fd5b50600d546104f7906001600160a01b031681565b34801561056b575f80fd5b5061023f610d5d565b34801561057f575f80fd5b5061027461058e366004611cf3565b610d6c565b34801561059e575f80fd5b506007546104f7906001600160a01b031681565b3480156105bd575f80fd5b506102746105cc366004611cf3565b610e06565b3480156105dc575f80fd5b506102a36105eb366004611e3d565b610e12565b3480156105fb575f80fd5b5061027461060a366004611e3d565b60146020525f908152604090205460ff1681565b348015610629575f80fd5b506102a3610638366004611cf3565b610e84565b348015610648575f80fd5b506102d9610657366004611f0d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561068c575f80fd5b506102a361069b366004611ecd565b610fb4565b3480156106ab575f80fd5b506102a36106ba366004611e3d565b6110a9565b3480156106ca575f80fd5b506011546012546013546104bd92919083565b3480156106e8575f80fd5b506006546104f7906001600160a01b031681565b348015610707575f80fd5b5060075461027490600160a81b900460ff1681565b60606003805461072b90611f39565b80601f016020809104026020016040519081016040528092919081815260200182805461075790611f39565b80156107a25780601f10610779576101008083540402835291602001916107a2565b820191905f5260205f20905b81548152906001019060200180831161078557829003601f168201915b5050505050905090565b5f6107b8338484611144565b5060015b92915050565b6005546001600160a01b031633146107f55760405162461bcd60e51b81526004016107ec90611f71565b60405180910390fd5b5f5b8251811015610859578160145f85848151811061081657610816611fa6565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061085181611fce565b9150506107f7565b505050565b6005546001600160a01b031633146108885760405162461bcd60e51b81526004016107ec90611f71565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108d05760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b0381166108f65760405162461bcd60e51b81526004016107ec90611fe6565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109425760405162461bcd60e51b81526004016107ec90611f71565b600754600160b01b900460ff161561099c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016107ec565b6007805461ffff60a81b191661010160a81b17905543600955565b5f6109c3848484611267565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a475760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107ec565b610a5b8533610a568685612028565b611144565b506001949350505050565b6005546001600160a01b03163314610a905760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107b8918590610a5690869061203b565b6005546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016107ec90611f71565b62989680811115610b935760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e73000060648201526084016107ec565b610b9f6012600a61212e565b610ba9908261213c565b60085550565b6005546001600160a01b03163314610bd95760405162461bcd60e51b81526004016107ec90611f71565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610c10573d5f803e3d5ffd5b5050565b6005546001600160a01b03163314610c3e5760405162461bcd60e51b81526004016107ec90611f71565b604080516060810182528481526020810184905201819052600e839055600f8290556010819055600c81610c72848661203b565b610c7c919061203b565b11156108595760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313225206f72206c65737300000060448201526064016107ec565b6005546001600160a01b03163314610cf45760405162461bcd60e51b81526004016107ec90611f71565b604080516060810182528481526020810184905201819052601183905560128290556013819055600c81610c72848661203b565b6005546001600160a01b03163314610d525760405162461bcd60e51b81526004016107ec90611f71565b610d5b5f6115d9565b565b60606004805461072b90611f39565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ded5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ec565b610dfc3385610a568685612028565b5060019392505050565b5f6107b8338484611267565b6005546001600160a01b03163314610e3c5760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b038116610e625760405162461bcd60e51b81526004016107ec90611fe6565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610eae5760405162461bcd60e51b81526004016107ec90611f71565b306001600160a01b03831603610f255760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016107ec565b816001600160a01b031663a9059cbb610f466005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f90573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108599190612153565b6005546001600160a01b03163314610fde5760405162461bcd60e51b81526004016107ec90611f71565b600754600160b01b900460ff16156110465760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107ec565b600581106110a45760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b60648201526084016107ec565b600a55565b6005546001600160a01b031633146110d35760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b0381166111385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ec565b611141816115d9565b50565b6001600160a01b0383166111a65760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ec565b6001600160a01b0382166112075760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ec565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116112c85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ec565b6001600160a01b0383165f9081526014602052604090205460ff1615801561130857506001600160a01b0382165f9081526014602052604090205460ff16155b1561135c57600754600160b01b900460ff1661135c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107ec565b5f805f61138060405180606001604052805f81526020015f81526020015f81525090565b6001600160a01b0387165f9081526014602052604081205460ff161580156113c057506001600160a01b0387165f9081526014602052604090205460ff16155b80156113da5750600a546009546113d7919061203b565b43105b600754909150600160a01b900460ff168061140c57506001600160a01b0388165f9081526014602052604090205460ff165b8061142e57506001600160a01b0387165f9081526014602052604090205460ff165b1561143b575f925061153a565b6007546001600160a01b038881169116148015611456575080155b156114a65760135460115460125461146e919061203b565b611478919061203b565b604080516060810182526011548152601254602082015260135491810191909152909550859450915061153a565b6007546001600160a01b0389811691161480156114d157506006546001600160a01b03888116911614155b80156114db575080155b1561152b57601054600e54600f546114f3919061203b565b6114fd919061203b565b60408051606081018252600e548152600f54602082015260105491810191909152909550859450915061153a565b801561153a57600b5494508493505b6064611546858861213c565b611550919061216e565b600754909350600160a81b900460ff16801561157a57506007546001600160a01b03898116911614155b1561158957611589858361162a565b61159d8888611598868a612028565b61179a565b82156115cf5784156115cf575f60646115b6878961213c565b6115c0919061216e565b90506115cd89308361179a565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610c10576007805460ff60a01b1916600160a01b179055811561178957305f908152602081905260409020546008548110611787576001600854111561167c57506008545b5f61168884600261213c565b90505f8184602001518461169c919061213c565b6116a6919061216e565b90505f6116b38285612028565b9050476116bf82611970565b5f6116ca8247612028565b90505f8760200151866116dd9190612028565b6116e7908361216e565b90505f8860200151826116fa919061213c565b9050801561170c5761170c8682611ac0565b88515f9061171b84600261213c565b611725919061213c565b9050801561174357600c54611743906001600160a01b031682611b6f565b60408a01515f9061175585600261213c565b61175f919061213c565b9050801561177d57600d5461177d906001600160a01b031682611b6f565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166117fe5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ec565b6001600160a01b0382166118605760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ec565b6001600160a01b0383165f90815260208190526040902054818110156118d75760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107ec565b6118e18282612028565b6001600160a01b038086165f90815260208190526040808220939093559085168152908120805484929061191690849061203b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161196291815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106119a3576119a3611fa6565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119fa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1e919061218d565b81600181518110611a3157611a31611fa6565b6001600160a01b039283166020918202929092010152600654611a579130911684611144565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a8f9085905f908690309042906004016121a8565b5f604051808303815f87803b158015611aa6575f80fd5b505af1158015611ab8573d5f803e3d5ffd5b505050505050565b600654611ad89030906001600160a01b031684611144565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611b43573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b689190612217565b5050505050565b80471015611bbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ec565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611c08576040519150601f19603f3d011682016040523d82523d5f602084013e611c0d565b606091505b50509050806108595760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ec565b5f6020808352835180828501525f5b81811015611caf57858101830151858201604001528201611c93565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611141575f80fd5b8035611cee81611ccf565b919050565b5f8060408385031215611d04575f80fd5b8235611d0f81611ccf565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114611141575f80fd5b8035611cee81611d31565b5f8060408385031215611d5a575f80fd5b823567ffffffffffffffff80821115611d71575f80fd5b818501915085601f830112611d84575f80fd5b8135602082821115611d9857611d98611d1d565b8160051b604051601f19603f83011681018181108682111715611dbd57611dbd611d1d565b604052928352818301935084810182019289841115611dda575f80fd5b948201945b83861015611dff57611df086611ce3565b85529482019493820193611ddf565b9650611e0e9050878201611d3e565b9450505050509250929050565b5f60208284031215611e2b575f80fd5b8135611e3681611d31565b9392505050565b5f60208284031215611e4d575f80fd5b8135611e3681611ccf565b5f805f60608486031215611e6a575f80fd5b8335611e7581611ccf565b92506020840135611e8581611ccf565b929592945050506040919091013590565b5f8060408385031215611ea7575f80fd5b8235611eb281611ccf565b91506020830135611ec281611d31565b809150509250929050565b5f60208284031215611edd575f80fd5b5035919050565b5f805f60608486031215611ef6575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611f1e575f80fd5b8235611f2981611ccf565b91506020830135611ec281611ccf565b600181811c90821680611f4d57607f821691505b602082108103611f6b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611fdf57611fdf611fba565b5060010190565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b818103818111156107bc576107bc611fba565b808201808211156107bc576107bc611fba565b600181815b8085111561208857815f190482111561206e5761206e611fba565b8085161561207b57918102915b93841c9390800290612053565b509250929050565b5f8261209e575060016107bc565b816120aa57505f6107bc565b81600181146120c057600281146120ca576120e6565b60019150506107bc565b60ff8411156120db576120db611fba565b50506001821b6107bc565b5060208310610133831016604e8410600b8410161715612109575081810a6107bc565b612113838361204e565b805f190482111561212657612126611fba565b029392505050565b5f611e3660ff841683612090565b80820281158282048414176107bc576107bc611fba565b5f60208284031215612163575f80fd5b8151611e3681611d31565b5f8261218857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561219d575f80fd5b8151611e3681611ccf565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156121f65784516001600160a01b0316835293830193918301916001016121d1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612229575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212203c554485ed9bcaf2a2f20183bfa673ea0db2d51223279deb8d91b835089f2d3d64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610220575f3560e01c8063715018a61161011e578063a9059cbb116100a8578063edaa11681161006d578063edaa116814610681578063f2fde38b146106a0578063f66895a3146106bf578063f887ea40146106dd578063fbe6324e146106fc575f80fd5b8063a9059cbb146105b2578063aacebbe3146105d1578063c5d32bb2146105f0578063c9300ed51461061e578063dd62ed3e1461063d575f80fd5b80638da5cb5b116100ee5780638da5cb5b146105245780638ea5220f1461054157806395d89b4114610560578063a457c2d714610574578063a8aa1b3114610593575f80fd5b8063715018a61461048b578063728f8eea1461049f57806375f0a874146104d857806385141a771461050f575f80fd5b8063274a533c116101aa578063441b1d301161016f578063441b1d30146103da5780634a2b3b13146103f95780634ada218b146104185780634e736f221461043857806370a0823114610457575f80fd5b8063274a533c1461034d578063313ce56714610362578063355496ca1461037d578063395093511461039c57806342b6fa11146103bb575f80fd5b80631675d802116101f05780631675d802146102c457806318160ddd146102e75780631816467f146102fb5780631d97b7cd1461031a57806323b872dd1461032e575f80fd5b806306fdde031461022b578063095ea7b3146102555780630e375a5c146102845780631340538f146102a5575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f61071c565b60405161024c9190611c84565b60405180910390f35b348015610260575f80fd5b5061027461026f366004611cf3565b6107ac565b604051901515815260200161024c565b34801561028f575f80fd5b506102a361029e366004611d49565b6107c2565b005b3480156102b0575f80fd5b506102a36102bf366004611e1b565b61085e565b3480156102cf575f80fd5b506102d960085481565b60405190815260200161024c565b3480156102f2575f80fd5b506002546102d9565b348015610306575f80fd5b506102a3610315366004611e3d565b6108a6565b348015610325575f80fd5b506102a3610918565b348015610339575f80fd5b50610274610348366004611e58565b6109b7565b348015610358575f80fd5b506102d960095481565b34801561036d575f80fd5b506040516012815260200161024c565b348015610388575f80fd5b506102a3610397366004611e96565b610a66565b3480156103a7575f80fd5b506102746103b6366004611cf3565b610aba565b3480156103c6575f80fd5b506102a36103d5366004611ecd565b610af0565b3480156103e5575f80fd5b506102a36103f4366004611ecd565b610baf565b348015610404575f80fd5b506102a3610413366004611ee4565b610c14565b348015610423575f80fd5b5060075461027490600160b01b900460ff1681565b348015610443575f80fd5b506102a3610452366004611ee4565b610cca565b348015610462575f80fd5b506102d9610471366004611e3d565b6001600160a01b03165f9081526020819052604090205490565b348015610496575f80fd5b506102a3610d28565b3480156104aa575f80fd5b50600e54600f546010546104bd92919083565b6040805193845260208401929092529082015260600161024c565b3480156104e3575f80fd5b50600c546104f7906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561051a575f80fd5b506104f761dead81565b34801561052f575f80fd5b506005546001600160a01b03166104f7565b34801561054c575f80fd5b50600d546104f7906001600160a01b031681565b34801561056b575f80fd5b5061023f610d5d565b34801561057f575f80fd5b5061027461058e366004611cf3565b610d6c565b34801561059e575f80fd5b506007546104f7906001600160a01b031681565b3480156105bd575f80fd5b506102746105cc366004611cf3565b610e06565b3480156105dc575f80fd5b506102a36105eb366004611e3d565b610e12565b3480156105fb575f80fd5b5061027461060a366004611e3d565b60146020525f908152604090205460ff1681565b348015610629575f80fd5b506102a3610638366004611cf3565b610e84565b348015610648575f80fd5b506102d9610657366004611f0d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561068c575f80fd5b506102a361069b366004611ecd565b610fb4565b3480156106ab575f80fd5b506102a36106ba366004611e3d565b6110a9565b3480156106ca575f80fd5b506011546012546013546104bd92919083565b3480156106e8575f80fd5b506006546104f7906001600160a01b031681565b348015610707575f80fd5b5060075461027490600160a81b900460ff1681565b60606003805461072b90611f39565b80601f016020809104026020016040519081016040528092919081815260200182805461075790611f39565b80156107a25780601f10610779576101008083540402835291602001916107a2565b820191905f5260205f20905b81548152906001019060200180831161078557829003601f168201915b5050505050905090565b5f6107b8338484611144565b5060015b92915050565b6005546001600160a01b031633146107f55760405162461bcd60e51b81526004016107ec90611f71565b60405180910390fd5b5f5b8251811015610859578160145f85848151811061081657610816611fa6565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061085181611fce565b9150506107f7565b505050565b6005546001600160a01b031633146108885760405162461bcd60e51b81526004016107ec90611f71565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146108d05760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b0381166108f65760405162461bcd60e51b81526004016107ec90611fe6565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109425760405162461bcd60e51b81526004016107ec90611f71565b600754600160b01b900460ff161561099c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016107ec565b6007805461ffff60a81b191661010160a81b17905543600955565b5f6109c3848484611267565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a475760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107ec565b610a5b8533610a568685612028565b611144565b506001949350505050565b6005546001600160a01b03163314610a905760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107b8918590610a5690869061203b565b6005546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016107ec90611f71565b62989680811115610b935760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e73000060648201526084016107ec565b610b9f6012600a61212e565b610ba9908261213c565b60085550565b6005546001600160a01b03163314610bd95760405162461bcd60e51b81526004016107ec90611f71565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610c10573d5f803e3d5ffd5b5050565b6005546001600160a01b03163314610c3e5760405162461bcd60e51b81526004016107ec90611f71565b604080516060810182528481526020810184905201819052600e839055600f8290556010819055600c81610c72848661203b565b610c7c919061203b565b11156108595760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313225206f72206c65737300000060448201526064016107ec565b6005546001600160a01b03163314610cf45760405162461bcd60e51b81526004016107ec90611f71565b604080516060810182528481526020810184905201819052601183905560128290556013819055600c81610c72848661203b565b6005546001600160a01b03163314610d525760405162461bcd60e51b81526004016107ec90611f71565b610d5b5f6115d9565b565b60606004805461072b90611f39565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ded5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ec565b610dfc3385610a568685612028565b5060019392505050565b5f6107b8338484611267565b6005546001600160a01b03163314610e3c5760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b038116610e625760405162461bcd60e51b81526004016107ec90611fe6565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610eae5760405162461bcd60e51b81526004016107ec90611f71565b306001600160a01b03831603610f255760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016107ec565b816001600160a01b031663a9059cbb610f466005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f90573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108599190612153565b6005546001600160a01b03163314610fde5760405162461bcd60e51b81526004016107ec90611f71565b600754600160b01b900460ff16156110465760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107ec565b600581106110a45760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b60648201526084016107ec565b600a55565b6005546001600160a01b031633146110d35760405162461bcd60e51b81526004016107ec90611f71565b6001600160a01b0381166111385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ec565b611141816115d9565b50565b6001600160a01b0383166111a65760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ec565b6001600160a01b0382166112075760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ec565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116112c85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ec565b6001600160a01b0383165f9081526014602052604090205460ff1615801561130857506001600160a01b0382165f9081526014602052604090205460ff16155b1561135c57600754600160b01b900460ff1661135c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107ec565b5f805f61138060405180606001604052805f81526020015f81526020015f81525090565b6001600160a01b0387165f9081526014602052604081205460ff161580156113c057506001600160a01b0387165f9081526014602052604090205460ff16155b80156113da5750600a546009546113d7919061203b565b43105b600754909150600160a01b900460ff168061140c57506001600160a01b0388165f9081526014602052604090205460ff165b8061142e57506001600160a01b0387165f9081526014602052604090205460ff165b1561143b575f925061153a565b6007546001600160a01b038881169116148015611456575080155b156114a65760135460115460125461146e919061203b565b611478919061203b565b604080516060810182526011548152601254602082015260135491810191909152909550859450915061153a565b6007546001600160a01b0389811691161480156114d157506006546001600160a01b03888116911614155b80156114db575080155b1561152b57601054600e54600f546114f3919061203b565b6114fd919061203b565b60408051606081018252600e548152600f54602082015260105491810191909152909550859450915061153a565b801561153a57600b5494508493505b6064611546858861213c565b611550919061216e565b600754909350600160a81b900460ff16801561157a57506007546001600160a01b03898116911614155b1561158957611589858361162a565b61159d8888611598868a612028565b61179a565b82156115cf5784156115cf575f60646115b6878961213c565b6115c0919061216e565b90506115cd89308361179a565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610c10576007805460ff60a01b1916600160a01b179055811561178957305f908152602081905260409020546008548110611787576001600854111561167c57506008545b5f61168884600261213c565b90505f8184602001518461169c919061213c565b6116a6919061216e565b90505f6116b38285612028565b9050476116bf82611970565b5f6116ca8247612028565b90505f8760200151866116dd9190612028565b6116e7908361216e565b90505f8860200151826116fa919061213c565b9050801561170c5761170c8682611ac0565b88515f9061171b84600261213c565b611725919061213c565b9050801561174357600c54611743906001600160a01b031682611b6f565b60408a01515f9061175585600261213c565b61175f919061213c565b9050801561177d57600d5461177d906001600160a01b031682611b6f565b5050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166117fe5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ec565b6001600160a01b0382166118605760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ec565b6001600160a01b0383165f90815260208190526040902054818110156118d75760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107ec565b6118e18282612028565b6001600160a01b038086165f90815260208190526040808220939093559085168152908120805484929061191690849061203b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161196291815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106119a3576119a3611fa6565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119fa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1e919061218d565b81600181518110611a3157611a31611fa6565b6001600160a01b039283166020918202929092010152600654611a579130911684611144565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a8f9085905f908690309042906004016121a8565b5f604051808303815f87803b158015611aa6575f80fd5b505af1158015611ab8573d5f803e3d5ffd5b505050505050565b600654611ad89030906001600160a01b031684611144565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611b43573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b689190612217565b5050505050565b80471015611bbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ec565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611c08576040519150601f19603f3d011682016040523d82523d5f602084013e611c0d565b606091505b50509050806108595760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ec565b5f6020808352835180828501525f5b81811015611caf57858101830151858201604001528201611c93565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611141575f80fd5b8035611cee81611ccf565b919050565b5f8060408385031215611d04575f80fd5b8235611d0f81611ccf565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114611141575f80fd5b8035611cee81611d31565b5f8060408385031215611d5a575f80fd5b823567ffffffffffffffff80821115611d71575f80fd5b818501915085601f830112611d84575f80fd5b8135602082821115611d9857611d98611d1d565b8160051b604051601f19603f83011681018181108682111715611dbd57611dbd611d1d565b604052928352818301935084810182019289841115611dda575f80fd5b948201945b83861015611dff57611df086611ce3565b85529482019493820193611ddf565b9650611e0e9050878201611d3e565b9450505050509250929050565b5f60208284031215611e2b575f80fd5b8135611e3681611d31565b9392505050565b5f60208284031215611e4d575f80fd5b8135611e3681611ccf565b5f805f60608486031215611e6a575f80fd5b8335611e7581611ccf565b92506020840135611e8581611ccf565b929592945050506040919091013590565b5f8060408385031215611ea7575f80fd5b8235611eb281611ccf565b91506020830135611ec281611d31565b809150509250929050565b5f60208284031215611edd575f80fd5b5035919050565b5f805f60608486031215611ef6575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611f1e575f80fd5b8235611f2981611ccf565b91506020830135611ec281611ccf565b600181811c90821680611f4d57607f821691505b602082108103611f6b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611fdf57611fdf611fba565b5060010190565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b818103818111156107bc576107bc611fba565b808201808211156107bc576107bc611fba565b600181815b8085111561208857815f190482111561206e5761206e611fba565b8085161561207b57918102915b93841c9390800290612053565b509250929050565b5f8261209e575060016107bc565b816120aa57505f6107bc565b81600181146120c057600281146120ca576120e6565b60019150506107bc565b60ff8411156120db576120db611fba565b50506001821b6107bc565b5060208310610133831016604e8410600b8410161715612109575081810a6107bc565b612113838361204e565b805f190482111561212657612126611fba565b029392505050565b5f611e3660ff841683612090565b80820281158282048414176107bc576107bc611fba565b5f60208284031215612163575f80fd5b8151611e3681611d31565b5f8261218857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561219d575f80fd5b8151611e3681611ccf565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156121f65784516001600160a01b0316835293830193918301916001016121d1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612229575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212203c554485ed9bcaf2a2f20183bfa673ea0db2d51223279deb8d91b835089f2d3d64736f6c63430008150033

Deployed Bytecode Sourcemap

12188:10658:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14020:161;;;;;;;;;;-1:-1:-1;14020:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;14020:161:0;1162:187:1;22220:202:0;;;;;;;;;;-1:-1:-1;22220:202:0;;;;;:::i;:::-;;:::i;:::-;;20179:152;;;;;;;;;;-1:-1:-1;20179:152:0;;;;;:::i;:::-;;:::i;12452:53::-;;;;;;;;;;;;;;;;;;;3330:25:1;;;3318:2;3303:18;12452:53:0;3184:177:1;3939:108:0;;;;;;;;;;-1:-1:-1;4027:12:0;;3939:108;;21901:183;;;;;;;;;;-1:-1:-1;21901:183:0;;;;;:::i;:::-;;:::i;21210:222::-;;;;;;;;;;;;;:::i;14189:448::-;;;;;;;;;;-1:-1:-1;14189:448:0;;;;;:::i;:::-;;:::i;12514:28::-;;;;;;;;;;;;;;;;3781:93;;;;;;;;;;-1:-1:-1;3781:93:0;;3864:2;4221:36:1;;4209:2;4194:18;3781:93:0;4079:184:1;22092:120:0;;;;;;;;;;-1:-1:-1;22092:120:0;;;;;:::i;:::-;;:::i;14645:248::-;;;;;;;;;;-1:-1:-1;14645:248:0;;;;;:::i;:::-;;:::i;20339:280::-;;;;;;;;;;-1:-1:-1;20339:280:0;;;;;:::i;:::-;;:::i;22430:112::-;;;;;;;;;;-1:-1:-1;22430:112:0;;;;;:::i;:::-;;:::i;20627:281::-;;;;;;;;;;-1:-1:-1;20627:281:0;;;;;:::i;:::-;;:::i;12409:34::-;;;;;;;;;;-1:-1:-1;12409:34:0;;;;-1:-1:-1;;;12409:34:0;;;;;;20916:286;;;;;;;;;;-1:-1:-1;20916:286:0;;;;;:::i;:::-;;:::i;4110:127::-;;;;;;;;;;-1:-1:-1;4110:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4211:18:0;4184:7;4211:18;;;;;;;;;;;;4110:127;10851:94;;;;;;;;;;;;;:::i;12976:35::-;;;;;;;;;;-1:-1:-1;12976:35:0;;;;;;;;;;;;;;;;5363:25:1;;;5419:2;5404:18;;5397:34;;;;5447:18;;;5440:34;5351:2;5336:18;12976:35:0;5161:319:1;12623:75:0;;;;;;;;;;-1:-1:-1;12623:75:0;;;;-1:-1:-1;;;;;12623:75:0;;;;;;-1:-1:-1;;;;;5649:32:1;;;5631:51;;5619:2;5604:18;12623:75:0;5485:203:1;12781:79:0;;;;;;;;;;;;12818:42;12781:79;;10628:87;;;;;;;;;;-1:-1:-1;10701:6:0;;-1:-1:-1;;;;;10701:6:0;10628:87;;12705:69;;;;;;;;;;-1:-1:-1;12705:69:0;;;;-1:-1:-1;;;;;12705:69:0;;;3038:104;;;;;;;;;;;;;:::i;14901:410::-;;;;;;;;;;-1:-1:-1;14901:410:0;;;;;:::i;:::-;;:::i;12298:19::-;;;;;;;;;;-1:-1:-1;12298:19:0;;;;-1:-1:-1;;;;;12298:19:0;;;15319:165;;;;;;;;;;-1:-1:-1;15319:165:0;;;;;:::i;:::-;;:::i;21698:195::-;;;;;;;;;;-1:-1:-1;21698:195:0;;;;;:::i;:::-;;:::i;13066:41::-;;;;;;;;;;-1:-1:-1;13066:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22550:238;;;;;;;;;;-1:-1:-1;22550:238:0;;;;;:::i;:::-;;:::i;4729:201::-;;;;;;;;;;-1:-1:-1;4729:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4895:18:0;;;4863:7;4895:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4729:201;21440:250;;;;;;;;;;-1:-1:-1;21440:250:0;;;;;:::i;:::-;;:::i;10953:192::-;;;;;;;;;;-1:-1:-1;10953:192:0;;;;;:::i;:::-;;:::i;13018:39::-;;;;;;;;;;-1:-1:-1;13018:39:0;;;;;;;;;;;;12270:21;;;;;;;;;;-1:-1:-1;12270:21:0;;;;-1:-1:-1;;;;;12270:21:0;;;12364:38;;;;;;;;;;-1:-1:-1;12364:38:0;;;;-1:-1:-1;;;12364:38:0;;;;;;2819:100;2873:13;2906:5;2899:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:100;:::o;14020:161::-;14095:4;14112:39;621:10;14135:7;14144:6;14112:8;:39::i;:::-;-1:-1:-1;14169:4:0;14020:161;;;;;:::o;22220:202::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;;;;;;;;;22317:9:::1;22312:103;22336:8;:15;22332:1;:19;22312:103;;;22398:5;22373:9;:22;22383:8;22392:1;22383:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22373:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22373:22:0;:30;;-1:-1:-1;;22373:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22353:3;::::1;::::0;::::1;:::i;:::-;;;;22312:103;;;;22220:202:::0;;:::o;20179:152::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;20297:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;20297:26:0::1;-1:-1:-1::0;;;;20297:26:0;;::::1;::::0;;;::::1;::::0;;20179:152::o;21901:183::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21983:23:0;::::1;21975:69;;;;-1:-1:-1::0;;;21975:69:0::1;;;;;;;:::i;:::-;22055:9;:21:::0;;-1:-1:-1;;;;;;22055:21:0::1;-1:-1:-1::0;;;;;22055:21:0;;;::::1;::::0;;;::::1;::::0;;21901:183::o;21210:222::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;21274:14:::1;::::0;-1:-1:-1;;;21274:14:0;::::1;;;21273:15;21265:52;;;::::0;-1:-1:-1;;;21265:52:0;;8064:2:1;21265:52:0::1;::::0;::::1;8046:21:1::0;8103:2;8083:18;;;8076:30;8142:26;8122:18;;;8115:54;8186:18;;21265:52:0::1;7862:348:1::0;21265:52:0::1;21328:14;:21:::0;;-1:-1:-1;;;;21360:25:0;-1:-1:-1;;;21360:25:0;;;21412:12:::1;21396:13;:28:::0;21210:222::o;14189:448::-;14321:4;14338:36;14348:6;14356:9;14367:6;14338:9;:36::i;:::-;-1:-1:-1;;;;;14414:19:0;;14387:24;14414:19;;;:11;:19;;;;;;;;621:10;14414:33;;;;;;;;14466:26;;;;14458:79;;;;-1:-1:-1;;;14458:79:0;;8417:2:1;14458:79:0;;;8399:21:1;8456:2;8436:18;;;8429:30;8495:34;8475:18;;;8468:62;-1:-1:-1;;;8546:18:1;;;8539:38;8594:19;;14458:79:0;8215:404:1;14458:79:0;14548:57;14557:6;621:10;14579:25;14598:6;14579:16;:25;:::i;:::-;14548:8;:57::i;:::-;-1:-1:-1;14625:4:0;;14189:448;-1:-1:-1;;;;14189:448:0:o;22092:120::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22177:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;22177:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22092:120::o;14645:248::-;621:10;14761:4;14815:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14815:34:0;;;;;;;;;;14761:4;;14783:80;;14806:7;;14815:47;;14852:10;;14815:47;:::i;20339:280::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;20477:3:::1;20463:10;:17;;20455:92;;;::::0;-1:-1:-1;;;20455:92:0;;9089:2:1;20455:92:0::1;::::0;::::1;9071:21:1::0;9128:2;9108:18;;;9101:30;9167:34;9147:18;;;9140:62;9238:32;9218:18;;;9211:60;9288:19;;20455:92:0::1;8887:426:1::0;20455:92:0::1;20597:14;3864:2:::0;20597::::1;:14;:::i;:::-;20584:27;::::0;:10;:27:::1;:::i;:::-;20558:23;:53:::0;-1:-1:-1;20339:280:0:o;22430:112::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;10701:6;;22498:36:::1;::::0;-1:-1:-1;;;;;10701:6:0;;;;22498:36;::::1;;;::::0;22524:9;;22498:36:::1;::::0;;;22524:9;10701:6;22498:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22430:112:::0;:::o;20627:281::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;20774:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;20766:5:::1;:43:::0;;;;;;;;;;;20864:2:::1;20804:4:::0;20829:23:::1;20792:10:::0;20780;20829:23:::1;:::i;:::-;:30;;;;:::i;:::-;20828:38;;20820:80;;;::::0;-1:-1:-1;;;20820:80:0;;11076:2:1;20820:80:0::1;::::0;::::1;11058:21:1::0;11115:2;11095:18;;;11088:30;11154:31;11134:18;;;11127:59;11203:18;;20820:80:0::1;10874:353:1::0;20916:286:0;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;21068:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;21056:9:::1;:47:::0;;;;;;;;;;;21158:2:::1;21098:4:::0;21123:23:::1;21086:10:::0;21074;21123:23:::1;:::i;10851:94::-:0;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;10916:21:::1;10934:1;10916:9;:21::i;:::-;10851:94::o:0;3038:104::-;3094:13;3127:7;3120:14;;;;;:::i;14901:410::-;621:10;15022:4;15071:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15071:34:0;;;;;;;;;;15124:35;;;;15116:85;;;;-1:-1:-1;;;15116:85:0;;11434:2:1;15116:85:0;;;11416:21:1;11473:2;11453:18;;;11446:30;11512:34;11492:18;;;11485:62;-1:-1:-1;;;11563:18:1;;;11556:35;11608:19;;15116:85:0;11232:401:1;15116:85:0;15212:67;621:10;15235:7;15244:34;15263:15;15244:16;:34;:::i;15212:67::-;-1:-1:-1;15299:4:0;;14901:410;-1:-1:-1;;;14901:410:0:o;15319:165::-;15397:4;15414:40;15424:10;15436:9;15447:6;15414:9;:40::i;21698:195::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21786:23:0;::::1;21778:69;;;;-1:-1:-1::0;;;21778:69:0::1;;;;;;;:::i;:::-;21858:15;:27:::0;;-1:-1:-1;;;;;;21858:27:0::1;-1:-1:-1::0;;;;;21858:27:0;;;::::1;::::0;;;::::1;::::0;;21698:195::o;22550:238::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;22663:4:::1;-1:-1:-1::0;;;;;22643:25:0;::::1;::::0;22635:92:::1;;;::::0;-1:-1:-1;;;22635:92:0;;11840:2:1;22635:92:0::1;::::0;::::1;11822:21:1::0;11879:2;11859:18;;;11852:30;11918:34;11898:18;;;11891:62;-1:-1:-1;;;11969:18:1;;;11962:52;12031:19;;22635:92:0::1;11638:418:1::0;22635:92:0::1;22745:8;-1:-1:-1::0;;;;;22738:25:0::1;;22764:7;10701:6:::0;;-1:-1:-1;;;;;10701:6:0;;10628:87;22764:7:::1;22738:42;::::0;-1:-1:-1;;;;;;22738:42:0::1;::::0;;;;;;-1:-1:-1;;;;;12253:32:1;;;22738:42:0::1;::::0;::::1;12235:51:1::0;12302:18;;;12295:34;;;12208:18;;22738:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21440:250::-:0;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;21522:14:::1;::::0;-1:-1:-1;;;21522:14:0;::::1;;;21521:15;21513:65;;;::::0;-1:-1:-1;;;21513:65:0;;12792:2:1;21513:65:0::1;::::0;::::1;12774:21:1::0;12831:2;12811:18;;;12804:30;12870:34;12850:18;;;12843:62;-1:-1:-1;;;12921:18:1;;;12914:35;12966:19;;21513:65:0::1;12590:401:1::0;21513:65:0::1;21609:1;21597:9;:13;21589:62;;;::::0;-1:-1:-1;;;21589:62:0;;13198:2:1;21589:62:0::1;::::0;::::1;13180:21:1::0;13237:2;13217:18;;;13210:30;13276:34;13256:18;;;13249:62;-1:-1:-1;;;13327:18:1;;;13320:35;13372:19;;21589:62:0::1;12996:401:1::0;21589:62:0::1;21662:8;:20:::0;21440:250::o;10953:192::-;10701:6;;-1:-1:-1;;;;;10701:6:0;621:10;10763:23;10755:68;;;;-1:-1:-1;;;10755:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11042:22:0;::::1;11034:73;;;::::0;-1:-1:-1;;;11034:73:0;;13604:2:1;11034:73:0::1;::::0;::::1;13586:21:1::0;13643:2;13623:18;;;13616:30;13682:34;13662:18;;;13655:62;-1:-1:-1;;;13733:18:1;;;13726:36;13779:19;;11034:73:0::1;13402:402:1::0;11034:73:0::1;11118:19;11128:8;11118:9;:19::i;:::-;10953:192:::0;:::o;9661:380::-;-1:-1:-1;;;;;9797:19:0;;9789:68;;;;-1:-1:-1;;;9789:68:0;;14011:2:1;9789:68:0;;;13993:21:1;14050:2;14030:18;;;14023:30;14089:34;14069:18;;;14062:62;-1:-1:-1;;;14140:18:1;;;14133:34;14184:19;;9789:68:0;13809:400:1;9789:68:0;-1:-1:-1;;;;;9876:21:0;;9868:68;;;;-1:-1:-1;;;9868:68:0;;14416:2:1;9868:68:0;;;14398:21:1;14455:2;14435:18;;;14428:30;14494:34;14474:18;;;14467:62;-1:-1:-1;;;14545:18:1;;;14538:32;14587:19;;9868:68:0;14214:398:1;9868:68:0;-1:-1:-1;;;;;9949:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10001:32;;3330:25:1;;;10001:32:0;;3303:18:1;10001:32:0;;;;;;;9661:380;;;:::o;15492:2018::-;15642:1;15633:6;:10;15625:64;;;;-1:-1:-1;;;15625:64:0;;14819:2:1;15625:64:0;;;14801:21:1;14858:2;14838:18;;;14831:30;14897:34;14877:18;;;14870:62;-1:-1:-1;;;14948:18:1;;;14941:39;14997:19;;15625:64:0;14617:405:1;15625:64:0;-1:-1:-1;;;;;15707:17:0;;;;;;:9;:17;;;;;;;;15706:18;:43;;;;-1:-1:-1;;;;;;15729:20:0;;;;;;:9;:20;;;;;;;;15728:21;15706:43;15702:122;;;15774:14;;-1:-1:-1;;;15774:14:0;;;;15766:46;;;;-1:-1:-1;;;15766:46:0;;15229:2:1;15766:46:0;;;15211:21:1;15268:2;15248:18;;;15241:30;-1:-1:-1;;;15287:18:1;;;15280:49;15346:18;;15766:46:0;15027:343:1;15766:46:0;15836:15;15862:14;15887:11;15909:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;15909:25:0;-1:-1:-1;;;;;15968:17:0;;15947;15968;;;:9;:17;;;;;;;;15967:18;:56;;;;-1:-1:-1;;;;;;16003:20:0;;;;;;:9;:20;;;;;;;;16002:21;15967:56;:112;;;;;16071:8;;16055:13;;:24;;;;:::i;:::-;16040:12;:39;15967:112;16167:10;;15947:132;;-1:-1:-1;;;;16167:10:0;;;;;:31;;-1:-1:-1;;;;;;16181:17:0;;;;;;:9;:17;;;;;;;;16167:31;:55;;;-1:-1:-1;;;;;;16202:20:0;;;;;;:9;:20;;;;;;;;16167:55;16163:767;;;16243:1;16237:7;;16163:767;;;16308:4;;-1:-1:-1;;;;;16295:17:0;;;16308:4;;16295:17;:34;;;;;16317:12;16316:13;16295:34;16291:639;;;16457:13;;:9;16412:19;16373;;:58;;16412:19;16373:58;:::i;:::-;:97;;;;:::i;:::-;16516:24;;;;;;;;16531:9;16516:24;;;;;;;;;;;;;;;;;;16346:124;;-1:-1:-1;16346:124:0;;-1:-1:-1;16516:24:0;-1:-1:-1;16291:639:0;;;16572:4;;-1:-1:-1;;;;;16562:14:0;;;16572:4;;16562:14;:46;;;;-1:-1:-1;16601:6:0;;-1:-1:-1;;;;;16580:28:0;;;16601:6;;16580:28;;16562:46;:63;;;;;16613:12;16612:13;16562:63;16558:372;;;16739:9;;:5;16704:15;16669;;:50;;16704:15;16669:50;:::i;:::-;:79;;;;:::i;:::-;16795:20;;;;;;;;16810:5;16795:20;;;;;;;;;;;;;;;;;;16642:106;;-1:-1:-1;16642:106:0;;-1:-1:-1;16795:20:0;-1:-1:-1;16558:372:0;;;16837:12;16833:97;;;16876:9;;;-1:-1:-1;16876:9:0;;-1:-1:-1;16833:97:0;16968:3;16949:15;16958:6;16949;:15;:::i;:::-;16948:23;;;;:::i;:::-;17085:18;;16942:29;;-1:-1:-1;;;;17085:18:0;;;;:36;;;;-1:-1:-1;17117:4:0;;-1:-1:-1;;;;;17107:14:0;;;17117:4;;17107:14;;17085:36;17081:72;;;17123:30;17131:7;17140:12;17123:7;:30::i;:::-;17195:48;17211:6;17219:9;17230:12;17239:3;17230:6;:12;:::i;:::-;17195:15;:48::i;:::-;17258:7;;17254:249;;17330:11;;17326:164;;17362:17;17403:3;17383:16;17392:7;17383:6;:16;:::i;:::-;17382:24;;;;:::i;:::-;17362:44;;17425:49;17441:6;17457:4;17464:9;17425:15;:49::i;:::-;17343:147;17326:164;15614:1896;;;;;15492:2018;;;:::o;11153:173::-;11228:6;;;-1:-1:-1;;;;;11245:17:0;;;-1:-1:-1;;;;;;11245:17:0;;;;;;;11278:40;;11228:6;;;11245:17;11228:6;;11278:40;;11209:16;;11278:40;11198:128;11153:173;:::o;17518:1603::-;13155:10;;-1:-1:-1;;;13155:10:0;;;;13150:110;;13182:10;:17;;-1:-1:-1;;;;13182:17:0;-1:-1:-1;;;13182:17:0;;;17609:49;;17640:7:::1;17609:49;17714:4;17670:23;4211:18:::0;;;;;;;;;;;17754:23:::1;::::0;17735:42;::::1;17731:1383;;17824:1;17798:23;;:27;17794:109;;;-1:-1:-1::0;17864:23:0::1;::::0;17794:109:::1;17974:19;17996:11;:7:::0;18006:1:::1;17996:11;:::i;:::-;17974:33;;18022:32;18116:11;18076:9;:19;;;18058:15;:37;;;;:::i;:::-;18057:70;;;;:::i;:::-;18022:105:::0;-1:-1:-1;18142:14:0::1;18159:42;18022:105:::0;18159:15;:42:::1;:::i;:::-;18142:59:::0;-1:-1:-1;18243:21:0::1;18281:24;18142:59:::0;18281:16:::1;:24::i;:::-;18322:20;18345:38;18369:14:::0;18345:21:::1;:38;:::i;:::-;18322:61;;18398:19;18450:9;:19;;;18436:11;:33;;;;:::i;:::-;18420:50;::::0;:12;:50:::1;:::i;:::-;18398:72;;18485:29;18531:9;:19;;;18517:11;:33;;;;:::i;:::-;18485:65:::0;-1:-1:-1;18571:25:0;;18567:172:::1;;18662:61;18675:24;18701:21;18662:12;:61::i;:::-;18796:19:::0;;18755:20:::1;::::0;18778:15:::1;:11:::0;18792:1:::1;18778:15;:::i;:::-;:37;;;;:::i;:::-;18755:60:::0;-1:-1:-1;18834:16:0;;18830:105:::1;;18879:15;::::0;18871:48:::1;::::0;-1:-1:-1;;;;;18879:15:0::1;18906:12:::0;18871:34:::1;:48::i;:::-;18986:13;::::0;::::1;::::0;18951:14:::1;::::0;18968:15:::1;:11:::0;18982:1:::1;18968:15;:::i;:::-;:31;;;;:::i;:::-;18951:48:::0;-1:-1:-1;19018:10:0;;19014:87:::1;;19057:9;::::0;19049:36:::1;::::0;-1:-1:-1;;;;;19057:9:0::1;19078:6:::0;19049:28:::1;:36::i;:::-;17779:1335;;;;;;;;;17731:1383;17596:1525;13214:1;13230:10:::0;:18;;-1:-1:-1;;;;13230:18:0;;;17518:1603;;:::o;8242:578::-;-1:-1:-1;;;;;8382:20:0;;8374:70;;;;-1:-1:-1;;;8374:70:0;;15799:2:1;8374:70:0;;;15781:21:1;15838:2;15818:18;;;15811:30;15877:34;15857:18;;;15850:62;-1:-1:-1;;;15928:18:1;;;15921:35;15973:19;;8374:70:0;15597:401:1;8374:70:0;-1:-1:-1;;;;;8463:23:0;;8455:71;;;;-1:-1:-1;;;8455:71:0;;16205:2:1;8455:71:0;;;16187:21:1;16244:2;16224:18;;;16217:30;16283:34;16263:18;;;16256:62;-1:-1:-1;;;16334:18:1;;;16327:33;16377:19;;8455:71:0;16003:399:1;8455:71:0;-1:-1:-1;;;;;8563:17:0;;8539:21;8563:17;;;;;;;;;;;8599:23;;;;8591:74;;;;-1:-1:-1;;;8591:74:0;;16609:2:1;8591:74:0;;;16591:21:1;16648:2;16628:18;;;16621:30;16687:34;16667:18;;;16660:62;-1:-1:-1;;;16738:18:1;;;16731:36;16784:19;;8591:74:0;16407:402:1;8591:74:0;8696:22;8712:6;8696:13;:22;:::i;:::-;-1:-1:-1;;;;;8676:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8729:20;;;;;;;;:30;;8753:6;;8676:9;8729:30;;8753:6;;8729:30;:::i;:::-;;;;;;;;8794:9;-1:-1:-1;;;;;8777:35:0;8786:6;-1:-1:-1;;;;;8777:35:0;;8805:6;8777:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;8777:35:0;;;;;;;;8363:457;8242:578;;;:::o;19129:534::-;19279:16;;;19293:1;19279:16;;;;;;;;19255:21;;19279:16;;;;;;;;;;-1:-1:-1;19279:16:0;19255:40;;19324:4;19306;19311:1;19306:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19306:23:0;;;:7;;;;;;;;;;:23;;;;19350:6;;:13;;;-1:-1:-1;;;19350:13:0;;;;:6;;;;;:11;;:13;;;;;19306:7;;19350:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19340:4;19345:1;19340:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19340:23:0;;;:7;;;;;;;;;:23;19408:6;;19376:53;;19393:4;;19408:6;19417:11;19376:8;:53::i;:::-;19468:6;;:187;;-1:-1:-1;;;19468:187:0;;-1:-1:-1;;;;;19468:6:0;;;;:57;;:187;;19540:11;;19468:6;;19582:4;;19609;;19629:15;;19468:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19184:479;19129:534;:::o;19671:500::-;19851:6;;19819:53;;19836:4;;-1:-1:-1;;;;;19851:6:0;19860:11;19819:8;:53::i;:::-;19915:6;;:248;;-1:-1:-1;;;19915:248:0;;19980:4;19915:248;;;18396:34:1;18446:18;;;18439:34;;;19915:6:0;18489:18:1;;;18482:34;;;18532:18;;;18525:34;12818:42:0;18575:19:1;;;18568:44;20137:15:0;18628:19:1;;;18621:35;-1:-1:-1;;;;;19915:6:0;;;;:22;;19946:9;;18330:19:1;;19915:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19671:500;;:::o;10071:319::-;10186:6;10161:21;:31;;10153:73;;;;-1:-1:-1;;;10153:73:0;;19180:2:1;10153:73:0;;;19162:21:1;19219:2;19199:18;;;19192:30;19258:31;19238:18;;;19231:59;19307:18;;10153:73:0;18978:353:1;10153:73:0;10240:12;10258:9;-1:-1:-1;;;;;10258:14:0;10281:6;10258:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10239:54;;;10312:7;10304:78;;;;-1:-1:-1;;;10304:78:0;;19748:2:1;10304:78:0;;;19730:21:1;19787:2;19767:18;;;19760:30;19826:34;19806:18;;;19799:62;19897:28;19877:18;;;19870:56;19943:19;;10304:78:0;19546: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:247::-;3425:6;3478:2;3466:9;3457:7;3453:23;3449:32;3446:52;;;3494:1;3491;3484:12;3446:52;3533:9;3520:23;3552:31;3577:5;3552:31;:::i;3618:456::-;3695:6;3703;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3819:9;3806:23;3838:31;3863:5;3838:31;:::i;:::-;3888:5;-1:-1:-1;3945:2:1;3930:18;;3917:32;3958:33;3917:32;3958:33;:::i;:::-;3618:456;;4010:7;;-1:-1:-1;;;4064:2:1;4049:18;;;;4036:32;;3618:456::o;4268:382::-;4333:6;4341;4394:2;4382:9;4373:7;4369:23;4365:32;4362:52;;;4410:1;4407;4400:12;4362:52;4449:9;4436:23;4468:31;4493:5;4468:31;:::i;:::-;4518:5;-1:-1:-1;4575:2:1;4560:18;;4547:32;4588:30;4547:32;4588:30;:::i;:::-;4637:7;4627:17;;;4268:382;;;;;:::o;4655:180::-;4714:6;4767:2;4755:9;4746:7;4742:23;4738:32;4735:52;;;4783:1;4780;4773:12;4735:52;-1:-1:-1;4806:23:1;;4655:180;-1:-1:-1;4655:180:1:o;4840:316::-;4917:6;4925;4933;4986:2;4974:9;4965:7;4961:23;4957:32;4954:52;;;5002:1;4999;4992:12;4954:52;-1:-1:-1;;5025:23:1;;;5095:2;5080:18;;5067:32;;-1:-1:-1;5146:2:1;5131:18;;;5118:32;;4840:316;-1:-1:-1;4840:316:1:o;5693:388::-;5761:6;5769;5822:2;5810:9;5801:7;5797:23;5793:32;5790:52;;;5838:1;5835;5828:12;5790:52;5877:9;5864:23;5896:31;5921:5;5896:31;:::i;:::-;5946:5;-1:-1:-1;6003:2:1;5988:18;;5975:32;6016:33;5975:32;6016:33;:::i;6309:380::-;6388:1;6384:12;;;;6431;;;6452:61;;6506:4;6498:6;6494:17;6484:27;;6452:61;6559:2;6551:6;6548:14;6528:18;6525:38;6522:161;;6605:10;6600:3;6596:20;6593:1;6586:31;6640:4;6637:1;6630:15;6668:4;6665:1;6658:15;6522:161;;6309:380;;;:::o;6694:356::-;6896:2;6878:21;;;6915:18;;;6908:30;6974:34;6969:2;6954:18;;6947:62;7041:2;7026:18;;6694:356::o;7055:127::-;7116:10;7111:3;7107:20;7104:1;7097:31;7147:4;7144:1;7137:15;7171:4;7168:1;7161:15;7187:127;7248:10;7243:3;7239:20;7236:1;7229:31;7279:4;7276:1;7269:15;7303:4;7300:1;7293:15;7319:135;7358:3;7379:17;;;7376:43;;7399:18;;:::i;:::-;-1:-1:-1;7446:1:1;7435:13;;7319:135::o;7459:398::-;7661:2;7643:21;;;7700:2;7680:18;;;7673:30;7739:34;7734:2;7719:18;;7712:62;-1:-1:-1;;;7805:2:1;7790:18;;7783:32;7847:3;7832:19;;7459:398::o;8624:128::-;8691:9;;;8712:11;;;8709:37;;;8726:18;;:::i;8757:125::-;8822:9;;;8843:10;;;8840:36;;;8856:18;;:::i;9318:422::-;9407:1;9450:5;9407:1;9464:270;9485:7;9475:8;9472:21;9464:270;;;9544:4;9540:1;9536:6;9532:17;9526:4;9523:27;9520:53;;;9553:18;;:::i;:::-;9603:7;9593:8;9589:22;9586:55;;;9623:16;;;;9586:55;9702:22;;;;9662:15;;;;9464:270;;;9468:3;9318:422;;;;;:::o;9745:806::-;9794:5;9824:8;9814:80;;-1:-1:-1;9865:1:1;9879:5;;9814:80;9913:4;9903:76;;-1:-1:-1;9950:1:1;9964:5;;9903:76;9995:4;10013:1;10008:59;;;;10081:1;10076:130;;;;9988:218;;10008:59;10038:1;10029:10;;10052:5;;;10076:130;10113:3;10103:8;10100:17;10097:43;;;10120:18;;:::i;:::-;-1:-1:-1;;10176:1:1;10162:16;;10191:5;;9988:218;;10290:2;10280:8;10277:16;10271:3;10265:4;10262:13;10258:36;10252:2;10242:8;10239:16;10234:2;10228:4;10225:12;10221:35;10218:77;10215:159;;;-1:-1:-1;10327:19:1;;;10359:5;;10215:159;10406:34;10431:8;10425:4;10406:34;:::i;:::-;10476:6;10472:1;10468:6;10464:19;10455:7;10452:32;10449:58;;;10487:18;;:::i;:::-;10525:20;;9745:806;-1:-1:-1;;;9745:806:1:o;10556:140::-;10614:5;10643:47;10684:4;10674:8;10670:19;10664:4;10643:47;:::i;10701:168::-;10774:9;;;10805;;10822:15;;;10816:22;;10802:37;10792:71;;10843:18;;:::i;12340:245::-;12407:6;12460:2;12448:9;12439:7;12435:23;12431:32;12428:52;;;12476:1;12473;12466:12;12428:52;12508:9;12502:16;12527:28;12549:5;12527:28;:::i;15375:217::-;15415:1;15441;15431:132;;15485:10;15480:3;15476:20;15473:1;15466:31;15520:4;15517:1;15510:15;15548:4;15545:1;15538:15;15431:132;-1:-1:-1;15577:9:1;;15375:217::o;16814:251::-;16884:6;16937:2;16925:9;16916:7;16912:23;16908:32;16905:52;;;16953:1;16950;16943:12;16905:52;16985:9;16979:16;17004:31;17029:5;17004:31;:::i;17070:980::-;17332:4;17380:3;17369:9;17365:19;17411:6;17400:9;17393:25;17437:2;17475:6;17470:2;17459:9;17455:18;17448:34;17518:3;17513:2;17502:9;17498:18;17491:31;17542:6;17577;17571:13;17608:6;17600;17593:22;17646:3;17635:9;17631:19;17624:26;;17685:2;17677:6;17673:15;17659:29;;17706:1;17716:195;17730:6;17727:1;17724:13;17716:195;;;17795:13;;-1:-1:-1;;;;;17791:39:1;17779:52;;17886:15;;;;17851:12;;;;17827:1;17745:9;17716:195;;;-1:-1:-1;;;;;;;17967:32:1;;;;17962:2;17947:18;;17940:60;-1:-1:-1;;;18031:3:1;18016:19;18009:35;17928:3;17070:980;-1:-1:-1;;;17070:980:1:o;18667:306::-;18755:6;18763;18771;18824:2;18812:9;18803:7;18799:23;18795:32;18792:52;;;18840:1;18837;18830:12;18792:52;18869:9;18863:16;18853:26;;18919:2;18908:9;18904:18;18898:25;18888:35;;18963:2;18952:9;18948:18;18942:25;18932:35;;18667:306;;;;;:::o

Swarm Source

ipfs://3c554485ed9bcaf2a2f20183bfa673ea0db2d51223279deb8d91b835089f2d3d
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.