ETH Price: $2,525.94 (+0.33%)

Token

WCTrades (WCT)
 

Overview

Max Total Supply

1,000,000,000 WCT

Holders

350 (0.00%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$7,220.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

At WCTrades, the mission is to stand as a go-to analytical companion, providing traders with an accessible platform to review markets, make informed decisions, and stay ahead in the ever-evolving cryptocurrency landscape.

# Exchange Pair Price  24H Volume % Volume

There are no matching entries

Please try again later

Contract Source Code Verified (Exact Match)

Contract Name:
WCTrades

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-13
*/

/**
 *Submitted for verification at Etherscan.io on 2024-03-13
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;

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 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    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 _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), 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() external virtual onlyOwner {
        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 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 airdrop
        );
}

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

contract WCTrades is ERC20, Ownable {
    uint256 public maxBuyLimit;
    uint256 public maxSellLimit;
    uint256 public maxWalletSize;

    IDexRouter public dexRouter;
    address public dexPair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address marketingAddress;
    address devAddress;
    address airdropAddress;

    uint256 public tradingActiveBlock = 0; // 0 means trading is not active
    uint256 public blockForPenaltyEnd;
    mapping(address => bool) public boughtEarly;
    uint256 public botsCaught;

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

    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;

    uint256 public buyTotalTaxes;
    uint256 public buyMarketingTax;
    uint256 public buyAirdropTax;
    uint256 public buyDevTax;

    uint256 public sellTotalTaxes;
    uint256 public sellMarketingsTax;
    uint256 public sellAirdropTax;
    uint256 public sellDevTax;

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

    // exlcude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromTaxes;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

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

    event Launched();

    event RemovedLimits();

    event ExcludeFromTaxes(address indexed account, bool isExcluded);

    event UpdatedMaxBuyAmount(uint256 newAmount);

    event UpdatedMaxSellAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event UpdatedMarketingsAddress(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool exempted);

    event BuyBackTriggered(uint256 amount);

    event OwnerForcedSwapBack(uint256 timestamp);

    event CaughtEarlyBuyer(address sniper);

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

    event TransferForeignToken(address token, uint256 amount);

    constructor() ERC20("WCTrades", "WCT") {
        address newOwner = msg.sender;
        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        dexRouter = _dexRouter;

        // create pair
        dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        _exemptFromMaxTransaction(address(dexPair), true);
        _setAutomatedMarketMakerPair(address(dexPair), true);

        uint256 totalSupply = 1 * 1e9 * 1e18;

        maxBuyLimit = (totalSupply * 1) / 100;
        maxSellLimit = (totalSupply * 1) / 100;
        maxWalletSize = (totalSupply * 1) / 100;
        swapTokensAtAmount = 2500000 * 1e18;

        buyMarketingTax = 10;
        buyAirdropTax = 5;
        buyDevTax = 10;
        buyTotalTaxes = buyMarketingTax + buyAirdropTax + buyDevTax;

        sellMarketingsTax = 10;
        sellAirdropTax = 5;
        sellDevTax = 10;
        sellTotalTaxes = sellMarketingsTax + sellAirdropTax + sellDevTax;

        _exemptFromMaxTransaction(newOwner, true);
        _exemptFromMaxTransaction(address(this), true);
        _exemptFromMaxTransaction(address(0xdead), true);

        exemptFromTaxes(newOwner, true);
        exemptFromTaxes(address(this), true);
        exemptFromTaxes(address(0xdead), true);
        // Change Here

        marketingAddress = 0xd42be4397593986dc62151E2B681b8B28Ac9a65f;
        devAddress = 0x56Fd91Cb10CC38ED59a2FaC96cCc79484BA63157;
        airdropAddress = 0xB8813F93ba7673724c8eb22FA8451DFfcfB34F3F;

        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    // only enable if no plan to airdrop

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

    function disableTrading() external onlyOwner {
        require(tradingActive, "Cannot redisable trading");
        tradingActive = false;
        swapEnabled = false;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        emit RemovedLimits();
    }

    function manageEarly(address wallet, bool flag) external onlyOwner {
        boughtEarly[wallet] = flag;
    }

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

    function updateMaxBuy(uint256 newValue) external onlyOwner {
        require(
            newValue >= ((totalSupply() * 2) / 1000) / 1e18,
            "Cannot set max buy amount lower than 0.2%"
        );
        maxBuyLimit = newValue * (10**18);
        emit UpdatedMaxBuyAmount(maxBuyLimit);
    }

    function updateMaxSell(uint256 newValue) external onlyOwner {
        require(
            newValue >= ((totalSupply() * 2) / 1000) / 1e18,
            "Cannot set max sell amount lower than 0.2%"
        );
        maxSellLimit = newValue * (10**18);
        emit UpdatedMaxSellAmount(maxSellLimit);
    }

    function updateMaxWallet(uint256 newValue) external onlyOwner {
        require(
            newValue >= ((totalSupply() * 3) / 1000) / 1e18,
            "Cannot set max wallet amount lower than 0.3%"
        );
        maxWalletSize = newValue * (10**18);
        emit UpdatedMaxWalletAmount(maxWalletSize);
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        swapTokensAtAmount = newAmount;
    }

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

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

    function setAMM(address pair, bool value) external onlyOwner {
        require(pair != dexPair, "The pair cannot be removed");

        _setAutomatedMarketMakerPair(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function updateTaxes(
        uint256 _marketingsTax,
        uint256 _airdropTax,
        uint256 _DevTax
    ) external onlyOwner {
        sellMarketingsTax = _marketingsTax;
        sellAirdropTax = _airdropTax;
        sellDevTax = _DevTax;

        buyMarketingTax = _marketingsTax;
        buyAirdropTax = _airdropTax;
        buyDevTax = _DevTax;

        buyTotalTaxes = buyMarketingTax + buyAirdropTax + buyDevTax;
        sellTotalTaxes = sellMarketingsTax + sellAirdropTax + sellDevTax;
        require(sellTotalTaxes <= 25, "Must keep fees at 25% or less");
    }

    function exemptFromTaxes(address account, bool exempted) public onlyOwner {
        _isExcludedFromTaxes[account] = exempted;
        emit ExcludeFromTaxes(account, exempted);
    }

    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(
                _isExcludedFromTaxes[from] || _isExcludedFromTaxes[to],
                "Trading is not active."
            );
        }

        if (blockForPenaltyEnd > 0) {
            require(
                !boughtEarly[from] || to == owner() || to == address(0xdead),
                "Bots cannot transfer tokens in or out except to owner or dead address."
            );
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !_isExcludedFromTaxes[from] &&
                !_isExcludedFromTaxes[to]
            ) {
                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
                if (transferDelayEnabled) {
                    if (to != address(dexRouter) && to != address(dexPair)) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] <
                                block.number - 2 &&
                                _holderLastTransferTimestamp[to] <
                                block.number - 2,
                            "_transfer:: Transfer Delay enabled.  Try again later."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxBuyLimit,
                        "Buy transfer amount exceeds the max buy."
                    );
                    require(
                        amount + balanceOf(to) <= maxWalletSize,
                        "Cannot Exceed max wallet"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxSellLimit,
                        "Sell transfer amount exceeds the max sell."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWalletSize,
                        "Cannot Exceed max wallet"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromTaxes[from] &&
            !_isExcludedFromTaxes[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeTax = true;
        // if any account belongs to _isExcludedFromTax account then remove the fee
        if (_isExcludedFromTaxes[from] || _isExcludedFromTaxes[to]) {
            takeTax = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeTax) {
            // bot/sniper penalty.
            if (
                earlyBuyPenaltyInEffect() &&
                automatedMarketMakerPairs[from] &&
                !automatedMarketMakerPairs[to] &&
                buyTotalTaxes > 0
            ) {
                if (!boughtEarly[to]) {
                    boughtEarly[to] = true;
                    botsCaught += 1;
                    emit CaughtEarlyBuyer(to);
                }

                fees = (amount * 99) / 100;
            }
            // on sell
            else if (automatedMarketMakerPairs[to] && sellTotalTaxes > 0) {
                fees = (amount * sellTotalTaxes) / 100;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalTaxes > 0) {
                fees = (amount * buyTotalTaxes) / 100;
            }

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

            amount -= fees;
        }

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

    function earlyBuyPenaltyInEffect() public view returns (bool) {
        return block.number < blockForPenaltyEnd;
    }

    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() private {
        bool success;
        swapTokensForEth(swapTokensAtAmount);

        uint256 ethBalance = address(this).balance;
        uint256 ethForAirdrop = (ethBalance * buyAirdropTax) / buyTotalTaxes;
        uint256 ethForMarketings = (ethBalance * buyMarketingTax) /
            buyTotalTaxes;
        uint256 ethForDev = (ethBalance * buyDevTax) / buyTotalTaxes;

        (success, ) = address(devAddress).call{value: ethForDev}("");
        (success, ) = address(airdropAddress).call{value: ethForAirdrop}("");
        (success, ) = address(marketingAddress).call{value: ethForMarketings}(
            ""
        );
    }

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

    function setTaxAddresses(
        address _marketingAddress,
        address _devAddress,
        address _airdropAddress
    ) external onlyOwner {
        require(
            _marketingAddress != address(0) &&
                _devAddress != address(0) &&
                _airdropAddress != address(0),
            "Addresses cannot be 0"
        );
        marketingAddress = payable(_marketingAddress);
        devAddress = payable(_devAddress);
        airdropAddress = payable(_airdropAddress);
    }

    // force Swap back if slippage issues.
    function forceSwapBack() external onlyOwner {
        swapping = true;
        swapBack();
        swapping = false;
        emit OwnerForcedSwapBack(block.timestamp);
    }

    // useful for buybacks or to reclaim any ETH on the contract in a way that helps holders.
    function buyBack(uint256 amountInWei) external onlyOwner {
        require(
            amountInWei <= 10 ether,
            "May not buy more than 10 ETH in a single buy to reduce sandwich attacks"
        );

        address[] memory path = new address[](2);
        path[0] = dexRouter.WETH();
        path[1] = address(this);

        // make the swap
        dexRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{
            value: amountInWei
        }(
            0, // accept any amount of Ethereum
            path,
            address(0xdead),
            block.timestamp
        );
        emit BuyBackTriggered(amountInWei);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BuyBackTriggered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniper","type":"address"}],"name":"CaughtEarlyBuyer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromTaxes","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"exempted","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":[],"name":"RemovedLimits","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":"tokensIntoAirdrop","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":"UpdatedMarketingsAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","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":"blockForPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botsCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"boughtEarly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAirdropTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountInWei","type":"uint256"}],"name":"buyBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalTaxes","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":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyBuyPenaltyInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadblocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"exemptFromMaxTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempted","type":"bool"}],"name":"exemptFromTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"manageEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAirdropTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingsTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"},{"internalType":"address","name":"_devAddress","type":"address"},{"internalType":"address","name":"_airdropAddress","type":"address"}],"name":"setTaxAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"updateMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"updateMaxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingsTax","type":"uint256"},{"internalType":"uint256","name":"_airdropTax","type":"uint256"},{"internalType":"uint256","name":"_DevTax","type":"uint256"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600f556013805462ffffff191660019081179091556015805460ff1916909117905534801562000033575f80fd5b5060405180604001604052806008815260200167574354726164657360c01b8152506040518060400160405280600381526020016215d0d560ea1b815250816003908162000082919062000835565b50600462000091828262000835565b5050505f620000a56200044060201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f905f80516020620036e8833981519152908290a350600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051339291829163c45a0155916004808201926020929091908290030181865afa15801562000148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200016e919062000901565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000901565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200022b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000251919062000901565b600a80546001600160a01b0319166001600160a01b039290921691821790556200027d90600162000444565b600a5462000296906001600160a01b03166001620004a6565b6b033b2e3c9fd0803ce80000006064620002b282600162000944565b620002be919062000964565b6006556064620002d082600162000944565b620002dc919062000964565b6007556064620002ee82600162000944565b620002fa919062000964565b6008556a0211654585005212800000600b55600a60178190556005601881905560198290556200032b908262000984565b62000337919062000984565b601655600a601b8190556005601c819055601d82905562000359908262000984565b62000365919062000984565b601a556200037583600162000444565b6200038230600162000444565b6200039161dead600162000444565b6200039e8360016200050f565b620003ab3060016200050f565b620003ba61dead60016200050f565b600c80546001600160a01b031990811673d42be4397593986dc62151e2b681b8b28ac9a65f17909155600d805482167356fd91cb10cc38ed59a2fac96ccc79484ba63157179055600e805490911673b8813f93ba7673724c8eb22fa8451dffcfb34f3f1790556200042c8382620005bb565b62000437836200069d565b5050506200099a565b3390565b6001600160a01b0382165f818152601f6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382165f9081526020805260409020805460ff1916821515179055620004d4828262000444565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050565b6005546001600160a01b031633146200055d5760405162461bcd60e51b815260206004820181905260248201525f80516020620036c883398151915260448201526064015b60405180910390fd5b6001600160a01b0382165f818152601e6020908152604091829020805460ff191685151590811790915591519182527fd371c6889ff9ad7371053463dc978366919ead66819324c51f6ac3ab76353506910160405180910390a25050565b6001600160a01b038216620006135760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000554565b8060025f82825462000626919062000984565b90915550506001600160a01b0382165f90815260208190526040812080548392906200065490849062000984565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006e75760405162461bcd60e51b815260206004820181905260248201525f80516020620036c8833981519152604482015260640162000554565b6001600160a01b0381166200074e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000554565b6005546040516001600160a01b038084169216905f80516020620036e8833981519152905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620007c057607f821691505b602082108103620007df57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200083057805f5260205f20601f840160051c810160208510156200080c5750805b601f840160051c820191505b818110156200082d575f815560010162000818565b50505b505050565b81516001600160401b0381111562000851576200085162000797565b6200086981620008628454620007ab565b84620007e5565b602080601f8311600181146200089f575f8415620008875750858301515b5f19600386901b1c1916600185901b178555620008f9565b5f85815260208120601f198616915b82811015620008cf57888601518255948401946001909101908401620008ae565b5085821015620008ed57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000912575f80fd5b81516001600160a01b038116811462000929575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176200095e576200095e62000930565b92915050565b5f826200097f57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200095e576200095e62000930565b612d2080620009a85f395ff3fe60806040526004361061035d575f3560e01c80638da5cb5b116101bd578063bbc0c742116100f2578063e2f4560511610092578063f242ab411161006d578063f242ab411461095a578063f2e76c2514610979578063f2fde38b14610998578063f5648a4f146109b7575f80fd5b8063e2f456051461091c578063e884f26014610931578063ee40166e14610945575f80fd5b8063c876d0b9116100cd578063c876d0b914610881578063d257b34f1461089a578063dd62ed3e146108b9578063e25061b8146108fd575f80fd5b8063bbc0c74214610839578063be69188314610857578063c3cc18f51461086c575f80fd5b8063a457c2d71161015d578063a9d3cd8a11610138578063a9d3cd8a146107b9578063af8f26e7146107d8578063b62496f5146107ed578063b94279ea1461081a575f80fd5b8063a457c2d714610766578063a62068ce14610785578063a9059cbb1461079a575f80fd5b80639164f9db116101985780639164f9db1461070957806395d89b41146107285780639fe23f161461073c578063a3124a7e14610751575f80fd5b80638da5cb5b146106c25780638f3fa860146106df5780639087ab75146106f4575f80fd5b80634a62bb65116102935780636ddd171311610233578063751039fc1161020e578063751039fc1461064257806382aa7c681461065657806385ecfd2814610675578063887d6317146106a3575f80fd5b80636ddd1713146105db57806370a08231146105fa578063715018a61461062e575f80fd5b806358a6d5311161026e57806358a6d53114610586578063652e2f041461059c5780636aa5b37f146105b15780636b0a894c146105c6575f80fd5b80634a62bb651461053a57806351f205e4146105535780635888130414610567575f80fd5b806318160ddd116102fe578063313ce567116102d9578063313ce567146104cc57806333012411146104e757806339509351146104fc57806346576ddb1461051b575f80fd5b806318160ddd1461047a5780631c499ab01461048e57806323b872dd146104ad575f80fd5b80630758d924116103395780630758d924146103d2578063095ea7b31461040957806310d5de531461043857806317700f0114610466575f80fd5b806204ff6914610368578063053f90401461039057806306fdde03146103b1575f80fd5b3661036457005b5f80fd5b348015610373575f80fd5b5061037d60185481565b6040519081526020015b60405180910390f35b34801561039b575f80fd5b506103af6103aa3660046128c8565b6109cb565b005b3480156103bc575f80fd5b506103c5610c0f565b60405161038791906128df565b3480156103dd575f80fd5b506009546103f1906001600160a01b031681565b6040516001600160a01b039091168152602001610387565b348015610414575f80fd5b50610428610423366004612942565b610c9f565b6040519015158152602001610387565b348015610443575f80fd5b5061042861045236600461296c565b601f6020525f908152604090205460ff1681565b348015610471575f80fd5b506103af610cb5565b348015610485575f80fd5b5060025461037d565b348015610499575f80fd5b506103af6104a83660046128c8565b610d44565b3480156104b8575f80fd5b506104286104c736600461298e565b610e54565b3480156104d7575f80fd5b5060405160128152602001610387565b3480156104f2575f80fd5b5061037d60175481565b348015610507575f80fd5b50610428610516366004612942565b610efc565b348015610526575f80fd5b506103af6105353660046129cc565b610f37565b348015610545575f80fd5b506013546104289060ff1681565b34801561055e575f80fd5b506103af610ffe565b348015610572575f80fd5b506103af6105813660046128c8565b611085565b348015610591575f80fd5b506010544310610428565b3480156105a7575f80fd5b5061037d60075481565b3480156105bc575f80fd5b5061037d60065481565b3480156105d1575f80fd5b5061037d60125481565b3480156105e6575f80fd5b506013546104289062010000900460ff1681565b348015610605575f80fd5b5061037d61061436600461296c565b6001600160a01b03165f9081526020819052604090205490565b348015610639575f80fd5b506103af61118b565b34801561064d575f80fd5b506103af6111fe565b348015610661575f80fd5b506103af6106703660046128c8565b611268565b348015610680575f80fd5b5061042861068f36600461296c565b60116020525f908152604090205460ff1681565b3480156106ae575f80fd5b506103af6106bd366004612a07565b61133a565b3480156106cd575f80fd5b506005546001600160a01b03166103f1565b3480156106ea575f80fd5b5061037d60085481565b3480156106ff575f80fd5b5061037d60165481565b348015610714575f80fd5b506103af6107233660046128c8565b61141b565b348015610733575f80fd5b506103c5611522565b348015610747575f80fd5b5061037d601c5481565b34801561075c575f80fd5b5061037d601b5481565b348015610771575f80fd5b50610428610780366004612942565b611531565b348015610790575f80fd5b5061037d60105481565b3480156107a5575f80fd5b506104286107b4366004612942565b6115c9565b3480156107c4575f80fd5b506103af6107d33660046129cc565b6115d5565b3480156107e3575f80fd5b5061037d60195481565b3480156107f8575f80fd5b5061042861080736600461296c565b602080525f908152604090205460ff1681565b348015610825575f80fd5b506103af6108343660046129cc565b6116a2565b348015610844575f80fd5b5060135461042890610100900460ff1681565b348015610862575f80fd5b5061037d601d5481565b348015610877575f80fd5b5061037d601a5481565b34801561088c575f80fd5b506015546104289060ff1681565b3480156108a5575f80fd5b506103af6108b43660046128c8565b6116f6565b3480156108c4575f80fd5b5061037d6108d3366004612a4f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610908575f80fd5b506103af6109173660046129cc565b611725565b348015610927575f80fd5b5061037d600b5481565b34801561093c575f80fd5b506103af6117ad565b348015610950575f80fd5b5061037d600f5481565b348015610965575f80fd5b50600a546103f1906001600160a01b031681565b348015610984575f80fd5b506103af610993366004612a7b565b6117e3565b3480156109a3575f80fd5b506103af6109b236600461296c565b6118ba565b3480156109c2575f80fd5b506103af6119a4565b6005546001600160a01b031633146109fe5760405162461bcd60e51b81526004016109f590612aa4565b60405180910390fd5b678ac7230489e80000811115610a8c5760405162461bcd60e51b815260206004820152604760248201527f4d6179206e6f7420627579206d6f7265207468616e2031302045544820696e2060448201527f612073696e676c652062757920746f207265647563652073616e64776963682060648201526661747461636b7360c81b608482015260a4016109f5565b6040805160028082526060820183525f926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610af3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b179190612ad9565b815f81518110610b2957610b29612af4565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610b5d57610b5d612af4565b6001600160a01b03928316602091820292909201015260095460405163b6f9de9560e01b815291169063b6f9de95908490610ba4905f90869061dead904290600401612b4b565b5f604051808303818588803b158015610bbb575f80fd5b505af1158015610bcd573d5f803e3d5ffd5b50505050507fa017c1567cfcdd2d750a8c01e39fe2a846bcebc293c7d078477014d68482056882604051610c0391815260200190565b60405180910390a15050565b606060038054610c1e90612b7f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4a90612b7f565b8015610c955780601f10610c6c57610100808354040283529160200191610c95565b820191905f5260205f20905b815481529060010190602001808311610c7857829003601f168201915b5050505050905090565b5f610cab338484611a18565b5060015b92915050565b6005546001600160a01b03163314610cdf5760405162461bcd60e51b81526004016109f590612aa4565b601354610100900460ff16610d365760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726564697361626c652074726164696e67000000000000000060448201526064016109f5565b6013805462ffff0019169055565b6005546001600160a01b03163314610d6e5760405162461bcd60e51b81526004016109f590612aa4565b670de0b6b3a76400006103e8610d8360025490565b610d8e906003612bcb565b610d989190612be2565b610da29190612be2565b811015610e065760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b60648201526084016109f5565b610e1881670de0b6b3a7640000612bcb565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc906020015b60405180910390a150565b5f610e60848484611b3b565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ee45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109f5565b610ef18533858403611a18565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610cab918590610f32908690612c01565b611a18565b6005546001600160a01b03163314610f615760405162461bcd60e51b81526004016109f590612aa4565b80610fd457600a546001600160a01b0390811690831603610fd45760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b60648201526084016109f5565b6001600160a01b03919091165f908152601f60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110285760405162461bcd60e51b81526004016109f590612aa4565b600a805460ff60a01b1916600160a01b17905561104361243a565b600a805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6005546001600160a01b031633146110af5760405162461bcd60e51b81526004016109f590612aa4565b670de0b6b3a76400006103e86110c460025490565b6110cf906002612bcb565b6110d99190612be2565b6110e39190612be2565b8110156111445760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b60648201526084016109f5565b61115681670de0b6b3a7640000612bcb565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de4100990602001610e49565b6005546001600160a01b031633146111b55760405162461bcd60e51b81526004016109f590612aa4565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146112285760405162461bcd60e51b81526004016109f590612aa4565b6013805460ff199081169091556015805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a1565b6005546001600160a01b031633146112925760405162461bcd60e51b81526004016109f590612aa4565b601354610100900460ff16156112ea5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e6700000000000000000060448201526064016109f5565b6013805462ffff0019166201010017905543600f81905561130c908290612c01565b6010556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a150565b6005546001600160a01b031633146113645760405162461bcd60e51b81526004016109f590612aa4565b6001600160a01b0383161580159061138457506001600160a01b03821615155b801561139857506001600160a01b03811615155b6113dc5760405162461bcd60e51b815260206004820152601560248201527404164647265737365732063616e6e6f74206265203605c1b60448201526064016109f5565b600c80546001600160a01b039485166001600160a01b031991821617909155600d805493851693821693909317909255600e8054919093169116179055565b6005546001600160a01b031633146114455760405162461bcd60e51b81526004016109f590612aa4565b670de0b6b3a76400006103e861145a60025490565b611465906002612bcb565b61146f9190612be2565b6114799190612be2565b8110156114db5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b60648201526084016109f5565b6114ed81670de0b6b3a7640000612bcb565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610e49565b606060048054610c1e90612b7f565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156115b25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109f5565b6115bf3385858403611a18565b5060019392505050565b5f610cab338484611b3b565b6005546001600160a01b031633146115ff5760405162461bcd60e51b81526004016109f590612aa4565b600a546001600160a01b039081169083160361165d5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016109f5565b611667828261259e565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050565b6005546001600160a01b031633146116cc5760405162461bcd60e51b81526004016109f590612aa4565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146117205760405162461bcd60e51b81526004016109f590612aa4565b600b55565b6005546001600160a01b0316331461174f5760405162461bcd60e51b81526004016109f590612aa4565b6001600160a01b0382165f818152601e6020908152604091829020805460ff191685151590811790915591519182527fd371c6889ff9ad7371053463dc978366919ead66819324c51f6ac3ab76353506910160405180910390a25050565b6005546001600160a01b031633146117d75760405162461bcd60e51b81526004016109f590612aa4565b6015805460ff19169055565b6005546001600160a01b0316331461180d5760405162461bcd60e51b81526004016109f590612aa4565b601b839055601c829055601d819055601783905560188290556019819055806118368385612c01565b6118409190612c01565b601655601d54601c54601b546118569190612c01565b6118609190612c01565b601a819055601910156118b55760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016109f5565b505050565b6005546001600160a01b031633146118e45760405162461bcd60e51b81526004016109f590612aa4565b6001600160a01b0381166119495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109f5565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146119ce5760405162461bcd60e51b81526004016109f590612aa4565b6040515f90339047908381818185875af1925050503d805f8114611a0d576040519150601f19603f3d011682016040523d82523d5f602084013e611a12565b606091505b50505050565b6001600160a01b038316611a7a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f5565b6001600160a01b038216611adb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f5565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b615760405162461bcd60e51b81526004016109f590612c14565b6001600160a01b038216611b875760405162461bcd60e51b81526004016109f590612c59565b5f8111611bd65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016109f5565b601354610100900460ff16611c67576001600160a01b0383165f908152601e602052604090205460ff1680611c2257506001600160a01b0382165f908152601e602052604090205460ff165b611c675760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109f5565b60105415611d39576001600160a01b0383165f9081526011602052604090205460ff161580611ca357506005546001600160a01b038381169116145b80611cb857506001600160a01b03821661dead145b611d395760405162461bcd60e51b815260206004820152604660248201527f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60448201527f72206f75742065786365707420746f206f776e6572206f722064656164206164606482015265323932b9b99760d11b608482015260a4016109f5565b60135460ff1615612147576005546001600160a01b03848116911614801590611d7057506005546001600160a01b03838116911614155b8015611d8457506001600160a01b03821615155b8015611d9b57506001600160a01b03821661dead14155b8015611dbf57506001600160a01b0383165f908152601e602052604090205460ff16155b8015611de357506001600160a01b0382165f908152601e602052604090205460ff16155b156121475760155460ff1615611ef9576009546001600160a01b03838116911614801590611e1f5750600a546001600160a01b03838116911614155b15611ef957611e2f600243612c9c565b325f90815260146020526040902054108015611e6b5750611e51600243612c9c565b6001600160a01b0383165f90815260146020526040902054105b611ed55760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016109f5565b325f9081526014602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383165f90815260208052604090205460ff168015611f3757506001600160a01b0382165f908152601f602052604090205460ff16155b1561201257600654811115611f9f5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016109f5565b6008546001600160a01b0383165f90815260208190526040902054611fc49083612c01565b111561200d5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016109f5565b612147565b6001600160a01b0382165f90815260208052604090205460ff16801561205057506001600160a01b0383165f908152601f602052604090205460ff16155b156120ba5760075481111561200d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016109f5565b6001600160a01b0382165f908152601f602052604090205460ff16612147576008546001600160a01b0383165f908152602081905260409020546120fe9083612c01565b11156121475760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016109f5565b305f90815260208190526040902054600b5481108015908190612172575060135462010000900460ff165b80156121885750600a54600160a01b900460ff16155b80156121ab57506001600160a01b0385165f90815260208052604090205460ff16155b80156121cf57506001600160a01b0385165f908152601e602052604090205460ff16155b80156121f357506001600160a01b0384165f908152601e602052604090205460ff16155b1561222157600a805460ff60a01b1916600160a01b17905561221361243a565b600a805460ff60a01b191690555b6001600160a01b0385165f908152601e602052604090205460019060ff168061226157506001600160a01b0385165f908152601e602052604090205460ff165b1561226957505f5b5f8115612426576010544310801561229757506001600160a01b0387165f90815260208052604090205460ff165b80156122ba57506001600160a01b0386165f90815260208052604090205460ff16155b80156122c757505f601654115b15612383576001600160a01b0386165f9081526011602052604090205460ff16612365576001600160a01b0386165f908152601160205260408120805460ff191660019081179091556012805491929091612323908490612c01565b90915550506040516001600160a01b03871681527f55678e47d0a699d3ab99b0184c4ff14f2246ba80522deb921aa0c8823578c44a9060200160405180910390a15b6064612372866063612bcb565b61237c9190612be2565b9050612408565b6001600160a01b0386165f90815260208052604090205460ff1680156123aa57505f601a54115b156123bf576064601a54866123729190612bcb565b6001600160a01b0387165f90815260208052604090205460ff1680156123e657505f601654115b15612408576064601654866123fb9190612bcb565b6124059190612be2565b90505b8015612419576124198730836125ca565b6124238186612c9c565b94505b6124318787876125ca565b50505050505050565b5f612446600b5461271d565b60165460185447915f9161245a9084612bcb565b6124649190612be2565b90505f601654601754846124789190612bcb565b6124829190612be2565b90505f601654601954856124969190612bcb565b6124a09190612be2565b600d546040519192506001600160a01b03169082905f81818185875af1925050503d805f81146124eb576040519150601f19603f3d011682016040523d82523d5f602084013e6124f0565b606091505b5050600e546040519196506001600160a01b03169084905f81818185875af1925050503d805f811461253d576040519150601f19603f3d011682016040523d82523d5f602084013e612542565b606091505b5050600c546040519196506001600160a01b03169083905f81818185875af1925050503d805f811461258f576040519150601f19603f3d011682016040523d82523d5f602084013e612594565b606091505b5050505050505050565b6001600160a01b0382165f9081526020805260409020805460ff1916821515179055611667828261286d565b6001600160a01b0383166125f05760405162461bcd60e51b81526004016109f590612c14565b6001600160a01b0382166126165760405162461bcd60e51b81526004016109f590612c59565b6001600160a01b0383165f908152602081905260409020548181101561268d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109f5565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906126c3908490612c01565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270f91815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061275057612750612af4565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156127a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127cb9190612ad9565b816001815181106127de576127de612af4565b6001600160a01b0392831660209182029290920101526009546128049130911684611a18565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061283c9085905f90869030904290600401612caf565b5f604051808303815f87803b158015612853575f80fd5b505af1158015612865573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f818152601f6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd67469101610c03565b5f602082840312156128d8575f80fd5b5035919050565b5f602080835283518060208501525f5b8181101561290b578581018301518582016040015282016128ef565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461293f575f80fd5b50565b5f8060408385031215612953575f80fd5b823561295e8161292b565b946020939093013593505050565b5f6020828403121561297c575f80fd5b81356129878161292b565b9392505050565b5f805f606084860312156129a0575f80fd5b83356129ab8161292b565b925060208401356129bb8161292b565b929592945050506040919091013590565b5f80604083850312156129dd575f80fd5b82356129e88161292b565b9150602083013580151581146129fc575f80fd5b809150509250929050565b5f805f60608486031215612a19575f80fd5b8335612a248161292b565b92506020840135612a348161292b565b91506040840135612a448161292b565b809150509250925092565b5f8060408385031215612a60575f80fd5b8235612a6b8161292b565b915060208301356129fc8161292b565b5f805f60608486031215612a8d575f80fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215612ae9575f80fd5b81516129878161292b565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b83811015612b405781516001600160a01b031687529582019590820190600101612b1b565b509495945050505050565b848152608060208201525f612b636080830186612b08565b6001600160a01b03949094166040830152506060015292915050565b600181811c90821680612b9357607f821691505b602082108103612bb157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610caf57610caf612bb7565b5f82612bfc57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610caf57610caf612bb7565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610caf57610caf612bb7565b85815284602082015260a060408201525f612ccd60a0830186612b08565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212201bcbaaa95414d9bf4b63d9080a35feb29a908bffc9c7d98f2cf63d94020706a464736f6c634300081800334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x60806040526004361061035d575f3560e01c80638da5cb5b116101bd578063bbc0c742116100f2578063e2f4560511610092578063f242ab411161006d578063f242ab411461095a578063f2e76c2514610979578063f2fde38b14610998578063f5648a4f146109b7575f80fd5b8063e2f456051461091c578063e884f26014610931578063ee40166e14610945575f80fd5b8063c876d0b9116100cd578063c876d0b914610881578063d257b34f1461089a578063dd62ed3e146108b9578063e25061b8146108fd575f80fd5b8063bbc0c74214610839578063be69188314610857578063c3cc18f51461086c575f80fd5b8063a457c2d71161015d578063a9d3cd8a11610138578063a9d3cd8a146107b9578063af8f26e7146107d8578063b62496f5146107ed578063b94279ea1461081a575f80fd5b8063a457c2d714610766578063a62068ce14610785578063a9059cbb1461079a575f80fd5b80639164f9db116101985780639164f9db1461070957806395d89b41146107285780639fe23f161461073c578063a3124a7e14610751575f80fd5b80638da5cb5b146106c25780638f3fa860146106df5780639087ab75146106f4575f80fd5b80634a62bb65116102935780636ddd171311610233578063751039fc1161020e578063751039fc1461064257806382aa7c681461065657806385ecfd2814610675578063887d6317146106a3575f80fd5b80636ddd1713146105db57806370a08231146105fa578063715018a61461062e575f80fd5b806358a6d5311161026e57806358a6d53114610586578063652e2f041461059c5780636aa5b37f146105b15780636b0a894c146105c6575f80fd5b80634a62bb651461053a57806351f205e4146105535780635888130414610567575f80fd5b806318160ddd116102fe578063313ce567116102d9578063313ce567146104cc57806333012411146104e757806339509351146104fc57806346576ddb1461051b575f80fd5b806318160ddd1461047a5780631c499ab01461048e57806323b872dd146104ad575f80fd5b80630758d924116103395780630758d924146103d2578063095ea7b31461040957806310d5de531461043857806317700f0114610466575f80fd5b806204ff6914610368578063053f90401461039057806306fdde03146103b1575f80fd5b3661036457005b5f80fd5b348015610373575f80fd5b5061037d60185481565b6040519081526020015b60405180910390f35b34801561039b575f80fd5b506103af6103aa3660046128c8565b6109cb565b005b3480156103bc575f80fd5b506103c5610c0f565b60405161038791906128df565b3480156103dd575f80fd5b506009546103f1906001600160a01b031681565b6040516001600160a01b039091168152602001610387565b348015610414575f80fd5b50610428610423366004612942565b610c9f565b6040519015158152602001610387565b348015610443575f80fd5b5061042861045236600461296c565b601f6020525f908152604090205460ff1681565b348015610471575f80fd5b506103af610cb5565b348015610485575f80fd5b5060025461037d565b348015610499575f80fd5b506103af6104a83660046128c8565b610d44565b3480156104b8575f80fd5b506104286104c736600461298e565b610e54565b3480156104d7575f80fd5b5060405160128152602001610387565b3480156104f2575f80fd5b5061037d60175481565b348015610507575f80fd5b50610428610516366004612942565b610efc565b348015610526575f80fd5b506103af6105353660046129cc565b610f37565b348015610545575f80fd5b506013546104289060ff1681565b34801561055e575f80fd5b506103af610ffe565b348015610572575f80fd5b506103af6105813660046128c8565b611085565b348015610591575f80fd5b506010544310610428565b3480156105a7575f80fd5b5061037d60075481565b3480156105bc575f80fd5b5061037d60065481565b3480156105d1575f80fd5b5061037d60125481565b3480156105e6575f80fd5b506013546104289062010000900460ff1681565b348015610605575f80fd5b5061037d61061436600461296c565b6001600160a01b03165f9081526020819052604090205490565b348015610639575f80fd5b506103af61118b565b34801561064d575f80fd5b506103af6111fe565b348015610661575f80fd5b506103af6106703660046128c8565b611268565b348015610680575f80fd5b5061042861068f36600461296c565b60116020525f908152604090205460ff1681565b3480156106ae575f80fd5b506103af6106bd366004612a07565b61133a565b3480156106cd575f80fd5b506005546001600160a01b03166103f1565b3480156106ea575f80fd5b5061037d60085481565b3480156106ff575f80fd5b5061037d60165481565b348015610714575f80fd5b506103af6107233660046128c8565b61141b565b348015610733575f80fd5b506103c5611522565b348015610747575f80fd5b5061037d601c5481565b34801561075c575f80fd5b5061037d601b5481565b348015610771575f80fd5b50610428610780366004612942565b611531565b348015610790575f80fd5b5061037d60105481565b3480156107a5575f80fd5b506104286107b4366004612942565b6115c9565b3480156107c4575f80fd5b506103af6107d33660046129cc565b6115d5565b3480156107e3575f80fd5b5061037d60195481565b3480156107f8575f80fd5b5061042861080736600461296c565b602080525f908152604090205460ff1681565b348015610825575f80fd5b506103af6108343660046129cc565b6116a2565b348015610844575f80fd5b5060135461042890610100900460ff1681565b348015610862575f80fd5b5061037d601d5481565b348015610877575f80fd5b5061037d601a5481565b34801561088c575f80fd5b506015546104289060ff1681565b3480156108a5575f80fd5b506103af6108b43660046128c8565b6116f6565b3480156108c4575f80fd5b5061037d6108d3366004612a4f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610908575f80fd5b506103af6109173660046129cc565b611725565b348015610927575f80fd5b5061037d600b5481565b34801561093c575f80fd5b506103af6117ad565b348015610950575f80fd5b5061037d600f5481565b348015610965575f80fd5b50600a546103f1906001600160a01b031681565b348015610984575f80fd5b506103af610993366004612a7b565b6117e3565b3480156109a3575f80fd5b506103af6109b236600461296c565b6118ba565b3480156109c2575f80fd5b506103af6119a4565b6005546001600160a01b031633146109fe5760405162461bcd60e51b81526004016109f590612aa4565b60405180910390fd5b678ac7230489e80000811115610a8c5760405162461bcd60e51b815260206004820152604760248201527f4d6179206e6f7420627579206d6f7265207468616e2031302045544820696e2060448201527f612073696e676c652062757920746f207265647563652073616e64776963682060648201526661747461636b7360c81b608482015260a4016109f5565b6040805160028082526060820183525f926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610af3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b179190612ad9565b815f81518110610b2957610b29612af4565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610b5d57610b5d612af4565b6001600160a01b03928316602091820292909201015260095460405163b6f9de9560e01b815291169063b6f9de95908490610ba4905f90869061dead904290600401612b4b565b5f604051808303818588803b158015610bbb575f80fd5b505af1158015610bcd573d5f803e3d5ffd5b50505050507fa017c1567cfcdd2d750a8c01e39fe2a846bcebc293c7d078477014d68482056882604051610c0391815260200190565b60405180910390a15050565b606060038054610c1e90612b7f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4a90612b7f565b8015610c955780601f10610c6c57610100808354040283529160200191610c95565b820191905f5260205f20905b815481529060010190602001808311610c7857829003601f168201915b5050505050905090565b5f610cab338484611a18565b5060015b92915050565b6005546001600160a01b03163314610cdf5760405162461bcd60e51b81526004016109f590612aa4565b601354610100900460ff16610d365760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726564697361626c652074726164696e67000000000000000060448201526064016109f5565b6013805462ffff0019169055565b6005546001600160a01b03163314610d6e5760405162461bcd60e51b81526004016109f590612aa4565b670de0b6b3a76400006103e8610d8360025490565b610d8e906003612bcb565b610d989190612be2565b610da29190612be2565b811015610e065760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b60648201526084016109f5565b610e1881670de0b6b3a7640000612bcb565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc906020015b60405180910390a150565b5f610e60848484611b3b565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ee45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109f5565b610ef18533858403611a18565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610cab918590610f32908690612c01565b611a18565b6005546001600160a01b03163314610f615760405162461bcd60e51b81526004016109f590612aa4565b80610fd457600a546001600160a01b0390811690831603610fd45760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b60648201526084016109f5565b6001600160a01b03919091165f908152601f60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110285760405162461bcd60e51b81526004016109f590612aa4565b600a805460ff60a01b1916600160a01b17905561104361243a565b600a805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6005546001600160a01b031633146110af5760405162461bcd60e51b81526004016109f590612aa4565b670de0b6b3a76400006103e86110c460025490565b6110cf906002612bcb565b6110d99190612be2565b6110e39190612be2565b8110156111445760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b60648201526084016109f5565b61115681670de0b6b3a7640000612bcb565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de4100990602001610e49565b6005546001600160a01b031633146111b55760405162461bcd60e51b81526004016109f590612aa4565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146112285760405162461bcd60e51b81526004016109f590612aa4565b6013805460ff199081169091556015805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a1565b6005546001600160a01b031633146112925760405162461bcd60e51b81526004016109f590612aa4565b601354610100900460ff16156112ea5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e6700000000000000000060448201526064016109f5565b6013805462ffff0019166201010017905543600f81905561130c908290612c01565b6010556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a150565b6005546001600160a01b031633146113645760405162461bcd60e51b81526004016109f590612aa4565b6001600160a01b0383161580159061138457506001600160a01b03821615155b801561139857506001600160a01b03811615155b6113dc5760405162461bcd60e51b815260206004820152601560248201527404164647265737365732063616e6e6f74206265203605c1b60448201526064016109f5565b600c80546001600160a01b039485166001600160a01b031991821617909155600d805493851693821693909317909255600e8054919093169116179055565b6005546001600160a01b031633146114455760405162461bcd60e51b81526004016109f590612aa4565b670de0b6b3a76400006103e861145a60025490565b611465906002612bcb565b61146f9190612be2565b6114799190612be2565b8110156114db5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b60648201526084016109f5565b6114ed81670de0b6b3a7640000612bcb565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610e49565b606060048054610c1e90612b7f565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156115b25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109f5565b6115bf3385858403611a18565b5060019392505050565b5f610cab338484611b3b565b6005546001600160a01b031633146115ff5760405162461bcd60e51b81526004016109f590612aa4565b600a546001600160a01b039081169083160361165d5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016109f5565b611667828261259e565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050565b6005546001600160a01b031633146116cc5760405162461bcd60e51b81526004016109f590612aa4565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146117205760405162461bcd60e51b81526004016109f590612aa4565b600b55565b6005546001600160a01b0316331461174f5760405162461bcd60e51b81526004016109f590612aa4565b6001600160a01b0382165f818152601e6020908152604091829020805460ff191685151590811790915591519182527fd371c6889ff9ad7371053463dc978366919ead66819324c51f6ac3ab76353506910160405180910390a25050565b6005546001600160a01b031633146117d75760405162461bcd60e51b81526004016109f590612aa4565b6015805460ff19169055565b6005546001600160a01b0316331461180d5760405162461bcd60e51b81526004016109f590612aa4565b601b839055601c829055601d819055601783905560188290556019819055806118368385612c01565b6118409190612c01565b601655601d54601c54601b546118569190612c01565b6118609190612c01565b601a819055601910156118b55760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c65737300000060448201526064016109f5565b505050565b6005546001600160a01b031633146118e45760405162461bcd60e51b81526004016109f590612aa4565b6001600160a01b0381166119495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109f5565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146119ce5760405162461bcd60e51b81526004016109f590612aa4565b6040515f90339047908381818185875af1925050503d805f8114611a0d576040519150601f19603f3d011682016040523d82523d5f602084013e611a12565b606091505b50505050565b6001600160a01b038316611a7a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f5565b6001600160a01b038216611adb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f5565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b615760405162461bcd60e51b81526004016109f590612c14565b6001600160a01b038216611b875760405162461bcd60e51b81526004016109f590612c59565b5f8111611bd65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016109f5565b601354610100900460ff16611c67576001600160a01b0383165f908152601e602052604090205460ff1680611c2257506001600160a01b0382165f908152601e602052604090205460ff165b611c675760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109f5565b60105415611d39576001600160a01b0383165f9081526011602052604090205460ff161580611ca357506005546001600160a01b038381169116145b80611cb857506001600160a01b03821661dead145b611d395760405162461bcd60e51b815260206004820152604660248201527f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60448201527f72206f75742065786365707420746f206f776e6572206f722064656164206164606482015265323932b9b99760d11b608482015260a4016109f5565b60135460ff1615612147576005546001600160a01b03848116911614801590611d7057506005546001600160a01b03838116911614155b8015611d8457506001600160a01b03821615155b8015611d9b57506001600160a01b03821661dead14155b8015611dbf57506001600160a01b0383165f908152601e602052604090205460ff16155b8015611de357506001600160a01b0382165f908152601e602052604090205460ff16155b156121475760155460ff1615611ef9576009546001600160a01b03838116911614801590611e1f5750600a546001600160a01b03838116911614155b15611ef957611e2f600243612c9c565b325f90815260146020526040902054108015611e6b5750611e51600243612c9c565b6001600160a01b0383165f90815260146020526040902054105b611ed55760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016109f5565b325f9081526014602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383165f90815260208052604090205460ff168015611f3757506001600160a01b0382165f908152601f602052604090205460ff16155b1561201257600654811115611f9f5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016109f5565b6008546001600160a01b0383165f90815260208190526040902054611fc49083612c01565b111561200d5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016109f5565b612147565b6001600160a01b0382165f90815260208052604090205460ff16801561205057506001600160a01b0383165f908152601f602052604090205460ff16155b156120ba5760075481111561200d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016109f5565b6001600160a01b0382165f908152601f602052604090205460ff16612147576008546001600160a01b0383165f908152602081905260409020546120fe9083612c01565b11156121475760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016109f5565b305f90815260208190526040902054600b5481108015908190612172575060135462010000900460ff165b80156121885750600a54600160a01b900460ff16155b80156121ab57506001600160a01b0385165f90815260208052604090205460ff16155b80156121cf57506001600160a01b0385165f908152601e602052604090205460ff16155b80156121f357506001600160a01b0384165f908152601e602052604090205460ff16155b1561222157600a805460ff60a01b1916600160a01b17905561221361243a565b600a805460ff60a01b191690555b6001600160a01b0385165f908152601e602052604090205460019060ff168061226157506001600160a01b0385165f908152601e602052604090205460ff165b1561226957505f5b5f8115612426576010544310801561229757506001600160a01b0387165f90815260208052604090205460ff165b80156122ba57506001600160a01b0386165f90815260208052604090205460ff16155b80156122c757505f601654115b15612383576001600160a01b0386165f9081526011602052604090205460ff16612365576001600160a01b0386165f908152601160205260408120805460ff191660019081179091556012805491929091612323908490612c01565b90915550506040516001600160a01b03871681527f55678e47d0a699d3ab99b0184c4ff14f2246ba80522deb921aa0c8823578c44a9060200160405180910390a15b6064612372866063612bcb565b61237c9190612be2565b9050612408565b6001600160a01b0386165f90815260208052604090205460ff1680156123aa57505f601a54115b156123bf576064601a54866123729190612bcb565b6001600160a01b0387165f90815260208052604090205460ff1680156123e657505f601654115b15612408576064601654866123fb9190612bcb565b6124059190612be2565b90505b8015612419576124198730836125ca565b6124238186612c9c565b94505b6124318787876125ca565b50505050505050565b5f612446600b5461271d565b60165460185447915f9161245a9084612bcb565b6124649190612be2565b90505f601654601754846124789190612bcb565b6124829190612be2565b90505f601654601954856124969190612bcb565b6124a09190612be2565b600d546040519192506001600160a01b03169082905f81818185875af1925050503d805f81146124eb576040519150601f19603f3d011682016040523d82523d5f602084013e6124f0565b606091505b5050600e546040519196506001600160a01b03169084905f81818185875af1925050503d805f811461253d576040519150601f19603f3d011682016040523d82523d5f602084013e612542565b606091505b5050600c546040519196506001600160a01b03169083905f81818185875af1925050503d805f811461258f576040519150601f19603f3d011682016040523d82523d5f602084013e612594565b606091505b5050505050505050565b6001600160a01b0382165f9081526020805260409020805460ff1916821515179055611667828261286d565b6001600160a01b0383166125f05760405162461bcd60e51b81526004016109f590612c14565b6001600160a01b0382166126165760405162461bcd60e51b81526004016109f590612c59565b6001600160a01b0383165f908152602081905260409020548181101561268d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109f5565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906126c3908490612c01565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270f91815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061275057612750612af4565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156127a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127cb9190612ad9565b816001815181106127de576127de612af4565b6001600160a01b0392831660209182029290920101526009546128049130911684611a18565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061283c9085905f90869030904290600401612caf565b5f604051808303815f87803b158015612853575f80fd5b505af1158015612865573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f818152601f6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd67469101610c03565b5f602082840312156128d8575f80fd5b5035919050565b5f602080835283518060208501525f5b8181101561290b578581018301518582016040015282016128ef565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461293f575f80fd5b50565b5f8060408385031215612953575f80fd5b823561295e8161292b565b946020939093013593505050565b5f6020828403121561297c575f80fd5b81356129878161292b565b9392505050565b5f805f606084860312156129a0575f80fd5b83356129ab8161292b565b925060208401356129bb8161292b565b929592945050506040919091013590565b5f80604083850312156129dd575f80fd5b82356129e88161292b565b9150602083013580151581146129fc575f80fd5b809150509250929050565b5f805f60608486031215612a19575f80fd5b8335612a248161292b565b92506020840135612a348161292b565b91506040840135612a448161292b565b809150509250925092565b5f8060408385031215612a60575f80fd5b8235612a6b8161292b565b915060208301356129fc8161292b565b5f805f60608486031215612a8d575f80fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215612ae9575f80fd5b81516129878161292b565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b83811015612b405781516001600160a01b031687529582019590820190600101612b1b565b509495945050505050565b848152608060208201525f612b636080830186612b08565b6001600160a01b03949094166040830152506060015292915050565b600181811c90821680612b9357607f821691505b602082108103612bb157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610caf57610caf612bb7565b5f82612bfc57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610caf57610caf612bb7565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610caf57610caf612bb7565b85815284602082015260a060408201525f612ccd60a0830186612b08565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212201bcbaaa95414d9bf4b63d9080a35feb29a908bffc9c7d98f2cf63d94020706a464736f6c63430008180033

Deployed Bytecode Sourcemap

8564:16304:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9552:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9552:28:0;;;;;;;;24194:671;;;;;;;;;;-1:-1:-1;24194:671:0;;;;;:::i;:::-;;:::i;:::-;;1947:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8711:27::-;;;;;;;;;;-1:-1:-1;8711:27:0;;;;-1:-1:-1;;;;;8711:27:0;;;;;;-1:-1:-1;;;;;1116:32:1;;;1098:51;;1086:2;1071:18;8711:27:0;934:221:1;3002:210:0;;;;;;;;;;-1:-1:-1;3002:210:0;;;;;:::i;:::-;;:::i;:::-;;;1781:14:1;;1774:22;1756:41;;1744:2;1729:18;3002:210:0;1616:187:1;9906:63:0;;;;;;;;;;-1:-1:-1;9906:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13196:176;;;;;;;;;;;;;:::i;2268:108::-;;;;;;;;;;-1:-1:-1;2356:12:0;;2268:108;;14449:321;;;;;;;;;;-1:-1:-1;14449:321:0;;;;;:::i;:::-;;:::i;3220:529::-;;;;;;;;;;-1:-1:-1;3220:529:0;;;;;:::i;:::-;;:::i;2167:93::-;;;;;;;;;;-1:-1:-1;2167:93:0;;2250:2;2663:36:1;;2651:2;2636:18;2167:93:0;2521:184:1;9515:30:0;;;;;;;;;;;;;;;;3757:297;;;;;;;;;;-1:-1:-1;3757:297:0;;;;;:::i;:::-;;:::i;15135:302::-;;;;;;;;;;-1:-1:-1;15135:302:0;;;;;:::i;:::-;;:::i;9134:33::-;;;;;;;;;;-1:-1:-1;9134:33:0;;;;;;;;23913:178;;;;;;;;;;;;;:::i;13812:308::-;;;;;;;;;;-1:-1:-1;13812:308:0;;;;;:::i;:::-;;:::i;21764:121::-;;;;;;;;;;-1:-1:-1;21859:18:0;;21844:12;:33;21764:121;;8640:27;;;;;;;;;;;;;;;;8607:26;;;;;;;;;;;;;;;;9100:25;;;;;;;;;;;;;;;;9214:31;;;;;;;;;;-1:-1:-1;9214:31:0;;;;;;;;;;;2384:177;;;;;;;;;;-1:-1:-1;2384:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;2535:18:0;2503:7;2535:18;;;;;;;;;;;;2384:177;7036:150;;;;;;;;;;;;;:::i;13424:154::-;;;;;;;;;;;;;:::i;12862:326::-;;;;;;;;;;-1:-1:-1;12862:326:0;;;;;:::i;:::-;;:::i;9050:43::-;;;;;;;;;;-1:-1:-1;9050:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23341:520;;;;;;;;;;-1:-1:-1;23341:520:0;;;;;:::i;:::-;;:::i;6822:79::-;;;;;;;;;;-1:-1:-1;6887:6:0;;-1:-1:-1;;;;;6887:6:0;6822:79;;8674:28;;;;;;;;;;;;;;;;9480;;;;;;;;;;;;;;;;14128:313;;;;;;;;;;-1:-1:-1;14128:313:0;;;;;:::i;:::-;;:::i;2055:104::-;;;;;;;;;;;;;:::i;9695:29::-;;;;;;;;;;;;;;;;9656:32;;;;;;;;;;;;;;;;4062:482;;;;;;;;;;-1:-1:-1;4062:482:0;;;;;:::i;:::-;;:::i;9010:33::-;;;;;;;;;;;;;;;;2569:216;;;;;;;;;;-1:-1:-1;2569:216:0;;;;;:::i;:::-;;:::i;15445:244::-;;;;;;;;;;-1:-1:-1;15445:244:0;;;;;:::i;:::-;;:::i;9587:24::-;;;;;;;;;;;;;;;;10127:57;;;;;;;;;;-1:-1:-1;10127:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13586:112;;;;;;;;;;-1:-1:-1;13586:112:0;;;;;:::i;:::-;;:::i;9174:33::-;;;;;;;;;;-1:-1:-1;9174:33:0;;;;;;;;;;;9731:25;;;;;;;;;;;;;;;;9620:29;;;;;;;;;;;;;;;;9432:39;;;;;;;;;;-1:-1:-1;9432:39:0;;;;;;;;14778:121;;;;;;;;;;-1:-1:-1;14778:121:0;;;;;:::i;:::-;;:::i;2793:201::-;;;;;;;;;;-1:-1:-1;2793:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;2959:18:0;;;2927:7;2959:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2793:201;16540:184;;;;;;;;;;-1:-1:-1;16540:184:0;;;;;:::i;:::-;;:::i;8804:33::-;;;;;;;;;;;;;;;;13706:98;;;;;;;;;;;;;:::i;8933:37::-;;;;;;;;;;;;;;;;8745:22;;;;;;;;;;-1:-1:-1;8745:22:0;;;;-1:-1:-1;;;;;8745:22:0;;;15940:592;;;;;;;;;;-1:-1:-1;15940:592:0;;;;;:::i;:::-;;:::i;7194:281::-;;;;;;;;;;-1:-1:-1;7194:281:0;;;;;:::i;:::-;;:::i;23148:185::-;;;;;;;;;;;;;:::i;24194:671::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;;;;;;;;;24299:8:::1;24284:11;:23;;24262:144;;;::::0;-1:-1:-1;;;24262:144:0;;5150:2:1;24262:144:0::1;::::0;::::1;5132:21:1::0;5189:2;5169:18;;;5162:30;5228:34;5208:18;;;5201:62;5299:34;5279:18;;;5272:62;-1:-1:-1;;;5350:19:1;;;5343:38;5398:19;;24262:144:0::1;4948:475:1::0;24262:144:0::1;24443:16;::::0;;24457:1:::1;24443:16:::0;;;;;::::1;::::0;;24419:21:::1;::::0;24443:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;24480:9:0::1;::::0;:16:::1;::::0;;-1:-1:-1;;;24480:16:0;;;;24419:40;;-1:-1:-1;;;;;;24480:9:0;;::::1;::::0;:14:::1;::::0;-1:-1:-1;24480:16:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24470:4;24475:1;24470:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1::0;;;;;24470:26:0::1;;;-1:-1:-1::0;;;;;24470:26:0::1;;;::::0;::::1;24525:4;24507;24512:1;24507:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24507:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;24569:9:::1;::::0;:243:::1;::::0;-1:-1:-1;;;24569:243:0;;:9;::::1;::::0;:60:::1;::::0;24651:11;;24569:243:::1;::::0;:9:::1;::::0;24737:4;;24764:6:::1;::::0;24786:15:::1;::::0;24569:243:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;24828:29;24845:11;24828:29;;;;160:25:1::0;;148:2;133:18;;14:177;24828:29:0::1;;;;;;;;24251:614;24194:671:::0;:::o;1947:100::-;2001:13;2034:5;2027:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1947:100;:::o;3002:210::-;3121:4;3143:39;248:10;3166:7;3175:6;3143:8;:39::i;:::-;-1:-1:-1;3200:4:0;3002:210;;;;;:::o;13196:176::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;13260:13:::1;::::0;::::1;::::0;::::1;;;13252:50;;;::::0;-1:-1:-1;;;13252:50:0;;7520:2:1;13252:50:0::1;::::0;::::1;7502:21:1::0;7559:2;7539:18;;;7532:30;7598:26;7578:18;;;7571:54;7642:18;;13252:50:0::1;7318:348:1::0;13252:50:0::1;13313:13;:21:::0;;-1:-1:-1;;13345:19:0;;;13196:176::o;14449:321::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;14587:4:::1;14579;14558:13;2356:12:::0;;;2268:108;14558:13:::1;:17;::::0;14574:1:::1;14558:17;:::i;:::-;14557:26;;;;:::i;:::-;14556:35;;;;:::i;:::-;14544:8;:47;;14522:141;;;::::0;-1:-1:-1;;;14522:141:0;;8400:2:1;14522:141:0::1;::::0;::::1;8382:21:1::0;8439:2;8419:18;;;8412:30;8478:34;8458:18;;;8451:62;-1:-1:-1;;;8529:18:1;;;8522:42;8581:19;;14522:141:0::1;8198:408:1::0;14522:141:0::1;14690:19;:8:::0;14702:6:::1;14690:19;:::i;:::-;14674:13;:35:::0;;;14725:37:::1;::::0;160:25:1;;;14725:37:0::1;::::0;148:2:1;133:18;14725:37:0::1;;;;;;;;14449:321:::0;:::o;3220:529::-;3360:4;3377:36;3387:6;3395:9;3406:6;3377:9;:36::i;:::-;-1:-1:-1;;;;;3453:19:0;;3426:24;3453:19;;;:11;:19;;;;;;;;248:10;3453:33;;;;;;;;3519:26;;;;3497:116;;;;-1:-1:-1;;;3497:116:0;;8813:2:1;3497:116:0;;;8795:21:1;8852:2;8832:18;;;8825:30;8891:34;8871:18;;;8864:62;-1:-1:-1;;;8942:18:1;;;8935:38;8990:19;;3497:116:0;8611:404:1;3497:116:0;3649:57;3658:6;248:10;3699:6;3680:16;:25;3649:8;:57::i;:::-;-1:-1:-1;3737:4:0;;3220:529;-1:-1:-1;;;;3220:529:0:o;3757:297::-;248:10;3872:4;3966:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3966:34:0;;;;;;;;;;3872:4;;3894:130;;3944:7;;3966:47;;4003:10;;3966:47;:::i;:::-;3894:8;:130::i;15135:302::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;15222:4:::1;15217:156;;15279:7;::::0;-1:-1:-1;;;;;15279:7:0;;::::1;15269:17:::0;;::::1;::::0;15243:118:::1;;;::::0;-1:-1:-1;;;15243:118:0;;9352:2:1;15243:118:0::1;::::0;::::1;9334:21:1::0;9391:2;9371:18;;;9364:30;9430:34;9410:18;;;9403:62;-1:-1:-1;;;9481:18:1;;;9474:37;9528:19;;15243:118:0::1;9150:403:1::0;15243:118:0::1;-1:-1:-1::0;;;;;15383:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;15383:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15135:302::o;23913:178::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;23968:8:::1;:15:::0;;-1:-1:-1;;;;23968:15:0::1;-1:-1:-1::0;;;23968:15:0::1;::::0;;23994:10:::1;:8;:10::i;:::-;24015:8;:16:::0;;-1:-1:-1;;;;24015:16:0::1;::::0;;24047:36:::1;::::0;24067:15:::1;160:25:1::0;;24047:36:0::1;::::0;148:2:1;133:18;24047:36:0::1;;;;;;;23913:178::o:0;13812:308::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;13947:4:::1;13939;13918:13;2356:12:::0;;;2268:108;13918:13:::1;:17;::::0;13934:1:::1;13918:17;:::i;:::-;13917:26;;;;:::i;:::-;13916:35;;;;:::i;:::-;13904:8;:47;;13882:138;;;::::0;-1:-1:-1;;;13882:138:0;;9760:2:1;13882:138:0::1;::::0;::::1;9742:21:1::0;9799:2;9779:18;;;9772:30;9838:34;9818:18;;;9811:62;-1:-1:-1;;;9889:18:1;;;9882:39;9938:19;;13882:138:0::1;9558:405:1::0;13882:138:0::1;14045:19;:8:::0;14057:6:::1;14045:19;:::i;:::-;14031:11;:33:::0;;;14080:32:::1;::::0;160:25:1;;;14080:32:0::1;::::0;148:2:1;133:18;14080:32:0::1;14:177:1::0;7036:150:0;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;7129:6:::1;::::0;7108:40:::1;::::0;7145:1:::1;::::0;-1:-1:-1;;;;;7129:6:0::1;::::0;7108:40:::1;::::0;7145:1;;7108:40:::1;7159:6;:19:::0;;-1:-1:-1;;;;;;7159:19:0::1;::::0;;7036:150::o;13424:154::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;13478:14:::1;:22:::0;;-1:-1:-1;;13478:22:0;;::::1;::::0;;;13511:20:::1;:28:::0;;;;::::1;::::0;;13555:15:::1;::::0;::::1;::::0;13495:5:::1;::::0;13555:15:::1;13424:154::o:0;12862:326::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;12945:13:::1;::::0;::::1;::::0;::::1;;;12944:14;12936:50;;;::::0;-1:-1:-1;;;12936:50:0;;10170:2:1;12936:50:0::1;::::0;::::1;10152:21:1::0;10209:2;10189:18;;;10182:30;10248:25;10228:18;;;10221:53;10291:18;;12936:50:0::1;9968:347:1::0;12936:50:0::1;12997:13;:20:::0;;-1:-1:-1;;13028:18:0;;;;;13078:12:::1;13057:18;:33:::0;;;13122:32:::1;::::0;13143:11;;13122:32:::1;:::i;:::-;13101:18;:53:::0;13170:10:::1;::::0;::::1;::::0;;;::::1;12862:326:::0;:::o;23341:520::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23525:31:0;::::1;::::0;;::::1;::::0;:77:::1;;-1:-1:-1::0;;;;;;23577:25:0;::::1;::::0;::::1;23525:77;:127;;;;-1:-1:-1::0;;;;;;23623:29:0;::::1;::::0;::::1;23525:127;23503:198;;;::::0;-1:-1:-1;;;23503:198:0;;10522:2:1;23503:198:0::1;::::0;::::1;10504:21:1::0;10561:2;10541:18;;;10534:30;-1:-1:-1;;;10580:18:1;;;10573:51;10641:18;;23503:198:0::1;10320:345:1::0;23503:198:0::1;23712:16;:45:::0;;-1:-1:-1;;;;;23712:45:0;;::::1;-1:-1:-1::0;;;;;;23712:45:0;;::::1;;::::0;;;23768:10:::1;:33:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;23812:14:::1;:41:::0;;;;;::::1;::::0;::::1;;::::0;;23341:520::o;14128:313::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;14264:4:::1;14256;14235:13;2356:12:::0;;;2268:108;14235:13:::1;:17;::::0;14251:1:::1;14235:17;:::i;:::-;14234:26;;;;:::i;:::-;14233:35;;;;:::i;:::-;14221:8;:47;;14199:139;;;::::0;-1:-1:-1;;;14199:139:0;;10872:2:1;14199:139:0::1;::::0;::::1;10854:21:1::0;10911:2;10891:18;;;10884:30;10950:34;10930:18;;;10923:62;-1:-1:-1;;;11001:18:1;;;10994:40;11051:19;;14199:139:0::1;10670:406:1::0;14199:139:0::1;14364:19;:8:::0;14376:6:::1;14364:19;:::i;:::-;14349:12;:34:::0;;;14399::::1;::::0;160:25:1;;;14399:34:0::1;::::0;148:2:1;133:18;14399:34:0::1;14:177:1::0;2055:104:0;2111:13;2144:7;2137:14;;;;;:::i;4062:482::-;248:10;4182:4;4231:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4231:34:0;;;;;;;;;;4298:35;;;;4276:122;;;;-1:-1:-1;;;4276:122:0;;11283:2:1;4276:122:0;;;11265:21:1;11322:2;11302:18;;;11295:30;11361:34;11341:18;;;11334:62;-1:-1:-1;;;11412:18:1;;;11405:35;11457:19;;4276:122:0;11081:401:1;4276:122:0;4434:67;248:10;4457:7;4485:15;4466:16;:34;4434:8;:67::i;:::-;-1:-1:-1;4532:4:0;;4062:482;-1:-1:-1;;;4062:482:0:o;2569:216::-;2691:4;2713:42;248:10;2737:9;2748:6;2713:9;:42::i;15445:244::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;15533:7:::1;::::0;-1:-1:-1;;;;;15533:7:0;;::::1;15525:15:::0;;::::1;::::0;15517:54:::1;;;::::0;-1:-1:-1;;;15517:54:0;;11689:2:1;15517:54:0::1;::::0;::::1;11671:21:1::0;11728:2;11708:18;;;11701:30;11767:28;11747:18;;;11740:56;11813:18;;15517:54:0::1;11487:350:1::0;15517:54:0::1;15584:41;15613:4;15619:5;15584:28;:41::i;:::-;15641:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;15641:40:0;::::1;::::0;::::1;::::0;;;::::1;15445:244:::0;;:::o;13586:112::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13664:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:26;;-1:-1:-1;;13664:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13586:112::o;14778:121::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;14861:18:::1;:30:::0;14778:121::o;16540:184::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16625:29:0;::::1;;::::0;;;:20:::1;:29;::::0;;;;;;;;:40;;-1:-1:-1;;16625:40:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16681:35;;1756:41:1;;;16681:35:0::1;::::0;1729:18:1;16681:35:0::1;;;;;;;16540:184:::0;;:::o;13706:98::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;13768:20:::1;:28:::0;;-1:-1:-1;;13768:28:0::1;::::0;;13706:98::o;15940:592::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;16087:17:::1;:34:::0;;;16132:14:::1;:28:::0;;;16171:10:::1;:20:::0;;;16204:15:::1;:32:::0;;;16247:13:::1;:27:::0;;;16285:9:::1;:19:::0;;;16184:7;16333:31:::1;16149:11:::0;16107:14;16333:31:::1;:::i;:::-;:43;;;;:::i;:::-;16317:13;:59:::0;16441:10:::1;::::0;16424:14:::1;::::0;16404:17:::1;::::0;:34:::1;::::0;16424:14;16404:34:::1;:::i;:::-;:47;;;;:::i;:::-;16387:14;:64:::0;;;16488:2:::1;-1:-1:-1::0;16470:20:0::1;16462:62;;;::::0;-1:-1:-1;;;16462:62:0;;12044:2:1;16462:62:0::1;::::0;::::1;12026:21:1::0;12083:2;12063:18;;;12056:30;12122:31;12102:18;;;12095:59;12171:18;;16462:62:0::1;11842:353:1::0;16462:62:0::1;15940:592:::0;;;:::o;7194:281::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7297:22:0;::::1;7275:110;;;::::0;-1:-1:-1;;;7275:110:0;;12402:2:1;7275:110:0::1;::::0;::::1;12384:21:1::0;12441:2;12421:18;;;12414:30;12480:34;12460:18;;;12453:62;-1:-1:-1;;;12531:18:1;;;12524:36;12577:19;;7275:110:0::1;12200:402:1::0;7275:110:0::1;7422:6;::::0;7401:38:::1;::::0;-1:-1:-1;;;;;7401:38:0;;::::1;::::0;7422:6:::1;::::0;7401:38:::1;::::0;7422:6:::1;::::0;7401:38:::1;7450:6;:17:::0;;-1:-1:-1;;;;;;7450:17:0::1;-1:-1:-1::0;;;;;7450:17:0;;;::::1;::::0;;;::::1;::::0;;7194:281::o;23148:185::-;6949:6;;-1:-1:-1;;;;;6949:6:0;248:10;6949:22;6941:67;;;;-1:-1:-1;;;6941:67:0;;;;;;;:::i;:::-;23243:82:::1;::::0;23206:12:::1;::::0;23251:10:::1;::::0;23275:21:::1;::::0;23206:12;23243:82;23206:12;23243:82;23275:21;23251:10;23243:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;23148:185:0:o;6091:380::-;-1:-1:-1;;;;;6227:19:0;;6219:68;;;;-1:-1:-1;;;6219:68:0;;13019:2:1;6219:68:0;;;13001:21:1;13058:2;13038:18;;;13031:30;13097:34;13077:18;;;13070:62;-1:-1:-1;;;13148:18:1;;;13141:34;13192:19;;6219:68:0;12817:400:1;6219:68:0;-1:-1:-1;;;;;6306:21:0;;6298:68;;;;-1:-1:-1;;;6298:68:0;;13424:2:1;6298:68:0;;;13406:21:1;13463:2;13443:18;;;13436:30;13502:34;13482:18;;;13475:62;-1:-1:-1;;;13553:18:1;;;13546:32;13595:19;;6298:68:0;13222:398:1;6298:68:0;-1:-1:-1;;;;;6379:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6431:32;;160:25:1;;;6431:32:0;;133:18:1;6431:32:0;;;;;;;6091:380;;;:::o;16732:5024::-;-1:-1:-1;;;;;16864:18:0;;16856:68;;;;-1:-1:-1;;;16856:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16943:16:0;;16935:64;;;;-1:-1:-1;;;16935:64:0;;;;;;;:::i;:::-;17027:1;17018:6;:10;17010:52;;;;-1:-1:-1;;;17010:52:0;;14637:2:1;17010:52:0;;;14619:21:1;14676:2;14656:18;;;14649:30;14715:31;14695:18;;;14688:59;14764:18;;17010:52:0;14435:353:1;17010:52:0;17080:13;;;;;;;17075:185;;-1:-1:-1;;;;;17136:26:0;;;;;;:20;:26;;;;;;;;;:54;;-1:-1:-1;;;;;;17166:24:0;;;;;;:20;:24;;;;;;;;17136:54;17110:138;;;;-1:-1:-1;;;17110:138:0;;14995:2:1;17110:138:0;;;14977:21:1;15034:2;15014:18;;;15007:30;-1:-1:-1;;;15053:18:1;;;15046:52;15115:18;;17110:138:0;14793:346:1;17110:138:0;17276:18;;:22;17272:247;;-1:-1:-1;;;;;17342:17:0;;;;;;:11;:17;;;;;;;;17341:18;;:35;;-1:-1:-1;6887:6:0;;-1:-1:-1;;;;;17363:13:0;;;6887:6;;17363:13;17341:35;:60;;;-1:-1:-1;;;;;;17380:21:0;;17394:6;17380:21;17341:60;17315:192;;;;-1:-1:-1;;;17315:192:0;;15346:2:1;17315:192:0;;;15328:21:1;15385:2;15365:18;;;15358:30;15424:34;15404:18;;;15397:62;15495:34;15475:18;;;15468:62;-1:-1:-1;;;15546:19:1;;;15539:37;15593:19;;17315:192:0;15144:474:1;17315:192:0;17535:14;;;;17531:2336;;;6887:6;;-1:-1:-1;;;;;17588:15:0;;;6887:6;;17588:15;;;;:49;;-1:-1:-1;6887:6:0;;-1:-1:-1;;;;;17624:13:0;;;6887:6;;17624:13;;17588:49;:86;;;;-1:-1:-1;;;;;;17658:16:0;;;;17588:86;:128;;;;-1:-1:-1;;;;;;17695:21:0;;17709:6;17695:21;;17588:128;:176;;;;-1:-1:-1;;;;;;17738:26:0;;;;;;:20;:26;;;;;;;;17737:27;17588:176;:222;;;;-1:-1:-1;;;;;;17786:24:0;;;;;;:20;:24;;;;;;;;17785:25;17588:222;17566:2290;;;17981:20;;;;17977:693;;;18044:9;;-1:-1:-1;;;;;18030:24:0;;;18044:9;;18030:24;;;;:50;;-1:-1:-1;18072:7:0;;-1:-1:-1;;;;;18058:22:0;;;18072:7;;18058:22;;18030:50;18026:625;;;18222:16;18237:1;18222:12;:16;:::i;:::-;18176:9;18147:39;;;;:28;:39;;;;;;:91;:212;;;;-1:-1:-1;18343:16:0;18358:1;18343:12;:16;:::i;:::-;-1:-1:-1;;;;;18275:32:0;;;;;;:28;:32;;;;;;:84;18147:212;18109:363;;;;-1:-1:-1;;;18109:363:0;;15958:2:1;18109:363:0;;;15940:21:1;15997:2;15977:18;;;15970:30;16036:34;16016:18;;;16009:62;-1:-1:-1;;;16087:18:1;;;16080:51;16148:19;;18109:363:0;15756:417:1;18109:363:0;18528:9;18499:39;;;;:28;:39;;;;;;18541:12;18499:54;;;;-1:-1:-1;;;;;18580:32:0;;;;;;:47;18026:625;-1:-1:-1;;;;;18744:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;18801:35:0;;;;;;:31;:35;;;;;;;;18800:36;18744:92;18718:1123;;;18923:11;;18913:6;:21;;18879:147;;;;-1:-1:-1;;;18879:147:0;;16380:2:1;18879:147:0;;;16362:21:1;16419:2;16399:18;;;16392:30;16458:34;16438:18;;;16431:62;-1:-1:-1;;;16509:18:1;;;16502:38;16557:19;;18879:147:0;16178:404:1;18879:147:0;19109:13;;-1:-1:-1;;;;;2535:18:0;;2503:7;2535:18;;;;;;;;;;;19083:22;;:6;:22;:::i;:::-;:39;;19049:149;;;;-1:-1:-1;;;19049:149:0;;16789:2:1;19049:149:0;;;16771:21:1;16828:2;16808:18;;;16801:30;-1:-1:-1;;;16847:18:1;;;16840:54;16911:18;;19049:149:0;16587:348:1;19049:149:0;18718:1123;;;-1:-1:-1;;;;;19296:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;19351:37:0;;;;;;:31;:37;;;;;;;;19350:38;19296:92;19270:571;;;19475:12;;19465:6;:22;;19431:150;;;;-1:-1:-1;;;19431:150:0;;17142:2:1;19431:150:0;;;17124:21:1;17181:2;17161:18;;;17154:30;17220:34;17200:18;;;17193:62;-1:-1:-1;;;17271:18:1;;;17264:40;17321:19;;19431:150:0;16940:406:1;19270:571:0;-1:-1:-1;;;;;19612:35:0;;;;;;:31;:35;;;;;;;;19607:234;;19732:13;;-1:-1:-1;;;;;2535:18:0;;2503:7;2535:18;;;;;;;;;;;19706:22;;:6;:22;:::i;:::-;:39;;19672:149;;;;-1:-1:-1;;;19672:149:0;;16789:2:1;19672:149:0;;;16771:21:1;16828:2;16808:18;;;16801:30;-1:-1:-1;;;16847:18:1;;;16840:54;16911:18;;19672:149:0;16587:348:1;19672:149:0;19928:4;19879:28;2535:18;;;;;;;;;;;19986;;19962:42;;;;;;;20035:35;;-1:-1:-1;20059:11:0;;;;;;;20035:35;:61;;;;-1:-1:-1;20088:8:0;;-1:-1:-1;;;20088:8:0;;;;20087:9;20035:61;:110;;;;-1:-1:-1;;;;;;20114:31:0;;;;;;:25;:31;;;;;;;;20113:32;20035:110;:154;;;;-1:-1:-1;;;;;;20163:26:0;;;;;;:20;:26;;;;;;;;20162:27;20035:154;:196;;;;-1:-1:-1;;;;;;20207:24:0;;;;;;:20;:24;;;;;;;;20206:25;20035:196;20017:328;;;20258:8;:15;;-1:-1:-1;;;;20258:15:0;-1:-1:-1;;;20258:15:0;;;20290:10;:8;:10::i;:::-;20317:8;:16;;-1:-1:-1;;;;20317:16:0;;;20017:328;-1:-1:-1;;;;;20476:26:0;;20357:12;20476:26;;;:20;:26;;;;;;20372:4;;20476:26;;;:54;;-1:-1:-1;;;;;;20506:24:0;;;;;;:20;:24;;;;;;;;20476:54;20472:102;;;-1:-1:-1;20557:5:0;20472:102;20586:12;20691:7;20687:1016;;;21859:18;;21844:12;:33;20773:77;;;;-1:-1:-1;;;;;;20819:31:0;;;;;;:25;:31;;;;;;;;20773:77;:128;;;;-1:-1:-1;;;;;;20872:29:0;;;;;;:25;:29;;;;;;;;20871:30;20773:128;:166;;;;;20938:1;20922:13;;:17;20773:166;20751:803;;;-1:-1:-1;;;;;20979:15:0;;;;;;:11;:15;;;;;;;;20974:173;;-1:-1:-1;;;;;21019:15:0;;;;;;:11;:15;;;;;:22;;-1:-1:-1;;21019:22:0;21037:4;21019:22;;;;;;21064:10;:15;;21037:4;;21064:10;;:15;;21037:4;;21064:15;:::i;:::-;;;;-1:-1:-1;;21107:20:0;;-1:-1:-1;;;;;1116:32:1;;1098:51;;21107:20:0;;1086:2:1;1071:18;21107:20:0;;;;;;;20974:173;21190:3;21175:11;:6;21184:2;21175:11;:::i;:::-;21174:19;;;;:::i;:::-;21167:26;;20751:803;;;-1:-1:-1;;;;;21256:29:0;;;;;;:25;:29;;;;;;;;:51;;;;;21306:1;21289:14;;:18;21256:51;21252:302;;;21363:3;21345:14;;21336:6;:23;;;;:::i;21252:302::-;-1:-1:-1;;;;;21428:31:0;;;;;;:25;:31;;;;;;;;:52;;;;;21479:1;21463:13;;:17;21428:52;21424:130;;;21535:3;21518:13;;21509:6;:22;;;;:::i;:::-;21508:30;;;;:::i;:::-;21501:37;;21424:130;21574:8;;21570:91;;21603:42;21619:4;21633;21640;21603:15;:42::i;:::-;21677:14;21687:4;21677:14;;:::i;:::-;;;20687:1016;21715:33;21731:4;21737:2;21741:6;21715:15;:33::i;:::-;16845:4911;;;;16732:5024;;;:::o;22472:668::-;22511:12;22534:36;22551:18;;22534:16;:36::i;:::-;22691:13;;22674;;22604:21;;22583:18;;22661:26;;22604:21;22661:26;:::i;:::-;22660:44;;;;:::i;:::-;22636:68;;22715:24;22788:13;;22756:15;;22743:10;:28;;;;:::i;:::-;22742:59;;;;:::i;:::-;22715:86;;22812:17;22859:13;;22846:9;;22833:10;:22;;;;:::i;:::-;22832:40;;;;:::i;:::-;22907:10;;22899:46;;22812:60;;-1:-1:-1;;;;;;22907:10:0;;22812:60;;22899:46;;;;22812:60;22907:10;22899:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22978:14:0;;22970:54;;22885:60;;-1:-1:-1;;;;;;22978:14:0;;23006:13;;22970:54;;;;23006:13;22978:14;22970:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23057:16:0;;23049:83;;22956:68;;-1:-1:-1;;;;;;23057:16:0;;23087;;23049:83;;;;23087:16;23057;23049:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;22472:668:0:o;15697:235::-;-1:-1:-1;;;;;15780:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;15780:39:0;;;;;;;15830:38;15780:31;:39;15830:25;:38::i;4552:651::-;-1:-1:-1;;;;;4692:20:0;;4684:70;;;;-1:-1:-1;;;4684:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4773:23:0;;4765:71;;;;-1:-1:-1;;;4765:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4873:17:0;;4849:21;4873:17;;;;;;;;;;;4923:23;;;;4901:111;;;;-1:-1:-1;;;4901:111:0;;17553:2:1;4901:111:0;;;17535:21:1;17592:2;17572:18;;;17565:30;17631:34;17611:18;;;17604:62;-1:-1:-1;;;17682:18:1;;;17675:36;17728:19;;4901:111:0;17351:402:1;4901:111:0;-1:-1:-1;;;;;5048:17:0;;;:9;:17;;;;;;;;;;;5068:22;;;5048:42;;5112:20;;;;;;;;:30;;5084:6;;5048:9;5112:30;;5084:6;;5112:30;:::i;:::-;;;;;;;;5177:9;-1:-1:-1;;;;;5160:35:0;5169:6;-1:-1:-1;;;;;5160:35:0;;5188:6;5160:35;;;;160:25:1;;148:2;133:18;;14:177;5160:35:0;;;;;;;;4673:530;4552:651;;;:::o;21893:571::-;22043:16;;;22057:1;22043:16;;;;;;;;22019:21;;22043:16;;;;;;;;;;-1:-1:-1;22043:16:0;22019:40;;22088:4;22070;22075:1;22070:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22070:23:0;;;:7;;;;;;;;;;:23;;;;22114:9;;:16;;;-1:-1:-1;;;22114:16:0;;;;:9;;;;;:14;;:16;;;;;22070:7;;22114:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22104:4;22109:1;22104:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22104:26:0;;;:7;;;;;;;;;:26;22175:9;;22143:56;;22160:4;;22175:9;22187:11;22143:8;:56::i;:::-;22238:9;;:218;;-1:-1:-1;;;22238:218:0;;-1:-1:-1;;;;;22238:9:0;;;;:60;;:218;;22313:11;;22238:9;;22383:4;;22410;;22430:15;;22238:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21948:516;21893:571;:::o;14907:220::-;-1:-1:-1;;;;;15008:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;15008:52:0;;;;;;;;;;15076:43;;18513:51:1;;;18580:18;;;18573:50;15076:43:0;;18486:18:1;15076:43:0;18345:284:1;196:180;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;381:548::-;493:4;522:2;551;540:9;533:21;583:6;577:13;626:6;621:2;610:9;606:18;599:34;651:1;661:140;675:6;672:1;669:13;661:140;;;770:14;;;766:23;;760:30;736:17;;;755:2;732:26;725:66;690:10;;661:140;;;665:3;850:1;845:2;836:6;825:9;821:22;817:31;810:42;920:2;913;909:7;904:2;896:6;892:15;888:29;877:9;873:45;869:54;861:62;;;;381:548;;;;:::o;1160:131::-;-1:-1:-1;;;;;1235:31:1;;1225:42;;1215:70;;1281:1;1278;1271:12;1215:70;1160:131;:::o;1296:315::-;1364:6;1372;1425:2;1413:9;1404:7;1400:23;1396:32;1393:52;;;1441:1;1438;1431:12;1393:52;1480:9;1467:23;1499:31;1524:5;1499:31;:::i;:::-;1549:5;1601:2;1586:18;;;;1573:32;;-1:-1:-1;;;1296:315:1:o;1808:247::-;1867:6;1920:2;1908:9;1899:7;1895:23;1891:32;1888:52;;;1936:1;1933;1926:12;1888:52;1975:9;1962:23;1994:31;2019:5;1994:31;:::i;:::-;2044:5;1808:247;-1:-1:-1;;;1808:247: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;2710:416::-;2775:6;2783;2836:2;2824:9;2815:7;2811:23;2807:32;2804:52;;;2852:1;2849;2842:12;2804:52;2891:9;2878:23;2910:31;2935:5;2910:31;:::i;:::-;2960:5;-1:-1:-1;3017:2:1;3002:18;;2989:32;3059:15;;3052:23;3040:36;;3030:64;;3090:1;3087;3080:12;3030:64;3113:7;3103:17;;;2710:416;;;;;:::o;3131:529::-;3208:6;3216;3224;3277:2;3265:9;3256:7;3252:23;3248:32;3245:52;;;3293:1;3290;3283:12;3245:52;3332:9;3319:23;3351:31;3376:5;3351:31;:::i;:::-;3401:5;-1:-1:-1;3458:2:1;3443:18;;3430:32;3471:33;3430:32;3471:33;:::i;:::-;3523:7;-1:-1:-1;3582:2:1;3567:18;;3554:32;3595:33;3554:32;3595:33;:::i;:::-;3647:7;3637:17;;;3131:529;;;;;:::o;3873:388::-;3941:6;3949;4002:2;3990:9;3981:7;3977:23;3973:32;3970:52;;;4018:1;4015;4008:12;3970:52;4057:9;4044:23;4076:31;4101:5;4076:31;:::i;:::-;4126:5;-1:-1:-1;4183:2:1;4168:18;;4155:32;4196:33;4155:32;4196:33;:::i;4266:316::-;4343:6;4351;4359;4412:2;4400:9;4391:7;4387:23;4383:32;4380:52;;;4428:1;4425;4418:12;4380:52;-1:-1:-1;;4451:23:1;;;4521:2;4506:18;;4493:32;;-1:-1:-1;4572:2:1;4557:18;;;4544:32;;4266:316;-1:-1:-1;4266:316:1:o;4587:356::-;4789:2;4771:21;;;4808:18;;;4801:30;4867:34;4862:2;4847:18;;4840:62;4934:2;4919:18;;4587:356::o;5560:251::-;5630:6;5683:2;5671:9;5662:7;5658:23;5654:32;5651:52;;;5699:1;5696;5689:12;5651:52;5731:9;5725:16;5750:31;5775:5;5750:31;:::i;5816:127::-;5877:10;5872:3;5868:20;5865:1;5858:31;5908:4;5905:1;5898:15;5932:4;5929:1;5922:15;5948:465;6001:3;6039:5;6033:12;6066:6;6061:3;6054:19;6092:4;6121;6116:3;6112:14;6105:21;;6160:4;6153:5;6149:16;6183:1;6193:195;6207:6;6204:1;6201:13;6193:195;;;6272:13;;-1:-1:-1;;;;;6268:39:1;6256:52;;6328:12;;;;6363:15;;;;6304:1;6222:9;6193:195;;;-1:-1:-1;6404:3:1;;5948:465;-1:-1:-1;;;;;5948:465:1:o;6418:510::-;6689:6;6678:9;6671:25;6732:3;6727:2;6716:9;6712:18;6705:31;6652:4;6753:57;6805:3;6794:9;6790:19;6782:6;6753:57;:::i;:::-;-1:-1:-1;;;;;6846:32:1;;;;6841:2;6826:18;;6819:60;-1:-1:-1;6910:2:1;6895:18;6888:34;6745:65;6418:510;-1:-1:-1;;6418:510:1:o;6933:380::-;7012:1;7008:12;;;;7055;;;7076:61;;7130:4;7122:6;7118:17;7108:27;;7076:61;7183:2;7175:6;7172:14;7152:18;7149:38;7146:161;;7229:10;7224:3;7220:20;7217:1;7210:31;7264:4;7261:1;7254:15;7292:4;7289:1;7282:15;7146:161;;6933:380;;;:::o;7671:127::-;7732:10;7727:3;7723:20;7720:1;7713:31;7763:4;7760:1;7753:15;7787:4;7784:1;7777:15;7803:168;7876:9;;;7907;;7924:15;;;7918:22;;7904:37;7894:71;;7945:18;;:::i;7976:217::-;8016:1;8042;8032:132;;8086:10;8081:3;8077:20;8074:1;8067:31;8121:4;8118:1;8111:15;8149:4;8146:1;8139:15;8032:132;-1:-1:-1;8178:9:1;;7976:217::o;9020:125::-;9085:9;;;9106:10;;;9103:36;;;9119:18;;:::i;13625:401::-;13827:2;13809:21;;;13866:2;13846:18;;;13839:30;13905:34;13900:2;13885:18;;13878:62;-1:-1:-1;;;13971:2:1;13956:18;;13949:35;14016:3;14001:19;;13625:401::o;14031:399::-;14233:2;14215:21;;;14272:2;14252:18;;;14245:30;14311:34;14306:2;14291:18;;14284:62;-1:-1:-1;;;14377:2:1;14362:18;;14355:33;14420:3;14405:19;;14031:399::o;15623:128::-;15690:9;;;15711:11;;;15708:37;;;15725:18;;:::i;17758:582::-;18057:6;18046:9;18039:25;18100:6;18095:2;18084:9;18080:18;18073:34;18143:3;18138:2;18127:9;18123:18;18116:31;18020:4;18164:57;18216:3;18205:9;18201:19;18193:6;18164:57;:::i;:::-;-1:-1:-1;;;;;18257:32:1;;;;18252:2;18237:18;;18230:60;-1:-1:-1;18321:3:1;18306:19;18299:35;18156:65;17758:582;-1:-1:-1;;;17758:582:1:o

Swarm Source

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