ETH Price: $3,682.76 (+2.28%)

Token

World Compute Network (WCN)
 

Overview

Max Total Supply

100,000,000 WCN

Holders

172 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (+6.16%)

Onchain Market Cap

$81,923.38

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
200,000 WCN

Value
$163.85 ( ~0.0444911213026885 Eth) [0.2000%]
0x926944BeCEC23ea59d67A63F8b5CCe92E83831d5
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

$WCN, a pioneering sustainability initiatives in global cloud computing services. By leveraging blockchain technology, we are contributing to Carbon Neutrality for Decentralized Physical Infrastructure Networks (DEPIN), ensuring secure, decentralized, and efficient cloud computing solutions.

Market

Volume (24H):$211.86
Market Capitalization:$0.00
Circulating Supply:0.00 WCN
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
WCNV2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-18
*/

// SPDX-License-Identifier: MIT

/************************************** 
 
    WCN is building the future of cloud computing by decentralizing infrastructure. 
    Through the power of blockchain and the WCN token, we offer secure, efficient, 
    and accessible services to everyone. Join us in shaping a transparent, 
    community-driven ecosystem where innovation thrives! 

    Website: https://worldcompute.net
    GitBook: https://docs.worldcompute.net/wcn
    Telegram: https://t.me/WorldComputeNet
    X: https://x.com/WorldComputeN
    Linktree: https://linktr.ee/WorldComputeNet

**************************************/

pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
    /**
     * @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
    );
}

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 balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

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

    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 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 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 _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);
    }

    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);
    }
}

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 WCNV2 is ERC20, Ownable {
    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWallet;

    IDexRouter public dexRouter;
    address public lpPair;

    bool private swapping;
    uint256 public swapTokensAtAmount;
    address public operationsAddress;

    uint256 public tradingActiveBlock = 0;
    mapping(address => bool) public markedAsSniper;

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

    uint256 public buyTotalFees;
    uint256 public buyOperationsFee;

    uint256 public sellTotalFees;
    uint256 public sellOperationsFee;

    uint256 public tokensForOperations;

    bool public oncePerBlockEnabled = true;
    uint256 public lastSwapBlock; 
    uint256 public maxSwapsPerBlock = 1; 
    uint256 public swapsThisBlock = 0;   

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

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

    event EnabledTrading();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedOperationsAddress(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("World Compute Network", "WCN") {
        address newOwner = msg.sender;  

        uint256 totalSupply = 100 * 1e6 * 1e18;

        buyOperationsFee = 10;
        buyTotalFees = buyOperationsFee;

        sellOperationsFee = 30;
        sellTotalFees = sellOperationsFee;        

        maxBuyAmount = (totalSupply * 15) / 1000; // 1.5%
        maxSellAmount = (totalSupply * 15) / 1000; // 1.5%
        maxWallet = (totalSupply * 15) / 1000; // 1.5%
        swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05 %

        operationsAddress = address(0xa7B6566f8f9C8C74eB2B2Ce7200C4fC19E40eb95);

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);
        _excludeFromMaxTransaction(address(operationsAddress), true);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(operationsAddress), true);

        _createInitialSupply(address(this), (totalSupply * 6) / 100);
        _createInitialSupply(newOwner, (totalSupply * 94) / 100);

        transferOwnership(newOwner);
    }

    receive() external payable {}

    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) private {
        automatedMarketMakerPairs[pair] = value;
        _excludeFromMaxTransaction(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }  

    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 updateBuyTax(
        uint256 _operationsFee
    ) external onlyOwner {
        buyOperationsFee = _operationsFee;
        buyTotalFees = buyOperationsFee;
        require(buyTotalFees <= 12, "Must keep fees at 12% or less");
    }

    function updateSellTax(
        uint256 _operationsFee
    ) external onlyOwner {
        sellOperationsFee = _operationsFee;
        sellTotalFees = sellOperationsFee;
        require(sellTotalFees <= 15, "Must keep fees at 15% or less");
    }    

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 1) / 100,
            "Swap amount cannot be higher than 1% total supply."
        );
        swapTokensAtAmount = newAmount;
    }    

    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."
            );
        } else {
            require(
                !markedAsSniper[from],
                "Snipers cannot transfer tokens"
            );
        }

        if (limitsInEffect) {
            if (to != address(0xdead) &&
                !_isExcludedFromFees[from] &&
                !_isExcludedFromFees[to]
            ) {
                //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(false);
            swapping = false;
        }

        bool takeFee = true;
        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            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;
                tokensForOperations +=
                    (fees * sellOperationsFee) /
                    sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
                tokensForOperations += (fees * buyOperationsFee) / 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 swapBack(bool all) private {

        if (block.number != lastSwapBlock) {
            lastSwapBlock = block.number;
            swapsThisBlock = 0;
        }

        if (oncePerBlockEnabled && swapsThisBlock >= maxSwapsPerBlock) {
            return;
        }        

        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForOperations;

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

        if (!all && (contractBalance > swapTokensAtAmount * 15)) {
            contractBalance = swapTokensAtAmount * 15;
        }

        swapTokensForEth(contractBalance);

        tokensForOperations = 0;

        swapsThisBlock += 1;    

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

        require(success, "Transfer to operations address failed");
    }

    function transferForeignToken(
        address _token,
        address _to
    ) external onlyOwner returns (bool _sent) {
        require(_token != address(0), "_token address cannot be 0");
        require(
            _token != address(this) || !tradingActive,
            "Can't withdraw native tokens while trading is active"
        );
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    function setOperationsAddress(
        address _operationsAddress
    ) external onlyOwner {
        require(
            _operationsAddress != address(0),
            "_operationsAddress address cannot be 0"
        );
        operationsAddress = payable(_operationsAddress);
        emit UpdatedOperationsAddress(_operationsAddress);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function unflagSniper(address wallet) external onlyOwner {
        require(markedAsSniper[wallet], "Wallet is already not marked.");
        markedAsSniper[wallet] = false;
    }        

    function recoverETH() external onlyOwner {
        bool success;
        (success, ) = address(msg.sender).call{value: address(this).balance}(
            ""
        );
    }      

    function initializeLP() external onlyOwner {
        require(!tradingActive, "Trading is already active, cannot relaunch.");     

        address _dexRouter;

        if (block.chainid == 1) {
            _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH: Uniswap V2
        } else if (block.chainid == 11155111) {
            _dexRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH: Sepolia
        } else if (block.chainid == 56) {
            _dexRouter = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BNB Chain: PCS V2
        } else if (block.chainid == 97) {
            _dexRouter = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BNB Chain: PCS V2
        } else if (block.chainid == 42161) {
            _dexRouter = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506; // Arbitrum: SushiSwap
        } else {
            revert("Chain not configured");
        }

        // initialize router
        dexRouter = IDexRouter(_dexRouter);
        
        // create pair
        lpPair = IDexFactory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );

        _excludeFromMaxTransaction(address(lpPair), true);
        _setAutomatedMarketMakerPair(address(lpPair), true);        

        _excludeFromMaxTransaction(address(dexRouter), true);
        excludeFromFees(address(dexRouter), true);  

        require(
            address(this).balance > 0,
            "Must have ETH on contract to launch"
        );
        require(
            balanceOf(address(this)) > 0,
            "Must have Tokens on contract to launch"
        );           

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

        dexRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            msg.sender,
            block.timestamp
        ); 
    }

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

    function setSwapRestrictions(bool _enabled, uint256 _maxSwaps) external onlyOwner {
        require(_maxSwaps > 0, "Max swaps per block must be greater than 0");
        oncePerBlockEnabled = _enabled;
        maxSwapsPerBlock = _maxSwaps;
    }

    function transferTokens(
        address[] memory wallets,
        uint256[] memory amountsInTokens
    ) external onlyOwner {
        require(
            wallets.length == amountsInTokens.length,
            "arrays must be the same length"
        );
        require(
            wallets.length < 200,
            "Can only airdrop 200 wallets per txn due to gas limits"
        ); 
        
        for (uint256 i = 0; i < wallets.length; i++) {
            address wallet = wallets[i];
            uint256 amount = amountsInTokens[i];
            super._transfer(msg.sender, wallet, amount);
        }
    }    
}

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":[],"name":"EnabledTrading","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":[{"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":"UpdatedOperationsAddress","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":"buyOperationsFee","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":"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":"initializeLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastSwapBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"markedAsSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"maxSwapsPerBlock","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":"oncePerBlockEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"confirmRenounce","type":"bool"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellOperationsFee","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":"address","name":"_operationsAddress","type":"address"}],"name":"setOperationsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_maxSwaps","type":"uint256"}],"name":"setSwapRestrictions","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":"swapsThisBlock","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":"tokensForOperations","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":[{"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":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInTokens","type":"uint256[]"}],"name":"transferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"unflagSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6000600d819055600f805462ffffff191660019081179091556015805460ff19168217815560179190915560189190915560809081527f576f726c6420436f6d70757465204e6574776f726b000000000000000000000060a052610100604052600360c0818152622ba1a760e91b60e052906200007d83826200060e565b5060046200008c82826200060e565b5050506000620000a16200027260201b60201c565b600580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620037b9833981519152908290a350600a6011819055601055601e6013819055601255336a52b7d2dcc80cd2e40000006103e86200010f82600f620006f0565b6200011b919062000710565b6006556103e86200012e82600f620006f0565b6200013a919062000710565b6007556103e86200014d82600f620006f0565b62000159919062000710565b6008556127106200016c826005620006f0565b62000178919062000710565b600b55600c80546001600160a01b03191673a7b6566f8f9c8c74eb2b2ce7200c4fc19e40eb95179055620001ae82600162000276565b620001bb30600162000276565b620001ca61dead600162000276565b600c54620001e3906001600160a01b0316600162000276565b620001f0826001620002d9565b620001fd306001620002d9565b6200020c61dead6001620002d9565b600c5462000225906001600160a01b03166001620002d9565b6200024b30606462000239846006620006f0565b62000245919062000710565b62000387565b6200025f8260646200023984605e620006f0565b6200026a826200046c565b505062000749565b3390565b6001600160a01b0382166000818152601a6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6005546001600160a01b03163314620003285760405162461bcd60e51b815260206004820181905260248201526000805160206200379983398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620003df5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200031f565b8060026000828254620003f3919062000733565b90915550506001600160a01b038216600090815260208190526040812080548392906200042290849062000733565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620004b75760405162461bcd60e51b815260206004820181905260248201526000805160206200379983398151915260448201526064016200031f565b6001600160a01b0381166200051e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200031f565b6005546040516001600160a01b03808416921690600080516020620037b983398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200059457607f821691505b602082108103620005b557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200060957600081815260208120601f850160051c81016020861015620005e45750805b601f850160051c820191505b818110156200060557828155600101620005f0565b5050505b505050565b81516001600160401b038111156200062a576200062a62000569565b62000642816200063b84546200057f565b84620005bb565b602080601f8311600181146200067a5760008415620006615750858301515b600019600386901b1c1916600185901b17855562000605565b600085815260208120601f198616915b82811015620006ab578886015182559484019460019091019084016200068a565b5085821015620006ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200070a576200070a620006da565b92915050565b6000826200072e57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200070a576200070a620006da565b61304080620007596000396000f3fe6080604052600436106103035760003560e01c80638366e79a11610190578063c44a24dd116100dc578063dd62ed3e11610095578063ee40166e1161006f578063ee40166e146108eb578063f2fde38b14610901578063f8b45b0514610921578063fb002c971461093757600080fd5b8063dd62ed3e1461086f578063e2f45605146108b5578063ea4cfe12146108cb57600080fd5b8063c44a24dd146107b9578063c4c6571b146107e9578063cef3f886146107ff578063d257b34f14610819578063d85ba06314610839578063d86c9fec1461084f57600080fd5b80639a7a23d611610149578063a9059cbb11610123578063a9059cbb1461072a578063b62496f51461074a578063bbc0c7421461077a578063c02466681461079957600080fd5b80639a7a23d6146106d5578063a457c2d7146106f5578063a6690cf91461071557600080fd5b80638366e79a1461064157806388e765ff146106615780638a8c523c146106775780638da5cb5b1461068c57806395d89b41146106aa57806396792669146106bf57600080fd5b80634a62bb651161024f578063672fc7be1161020857806370a08231116101e257806370a08231146105cc578063751039fc146105ec5780637571336a146106015780637e926b4b1461062157600080fd5b8063672fc7be146105765780636a486a8e146105965780636ddd1713146105ac57600080fd5b80634a62bb65146104e45780634f77f6c0146104fe578063591f09eb146105145780635a139dd41461052a578063656202831461054057806366d602ae1461056057600080fd5b806318160ddd116102bc57806339509351116102965780633950935114610464578063436d334014610484578063452ed4f1146104a4578063499b8394146104c457600080fd5b806318160ddd1461040957806323b872dd14610428578063313ce5671461044857600080fd5b80630614117a1461030f57806306fdde03146103265780630758d92414610351578063095ea7b31461038957806310d5de53146103b957806312185a39146103e957600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032461094d565b005b34801561033257600080fd5b5061033b6109cd565b6040516103489190612a28565b60405180910390f35b34801561035d57600080fd5b50600954610371906001600160a01b031681565b6040516001600160a01b039091168152602001610348565b34801561039557600080fd5b506103a96103a4366004612a8b565b610a5f565b6040519015158152602001610348565b3480156103c557600080fd5b506103a96103d4366004612ab7565b601a6020526000908152604090205460ff1681565b3480156103f557600080fd5b50610324610404366004612adb565b610a76565b34801561041557600080fd5b506002545b604051908152602001610348565b34801561043457600080fd5b506103a9610443366004612af4565b610afe565b34801561045457600080fd5b5060405160128152602001610348565b34801561047057600080fd5b506103a961047f366004612a8b565b610ba8565b34801561049057600080fd5b5061032461049f366004612adb565b610be4565b3480156104b057600080fd5b50600a54610371906001600160a01b031681565b3480156104d057600080fd5b506103246104df366004612ab7565b610c69565b3480156104f057600080fd5b50600f546103a99060ff1681565b34801561050a57600080fd5b5061041a60135481565b34801561052057600080fd5b5061041a60165481565b34801561053657600080fd5b5061041a60115481565b34801561054c57600080fd5b5061032461055b366004612c0b565b610d42565b34801561056c57600080fd5b5061041a60075481565b34801561058257600080fd5b50610324610591366004612cdb565b610e9a565b3480156105a257600080fd5b5061041a60125481565b3480156105b857600080fd5b50600f546103a99062010000900460ff1681565b3480156105d857600080fd5b5061041a6105e7366004612ab7565b610f3e565b3480156105f857600080fd5b50610324610f59565b34801561060d57600080fd5b5061032461061c366004612cf9565b610f8f565b34801561062d57600080fd5b5061032461063c366004612d32565b611057565b34801561064d57600080fd5b506103a961065c366004612d4f565b611119565b34801561066d57600080fd5b5061041a60065481565b34801561068357600080fd5b50610324611353565b34801561069857600080fd5b506005546001600160a01b0316610371565b3480156106b657600080fd5b5061033b611415565b3480156106cb57600080fd5b5061041a60175481565b3480156106e157600080fd5b506103246106f0366004612cf9565b611424565b34801561070157600080fd5b506103a9610710366004612a8b565b611518565b34801561072157600080fd5b506103246115b1565b34801561073657600080fd5b506103a9610745366004612a8b565b611aa0565b34801561075657600080fd5b506103a9610765366004612ab7565b601b6020526000908152604090205460ff1681565b34801561078657600080fd5b50600f546103a990610100900460ff1681565b3480156107a557600080fd5b506103246107b4366004612cf9565b611aad565b3480156107c557600080fd5b506103a96107d4366004612ab7565b600e6020526000908152604090205460ff1681565b3480156107f557600080fd5b5061041a60185481565b34801561080b57600080fd5b506015546103a99060ff1681565b34801561082557600080fd5b50610324610834366004612adb565b611b36565b34801561084557600080fd5b5061041a60105481565b34801561085b57600080fd5b5061032461086a366004612ab7565b611c7e565b34801561087b57600080fd5b5061041a61088a366004612d4f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108c157600080fd5b5061041a600b5481565b3480156108d757600080fd5b50600c54610371906001600160a01b031681565b3480156108f757600080fd5b5061041a600d5481565b34801561090d57600080fd5b5061032461091c366004612ab7565b611d31565b34801561092d57600080fd5b5061041a60085481565b34801561094357600080fd5b5061041a60145481565b6005546001600160a01b031633146109805760405162461bcd60e51b815260040161097790612d7d565b60405180910390fd5b604051600090339047908381818185875af1925050503d80600081146109c2576040519150601f19603f3d011682016040523d82523d6000602084013e6109c7565b606091505b50505050565b6060600380546109dc90612db2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0890612db2565b8015610a555780601f10610a2a57610100808354040283529160200191610a55565b820191906000526020600020905b815481529060010190602001808311610a3857829003601f168201915b5050505050905090565b6000610a6c338484611e1c565b5060015b92915050565b6005546001600160a01b03163314610aa05760405162461bcd60e51b815260040161097790612d7d565b60138190556012819055600f811115610afb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610977565b50565b6000610b0b848484611f40565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b905760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610977565b610b9d8533858403611e1c565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a6c918590610bdf908690612e02565b611e1c565b6005546001600160a01b03163314610c0e5760405162461bcd60e51b815260040161097790612d7d565b60118190556010819055600c811115610afb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313225206f72206c6573730000006044820152606401610977565b6005546001600160a01b03163314610c935760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b038116610cf85760405162461bcd60e51b815260206004820152602660248201527f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60448201526507420626520360d41b6064820152608401610977565b600c80546001600160a01b0319166001600160a01b0383169081179091556040517f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298290600090a250565b6005546001600160a01b03163314610d6c5760405162461bcd60e51b815260040161097790612d7d565b8051825114610dbd5760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610977565b60c8825110610e2d5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610977565b60005b8251811015610e95576000838281518110610e4d57610e4d612e15565b602002602001015190506000838381518110610e6b57610e6b612e15565b60200260200101519050610e8033838361258b565b50508080610e8d90612e2b565b915050610e30565b505050565b6005546001600160a01b03163314610ec45760405162461bcd60e51b815260040161097790612d7d565b60008111610f275760405162461bcd60e51b815260206004820152602a60248201527f4d61782073776170732070657220626c6f636b206d75737420626520677265616044820152690746572207468616e20360b41b6064820152608401610977565b6015805460ff191692151592909217909155601755565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610f835760405162461bcd60e51b815260040161097790612d7d565b600f805460ff19169055565b6005546001600160a01b03163314610fb95760405162461bcd60e51b815260040161097790612d7d565b8061102c57600a546001600160a01b039081169083160361102c5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610977565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110815760405162461bcd60e51b815260040161097790612d7d565b806110ce5760405162461bcd60e51b815260206004820152601860248201527f506c6561736520636f6e6669726d2072656e6f756e63652100000000000000006044820152606401610977565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350600580546001600160a01b0319169055565b6005546000906001600160a01b031633146111465760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b03831661119c5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610977565b6001600160a01b038316301415806111bc5750600f54610100900460ff16155b6112255760405162461bcd60e51b815260206004820152603460248201527f43616e2774207769746864726177206e617469766520746f6b656e73207768696044820152736c652074726164696e672069732061637469766560601b6064820152608401610977565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190612e44565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af11580156112e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113079190612e5d565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b0316331461137d5760405162461bcd60e51b815260040161097790612d7d565b600f54610100900460ff16156113d55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610977565b600f805462ffff0019166201010017905543600d556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b6060600480546109dc90612db2565b6005546001600160a01b0316331461144e5760405162461bcd60e51b815260040161097790612d7d565b600a546001600160a01b03908116908316036114d25760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610977565b6114dc82826126e0565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561159a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610977565b6115a73385858403611e1c565b5060019392505050565b6005546001600160a01b031633146115db5760405162461bcd60e51b815260040161097790612d7d565b600f54610100900460ff16156116475760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610977565b60004660010361166c5750737a250d5630b4cf539739df2c5dacb4c659f2488d61173a565b4662aa36a7036116915750737a250d5630b4cf539739df2c5dacb4c659f2488d61173a565b466038036116b457507310ed43c718714eb63d5aa57b78b54704e256024e61173a565b466061036116d7575073d99d1c33f9fc3444f8101754abc46c52416550d161173a565b4661a4b1036116fb5750731b02da8cb0d097eb8d57a175b88c7d8b4799750661173a565b60405162461bcd60e51b815260206004820152601460248201527310da185a5b881b9bdd0818dbdb999a59dd5c995960621b6044820152606401610977565b600980546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b79190612e7a565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183d9190612e7a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561188a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ae9190612e7a565b600a80546001600160a01b0319166001600160a01b039290921691821790556118d890600161270a565b600a546118ef906001600160a01b031660016126e0565b600954611906906001600160a01b0316600161270a565b60095461191d906001600160a01b03166001611aad565b600047116119795760405162461bcd60e51b815260206004820152602360248201527f4d757374206861766520455448206f6e20636f6e747261637420746f206c61756044820152620dcc6d60eb1b6064820152608401610977565b600061198430610f3e565b116119e05760405162461bcd60e51b815260206004820152602660248201527f4d757374206861766520546f6b656e73206f6e20636f6e747261637420746f206044820152650d8c2eadcc6d60d31b6064820152608401610977565b6009546119fb9030906001600160a01b0316610bdf82610f3e565b6009546001600160a01b031663f305d7194730611a1781610f3e565b6040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015611a7b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109c79190612e97565b6000610a6c338484611f40565b6005546001600160a01b03163314611ad75760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b038216600081815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314611b605760405162461bcd60e51b815260040161097790612d7d565b620186a0611b6d60025490565b611b78906001612ec5565b611b829190612edc565b811015611bef5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610977565b6064611bfa60025490565b611c05906001612ec5565b611c0f9190612edc565b811115611c795760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101892903a37ba30b61039bab838363c9760711b6064820152608401610977565b600b55565b6005546001600160a01b03163314611ca85760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b0381166000908152600e602052604090205460ff16611d105760405162461bcd60e51b815260206004820152601d60248201527f57616c6c657420697320616c7265616479206e6f74206d61726b65642e0000006044820152606401610977565b6001600160a01b03166000908152600e60205260409020805460ff19169055565b6005546001600160a01b03163314611d5b5760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b038116611dc05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610977565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611e7e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610977565b6001600160a01b038216611edf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610977565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f665760405162461bcd60e51b815260040161097790612efe565b6001600160a01b038216611f8c5760405162461bcd60e51b815260040161097790612f43565b60008111611fdc5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610977565b600f54610100900460ff16612074576001600160a01b03831660009081526019602052604090205460ff168061202a57506001600160a01b03821660009081526019602052604090205460ff165b61206f5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610977565b6120dd565b6001600160a01b0383166000908152600e602052604090205460ff16156120dd5760405162461bcd60e51b815260206004820152601e60248201527f536e69706572732063616e6e6f74207472616e7366657220746f6b656e7300006044820152606401610977565b600f5460ff1615612373576001600160a01b03821661dead1480159061211c57506001600160a01b03831660009081526019602052604090205460ff16155b801561214157506001600160a01b03821660009081526019602052604090205460ff16155b15612373576001600160a01b0383166000908152601b602052604090205460ff16801561218757506001600160a01b0382166000908152601a602052604090205460ff16155b1561224e576006548111156121ef5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610977565b6008546121fb83610f3e565b6122059083612e02565b11156122495760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610977565b612373565b6001600160a01b0382166000908152601b602052604090205460ff16801561228f57506001600160a01b0383166000908152601a602052604090205460ff16155b156122f9576007548111156122495760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610977565b6001600160a01b0382166000908152601a602052604090205460ff166123735760085461232583610f3e565b61232f9083612e02565b11156123735760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610977565b600061237e30610f3e565b600b549091508110801590819061239d5750600f5462010000900460ff165b80156123b35750600a54600160a01b900460ff16155b80156123d757506001600160a01b0384166000908152601b602052604090205460ff165b1561240757600a805460ff60a01b1916600160a01b1790556123f9600061276d565b600a805460ff60a01b191690555b6001600160a01b03851660009081526019602052604090205460019060ff168061244957506001600160a01b03851660009081526019602052604090205460ff165b15612452575060005b60008115612577576001600160a01b0386166000908152601b602052604090205460ff16801561248457506000601254115b156124dc576064601254866124999190612ec5565b6124a39190612edc565b9050601254601354826124b69190612ec5565b6124c09190612edc565b601460008282546124d19190612e02565b909155506125599050565b6001600160a01b0387166000908152601b602052604090205460ff16801561250657506000601054115b156125595760646010548661251b9190612ec5565b6125259190612edc565b9050601054601154826125389190612ec5565b6125429190612edc565b601460008282546125539190612e02565b90915550505b801561256a5761256a87308361258b565b6125748186612f86565b94505b61258287878761258b565b50505050505050565b6001600160a01b0383166125b15760405162461bcd60e51b815260040161097790612efe565b6001600160a01b0382166125d75760405162461bcd60e51b815260040161097790612f43565b6001600160a01b0383166000908152602081905260409020548181101561264f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610977565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612686908490612e02565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d291815260200190565b60405180910390a350505050565b6001600160a01b0382166000908152601b60205260409020805460ff19168215151790556114dc82825b6001600160a01b0382166000818152601a6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6016544314612780574360165560006018555b60155460ff168015612796575060175460185410155b1561279e5750565b60006127a930610f3e565b6014549091508115806127ba575080155b156127c457505050565b821580156127de5750600b546127db90600f612ec5565b82115b156127f457600b546127f190600f612ec5565b91505b6127fd826128ce565b60006014819055506001601860008282546128189190612e02565b9091555050600c546040516000916001600160a01b03169047908381818185875af1925050503d806000811461286a576040519150601f19603f3d011682016040523d82523d6000602084013e61286f565b606091505b50509050806109c75760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220746f206f7065726174696f6e7320616464726573732066604482015264185a5b195960da1b6064820152608401610977565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061290357612903612e15565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561295c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129809190612e7a565b8160018151811061299357612993612e15565b6001600160a01b0392831660209182029290920101526009546129b99130911684611e1c565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906129f2908590600090869030904290600401612f99565b600060405180830381600087803b158015612a0c57600080fd5b505af1158015612a20573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015612a5557858101830151858201604001528201612a39565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610afb57600080fd5b60008060408385031215612a9e57600080fd5b8235612aa981612a76565b946020939093013593505050565b600060208284031215612ac957600080fd5b8135612ad481612a76565b9392505050565b600060208284031215612aed57600080fd5b5035919050565b600080600060608486031215612b0957600080fd5b8335612b1481612a76565b92506020840135612b2481612a76565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b7457612b74612b35565b604052919050565b600067ffffffffffffffff821115612b9657612b96612b35565b5060051b60200190565b600082601f830112612bb157600080fd5b81356020612bc6612bc183612b7c565b612b4b565b82815260059290921b84018101918181019086841115612be557600080fd5b8286015b84811015612c005780358352918301918301612be9565b509695505050505050565b60008060408385031215612c1e57600080fd5b823567ffffffffffffffff80821115612c3657600080fd5b818501915085601f830112612c4a57600080fd5b81356020612c5a612bc183612b7c565b82815260059290921b84018101918181019089841115612c7957600080fd5b948201945b83861015612ca0578535612c9181612a76565b82529482019490820190612c7e565b96505086013592505080821115612cb657600080fd5b50612cc385828601612ba0565b9150509250929050565b8015158114610afb57600080fd5b60008060408385031215612cee57600080fd5b8235612aa981612ccd565b60008060408385031215612d0c57600080fd5b8235612d1781612a76565b91506020830135612d2781612ccd565b809150509250929050565b600060208284031215612d4457600080fd5b8135612ad481612ccd565b60008060408385031215612d6257600080fd5b8235612d6d81612a76565b91506020830135612d2781612a76565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612dc657607f821691505b602082108103612de657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7057610a70612dec565b634e487b7160e01b600052603260045260246000fd5b600060018201612e3d57612e3d612dec565b5060010190565b600060208284031215612e5657600080fd5b5051919050565b600060208284031215612e6f57600080fd5b8151612ad481612ccd565b600060208284031215612e8c57600080fd5b8151612ad481612a76565b600080600060608486031215612eac57600080fd5b8351925060208401519150604084015190509250925092565b8082028115828204841417610a7057610a70612dec565b600082612ef957634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610a7057610a70612dec565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612fe95784516001600160a01b031683529383019391830191600101612fc4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220de1b0286dde5e60b284f3235c66118696b7d027eb932e27c7ddc291ad308caf464736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106103035760003560e01c80638366e79a11610190578063c44a24dd116100dc578063dd62ed3e11610095578063ee40166e1161006f578063ee40166e146108eb578063f2fde38b14610901578063f8b45b0514610921578063fb002c971461093757600080fd5b8063dd62ed3e1461086f578063e2f45605146108b5578063ea4cfe12146108cb57600080fd5b8063c44a24dd146107b9578063c4c6571b146107e9578063cef3f886146107ff578063d257b34f14610819578063d85ba06314610839578063d86c9fec1461084f57600080fd5b80639a7a23d611610149578063a9059cbb11610123578063a9059cbb1461072a578063b62496f51461074a578063bbc0c7421461077a578063c02466681461079957600080fd5b80639a7a23d6146106d5578063a457c2d7146106f5578063a6690cf91461071557600080fd5b80638366e79a1461064157806388e765ff146106615780638a8c523c146106775780638da5cb5b1461068c57806395d89b41146106aa57806396792669146106bf57600080fd5b80634a62bb651161024f578063672fc7be1161020857806370a08231116101e257806370a08231146105cc578063751039fc146105ec5780637571336a146106015780637e926b4b1461062157600080fd5b8063672fc7be146105765780636a486a8e146105965780636ddd1713146105ac57600080fd5b80634a62bb65146104e45780634f77f6c0146104fe578063591f09eb146105145780635a139dd41461052a578063656202831461054057806366d602ae1461056057600080fd5b806318160ddd116102bc57806339509351116102965780633950935114610464578063436d334014610484578063452ed4f1146104a4578063499b8394146104c457600080fd5b806318160ddd1461040957806323b872dd14610428578063313ce5671461044857600080fd5b80630614117a1461030f57806306fdde03146103265780630758d92414610351578063095ea7b31461038957806310d5de53146103b957806312185a39146103e957600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032461094d565b005b34801561033257600080fd5b5061033b6109cd565b6040516103489190612a28565b60405180910390f35b34801561035d57600080fd5b50600954610371906001600160a01b031681565b6040516001600160a01b039091168152602001610348565b34801561039557600080fd5b506103a96103a4366004612a8b565b610a5f565b6040519015158152602001610348565b3480156103c557600080fd5b506103a96103d4366004612ab7565b601a6020526000908152604090205460ff1681565b3480156103f557600080fd5b50610324610404366004612adb565b610a76565b34801561041557600080fd5b506002545b604051908152602001610348565b34801561043457600080fd5b506103a9610443366004612af4565b610afe565b34801561045457600080fd5b5060405160128152602001610348565b34801561047057600080fd5b506103a961047f366004612a8b565b610ba8565b34801561049057600080fd5b5061032461049f366004612adb565b610be4565b3480156104b057600080fd5b50600a54610371906001600160a01b031681565b3480156104d057600080fd5b506103246104df366004612ab7565b610c69565b3480156104f057600080fd5b50600f546103a99060ff1681565b34801561050a57600080fd5b5061041a60135481565b34801561052057600080fd5b5061041a60165481565b34801561053657600080fd5b5061041a60115481565b34801561054c57600080fd5b5061032461055b366004612c0b565b610d42565b34801561056c57600080fd5b5061041a60075481565b34801561058257600080fd5b50610324610591366004612cdb565b610e9a565b3480156105a257600080fd5b5061041a60125481565b3480156105b857600080fd5b50600f546103a99062010000900460ff1681565b3480156105d857600080fd5b5061041a6105e7366004612ab7565b610f3e565b3480156105f857600080fd5b50610324610f59565b34801561060d57600080fd5b5061032461061c366004612cf9565b610f8f565b34801561062d57600080fd5b5061032461063c366004612d32565b611057565b34801561064d57600080fd5b506103a961065c366004612d4f565b611119565b34801561066d57600080fd5b5061041a60065481565b34801561068357600080fd5b50610324611353565b34801561069857600080fd5b506005546001600160a01b0316610371565b3480156106b657600080fd5b5061033b611415565b3480156106cb57600080fd5b5061041a60175481565b3480156106e157600080fd5b506103246106f0366004612cf9565b611424565b34801561070157600080fd5b506103a9610710366004612a8b565b611518565b34801561072157600080fd5b506103246115b1565b34801561073657600080fd5b506103a9610745366004612a8b565b611aa0565b34801561075657600080fd5b506103a9610765366004612ab7565b601b6020526000908152604090205460ff1681565b34801561078657600080fd5b50600f546103a990610100900460ff1681565b3480156107a557600080fd5b506103246107b4366004612cf9565b611aad565b3480156107c557600080fd5b506103a96107d4366004612ab7565b600e6020526000908152604090205460ff1681565b3480156107f557600080fd5b5061041a60185481565b34801561080b57600080fd5b506015546103a99060ff1681565b34801561082557600080fd5b50610324610834366004612adb565b611b36565b34801561084557600080fd5b5061041a60105481565b34801561085b57600080fd5b5061032461086a366004612ab7565b611c7e565b34801561087b57600080fd5b5061041a61088a366004612d4f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108c157600080fd5b5061041a600b5481565b3480156108d757600080fd5b50600c54610371906001600160a01b031681565b3480156108f757600080fd5b5061041a600d5481565b34801561090d57600080fd5b5061032461091c366004612ab7565b611d31565b34801561092d57600080fd5b5061041a60085481565b34801561094357600080fd5b5061041a60145481565b6005546001600160a01b031633146109805760405162461bcd60e51b815260040161097790612d7d565b60405180910390fd5b604051600090339047908381818185875af1925050503d80600081146109c2576040519150601f19603f3d011682016040523d82523d6000602084013e6109c7565b606091505b50505050565b6060600380546109dc90612db2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0890612db2565b8015610a555780601f10610a2a57610100808354040283529160200191610a55565b820191906000526020600020905b815481529060010190602001808311610a3857829003601f168201915b5050505050905090565b6000610a6c338484611e1c565b5060015b92915050565b6005546001600160a01b03163314610aa05760405162461bcd60e51b815260040161097790612d7d565b60138190556012819055600f811115610afb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610977565b50565b6000610b0b848484611f40565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b905760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610977565b610b9d8533858403611e1c565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a6c918590610bdf908690612e02565b611e1c565b6005546001600160a01b03163314610c0e5760405162461bcd60e51b815260040161097790612d7d565b60118190556010819055600c811115610afb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313225206f72206c6573730000006044820152606401610977565b6005546001600160a01b03163314610c935760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b038116610cf85760405162461bcd60e51b815260206004820152602660248201527f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60448201526507420626520360d41b6064820152608401610977565b600c80546001600160a01b0319166001600160a01b0383169081179091556040517f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298290600090a250565b6005546001600160a01b03163314610d6c5760405162461bcd60e51b815260040161097790612d7d565b8051825114610dbd5760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610977565b60c8825110610e2d5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610977565b60005b8251811015610e95576000838281518110610e4d57610e4d612e15565b602002602001015190506000838381518110610e6b57610e6b612e15565b60200260200101519050610e8033838361258b565b50508080610e8d90612e2b565b915050610e30565b505050565b6005546001600160a01b03163314610ec45760405162461bcd60e51b815260040161097790612d7d565b60008111610f275760405162461bcd60e51b815260206004820152602a60248201527f4d61782073776170732070657220626c6f636b206d75737420626520677265616044820152690746572207468616e20360b41b6064820152608401610977565b6015805460ff191692151592909217909155601755565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610f835760405162461bcd60e51b815260040161097790612d7d565b600f805460ff19169055565b6005546001600160a01b03163314610fb95760405162461bcd60e51b815260040161097790612d7d565b8061102c57600a546001600160a01b039081169083160361102c5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610977565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110815760405162461bcd60e51b815260040161097790612d7d565b806110ce5760405162461bcd60e51b815260206004820152601860248201527f506c6561736520636f6e6669726d2072656e6f756e63652100000000000000006044820152606401610977565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350600580546001600160a01b0319169055565b6005546000906001600160a01b031633146111465760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b03831661119c5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610977565b6001600160a01b038316301415806111bc5750600f54610100900460ff16155b6112255760405162461bcd60e51b815260206004820152603460248201527f43616e2774207769746864726177206e617469766520746f6b656e73207768696044820152736c652074726164696e672069732061637469766560601b6064820152608401610977565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190612e44565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af11580156112e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113079190612e5d565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b0316331461137d5760405162461bcd60e51b815260040161097790612d7d565b600f54610100900460ff16156113d55760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610977565b600f805462ffff0019166201010017905543600d556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b6060600480546109dc90612db2565b6005546001600160a01b0316331461144e5760405162461bcd60e51b815260040161097790612d7d565b600a546001600160a01b03908116908316036114d25760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610977565b6114dc82826126e0565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561159a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610977565b6115a73385858403611e1c565b5060019392505050565b6005546001600160a01b031633146115db5760405162461bcd60e51b815260040161097790612d7d565b600f54610100900460ff16156116475760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610977565b60004660010361166c5750737a250d5630b4cf539739df2c5dacb4c659f2488d61173a565b4662aa36a7036116915750737a250d5630b4cf539739df2c5dacb4c659f2488d61173a565b466038036116b457507310ed43c718714eb63d5aa57b78b54704e256024e61173a565b466061036116d7575073d99d1c33f9fc3444f8101754abc46c52416550d161173a565b4661a4b1036116fb5750731b02da8cb0d097eb8d57a175b88c7d8b4799750661173a565b60405162461bcd60e51b815260206004820152601460248201527310da185a5b881b9bdd0818dbdb999a59dd5c995960621b6044820152606401610977565b600980546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b79190612e7a565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183d9190612e7a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561188a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ae9190612e7a565b600a80546001600160a01b0319166001600160a01b039290921691821790556118d890600161270a565b600a546118ef906001600160a01b031660016126e0565b600954611906906001600160a01b0316600161270a565b60095461191d906001600160a01b03166001611aad565b600047116119795760405162461bcd60e51b815260206004820152602360248201527f4d757374206861766520455448206f6e20636f6e747261637420746f206c61756044820152620dcc6d60eb1b6064820152608401610977565b600061198430610f3e565b116119e05760405162461bcd60e51b815260206004820152602660248201527f4d757374206861766520546f6b656e73206f6e20636f6e747261637420746f206044820152650d8c2eadcc6d60d31b6064820152608401610977565b6009546119fb9030906001600160a01b0316610bdf82610f3e565b6009546001600160a01b031663f305d7194730611a1781610f3e565b6040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015611a7b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109c79190612e97565b6000610a6c338484611f40565b6005546001600160a01b03163314611ad75760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b038216600081815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314611b605760405162461bcd60e51b815260040161097790612d7d565b620186a0611b6d60025490565b611b78906001612ec5565b611b829190612edc565b811015611bef5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610977565b6064611bfa60025490565b611c05906001612ec5565b611c0f9190612edc565b811115611c795760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101892903a37ba30b61039bab838363c9760711b6064820152608401610977565b600b55565b6005546001600160a01b03163314611ca85760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b0381166000908152600e602052604090205460ff16611d105760405162461bcd60e51b815260206004820152601d60248201527f57616c6c657420697320616c7265616479206e6f74206d61726b65642e0000006044820152606401610977565b6001600160a01b03166000908152600e60205260409020805460ff19169055565b6005546001600160a01b03163314611d5b5760405162461bcd60e51b815260040161097790612d7d565b6001600160a01b038116611dc05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610977565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611e7e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610977565b6001600160a01b038216611edf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610977565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f665760405162461bcd60e51b815260040161097790612efe565b6001600160a01b038216611f8c5760405162461bcd60e51b815260040161097790612f43565b60008111611fdc5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610977565b600f54610100900460ff16612074576001600160a01b03831660009081526019602052604090205460ff168061202a57506001600160a01b03821660009081526019602052604090205460ff165b61206f5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610977565b6120dd565b6001600160a01b0383166000908152600e602052604090205460ff16156120dd5760405162461bcd60e51b815260206004820152601e60248201527f536e69706572732063616e6e6f74207472616e7366657220746f6b656e7300006044820152606401610977565b600f5460ff1615612373576001600160a01b03821661dead1480159061211c57506001600160a01b03831660009081526019602052604090205460ff16155b801561214157506001600160a01b03821660009081526019602052604090205460ff16155b15612373576001600160a01b0383166000908152601b602052604090205460ff16801561218757506001600160a01b0382166000908152601a602052604090205460ff16155b1561224e576006548111156121ef5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610977565b6008546121fb83610f3e565b6122059083612e02565b11156122495760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610977565b612373565b6001600160a01b0382166000908152601b602052604090205460ff16801561228f57506001600160a01b0383166000908152601a602052604090205460ff16155b156122f9576007548111156122495760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610977565b6001600160a01b0382166000908152601a602052604090205460ff166123735760085461232583610f3e565b61232f9083612e02565b11156123735760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610977565b600061237e30610f3e565b600b549091508110801590819061239d5750600f5462010000900460ff165b80156123b35750600a54600160a01b900460ff16155b80156123d757506001600160a01b0384166000908152601b602052604090205460ff165b1561240757600a805460ff60a01b1916600160a01b1790556123f9600061276d565b600a805460ff60a01b191690555b6001600160a01b03851660009081526019602052604090205460019060ff168061244957506001600160a01b03851660009081526019602052604090205460ff165b15612452575060005b60008115612577576001600160a01b0386166000908152601b602052604090205460ff16801561248457506000601254115b156124dc576064601254866124999190612ec5565b6124a39190612edc565b9050601254601354826124b69190612ec5565b6124c09190612edc565b601460008282546124d19190612e02565b909155506125599050565b6001600160a01b0387166000908152601b602052604090205460ff16801561250657506000601054115b156125595760646010548661251b9190612ec5565b6125259190612edc565b9050601054601154826125389190612ec5565b6125429190612edc565b601460008282546125539190612e02565b90915550505b801561256a5761256a87308361258b565b6125748186612f86565b94505b61258287878761258b565b50505050505050565b6001600160a01b0383166125b15760405162461bcd60e51b815260040161097790612efe565b6001600160a01b0382166125d75760405162461bcd60e51b815260040161097790612f43565b6001600160a01b0383166000908152602081905260409020548181101561264f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610977565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612686908490612e02565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126d291815260200190565b60405180910390a350505050565b6001600160a01b0382166000908152601b60205260409020805460ff19168215151790556114dc82825b6001600160a01b0382166000818152601a6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6016544314612780574360165560006018555b60155460ff168015612796575060175460185410155b1561279e5750565b60006127a930610f3e565b6014549091508115806127ba575080155b156127c457505050565b821580156127de5750600b546127db90600f612ec5565b82115b156127f457600b546127f190600f612ec5565b91505b6127fd826128ce565b60006014819055506001601860008282546128189190612e02565b9091555050600c546040516000916001600160a01b03169047908381818185875af1925050503d806000811461286a576040519150601f19603f3d011682016040523d82523d6000602084013e61286f565b606091505b50509050806109c75760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220746f206f7065726174696f6e7320616464726573732066604482015264185a5b195960da1b6064820152608401610977565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061290357612903612e15565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561295c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129809190612e7a565b8160018151811061299357612993612e15565b6001600160a01b0392831660209182029290920101526009546129b99130911684611e1c565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906129f2908590600090869030904290600401612f99565b600060405180830381600087803b158015612a0c57600080fd5b505af1158015612a20573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015612a5557858101830151858201604001528201612a39565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610afb57600080fd5b60008060408385031215612a9e57600080fd5b8235612aa981612a76565b946020939093013593505050565b600060208284031215612ac957600080fd5b8135612ad481612a76565b9392505050565b600060208284031215612aed57600080fd5b5035919050565b600080600060608486031215612b0957600080fd5b8335612b1481612a76565b92506020840135612b2481612a76565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b7457612b74612b35565b604052919050565b600067ffffffffffffffff821115612b9657612b96612b35565b5060051b60200190565b600082601f830112612bb157600080fd5b81356020612bc6612bc183612b7c565b612b4b565b82815260059290921b84018101918181019086841115612be557600080fd5b8286015b84811015612c005780358352918301918301612be9565b509695505050505050565b60008060408385031215612c1e57600080fd5b823567ffffffffffffffff80821115612c3657600080fd5b818501915085601f830112612c4a57600080fd5b81356020612c5a612bc183612b7c565b82815260059290921b84018101918181019089841115612c7957600080fd5b948201945b83861015612ca0578535612c9181612a76565b82529482019490820190612c7e565b96505086013592505080821115612cb657600080fd5b50612cc385828601612ba0565b9150509250929050565b8015158114610afb57600080fd5b60008060408385031215612cee57600080fd5b8235612aa981612ccd565b60008060408385031215612d0c57600080fd5b8235612d1781612a76565b91506020830135612d2781612ccd565b809150509250929050565b600060208284031215612d4457600080fd5b8135612ad481612ccd565b60008060408385031215612d6257600080fd5b8235612d6d81612a76565b91506020830135612d2781612a76565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612dc657607f821691505b602082108103612de657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7057610a70612dec565b634e487b7160e01b600052603260045260246000fd5b600060018201612e3d57612e3d612dec565b5060010190565b600060208284031215612e5657600080fd5b5051919050565b600060208284031215612e6f57600080fd5b8151612ad481612ccd565b600060208284031215612e8c57600080fd5b8151612ad481612a76565b600080600060608486031215612eac57600080fd5b8351925060208401519150604084015190509250925092565b8082028115828204841417610a7057610a70612dec565b600082612ef957634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610a7057610a70612dec565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612fe95784516001600160a01b031683529383019391830191600101612fc4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220de1b0286dde5e60b284f3235c66118696b7d027eb932e27c7ddc291ad308caf464736f6c63430008130033

Deployed Bytecode Sourcemap

11288:15038:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22932:179;;;;;;;;;;;;;:::i;:::-;;4640:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11430:27;;;;;;;;;;-1:-1:-1;11430:27:0;;;;-1:-1:-1;;;;;11430:27:0;;;;;;-1:-1:-1;;;;;749:32:1;;;731:51;;719:2;704:18;11430:27:0;567:221:1;5695:210:0;;;;;;;;;;-1:-1:-1;5695:210:0;;;;;:::i;:::-;;:::i;:::-;;;1414:14:1;;1407:22;1389:41;;1377:2;1362:18;5695:210:0;1249:187:1;12243:63:0;;;;;;;;;;-1:-1:-1;12243:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15786:251;;;;;;;;;;-1:-1:-1;15786:251:0;;;;;:::i;:::-;;:::i;4961:108::-;;;;;;;;;;-1:-1:-1;5049:12:0;;4961:108;;;2024:25:1;;;2012:2;1997:18;4961:108:0;1878:177:1;5913:529:0;;;;;;;;;;-1:-1:-1;5913:529:0;;;;;:::i;:::-;;:::i;4860:93::-;;;;;;;;;;-1:-1:-1;4860:93:0;;4943:2;2663:36:1;;2651:2;2636:18;4860:93:0;2521:184:1;6450:297:0;;;;;;;;;;-1:-1:-1;6450:297:0;;;;;:::i;:::-;;:::i;15532:246::-;;;;;;;;;;-1:-1:-1;15532:246:0;;;;;:::i;:::-;;:::i;11464:21::-;;;;;;;;;;-1:-1:-1;11464:21:0;;;;-1:-1:-1;;;;;11464:21:0;;;22285:350;;;;;;;;;;-1:-1:-1;22285:350:0;;;;;:::i;:::-;;:::i;11702:33::-;;;;;;;;;;-1:-1:-1;11702:33:0;;;;;;;;11931:32;;;;;;;;;;;;;;;;12060:28;;;;;;;;;;;;;;;;11856:31;;;;;;;;;;;;;;;;25689:630;;;;;;;;;;-1:-1:-1;25689:630:0;;;;;:::i;:::-;;:::i;11362:28::-;;;;;;;;;;;;;;;;25432:249;;;;;;;;;;-1:-1:-1;25432:249:0;;;;;:::i;:::-;;:::i;11896:28::-;;;;;;;;;;;;;;;;11782:31;;;;;;;;;;-1:-1:-1;11782:31:0;;;;;;;;;;;5077:177;;;;;;;;;;-1:-1:-1;5077:177:0;;;;;:::i;:::-;;:::i;22643:84::-;;;;;;;;;;;;;:::i;14566:336::-;;;;;;;;;;-1:-1:-1;14566:336:0;;;;;:::i;:::-;;:::i;9171:265::-;;;;;;;;;;-1:-1:-1;9171:265:0;;;;;:::i;:::-;;:::i;21717:560::-;;;;;;;;;;-1:-1:-1;21717:560:0;;;;;:::i;:::-;;:::i;11328:27::-;;;;;;;;;;;;;;;;25169:249;;;;;;;;;;;;;:::i;8957:79::-;;;;;;;;;;-1:-1:-1;9022:6:0;;-1:-1:-1;;;;;9022:6:0;8957:79;;4748:104;;;;;;;;;;;;;:::i;12096:35::-;;;;;;;;;;;;;;;;15156:355;;;;;;;;;;-1:-1:-1;15156:355:0;;;;;:::i;:::-;;:::i;6755:482::-;;;;;;;;;;-1:-1:-1;6755:482:0;;;;;:::i;:::-;;:::i;23125:2036::-;;;;;;;;;;;;;:::i;5262:216::-;;;;;;;;;;-1:-1:-1;5262:216:0;;;;;:::i;:::-;;:::i;12313:57::-;;;;;;;;;;-1:-1:-1;12313:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11742:33;;;;;;;;;;-1:-1:-1;11742:33:0;;;;;;;;;;;16486:182;;;;;;;;;;-1:-1:-1;16486:182:0;;;;;:::i;:::-;;:::i;11647:46::-;;;;;;;;;;-1:-1:-1;11647:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12139:33;;;;;;;;;;;;;;;;12015:38;;;;;;;;;;-1:-1:-1;12015:38:0;;;;;;;;16049:425;;;;;;;;;;-1:-1:-1;16049:425:0;;;;;:::i;:::-;;:::i;11822:27::-;;;;;;;;;;;;;;;;22735:181;;;;;;;;;;-1:-1:-1;22735:181:0;;;;;:::i;:::-;;:::i;5486:201::-;;;;;;;;;;-1:-1:-1;5486:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;5652:18:0;;;5620:7;5652:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5486:201;11522:33;;;;;;;;;;;;;;;;11562:32;;;;;;;;;;-1:-1:-1;11562:32:0;;;;-1:-1:-1;;;;;11562:32:0;;;11603:37;;;;;;;;;;;;;;;;9444:281;;;;;;;;;;-1:-1:-1;9444:281:0;;;;;:::i;:::-;;:::i;11397:24::-;;;;;;;;;;;;;;;;11972:34;;;;;;;;;;;;;;;;22932:179;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;;;;;;;;;23021:82:::1;::::0;22984:12:::1;::::0;23029:10:::1;::::0;23053:21:::1;::::0;22984:12;23021:82;22984:12;23021:82;23053:21;23029:10;23021:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;22932:179:0:o;4640:100::-;4694:13;4727:5;4720:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4640:100;:::o;5695:210::-;5814:4;5836:39;790:10;5859:7;5868:6;5836:8;:39::i;:::-;-1:-1:-1;5893:4:0;5695:210;;;;;:::o;15786:251::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;15879:17:::1;:34:::0;;;15924:13:::1;:33:::0;;;15993:2:::1;15976:19:::0;::::1;;15968:61;;;::::0;-1:-1:-1;;;15968:61:0;;8026:2:1;15968:61:0::1;::::0;::::1;8008:21:1::0;8065:2;8045:18;;;8038:30;8104:31;8084:18;;;8077:59;8153:18;;15968:61:0::1;7824:353:1::0;15968:61:0::1;15786:251:::0;:::o;5913:529::-;6053:4;6070:36;6080:6;6088:9;6099:6;6070:9;:36::i;:::-;-1:-1:-1;;;;;6146:19:0;;6119:24;6146:19;;;:11;:19;;;;;;;;790:10;6146:33;;;;;;;;6212:26;;;;6190:116;;;;-1:-1:-1;;;6190:116:0;;8384:2:1;6190:116:0;;;8366:21:1;8423:2;8403:18;;;8396:30;8462:34;8442:18;;;8435:62;-1:-1:-1;;;8513:18:1;;;8506:38;8561:19;;6190:116:0;8182:404:1;6190:116:0;6342:57;6351:6;790:10;6392:6;6373:16;:25;6342:8;:57::i;:::-;-1:-1:-1;6430:4:0;;5913:529;-1:-1:-1;;;;5913:529:0:o;6450:297::-;790:10;6565:4;6659:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6659:34:0;;;;;;;;;;6565:4;;6587:130;;6637:7;;6659:47;;6696:10;;6659:47;:::i;:::-;6587:8;:130::i;15532:246::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;15624:16:::1;:33:::0;;;15668:12:::1;:31:::0;;;15734:2:::1;15718:18:::0;::::1;;15710:60;;;::::0;-1:-1:-1;;;15710:60:0;;9055:2:1;15710:60:0::1;::::0;::::1;9037:21:1::0;9094:2;9074:18;;;9067:30;9133:31;9113:18;;;9106:59;9182:18;;15710:60:0::1;8853:353:1::0;22285:350:0;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22411:32:0;::::1;22389:120;;;::::0;-1:-1:-1;;;22389:120:0;;9413:2:1;22389:120:0::1;::::0;::::1;9395:21:1::0;9452:2;9432:18;;;9425:30;9491:34;9471:18;;;9464:62;-1:-1:-1;;;9542:18:1;;;9535:36;9588:19;;22389:120:0::1;9211:402:1::0;22389:120:0::1;22520:17;:47:::0;;-1:-1:-1;;;;;;22520:47:0::1;-1:-1:-1::0;;;;;22520:47:0;::::1;::::0;;::::1;::::0;;;22583:44:::1;::::0;::::1;::::0;-1:-1:-1;;22583:44:0::1;22285:350:::0;:::o;25689:630::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;25868:15:::1;:22;25850:7;:14;:40;25828:120;;;::::0;-1:-1:-1;;;25828:120:0;;9820:2:1;25828:120:0::1;::::0;::::1;9802:21:1::0;9859:2;9839:18;;;9832:30;9898:32;9878:18;;;9871:60;9948:18;;25828:120:0::1;9618:354:1::0;25828:120:0::1;25998:3;25981:7;:14;:20;25959:124;;;::::0;-1:-1:-1;;;25959:124:0;;10179:2:1;25959:124:0::1;::::0;::::1;10161:21:1::0;10218:2;10198:18;;;10191:30;10257:34;10237:18;;;10230:62;-1:-1:-1;;;10308:18:1;;;10301:52;10370:19;;25959:124:0::1;9977:418:1::0;25959:124:0::1;26110:9;26105:207;26129:7;:14;26125:1;:18;26105:207;;;26165:14;26182:7;26190:1;26182:10;;;;;;;;:::i;:::-;;;;;;;26165:27;;26207:14;26224:15;26240:1;26224:18;;;;;;;;:::i;:::-;;;;;;;26207:35;;26257:43;26273:10;26285:6;26293;26257:15;:43::i;:::-;26150:162;;26145:3;;;;;:::i;:::-;;;;26105:207;;;;25689:630:::0;;:::o;25432:249::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;25545:1:::1;25533:9;:13;25525:68;;;::::0;-1:-1:-1;;;25525:68:0;;10874:2:1;25525:68:0::1;::::0;::::1;10856:21:1::0;10913:2;10893:18;;;10886:30;10952:34;10932:18;;;10925:62;-1:-1:-1;;;11003:18:1;;;10996:40;11053:19;;25525:68:0::1;10672:406:1::0;25525:68:0::1;25604:19;:30:::0;;-1:-1:-1;;25604:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;25645:16:::1;:28:::0;25432:249::o;5077:177::-;-1:-1:-1;;;;;5228:18:0;5196:7;5228:18;;;;;;;;;;;;5077:177::o;22643:84::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;22697:14:::1;:22:::0;;-1:-1:-1;;22697:22:0::1;::::0;;22643:84::o;14566:336::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;14688:4:::1;14683:155;;14745:6;::::0;-1:-1:-1;;;;;14745:6:0;;::::1;14735:16:::0;;::::1;::::0;14709:117:::1;;;::::0;-1:-1:-1;;;14709:117:0;;11285:2:1;14709:117:0::1;::::0;::::1;11267:21:1::0;11324:2;11304:18;;;11297:30;11363:34;11343:18;;;11336:62;-1:-1:-1;;;11414:18:1;;;11407:37;11461:19;;14709:117:0::1;11083:403:1::0;14709:117:0::1;-1:-1:-1::0;;;;;14848:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;14848:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14566:336::o;9171:265::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;9298:15:::1;9290:52;;;::::0;-1:-1:-1;;;9290:52:0;;11693:2:1;9290:52:0::1;::::0;::::1;11675:21:1::0;11732:2;11712:18;;;11705:30;11771:26;11751:18;;;11744:54;11815:18;;9290:52:0::1;11491:348:1::0;9290:52:0::1;9379:6;::::0;9358:40:::1;::::0;9395:1:::1;::::0;-1:-1:-1;;;;;9379:6:0::1;::::0;9358:40:::1;::::0;9395:1;;9358:40:::1;-1:-1:-1::0;9409:6:0::1;:19:::0;;-1:-1:-1;;;;;;9409:19:0::1;::::0;;9171:265::o;21717:560::-;9084:6;;21829:10;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21860:20:0;::::1;21852:59;;;::::0;-1:-1:-1;;;21852:59:0;;12046:2:1;21852:59:0::1;::::0;::::1;12028:21:1::0;12085:2;12065:18;;;12058:30;12124:28;12104:18;;;12097:56;12170:18;;21852:59:0::1;11844:350:1::0;21852:59:0::1;-1:-1:-1::0;;;;;21944:23:0;::::1;21962:4;21944:23;;::::0;:41:::1;;-1:-1:-1::0;21972:13:0::1;::::0;::::1;::::0;::::1;;;21971:14;21944:41;21922:143;;;::::0;-1:-1:-1;;;21922:143:0;;12401:2:1;21922:143:0::1;::::0;::::1;12383:21:1::0;12440:2;12420:18;;;12413:30;12479:34;12459:18;;;12452:62;-1:-1:-1;;;12530:18:1;;;12523:50;12590:19;;21922:143:0::1;12199:416:1::0;21922:143:0::1;22103:39;::::0;-1:-1:-1;;;22103:39:0;;22136:4:::1;22103:39;::::0;::::1;731:51:1::0;22076:24:0::1;::::0;-1:-1:-1;;;;;22103:24:0;::::1;::::0;::::1;::::0;704:18:1;;22103:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22161:46;::::0;-1:-1:-1;;;22161:46:0;;-1:-1:-1;;;;;13001:32:1;;;22161:46:0::1;::::0;::::1;12983:51:1::0;13050:18;;;13043:34;;;22076:66:0;;-1:-1:-1;22161:23:0;;::::1;::::0;::::1;::::0;12956:18:1;;22161:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22223;::::0;;-1:-1:-1;;;;;13001:32:1;;12983:51;;13065:2;13050:18;;13043:34;;;22153:54:0;;-1:-1:-1;22223:46:0::1;::::0;12956:18:1;22223:46:0::1;;;;;;;21841:436;21717:560:::0;;;;:::o;25169:249::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;25233:13:::1;::::0;::::1;::::0;::::1;;;25232:14;25224:50;;;::::0;-1:-1:-1;;;25224:50:0;;13540:2:1;25224:50:0::1;::::0;::::1;13522:21:1::0;13579:2;13559:18;;;13552:30;13618:25;13598:18;;;13591:53;13661:18;;25224:50:0::1;13338:347:1::0;25224:50:0::1;25285:13;:20:::0;;-1:-1:-1;;25316:18:0;;;;;25366:12:::1;25345:18;:33:::0;25394:16:::1;::::0;::::1;::::0;-1:-1:-1;;25394:16:0::1;25169:249::o:0;4748:104::-;4804:13;4837:7;4830:14;;;;;:::i;15156:355::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;15304:6:::1;::::0;-1:-1:-1;;;;;15304:6:0;;::::1;15296:14:::0;;::::1;::::0;15274:121:::1;;;::::0;-1:-1:-1;;;15274:121:0;;13892:2:1;15274:121:0::1;::::0;::::1;13874:21:1::0;13931:2;13911:18;;;13904:30;13970:34;13950:18;;;13943:62;14041:27;14021:18;;;14014:55;14086:19;;15274:121:0::1;13690:421:1::0;15274:121:0::1;15406:41;15435:4;15441:5;15406:28;:41::i;:::-;15463:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;15463:40:0;::::1;::::0;::::1;::::0;;;::::1;15156:355:::0;;:::o;6755:482::-;790:10;6875:4;6924:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6924:34:0;;;;;;;;;;6991:35;;;;6969:122;;;;-1:-1:-1;;;6969:122:0;;14318:2:1;6969:122:0;;;14300:21:1;14357:2;14337:18;;;14330:30;14396:34;14376:18;;;14369:62;-1:-1:-1;;;14447:18:1;;;14440:35;14492:19;;6969:122:0;14116:401:1;6969:122:0;7127:67;790:10;7150:7;7178:15;7159:16;:34;7127:8;:67::i;:::-;-1:-1:-1;7225:4:0;;6755:482;-1:-1:-1;;;6755:482:0:o;23125:2036::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;23188:13:::1;::::0;::::1;::::0;::::1;;;23187:14;23179:70;;;::::0;-1:-1:-1;;;23179:70:0;;14724:2:1;23179:70:0::1;::::0;::::1;14706:21:1::0;14763:2;14743:18;;;14736:30;14802:34;14782:18;;;14775:62;-1:-1:-1;;;14853:18:1;;;14846:41;14904:19;;23179:70:0::1;14522:407:1::0;23179:70:0::1;23267:18;23302:13;23319:1;23302:18:::0;23298:730:::1;;-1:-1:-1::0;23350:42:0::1;23298:730;;;23433:13;23450:8;23433:25:::0;23429:599:::1;;-1:-1:-1::0;23488:42:0::1;23429:599;;;23568:13;23585:2;23568:19:::0;23564:464:::1;;-1:-1:-1::0;23617:42:0::1;23564:464;;;23702:13;23719:2;23702:19:::0;23698:330:::1;;-1:-1:-1::0;23751:42:0::1;23698:330;;;23836:13;23853:5;23836:22:::0;23832:196:::1;;-1:-1:-1::0;23888:42:0::1;23832:196;;;23986:30;::::0;-1:-1:-1;;;23986:30:0;;15136:2:1;23986:30:0::1;::::0;::::1;15118:21:1::0;15175:2;15155:18;;;15148:30;-1:-1:-1;;;15194:18:1;;;15187:50;15254:18;;23986:30:0::1;14934:344:1::0;23832:196:0::1;24070:9;:34:::0;;-1:-1:-1;;;;;;24070:34:0::1;-1:-1:-1::0;;;;;24070:34:0;::::1;::::0;;::::1;::::0;;;24170:19:::1;::::0;;-1:-1:-1;;;24170:19:0;;;;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;24070:34;24170:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24158:43:0::1;;24224:4;24244:9;;;;;;;;;-1:-1:-1::0;;;;;24244:9:0::1;-1:-1:-1::0;;;;;24244:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24158:113;::::0;-1:-1:-1;;;;;;24158:113:0::1;::::0;;;;;;-1:-1:-1;;;;;15769:15:1;;;24158:113:0::1;::::0;::::1;15751:34:1::0;15821:15;;15801:18;;;15794:43;15686:18;;24158:113:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24149:6;:122:::0;;-1:-1:-1;;;;;;24149:122:0::1;-1:-1:-1::0;;;;;24149:122:0;;;::::1;::::0;;::::1;::::0;;24284:49:::1;::::0;-1:-1:-1;24284:26:0::1;:49::i;:::-;24381:6;::::0;24344:51:::1;::::0;-1:-1:-1;;;;;24381:6:0::1;::::0;24344:28:::1;:51::i;:::-;24451:9;::::0;24416:52:::1;::::0;-1:-1:-1;;;;;24451:9:0::1;::::0;24416:26:::1;:52::i;:::-;24503:9;::::0;24479:41:::1;::::0;-1:-1:-1;;;;;24503:9:0::1;::::0;24479:15:::1;:41::i;:::-;24581:1;24557:21;:25;24535:110;;;::::0;-1:-1:-1;;;24535:110:0;;16050:2:1;24535:110:0::1;::::0;::::1;16032:21:1::0;16089:2;16069:18;;;16062:30;16128:34;16108:18;;;16101:62;-1:-1:-1;;;16179:18:1;;;16172:33;16222:19;;24535:110:0::1;15848:399:1::0;24535:110:0::1;24705:1;24678:24;24696:4;24678:9;:24::i;:::-;:28;24656:116;;;::::0;-1:-1:-1;;;24656:116:0;;16454:2:1;24656:116:0::1;::::0;::::1;16436:21:1::0;16493:2;16473:18;;;16466:30;16532:34;16512:18;;;16505:62;-1:-1:-1;;;16583:18:1;;;16576:36;16629:19;;24656:116:0::1;16252:402:1::0;24656:116:0::1;24828:9;::::0;24796:69:::1;::::0;24813:4:::1;::::0;-1:-1:-1;;;;;24828:9:0::1;24840:24;24813:4:::0;24840:9:::1;:24::i;24796:69::-;24878:9;::::0;-1:-1:-1;;;;;24878:9:0::1;:25;24911:21;24956:4;24976:24;24956:4:::0;24976:9:::1;:24::i;:::-;24878:274;::::0;-1:-1:-1;;;;;;24878:274:0::1;::::0;;;;;;-1:-1:-1;;;;;17018:15:1;;;24878:274:0::1;::::0;::::1;17000:34:1::0;17050:18;;;17043:34;25015:1:0::1;17093:18:1::0;;;17086:34;;;17136:18;;;17129:34;25101:10:0::1;17179:19:1::0;;;17172:44;25126:15:0::1;17232:19:1::0;;;17225:35;16934:19;;24878:274:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5262:216::-:0;5384:4;5406:42;790:10;5430:9;5441:6;5406:9;:42::i;16486:182::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16571:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;16571:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16626:34;;1389:41:1;;;16626:34:0::1;::::0;1362:18:1;16626:34:0::1;;;;;;;16486:182:::0;;:::o;16049:425::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;16189:6:::1;16168:13;5049:12:::0;;;4961:108;16168:13:::1;:17;::::0;16184:1:::1;16168:17;:::i;:::-;16167:28;;;;:::i;:::-;16154:9;:41;;16132:144;;;::::0;-1:-1:-1;;;16132:144:0;;18179:2:1;16132:144:0::1;::::0;::::1;18161:21:1::0;18218:2;18198:18;;;18191:30;18257:34;18237:18;;;18230:62;-1:-1:-1;;;18308:18:1;;;18301:51;18369:19;;16132:144:0::1;17977:417:1::0;16132:144:0::1;16344:3;16323:13;5049:12:::0;;;4961:108;16323:13:::1;:17;::::0;16339:1:::1;16323:17;:::i;:::-;16322:25;;;;:::i;:::-;16309:9;:38;;16287:138;;;::::0;-1:-1:-1;;;16287:138:0;;18601:2:1;16287:138:0::1;::::0;::::1;18583:21:1::0;18640:2;18620:18;;;18613:30;18679:34;18659:18;;;18652:62;-1:-1:-1;;;18730:18:1;;;18723:48;18788:19;;16287:138:0::1;18399:414:1::0;16287:138:0::1;16436:18;:30:::0;16049:425::o;22735:181::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22811:22:0;::::1;;::::0;;;:14:::1;:22;::::0;;;;;::::1;;22803:64;;;::::0;-1:-1:-1;;;22803:64:0;;19020:2:1;22803:64:0::1;::::0;::::1;19002:21:1::0;19059:2;19039:18;;;19032:30;19098:31;19078:18;;;19071:59;19147:18;;22803:64:0::1;18818:353:1::0;22803:64:0::1;-1:-1:-1::0;;;;;22878:22:0::1;22903:5;22878:22:::0;;;:14:::1;:22;::::0;;;;:30;;-1:-1:-1;;22878:30:0::1;::::0;;22735:181::o;9444:281::-;9084:6;;-1:-1:-1;;;;;9084:6:0;790:10;9084:22;9076:67;;;;-1:-1:-1;;;9076:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9547:22:0;::::1;9525:110;;;::::0;-1:-1:-1;;;9525:110:0;;19378:2:1;9525:110:0::1;::::0;::::1;19360:21:1::0;19417:2;19397:18;;;19390:30;19456:34;19436:18;;;19429:62;-1:-1:-1;;;19507:18:1;;;19500:36;19553:19;;9525:110:0::1;19176:402:1::0;9525:110:0::1;9672:6;::::0;9651:38:::1;::::0;-1:-1:-1;;;;;9651:38:0;;::::1;::::0;9672:6:::1;::::0;9651:38:::1;::::0;9672:6:::1;::::0;9651:38:::1;9700:6;:17:::0;;-1:-1:-1;;;;;;9700:17:0::1;-1:-1:-1::0;;;;;9700:17:0;;;::::1;::::0;;;::::1;::::0;;9444:281::o;8226:380::-;-1:-1:-1;;;;;8362:19:0;;8354:68;;;;-1:-1:-1;;;8354:68:0;;19785:2:1;8354:68:0;;;19767:21:1;19824:2;19804:18;;;19797:30;19863:34;19843:18;;;19836:62;-1:-1:-1;;;19914:18:1;;;19907:34;19958:19;;8354:68:0;19583:400:1;8354:68:0;-1:-1:-1;;;;;8441:21:0;;8433:68;;;;-1:-1:-1;;;8433:68:0;;20190:2:1;8433:68:0;;;20172:21:1;20229:2;20209:18;;;20202:30;20268:34;20248:18;;;20241:62;-1:-1:-1;;;20319:18:1;;;20312:32;20361:19;;8433:68:0;19988:398:1;8433:68:0;-1:-1:-1;;;;;8514:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8566:32;;2024:25:1;;;8566:32:0;;1997:18:1;8566:32:0;;;;;;;8226:380;;;:::o;16676:3487::-;-1:-1:-1;;;;;16808:18:0;;16800:68;;;;-1:-1:-1;;;16800:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16887:16:0;;16879:64;;;;-1:-1:-1;;;16879:64:0;;;;;;;:::i;:::-;16971:1;16962:6;:10;16954:52;;;;-1:-1:-1;;;16954:52:0;;21403:2:1;16954:52:0;;;21385:21:1;21442:2;21422:18;;;21415:30;21481:31;21461:18;;;21454:59;21530:18;;16954:52:0;21201:353:1;16954:52:0;17024:13;;;;;;;17019:329;;-1:-1:-1;;;;;17080:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;17109:23:0;;;;;;:19;:23;;;;;;;;17080:52;17054:136;;;;-1:-1:-1;;;17054:136:0;;21761:2:1;17054:136:0;;;21743:21:1;21800:2;21780:18;;;21773:30;-1:-1:-1;;;21819:18:1;;;21812:52;21881:18;;17054:136:0;21559:346:1;17054:136:0;17019:329;;;-1:-1:-1;;;;;17250:20:0;;;;;;:14;:20;;;;;;;;17249:21;17223:113;;;;-1:-1:-1;;;17223:113:0;;22112:2:1;17223:113:0;;;22094:21:1;22151:2;22131:18;;;22124:30;22190:32;22170:18;;;22163:60;22240:18;;17223:113:0;21910:354:1;17223:113:0;17364:14;;;;17360:1348;;;-1:-1:-1;;;;;17399:21:0;;17413:6;17399:21;;;;:68;;-1:-1:-1;;;;;;17442:25:0;;;;;;:19;:25;;;;;;;;17441:26;17399:68;:113;;;;-1:-1:-1;;;;;;17489:23:0;;;;;;:19;:23;;;;;;;;17488:24;17399:113;17395:1302;;;-1:-1:-1;;;;;17601:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;17658:35:0;;;;;;:31;:35;;;;;;;;17657:36;17601:92;17575:1107;;;17780:12;;17770:6;:22;;17736:148;;;;-1:-1:-1;;;17736:148:0;;22471:2:1;17736:148:0;;;22453:21:1;22510:2;22490:18;;;22483:30;22549:34;22529:18;;;22522:62;-1:-1:-1;;;22600:18:1;;;22593:38;22648:19;;17736:148:0;22269:404:1;17736:148:0;17967:9;;17950:13;17960:2;17950:9;:13::i;:::-;17941:22;;:6;:22;:::i;:::-;:35;;17907:140;;;;-1:-1:-1;;;17907:140:0;;22880:2:1;17907:140:0;;;22862:21:1;22919:2;22899:18;;;22892:30;-1:-1:-1;;;22938:18:1;;;22931:49;22997:18;;17907:140:0;22678:343:1;17907:140:0;17575:1107;;;-1:-1:-1;;;;;18145:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;18200:37:0;;;;;;:31;:37;;;;;;;;18199:38;18145:92;18119:563;;;18324:13;;18314:6;:23;;18280:151;;;;-1:-1:-1;;;18280:151:0;;23228:2:1;18280:151:0;;;23210:21:1;23267:2;23247:18;;;23240:30;23306:34;23286:18;;;23279:62;-1:-1:-1;;;23357:18:1;;;23350:40;23407:19;;18280:151:0;23026:406:1;18119:563:0;-1:-1:-1;;;;;18462:35:0;;;;;;:31;:35;;;;;;;;18457:225;;18582:9;;18565:13;18575:2;18565:9;:13::i;:::-;18556:22;;:6;:22;:::i;:::-;:35;;18522:140;;;;-1:-1:-1;;;18522:140:0;;22880:2:1;18522:140:0;;;22862:21:1;22919:2;22899:18;;;22892:30;-1:-1:-1;;;22938:18:1;;;22931:49;22997:18;;18522:140:0;22678:343:1;18522:140:0;18720:28;18751:24;18769:4;18751:9;:24::i;:::-;18827:18;;18720:55;;-1:-1:-1;18803:42:0;;;;;;;18876:22;;-1:-1:-1;18887:11:0;;;;;;;18876:22;:35;;;;-1:-1:-1;18903:8:0;;-1:-1:-1;;;18903:8:0;;;;18902:9;18876:35;:68;;;;-1:-1:-1;;;;;;18915:29:0;;;;;;:25;:29;;;;;;;;18876:68;18858:201;;;18971:8;:15;;-1:-1:-1;;;;18971:15:0;-1:-1:-1;;;18971:15:0;;;19001;18971;19001:8;:15::i;:::-;19031:8;:16;;-1:-1:-1;;;;19031:16:0;;;18858:201;-1:-1:-1;;;;;19190:25:0;;19071:12;19190:25;;;:19;:25;;;;;;19086:4;;19190:25;;;:52;;-1:-1:-1;;;;;;19219:23:0;;;;;;:19;:23;;;;;;;;19190:52;19186:100;;;-1:-1:-1;19269:5:0;19186:100;19298:12;19403:7;19399:711;;;-1:-1:-1;;;;;19459:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;19508:1;19492:13;;:17;19459:50;19455:506;;;19564:3;19547:13;;19538:6;:22;;;;:::i;:::-;19537:30;;;;:::i;:::-;19530:37;;19680:13;;19638:17;;19631:4;:24;;;;:::i;:::-;19630:63;;;;:::i;:::-;19586:19;;:107;;;;;;;:::i;:::-;;;;-1:-1:-1;19455:506:0;;-1:-1:-1;19455:506:0;;-1:-1:-1;;;;;19755:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;19805:1;19790:12;;:16;19755:51;19751:210;;;19860:3;19844:12;;19835:6;:21;;;;:::i;:::-;19834:29;;;;:::i;:::-;19827:36;;19933:12;;19913:16;;19906:4;:23;;;;:::i;:::-;19905:40;;;;:::i;:::-;19882:19;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;19751:210:0;19981:8;;19977:91;;20010:42;20026:4;20040;20047;20010:15;:42::i;:::-;20084:14;20094:4;20084:14;;:::i;:::-;;;19399:711;20122:33;20138:4;20144:2;20148:6;20122:15;:33::i;:::-;16789:3374;;;;16676:3487;;;:::o;7245:651::-;-1:-1:-1;;;;;7385:20:0;;7377:70;;;;-1:-1:-1;;;7377:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7466:23:0;;7458:71;;;;-1:-1:-1;;;7458:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7566:17:0;;7542:21;7566:17;;;;;;;;;;;7616:23;;;;7594:111;;;;-1:-1:-1;;;7594:111:0;;23772:2:1;7594:111:0;;;23754:21:1;23811:2;23791:18;;;23784:30;23850:34;23830:18;;;23823:62;-1:-1:-1;;;23901:18:1;;;23894:36;23947:19;;7594:111:0;23570:402:1;7594:111:0;-1:-1:-1;;;;;7741:17:0;;;:9;:17;;;;;;;;;;;7761:22;;;7741:42;;7805:20;;;;;;;;:30;;7777:6;;7741:9;7805:30;;7777:6;;7805:30;:::i;:::-;;;;;;;;7870:9;-1:-1:-1;;;;;7853:35:0;7862:6;-1:-1:-1;;;;;7853:35:0;;7881:6;7853:35;;;;2024:25:1;;2012:2;1997:18;;1878:177;7853:35:0;;;;;;;;7366:530;7245:651;;;:::o;14910:236::-;-1:-1:-1;;;;;14993:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;14993:39:0;;;;;;;15043;14993:31;:39;14326:232;-1:-1:-1;;;;;14439:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;14439:52:0;;;;;;;;;;14507:43;;24145:51:1;;;24212:18;;;24205:50;14507:43:0;;24118:18:1;14507:43:0;;;;;;;14326:232;;:::o;20750:959::-;20819:13;;20803:12;:29;20799:123;;20865:12;20849:13;:28;20909:1;20892:14;:18;20799:123;20938:19;;;;:57;;;;;20979:16;;20961:14;;:34;;20938:57;20934:96;;;20750:959;:::o;20934:96::-;21050:23;21076:24;21094:4;21076:9;:24::i;:::-;21139:19;;21050:50;;-1:-1:-1;21175:20:0;;;:46;;-1:-1:-1;21199:22:0;;21175:46;21171:85;;;21238:7;;20750:959;:::o;21171:85::-;21273:3;21272:4;:51;;;;-1:-1:-1;21299:18:0;;:23;;21320:2;21299:23;:::i;:::-;21281:15;:41;21272:51;21268:125;;;21358:18;;:23;;21379:2;21358:23;:::i;:::-;21340:41;;21268:125;21405:33;21422:15;21405:16;:33::i;:::-;21473:1;21451:19;:23;;;;21505:1;21487:14;;:19;;;;;;;:::i;:::-;;;;-1:-1:-1;;21550:17:0;;21542:89;;21524:12;;-1:-1:-1;;;;;21550:17:0;;21595:21;;21524:12;21542:89;21524:12;21542:89;21595:21;21550:17;21542:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21523:108;;;21652:7;21644:57;;;;-1:-1:-1;;;21644:57:0;;24468:2:1;21644:57:0;;;24450:21:1;24507:2;24487:18;;;24480:30;24546:34;24526:18;;;24519:62;-1:-1:-1;;;24597:18:1;;;24590:35;24642:19;;21644:57:0;24266:401:1;20171:571:0;20321:16;;;20335:1;20321:16;;;;;;;;20297:21;;20321:16;;;;;;;;;;-1:-1:-1;20321:16:0;20297:40;;20366:4;20348;20353:1;20348:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20348:23:0;;;:7;;;;;;;;;;:23;;;;20392:9;;:16;;;-1:-1:-1;;;20392:16:0;;;;:9;;;;;:14;;:16;;;;;20348:7;;20392:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20382:4;20387:1;20382:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20382:26:0;;;:7;;;;;;;;;:26;20453:9;;20421:56;;20438:4;;20453:9;20465:11;20421:8;:56::i;:::-;20516:9;;:218;;-1:-1:-1;;;20516:218:0;;-1:-1:-1;;;;;20516:9:0;;;;:60;;:218;;20591:11;;20516:9;;20661:4;;20688;;20708:15;;20516:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20226:516;20171:571;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;793:131::-;-1:-1:-1;;;;;868:31:1;;858:42;;848:70;;914:1;911;904:12;929:315;997:6;1005;1058:2;1046:9;1037:7;1033:23;1029:32;1026:52;;;1074:1;1071;1064:12;1026:52;1113:9;1100:23;1132:31;1157:5;1132:31;:::i;:::-;1182:5;1234:2;1219:18;;;;1206:32;;-1:-1:-1;;;929:315:1:o;1441:247::-;1500:6;1553:2;1541:9;1532:7;1528:23;1524:32;1521:52;;;1569:1;1566;1559:12;1521:52;1608:9;1595:23;1627:31;1652:5;1627:31;:::i;:::-;1677:5;1441:247;-1:-1:-1;;;1441:247:1:o;1693:180::-;1752:6;1805:2;1793:9;1784:7;1780:23;1776:32;1773:52;;;1821:1;1818;1811:12;1773:52;-1:-1:-1;1844:23:1;;1693:180;-1:-1:-1;1693:180:1:o;2060:456::-;2137:6;2145;2153;2206:2;2194:9;2185:7;2181:23;2177:32;2174:52;;;2222:1;2219;2212:12;2174:52;2261:9;2248:23;2280:31;2305:5;2280:31;:::i;:::-;2330:5;-1:-1:-1;2387:2:1;2372:18;;2359:32;2400:33;2359:32;2400:33;:::i;:::-;2060:456;;2452:7;;-1:-1:-1;;;2506:2:1;2491:18;;;;2478:32;;2060:456::o;2918:127::-;2979:10;2974:3;2970:20;2967:1;2960:31;3010:4;3007:1;3000:15;3034:4;3031:1;3024:15;3050:275;3121:2;3115:9;3186:2;3167:13;;-1:-1:-1;;3163:27:1;3151:40;;3221:18;3206:34;;3242:22;;;3203:62;3200:88;;;3268:18;;:::i;:::-;3304:2;3297:22;3050:275;;-1:-1:-1;3050:275:1:o;3330:183::-;3390:4;3423:18;3415:6;3412:30;3409:56;;;3445:18;;:::i;:::-;-1:-1:-1;3490:1:1;3486:14;3502:4;3482:25;;3330:183::o;3518:662::-;3572:5;3625:3;3618:4;3610:6;3606:17;3602:27;3592:55;;3643:1;3640;3633:12;3592:55;3679:6;3666:20;3705:4;3729:60;3745:43;3785:2;3745:43;:::i;:::-;3729:60;:::i;:::-;3823:15;;;3909:1;3905:10;;;;3893:23;;3889:32;;;3854:12;;;;3933:15;;;3930:35;;;3961:1;3958;3951:12;3930:35;3997:2;3989:6;3985:15;4009:142;4025:6;4020:3;4017:15;4009:142;;;4091:17;;4079:30;;4129:12;;;;4042;;4009:142;;;-1:-1:-1;4169:5:1;3518:662;-1:-1:-1;;;;;;3518:662:1:o;4185:1215::-;4303:6;4311;4364:2;4352:9;4343:7;4339:23;4335:32;4332:52;;;4380:1;4377;4370:12;4332:52;4420:9;4407:23;4449:18;4490:2;4482:6;4479:14;4476:34;;;4506:1;4503;4496:12;4476:34;4544:6;4533:9;4529:22;4519:32;;4589:7;4582:4;4578:2;4574:13;4570:27;4560:55;;4611:1;4608;4601:12;4560:55;4647:2;4634:16;4669:4;4693:60;4709:43;4749:2;4709:43;:::i;4693:60::-;4787:15;;;4869:1;4865:10;;;;4857:19;;4853:28;;;4818:12;;;;4893:19;;;4890:39;;;4925:1;4922;4915:12;4890:39;4949:11;;;;4969:217;4985:6;4980:3;4977:15;4969:217;;;5065:3;5052:17;5082:31;5107:5;5082:31;:::i;:::-;5126:18;;5002:12;;;;5164;;;;4969:217;;;5205:5;-1:-1:-1;;5248:18:1;;5235:32;;-1:-1:-1;;5279:16:1;;;5276:36;;;5308:1;5305;5298:12;5276:36;;5331:63;5386:7;5375:8;5364:9;5360:24;5331:63;:::i;:::-;5321:73;;;4185:1215;;;;;:::o;5405:118::-;5491:5;5484:13;5477:21;5470:5;5467:32;5457:60;;5513:1;5510;5503:12;5528:309;5593:6;5601;5654:2;5642:9;5633:7;5629:23;5625:32;5622:52;;;5670:1;5667;5660:12;5622:52;5709:9;5696:23;5728:28;5750:5;5728:28;:::i;5842:382::-;5907:6;5915;5968:2;5956:9;5947:7;5943:23;5939:32;5936:52;;;5984:1;5981;5974:12;5936:52;6023:9;6010:23;6042:31;6067:5;6042:31;:::i;:::-;6092:5;-1:-1:-1;6149:2:1;6134:18;;6121:32;6162:30;6121:32;6162:30;:::i;:::-;6211:7;6201:17;;;5842:382;;;;;:::o;6229:241::-;6285:6;6338:2;6326:9;6317:7;6313:23;6309:32;6306:52;;;6354:1;6351;6344:12;6306:52;6393:9;6380:23;6412:28;6434:5;6412:28;:::i;6475:388::-;6543:6;6551;6604:2;6592:9;6583:7;6579:23;6575:32;6572:52;;;6620:1;6617;6610:12;6572:52;6659:9;6646:23;6678:31;6703:5;6678:31;:::i;:::-;6728:5;-1:-1:-1;6785:2:1;6770:18;;6757:32;6798:33;6757:32;6798:33;:::i;6868:356::-;7070:2;7052:21;;;7089:18;;;7082:30;7148:34;7143:2;7128:18;;7121:62;7215:2;7200:18;;6868:356::o;7439:380::-;7518:1;7514:12;;;;7561;;;7582:61;;7636:4;7628:6;7624:17;7614:27;;7582:61;7689:2;7681:6;7678:14;7658:18;7655:38;7652:161;;7735:10;7730:3;7726:20;7723:1;7716:31;7770:4;7767:1;7760:15;7798:4;7795:1;7788:15;7652:161;;7439:380;;;:::o;8591:127::-;8652:10;8647:3;8643:20;8640:1;8633:31;8683:4;8680:1;8673:15;8707:4;8704:1;8697:15;8723:125;8788:9;;;8809:10;;;8806:36;;;8822:18;;:::i;10400:127::-;10461:10;10456:3;10452:20;10449:1;10442:31;10492:4;10489:1;10482:15;10516:4;10513:1;10506:15;10532:135;10571:3;10592:17;;;10589:43;;10612:18;;:::i;:::-;-1:-1:-1;10659:1:1;10648:13;;10532:135::o;12620:184::-;12690:6;12743:2;12731:9;12722:7;12718:23;12714:32;12711:52;;;12759:1;12756;12749:12;12711:52;-1:-1:-1;12782:16:1;;12620:184;-1:-1:-1;12620:184:1:o;13088:245::-;13155:6;13208:2;13196:9;13187:7;13183:23;13179:32;13176:52;;;13224:1;13221;13214:12;13176:52;13256:9;13250:16;13275:28;13297:5;13275:28;:::i;15283:251::-;15353:6;15406:2;15394:9;15385:7;15381:23;15377:32;15374:52;;;15422:1;15419;15412:12;15374:52;15454:9;15448:16;15473:31;15498:5;15473:31;:::i;17271:306::-;17359:6;17367;17375;17428:2;17416:9;17407:7;17403:23;17399:32;17396:52;;;17444:1;17441;17434:12;17396:52;17473:9;17467:16;17457:26;;17523:2;17512:9;17508:18;17502:25;17492:35;;17567:2;17556:9;17552:18;17546:25;17536:35;;17271:306;;;;;:::o;17582:168::-;17655:9;;;17686;;17703:15;;;17697:22;;17683:37;17673:71;;17724:18;;:::i;17755:217::-;17795:1;17821;17811:132;;17865:10;17860:3;17856:20;17853:1;17846:31;17900:4;17897:1;17890:15;17928:4;17925:1;17918:15;17811:132;-1:-1:-1;17957:9:1;;17755:217::o;20391:401::-;20593:2;20575:21;;;20632:2;20612:18;;;20605:30;20671:34;20666:2;20651:18;;20644:62;-1:-1:-1;;;20737:2:1;20722:18;;20715:35;20782:3;20767:19;;20391:401::o;20797:399::-;20999:2;20981:21;;;21038:2;21018:18;;;21011:30;21077:34;21072:2;21057:18;;21050:62;-1:-1:-1;;;21143:2:1;21128:18;;21121:33;21186:3;21171:19;;20797:399::o;23437:128::-;23504:9;;;23525:11;;;23522:37;;;23539:18;;:::i;24672:980::-;24934:4;24982:3;24971:9;24967:19;25013:6;25002:9;24995:25;25039:2;25077:6;25072:2;25061:9;25057:18;25050:34;25120:3;25115:2;25104:9;25100:18;25093:31;25144:6;25179;25173:13;25210:6;25202;25195:22;25248:3;25237:9;25233:19;25226:26;;25287:2;25279:6;25275:15;25261:29;;25308:1;25318:195;25332:6;25329:1;25326:13;25318:195;;;25397:13;;-1:-1:-1;;;;;25393:39:1;25381:52;;25488:15;;;;25453:12;;;;25429:1;25347:9;25318:195;;;-1:-1:-1;;;;;;;25569:32:1;;;;25564:2;25549:18;;25542:60;-1:-1:-1;;;25633:3:1;25618:19;25611:35;25530:3;24672:980;-1:-1:-1;;;24672:980:1:o

Swarm Source

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