ETH Price: $3,409.39 (+2.94%)
Gas: 9.58 Gwei

Token

Beavis and Butthead Run It Back (UHHH)
 

Overview

Max Total Supply

1,000,000,000,000 UHHH

Holders

92

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,461,632,301.207166274101032618 UHHH

Value
$0.00
0xd350044e87a7ce167f524f2e137925060f3e190d
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:
UHHHTOKEN

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-15
*/

/* 

 
       ________________                              _______________ 
      /                \                            / /           \ \ 
     / /          \ \   \                          |    -    -       \
     |                  |                          | /        -   \  |
    /                  /                           \                 \
   |      ___\ \| | / /                             \____________  \  \
   |      /           |                             |            \    | 
   |      |     __    |                             |             \   \ 
  /       |       \   |                             |              \  | 
  |       |        \  |                             | ====          | |
  |       |       __  |                             | (o-)      _   | | 
  |      __\     (_o) |                             /            \  | |
  |     |             |     Heh Heh Heh            /            ) ) | |
   \    ||             \      /   Uhhh Uhhh Uhhh  /             ) / | | 
    |   |__             \    /                \  |___            - |  | 
    |   |           (*___\  /                  \    *'             |  |
    |   |       _     |    /                    \  |____           |  |
    |   |    //_______|                             ####\          |  |
    |  /       |_|_|_|___/\                        ------          |_/  
     \|       \ -         |                        |                | 
      |       _----_______/                        \_____           | 
      |      /                                          \           |
      |_____/                                            \__________|


beavisandbutthead.co
$UHHH

*/


// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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 IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

      function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

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

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

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

        return true;
    }

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

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

        return true;
    }

    function _createInitialSupply(address account, uint256 amount)
        internal
        virtual
    {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

     function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

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

        emit Transfer(sender, recipient, amount);
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership(bool confirmRenounce)
        external
        virtual
        onlyOwner
    {
        require(confirmRenounce, "Please confirm renounce!");
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface ILpPair {
    function sync() external;
}

interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);
}

interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

