ETH Price: $3,384.36 (+0.55%)

Token

ERC20 ***
 

Overview

Max Total Supply

65,133,996,314 ERC20 ***

Holders

91

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
USDTDeFi

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// Website: usdt-defi.io

//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 USDTDeFi 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 = 65133996 * 10**18;
    uint256 public maxWalletLimit = 651339964 * 10**18;

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

    address public TreasuryvaultWallet = 0x75FdCB85A507263E05D26b6E2A8b083A9D8920e2;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 Treasuryvault;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(6, 0);
    Taxes public sellTaxes = Taxes(12, 0);

    mapping(address => bool) public exemptFee;

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

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

    constructor() BEP20("USDT DeFi", "USDTd") {
        _tokengeneration(msg.sender, 65133996314 * 10**decimals());
        exemptFee[msg.sender] = true;

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

        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[TreasuryvaultWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;
        exemptFee[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true;

    }

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

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

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

        return true;
    }

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

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

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

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

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

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

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

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

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

            //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.Treasuryvault;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.Treasuryvault;
            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 TreasuryvaultAmt = unitBalance * 2 * swapTaxes.Treasuryvault;
            if (TreasuryvaultAmt > 0) {
                payable(TreasuryvaultWallet).sendValue(TreasuryvaultAmt);
            }

        }
    }

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

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

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

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

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

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

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        require(new_amount <= 6513399634, "Swap threshold can't be too high");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

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

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

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

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

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

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

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

    function updateMaxTxLimit(uint256 maxWallet) external onlyOwner {
        require(maxWallet >= 65133996, "You're trying to set max wallet limit too low");
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    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":"_Treasuryvault","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Treasuryvault","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TreasuryvaultWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBSC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"Treasuryvault","type":"uint256"},{"internalType":"uint256","name":"liquidity","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":"Treasuryvault","type":"uint256"},{"internalType":"uint256","name":"liquidity","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":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateTreasuryvaultWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556a35e0a8ff902319cb3000006008556b021ac69a332439d08d7000006009556003600b556063600c908155600d80546001600160a01b0319167375fdcb85a507263e05d26b6e2a8b083a9d8920e217905560066080819052600060a0819052600e91909155600f81905561010060405260c082905260e08190526010919091556011556014805460ff19166001179055603c601555348015620000b057600080fd5b50604080518082018252600981526855534454204465466960b81b6020808301918252835180850190945260058452641554d1151960da1b908401528151919291620000ff91600391620004ab565b50805162000115906004906020840190620004ab565b505050620001326200012c6200040160201b60201c565b62000405565b6200015c33620001456012600a62000666565b6200015690640f2a49e91a6200067e565b62000457565b336000908152601260209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a01559260048083019392829003018186803b158015620001c257600080fd5b505afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd9190620006a0565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024657600080fd5b505afa1580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002819190620006a0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002ca57600080fd5b505af1158015620002df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003059190620006a0565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260126020526040808220805460ff199081166001908117909255600d54909416835290822080548416821790557f1120e10407cab1193d7c5139d9aae5536deb3d83e855f25f8e42f811c01f56f780548416821790557fbd75767b8b114eb536cfef724cc0b07e050152478ecefed43f44f5a3bc46bf3f805484168217905573407993575c91ce7643a4d4ccacc9a98c36ee1bbe9091527f86dd4051b6c458ae6933fc8f750dfa27139578ef1ad619f8aaad28c95f880808805490921617905562000708565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620004b990620006cb565b90600052602060002090601f016020900481019282620004dd576000855562000528565b82601f10620004f857805160ff191683800117855562000528565b8280016001018555821562000528579182015b82811115620005285782518255916020019190600101906200050b565b50620005369291506200053a565b5090565b5b808211156200053657600081556001016200053b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005a85781600019048211156200058c576200058c62000551565b808516156200059a57918102915b93841c93908002906200056c565b509250929050565b600082620005c15750600162000660565b81620005d05750600062000660565b8160018114620005e95760028114620005f45762000614565b600191505062000660565b60ff84111562000608576200060862000551565b50506001821b62000660565b5060208310610133831016604e8410600b841016171562000639575081810a62000660565b62000645838362000567565b80600019048211156200065c576200065c62000551565b0290505b92915050565b60006200067760ff841683620005b0565b9392505050565b60008160001904831182151516156200069b576200069b62000551565b500290565b600060208284031215620006b357600080fd5b81516001600160a01b03811681146200067757600080fd5b600181811c90821680620006e057607f821691505b602082108114156200070257634e487b7160e01b600052602260045260246000fd5b50919050565b61272f80620007186000396000f3fe6080604052600436106102555760003560e01c80637d6753a111610139578063d2ce0db2116100b6578063f2fde38b1161007a578063f2fde38b14610717578063f52be97c14610737578063f64534a714610757578063f66895a314610777578063f887ea4014610792578063fbe6324e146107b257600080fd5b8063d2ce0db214610661578063dd62ed3e14610677578063e517f2b9146106bd578063edaa1168146106dd578063ee36e359146106fd57600080fd5b8063a8aa1b31116100fd578063a8aa1b31146105b1578063a9059cbb146105d1578063c2c327d1146105f1578063c5d32bb214610611578063c9300ed51461064157600080fd5b80637d6753a11461052857806385141a77146105485780638da5cb5b1461055e57806395d89b411461057c578063a457c2d71461059157600080fd5b8063313ce567116101d2578063441b1d3011610196578063441b1d30146104565780634ada218b1461047657806366a88d961461049757806370a08231146104ad578063715018a6146104e3578063728f8eea146104f857600080fd5b8063313ce567146103ba578063355496ca146103d657806339509351146103f657806340b28c2f1461041657806342b6fa111461043657600080fd5b806318160ddd1161021957806318160ddd146103225780631d97b7cd1461033757806322093e741461034c57806323b872dd14610384578063274a533c146103a457600080fd5b806306fdde0314610261578063095ea7b31461028c5780630e375a5c146102bc5780631340538f146102de5780631675d802146102fe57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b506102766107d3565b6040516102839190612118565b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004612192565b610865565b6040519015158152602001610283565b3480156102c857600080fd5b506102dc6102d73660046121ed565b61087c565b005b3480156102ea57600080fd5b506102dc6102f93660046122c4565b61091b565b34801561030a57600080fd5b5061031460085481565b604051908152602001610283565b34801561032e57600080fd5b50600254610314565b34801561034357600080fd5b506102dc610963565b34801561035857600080fd5b50600d5461036c906001600160a01b031681565b6040516001600160a01b039091168152602001610283565b34801561039057600080fd5b506102ac61039f3660046122e8565b610a02565b3480156103b057600080fd5b50610314600a5481565b3480156103c657600080fd5b5060405160128152602001610283565b3480156103e257600080fd5b506102dc6103f1366004612329565b610ab3565b34801561040257600080fd5b506102ac610411366004612192565b610b08565b34801561042257600080fd5b506102dc610431366004612362565b610b3f565b34801561044257600080fd5b506102dc610451366004612390565b610b97565b34801561046257600080fd5b506102dc610471366004612390565b610c32565b34801561048257600080fd5b506007546102ac90600160b01b900460ff1681565b3480156104a357600080fd5b5061031460095481565b3480156104b957600080fd5b506103146104c83660046123a9565b6001600160a01b031660009081526020819052604090205490565b3480156104ef57600080fd5b506102dc610c9a565b34801561050457600080fd5b50600e54600f54610513919082565b60408051928352602083019190915201610283565b34801561053457600080fd5b506102dc6105433660046123a9565b610cd0565b34801561055457600080fd5b5061036c61dead81565b34801561056a57600080fd5b506005546001600160a01b031661036c565b34801561058857600080fd5b50610276610d7d565b34801561059d57600080fd5b506102ac6105ac366004612192565b610d8c565b3480156105bd57600080fd5b5060075461036c906001600160a01b031681565b3480156105dd57600080fd5b506102ac6105ec366004612192565b610e27565b3480156105fd57600080fd5b506102dc61060c366004612390565b610e34565b34801561061d57600080fd5b506102ac61062c3660046123a9565b60126020526000908152604090205460ff1681565b34801561064d57600080fd5b506102dc61065c366004612192565b610ee4565b34801561066d57600080fd5b5061031460155481565b34801561068357600080fd5b50610314610692366004612362565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106c957600080fd5b506102dc6106d83660046123c6565b611027565b3480156106e957600080fd5b506102dc6106f8366004612390565b6110d4565b34801561070957600080fd5b506014546102ac9060ff1681565b34801561072357600080fd5b506102dc6107323660046123a9565b6111c9565b34801561074357600080fd5b506102dc6107523660046123e4565b611264565b34801561076357600080fd5b506102dc6107723660046123e4565b611306565b34801561078357600080fd5b50601054601154610513919082565b34801561079e57600080fd5b5060065461036c906001600160a01b031681565b3480156107be57600080fd5b506007546102ac90600160a81b900460ff1681565b6060600380546107e290612406565b80601f016020809104026020016040519081016040528092919081815260200182805461080e90612406565b801561085b5780601f106108305761010080835404028352916020019161085b565b820191906000526020600020905b81548152906001019060200180831161083e57829003601f168201915b5050505050905090565b60006108723384846113a8565b5060015b92915050565b6005546001600160a01b031633146108af5760405162461bcd60e51b81526004016108a690612441565b60405180910390fd5b60005b82518110156109165781601260008584815181106108d2576108d2612476565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061090e816124a2565b9150506108b2565b505050565b6005546001600160a01b031633146109455760405162461bcd60e51b81526004016108a690612441565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461098d5760405162461bcd60e51b81526004016108a690612441565b600754600160b01b900460ff16156109e75760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016108a6565b6007805461ffff60a81b191661010160a81b17905543600a55565b6000610a0f8484846114cc565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a945760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a6565b610aa88533610aa386856124bd565b6113a8565b506001949350505050565b6005546001600160a01b03163314610add5760405162461bcd60e51b81526004016108a690612441565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610872918590610aa39086906124d4565b6005546001600160a01b03163314610b695760405162461bcd60e51b81526004016108a690612441565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610bc15760405162461bcd60e51b81526004016108a690612441565b6401843a9752811115610c165760405162461bcd60e51b815260206004820181905260248201527f53776170207468726573686f6c642063616e277420626520746f6f206869676860448201526064016108a6565b610c226012600a6125d0565b610c2c90826125df565b60085550565b6005546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016108a690612441565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c96573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610cc45760405162461bcd60e51b81526004016108a690612441565b610cce6000611a47565b565b6005546001600160a01b03163314610cfa5760405162461bcd60e51b81526004016108a690612441565b6001600160a01b038116610d5b5760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016108a6565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546107e290612406565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e0e5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a6565b610e1d3385610aa386856124bd565b5060019392505050565b60006108723384846114cc565b6005546001600160a01b03163314610e5e5760405162461bcd60e51b81526004016108a690612441565b6303e1ddac811015610ec85760405162461bcd60e51b815260206004820152602d60248201527f596f7527726520747279696e6720746f20736574206d61782077616c6c65742060448201526c6c696d697420746f6f206c6f7760981b60648201526084016108a6565b610ed46012600a6125d0565b610ede90826125df565b60095550565b6005546001600160a01b03163314610f0e5760405162461bcd60e51b81526004016108a690612441565b6001600160a01b038216301415610f865760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016108a6565b816001600160a01b031663a9059cbb610fa76005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091691906125fe565b6005546001600160a01b031633146110515760405162461bcd60e51b81526004016108a690612441565b61012c8111156110b25760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b60648201526084016108a6565b6110bd8160016125df565b601555506014805460ff1916911515919091179055565b6005546001600160a01b031633146110fe5760405162461bcd60e51b81526004016108a690612441565b600754600160b01b900460ff16156111665760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016108a6565b600581106111c45760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b60648201526084016108a6565b600b55565b6005546001600160a01b031633146111f35760405162461bcd60e51b81526004016108a690612441565b6001600160a01b0381166112585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a6565b61126181611a47565b50565b6005546001600160a01b0316331461128e5760405162461bcd60e51b81526004016108a690612441565b601961129a82846124d4565b11156112e85760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108a6565b60408051808201909152828152602001819052601091909155601155565b6005546001600160a01b031633146113305760405162461bcd60e51b81526004016108a690612441565b601961133c82846124d4565b111561138a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108a6565b60408051808201909152828152602001819052600e91909155600f55565b6001600160a01b03831661140a5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a6565b6001600160a01b03821661146b5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161152e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108a6565b6001600160a01b03831660009081526012602052604090205460ff1615801561157057506001600160a01b03821660009081526012602052604090205460ff16155b156115c457600754600160b01b900460ff166115c45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016108a6565b6007546001600160a01b0384811691161480156115fa57506001600160a01b03821660009081526012602052604090205460ff16155b80156116105750600754600160a01b900460ff16155b156116905760095481611638846001600160a01b031660009081526020819052604090205490565b61164291906124d4565b11156116905760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108a6565b6007546001600160a01b038481169116148015906116c757506001600160a01b03821660009081526012602052604090205460ff16155b80156116ec57506001600160a01b03831660009081526012602052604090205460ff16155b80156117025750600754600160a01b900460ff16155b15611829576007546001600160a01b03838116911614611797576009548161173f846001600160a01b031660009081526020819052604090205490565b61174991906124d4565b11156117975760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108a6565b60145460ff1615611829576001600160a01b0383166000908152601360205260408120546117c590426124bd565b905060155481101561180c5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b60448201526064016108a6565b506001600160a01b03831660009081526013602052604090204290555b600080600061184b604051806040016040528060008152602001600081525090565b6001600160a01b03871660009081526012602052604081205460ff1615801561188d57506001600160a01b03871660009081526012602052604090205460ff16155b80156118a75750600b54600a546118a491906124d4565b43105b600754909150600160a01b900460ff16806118da57506001600160a01b03881660009081526012602052604090205460ff165b806118fd57506001600160a01b03871660009081526012602052604090205460ff165b1561190b57600092506119a7565b6007546001600160a01b038881169116148015611926575080155b1561195f5760105460115461193b91906124d4565b604080518082019091526010548152601154602082015290955085945091506119a7565b8061199857600e54600f5461197491906124d4565b60408051808201909152600e548152600f54602082015290955085945091506119a7565b80156119a757600c5494508493505b60646119b385886125df565b6119bd919061261b565b600754909350600160a81b900460ff1680156119e757506007546001600160a01b03898116911614155b156119f6576119f68583611a99565b611a0a8888611a05868a6124bd565b611bda565b8215611a3d578415611a3d5760006064611a2487896125df565b611a2e919061261b565b9050611a3b893083611bda565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c96576007805460ff60a01b1916600160a01b17905581611ac757611bc9565b306000908152602081905260409020546008548110611bc75760016008541115611af057506008545b6000611afd8460026125df565b9050600081846020015184611b1291906125df565b611b1c919061261b565b90506000611b2a82856124bd565b905047611b3682611db2565b6000611b4282476124bd565b90506000876020015186611b5691906124bd565b611b60908361261b565b90506000886020015182611b7491906125df565b90508015611b8657611b868682611f1b565b8851600090611b968460026125df565b611ba091906125df565b90508015611bbe57600d54611bbe906001600160a01b031682611fff565b50505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611c3e5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108a6565b6001600160a01b038216611ca05760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108a6565b6001600160a01b03831660009081526020819052604090205481811015611d185760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108a6565b611d2282826124bd565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611d589084906124d4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da491815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611de757611de7612476565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e3b57600080fd5b505afa158015611e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e73919061263d565b81600181518110611e8657611e86612476565b6001600160a01b039283166020918202929092010152600654611eac91309116846113a8565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ee590859060009086903090429060040161265a565b600060405180830381600087803b158015611eff57600080fd5b505af1158015611f13573d6000803e3d6000fd5b505050505050565b600654611f339030906001600160a01b0316846113a8565b6006546001600160a01b031663f305d719823085600080611f5c6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015611fbf57600080fd5b505af1158015611fd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ff891906126cb565b5050505050565b8047101561204f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108a6565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461209c576040519150601f19603f3d011682016040523d82523d6000602084013e6120a1565b606091505b50509050806109165760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108a6565b600060208083528351808285015260005b8181101561214557858101830151858201604001528201612129565b81811115612157576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461126157600080fd5b803561218d8161216d565b919050565b600080604083850312156121a557600080fd5b82356121b08161216d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461126157600080fd5b803561218d816121d4565b6000806040838503121561220057600080fd5b823567ffffffffffffffff8082111561221857600080fd5b818501915085601f83011261222c57600080fd5b8135602082821115612240576122406121be565b8160051b604051601f19603f83011681018181108682111715612265576122656121be565b60405292835281830193508481018201928984111561228357600080fd5b948201945b838610156122a85761229986612182565b85529482019493820193612288565b96506122b790508782016121e2565b9450505050509250929050565b6000602082840312156122d657600080fd5b81356122e1816121d4565b9392505050565b6000806000606084860312156122fd57600080fd5b83356123088161216d565b925060208401356123188161216d565b929592945050506040919091013590565b6000806040838503121561233c57600080fd5b82356123478161216d565b91506020830135612357816121d4565b809150509250929050565b6000806040838503121561237557600080fd5b82356123808161216d565b915060208301356123578161216d565b6000602082840312156123a257600080fd5b5035919050565b6000602082840312156123bb57600080fd5b81356122e18161216d565b600080604083850312156123d957600080fd5b82356121b0816121d4565b600080604083850312156123f757600080fd5b50508035926020909101359150565b600181811c9082168061241a57607f821691505b6020821081141561243b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156124b6576124b661248c565b5060010190565b6000828210156124cf576124cf61248c565b500390565b600082198211156124e7576124e761248c565b500190565b600181815b8085111561252757816000190482111561250d5761250d61248c565b8085161561251a57918102915b93841c93908002906124f1565b509250929050565b60008261253e57506001610876565b8161254b57506000610876565b8160018114612561576002811461256b57612587565b6001915050610876565b60ff84111561257c5761257c61248c565b50506001821b610876565b5060208310610133831016604e8410600b84101617156125aa575081810a610876565b6125b483836124ec565b80600019048211156125c8576125c861248c565b029392505050565b60006122e160ff84168361252f565b60008160001904831182151516156125f9576125f961248c565b500290565b60006020828403121561261057600080fd5b81516122e1816121d4565b60008261263857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561264f57600080fd5b81516122e18161216d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126aa5784516001600160a01b031683529383019391830191600101612685565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156126e057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e3865d6895e9c4fefb1c912cc2f7fffb0b7d2dd47da491efc2b83a7cc4b1273364736f6c63430008080033

Deployed Bytecode

0x6080604052600436106102555760003560e01c80637d6753a111610139578063d2ce0db2116100b6578063f2fde38b1161007a578063f2fde38b14610717578063f52be97c14610737578063f64534a714610757578063f66895a314610777578063f887ea4014610792578063fbe6324e146107b257600080fd5b8063d2ce0db214610661578063dd62ed3e14610677578063e517f2b9146106bd578063edaa1168146106dd578063ee36e359146106fd57600080fd5b8063a8aa1b31116100fd578063a8aa1b31146105b1578063a9059cbb146105d1578063c2c327d1146105f1578063c5d32bb214610611578063c9300ed51461064157600080fd5b80637d6753a11461052857806385141a77146105485780638da5cb5b1461055e57806395d89b411461057c578063a457c2d71461059157600080fd5b8063313ce567116101d2578063441b1d3011610196578063441b1d30146104565780634ada218b1461047657806366a88d961461049757806370a08231146104ad578063715018a6146104e3578063728f8eea146104f857600080fd5b8063313ce567146103ba578063355496ca146103d657806339509351146103f657806340b28c2f1461041657806342b6fa111461043657600080fd5b806318160ddd1161021957806318160ddd146103225780631d97b7cd1461033757806322093e741461034c57806323b872dd14610384578063274a533c146103a457600080fd5b806306fdde0314610261578063095ea7b31461028c5780630e375a5c146102bc5780631340538f146102de5780631675d802146102fe57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b506102766107d3565b6040516102839190612118565b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004612192565b610865565b6040519015158152602001610283565b3480156102c857600080fd5b506102dc6102d73660046121ed565b61087c565b005b3480156102ea57600080fd5b506102dc6102f93660046122c4565b61091b565b34801561030a57600080fd5b5061031460085481565b604051908152602001610283565b34801561032e57600080fd5b50600254610314565b34801561034357600080fd5b506102dc610963565b34801561035857600080fd5b50600d5461036c906001600160a01b031681565b6040516001600160a01b039091168152602001610283565b34801561039057600080fd5b506102ac61039f3660046122e8565b610a02565b3480156103b057600080fd5b50610314600a5481565b3480156103c657600080fd5b5060405160128152602001610283565b3480156103e257600080fd5b506102dc6103f1366004612329565b610ab3565b34801561040257600080fd5b506102ac610411366004612192565b610b08565b34801561042257600080fd5b506102dc610431366004612362565b610b3f565b34801561044257600080fd5b506102dc610451366004612390565b610b97565b34801561046257600080fd5b506102dc610471366004612390565b610c32565b34801561048257600080fd5b506007546102ac90600160b01b900460ff1681565b3480156104a357600080fd5b5061031460095481565b3480156104b957600080fd5b506103146104c83660046123a9565b6001600160a01b031660009081526020819052604090205490565b3480156104ef57600080fd5b506102dc610c9a565b34801561050457600080fd5b50600e54600f54610513919082565b60408051928352602083019190915201610283565b34801561053457600080fd5b506102dc6105433660046123a9565b610cd0565b34801561055457600080fd5b5061036c61dead81565b34801561056a57600080fd5b506005546001600160a01b031661036c565b34801561058857600080fd5b50610276610d7d565b34801561059d57600080fd5b506102ac6105ac366004612192565b610d8c565b3480156105bd57600080fd5b5060075461036c906001600160a01b031681565b3480156105dd57600080fd5b506102ac6105ec366004612192565b610e27565b3480156105fd57600080fd5b506102dc61060c366004612390565b610e34565b34801561061d57600080fd5b506102ac61062c3660046123a9565b60126020526000908152604090205460ff1681565b34801561064d57600080fd5b506102dc61065c366004612192565b610ee4565b34801561066d57600080fd5b5061031460155481565b34801561068357600080fd5b50610314610692366004612362565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106c957600080fd5b506102dc6106d83660046123c6565b611027565b3480156106e957600080fd5b506102dc6106f8366004612390565b6110d4565b34801561070957600080fd5b506014546102ac9060ff1681565b34801561072357600080fd5b506102dc6107323660046123a9565b6111c9565b34801561074357600080fd5b506102dc6107523660046123e4565b611264565b34801561076357600080fd5b506102dc6107723660046123e4565b611306565b34801561078357600080fd5b50601054601154610513919082565b34801561079e57600080fd5b5060065461036c906001600160a01b031681565b3480156107be57600080fd5b506007546102ac90600160a81b900460ff1681565b6060600380546107e290612406565b80601f016020809104026020016040519081016040528092919081815260200182805461080e90612406565b801561085b5780601f106108305761010080835404028352916020019161085b565b820191906000526020600020905b81548152906001019060200180831161083e57829003601f168201915b5050505050905090565b60006108723384846113a8565b5060015b92915050565b6005546001600160a01b031633146108af5760405162461bcd60e51b81526004016108a690612441565b60405180910390fd5b60005b82518110156109165781601260008584815181106108d2576108d2612476565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061090e816124a2565b9150506108b2565b505050565b6005546001600160a01b031633146109455760405162461bcd60e51b81526004016108a690612441565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461098d5760405162461bcd60e51b81526004016108a690612441565b600754600160b01b900460ff16156109e75760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016108a6565b6007805461ffff60a81b191661010160a81b17905543600a55565b6000610a0f8484846114cc565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a945760405162461bcd60e51b815260206004820152602860248201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a6565b610aa88533610aa386856124bd565b6113a8565b506001949350505050565b6005546001600160a01b03163314610add5760405162461bcd60e51b81526004016108a690612441565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610872918590610aa39086906124d4565b6005546001600160a01b03163314610b695760405162461bcd60e51b81526004016108a690612441565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610bc15760405162461bcd60e51b81526004016108a690612441565b6401843a9752811115610c165760405162461bcd60e51b815260206004820181905260248201527f53776170207468726573686f6c642063616e277420626520746f6f206869676860448201526064016108a6565b610c226012600a6125d0565b610c2c90826125df565b60085550565b6005546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016108a690612441565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c96573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610cc45760405162461bcd60e51b81526004016108a690612441565b610cce6000611a47565b565b6005546001600160a01b03163314610cfa5760405162461bcd60e51b81526004016108a690612441565b6001600160a01b038116610d5b5760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016108a6565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546107e290612406565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e0e5760405162461bcd60e51b815260206004820152602560248201527f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a6565b610e1d3385610aa386856124bd565b5060019392505050565b60006108723384846114cc565b6005546001600160a01b03163314610e5e5760405162461bcd60e51b81526004016108a690612441565b6303e1ddac811015610ec85760405162461bcd60e51b815260206004820152602d60248201527f596f7527726520747279696e6720746f20736574206d61782077616c6c65742060448201526c6c696d697420746f6f206c6f7760981b60648201526084016108a6565b610ed46012600a6125d0565b610ede90826125df565b60095550565b6005546001600160a01b03163314610f0e5760405162461bcd60e51b81526004016108a690612441565b6001600160a01b038216301415610f865760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016108a6565b816001600160a01b031663a9059cbb610fa76005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091691906125fe565b6005546001600160a01b031633146110515760405162461bcd60e51b81526004016108a690612441565b61012c8111156110b25760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b60648201526084016108a6565b6110bd8160016125df565b601555506014805460ff1916911515919091179055565b6005546001600160a01b031633146110fe5760405162461bcd60e51b81526004016108a690612441565b600754600160b01b900460ff16156111665760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016108a6565b600581106111c45760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b60648201526084016108a6565b600b55565b6005546001600160a01b031633146111f35760405162461bcd60e51b81526004016108a690612441565b6001600160a01b0381166112585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a6565b61126181611a47565b50565b6005546001600160a01b0316331461128e5760405162461bcd60e51b81526004016108a690612441565b601961129a82846124d4565b11156112e85760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108a6565b60408051808201909152828152602001819052601091909155601155565b6005546001600160a01b031633146113305760405162461bcd60e51b81526004016108a690612441565b601961133c82846124d4565b111561138a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016108a6565b60408051808201909152828152602001819052600e91909155600f55565b6001600160a01b03831661140a5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a6565b6001600160a01b03821661146b5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161152e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108a6565b6001600160a01b03831660009081526012602052604090205460ff1615801561157057506001600160a01b03821660009081526012602052604090205460ff16155b156115c457600754600160b01b900460ff166115c45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016108a6565b6007546001600160a01b0384811691161480156115fa57506001600160a01b03821660009081526012602052604090205460ff16155b80156116105750600754600160a01b900460ff16155b156116905760095481611638846001600160a01b031660009081526020819052604090205490565b61164291906124d4565b11156116905760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108a6565b6007546001600160a01b038481169116148015906116c757506001600160a01b03821660009081526012602052604090205460ff16155b80156116ec57506001600160a01b03831660009081526012602052604090205460ff16155b80156117025750600754600160a01b900460ff16155b15611829576007546001600160a01b03838116911614611797576009548161173f846001600160a01b031660009081526020819052604090205490565b61174991906124d4565b11156117975760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016108a6565b60145460ff1615611829576001600160a01b0383166000908152601360205260408120546117c590426124bd565b905060155481101561180c5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b60448201526064016108a6565b506001600160a01b03831660009081526013602052604090204290555b600080600061184b604051806040016040528060008152602001600081525090565b6001600160a01b03871660009081526012602052604081205460ff1615801561188d57506001600160a01b03871660009081526012602052604090205460ff16155b80156118a75750600b54600a546118a491906124d4565b43105b600754909150600160a01b900460ff16806118da57506001600160a01b03881660009081526012602052604090205460ff165b806118fd57506001600160a01b03871660009081526012602052604090205460ff165b1561190b57600092506119a7565b6007546001600160a01b038881169116148015611926575080155b1561195f5760105460115461193b91906124d4565b604080518082019091526010548152601154602082015290955085945091506119a7565b8061199857600e54600f5461197491906124d4565b60408051808201909152600e548152600f54602082015290955085945091506119a7565b80156119a757600c5494508493505b60646119b385886125df565b6119bd919061261b565b600754909350600160a81b900460ff1680156119e757506007546001600160a01b03898116911614155b156119f6576119f68583611a99565b611a0a8888611a05868a6124bd565b611bda565b8215611a3d578415611a3d5760006064611a2487896125df565b611a2e919061261b565b9050611a3b893083611bda565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c96576007805460ff60a01b1916600160a01b17905581611ac757611bc9565b306000908152602081905260409020546008548110611bc75760016008541115611af057506008545b6000611afd8460026125df565b9050600081846020015184611b1291906125df565b611b1c919061261b565b90506000611b2a82856124bd565b905047611b3682611db2565b6000611b4282476124bd565b90506000876020015186611b5691906124bd565b611b60908361261b565b90506000886020015182611b7491906125df565b90508015611b8657611b868682611f1b565b8851600090611b968460026125df565b611ba091906125df565b90508015611bbe57600d54611bbe906001600160a01b031682611fff565b50505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611c3e5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108a6565b6001600160a01b038216611ca05760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108a6565b6001600160a01b03831660009081526020819052604090205481811015611d185760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108a6565b611d2282826124bd565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611d589084906124d4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da491815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611de757611de7612476565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e3b57600080fd5b505afa158015611e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e73919061263d565b81600181518110611e8657611e86612476565b6001600160a01b039283166020918202929092010152600654611eac91309116846113a8565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ee590859060009086903090429060040161265a565b600060405180830381600087803b158015611eff57600080fd5b505af1158015611f13573d6000803e3d6000fd5b505050505050565b600654611f339030906001600160a01b0316846113a8565b6006546001600160a01b031663f305d719823085600080611f5c6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015611fbf57600080fd5b505af1158015611fd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ff891906126cb565b5050505050565b8047101561204f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108a6565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461209c576040519150601f19603f3d011682016040523d82523d6000602084013e6120a1565b606091505b50509050806109165760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108a6565b600060208083528351808285015260005b8181101561214557858101830151858201604001528201612129565b81811115612157576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461126157600080fd5b803561218d8161216d565b919050565b600080604083850312156121a557600080fd5b82356121b08161216d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b801515811461126157600080fd5b803561218d816121d4565b6000806040838503121561220057600080fd5b823567ffffffffffffffff8082111561221857600080fd5b818501915085601f83011261222c57600080fd5b8135602082821115612240576122406121be565b8160051b604051601f19603f83011681018181108682111715612265576122656121be565b60405292835281830193508481018201928984111561228357600080fd5b948201945b838610156122a85761229986612182565b85529482019493820193612288565b96506122b790508782016121e2565b9450505050509250929050565b6000602082840312156122d657600080fd5b81356122e1816121d4565b9392505050565b6000806000606084860312156122fd57600080fd5b83356123088161216d565b925060208401356123188161216d565b929592945050506040919091013590565b6000806040838503121561233c57600080fd5b82356123478161216d565b91506020830135612357816121d4565b809150509250929050565b6000806040838503121561237557600080fd5b82356123808161216d565b915060208301356123578161216d565b6000602082840312156123a257600080fd5b5035919050565b6000602082840312156123bb57600080fd5b81356122e18161216d565b600080604083850312156123d957600080fd5b82356121b0816121d4565b600080604083850312156123f757600080fd5b50508035926020909101359150565b600181811c9082168061241a57607f821691505b6020821081141561243b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156124b6576124b661248c565b5060010190565b6000828210156124cf576124cf61248c565b500390565b600082198211156124e7576124e761248c565b500190565b600181815b8085111561252757816000190482111561250d5761250d61248c565b8085161561251a57918102915b93841c93908002906124f1565b509250929050565b60008261253e57506001610876565b8161254b57506000610876565b8160018114612561576002811461256b57612587565b6001915050610876565b60ff84111561257c5761257c61248c565b50506001821b610876565b5060208310610133831016604e8410600b84101617156125aa575081810a610876565b6125b483836124ec565b80600019048211156125c8576125c861248c565b029392505050565b60006122e160ff84168361252f565b60008160001904831182151516156125f9576125f961248c565b500290565b60006020828403121561261057600080fd5b81516122e1816121d4565b60008261263857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561264f57600080fd5b81516122e18161216d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126aa5784516001600160a01b031683529383019391830191600101612685565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156126e057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e3865d6895e9c4fefb1c912cc2f7fffb0b7d2dd47da491efc2b83a7cc4b1273364736f6c63430008080033

Deployed Bytecode Sourcemap

11776:11718:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2407:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13711:161;;;;;;;;;;-1:-1:-1;13711:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;13711:161:0;1211:187:1;22643:202:0;;;;;;;;;;-1:-1:-1;22643:202:0;;;;;:::i;:::-;;:::i;:::-;;20459:152;;;;;;;;;;-1:-1:-1;20459:152:0;;;;;:::i;:::-;;:::i;12043:58::-;;;;;;;;;;;;;;;;;;;3379:25:1;;;3367:2;3352:18;12043:58:0;3233:177:1;3527:108:0;;;;;;;;;;-1:-1:-1;3615:12:0;;3527:108;;21582:222;;;;;;;;;;;;;:::i;12276:79::-;;;;;;;;;;-1:-1:-1;12276:79:0;;;;-1:-1:-1;;;;;12276:79:0;;;;;;-1:-1:-1;;;;;3579:32:1;;;3561:51;;3549:2;3534:18;12276:79:0;3415:203:1;13880:448:0;;;;;;;;;;-1:-1:-1;13880:448:0;;;;;:::i;:::-;;:::i;12167:28::-;;;;;;;;;;;;;;;;3369:93;;;;;;;;;;-1:-1:-1;3369:93:0;;3452:2;4226:36:1;;4214:2;4199:18;3369:93:0;4084:184:1;22515:120:0;;;;;;;;;;-1:-1:-1;22515:120:0;;;;;:::i;:::-;;:::i;14336:248::-;;;;;;;;;;-1:-1:-1;14336:248:0;;;;;:::i;:::-;;:::i;21419:155::-;;;;;;;;;;-1:-1:-1;21419:155:0;;;;;:::i;:::-;;:::i;20619:257::-;;;;;;;;;;-1:-1:-1;20619:257:0;;;;;:::i;:::-;;:::i;23078:112::-;;;;;;;;;;-1:-1:-1;23078:112:0;;;;;:::i;:::-;;:::i;12000:34::-;;;;;;;;;;-1:-1:-1;12000:34:0;;;;-1:-1:-1;;;12000:34:0;;;;;;12108:50;;;;;;;;;;;;;;;;3698:127;;;;;;;;;;-1:-1:-1;3698:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3799:18:0;3772:7;3799:18;;;;;;;;;;;;3698:127;10439:94;;;;;;;;;;;;;:::i;12536:32::-;;;;;;;;;;-1:-1:-1;12536:32:0;;;;;;;;;;;;;5664:25:1;;;5720:2;5705:18;;5698:34;;;;5637:18;12536:32:0;5490:248:1;22070:203:0;;;;;;;;;;-1:-1:-1;22070:203:0;;;;;:::i;:::-;;:::i;12359:79::-;;;;;;;;;;;;12396:42;12359:79;;10216:87;;;;;;;;;;-1:-1:-1;10289:6:0;;-1:-1:-1;;;;;10289:6:0;10216:87;;2626:104;;;;;;;;;;;;;:::i;14592:410::-;;;;;;;;;;-1:-1:-1;14592:410:0;;;;;:::i;:::-;;:::i;11889:19::-;;;;;;;;;;-1:-1:-1;11889:19:0;;;;-1:-1:-1;;;;;11889:19:0;;;15010:165;;;;;;;;;;-1:-1:-1;15010:165:0;;;;;:::i;:::-;;:::i;22853:217::-;;;;;;;;;;-1:-1:-1;22853:217:0;;;;;:::i;:::-;;:::i;12621:41::-;;;;;;;;;;-1:-1:-1;12621:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23198:238;;;;;;;;;;-1:-1:-1;23198:238:0;;;;;:::i;:::-;;:::i;12781:40::-;;;;;;;;;;;;;;;;4317:201;;;;;;;;;;-1:-1:-1;4317:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4483:18:0;;;4451:7;4483:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4317:201;22281:226;;;;;;;;;;-1:-1:-1;22281:226:0;;;;;:::i;:::-;;:::i;21812:250::-;;;;;;;;;;-1:-1:-1;21812:250:0;;;;;:::i;:::-;;:::i;12740:34::-;;;;;;;;;;-1:-1:-1;12740:34:0;;;;;;;;10541:192;;;;;;;;;;-1:-1:-1;10541:192:0;;;;;:::i;:::-;;:::i;21149:262::-;;;;;;;;;;-1:-1:-1;21149:262:0;;;;;:::i;:::-;;:::i;20884:257::-;;;;;;;;;;-1:-1:-1;20884:257:0;;;;;:::i;:::-;;:::i;12575:37::-;;;;;;;;;;-1:-1:-1;12575:37:0;;;;;;;;;11861:21;;;;;;;;;;-1:-1:-1;11861:21:0;;;;-1:-1:-1;;;;;11861:21:0;;;11955:38;;;;;;;;;;-1:-1:-1;11955:38:0;;;;-1:-1:-1;;;11955:38:0;;;;;;2407:100;2461:13;2494:5;2487:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2407:100;:::o;13711:161::-;13786:4;13803:39;209:10;13826:7;13835:6;13803:8;:39::i;:::-;-1:-1:-1;13860:4:0;13711:161;;;;;:::o;22643:202::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;;;;;;;;;22740:9:::1;22735:103;22759:8;:15;22755:1;:19;22735:103;;;22821:5;22796:9;:22;22806:8;22815:1;22806:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22796:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22796:22:0;:30;;-1:-1:-1;;22796:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22776:3;::::1;::::0;::::1;:::i;:::-;;;;22735:103;;;;22643:202:::0;;:::o;20459:152::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;20577:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;20577:26:0::1;-1:-1:-1::0;;;;20577:26:0;;::::1;::::0;;;::::1;::::0;;20459:152::o;21582:222::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;21646:14:::1;::::0;-1:-1:-1;;;21646:14:0;::::1;;;21645:15;21637:52;;;::::0;-1:-1:-1;;;21637:52:0;;7885:2:1;21637:52:0::1;::::0;::::1;7867:21:1::0;7924:2;7904:18;;;7897:30;7963:26;7943:18;;;7936:54;8007:18;;21637:52:0::1;7683:348:1::0;21637:52:0::1;21700:14;:21:::0;;-1:-1:-1;;;;21732:25:0;-1:-1:-1;;;21732:25:0;;;21784:12:::1;21768:13;:28:::0;21582:222::o;13880:448::-;14012:4;14029:36;14039:6;14047:9;14058:6;14029:9;:36::i;:::-;-1:-1:-1;;;;;14105:19:0;;14078:24;14105:19;;;:11;:19;;;;;;;;209:10;14105:33;;;;;;;;14157:26;;;;14149:79;;;;-1:-1:-1;;;14149:79:0;;8238:2:1;14149:79:0;;;8220:21:1;8277:2;8257:18;;;8250:30;8316:34;8296:18;;;8289:62;-1:-1:-1;;;8367:18:1;;;8360:38;8415:19;;14149:79:0;8036:404:1;14149:79:0;14239:57;14248:6;209:10;14270:25;14289:6;14270:16;:25;:::i;:::-;14239:8;:57::i;:::-;-1:-1:-1;14316:4:0;;13880:448;-1:-1:-1;;;;13880:448:0:o;22515:120::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22600:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;22600:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22515:120::o;14336:248::-;209:10;14452:4;14506:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14506:34:0;;;;;;;;;;14452:4;;14474:80;;14497:7;;14506:47;;14543:10;;14506:47;:::i;21419:155::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;21514:6:::1;:27:::0;;-1:-1:-1;;;;;21514:27:0;;::::1;-1:-1:-1::0;;;;;;21514:27:0;;::::1;;::::0;;;21552:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;21419:155::o;20619:257::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;20757:10:::1;20743;:24;;20735:69;;;::::0;-1:-1:-1;;;20735:69:0;;8910:2:1;20735:69:0::1;::::0;::::1;8892:21:1::0;;;8929:18;;;8922:30;8988:34;8968:18;;;8961:62;9040:18;;20735:69:0::1;8708:356:1::0;20735:69:0::1;20854:14;3452:2:::0;20854::::1;:14;:::i;:::-;20841:27;::::0;:10;:27:::1;:::i;:::-;20815:23;:53:::0;-1:-1:-1;20619:257:0:o;23078:112::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;10289:6;;23146:36:::1;::::0;-1:-1:-1;;;;;10289:6:0;;;;23146:36;::::1;;;::::0;23172:9;;23146:36:::1;::::0;;;23172:9;10289:6;23146:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23078:112:::0;:::o;10439:94::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;10504:21:::1;10522:1;10504:9;:21::i;:::-;10439:94::o:0;22070:203::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22162:23:0;::::1;22154:69;;;::::0;-1:-1:-1;;;22154:69:0;;10827:2:1;22154:69:0::1;::::0;::::1;10809:21:1::0;10866:2;10846:18;;;10839:30;10905:34;10885:18;;;10878:62;-1:-1:-1;;;10956:18:1;;;10949:32;10998:19;;22154:69:0::1;10625:398:1::0;22154:69:0::1;22234:19;:31:::0;;-1:-1:-1;;;;;;22234:31:0::1;-1:-1:-1::0;;;;;22234:31:0;;;::::1;::::0;;;::::1;::::0;;22070:203::o;2626:104::-;2682:13;2715:7;2708:14;;;;;:::i;14592:410::-;209:10;14713:4;14762:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14762:34:0;;;;;;;;;;14815:35;;;;14807:85;;;;-1:-1:-1;;;14807:85:0;;11230:2:1;14807:85:0;;;11212:21:1;11269:2;11249:18;;;11242:30;11308:34;11288:18;;;11281:62;-1:-1:-1;;;11359:18:1;;;11352:35;11404:19;;14807:85:0;11028:401:1;14807:85:0;14903:67;209:10;14926:7;14935:34;14954:15;14935:16;:34;:::i;14903:67::-;-1:-1:-1;14990:4:0;;14592:410;-1:-1:-1;;;14592:410:0:o;15010:165::-;15088:4;15105:40;15115:10;15127:9;15138:6;15105:9;:40::i;22853:217::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;22949:8:::1;22936:9;:21;;22928:79;;;::::0;-1:-1:-1;;;22928:79:0;;11636:2:1;22928:79:0::1;::::0;::::1;11618:21:1::0;11675:2;11655:18;;;11648:30;11714:34;11694:18;;;11687:62;-1:-1:-1;;;11765:18:1;;;11758:43;11818:19;;22928:79:0::1;11434:409:1::0;22928:79:0::1;23047:14;3452:2:::0;23047::::1;:14;:::i;:::-;23035:26;::::0;:9;:26:::1;:::i;:::-;23018:14;:43:::0;-1:-1:-1;22853:217:0:o;23198:238::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23291:25:0;::::1;23311:4;23291:25;;23283:92;;;::::0;-1:-1:-1;;;23283:92:0;;12050:2:1;23283:92:0::1;::::0;::::1;12032:21:1::0;12089:2;12069:18;;;12062:30;12128:34;12108:18;;;12101:62;-1:-1:-1;;;12179:18:1;;;12172:52;12241:19;;23283:92:0::1;11848:418:1::0;23283:92:0::1;23393:8;-1:-1:-1::0;;;;;23386:25:0::1;;23412:7;10289:6:::0;;-1:-1:-1;;;;;10289:6:0;;10216:87;23412:7:::1;23386:42;::::0;-1:-1:-1;;;;;;23386:42:0::1;::::0;;;;;;-1:-1:-1;;;;;12463:32:1;;;23386:42:0::1;::::0;::::1;12445:51:1::0;12512:18;;;12505:34;;;12418:18;;23386:42:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22281:226::-:0;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;22377:3:::1;22369:4;:11;;22361:62;;;::::0;-1:-1:-1;;;22361:62:0;;13002:2:1;22361:62:0::1;::::0;::::1;12984:21:1::0;13041:2;13021:18;;;13014:30;13080:34;13060:18;;;13053:62;-1:-1:-1;;;13131:18:1;;;13124:36;13177:19;;22361:62:0::1;12800:402:1::0;22361:62:0::1;22449:16;:4:::0;22456:9:::1;22449:16;:::i;:::-;22434:12;:31:::0;-1:-1:-1;22476:15:0::1;:23:::0;;-1:-1:-1;;22476:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22281:226::o;21812:250::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;21894:14:::1;::::0;-1:-1:-1;;;21894:14:0;::::1;;;21893:15;21885:65;;;::::0;-1:-1:-1;;;21885:65:0;;13409:2:1;21885:65:0::1;::::0;::::1;13391:21:1::0;13448:2;13428:18;;;13421:30;13487:34;13467:18;;;13460:62;-1:-1:-1;;;13538:18:1;;;13531:35;13583:19;;21885:65:0::1;13207:401:1::0;21885:65:0::1;21981:1;21969:9;:13;21961:62;;;::::0;-1:-1:-1;;;21961:62:0;;13815:2:1;21961:62:0::1;::::0;::::1;13797:21:1::0;13854:2;13834:18;;;13827:30;13893:34;13873:18;;;13866:62;-1:-1:-1;;;13944:18:1;;;13937:35;13989:19;;21961:62:0::1;13613:401:1::0;21961:62:0::1;22034:8;:20:::0;21812:250::o;10541:192::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10630:22:0;::::1;10622:73;;;::::0;-1:-1:-1;;;10622:73:0;;14221:2:1;10622:73:0::1;::::0;::::1;14203:21:1::0;14260:2;14240:18;;;14233:30;14299:34;14279:18;;;14272:62;-1:-1:-1;;;14350:18:1;;;14343:36;14396:19;;10622:73:0::1;14019:402:1::0;10622:73:0::1;10706:19;10716:8;10706:9;:19::i;:::-;10541:192:::0;:::o;21149:262::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;21311:2:::1;21279:27;21296:10:::0;21279:14;:27:::1;:::i;:::-;21278:35;;21270:77;;;::::0;-1:-1:-1;;;21270:77:0;;14628:2:1;21270:77:0::1;::::0;::::1;14610:21:1::0;14667:2;14647:18;;;14640:30;14706:31;14686:18;;;14679:59;14755:18;;21270:77:0::1;14426:353:1::0;21270:77:0::1;21370:33;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;21358:9:::1;:45:::0;;;;;;21149:262::o;20884:257::-;10289:6;;-1:-1:-1;;;;;10289:6:0;209:10;10351:23;10343:68;;;;-1:-1:-1;;;10343:68:0;;;;;;;:::i;:::-;21045:2:::1;21013:27;21030:10:::0;21013:14;:27:::1;:::i;:::-;21012:35;;21004:77;;;::::0;-1:-1:-1;;;21004:77:0;;14628:2:1;21004:77:0::1;::::0;::::1;14610:21:1::0;14667:2;14647:18;;;14640:30;14706:31;14686:18;;;14679:59;14755:18;;21004:77:0::1;14426:353:1::0;21004:77:0::1;21100:33;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;21092:5:::1;:41:::0;;;;;;20884:257::o;9249:380::-;-1:-1:-1;;;;;9385:19:0;;9377:68;;;;-1:-1:-1;;;9377:68:0;;14986:2:1;9377:68:0;;;14968:21:1;15025:2;15005:18;;;14998:30;15064:34;15044:18;;;15037:62;-1:-1:-1;;;15115:18:1;;;15108:34;15159:19;;9377:68:0;14784:400:1;9377:68:0;-1:-1:-1;;;;;9464:21:0;;9456:68;;;;-1:-1:-1;;;9456:68:0;;15391:2:1;9456:68:0;;;15373:21:1;15430:2;15410:18;;;15403:30;15469:34;15449:18;;;15442:62;-1:-1:-1;;;15520:18:1;;;15513:32;15562:19;;9456:68:0;15189:398:1;9456:68:0;-1:-1:-1;;;;;9537:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9589:32;;3379:25:1;;;9589:32:0;;3352:18:1;9589:32:0;;;;;;;9249:380;;;:::o;15183:2756::-;15333:1;15324:6;:10;15316:64;;;;-1:-1:-1;;;15316:64:0;;15794:2:1;15316:64:0;;;15776:21:1;15833:2;15813:18;;;15806:30;15872:34;15852:18;;;15845:62;-1:-1:-1;;;15923:18:1;;;15916:39;15972:19;;15316:64:0;15592:405:1;15316:64:0;-1:-1:-1;;;;;15398:17:0;;;;;;:9;:17;;;;;;;;15397:18;:43;;;;-1:-1:-1;;;;;;15420:20:0;;;;;;:9;:20;;;;;;;;15419:21;15397:43;15393:122;;;15465:14;;-1:-1:-1;;;15465:14:0;;;;15457:46;;;;-1:-1:-1;;;15457:46:0;;16204:2:1;15457:46:0;;;16186:21:1;16243:2;16223:18;;;16216:30;-1:-1:-1;;;16262:18:1;;;16255:49;16321:18;;15457:46:0;16002:343:1;15457:46:0;15541:4;;-1:-1:-1;;;;;15531:14:0;;;15541:4;;15531:14;:39;;;;-1:-1:-1;;;;;;15550:20:0;;;;;;:9;:20;;;;;;;;15549:21;15531:39;:54;;;;-1:-1:-1;15575:10:0;;-1:-1:-1;;;15575:10:0;;;;15574:11;15531:54;15527:228;;;15661:14;;15651:6;15628:20;15638:9;-1:-1:-1;;;;;3799:18:0;3772:7;3799:18;;;;;;;;;;;;3698:127;15628:20;:29;;;;:::i;:::-;:47;;15602:141;;;;-1:-1:-1;;;15602:141:0;;16552:2:1;15602:141:0;;;16534:21:1;;;16571:18;;;16564:30;16630:34;16610:18;;;16603:62;16682:18;;15602:141:0;16350:356:1;15602:141:0;15795:4;;-1:-1:-1;;;;;15785:14:0;;;15795:4;;15785:14;;;;:39;;-1:-1:-1;;;;;;15804:20:0;;;;;;:9;:20;;;;;;;;15803:21;15785:39;:61;;;;-1:-1:-1;;;;;;15829:17:0;;;;;;:9;:17;;;;;;;;15828:18;15785:61;:76;;;;-1:-1:-1;15851:10:0;;-1:-1:-1;;;15851:10:0;;;;15850:11;15785:76;15767:597;;;15905:4;;-1:-1:-1;;;;;15892:17:0;;;15905:4;;15892:17;15888:211;;15993:14;;15983:6;15960:20;15970:9;-1:-1:-1;;;;;3799:18:0;3772:7;3799:18;;;;;;;;;;;;3698:127;15960:20;:29;;;;:::i;:::-;:47;;15930:153;;;;-1:-1:-1;;;15930:153:0;;16552:2:1;15930:153:0;;;16534:21:1;;;16571:18;;;16564:30;16630:34;16610:18;;;16603:62;16682:18;;15930:153:0;16350:356:1;15930:153:0;16117:15;;;;16113:240;;;-1:-1:-1;;;;;16192:17:0;;16153:18;16192:17;;;:9;:17;;;;;;16174:35;;:15;:35;:::i;:::-;16153:56;;16250:12;;16236:10;:26;;16228:55;;;;-1:-1:-1;;;16228:55:0;;16913:2:1;16228:55:0;;;16895:21:1;16952:2;16932:18;;;16925:30;-1:-1:-1;;;16971:18:1;;;16964:46;17027:18;;16228:55:0;16711:340:1;16228:55:0;-1:-1:-1;;;;;;16302:17:0;;;;;;:9;:17;;;;;16322:15;16302:35;;16113:240;16376:15;16402:14;16427:11;16449:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;16449:25:0;-1:-1:-1;;;;;16508:17:0;;16487;16508;;;:9;:17;;;;;;;;16507:18;:56;;;;-1:-1:-1;;;;;;16543:20:0;;;;;;:9;:20;;;;;;;;16542:21;16507:56;:112;;;;;16611:8;;16595:13;;:24;;;;:::i;:::-;16580:12;:39;16507:112;16707:10;;16487:132;;-1:-1:-1;;;;16707:10:0;;;;;:31;;-1:-1:-1;;;;;;16721:17:0;;;;;;:9;:17;;;;;;;;16707:31;:55;;;-1:-1:-1;;;;;;16742:20:0;;;;;;:9;:20;;;;;;;;16707:55;16703:656;;;16783:1;16777:7;;16703:656;;;16848:4;;-1:-1:-1;;;;;16835:17:0;;;16848:4;;16835:17;:34;;;;;16857:12;16856:13;16835:34;16831:528;;;16952:9;:23;16913:19;;:62;;16952:23;16913:62;:::i;:::-;17021:24;;;;;;;;;17036:9;17021:24;;;;;;;;;16886:89;;-1:-1:-1;16886:89:0;;-1:-1:-1;17021:24:0;-1:-1:-1;16831:528:0;;;17068:12;17063:296;;17159:5;:19;17124:15;;:54;;17159:19;17124:54;:::i;:::-;17224:20;;;;;;;;;17239:5;17224:20;;;;;;;;;17097:81;;-1:-1:-1;17097:81:0;;-1:-1:-1;17224:20:0;-1:-1:-1;17063:296:0;;;17266:12;17262:97;;;17305:9;;;-1:-1:-1;17305:9:0;;-1:-1:-1;17262:97:0;17397:3;17378:15;17387:6;17378;:15;:::i;:::-;17377:23;;;;:::i;:::-;17514:18;;17371:29;;-1:-1:-1;;;;17514:18:0;;;;:36;;;;-1:-1:-1;17546:4:0;;-1:-1:-1;;;;;17536:14:0;;;17546:4;;17536:14;;17514:36;17510:72;;;17552:30;17560:7;17569:12;17552:7;:30::i;:::-;17624:48;17640:6;17648:9;17659:12;17668:3;17659:6;:12;:::i;:::-;17624:15;:48::i;:::-;17687:7;;17683:249;;17759:11;;17755:164;;17791:17;17832:3;17812:16;17821:7;17812:6;:16;:::i;:::-;17811:24;;;;:::i;:::-;17791:44;;17854:49;17870:6;17886:4;17893:9;17854:15;:49::i;:::-;17772:147;17755:164;15305:2634;;;;;15183:2756;;;:::o;10741:173::-;10816:6;;;-1:-1:-1;;;;;10833:17:0;;;-1:-1:-1;;;;;;10833:17:0;;;;;;;10866:40;;10816:6;;;10833:17;10816:6;;10866:40;;10797:16;;10866:40;10786:128;10741:173;:::o;17947:1457::-;12869:10;;-1:-1:-1;;;12869:10:0;;;;12864:110;;12896:10;:17;;-1:-1:-1;;;;12896:17:0;-1:-1:-1;;;12896:17:0;;;18041:12;18038:49:::1;;18069:7;;18038:49;18143:4;18099:23;3799:18:::0;;;;;;;;;;;18183:23:::1;::::0;18164:42;::::1;18160:1237;;18253:1;18227:23;;:27;18223:109;;;-1:-1:-1::0;18293:23:0::1;::::0;18223:109:::1;18403:19;18425:11;:7:::0;18435:1:::1;18425:11;:::i;:::-;18403:33;;18451:32;18545:11;18505:9;:19;;;18487:15;:37;;;;:::i;:::-;18486:70;;;;:::i;:::-;18451:105:::0;-1:-1:-1;18571:14:0::1;18588:42;18451:105:::0;18588:15;:42:::1;:::i;:::-;18571:59:::0;-1:-1:-1;18672:21:0::1;18710:24;18571:59:::0;18710:16:::1;:24::i;:::-;18751:20;18774:38;18798:14:::0;18774:21:::1;:38;:::i;:::-;18751:61;;18827:19;18879:9;:19;;;18865:11;:33;;;;:::i;:::-;18849:50;::::0;:12;:50:::1;:::i;:::-;18827:72;;18914:29;18960:9;:19;;;18946:11;:33;;;;:::i;:::-;18914:65:::0;-1:-1:-1;19000:25:0;;18996:172:::1;;19091:61;19104:24;19130:21;19091:12;:61::i;:::-;19229:23:::0;;19184:24:::1;::::0;19211:15:::1;:11:::0;19225:1:::1;19211:15;:::i;:::-;:41;;;;:::i;:::-;19184:68:::0;-1:-1:-1;19271:20:0;;19267:117:::1;;19320:19;::::0;19312:56:::1;::::0;-1:-1:-1;;;;;19320:19:0::1;19351:16:::0;19312:38:::1;:56::i;:::-;18208:1189;;;;;;;;18160:1237;18025:1379;12928:1;12944:10:::0;:18;;-1:-1:-1;;;;12944:18:0;;;17947:1457;;:::o;7830:578::-;-1:-1:-1;;;;;7970:20:0;;7962:70;;;;-1:-1:-1;;;7962:70:0;;17480:2:1;7962:70:0;;;17462:21:1;17519:2;17499:18;;;17492:30;17558:34;17538:18;;;17531:62;-1:-1:-1;;;17609:18:1;;;17602:35;17654:19;;7962:70:0;17278:401:1;7962:70:0;-1:-1:-1;;;;;8051:23:0;;8043:71;;;;-1:-1:-1;;;8043:71:0;;17886:2:1;8043:71:0;;;17868:21:1;17925:2;17905:18;;;17898:30;17964:34;17944:18;;;17937:62;-1:-1:-1;;;18015:18:1;;;18008:33;18058:19;;8043:71:0;17684:399:1;8043:71:0;-1:-1:-1;;;;;8151:17:0;;8127:21;8151:17;;;;;;;;;;;8187:23;;;;8179:74;;;;-1:-1:-1;;;8179:74:0;;18290:2:1;8179:74:0;;;18272:21:1;18329:2;18309:18;;;18302:30;18368:34;18348:18;;;18341:62;-1:-1:-1;;;18419:18:1;;;18412:36;18465:19;;8179:74:0;18088:402:1;8179:74:0;8284:22;8300:6;8284:13;:22;:::i;:::-;-1:-1:-1;;;;;8264:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8317:20;;;;;;;;:30;;8341:6;;8264:9;8317:30;;8341:6;;8317:30;:::i;:::-;;;;;;;;8382:9;-1:-1:-1;;;;;8365:35:0;8374:6;-1:-1:-1;;;;;8365:35:0;;8393:6;8365:35;;;;3379:25:1;;3367:2;3352:18;;3233:177;8365:35:0;;;;;;;;7951:457;7830:578;;;:::o;19412:534::-;19562:16;;;19576:1;19562:16;;;;;;;;19538:21;;19562:16;;;;;;;;;;-1:-1:-1;19562:16:0;19538:40;;19607:4;19589;19594:1;19589:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19589:23:0;;;:7;;;;;;;;;;:23;;;;19633:6;;:13;;;-1:-1:-1;;;19633:13:0;;;;:6;;;;;:11;;:13;;;;;19589:7;;19633:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19623:4;19628:1;19623:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19623:23:0;;;:7;;;;;;;;;:23;19691:6;;19659:53;;19676:4;;19691:6;19700:11;19659:8;:53::i;:::-;19751:6;;:187;;-1:-1:-1;;;19751:187:0;;-1:-1:-1;;;;;19751:6:0;;;;:57;;:187;;19823:11;;19751:6;;19865:4;;19892;;19912:15;;19751:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19467:479;19412:534;:::o;19954:497::-;20134:6;;20102:53;;20119:4;;-1:-1:-1;;;;;20134:6:0;20143:11;20102:8;:53::i;:::-;20198:6;;-1:-1:-1;;;;;20198:6:0;:22;20229:9;20263:4;20283:11;20198:6;;20395:7;10289:6;;-1:-1:-1;;;;;10289:6:0;;10216:87;20395:7;20198:245;;;;;;-1:-1:-1;;;;;;20198:245:0;;;-1:-1:-1;;;;;20095:15:1;;;20198:245:0;;;20077:34:1;20127:18;;;20120:34;;;;20170:18;;;20163:34;;;;20213:18;;;20206:34;20277:15;;;20256:19;;;20249:44;20417:15:0;20309:19:1;;;20302:35;20011:19;;20198:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19954:497;;:::o;9659:319::-;9774:6;9749:21;:31;;9741:73;;;;-1:-1:-1;;;9741:73:0;;20861:2:1;9741:73:0;;;20843:21:1;20900:2;20880:18;;;20873:30;20939:31;20919:18;;;20912:59;20988:18;;9741:73:0;20659:353:1;9741:73:0;9828:12;9846:9;-1:-1:-1;;;;;9846:14:0;9869:6;9846:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9827:54;;;9900:7;9892:78;;;;-1:-1:-1;;;9892:78:0;;21429:2:1;9892:78:0;;;21411:21:1;21468:2;21448:18;;;21441:30;21507:34;21487:18;;;21480:62;21578:28;21558:18;;;21551:56;21624:19;;9892:78:0;21227:422:1;14:597;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:127::-;1464:10;1459:3;1455:20;1452:1;1445:31;1495:4;1492:1;1485:15;1519:4;1516:1;1509:15;1535:118;1621:5;1614:13;1607:21;1600:5;1597:32;1587:60;;1643:1;1640;1633:12;1658:128;1723:20;;1752:28;1723:20;1752:28;:::i;1791:1191::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:52;;;1958:1;1955;1948:12;1910:52;1998:9;1985:23;2027:18;2068:2;2060:6;2057:14;2054:34;;;2084:1;2081;2074:12;2054:34;2122:6;2111:9;2107:22;2097:32;;2167:7;2160:4;2156:2;2152:13;2148:27;2138:55;;2189:1;2186;2179:12;2138:55;2225:2;2212:16;2247:4;2270:2;2266;2263:10;2260:36;;;2276:18;;:::i;:::-;2322:2;2319:1;2315:10;2354:2;2348:9;2417:2;2413:7;2408:2;2404;2400:11;2396:25;2388:6;2384:38;2472:6;2460:10;2457:22;2452:2;2440:10;2437:18;2434:46;2431:72;;;2483:18;;:::i;:::-;2519:2;2512:22;2569:18;;;2603:15;;;;-1:-1:-1;2645:11:1;;;2641:20;;;2673:19;;;2670:39;;;2705:1;2702;2695:12;2670:39;2729:11;;;;2749:148;2765:6;2760:3;2757:15;2749:148;;;2831:23;2850:3;2831:23;:::i;:::-;2819:36;;2782:12;;;;2875;;;;2749:148;;;2916:6;-1:-1:-1;2941:35:1;;-1:-1:-1;2957:18:1;;;2941:35;:::i;:::-;2931:45;;;;;;1791:1191;;;;;:::o;2987:241::-;3043:6;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;3151:9;3138:23;3170:28;3192:5;3170:28;:::i;:::-;3217:5;2987:241;-1:-1:-1;;;2987:241:1:o;3623:456::-;3700:6;3708;3716;3769:2;3757:9;3748:7;3744:23;3740:32;3737:52;;;3785:1;3782;3775:12;3737:52;3824:9;3811:23;3843:31;3868:5;3843:31;:::i;:::-;3893:5;-1:-1:-1;3950:2:1;3935:18;;3922:32;3963:33;3922:32;3963:33;:::i;:::-;3623:456;;4015:7;;-1:-1:-1;;;4069:2:1;4054:18;;;;4041:32;;3623:456::o;4273:382::-;4338:6;4346;4399:2;4387:9;4378:7;4374:23;4370:32;4367:52;;;4415:1;4412;4405:12;4367:52;4454:9;4441:23;4473:31;4498:5;4473:31;:::i;:::-;4523:5;-1:-1:-1;4580:2:1;4565:18;;4552:32;4593:30;4552:32;4593:30;:::i;:::-;4642:7;4632:17;;;4273:382;;;;;:::o;4660:388::-;4728:6;4736;4789:2;4777:9;4768:7;4764:23;4760:32;4757:52;;;4805:1;4802;4795:12;4757:52;4844:9;4831:23;4863:31;4888:5;4863:31;:::i;:::-;4913:5;-1:-1:-1;4970:2:1;4955:18;;4942:32;4983:33;4942:32;4983:33;:::i;5053:180::-;5112:6;5165:2;5153:9;5144:7;5140:23;5136:32;5133:52;;;5181:1;5178;5171:12;5133:52;-1:-1:-1;5204:23:1;;5053:180;-1:-1:-1;5053:180:1:o;5238:247::-;5297:6;5350:2;5338:9;5329:7;5325:23;5321:32;5318:52;;;5366:1;5363;5356:12;5318:52;5405:9;5392:23;5424:31;5449:5;5424:31;:::i;5743:309::-;5808:6;5816;5869:2;5857:9;5848:7;5844:23;5840:32;5837:52;;;5885:1;5882;5875:12;5837:52;5924:9;5911:23;5943:28;5965:5;5943:28;:::i;6057:248::-;6125:6;6133;6186:2;6174:9;6165:7;6161:23;6157:32;6154:52;;;6202:1;6199;6192:12;6154:52;-1:-1:-1;;6225:23:1;;;6295:2;6280:18;;;6267:32;;-1:-1:-1;6057:248:1:o;6533:380::-;6612:1;6608:12;;;;6655;;;6676:61;;6730:4;6722:6;6718:17;6708:27;;6676:61;6783:2;6775:6;6772:14;6752:18;6749:38;6746:161;;;6829:10;6824:3;6820:20;6817:1;6810:31;6864:4;6861:1;6854:15;6892:4;6889:1;6882:15;6746:161;;6533:380;;;:::o;6918:356::-;7120:2;7102:21;;;7139:18;;;7132:30;7198:34;7193:2;7178:18;;7171:62;7265:2;7250:18;;6918:356::o;7279:127::-;7340:10;7335:3;7331:20;7328:1;7321:31;7371:4;7368:1;7361:15;7395:4;7392:1;7385:15;7411:127;7472:10;7467:3;7463:20;7460:1;7453:31;7503:4;7500:1;7493:15;7527:4;7524:1;7517:15;7543:135;7582:3;-1:-1:-1;;7603:17:1;;7600:43;;;7623:18;;:::i;:::-;-1:-1:-1;7670:1:1;7659:13;;7543:135::o;8445:125::-;8485:4;8513:1;8510;8507:8;8504:34;;;8518:18;;:::i;:::-;-1:-1:-1;8555:9:1;;8445:125::o;8575:128::-;8615:3;8646:1;8642:6;8639:1;8636:13;8633:39;;;8652:18;;:::i;:::-;-1:-1:-1;8688:9:1;;8575:128::o;9069:422::-;9158:1;9201:5;9158:1;9215:270;9236:7;9226:8;9223:21;9215:270;;;9295:4;9291:1;9287:6;9283:17;9277:4;9274:27;9271:53;;;9304:18;;:::i;:::-;9354:7;9344:8;9340:22;9337:55;;;9374:16;;;;9337:55;9453:22;;;;9413:15;;;;9215:270;;;9219:3;9069:422;;;;;:::o;9496:806::-;9545:5;9575:8;9565:80;;-1:-1:-1;9616:1:1;9630:5;;9565:80;9664:4;9654:76;;-1:-1:-1;9701:1:1;9715:5;;9654:76;9746:4;9764:1;9759:59;;;;9832:1;9827:130;;;;9739:218;;9759:59;9789:1;9780:10;;9803:5;;;9827:130;9864:3;9854:8;9851:17;9848:43;;;9871:18;;:::i;:::-;-1:-1:-1;;9927:1:1;9913:16;;9942:5;;9739:218;;10041:2;10031:8;10028:16;10022:3;10016:4;10013:13;10009:36;10003:2;9993:8;9990:16;9985:2;9979:4;9976:12;9972:35;9969:77;9966:159;;;-1:-1:-1;10078:19:1;;;10110:5;;9966:159;10157:34;10182:8;10176:4;10157:34;:::i;:::-;10227:6;10223:1;10219:6;10215:19;10206:7;10203:32;10200:58;;;10238:18;;:::i;:::-;10276:20;;9496:806;-1:-1:-1;;;9496:806:1:o;10307:140::-;10365:5;10394:47;10435:4;10425:8;10421:19;10415:4;10394:47;:::i;10452:168::-;10492:7;10558:1;10554;10550:6;10546:14;10543:1;10540:21;10535:1;10528:9;10521:17;10517:45;10514:71;;;10565:18;;:::i;:::-;-1:-1:-1;10605:9:1;;10452:168::o;12550:245::-;12617:6;12670:2;12658:9;12649:7;12645:23;12641:32;12638:52;;;12686:1;12683;12676:12;12638:52;12718:9;12712:16;12737:28;12759:5;12737:28;:::i;17056:217::-;17096:1;17122;17112:132;;17166:10;17161:3;17157:20;17154:1;17147:31;17201:4;17198:1;17191:15;17229:4;17226:1;17219:15;17112:132;-1:-1:-1;17258:9:1;;17056:217::o;18495:251::-;18565:6;18618:2;18606:9;18597:7;18593:23;18589:32;18586:52;;;18634:1;18631;18624:12;18586:52;18666:9;18660:16;18685:31;18710:5;18685:31;:::i;18751:980::-;19013:4;19061:3;19050:9;19046:19;19092:6;19081:9;19074:25;19118:2;19156:6;19151:2;19140:9;19136:18;19129:34;19199:3;19194:2;19183:9;19179:18;19172:31;19223:6;19258;19252:13;19289:6;19281;19274:22;19327:3;19316:9;19312:19;19305:26;;19366:2;19358:6;19354:15;19340:29;;19387:1;19397:195;19411:6;19408:1;19405:13;19397:195;;;19476:13;;-1:-1:-1;;;;;19472:39:1;19460:52;;19567:15;;;;19532:12;;;;19508:1;19426:9;19397:195;;;-1:-1:-1;;;;;;;19648:32:1;;;;19643:2;19628:18;;19621:60;-1:-1:-1;;;19712:3:1;19697:19;19690:35;19609:3;18751:980;-1:-1:-1;;;18751:980:1:o;20348:306::-;20436:6;20444;20452;20505:2;20493:9;20484:7;20480:23;20476:32;20473:52;;;20521:1;20518;20511:12;20473:52;20550:9;20544:16;20534:26;;20600:2;20589:9;20585:18;20579:25;20569:35;;20644:2;20633:9;20629:18;20623:25;20613:35;;20348:306;;;;;:::o

Swarm Source

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