contract UHHHTOKEN is ERC20, Ownable {
    IDexRouter public dexRouter;
    address public lpPair;
    bool private swapping;
    uint256 public swapTokensAtAmount;
    address public projectWallet;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;

    uint256 public tradingActiveBlock = 0;
    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWallet;
    uint256 public sellTotalFees;
    uint256 public sellProjectFee;
    uint256 public sellLiquidityFee;
    uint256 public tokensForProject;
    uint256 public tokensForLiquidity;
    uint256 public buyTotalFees;
    uint256 public buyProjectFee;
    uint256 public buyLiquidityFee;
    bool public noFees;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event TradingEnabled();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedProjectWallet(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool excluded);

    event OwnerForcedSwapBack(uint256 timestamp);

    event CaughtEarlyBuyer(address sniper);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    event TransferForeignToken(address token, uint256 amount);

    constructor() payable ERC20("Beavis and Butthead Run It Back", "UHHH") {
        address newOwner = msg.sender;
        address _dexRouter;
        _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        dexRouter = IDexRouter(_dexRouter);
        _excludeFromMaxTransaction(address(lpPair), true);
        _setAutomatedMarketMakerPair(address(lpPair), true);
        lpPair = IDexFactory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );

        uint256 totalSupply = 1_000_000_000_000 * 1e18;

        maxBuyAmount = (totalSupply * 2) / 100;
        maxSellAmount = (totalSupply * 2) / 100;
        maxWallet = (totalSupply * 2) / 100;
        swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05 %
        buyProjectFee = 9;
        buyLiquidityFee = 1;
        sellProjectFee = 19;
        sellLiquidityFee = 1;
        noFees = false;

        buyTotalFees = buyProjectFee + buyLiquidityFee;
        sellTotalFees = sellProjectFee + sellLiquidityFee;

        projectWallet = address(0x14AA132C7368Ed01D4909E9c927af03Df73D20C6);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(projectWallet), true);
        excludeFromFees(address(dexRouter), true);
        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);
        _excludeFromMaxTransaction(address(projectWallet), true);
        _excludeFromMaxTransaction(address(dexRouter), true);
        _createInitialSupply(newOwner, totalSupply);

        transferOwnership(newOwner);
    }

    receive() external payable {}


     function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        _excludeFromMaxTransaction(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(uint256 _projectFee, uint256 _liquidityFee)
        external
        onlyOwner
    {
        buyProjectFee = _projectFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyProjectFee + buyLiquidityFee;
    }

    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }

    function _excludeFromMaxTransaction(address updAds, bool isExcluded)
        private
    {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        external
        onlyOwner
    {
        if (!isEx) {
            require(
                updAds != lpPair,
                "Cannot remove uniswap pair from max txn"
            );
        }
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        external
        onlyOwner
    {
        require(
            pair != lpPair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );
        _setAutomatedMarketMakerPair(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateSellFees(uint256 _projectFee, uint256 _liquidityFee)
        external
        onlyOwner
    {
        sellProjectFee = _projectFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellProjectFee + sellLiquidityFee;
    }

    function setNoFees(bool _nofees)
        external
        onlyOwner
    {
       noFees = _nofees;
    }
    


    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "amount must be greater than 0");

        if (!tradingActive) {
            require(
                _isExcludedFromFees[from] || _isExcludedFromFees[to],
                "Trading is not active."
            );
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                !_isExcludedFromFees[from] &&
                !_isExcludedFromFees[to]
            ) {
                if (transferDelayEnabled) {
                    if (to != address(dexRouter) && to != address(lpPair)) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] <
                                block.number - 2 &&
                                _holderLastTransferTimestamp[to] <
                                block.number - 2,
                            "_transfer:: Transfer Delay enabled.  Try again later."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxBuyAmount,
                        "Buy transfer amount exceeds the max buy."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max Wallet Exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxSellAmount,
                        "Sell transfer amount exceeds the max sell."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max Wallet Exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap && swapEnabled && !swapping && automatedMarketMakerPairs[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = true;
        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        if (noFees) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 100;
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForProject += (fees * sellProjectFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForProject += (fees * buyProjectFee) / buyTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }


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

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

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

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

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForProject;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }

        bool success;

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;

        swapTokensForEth(contractBalance - liquidityTokens);

        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForProject = (ethBalance * tokensForProject) /
            (totalTokensToSwap - (tokensForLiquidity / 2));

        ethForLiquidity -= ethForProject;

        tokensForLiquidity = 0;
        tokensForProject = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success, ) = address(projectWallet).call{
            value: address(this).balance
        }("");
    }

    function transferForeignToken(address _token, address _to)
        external
        onlyOwner
        returns (bool _sent)
    {
        require(_token != address(0), "_token address cannot be 0");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    // withdraw ETH if stuck or someone sends to the address
    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success, ) = address(msg.sender).call{value: address(this).balance}(
            ""
        );
    }

    function enableTrading() external onlyOwner {
        require(!tradingActive, "Cannot reenable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        emit TradingEnabled();
    }

    function updateBuySellLimit(uint256 _buyAmount, uint256 _sellAmount, uint256 _walletAmount)
        external
        onlyOwner
    {
        maxSellAmount = _sellAmount;
        maxBuyAmount = _buyAmount;
        maxWallet = _walletAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":false,"internalType":"address","name":"sniper","type":"address"}],"name":"CaughtEarlyBuyer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerForcedSwapBack","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingEnabled","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedProjectWallet","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyProjectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"noFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"confirmRenounce","type":"bool"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellProjectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_nofees","type":"bool"}],"name":"setNoFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForProject","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":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","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":"uint256","name":"_projectFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyAmount","type":"uint256"},{"internalType":"uint256","name":"_sellAmount","type":"uint256"},{"internalType":"uint256","name":"_walletAmount","type":"uint256"}],"name":"updateBuySellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_projectFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6009805462ffffff60a01b1916600160a01b179055600b805460ff191660011790556000600c55601f60809081527f42656176697320616e642042757474686561642052756e204974204261636b0060a052610100604052600460c0908152630aa9090960e31b60e05260036200007783826200089d565b5060046200008682826200089d565b50505060006200009b6200049560201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062002ff6833981519152908290a350600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556007543391906200011d906001600160a01b0316600162000499565b60075462000136906001600160a01b03166001620004fc565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b0919062000969565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000213573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000239919062000969565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad919062000969565b600780546001600160a01b0319166001600160a01b03929092169190911790556c0c9f2c9cd04674edea400000006064620002ea826002620009b1565b620002f69190620009d1565b600d55606462000308826002620009b1565b620003149190620009d1565b600e55606462000326826002620009b1565b620003329190620009d1565b600f5561271062000345826005620009b1565b620003519190620009d1565b6008556009601681905560016017819055601360115560128190556018805460ff191690556200038191620009f4565b601555601254601154620003969190620009f4565b601055600980546001600160a01b0319167314aa132c7368ed01d4909e9c927af03df73d20c6179055620003cc83600162000568565b620003d930600162000568565b620003e861dead600162000568565b60095462000401906001600160a01b0316600162000568565b6006546200041a906001600160a01b0316600162000568565b6200042783600162000499565b6200043430600162000499565b6200044361dead600162000499565b6009546200045c906001600160a01b0316600162000499565b60065462000475906001600160a01b0316600162000499565b62000481838262000616565b6200048c83620006fb565b50505062000a0a565b3390565b6001600160a01b0382166000818152601a6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601b60205260409020805460ff19168215151790556200052c828262000499565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03163314620005b75760405162461bcd60e51b8152602060048201819052602482015260008051602062002fd683398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200066e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620005ae565b8060026000828254620006829190620009f4565b90915550506001600160a01b03821660009081526020819052604081208054839290620006b1908490620009f4565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620007465760405162461bcd60e51b8152602060048201819052602482015260008051602062002fd68339815191526044820152606401620005ae565b6001600160a01b038116620007ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620005ae565b6005546040516001600160a01b0380841692169060008051602062002ff683398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200082357607f821691505b6020821081036200084457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200089857600081815260208120601f850160051c81016020861015620008735750805b601f850160051c820191505b8181101562000894578281556001016200087f565b5050505b505050565b81516001600160401b03811115620008b957620008b9620007f8565b620008d181620008ca84546200080e565b846200084a565b602080601f831160018114620009095760008415620008f05750858301515b600019600386901b1c1916600185901b17855562000894565b600085815260208120601f198616915b828110156200093a5788860151825594840194600190910190840162000919565b5085821015620009595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200097c57600080fd5b81516001600160a01b03811681146200099457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620009cb57620009cb6200099b565b92915050565b600082620009ef57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009cb57620009cb6200099b565b6125bc8062000a1a6000396000f3fe6080604052600436106102975760003560e01c80638da5cb5b1161015a578063dd62ed3e116100c1578063f018e7931161007a578063f018e793146107e5578063f11a24d3146107ff578063f2fde38b14610815578063f5648a4f14610835578063f63743421461084a578063f8b45b051461086057600080fd5b8063dd62ed3e14610732578063e2f4560514610778578063e7dd050b1461078e578063e8338a1c146107a4578063e884f260146107ba578063ee40166e146107cf57600080fd5b8063bbc0c74211610113578063bbc0c74214610681578063beb08ab9146106a2578063c0246668146106c2578063c876d0b9146106e2578063caa89345146106fc578063d85ba0631461071c57600080fd5b80638da5cb5b146105be57806395d89b41146105dc5780639a7a23d6146105f1578063a457c2d714610611578063a9059cbb14610631578063b62496f51461065157600080fd5b8063452ed4f1116101fe57806370a08231116101b757806370a08231146104fd5780637571336a146105335780637e926b4b146105535780638366e79a1461057357806388e765ff146105935780638a8c523c146105a957600080fd5b8063452ed4f11461044f5780634a62bb651461046f57806366ca9b831461049057806366d602ae146104b05780636a486a8e146104c65780636ddd1713146104dc57600080fd5b80631a8145bb116102505780631a8145bb146103a757806323b872dd146103bd578063313ce567146103dd578063323401ed146103f957806335b0f3ef1461040f578063395093511461042f57600080fd5b806302dbd8f8146102a357806306fdde03146102c55780630758d924146102f0578063095ea7b31461032857806310d5de531461035857806318160ddd1461038857600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102c36102be36600461213b565b610876565b005b3480156102d157600080fd5b506102da6108c4565b6040516102e7919061215d565b60405180910390f35b3480156102fc57600080fd5b50600654610310906001600160a01b031681565b6040516001600160a01b0390911681526020016102e7565b34801561033457600080fd5b506103486103433660046121c3565b610956565b60405190151581526020016102e7565b34801561036457600080fd5b506103486103733660046121ef565b601a6020526000908152604090205460ff1681565b34801561039457600080fd5b506002545b6040519081526020016102e7565b3480156103b357600080fd5b5061039960145481565b3480156103c957600080fd5b506103486103d8366004612213565b61096d565b3480156103e957600080fd5b50604051601281526020016102e7565b34801561040557600080fd5b5061039960115481565b34801561041b57600080fd5b506102c361042a366004612254565b610a17565b34801561043b57600080fd5b5061034861044a3660046121c3565b610a52565b34801561045b57600080fd5b50600754610310906001600160a01b031681565b34801561047b57600080fd5b5060095461034890600160a01b900460ff1681565b34801561049c57600080fd5b506102c36104ab36600461213b565b610a8e565b3480156104bc57600080fd5b50610399600e5481565b3480156104d257600080fd5b5061039960105481565b3480156104e857600080fd5b5060095461034890600160b01b900460ff1681565b34801561050957600080fd5b506103996105183660046121ef565b6001600160a01b031660009081526020819052604090205490565b34801561053f57600080fd5b506102c361054e36600461228e565b610ad3565b34801561055f57600080fd5b506102c361056e3660046122c7565b610b9b565b34801561057f57600080fd5b5061034861058e3660046122e4565b610c5d565b34801561059f57600080fd5b50610399600d5481565b3480156105b557600080fd5b506102c3610e0e565b3480156105ca57600080fd5b506005546001600160a01b0316610310565b3480156105e857600080fd5b506102da610ed6565b3480156105fd57600080fd5b506102c361060c36600461228e565b610ee5565b34801561061d57600080fd5b5061034861062c3660046121c3565b610fd9565b34801561063d57600080fd5b5061034861064c3660046121c3565b611072565b34801561065d57600080fd5b5061034861066c3660046121ef565b601b6020526000908152604090205460ff1681565b34801561068d57600080fd5b5060095461034890600160a81b900460ff1681565b3480156106ae57600080fd5b50600954610310906001600160a01b031681565b3480156106ce57600080fd5b506102c36106dd36600461228e565b61107f565b3480156106ee57600080fd5b50600b546103489060ff1681565b34801561070857600080fd5b506102c36107173660046122c7565b611108565b34801561072857600080fd5b5061039960155481565b34801561073e57600080fd5b5061039961074d3660046122e4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561078457600080fd5b5061039960085481565b34801561079a57600080fd5b5061039960165481565b3480156107b057600080fd5b5061039960135481565b3480156107c657600080fd5b506102c3611145565b3480156107db57600080fd5b50610399600c5481565b3480156107f157600080fd5b506018546103489060ff1681565b34801561080b57600080fd5b5061039960175481565b34801561082157600080fd5b506102c36108303660046121ef565b61117b565b34801561084157600080fd5b506102c3611266565b34801561085657600080fd5b5061039960125481565b34801561086c57600080fd5b50610399600f5481565b6005546001600160a01b031633146108a95760405162461bcd60e51b81526004016108a090612312565b60405180910390fd5b601182905560128190556108bd818361235d565b6010555050565b6060600380546108d390612370565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff90612370565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b60006109633384846112dd565b5060015b92915050565b600061097a848484611401565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109ff5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a0565b610a0c85338584036112dd565b506001949350505050565b6005546001600160a01b03163314610a415760405162461bcd60e51b81526004016108a090612312565b600e91909155600d91909155600f55565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610963918590610a8990869061235d565b6112dd565b6005546001600160a01b03163314610ab85760405162461bcd60e51b81526004016108a090612312565b60168290556017819055610acc818361235d565b6015555050565b6005546001600160a01b03163314610afd5760405162461bcd60e51b81526004016108a090612312565b80610b70576007546001600160a01b0390811690831603610b705760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b60648201526084016108a0565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610bc55760405162461bcd60e51b81526004016108a090612312565b80610c125760405162461bcd60e51b815260206004820152601860248201527f506c6561736520636f6e6669726d2072656e6f756e636521000000000000000060448201526064016108a0565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610c8a5760405162461bcd60e51b81526004016108a090612312565b6001600160a01b038316610ce05760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064016108a0565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906123aa565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015610d9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc291906123c3565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610e385760405162461bcd60e51b81526004016108a090612312565b600954600160a81b900460ff1615610e925760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e6700000000000000000060448201526064016108a0565b6009805461ffff60a81b191661010160a81b17905543600c556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c790600090a1565b6060600480546108d390612370565b6005546001600160a01b03163314610f0f5760405162461bcd60e51b81526004016108a090612312565b6007546001600160a01b0390811690831603610f935760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108a0565b610f9d8282611bbf565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561105b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a0565b61106833858584036112dd565b5060019392505050565b6000610963338484611401565b6005546001600160a01b031633146110a95760405162461bcd60e51b81526004016108a090612312565b6001600160a01b038216600081815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111325760405162461bcd60e51b81526004016108a090612312565b6018805460ff1916911515919091179055565b6005546001600160a01b0316331461116f5760405162461bcd60e51b81526004016108a090612312565b600b805460ff19169055565b6005546001600160a01b031633146111a55760405162461bcd60e51b81526004016108a090612312565b6001600160a01b03811661120a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a0565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146112905760405162461bcd60e51b81526004016108a090612312565b604051600090339047908381818185875af1925050503d80600081146112d2576040519150601f19603f3d011682016040523d82523d6000602084013e6112d7565b606091505b50505050565b6001600160a01b03831661133f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a0565b6001600160a01b0382166113a05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114275760405162461bcd60e51b81526004016108a0906123e0565b6001600160a01b03821661144d5760405162461bcd60e51b81526004016108a090612425565b6000811161149d5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016108a0565b600954600160a81b900460ff16611532576001600160a01b03831660009081526019602052604090205460ff16806114ed57506001600160a01b03821660009081526019602052604090205460ff165b6115325760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108a0565b600954600160a01b900460ff1615611937576005546001600160a01b0384811691161480159061157057506005546001600160a01b03838116911614155b801561158757506001600160a01b03821661dead14155b80156115ac57506001600160a01b03831660009081526019602052604090205460ff16155b80156115d157506001600160a01b03821660009081526019602052604090205460ff16155b1561193757600b5460ff16156116ea576006546001600160a01b0383811691161480159061160d57506007546001600160a01b03838116911614155b156116ea5761161d600243612468565b326000908152600a602052604090205410801561165b5750611640600243612468565b6001600160a01b0383166000908152600a6020526040902054105b6116c55760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016108a0565b326000908152600a602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383166000908152601b602052604090205460ff16801561172b57506001600160a01b0382166000908152601a602052604090205460ff16155b1561180257600d548111156117935760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016108a0565b600f546001600160a01b0383166000908152602081905260409020546117b9908361235d565b11156117fd5760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016108a0565b611937565b6001600160a01b0382166000908152601b602052604090205460ff16801561184357506001600160a01b0383166000908152601a602052604090205460ff16155b156118ad57600e548111156117fd5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016108a0565b6001600160a01b0382166000908152601a602052604090205460ff1661193757600f546001600160a01b0383166000908152602081905260409020546118f3908361235d565b11156119375760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016108a0565b30600090815260208190526040902054600854811080159081906119645750600954600160b01b900460ff165b801561197a5750600754600160a01b900460ff16155b801561199e57506001600160a01b0384166000908152601b602052604090205460ff165b156119cc576007805460ff60a01b1916600160a01b1790556119be611bed565b6007805460ff60a01b191690555b6001600160a01b03851660009081526019602052604090205460019060ff1680611a0e57506001600160a01b03851660009081526019602052604090205460ff165b15611a17575060005b60185460ff1615611a26575060005b60008115611bab576001600160a01b0386166000908152601b602052604090205460ff168015611a5857506000601054115b15611ae057606460105486611a6d919061247b565b611a779190612492565b905060105460125482611a8a919061247b565b611a949190612492565b60146000828254611aa5919061235d565b9091555050601054601154611aba908361247b565b611ac49190612492565b60136000828254611ad5919061235d565b90915550611b8d9050565b6001600160a01b0387166000908152601b602052604090205460ff168015611b0a57506000601554115b15611b8d57606460155486611b1f919061247b565b611b299190612492565b905060155460175482611b3c919061247b565b611b469190612492565b60146000828254611b57919061235d565b9091555050601554601654611b6c908361247b565b611b769190612492565b60136000828254611b87919061235d565b90915550505b8015611b9e57611b9e873083611d54565b611ba88186612468565b94505b611bb6878787611d54565b50505050505050565b6001600160a01b0382166000908152601b60205260409020805460ff1916821515179055610f9d8282611ea9565b3060009081526020819052604081205490506000601354601454611c11919061235d565b9050811580611c1e575080155b15611c27575050565b600854611c3590600a61247b565b821115611c4d57600854611c4a90600a61247b565b91505b60008060028360145486611c61919061247b565b611c6b9190612492565b611c759190612492565b9050611c89611c848286612468565b611f0c565b60145447908190600090611c9f90600290612492565b611ca99087612468565b601354611cb6908561247b565b611cc09190612492565b9050611ccc8183612468565b6000601481905560135591508315801590611ce75750600082115b15611cf657611cf68483612066565b6009546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611d43576040519150601f19603f3d011682016040523d82523d6000602084013e611d48565b606091505b50505050505050505050565b6001600160a01b038316611d7a5760405162461bcd60e51b81526004016108a0906123e0565b6001600160a01b038216611da05760405162461bcd60e51b81526004016108a090612425565b6001600160a01b03831660009081526020819052604090205481811015611e185760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108a0565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611e4f90849061235d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e9b91815260200190565b60405180910390a350505050565b6001600160a01b0382166000818152601a6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f4157611f416124b4565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbe91906124ca565b81600181518110611fd157611fd16124b4565b6001600160a01b039283166020918202929092010152600654611ff791309116846112dd565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906120309085906000908690309042906004016124e7565b600060405180830381600087803b15801561204a57600080fd5b505af115801561205e573d6000803e3d6000fd5b505050505050565b60065461207e9030906001600160a01b0316846112dd565b6006546001600160a01b031663f305d7198230856000806120a76005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561210f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121349190612558565b5050505050565b6000806040838503121561214e57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561218a5785810183015185820160400152820161216e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146121c057600080fd5b50565b600080604083850312156121d657600080fd5b82356121e1816121ab565b946020939093013593505050565b60006020828403121561220157600080fd5b813561220c816121ab565b9392505050565b60008060006060848603121561222857600080fd5b8335612233816121ab565b92506020840135612243816121ab565b929592945050506040919091013590565b60008060006060848603121561226957600080fd5b505081359360208301359350604090920135919050565b80151581146121c057600080fd5b600080604083850312156122a157600080fd5b82356122ac816121ab565b915060208301356122bc81612280565b809150509250929050565b6000602082840312156122d957600080fd5b813561220c81612280565b600080604083850312156122f757600080fd5b8235612302816121ab565b915060208301356122bc816121ab565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561096757610967612347565b600181811c9082168061238457607f821691505b6020821081036123a457634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156123bc57600080fd5b5051919050565b6000602082840312156123d557600080fd5b815161220c81612280565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561096757610967612347565b808202811582820484141761096757610967612347565b6000826124af57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156124dc57600080fd5b815161220c816121ab565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125375784516001600160a01b031683529383019391830191600101612512565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561256d57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220555f0f640e705ba3758ee50013c3190a383350300124b4750fe865c806c5667a64736f6c634300081100334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106102975760003560e01c80638da5cb5b1161015a578063dd62ed3e116100c1578063f018e7931161007a578063f018e793146107e5578063f11a24d3146107ff578063f2fde38b14610815578063f5648a4f14610835578063f63743421461084a578063f8b45b051461086057600080fd5b8063dd62ed3e14610732578063e2f4560514610778578063e7dd050b1461078e578063e8338a1c146107a4578063e884f260146107ba578063ee40166e146107cf57600080fd5b8063bbc0c74211610113578063bbc0c74214610681578063beb08ab9146106a2578063c0246668146106c2578063c876d0b9146106e2578063caa89345146106fc578063d85ba0631461071c57600080fd5b80638da5cb5b146105be57806395d89b41146105dc5780639a7a23d6146105f1578063a457c2d714610611578063a9059cbb14610631578063b62496f51461065157600080fd5b8063452ed4f1116101fe57806370a08231116101b757806370a08231146104fd5780637571336a146105335780637e926b4b146105535780638366e79a1461057357806388e765ff146105935780638a8c523c146105a957600080fd5b8063452ed4f11461044f5780634a62bb651461046f57806366ca9b831461049057806366d602ae146104b05780636a486a8e146104c65780636ddd1713146104dc57600080fd5b80631a8145bb116102505780631a8145bb146103a757806323b872dd146103bd578063313ce567146103dd578063323401ed146103f957806335b0f3ef1461040f578063395093511461042f57600080fd5b806302dbd8f8146102a357806306fdde03146102c55780630758d924146102f0578063095ea7b31461032857806310d5de531461035857806318160ddd1461038857600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102c36102be36600461213b565b610876565b005b3480156102d157600080fd5b506102da6108c4565b6040516102e7919061215d565b60405180910390f35b3480156102fc57600080fd5b50600654610310906001600160a01b031681565b6040516001600160a01b0390911681526020016102e7565b34801561033457600080fd5b506103486103433660046121c3565b610956565b60405190151581526020016102e7565b34801561036457600080fd5b506103486103733660046121ef565b601a6020526000908152604090205460ff1681565b34801561039457600080fd5b506002545b6040519081526020016102e7565b3480156103b357600080fd5b5061039960145481565b3480156103c957600080fd5b506103486103d8366004612213565b61096d565b3480156103e957600080fd5b50604051601281526020016102e7565b34801561040557600080fd5b5061039960115481565b34801561041b57600080fd5b506102c361042a366004612254565b610a17565b34801561043b57600080fd5b5061034861044a3660046121c3565b610a52565b34801561045b57600080fd5b50600754610310906001600160a01b031681565b34801561047b57600080fd5b5060095461034890600160a01b900460ff1681565b34801561049c57600080fd5b506102c36104ab36600461213b565b610a8e565b3480156104bc57600080fd5b50610399600e5481565b3480156104d257600080fd5b5061039960105481565b3480156104e857600080fd5b5060095461034890600160b01b900460ff1681565b34801561050957600080fd5b506103996105183660046121ef565b6001600160a01b031660009081526020819052604090205490565b34801561053f57600080fd5b506102c361054e36600461228e565b610ad3565b34801561055f57600080fd5b506102c361056e3660046122c7565b610b9b565b34801561057f57600080fd5b5061034861058e3660046122e4565b610c5d565b34801561059f57600080fd5b50610399600d5481565b3480156105b557600080fd5b506102c3610e0e565b3480156105ca57600080fd5b506005546001600160a01b0316610310565b3480156105e857600080fd5b506102da610ed6565b3480156105fd57600080fd5b506102c361060c36600461228e565b610ee5565b34801561061d57600080fd5b5061034861062c3660046121c3565b610fd9565b34801561063d57600080fd5b5061034861064c3660046121c3565b611072565b34801561065d57600080fd5b5061034861066c3660046121ef565b601b6020526000908152604090205460ff1681565b34801561068d57600080fd5b5060095461034890600160a81b900460ff1681565b3480156106ae57600080fd5b50600954610310906001600160a01b031681565b3480156106ce57600080fd5b506102c36106dd36600461228e565b61107f565b3480156106ee57600080fd5b50600b546103489060ff1681565b34801561070857600080fd5b506102c36107173660046122c7565b611108565b34801561072857600080fd5b5061039960155481565b34801561073e57600080fd5b5061039961074d3660046122e4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561078457600080fd5b5061039960085481565b34801561079a57600080fd5b5061039960165481565b3480156107b057600080fd5b5061039960135481565b3480156107c657600080fd5b506102c3611145565b3480156107db57600080fd5b50610399600c5481565b3480156107f157600080fd5b506018546103489060ff1681565b34801561080b57600080fd5b5061039960175481565b34801561082157600080fd5b506102c36108303660046121ef565b61117b565b34801561084157600080fd5b506102c3611266565b34801561085657600080fd5b5061039960125481565b34801561086c57600080fd5b50610399600f5481565b6005546001600160a01b031633146108a95760405162461bcd60e51b81526004016108a090612312565b60405180910390fd5b601182905560128190556108bd818361235d565b6010555050565b6060600380546108d390612370565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff90612370565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b60006109633384846112dd565b5060015b92915050565b600061097a848484611401565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109ff5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a0565b610a0c85338584036112dd565b506001949350505050565b6005546001600160a01b03163314610a415760405162461bcd60e51b81526004016108a090612312565b600e91909155600d91909155600f55565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610963918590610a8990869061235d565b6112dd565b6005546001600160a01b03163314610ab85760405162461bcd60e51b81526004016108a090612312565b60168290556017819055610acc818361235d565b6015555050565b6005546001600160a01b03163314610afd5760405162461bcd60e51b81526004016108a090612312565b80610b70576007546001600160a01b0390811690831603610b705760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b60648201526084016108a0565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610bc55760405162461bcd60e51b81526004016108a090612312565b80610c125760405162461bcd60e51b815260206004820152601860248201527f506c6561736520636f6e6669726d2072656e6f756e636521000000000000000060448201526064016108a0565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610c8a5760405162461bcd60e51b81526004016108a090612312565b6001600160a01b038316610ce05760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064016108a0565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906123aa565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015610d9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc291906123c3565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610e385760405162461bcd60e51b81526004016108a090612312565b600954600160a81b900460ff1615610e925760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e6700000000000000000060448201526064016108a0565b6009805461ffff60a81b191661010160a81b17905543600c556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c790600090a1565b6060600480546108d390612370565b6005546001600160a01b03163314610f0f5760405162461bcd60e51b81526004016108a090612312565b6007546001600160a01b0390811690831603610f935760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108a0565b610f9d8282611bbf565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561105b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a0565b61106833858584036112dd565b5060019392505050565b6000610963338484611401565b6005546001600160a01b031633146110a95760405162461bcd60e51b81526004016108a090612312565b6001600160a01b038216600081815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111325760405162461bcd60e51b81526004016108a090612312565b6018805460ff1916911515919091179055565b6005546001600160a01b0316331461116f5760405162461bcd60e51b81526004016108a090612312565b600b805460ff19169055565b6005546001600160a01b031633146111a55760405162461bcd60e51b81526004016108a090612312565b6001600160a01b03811661120a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a0565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146112905760405162461bcd60e51b81526004016108a090612312565b604051600090339047908381818185875af1925050503d80600081146112d2576040519150601f19603f3d011682016040523d82523d6000602084013e6112d7565b606091505b50505050565b6001600160a01b03831661133f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a0565b6001600160a01b0382166113a05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114275760405162461bcd60e51b81526004016108a0906123e0565b6001600160a01b03821661144d5760405162461bcd60e51b81526004016108a090612425565b6000811161149d5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016108a0565b600954600160a81b900460ff16611532576001600160a01b03831660009081526019602052604090205460ff16806114ed57506001600160a01b03821660009081526019602052604090205460ff165b6115325760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108a0565b600954600160a01b900460ff1615611937576005546001600160a01b0384811691161480159061157057506005546001600160a01b03838116911614155b801561158757506001600160a01b03821661dead14155b80156115ac57506001600160a01b03831660009081526019602052604090205460ff16155b80156115d157506001600160a01b03821660009081526019602052604090205460ff16155b1561193757600b5460ff16156116ea576006546001600160a01b0383811691161480159061160d57506007546001600160a01b03838116911614155b156116ea5761161d600243612468565b326000908152600a602052604090205410801561165b5750611640600243612468565b6001600160a01b0383166000908152600a6020526040902054105b6116c55760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016108a0565b326000908152600a602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383166000908152601b602052604090205460ff16801561172b57506001600160a01b0382166000908152601a602052604090205460ff16155b1561180257600d548111156117935760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016108a0565b600f546001600160a01b0383166000908152602081905260409020546117b9908361235d565b11156117fd5760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016108a0565b611937565b6001600160a01b0382166000908152601b602052604090205460ff16801561184357506001600160a01b0383166000908152601a602052604090205460ff16155b156118ad57600e548111156117fd5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016108a0565b6001600160a01b0382166000908152601a602052604090205460ff1661193757600f546001600160a01b0383166000908152602081905260409020546118f3908361235d565b11156119375760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016108a0565b30600090815260208190526040902054600854811080159081906119645750600954600160b01b900460ff165b801561197a5750600754600160a01b900460ff16155b801561199e57506001600160a01b0384166000908152601b602052604090205460ff165b156119cc576007805460ff60a01b1916600160a01b1790556119be611bed565b6007805460ff60a01b191690555b6001600160a01b03851660009081526019602052604090205460019060ff1680611a0e57506001600160a01b03851660009081526019602052604090205460ff165b15611a17575060005b60185460ff1615611a26575060005b60008115611bab576001600160a01b0386166000908152601b602052604090205460ff168015611a5857506000601054115b15611ae057606460105486611a6d919061247b565b611a779190612492565b905060105460125482611a8a919061247b565b611a949190612492565b60146000828254611aa5919061235d565b9091555050601054601154611aba908361247b565b611ac49190612492565b60136000828254611ad5919061235d565b90915550611b8d9050565b6001600160a01b0387166000908152601b602052604090205460ff168015611b0a57506000601554115b15611b8d57606460155486611b1f919061247b565b611b299190612492565b905060155460175482611b3c919061247b565b611b469190612492565b60146000828254611b57919061235d565b9091555050601554601654611b6c908361247b565b611b769190612492565b60136000828254611b87919061235d565b90915550505b8015611b9e57611b9e873083611d54565b611ba88186612468565b94505b611bb6878787611d54565b50505050505050565b6001600160a01b0382166000908152601b60205260409020805460ff1916821515179055610f9d8282611ea9565b3060009081526020819052604081205490506000601354601454611c11919061235d565b9050811580611c1e575080155b15611c27575050565b600854611c3590600a61247b565b821115611c4d57600854611c4a90600a61247b565b91505b60008060028360145486611c61919061247b565b611c6b9190612492565b611c759190612492565b9050611c89611c848286612468565b611f0c565b60145447908190600090611c9f90600290612492565b611ca99087612468565b601354611cb6908561247b565b611cc09190612492565b9050611ccc8183612468565b6000601481905560135591508315801590611ce75750600082115b15611cf657611cf68483612066565b6009546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611d43576040519150601f19603f3d011682016040523d82523d6000602084013e611d48565b606091505b50505050505050505050565b6001600160a01b038316611d7a5760405162461bcd60e51b81526004016108a0906123e0565b6001600160a01b038216611da05760405162461bcd60e51b81526004016108a090612425565b6001600160a01b03831660009081526020819052604090205481811015611e185760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108a0565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611e4f90849061235d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e9b91815260200190565b60405180910390a350505050565b6001600160a01b0382166000818152601a6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f4157611f416124b4565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbe91906124ca565b81600181518110611fd157611fd16124b4565b6001600160a01b039283166020918202929092010152600654611ff791309116846112dd565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906120309085906000908690309042906004016124e7565b600060405180830381600087803b15801561204a57600080fd5b505af115801561205e573d6000803e3d6000fd5b505050505050565b60065461207e9030906001600160a01b0316846112dd565b6006546001600160a01b031663f305d7198230856000806120a76005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561210f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121349190612558565b5050505050565b6000806040838503121561214e57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561218a5785810183015185820160400152820161216e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146121c057600080fd5b50565b600080604083850312156121d657600080fd5b82356121e1816121ab565b946020939093013593505050565b60006020828403121561220157600080fd5b813561220c816121ab565b9392505050565b60008060006060848603121561222857600080fd5b8335612233816121ab565b92506020840135612243816121ab565b929592945050506040919091013590565b60008060006060848603121561226957600080fd5b505081359360208301359350604090920135919050565b80151581146121c057600080fd5b600080604083850312156122a157600080fd5b82356122ac816121ab565b915060208301356122bc81612280565b809150509250929050565b6000602082840312156122d957600080fd5b813561220c81612280565b600080604083850312156122f757600080fd5b8235612302816121ab565b915060208301356122bc816121ab565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561096757610967612347565b600181811c9082168061238457607f821691505b6020821081036123a457634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156123bc57600080fd5b5051919050565b6000602082840312156123d557600080fd5b815161220c81612280565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561096757610967612347565b808202811582820484141761096757610967612347565b6000826124af57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156124dc57600080fd5b815161220c816121ab565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125375784516001600160a01b031683529383019391830191600101612512565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561256d57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220555f0f640e705ba3758ee50013c3190a383350300124b4750fe865c806c5667a64736f6c63430008110033

Deployed Bytecode Sourcemap

12401:13529:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17497:260;;;;;;;;;;-1:-1:-1;17497:260:0;;;;;:::i;:::-;;:::i;:::-;;5750:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12445:27;;;;;;;;;;-1:-1:-1;12445:27:0;;;;-1:-1:-1;;;;;12445:27:0;;;;;;-1:-1:-1;;;;;1002:32:1;;;984:51;;972:2;957:18;12445:27:0;820:221:1;6807:210:0;;;;;;;;;;-1:-1:-1;6807:210:0;;;;;:::i;:::-;;:::i;:::-;;;1667:14:1;;1660:22;1642:41;;1630:2;1615:18;6807:210:0;1502:187:1;13374:63:0;;;;;;;;;;-1:-1:-1;13374:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6071:108;;;;;;;;;;-1:-1:-1;6159:12:0;;6071:108;;;2092:25:1;;;2080:2;2065:18;6071:108:0;1946:177:1;13142:33:0;;;;;;;;;;;;;;;;7820:529;;;;;;;;;;-1:-1:-1;7820:529:0;;;;;:::i;:::-;;:::i;5970:93::-;;;;;;;;;;-1:-1:-1;5970:93:0;;6053:2;2731:36:1;;2719:2;2704:18;5970:93:0;2589:184:1;13030:29:0;;;;;;;;;;;;;;;;25675:252;;;;;;;;;;-1:-1:-1;25675:252:0;;;;;:::i;:::-;;:::i;7025:297::-;;;;;;;;;;-1:-1:-1;7025:297:0;;;;;:::i;:::-;;:::i;12479:21::-;;;;;;;;;;-1:-1:-1;12479:21:0;;;;-1:-1:-1;;;;;12479:21:0;;;12612:33;;;;;;;;;;-1:-1:-1;12612:33:0;;;;-1:-1:-1;;;12612:33:0;;;;;;16197:254;;;;;;;;;;-1:-1:-1;16197:254:0;;;;;:::i;:::-;;:::i;12929:28::-;;;;;;;;;;;;;;;;12995;;;;;;;;;;;;;;;;12692:31;;;;;;;;;;-1:-1:-1;12692:31:0;;;;-1:-1:-1;;;12692:31:0;;;;;;6413:177;;;;;;;;;;-1:-1:-1;6413:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;6564:18:0;6532:7;6564:18;;;;;;;;;;;;6413:177;16794:334;;;;;;;;;;-1:-1:-1;16794:334:0;;;;;:::i;:::-;;:::i;10284:265::-;;;;;;;;;;-1:-1:-1;10284:265:0;;;;;:::i;:::-;;:::i;24742:413::-;;;;;;;;;;-1:-1:-1;24742:413:0;;;;;:::i;:::-;;:::i;12895:27::-;;;;;;;;;;;;;;;;25418:249;;;;;;;;;;;;;:::i;10070:79::-;;;;;;;;;;-1:-1:-1;10135:6:0;;-1:-1:-1;;;;;10135:6:0;10070:79;;5858:104;;;;;;;;;;;;;:::i;17136:353::-;;;;;;;;;;-1:-1:-1;17136:353:0;;;;;:::i;:::-;;:::i;7330:482::-;;;;;;;;;;-1:-1:-1;7330:482:0;;;;;:::i;:::-;;:::i;6187:216::-;;;;;;;;;;-1:-1:-1;6187:216:0;;;;;:::i;:::-;;:::i;13444:57::-;;;;;;;;;;-1:-1:-1;13444:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12652:33;;;;;;;;;;-1:-1:-1;12652:33:0;;;;-1:-1:-1;;;12652:33:0;;;;;;12575:28;;;;;;;;;;-1:-1:-1;12575:28:0;;;;-1:-1:-1;;;;;12575:28:0;;;17890:182;;;;;;;;;;-1:-1:-1;17890:182:0;;;;;:::i;:::-;;:::i;12803:39::-;;;;;;;;;;-1:-1:-1;12803:39:0;;;;;;;;17765:109;;;;;;;;;;-1:-1:-1;17765:109:0;;;;;:::i;:::-;;:::i;13182:27::-;;;;;;;;;;;;;;;;6598:201;;;;;;;;;;-1:-1:-1;6598:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;6764:18:0;;;6732:7;6764:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6598:201;12535:33;;;;;;;;;;;;;;;;13216:28;;;;;;;;;;;;;;;;13104:31;;;;;;;;;;;;;;;;16459:98;;;;;;;;;;;;;:::i;12851:37::-;;;;;;;;;;;;;;;;13288:18;;;;;;;;;;-1:-1:-1;13288:18:0;;;;;;;;13251:30;;;;;;;;;;;;;;;;10557:281;;;;;;;;;;-1:-1:-1;10557:281:0;;;;;:::i;:::-;;:::i;25225:185::-;;;;;;;;;;;;;:::i;13066:31::-;;;;;;;;;;;;;;;;12964:24;;;;;;;;;;;;;;;;17497:260;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;;;;;;;;;17618:14:::1;:28:::0;;;17657:16:::1;:32:::0;;;17716:33:::1;17676:13:::0;17635:11;17716:33:::1;:::i;:::-;17700:13;:49:::0;-1:-1:-1;;17497:260:0:o;5750:100::-;5804:13;5837:5;5830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5750:100;:::o;6807:210::-;6926:4;6948:39;4652:10;6971:7;6980:6;6948:8;:39::i;:::-;-1:-1:-1;7005:4:0;6807:210;;;;;:::o;7820:529::-;7960:4;7977:36;7987:6;7995:9;8006:6;7977:9;:36::i;:::-;-1:-1:-1;;;;;8053:19:0;;8026:24;8053:19;;;:11;:19;;;;;;;;4652:10;8053:33;;;;;;;;8119:26;;;;8097:116;;;;-1:-1:-1;;;8097:116:0;;5666:2:1;8097:116:0;;;5648:21:1;5705:2;5685:18;;;5678:30;5744:34;5724:18;;;5717:62;-1:-1:-1;;;5795:18:1;;;5788:38;5843:19;;8097:116:0;5464:404:1;8097:116:0;8249:57;8258:6;4652:10;8299:6;8280:16;:25;8249:8;:57::i;:::-;-1:-1:-1;8337:4:0;;7820:529;-1:-1:-1;;;;7820:529:0:o;25675:252::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;25820:13:::1;:27:::0;;;;25858:12:::1;:25:::0;;;;25894:9:::1;:25:::0;25675:252::o;7025:297::-;4652:10;7140:4;7234:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7234:34:0;;;;;;;;;;7140:4;;7162:130;;7212:7;;7234:47;;7271:10;;7234:47;:::i;:::-;7162:8;:130::i;16197:254::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;16317:13:::1;:27:::0;;;16355:15:::1;:31:::0;;;16412::::1;16373:13:::0;16333:11;16412:31:::1;:::i;:::-;16397:12;:46:::0;-1:-1:-1;;16197:254:0:o;16794:334::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;16914:4:::1;16909:155;;16971:6;::::0;-1:-1:-1;;;;;16971:6:0;;::::1;16961:16:::0;;::::1;::::0;16935:117:::1;;;::::0;-1:-1:-1;;;16935:117:0;;6075:2:1;16935:117:0::1;::::0;::::1;6057:21:1::0;6114:2;6094:18;;;6087:30;6153:34;6133:18;;;6126:62;-1:-1:-1;;;6204:18:1;;;6197:37;6251:19;;16935:117:0::1;5873:403:1::0;16935:117:0::1;-1:-1:-1::0;;;;;17074:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;17074:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16794:334::o;10284:265::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;10411:15:::1;10403:52;;;::::0;-1:-1:-1;;;10403:52:0;;6483:2:1;10403:52:0::1;::::0;::::1;6465:21:1::0;6522:2;6502:18;;;6495:30;6561:26;6541:18;;;6534:54;6605:18;;10403:52:0::1;6281:348:1::0;10403:52:0::1;10492:6;::::0;10471:40:::1;::::0;10508:1:::1;::::0;-1:-1:-1;;;;;10492:6:0::1;::::0;10471:40:::1;::::0;10508:1;;10471:40:::1;-1:-1:-1::0;10522:6:0::1;:19:::0;;-1:-1:-1;;;;;;10522:19:0::1;::::0;;10284:265::o;24742:413::-;10197:6;;24856:10;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24892:20:0;::::1;24884:59;;;::::0;-1:-1:-1;;;24884:59:0;;6836:2:1;24884:59:0::1;::::0;::::1;6818:21:1::0;6875:2;6855:18;;;6848:30;6914:28;6894:18;;;6887:56;6960:18;;24884:59:0::1;6634:350:1::0;24884:59:0::1;24981:39;::::0;-1:-1:-1;;;24981:39:0;;25014:4:::1;24981:39;::::0;::::1;984:51:1::0;24954:24:0::1;::::0;-1:-1:-1;;;;;24981:24:0;::::1;::::0;::::1;::::0;957:18:1;;24981:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25039:46;::::0;-1:-1:-1;;;25039:46:0;;-1:-1:-1;;;;;7370:32:1;;;25039:46:0::1;::::0;::::1;7352:51:1::0;7419:18;;;7412:34;;;24954:66:0;;-1:-1:-1;25039:23:0;;::::1;::::0;::::1;::::0;7325:18:1;;25039:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25101;::::0;;-1:-1:-1;;;;;7370:32:1;;7352:51;;7434:2;7419:18;;7412:34;;;25031:54:0;;-1:-1:-1;25101:46:0::1;::::0;7325:18:1;25101:46:0::1;;;;;;;24873:282;24742:413:::0;;;;:::o;25418:249::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;25482:13:::1;::::0;-1:-1:-1;;;25482:13:0;::::1;;;25481:14;25473:50;;;::::0;-1:-1:-1;;;25473:50:0;;7909:2:1;25473:50:0::1;::::0;::::1;7891:21:1::0;7948:2;7928:18;;;7921:30;7987:25;7967:18;;;7960:53;8030:18;;25473:50:0::1;7707:347:1::0;25473:50:0::1;25534:13;:20:::0;;-1:-1:-1;;;;25565:18:0;-1:-1:-1;;;25565:18:0;;;25615:12:::1;25594:18;:33:::0;25643:16:::1;::::0;::::1;::::0;-1:-1:-1;;25643:16:0::1;25418:249::o:0;5858:104::-;5914:13;5947:7;5940:14;;;;;:::i;17136:353::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;17282:6:::1;::::0;-1:-1:-1;;;;;17282:6:0;;::::1;17274:14:::0;;::::1;::::0;17252:121:::1;;;::::0;-1:-1:-1;;;17252:121:0;;8261:2:1;17252:121:0::1;::::0;::::1;8243:21:1::0;8300:2;8280:18;;;8273:30;8339:34;8319:18;;;8312:62;8410:27;8390:18;;;8383:55;8455:19;;17252:121:0::1;8059:421:1::0;17252:121:0::1;17384:41;17413:4;17419:5;17384:28;:41::i;:::-;17441:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;17441:40:0;::::1;::::0;::::1;::::0;;;::::1;17136:353:::0;;:::o;7330:482::-;4652:10;7450:4;7499:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7499:34:0;;;;;;;;;;7566:35;;;;7544:122;;;;-1:-1:-1;;;7544:122:0;;8687:2:1;7544:122:0;;;8669:21:1;8726:2;8706:18;;;8699:30;8765:34;8745:18;;;8738:62;-1:-1:-1;;;8816:18:1;;;8809:35;8861:19;;7544:122:0;8485:401:1;7544:122:0;7702:67;4652:10;7725:7;7753:15;7734:16;:34;7702:8;:67::i;:::-;-1:-1:-1;7800:4:0;;7330:482;-1:-1:-1;;;7330:482:0:o;6187:216::-;6309:4;6331:42;4652:10;6355:9;6366:6;6331:9;:42::i;17890:182::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17975:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17975:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18030:34;;1642:41:1;;;18030:34:0::1;::::0;1615:18:1;18030:34:0::1;;;;;;;17890:182:::0;;:::o;17765:109::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;17850:6:::1;:16:::0;;-1:-1:-1;;17850:16:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17765:109::o;16459:98::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;16521:20:::1;:28:::0;;-1:-1:-1;;16521:28:0::1;::::0;;16459:98::o;10557:281::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10660:22:0;::::1;10638:110;;;::::0;-1:-1:-1;;;10638:110:0;;9093:2:1;10638:110:0::1;::::0;::::1;9075:21:1::0;9132:2;9112:18;;;9105:30;9171:34;9151:18;;;9144:62;-1:-1:-1;;;9222:18:1;;;9215:36;9268:19;;10638:110:0::1;8891:402:1::0;10638:110:0::1;10785:6;::::0;10764:38:::1;::::0;-1:-1:-1;;;;;10764:38:0;;::::1;::::0;10785:6:::1;::::0;10764:38:::1;::::0;10785:6:::1;::::0;10764:38:::1;10813:6;:17:::0;;-1:-1:-1;;;;;;10813:17:0::1;-1:-1:-1::0;;;;;10813:17:0;;;::::1;::::0;;;::::1;::::0;;10557:281::o;25225:185::-;10197:6;;-1:-1:-1;;;;;10197:6:0;4652:10;10197:22;10189:67;;;;-1:-1:-1;;;10189:67:0;;;;;;;:::i;:::-;25320:82:::1;::::0;25283:12:::1;::::0;25328:10:::1;::::0;25352:21:::1;::::0;25283:12;25320:82;25283:12;25320:82;25352:21;25328:10;25320:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;25225:185:0:o;8679:380::-;-1:-1:-1;;;;;8815:19:0;;8807:68;;;;-1:-1:-1;;;8807:68:0;;9710:2:1;8807:68:0;;;9692:21:1;9749:2;9729:18;;;9722:30;9788:34;9768:18;;;9761:62;-1:-1:-1;;;9839:18:1;;;9832:34;9883:19;;8807:68:0;9508:400:1;8807:68:0;-1:-1:-1;;;;;8894:21:0;;8886:68;;;;-1:-1:-1;;;8886:68:0;;10115:2:1;8886:68:0;;;10097:21:1;10154:2;10134:18;;;10127:30;10193:34;10173:18;;;10166:62;-1:-1:-1;;;10244:18:1;;;10237:32;10286:19;;8886:68:0;9913:398:1;8886:68:0;-1:-1:-1;;;;;8967:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9019:32;;2092:25:1;;;9019:32:0;;2065:18:1;9019:32:0;;;;;;;8679:380;;;:::o;18080:4306::-;-1:-1:-1;;;;;18212:18:0;;18204:68;;;;-1:-1:-1;;;18204:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18291:16:0;;18283:64;;;;-1:-1:-1;;;18283:64:0;;;;;;;:::i;:::-;18375:1;18366:6;:10;18358:52;;;;-1:-1:-1;;;18358:52:0;;11328:2:1;18358:52:0;;;11310:21:1;11367:2;11347:18;;;11340:30;11406:31;11386:18;;;11379:59;11455:18;;18358:52:0;11126:353:1;18358:52:0;18428:13;;-1:-1:-1;;;18428:13:0;;;;18423:183;;-1:-1:-1;;;;;18484:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18513:23:0;;;;;;:19;:23;;;;;;;;18484:52;18458:136;;;;-1:-1:-1;;;18458:136:0;;11686:2:1;18458:136:0;;;11668:21:1;11725:2;11705:18;;;11698:30;-1:-1:-1;;;11744:18:1;;;11737:52;11806:18;;18458:136:0;11484:346:1;18458:136:0;18622:14;;-1:-1:-1;;;18622:14:0;;;;18618:2148;;;10135:6;;-1:-1:-1;;;;;18675:15:0;;;10135:6;;18675:15;;;;:49;;-1:-1:-1;10135:6:0;;-1:-1:-1;;;;;18711:13:0;;;10135:6;;18711:13;;18675:49;:91;;;;-1:-1:-1;;;;;;18745:21:0;;18759:6;18745:21;;18675:91;:138;;;;-1:-1:-1;;;;;;18788:25:0;;;;;;:19;:25;;;;;;;;18787:26;18675:138;:183;;;;-1:-1:-1;;;;;;18835:23:0;;;;;;:19;:23;;;;;;;;18834:24;18675:183;18653:2102;;;18897:20;;;;18893:692;;;18960:9;;-1:-1:-1;;;;;18946:24:0;;;18960:9;;18946:24;;;;:49;;-1:-1:-1;18988:6:0;;-1:-1:-1;;;;;18974:21:0;;;18988:6;;18974:21;;18946:49;18942:624;;;19137:16;19152:1;19137:12;:16;:::i;:::-;19091:9;19062:39;;;;:28;:39;;;;;;:91;:212;;;;-1:-1:-1;19258:16:0;19273:1;19258:12;:16;:::i;:::-;-1:-1:-1;;;;;19190:32:0;;;;;;:28;:32;;;;;;:84;19062:212;19024:363;;;;-1:-1:-1;;;19024:363:0;;12170:2:1;19024:363:0;;;12152:21:1;12209:2;12189:18;;;12182:30;12248:34;12228:18;;;12221:62;-1:-1:-1;;;12299:18:1;;;12292:51;12360:19;;19024:363:0;11968:417:1;19024:363:0;19443:9;19414:39;;;;:28;:39;;;;;;19456:12;19414:54;;;;-1:-1:-1;;;;;19495:32:0;;;;;;:47;18942:624;-1:-1:-1;;;;;19659:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;19716:35:0;;;;;;:31;:35;;;;;;;;19715:36;19659:92;19633:1107;;;19838:12;;19828:6;:22;;19794:148;;;;-1:-1:-1;;;19794:148:0;;12592:2:1;19794:148:0;;;12574:21:1;12631:2;12611:18;;;12604:30;12670:34;12650:18;;;12643:62;-1:-1:-1;;;12721:18:1;;;12714:38;12769:19;;19794:148:0;12390:404:1;19794:148:0;20025:9;;-1:-1:-1;;;;;6564:18:0;;6532:7;6564:18;;;;;;;;;;;19999:22;;:6;:22;:::i;:::-;:35;;19965:140;;;;-1:-1:-1;;;19965:140:0;;13001:2:1;19965:140:0;;;12983:21:1;13040:2;13020:18;;;13013:30;-1:-1:-1;;;13059:18:1;;;13052:49;13118:18;;19965:140:0;12799:343:1;19965:140:0;19633:1107;;;-1:-1:-1;;;;;20203:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;20258:37:0;;;;;;:31;:37;;;;;;;;20257:38;20203:92;20177:563;;;20382:13;;20372:6;:23;;20338:151;;;;-1:-1:-1;;;20338:151:0;;13349:2:1;20338:151:0;;;13331:21:1;13388:2;13368:18;;;13361:30;13427:34;13407:18;;;13400:62;-1:-1:-1;;;13478:18:1;;;13471:40;13528:19;;20338:151:0;13147:406:1;20177:563:0;-1:-1:-1;;;;;20520:35:0;;;;;;:31;:35;;;;;;;;20515:225;;20640:9;;-1:-1:-1;;;;;6564:18:0;;6532:7;6564:18;;;;;;;;;;;20614:22;;:6;:22;:::i;:::-;:35;;20580:140;;;;-1:-1:-1;;;20580:140:0;;13001:2:1;20580:140:0;;;12983:21:1;13040:2;13020:18;;;13013:30;-1:-1:-1;;;13059:18:1;;;13052:49;13118:18;;20580:140:0;12799:343:1;20580:140:0;20827:4;20778:28;6564:18;;;;;;;;;;;20885;;20861:42;;;;;;;20934:22;;-1:-1:-1;20945:11:0;;-1:-1:-1;;;20945:11:0;;;;20934:22;:35;;;;-1:-1:-1;20961:8:0;;-1:-1:-1;;;20961:8:0;;;;20960:9;20934:35;:68;;;;-1:-1:-1;;;;;;20973:29:0;;;;;;:25;:29;;;;;;;;20934:68;20916:196;;;21029:8;:15;;-1:-1:-1;;;;21029:15:0;-1:-1:-1;;;21029:15:0;;;21059:10;:8;:10::i;:::-;21084:8;:16;;-1:-1:-1;;;;21084:16:0;;;20916:196;-1:-1:-1;;;;;21243:25:0;;21124:12;21243:25;;;:19;:25;;;;;;21139:4;;21243:25;;;:52;;-1:-1:-1;;;;;;21272:23:0;;;;;;:19;:23;;;;;;;;21243:52;21239:100;;;-1:-1:-1;21322:5:0;21239:100;21355:6;;;;21351:54;;;-1:-1:-1;21388:5:0;21351:54;21417:12;21522:7;21518:815;;;-1:-1:-1;;;;;21574:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;21623:1;21607:13;;:17;21574:50;21570:614;;;21679:3;21662:13;;21653:6;:22;;;;:::i;:::-;21652:30;;;;:::i;:::-;21645:37;;21751:13;;21731:16;;21724:4;:23;;;;:::i;:::-;21723:41;;;;:::i;:::-;21701:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;21829:13:0;;21811:14;;21804:21;;:4;:21;:::i;:::-;21803:39;;;;:::i;:::-;21783:16;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;21570:614:0;;-1:-1:-1;21570:614:0;;-1:-1:-1;;;;;21904:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;21954:1;21939:12;;:16;21904:51;21900:284;;;22009:3;21993:12;;21984:6;:21;;;;:::i;:::-;21983:29;;;;:::i;:::-;21976:36;;22080:12;;22061:15;;22054:4;:22;;;;:::i;:::-;22053:39;;;;:::i;:::-;22031:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;22156:12:0;;22139:13;;22132:20;;:4;:20;:::i;:::-;22131:37;;;;:::i;:::-;22111:16;;:57;;;;;;;:::i;:::-;;;;-1:-1:-1;;21900:284:0;22204:8;;22200:91;;22233:42;22249:4;22263;22270;22233:15;:42::i;:::-;22307:14;22317:4;22307:14;;:::i;:::-;;;21518:815;22345:33;22361:4;22367:2;22371:6;22345:15;:33::i;:::-;18193:4193;;;;18080:4306;;;:::o;15953:236::-;-1:-1:-1;;;;;16036:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;16036:39:0;;;;;;;16086;16036:31;:39;16086:26;:39::i;23484:1250::-;23567:4;23523:23;6564:18;;;;;;;;;;;23523:50;;23584:25;23633:16;;23612:18;;:37;;;;:::i;:::-;23584:65;-1:-1:-1;23666:20:0;;;:46;;-1:-1:-1;23690:22:0;;23666:46;23662:85;;;23729:7;;23484:1250::o;23662:85::-;23781:18;;:23;;23802:2;23781:23;:::i;:::-;23763:15;:41;23759:115;;;23839:18;;:23;;23860:2;23839:23;:::i;:::-;23821:41;;23759:115;23886:12;23960:23;24073:1;24040:17;24005:18;;23987:15;:36;;;;:::i;:::-;23986:71;;;;:::i;:::-;:88;;;;:::i;:::-;23960:114;-1:-1:-1;24087:51:0;24104:33;23960:114;24104:15;:33;:::i;:::-;24087:16;:51::i;:::-;24346:18;;24172:21;;;;24151:18;;24346:22;;24367:1;;24346:22;:::i;:::-;24325:44;;:17;:44;:::i;:::-;24291:16;;24278:29;;:10;:29;:::i;:::-;24277:93;;;;:::i;:::-;24253:117;-1:-1:-1;24383:32:0;24253:117;24383:32;;:::i;:::-;24449:1;24428:18;:22;;;24461:16;:20;24383:32;-1:-1:-1;24498:19:0;;;;;:42;;;24539:1;24521:15;:19;24498:42;24494:121;;;24557:46;24570:15;24587;24557:12;:46::i;:::-;24649:13;;24641:85;;-1:-1:-1;;;;;24649:13:0;;;;24690:21;;24641:85;;;;24690:21;24649:13;24641:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;23484:1250:0:o;9068:651::-;-1:-1:-1;;;;;9208:20:0;;9200:70;;;;-1:-1:-1;;;9200:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9289:23:0;;9281:71;;;;-1:-1:-1;;;9281:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9389:17:0;;9365:21;9389:17;;;;;;;;;;;9439:23;;;;9417:111;;;;-1:-1:-1;;;9417:111:0;;14155:2:1;9417:111:0;;;14137:21:1;14194:2;14174:18;;;14167:30;14233:34;14213:18;;;14206:62;-1:-1:-1;;;14284:18:1;;;14277:36;14330:19;;9417:111:0;13953:402:1;9417:111:0;-1:-1:-1;;;;;9564:17:0;;;:9;:17;;;;;;;;;;;9584:22;;;9564:42;;9628:20;;;;;;;;:30;;9600:6;;9564:9;9628:30;;9600:6;;9628:30;:::i;:::-;;;;;;;;9693:9;-1:-1:-1;;;;;9676:35:0;9685:6;-1:-1:-1;;;;;9676:35:0;;9704:6;9676:35;;;;2092:25:1;;2080:2;2065:18;;1946:177;9676:35:0;;;;;;;;9189:530;9068:651;;;:::o;16565:221::-;-1:-1:-1;;;;;16667:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;16667:52:0;;;;;;;;;;16735:43;;14528:51:1;;;14595:18;;;14588:50;16735:43:0;;14501:18:1;16735:43:0;;;;;;;16565:221;;:::o;22396:571::-;22546:16;;;22560:1;22546:16;;;;;;;;22522:21;;22546:16;;;;;;;;;;-1:-1:-1;22546:16:0;22522:40;;22591:4;22573;22578:1;22573:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22573:23:0;;;:7;;;;;;;;;;:23;;;;22617:9;;:16;;;-1:-1:-1;;;22617:16:0;;;;:9;;;;;:14;;:16;;;;;22573:7;;22617:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22607:4;22612:1;22607:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22607:26:0;;;:7;;;;;;;;;:26;22678:9;;22646:56;;22663:4;;22678:9;22690:11;22646:8;:56::i;:::-;22741:9;;:218;;-1:-1:-1;;;22741:218:0;;-1:-1:-1;;;;;22741:9:0;;;;:60;;:218;;22816:11;;22741:9;;22886:4;;22913;;22933:15;;22741:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22451:516;22396:571;:::o;22975:501::-;23155:9;;23123:56;;23140:4;;-1:-1:-1;;;;;23155:9:0;23167:11;23123:8;:56::i;:::-;23222:9;;-1:-1:-1;;;;;23222:9:0;:25;23255:9;23288:4;23308:11;23222:9;;23420:7;10135:6;;-1:-1:-1;;;;;10135:6:0;;10070:79;23420:7;23222:246;;;;;;-1:-1:-1;;;;;;23222:246:0;;;-1:-1:-1;;;;;16513:15:1;;;23222:246:0;;;16495:34:1;16545:18;;;16538:34;;;;16588:18;;;16581:34;;;;16631:18;;;16624:34;16695:15;;;16674:19;;;16667:44;23442:15:0;16727:19:1;;;16720:35;16429:19;;23222:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22975:501;;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;1046:131::-;-1:-1:-1;;;;;1121:31:1;;1111:42;;1101:70;;1167:1;1164;1157:12;1101:70;1046:131;:::o;1182:315::-;1250:6;1258;1311:2;1299:9;1290:7;1286:23;1282:32;1279:52;;;1327:1;1324;1317:12;1279:52;1366:9;1353:23;1385:31;1410:5;1385:31;:::i;:::-;1435:5;1487:2;1472:18;;;;1459:32;;-1:-1:-1;;;1182:315:1:o;1694:247::-;1753:6;1806:2;1794:9;1785:7;1781:23;1777:32;1774:52;;;1822:1;1819;1812:12;1774:52;1861:9;1848:23;1880:31;1905:5;1880:31;:::i;:::-;1930:5;1694:247;-1:-1:-1;;;1694:247:1:o;2128:456::-;2205:6;2213;2221;2274:2;2262:9;2253:7;2249:23;2245:32;2242:52;;;2290:1;2287;2280:12;2242:52;2329:9;2316:23;2348:31;2373:5;2348:31;:::i;:::-;2398:5;-1:-1:-1;2455:2:1;2440:18;;2427:32;2468:33;2427:32;2468:33;:::i;:::-;2128:456;;2520:7;;-1:-1:-1;;;2574:2:1;2559:18;;;;2546:32;;2128:456::o;2778:316::-;2855:6;2863;2871;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;;2963:23:1;;;3033:2;3018:18;;3005:32;;-1:-1:-1;3084:2:1;3069:18;;;3056:32;;2778:316;-1:-1:-1;2778:316:1:o;3307:118::-;3393:5;3386:13;3379:21;3372:5;3369:32;3359:60;;3415:1;3412;3405:12;3430:382;3495:6;3503;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;:::-;3680:5;-1:-1:-1;3737:2:1;3722:18;;3709:32;3750:30;3709:32;3750:30;:::i;:::-;3799:7;3789:17;;;3430:382;;;;;:::o;3817:241::-;3873:6;3926:2;3914:9;3905:7;3901:23;3897:32;3894:52;;;3942:1;3939;3932:12;3894:52;3981:9;3968:23;4000:28;4022:5;4000:28;:::i;4063:388::-;4131:6;4139;4192:2;4180:9;4171:7;4167:23;4163:32;4160:52;;;4208:1;4205;4198:12;4160:52;4247:9;4234:23;4266:31;4291:5;4266:31;:::i;:::-;4316:5;-1:-1:-1;4373:2:1;4358:18;;4345:32;4386:33;4345:32;4386:33;:::i;4456:356::-;4658:2;4640:21;;;4677:18;;;4670:30;4736:34;4731:2;4716:18;;4709:62;4803:2;4788:18;;4456:356::o;4817:127::-;4878:10;4873:3;4869:20;4866:1;4859:31;4909:4;4906:1;4899:15;4933:4;4930:1;4923:15;4949:125;5014:9;;;5035:10;;;5032:36;;;5048:18;;:::i;5079:380::-;5158:1;5154:12;;;;5201;;;5222:61;;5276:4;5268:6;5264:17;5254:27;;5222:61;5329:2;5321:6;5318:14;5298:18;5295:38;5292:161;;5375:10;5370:3;5366:20;5363:1;5356:31;5410:4;5407:1;5400:15;5438:4;5435:1;5428:15;5292:161;;5079:380;;;:::o;6989:184::-;7059:6;7112:2;7100:9;7091:7;7087:23;7083:32;7080:52;;;7128:1;7125;7118:12;7080:52;-1:-1:-1;7151:16:1;;6989:184;-1:-1:-1;6989:184:1:o;7457:245::-;7524:6;7577:2;7565:9;7556:7;7552:23;7548:32;7545:52;;;7593:1;7590;7583:12;7545:52;7625:9;7619:16;7644:28;7666:5;7644:28;:::i;10316:401::-;10518:2;10500:21;;;10557:2;10537:18;;;10530:30;10596:34;10591:2;10576:18;;10569:62;-1:-1:-1;;;10662:2:1;10647:18;;10640:35;10707:3;10692:19;;10316:401::o;10722:399::-;10924:2;10906:21;;;10963:2;10943:18;;;10936:30;11002:34;10997:2;10982:18;;10975:62;-1:-1:-1;;;11068:2:1;11053:18;;11046:33;11111:3;11096:19;;10722:399::o;11835:128::-;11902:9;;;11923:11;;;11920:37;;;11937:18;;:::i;13558:168::-;13631:9;;;13662;;13679:15;;;13673:22;;13659:37;13649:71;;13700:18;;:::i;13731:217::-;13771:1;13797;13787:132;;13841:10;13836:3;13832:20;13829:1;13822:31;13876:4;13873:1;13866:15;13904:4;13901:1;13894:15;13787:132;-1:-1:-1;13933:9:1;;13731:217::o;14781:127::-;14842:10;14837:3;14833:20;14830:1;14823:31;14873:4;14870:1;14863:15;14897:4;14894:1;14887:15;14913:251;14983:6;15036:2;15024:9;15015:7;15011:23;15007:32;15004:52;;;15052:1;15049;15042:12;15004:52;15084:9;15078:16;15103:31;15128:5;15103:31;:::i;15169:980::-;15431:4;15479:3;15468:9;15464:19;15510:6;15499:9;15492:25;15536:2;15574:6;15569:2;15558:9;15554:18;15547:34;15617:3;15612:2;15601:9;15597:18;15590:31;15641:6;15676;15670:13;15707:6;15699;15692:22;15745:3;15734:9;15730:19;15723:26;;15784:2;15776:6;15772:15;15758:29;;15805:1;15815:195;15829:6;15826:1;15823:13;15815:195;;;15894:13;;-1:-1:-1;;;;;15890:39:1;15878:52;;15985:15;;;;15950:12;;;;15926:1;15844:9;15815:195;;;-1:-1:-1;;;;;;;16066:32:1;;;;16061:2;16046:18;;16039:60;-1:-1:-1;;;16130:3:1;16115:19;16108:35;16027:3;15169:980;-1:-1:-1;;;15169:980:1:o;16766:306::-;16854:6;16862;16870;16923:2;16911:9;16902:7;16898:23;16894:32;16891:52;;;16939:1;16936;16929:12;16891:52;16968:9;16962:16;16952:26;;17018:2;17007:9;17003:18;16997:25;16987:35;;17062:2;17051:9;17047:18;17041:25;17031:35;;16766:306;;;;;:::o

Swarm Source

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