ETH Price: $2,507.44 (+4.31%)
 

Overview

Max Total Supply

1,000,000,000 XCEPT

Holders

1,024 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (-0.71%)

Onchain Market Cap

$386,710.00

Circulating Supply Market Cap

$387,662.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 XCEPT

Value
$0.00
0x80ed48db82e47cbb7bd44a711bb899ad4c5861c5
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
1
Uniswap V2 (Ethereum)
0XAC506C7DC601500E997CAD42EA446624ED40C743-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.0004
0.0000002 Eth
$945.51
2,406,090.091 0XAC506C7DC601500E997CAD42EA446624ED40C743
100.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
XCeption

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-24
*/

/**
XCEPT, XCeption

Website: https://xcepterc.app/
Telegram: https://t.me/XCeptionPortal
X: https://twitter.com/XCeption_bots
Linktree: https://linktr.ee/xceptionerc
Docs: https://xception.gitbook.io/
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

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

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

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

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

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

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

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

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

    string private constant _name = unicode"XCeption";
    string private constant _symbol = unicode"XCEPT";
    uint256 private constant _totalSupply = 1_000_000_000 * 1e18;

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(
        0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
    );
    address public immutable uniswapV2Pair;

    uint256 public maxTransactionAmount = 15_000_000 * 1e18;
    uint256 public maxWallet = 15_000_000 * 1e18;
    uint256 public swapTokensAtAmount = 500_000 * 1e18;

    bool private swapping;

    address public lpWallet;
    address public ecosystemWallet;
    address public devWallet;

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

    uint256 public buyEcosystemFee;
    uint256 public buyDevFee;
    uint256 public buyTotalFees;

    uint256 public sellEcosystemFee;
    uint256 public sellDevFee;
    uint256 public sellTotalFees;

    uint256 public tokensForEcosystem;
    uint256 public tokensForDev;

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

    mapping(address => bool) public automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        buyEcosystemFee = 2;
        buyDevFee = 3;
        buyTotalFees = buyEcosystemFee + buyDevFee;

        sellEcosystemFee = 1;
        sellDevFee = 2;
        sellTotalFees = sellEcosystemFee + sellDevFee;

        lpWallet = address(0x51F4313Fd32619b25006630293DA64A7af31f998);
        ecosystemWallet = address(0xD788fcD040DD0855a3Ef917b07F077C407aCaF50);
        devWallet = address(0x4E86bF11e7A095cE1053CC259f1ce37fE5ce0ee7);

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(lpWallet, true);
        excludeFromFees(ecosystemWallet, true);
        excludeFromFees(devWallet, true);
        excludeFromFees(address(0xa848578ac63827c40Df9bec99b4Faf4647840699), true);
        excludeFromFees(address(0xfF773fa0e78Cc0A385C9cCb17B96D3059E8252f2), true);
        excludeFromFees(address(0xAaEEb8e28E21238A0873CeAEd877e0A7fbF93CF6), true);
        excludeFromFees(address(0x03b5A93D36eeb2c6A144359E66f3706a295949d0), true);

        excludeFromMaxTransaction(address(uniswapV2Router), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(lpWallet, true);
        excludeFromMaxTransaction(ecosystemWallet, true);
        excludeFromMaxTransaction(devWallet, true);
        excludeFromMaxTransaction(address(0xa848578ac63827c40Df9bec99b4Faf4647840699), true);
        excludeFromMaxTransaction(address(0xfF773fa0e78Cc0A385C9cCb17B96D3059E8252f2), true);
        excludeFromMaxTransaction(address(0xAaEEb8e28E21238A0873CeAEd877e0A7fbF93CF6), true);
        excludeFromMaxTransaction(address(0x03b5A93D36eeb2c6A144359E66f3706a295949d0), true);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return 18;
    }

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

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

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

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function airdrop(address[] calldata recipients, uint256[] calldata amounts) external onlyOwner {
        require(airdropActive, 'Airdrop is not active');
        for (uint16 i = 0; i < recipients.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[recipients[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
        }
        airdropActive = false;
    }

    function enableTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

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

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 15) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 1.5%");
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 15) / 1000) / 1e18, "Cannot set maxWalletAmount lower than 1.5%");
        maxWallet = newNum * (10**18);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateBuyFees(uint256 _ecosystemFee, uint256 _devFee) external onlyOwner {
        require((_ecosystemFee + _devFee) <= 5, "Cannot set fee higher than 5%");
        buyEcosystemFee = _ecosystemFee;
        buyDevFee = _devFee;
        buyTotalFees = buyEcosystemFee + buyDevFee;
    }

    function updateSellFees(uint256 _ecosystemFee, uint256 _devFee) external onlyOwner {
        require((_ecosystemFee + _devFee) <= 5, "Cannot set fee higher than 5%");
        sellEcosystemFee = _ecosystemFee;
        sellDevFee = _devFee;
        sellTotalFees = sellEcosystemFee + sellDevFee;
    }

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

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

    function updateEcosystemWallet(address _ecosystemWallet) external onlyOwner {
        ecosystemWallet = _ecosystemWallet;
    }

    function updateDevWallet(address _devWallet) external onlyOwner {
        devWallet = _devWallet;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

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

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        bool takeFee = !swapping;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 100;
                tokensForEcosystem += fees * sellEcosystemFee / sellTotalFees;
                tokensForDev += fees * sellDevFee / sellTotalFees;
            }
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
                tokensForEcosystem += fees * buyEcosystemFee / buyTotalFees;
                tokensForDev += fees * buyDevFee / buyTotalFees;
            }

            amount -= fees;
        }

        if (limitsInEffect) {
            if (
                from != lpWallet &&
                to != lpWallet &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active");
                }

                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the max tx"
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the max tx"
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

            swapBack();

            swapping = false;
        }

        if (fees > 0) {
            unchecked {
                _balances[from] -= fees;
                _balances[address(this)] += fees;
            }
            emit Transfer(from, address(this), fees);
        }

        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 totalTokensFor = tokensForEcosystem + tokensForDev;
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = swapTokensAtAmount;

        if (contractBalance > swapTokensAtAmount * 20) {
            totalTokensToSwap = swapTokensAtAmount * 20;
        }

        swapTokensForEth(totalTokensToSwap);

        uint256 ethBalance = address(this).balance;
        uint256 ethForEcosystem = (ethBalance * tokensForEcosystem) / totalTokensFor;

        tokensForEcosystem = 0;
        tokensForDev = 0;

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

    function withdraw() external onlyOwner {
        uint256 balance = IERC20(address(this)).balanceOf(address(this));
        IERC20(address(this)).transfer(msg.sender, balance);
        payable(msg.sender).transfer(address(this).balance);
    }

    function withdrawToken(address _token, address _to) external onlyOwner {
        require(_token != address(0), "_token address cannot be 0");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        IERC20(_token).transfer(_to, _contractBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"airdropActive","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":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyEcosystemFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ecosystemWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellEcosystemFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"pure","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForEcosystem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ecosystemFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ecosystemWallet","type":"address"}],"name":"updateEcosystemWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ecosystemFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a0c685fa11e01ec6f00000060038190556004556969e10de76676d08000006005556008805463ffffffff60a01b191661010160a01b1790553480156200004a57600080fd5b50620000563362000544565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000cf9190620006b8565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000131573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001579190620006b8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cb9190620006b8565b6001600160a01b031660808190526000908152601360205260409020805460ff19166001179055600260098190556003600a8190556200020b91620006ea565b600b556001600c8190556002600d8190556200022791620006ea565b600e55600680547451f4313fd32619b25006630293da64a7af31f99800610100600160a81b0319909116179055600780546001600160a01b031990811673d788fcd040dd0855a3ef917b07f077c407acaf501790915560088054909116734e86bf11e7a095ce1053cc259f1ce37fe5ce0ee7179055620002bb620002b36000546001600160a01b031690565b600162000594565b620002c830600162000594565b620002d761dead600162000594565b600654620002f59061010090046001600160a01b0316600162000594565b6007546200030e906001600160a01b0316600162000594565b60085462000327906001600160a01b0316600162000594565b6200034873a848578ac63827c40df9bec99b4faf4647840699600162000594565b6200036973ff773fa0e78cc0a385c9ccb17b96d3059e8252f2600162000594565b6200038a73aaeeb8e28e21238a0873ceaed877e0a7fbf93cf6600162000594565b620003ab7303b5a93d36eeb2c6a144359e66f3706a295949d0600162000594565b620003cc737a250d5630b4cf539739df2c5dacb4c659f2488d600162000642565b608051620003dc90600162000642565b620003fb620003f36000546001600160a01b031690565b600162000642565b6200040830600162000642565b6200041761dead600162000642565b600654620004359061010090046001600160a01b0316600162000642565b6007546200044e906001600160a01b0316600162000642565b60085462000467906001600160a01b0316600162000642565b6200048873a848578ac63827c40df9bec99b4faf4647840699600162000642565b620004a973ff773fa0e78cc0a385c9ccb17b96d3059e8252f2600162000642565b620004ca73aaeeb8e28e21238a0873ceaed877e0a7fbf93cf6600162000642565b620004eb7303b5a93d36eeb2c6a144359e66f3706a295949d0600162000642565b3360008181526001602090815260408083206b033b2e3c9fd0803ce80000009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000712565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005e35760405162461bcd60e51b8152602060048201819052602482015260008051602062002f6983398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6000546001600160a01b031633146200068d5760405162461bcd60e51b8152602060048201819052602482015260008051602062002f698339815191526044820152606401620005da565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b600060208284031215620006cb57600080fd5b81516001600160a01b0381168114620006e357600080fd5b9392505050565b808201808211156200070c57634e487b7160e01b600052601160045260246000fd5b92915050565b60805161283462000735600039600081816104ea01526112a801526128346000f3fe6080604052600436106102cd5760003560e01c80637571336a11610175578063a9059cbb116100dc578063d257b34f11610095578063e2f456051161006f578063e2f456051461090a578063f186a68c14610920578063f2fde38b14610940578063f8b45b051461096057600080fd5b8063d257b34f1461088e578063d85ba063146108ae578063dd62ed3e146108c457600080fd5b8063a9059cbb146107d2578063b3135131146107f2578063b62496f514610808578063c024666814610838578063c18bc19514610858578063c8c8ebe41461087857600080fd5b806395d89b411161012e57806395d89b41146107215780639843eae31461074f5780639a7a23d6146107705780639c3b4fdc146107905780639fccce32146107a6578063a0d82dc5146107bc57600080fd5b80637571336a1461067857806380c54294146106985780638a8c523c146106ae5780638da5cb5b146106c35780638ea5220f146106e1578063924de9b71461070157600080fd5b8063435263ef1161023457806366ca9b83116101ed5780636ddd1713116101c75780636ddd1713146105f757806370a0823114610618578063715018a61461064e578063751039fc1461066357600080fd5b806366ca9b83146105a157806367243482146105c15780636a486a8e146105e157600080fd5b8063435263ef146104b857806349bd5a5e146104d85780634a62bb651461050c5780634c4cfc3b1461052d5780634fbee193146105435780636303516c1461057c57600080fd5b80631816467f116102865780631816467f14610407578063203e727e1461042757806323b872dd14610447578063313ce567146104675780633aeac4e1146104835780633ccfd60b146104a357600080fd5b806302dbd8f8146102d957806306fdde03146102fb578063095ea7b31461033e57806310d5de531461036e5780631694505e1461039e57806318160ddd146103de57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102f96102f436600461239a565b610976565b005b34801561030757600080fd5b506040805180820190915260088152672c21b2b83a34b7b760c11b60208201525b60405161033591906123bc565b60405180910390f35b34801561034a57600080fd5b5061035e61035936600461241f565b610a1e565b6040519015158152602001610335565b34801561037a57600080fd5b5061035e61038936600461244b565b60126020526000908152604090205460ff1681565b3480156103aa57600080fd5b506103c6737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610335565b3480156103ea57600080fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610335565b34801561041357600080fd5b506102f961042236600461244b565b610a35565b34801561043357600080fd5b506102f961044236600461246f565b610a81565b34801561045357600080fd5b5061035e610462366004612488565b610b61565b34801561047357600080fd5b5060405160128152602001610335565b34801561048f57600080fd5b506102f961049e3660046124c9565b610c12565b3480156104af57600080fd5b506102f9610d7a565b3480156104c457600080fd5b506007546103c6906001600160a01b031681565b3480156104e457600080fd5b506103c67f000000000000000000000000000000000000000000000000000000000000000081565b34801561051857600080fd5b5060085461035e90600160a01b900460ff1681565b34801561053957600080fd5b506103f9600f5481565b34801561054f57600080fd5b5061035e61055e36600461244b565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561058857600080fd5b506006546103c69061010090046001600160a01b031681565b3480156105ad57600080fd5b506102f96105bc36600461239a565b610ea2565b3480156105cd57600080fd5b506102f96105dc36600461254e565b610f41565b3480156105ed57600080fd5b506103f9600e5481565b34801561060357600080fd5b5060085461035e90600160b01b900460ff1681565b34801561062457600080fd5b506103f961063336600461244b565b6001600160a01b031660009081526001602052604090205490565b34801561065a57600080fd5b506102f961112a565b34801561066f57600080fd5b5061035e611160565b34801561068457600080fd5b506102f96106933660046125c8565b61119e565b3480156106a457600080fd5b506103f9600c5481565b3480156106ba57600080fd5b506102f96111f3565b3480156106cf57600080fd5b506000546001600160a01b03166103c6565b3480156106ed57600080fd5b506008546103c6906001600160a01b031681565b34801561070d57600080fd5b506102f961071c3660046125f6565b611234565b34801561072d57600080fd5b506040805180820190915260058152641610d1541560da1b6020820152610328565b34801561075b57600080fd5b5060085461035e90600160a81b900460ff1681565b34801561077c57600080fd5b506102f961078b3660046125c8565b61127c565b34801561079c57600080fd5b506103f9600a5481565b3480156107b257600080fd5b506103f960105481565b3480156107c857600080fd5b506103f9600d5481565b3480156107de57600080fd5b5061035e6107ed36600461241f565b61137b565b3480156107fe57600080fd5b506103f960095481565b34801561081457600080fd5b5061035e61082336600461244b565b60136020526000908152604090205460ff1681565b34801561084457600080fd5b506102f96108533660046125c8565b611388565b34801561086457600080fd5b506102f961087336600461246f565b611411565b34801561088457600080fd5b506103f960035481565b34801561089a57600080fd5b5061035e6108a936600461246f565b6114ec565b3480156108ba57600080fd5b506103f9600b5481565b3480156108d057600080fd5b506103f96108df3660046124c9565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561091657600080fd5b506103f960055481565b34801561092c57600080fd5b506102f961093b36600461244b565b611642565b34801561094c57600080fd5b506102f961095b36600461244b565b61168e565b34801561096c57600080fd5b506103f960045481565b6000546001600160a01b031633146109a95760405162461bcd60e51b81526004016109a090612613565b60405180910390fd5b60056109b5828461265e565b1115610a035760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207365742066656520686967686572207468616e20352500000060448201526064016109a0565b600c829055600d819055610a17818361265e565b600e555050565b6000610a2b338484611729565b5060015b92915050565b6000546001600160a01b03163314610a5f5760405162461bcd60e51b81526004016109a090612613565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610aab5760405162461bcd60e51b81526004016109a090612613565b670de0b6b3a76400006103e8610ace6b033b2e3c9fd0803ce8000000600f612671565b610ad89190612688565b610ae29190612688565b811015610b495760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20312e352560881b60648201526084016109a0565b610b5b81670de0b6b3a7640000612671565b60035550565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610bfc5782811015610bef5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109a0565b610bfc8533858403611729565b610c0785858561184d565b506001949350505050565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b81526004016109a090612613565b6001600160a01b038216610c925760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064016109a0565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd91906126aa565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7491906126c3565b50505050565b6000546001600160a01b03163314610da45760405162461bcd60e51b81526004016109a090612613565b6040516370a0823160e01b815230600482018190526000916370a0823190602401602060405180830381865afa158015610de2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0691906126aa565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303816000875af1158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7191906126c3565b5060405133904780156108fc02916000818181858888f19350505050158015610e9e573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610ecc5760405162461bcd60e51b81526004016109a090612613565b6005610ed8828461265e565b1115610f265760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207365742066656520686967686572207468616e20352500000060448201526064016109a0565b6009829055600a819055610f3a818361265e565b600b555050565b6000546001600160a01b03163314610f6b5760405162461bcd60e51b81526004016109a090612613565b600854600160a81b900460ff16610fbc5760405162461bcd60e51b815260206004820152601560248201527441697264726f70206973206e6f742061637469766560581b60448201526064016109a0565b60005b61ffff81168411156111165782828261ffff16818110610fe157610fe16126e0565b9050602002013560016000336001600160a01b03166001600160a01b0316815260200190815260200160002054101561102c5760405162461bcd60e51b81526004016109a0906126f6565b82828261ffff16818110611042576110426126e0565b905060200201356001600087878561ffff16818110611063576110636126e0565b9050602002016020810190611078919061244b565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110a7919061265e565b909155508390508261ffff83168181106110c3576110c36126e0565b9050602002013560016000336001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110fe919061273c565b9091555081905061110e8161274f565b915050610fbf565b50506008805460ff60a81b19169055505050565b6000546001600160a01b031633146111545760405162461bcd60e51b81526004016109a090612613565b61115e6000612082565b565b600080546001600160a01b0316331461118b5760405162461bcd60e51b81526004016109a090612613565b506008805460ff60a01b19169055600190565b6000546001600160a01b031633146111c85760405162461bcd60e51b81526004016109a090612613565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461121d5760405162461bcd60e51b81526004016109a090612613565b6008805461ffff60b01b191661010160b01b179055565b6000546001600160a01b0316331461125e5760405162461bcd60e51b81526004016109a090612613565b60088054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b031633146112a65760405162461bcd60e51b81526004016109a090612613565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036113275760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016109a0565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6000610a2b33848461184d565b6000546001600160a01b031633146113b25760405162461bcd60e51b81526004016109a090612613565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6000546001600160a01b0316331461143b5760405162461bcd60e51b81526004016109a090612613565b670de0b6b3a76400006103e861145e6b033b2e3c9fd0803ce8000000600f612671565b6114689190612688565b6114729190612688565b8110156114d45760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f776572604482015269207468616e20312e352560b01b60648201526084016109a0565b6114e681670de0b6b3a7640000612671565b60045550565b600080546001600160a01b031633146115175760405162461bcd60e51b81526004016109a090612613565b620186a06115326b033b2e3c9fd0803ce80000006001612671565b61153c9190612688565b8210156115a95760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109a0565b6103e86115c36b033b2e3c9fd0803ce80000006005612671565b6115cd9190612688565b8211156116395760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109a0565b50600555600190565b6000546001600160a01b0316331461166c5760405162461bcd60e51b81526004016109a090612613565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146116b85760405162461bcd60e51b81526004016109a090612613565b6001600160a01b03811661171d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a0565b61172681612082565b50565b6001600160a01b03831661178b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109a0565b6001600160a01b0382166117ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109a0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118b15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109a0565b6001600160a01b0382166119135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109a0565b600081116119755760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109a0565b6001600160a01b038316600090815260016020526040902054818110156119ae5760405162461bcd60e51b81526004016109a0906126f6565b6006546001600160a01b03851660009081526011602052604090205460ff918216159116806119f557506001600160a01b03841660009081526011602052604090205460ff165b156119fe575060005b60008115611b72576001600160a01b03851660009081526013602052604090205460ff168015611a3057506000600e54115b15611ab8576064600e5485611a459190612671565b611a4f9190612688565b9050600e54600c5482611a629190612671565b611a6c9190612688565b600f6000828254611a7d919061265e565b9091555050600e54600d54611a929083612671565b611a9c9190612688565b60106000828254611aad919061265e565b90915550611b659050565b6001600160a01b03861660009081526013602052604090205460ff168015611ae257506000600b54115b15611b65576064600b5485611af79190612671565b611b019190612688565b9050600b5460095482611b149190612671565b611b1e9190612688565b600f6000828254611b2f919061265e565b9091555050600b54600a54611b449083612671565b611b4e9190612688565b60106000828254611b5f919061265e565b90915550505b611b6f818561273c565b93505b600854600160a01b900460ff1615611ed5576006546001600160a01b038781166101009092041614801590611bba57506006546001600160a01b038681166101009092041614155b8015611bce57506001600160a01b03851615155b8015611be557506001600160a01b03851661dead14155b8015611bf4575060065460ff16155b15611ed557600854600160b81b900460ff16611c8d576001600160a01b03861660009081526011602052604090205460ff1680611c4957506001600160a01b03851660009081526011602052604090205460ff165b611c8d5760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b60448201526064016109a0565b6001600160a01b03861660009081526013602052604090205460ff168015611cce57506001600160a01b03851660009081526012602052604090205460ff16155b15611da357600354841115611d345760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152650dac2f040e8f60d31b60648201526084016109a0565b6004546001600160a01b038616600090815260016020526040902054611d5a908661265e565b1115611d9e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109a0565b611ed5565b6001600160a01b03851660009081526013602052604090205460ff168015611de457506001600160a01b03861660009081526012602052604090205460ff16155b15611e4b57600354841115611d9e5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266040dac2f040e8f60cb1b60648201526084016109a0565b6001600160a01b03851660009081526012602052604090205460ff16611ed5576004546001600160a01b038616600090815260016020526040902054611e91908661265e565b1115611ed55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109a0565b3060009081526001602052604090205460055481108015908190611f025750600854600160b01b900460ff165b8015611f11575060065460ff16155b8015611f3657506001600160a01b03881660009081526013602052604090205460ff16155b8015611f5b57506001600160a01b03881660009081526011602052604090205460ff16155b8015611f8057506001600160a01b03871660009081526011602052604090205460ff16155b15611fa5576006805460ff19166001179055611f9a6120d2565b6006805460ff191690555b821561200e576001600160a01b0388166000818152600160209081526040808320805488900390553080845292819020805488019055518681529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b0380891660008181526001602052604080822080548b90039055928a168082529083902080548a01905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612070908a815260200190565b60405180910390a35050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000601054600f546120e4919061265e565b3060009081526001602052604090205460055491925090612106816014612671565b82111561211e5760055461211b906014612671565b90505b61212781612207565b600f544790600090859061213b9084612671565b6121459190612688565b6000600f819055601081905560075460405192935090916001600160a01b039091169083908381818185875af1925050503d80600081146121a2576040519150601f19603f3d011682016040523d82523d6000602084013e6121a7565b606091505b50506008546040519192506001600160a01b0316904790600081818185875af1925050503d80600081146121f7576040519150601f19603f3d011682016040523d82523d6000602084013e6121fc565b606091505b505050505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061223c5761223c6126e0565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d29190612770565b816001815181106122e5576122e56126e0565b60200260200101906001600160a01b031690816001600160a01b03168152505061232430737a250d5630b4cf539739df2c5dacb4c659f2488d84611729565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061236490859060009086903090429060040161278d565b600060405180830381600087803b15801561237e57600080fd5b505af1158015612392573d6000803e3d6000fd5b505050505050565b600080604083850312156123ad57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156123e9578581018301518582016040015282016123cd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461172657600080fd5b6000806040838503121561243257600080fd5b823561243d8161240a565b946020939093013593505050565b60006020828403121561245d57600080fd5b81356124688161240a565b9392505050565b60006020828403121561248157600080fd5b5035919050565b60008060006060848603121561249d57600080fd5b83356124a88161240a565b925060208401356124b88161240a565b929592945050506040919091013590565b600080604083850312156124dc57600080fd5b82356124e78161240a565b915060208301356124f78161240a565b809150509250929050565b60008083601f84011261251457600080fd5b50813567ffffffffffffffff81111561252c57600080fd5b6020830191508360208260051b850101111561254757600080fd5b9250929050565b6000806000806040858703121561256457600080fd5b843567ffffffffffffffff8082111561257c57600080fd5b61258888838901612502565b909650945060208701359150808211156125a157600080fd5b506125ae87828801612502565b95989497509550505050565b801515811461172657600080fd5b600080604083850312156125db57600080fd5b82356125e68161240a565b915060208301356124f7816125ba565b60006020828403121561260857600080fd5b8135612468816125ba565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a2f57610a2f612648565b8082028115828204841417610a2f57610a2f612648565b6000826126a557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156126bc57600080fd5b5051919050565b6000602082840312156126d557600080fd5b8151612468816125ba565b634e487b7160e01b600052603260045260246000fd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b81810381811115610a2f57610a2f612648565b600061ffff80831681810361276657612766612648565b6001019392505050565b60006020828403121561278257600080fd5b81516124688161240a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127dd5784516001600160a01b0316835293830193918301916001016127b8565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a1b5172b72154ea56472d7c05f78a6bc9badb41495c3eaf27da0b1a94adf3a7164736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c80637571336a11610175578063a9059cbb116100dc578063d257b34f11610095578063e2f456051161006f578063e2f456051461090a578063f186a68c14610920578063f2fde38b14610940578063f8b45b051461096057600080fd5b8063d257b34f1461088e578063d85ba063146108ae578063dd62ed3e146108c457600080fd5b8063a9059cbb146107d2578063b3135131146107f2578063b62496f514610808578063c024666814610838578063c18bc19514610858578063c8c8ebe41461087857600080fd5b806395d89b411161012e57806395d89b41146107215780639843eae31461074f5780639a7a23d6146107705780639c3b4fdc146107905780639fccce32146107a6578063a0d82dc5146107bc57600080fd5b80637571336a1461067857806380c54294146106985780638a8c523c146106ae5780638da5cb5b146106c35780638ea5220f146106e1578063924de9b71461070157600080fd5b8063435263ef1161023457806366ca9b83116101ed5780636ddd1713116101c75780636ddd1713146105f757806370a0823114610618578063715018a61461064e578063751039fc1461066357600080fd5b806366ca9b83146105a157806367243482146105c15780636a486a8e146105e157600080fd5b8063435263ef146104b857806349bd5a5e146104d85780634a62bb651461050c5780634c4cfc3b1461052d5780634fbee193146105435780636303516c1461057c57600080fd5b80631816467f116102865780631816467f14610407578063203e727e1461042757806323b872dd14610447578063313ce567146104675780633aeac4e1146104835780633ccfd60b146104a357600080fd5b806302dbd8f8146102d957806306fdde03146102fb578063095ea7b31461033e57806310d5de531461036e5780631694505e1461039e57806318160ddd146103de57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102f96102f436600461239a565b610976565b005b34801561030757600080fd5b506040805180820190915260088152672c21b2b83a34b7b760c11b60208201525b60405161033591906123bc565b60405180910390f35b34801561034a57600080fd5b5061035e61035936600461241f565b610a1e565b6040519015158152602001610335565b34801561037a57600080fd5b5061035e61038936600461244b565b60126020526000908152604090205460ff1681565b3480156103aa57600080fd5b506103c6737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610335565b3480156103ea57600080fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610335565b34801561041357600080fd5b506102f961042236600461244b565b610a35565b34801561043357600080fd5b506102f961044236600461246f565b610a81565b34801561045357600080fd5b5061035e610462366004612488565b610b61565b34801561047357600080fd5b5060405160128152602001610335565b34801561048f57600080fd5b506102f961049e3660046124c9565b610c12565b3480156104af57600080fd5b506102f9610d7a565b3480156104c457600080fd5b506007546103c6906001600160a01b031681565b3480156104e457600080fd5b506103c67f00000000000000000000000009bb53a24b90af4cef966a5acf38bafae65fee8e81565b34801561051857600080fd5b5060085461035e90600160a01b900460ff1681565b34801561053957600080fd5b506103f9600f5481565b34801561054f57600080fd5b5061035e61055e36600461244b565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561058857600080fd5b506006546103c69061010090046001600160a01b031681565b3480156105ad57600080fd5b506102f96105bc36600461239a565b610ea2565b3480156105cd57600080fd5b506102f96105dc36600461254e565b610f41565b3480156105ed57600080fd5b506103f9600e5481565b34801561060357600080fd5b5060085461035e90600160b01b900460ff1681565b34801561062457600080fd5b506103f961063336600461244b565b6001600160a01b031660009081526001602052604090205490565b34801561065a57600080fd5b506102f961112a565b34801561066f57600080fd5b5061035e611160565b34801561068457600080fd5b506102f96106933660046125c8565b61119e565b3480156106a457600080fd5b506103f9600c5481565b3480156106ba57600080fd5b506102f96111f3565b3480156106cf57600080fd5b506000546001600160a01b03166103c6565b3480156106ed57600080fd5b506008546103c6906001600160a01b031681565b34801561070d57600080fd5b506102f961071c3660046125f6565b611234565b34801561072d57600080fd5b506040805180820190915260058152641610d1541560da1b6020820152610328565b34801561075b57600080fd5b5060085461035e90600160a81b900460ff1681565b34801561077c57600080fd5b506102f961078b3660046125c8565b61127c565b34801561079c57600080fd5b506103f9600a5481565b3480156107b257600080fd5b506103f960105481565b3480156107c857600080fd5b506103f9600d5481565b3480156107de57600080fd5b5061035e6107ed36600461241f565b61137b565b3480156107fe57600080fd5b506103f960095481565b34801561081457600080fd5b5061035e61082336600461244b565b60136020526000908152604090205460ff1681565b34801561084457600080fd5b506102f96108533660046125c8565b611388565b34801561086457600080fd5b506102f961087336600461246f565b611411565b34801561088457600080fd5b506103f960035481565b34801561089a57600080fd5b5061035e6108a936600461246f565b6114ec565b3480156108ba57600080fd5b506103f9600b5481565b3480156108d057600080fd5b506103f96108df3660046124c9565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561091657600080fd5b506103f960055481565b34801561092c57600080fd5b506102f961093b36600461244b565b611642565b34801561094c57600080fd5b506102f961095b36600461244b565b61168e565b34801561096c57600080fd5b506103f960045481565b6000546001600160a01b031633146109a95760405162461bcd60e51b81526004016109a090612613565b60405180910390fd5b60056109b5828461265e565b1115610a035760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207365742066656520686967686572207468616e20352500000060448201526064016109a0565b600c829055600d819055610a17818361265e565b600e555050565b6000610a2b338484611729565b5060015b92915050565b6000546001600160a01b03163314610a5f5760405162461bcd60e51b81526004016109a090612613565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610aab5760405162461bcd60e51b81526004016109a090612613565b670de0b6b3a76400006103e8610ace6b033b2e3c9fd0803ce8000000600f612671565b610ad89190612688565b610ae29190612688565b811015610b495760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20312e352560881b60648201526084016109a0565b610b5b81670de0b6b3a7640000612671565b60035550565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610bfc5782811015610bef5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109a0565b610bfc8533858403611729565b610c0785858561184d565b506001949350505050565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b81526004016109a090612613565b6001600160a01b038216610c925760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064016109a0565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd91906126aa565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7491906126c3565b50505050565b6000546001600160a01b03163314610da45760405162461bcd60e51b81526004016109a090612613565b6040516370a0823160e01b815230600482018190526000916370a0823190602401602060405180830381865afa158015610de2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0691906126aa565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303816000875af1158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7191906126c3565b5060405133904780156108fc02916000818181858888f19350505050158015610e9e573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610ecc5760405162461bcd60e51b81526004016109a090612613565b6005610ed8828461265e565b1115610f265760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207365742066656520686967686572207468616e20352500000060448201526064016109a0565b6009829055600a819055610f3a818361265e565b600b555050565b6000546001600160a01b03163314610f6b5760405162461bcd60e51b81526004016109a090612613565b600854600160a81b900460ff16610fbc5760405162461bcd60e51b815260206004820152601560248201527441697264726f70206973206e6f742061637469766560581b60448201526064016109a0565b60005b61ffff81168411156111165782828261ffff16818110610fe157610fe16126e0565b9050602002013560016000336001600160a01b03166001600160a01b0316815260200190815260200160002054101561102c5760405162461bcd60e51b81526004016109a0906126f6565b82828261ffff16818110611042576110426126e0565b905060200201356001600087878561ffff16818110611063576110636126e0565b9050602002016020810190611078919061244b565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110a7919061265e565b909155508390508261ffff83168181106110c3576110c36126e0565b9050602002013560016000336001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110fe919061273c565b9091555081905061110e8161274f565b915050610fbf565b50506008805460ff60a81b19169055505050565b6000546001600160a01b031633146111545760405162461bcd60e51b81526004016109a090612613565b61115e6000612082565b565b600080546001600160a01b0316331461118b5760405162461bcd60e51b81526004016109a090612613565b506008805460ff60a01b19169055600190565b6000546001600160a01b031633146111c85760405162461bcd60e51b81526004016109a090612613565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461121d5760405162461bcd60e51b81526004016109a090612613565b6008805461ffff60b01b191661010160b01b179055565b6000546001600160a01b0316331461125e5760405162461bcd60e51b81526004016109a090612613565b60088054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b031633146112a65760405162461bcd60e51b81526004016109a090612613565b7f00000000000000000000000009bb53a24b90af4cef966a5acf38bafae65fee8e6001600160a01b0316826001600160a01b0316036113275760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016109a0565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6000610a2b33848461184d565b6000546001600160a01b031633146113b25760405162461bcd60e51b81526004016109a090612613565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6000546001600160a01b0316331461143b5760405162461bcd60e51b81526004016109a090612613565b670de0b6b3a76400006103e861145e6b033b2e3c9fd0803ce8000000600f612671565b6114689190612688565b6114729190612688565b8110156114d45760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f776572604482015269207468616e20312e352560b01b60648201526084016109a0565b6114e681670de0b6b3a7640000612671565b60045550565b600080546001600160a01b031633146115175760405162461bcd60e51b81526004016109a090612613565b620186a06115326b033b2e3c9fd0803ce80000006001612671565b61153c9190612688565b8210156115a95760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109a0565b6103e86115c36b033b2e3c9fd0803ce80000006005612671565b6115cd9190612688565b8211156116395760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109a0565b50600555600190565b6000546001600160a01b0316331461166c5760405162461bcd60e51b81526004016109a090612613565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146116b85760405162461bcd60e51b81526004016109a090612613565b6001600160a01b03811661171d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a0565b61172681612082565b50565b6001600160a01b03831661178b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109a0565b6001600160a01b0382166117ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109a0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118b15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109a0565b6001600160a01b0382166119135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109a0565b600081116119755760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109a0565b6001600160a01b038316600090815260016020526040902054818110156119ae5760405162461bcd60e51b81526004016109a0906126f6565b6006546001600160a01b03851660009081526011602052604090205460ff918216159116806119f557506001600160a01b03841660009081526011602052604090205460ff165b156119fe575060005b60008115611b72576001600160a01b03851660009081526013602052604090205460ff168015611a3057506000600e54115b15611ab8576064600e5485611a459190612671565b611a4f9190612688565b9050600e54600c5482611a629190612671565b611a6c9190612688565b600f6000828254611a7d919061265e565b9091555050600e54600d54611a929083612671565b611a9c9190612688565b60106000828254611aad919061265e565b90915550611b659050565b6001600160a01b03861660009081526013602052604090205460ff168015611ae257506000600b54115b15611b65576064600b5485611af79190612671565b611b019190612688565b9050600b5460095482611b149190612671565b611b1e9190612688565b600f6000828254611b2f919061265e565b9091555050600b54600a54611b449083612671565b611b4e9190612688565b60106000828254611b5f919061265e565b90915550505b611b6f818561273c565b93505b600854600160a01b900460ff1615611ed5576006546001600160a01b038781166101009092041614801590611bba57506006546001600160a01b038681166101009092041614155b8015611bce57506001600160a01b03851615155b8015611be557506001600160a01b03851661dead14155b8015611bf4575060065460ff16155b15611ed557600854600160b81b900460ff16611c8d576001600160a01b03861660009081526011602052604090205460ff1680611c4957506001600160a01b03851660009081526011602052604090205460ff165b611c8d5760405162461bcd60e51b815260206004820152601560248201527454726164696e67206973206e6f742061637469766560581b60448201526064016109a0565b6001600160a01b03861660009081526013602052604090205460ff168015611cce57506001600160a01b03851660009081526012602052604090205460ff16155b15611da357600354841115611d345760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152650dac2f040e8f60d31b60648201526084016109a0565b6004546001600160a01b038616600090815260016020526040902054611d5a908661265e565b1115611d9e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109a0565b611ed5565b6001600160a01b03851660009081526013602052604090205460ff168015611de457506001600160a01b03861660009081526012602052604090205460ff16155b15611e4b57600354841115611d9e5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015266040dac2f040e8f60cb1b60648201526084016109a0565b6001600160a01b03851660009081526012602052604090205460ff16611ed5576004546001600160a01b038616600090815260016020526040902054611e91908661265e565b1115611ed55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109a0565b3060009081526001602052604090205460055481108015908190611f025750600854600160b01b900460ff165b8015611f11575060065460ff16155b8015611f3657506001600160a01b03881660009081526013602052604090205460ff16155b8015611f5b57506001600160a01b03881660009081526011602052604090205460ff16155b8015611f8057506001600160a01b03871660009081526011602052604090205460ff16155b15611fa5576006805460ff19166001179055611f9a6120d2565b6006805460ff191690555b821561200e576001600160a01b0388166000818152600160209081526040808320805488900390553080845292819020805488019055518681529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b0380891660008181526001602052604080822080548b90039055928a168082529083902080548a01905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612070908a815260200190565b60405180910390a35050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000601054600f546120e4919061265e565b3060009081526001602052604090205460055491925090612106816014612671565b82111561211e5760055461211b906014612671565b90505b61212781612207565b600f544790600090859061213b9084612671565b6121459190612688565b6000600f819055601081905560075460405192935090916001600160a01b039091169083908381818185875af1925050503d80600081146121a2576040519150601f19603f3d011682016040523d82523d6000602084013e6121a7565b606091505b50506008546040519192506001600160a01b0316904790600081818185875af1925050503d80600081146121f7576040519150601f19603f3d011682016040523d82523d6000602084013e6121fc565b606091505b505050505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061223c5761223c6126e0565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d29190612770565b816001815181106122e5576122e56126e0565b60200260200101906001600160a01b031690816001600160a01b03168152505061232430737a250d5630b4cf539739df2c5dacb4c659f2488d84611729565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061236490859060009086903090429060040161278d565b600060405180830381600087803b15801561237e57600080fd5b505af1158015612392573d6000803e3d6000fd5b505050505050565b600080604083850312156123ad57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156123e9578581018301518582016040015282016123cd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461172657600080fd5b6000806040838503121561243257600080fd5b823561243d8161240a565b946020939093013593505050565b60006020828403121561245d57600080fd5b81356124688161240a565b9392505050565b60006020828403121561248157600080fd5b5035919050565b60008060006060848603121561249d57600080fd5b83356124a88161240a565b925060208401356124b88161240a565b929592945050506040919091013590565b600080604083850312156124dc57600080fd5b82356124e78161240a565b915060208301356124f78161240a565b809150509250929050565b60008083601f84011261251457600080fd5b50813567ffffffffffffffff81111561252c57600080fd5b6020830191508360208260051b850101111561254757600080fd5b9250929050565b6000806000806040858703121561256457600080fd5b843567ffffffffffffffff8082111561257c57600080fd5b61258888838901612502565b909650945060208701359150808211156125a157600080fd5b506125ae87828801612502565b95989497509550505050565b801515811461172657600080fd5b600080604083850312156125db57600080fd5b82356125e68161240a565b915060208301356124f7816125ba565b60006020828403121561260857600080fd5b8135612468816125ba565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a2f57610a2f612648565b8082028115828204841417610a2f57610a2f612648565b6000826126a557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156126bc57600080fd5b5051919050565b6000602082840312156126d557600080fd5b8151612468816125ba565b634e487b7160e01b600052603260045260246000fd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b81810381811115610a2f57610a2f612648565b600061ffff80831681810361276657612766612648565b6001019392505050565b60006020828403121561278257600080fd5b81516124688161240a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127dd5784516001600160a01b0316835293830193918301916001016127b8565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a1b5172b72154ea56472d7c05f78a6bc9badb41495c3eaf27da0b1a94adf3a7164736f6c63430008130033

Deployed Bytecode Sourcemap

9047:14564:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17053:304;;;;;;;;;;-1:-1:-1;17053:304:0;;;;;:::i;:::-;;:::i;:::-;;13050:83;;;;;;;;;;-1:-1:-1;13120:5:0;;;;;;;;;;;;-1:-1:-1;;;13120:5:0;;;;13050:83;;;;;;;:::i;:::-;;;;;;;;13679:152;;;;;;;;;;-1:-1:-1;13679:152:0;;;;;:::i;:::-;;:::i;:::-;;;1441:14:1;;1434:22;1416:41;;1404:2;1389:18;13679:152:0;1276:187:1;10417:63:0;;;;;;;;;;-1:-1:-1;10417:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9424:131;;;;;;;;;;;;9506:42;9424:131;;;;;-1:-1:-1;;;;;1910:32:1;;;1892:51;;1880:2;1865:18;9424:131:0;1720:229:1;13320:91:0;;;;;;;;;;-1:-1:-1;9395:20:0;13320:91;;;2100:25:1;;;2088:2;2073:18;13320:91:0;1954:177:1;17967:105:0;;;;;;;;;;-1:-1:-1;17967:105:0;;;;;:::i;:::-;;:::i;16006:239::-;;;;;;;;;;-1:-1:-1;16006:239:0;;;;;:::i;:::-;;:::i;14350:520::-;;;;;;;;;;-1:-1:-1;14350:520:0;;;;;:::i;:::-;;:::i;13236:76::-;;;;;;;;;;-1:-1:-1;13236:76:0;;13302:2;2924:36:1;;2912:2;2897:18;13236:76:0;2782:184:1;23325:283:0;;;;;;;;;;-1:-1:-1;23325:283:0;;;;;:::i;:::-;;:::i;23071:246::-;;;;;;;;;;;;;:::i;9841:30::-;;;;;;;;;;-1:-1:-1;9841:30:0;;;;-1:-1:-1;;;;;9841:30:0;;;9562:38;;;;;;;;;;;;;;;9911:33;;;;;;;;;;-1:-1:-1;9911:33:0;;;;-1:-1:-1;;;9911:33:0;;;;;;10282;;;;;;;;;;;;;;;;18080:126;;;;;;;;;;-1:-1:-1;18080:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18170:28:0;18146:4;18170:28;;;:19;:28;;;;;;;;;18080:126;9811:23;;;;;;;;;;-1:-1:-1;9811:23:0;;;;;;;-1:-1:-1;;;;;9811:23:0;;;16747:298;;;;;;;;;;-1:-1:-1;16747:298:0;;;;;:::i;:::-;;:::i;14878:466::-;;;;;;;;;;-1:-1:-1;14878:466:0;;;;;:::i;:::-;;:::i;10245:28::-;;;;;;;;;;;;;;;;9990:31;;;;;;;;;;-1:-1:-1;9990:31:0;;;;-1:-1:-1;;;9990:31:0;;;;;;13419:110;;;;;;;;;;-1:-1:-1;13419:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;13503:18:0;13476:7;13503:18;;;:9;:18;;;;;;;13419:110;2601:103;;;;;;;;;;;;;:::i;15472:121::-;;;;;;;;;;;;;:::i;16487:144::-;;;;;;;;;;-1:-1:-1;16487:144:0;;;;;:::i;:::-;;:::i;10175:31::-;;;;;;;;;;;;;;;;15352:112;;;;;;;;;;;;;:::i;1950:87::-;;;;;;;;;;-1:-1:-1;1996:7:0;2023:6;-1:-1:-1;;;;;2023:6:0;1950:87;;9878:24;;;;;;;;;;-1:-1:-1;9878:24:0;;;;-1:-1:-1;;;;;9878:24:0;;;16639:100;;;;;;;;;;-1:-1:-1;16639:100:0;;;;;:::i;:::-;;:::i;13141:87::-;;;;;;;;;;-1:-1:-1;13213:7:0;;;;;;;;;;;;-1:-1:-1;;;13213:7:0;;;;13141:87;;9951:32;;;;;;;;;;-1:-1:-1;9951:32:0;;;;-1:-1:-1;;;9951:32:0;;;;;;17555:267;;;;;;;;;;-1:-1:-1;17555:267:0;;;;;:::i;:::-;;:::i;10108:24::-;;;;;;;;;;;;;;;;10322:27;;;;;;;;;;;;;;;;10213:25;;;;;;;;;;;;;;;;14184:158;;;;;;;;;;-1:-1:-1;14184:158:0;;;;;:::i;:::-;;:::i;10071:30::-;;;;;;;;;;;;;;;;10489:57;;;;;;;;;;-1:-1:-1;10489:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17365:182;;;;;;;;;;-1:-1:-1;17365:182:0;;;;;:::i;:::-;;:::i;16253:226::-;;;;;;;;;;-1:-1:-1;16253:226:0;;;;;:::i;:::-;;:::i;9609:55::-;;;;;;;;;;;;;;;;15601:397;;;;;;;;;;-1:-1:-1;15601:397:0;;;;;:::i;:::-;;:::i;10139:27::-;;;;;;;;;;;;;;;;13537:134;;;;;;;;;;-1:-1:-1;13537:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;13636:18:0;;;13609:7;13636:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13537:134;9722:50;;;;;;;;;;;;;;;;17830:129;;;;;;;;;;-1:-1:-1;17830:129:0;;;;;:::i;:::-;;:::i;2859:201::-;;;;;;;;;;-1:-1:-1;2859:201:0;;;;;:::i;:::-;;:::i;9671:44::-;;;;;;;;;;;;;;;;17053:304;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;;;;;;;;;17184:1:::1;17156:23;17172:7:::0;17156:13;:23:::1;:::i;:::-;17155:30;;17147:72;;;::::0;-1:-1:-1;;;17147:72:0;;6303:2:1;17147:72:0::1;::::0;::::1;6285:21:1::0;6342:2;6322:18;;;6315:30;6381:31;6361:18;;;6354:59;6430:18;;17147:72:0::1;6101:353:1::0;17147:72:0::1;17230:16;:32:::0;;;17273:10:::1;:20:::0;;;17320:29:::1;17286:7:::0;17249:13;17320:29:::1;:::i;:::-;17304:13;:45:::0;-1:-1:-1;;17053:304:0:o;13679:152::-;13747:4;13764:37;13773:10;13785:7;13794:6;13764:8;:37::i;:::-;-1:-1:-1;13819:4:0;13679:152;;;;;:::o;17967:105::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;18042:9:::1;:22:::0;;-1:-1:-1;;;;;;18042:22:0::1;-1:-1:-1::0;;;;;18042:22:0;;;::::1;::::0;;;::::1;::::0;;17967:105::o;16006:239::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;16130:4:::1;16122;16100:18;9395:20:::0;16116:2:::1;16100:18;:::i;:::-;16099:27;;;;:::i;:::-;16098:36;;;;:::i;:::-;16088:6;:46;;16080:106;;;::::0;-1:-1:-1;;;16080:106:0;;7056:2:1;16080:106:0::1;::::0;::::1;7038:21:1::0;7095:2;7075:18;;;7068:30;7134:34;7114:18;;;7107:62;-1:-1:-1;;;7185:18:1;;;7178:45;7240:19;;16080:106:0::1;6854:411:1::0;16080:106:0::1;16220:17;:6:::0;16230::::1;16220:17;:::i;:::-;16197:20;:40:::0;-1:-1:-1;16006:239:0:o;14350:520::-;-1:-1:-1;;;;;14485:19:0;;14441:4;14485:19;;;:11;:19;;;;;;;;14505:10;14485:31;;;;;;;;-1:-1:-1;;14531:37:0;;14527:263;;14613:6;14593:16;:26;;14585:79;;;;-1:-1:-1;;;14585:79:0;;7472:2:1;14585:79:0;;;7454:21:1;7511:2;7491:18;;;7484:30;7550:34;7530:18;;;7523:62;-1:-1:-1;;;7601:18:1;;;7594:38;7649:19;;14585:79:0;7270:404:1;14585:79:0;14708:55;14717:6;14725:10;14756:6;14737:16;:25;14708:8;:55::i;:::-;14802:36;14812:6;14820:9;14831:6;14802:9;:36::i;:::-;-1:-1:-1;14858:4:0;;14350:520;-1:-1:-1;;;;14350:520:0:o;23325:283::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23415:20:0;::::1;23407:59;;;::::0;-1:-1:-1;;;23407:59:0;;7881:2:1;23407:59:0::1;::::0;::::1;7863:21:1::0;7920:2;7900:18;;;7893:30;7959:28;7939:18;;;7932:56;8005:18;;23407:59:0::1;7679:350:1::0;23407:59:0::1;23504:39;::::0;-1:-1:-1;;;23504:39:0;;23537:4:::1;23504:39;::::0;::::1;1892:51:1::0;23477:24:0::1;::::0;-1:-1:-1;;;;;23504:24:0;::::1;::::0;::::1;::::0;1865:18:1;;23504:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23554:46;::::0;-1:-1:-1;;;23554:46:0;;-1:-1:-1;;;;;8415:32:1;;;23554:46:0::1;::::0;::::1;8397:51:1::0;8464:18;;;8457:34;;;23477:66:0;;-1:-1:-1;23554:23:0;;::::1;::::0;::::1;::::0;8370:18:1;;23554:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23396:212;23325:283:::0;;:::o;23071:246::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;23139:46:::1;::::0;-1:-1:-1;;;23139:46:0;;23154:4:::1;23139:46;::::0;::::1;1892:51:1::0;;;23121:15:0::1;::::0;23139:31:::1;::::0;1865:18:1;;23139:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23196:51;::::0;-1:-1:-1;;;23196:51:0;;23227:10:::1;23196:51;::::0;::::1;8397::1::0;8464:18;;;8457:34;;;23121:64:0;;-1:-1:-1;23211:4:0::1;::::0;23196:30:::1;::::0;8370:18:1;;23196:51:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23258:51:0::1;::::0;23266:10:::1;::::0;23287:21:::1;23258:51:::0;::::1;;;::::0;::::1;::::0;;;23287:21;23266:10;23258:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23110:207;23071:246::o:0;16747:298::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;16877:1:::1;16849:23;16865:7:::0;16849:13;:23:::1;:::i;:::-;16848:30;;16840:72;;;::::0;-1:-1:-1;;;16840:72:0;;6303:2:1;16840:72:0::1;::::0;::::1;6285:21:1::0;6342:2;6322:18;;;6315:30;6381:31;6361:18;;;6354:59;6430:18;;16840:72:0::1;6101:353:1::0;16840:72:0::1;16923:15;:31:::0;;;16965:9:::1;:19:::0;;;17010:27:::1;16977:7:::0;16941:13;17010:27:::1;:::i;:::-;16995:12;:42:::0;-1:-1:-1;;16747:298:0:o;14878:466::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;14992:13:::1;::::0;-1:-1:-1;;;14992:13:0;::::1;;;14984:47;;;::::0;-1:-1:-1;;;14984:47:0;;8954:2:1;14984:47:0::1;::::0;::::1;8936:21:1::0;8993:2;8973:18;;;8966:30;-1:-1:-1;;;9012:18:1;;;9005:51;9073:18;;14984:47:0::1;8752:345:1::0;14984:47:0::1;15047:8;15042:263;15061:21;::::0;::::1;::::0;-1:-1:-1;15042:263:0::1;;;15137:7;;15145:1;15137:10;;;;;;;;;:::i;:::-;;;;;;;15112:9;:21;15122:10;-1:-1:-1::0;;;;;15112:21:0::1;-1:-1:-1::0;;;;;15112:21:0::1;;;;;;;;;;;;;:35;;15104:86;;;;-1:-1:-1::0;;;15104:86:0::1;;;;;;;:::i;:::-;15233:7;;15241:1;15233:10;;;;;;;;;:::i;:::-;;;;;;;15205:9;:24;15215:10;;15226:1;15215:13;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15205:24:0::1;-1:-1:-1::0;;;;;15205:24:0::1;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;15283:7:0;;-1:-1:-1;15283:7:0;:10:::1;::::0;::::1;::::0;;::::1;;;;;:::i;:::-;;;;;;;15258:9;:21;15268:10;-1:-1:-1::0;;;;;15258:21:0::1;-1:-1:-1::0;;;;;15258:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;15084:3:0;;-1:-1:-1;15084:3:0::1;::::0;::::1;:::i;:::-;;;;15042:263;;;-1:-1:-1::0;;15315:13:0::1;:21:::0;;-1:-1:-1;;;;15315:21:0::1;::::0;;-1:-1:-1;;;14878:466:0:o;2601:103::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;2666:30:::1;2693:1;2666:18;:30::i;:::-;2601:103::o:0;15472:121::-;15524:4;2023:6;;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;-1:-1:-1;15541:14:0::1;:22:::0;;-1:-1:-1;;;;15541:22:0::1;::::0;;;15472:121;:::o;16487:144::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16577:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;16577:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16487:144::o;15352:112::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;15407:13:::1;:20:::0;;-1:-1:-1;;;;15438:18:0;-1:-1:-1;;;15438:18:0;;;15352:112::o;16639:100::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;16710:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;16710:21:0::1;-1:-1:-1::0;;;;16710:21:0;;::::1;::::0;;;::::1;::::0;;16639:100::o;17555:267::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;17664:13:::1;-1:-1:-1::0;;;;;17656:21:0::1;:4;-1:-1:-1::0;;;;;17656:21:0::1;::::0;17648:60:::1;;;::::0;-1:-1:-1;;;17648:60:0;;10178:2:1;17648:60:0::1;::::0;::::1;10160:21:1::0;10217:2;10197:18;;;10190:30;10256:28;10236:18;;;10229:56;10302:18;;17648:60:0::1;9976:350:1::0;17648:60:0::1;-1:-1:-1::0;;;;;17719:31:0;::::1;;::::0;;;:25:::1;:31;::::0;;;;;:39;;-1:-1:-1;;17719:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17774:40;;17719:39;;:31;17774:40:::1;::::0;::::1;17555:267:::0;;:::o;14184:158::-;14255:4;14272:40;14282:10;14294:9;14305:6;14272:9;:40::i;17365:182::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17450:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17450:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17505:34;;1416:41:1;;;17505:34:0::1;::::0;1389:18:1;17505:34:0::1;;;;;;;17365:182:::0;;:::o;16253:226::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;16380:4:::1;16372;16350:18;9395:20:::0;16366:2:::1;16350:18;:::i;:::-;16349:27;;;;:::i;:::-;16348:36;;;;:::i;:::-;16338:6;:46;;16330:101;;;::::0;-1:-1:-1;;;16330:101:0;;10533:2:1;16330:101:0::1;::::0;::::1;10515:21:1::0;10572:2;10552:18;;;10545:30;10611:34;10591:18;;;10584:62;-1:-1:-1;;;10662:18:1;;;10655:40;10712:19;;16330:101:0::1;10331:406:1::0;16330:101:0::1;16454:17;:6:::0;16464::::1;16454:17;:::i;:::-;16442:9;:29:::0;-1:-1:-1;16253:226:0:o;15601:397::-;15682:4;2023:6;;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;15747:6:::1;15726:17;9395:20:::0;15742:1:::1;15726:17;:::i;:::-;15725:28;;;;:::i;:::-;15712:9;:41;;15704:107;;;::::0;-1:-1:-1;;;15704:107:0;;10944:2:1;15704:107:0::1;::::0;::::1;10926:21:1::0;10983:2;10963:18;;;10956:30;11022:34;11002:18;;;10995:62;-1:-1:-1;;;11073:18:1;;;11066:51;11134:19;;15704:107:0::1;10742:417:1::0;15704:107:0::1;15865:4;15844:17;9395:20:::0;15860:1:::1;15844:17;:::i;:::-;15843:26;;;;:::i;:::-;15830:9;:39;;15822:105;;;::::0;-1:-1:-1;;;15822:105:0;;11366:2:1;15822:105:0::1;::::0;::::1;11348:21:1::0;11405:2;11385:18;;;11378:30;11444:34;11424:18;;;11417:62;-1:-1:-1;;;11495:18:1;;;11488:50;11555:19;;15822:105:0::1;11164:416:1::0;15822:105:0::1;-1:-1:-1::0;15938:18:0::1;:30:::0;15986:4:::1;::::0;15601:397::o;17830:129::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;17917:15:::1;:34:::0;;-1:-1:-1;;;;;;17917:34:0::1;-1:-1:-1::0;;;;;17917:34:0;;;::::1;::::0;;;::::1;::::0;;17830:129::o;2859:201::-;1996:7;2023:6;-1:-1:-1;;;;;2023:6:0;897:10;2170:23;2162:68;;;;-1:-1:-1;;;2162:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2948:22:0;::::1;2940:73;;;::::0;-1:-1:-1;;;2940:73:0;;11787:2:1;2940:73:0::1;::::0;::::1;11769:21:1::0;11826:2;11806:18;;;11799:30;11865:34;11845:18;;;11838:62;-1:-1:-1;;;11916:18:1;;;11909:36;11962:19;;2940:73:0::1;11585:402:1::0;2940:73:0::1;3024:28;3043:8;3024:18;:28::i;:::-;2859:201:::0;:::o;13839:337::-;-1:-1:-1;;;;;13932:19:0;;13924:68;;;;-1:-1:-1;;;13924:68:0;;12194:2:1;13924:68:0;;;12176:21:1;12233:2;12213:18;;;12206:30;12272:34;12252:18;;;12245:62;-1:-1:-1;;;12323:18:1;;;12316:34;12367:19;;13924:68:0;11992:400:1;13924:68:0;-1:-1:-1;;;;;14011:21:0;;14003:68;;;;-1:-1:-1;;;14003:68:0;;12599:2:1;14003:68:0;;;12581:21:1;12638:2;12618:18;;;12611:30;12677:34;12657:18;;;12650:62;-1:-1:-1;;;12728:18:1;;;12721:32;12770:19;;14003:68:0;12397:398:1;14003:68:0;-1:-1:-1;;;;;14084:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14136:32;;2100:25:1;;;14136:32:0;;2073:18:1;14136:32:0;;;;;;;13839:337;;;:::o;18214:3565::-;-1:-1:-1;;;;;18337:18:0;;18329:68;;;;-1:-1:-1;;;18329:68:0;;13002:2:1;18329:68:0;;;12984:21:1;13041:2;13021:18;;;13014:30;13080:34;13060:18;;;13053:62;-1:-1:-1;;;13131:18:1;;;13124:35;13176:19;;18329:68:0;12800:401:1;18329:68:0;-1:-1:-1;;;;;18416:16:0;;18408:64;;;;-1:-1:-1;;;18408:64:0;;13408:2:1;18408:64:0;;;13390:21:1;13447:2;13427:18;;;13420:30;13486:34;13466:18;;;13459:62;-1:-1:-1;;;13537:18:1;;;13530:33;13580:19;;18408:64:0;13206:399:1;18408:64:0;18500:1;18491:6;:10;18483:64;;;;-1:-1:-1;;;18483:64:0;;13812:2:1;18483:64:0;;;13794:21:1;13851:2;13831:18;;;13824:30;13890:34;13870:18;;;13863:62;-1:-1:-1;;;13941:18:1;;;13934:39;13990:19;;18483:64:0;13610:405:1;18483:64:0;-1:-1:-1;;;;;18584:15:0;;18560:21;18584:15;;;:9;:15;;;;;;18618:23;;;;18610:74;;;;-1:-1:-1;;;18610:74:0;;;;;;;:::i;:::-;18713:8;;-1:-1:-1;;;;;18736:25:0;;18697:12;18736:25;;;:19;:25;;;;;;18713:8;;;;18712:9;;18736:25;;:52;;-1:-1:-1;;;;;;18765:23:0;;;;;;:19;:23;;;;;;;;18736:52;18732:100;;;-1:-1:-1;18815:5:0;18732:100;18844:12;18875:7;18871:637;;;-1:-1:-1;;;;;18903:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;18952:1;18936:13;;:17;18903:50;18899:567;;;19008:3;18991:13;;18982:6;:22;;;;:::i;:::-;18981:30;;;;:::i;:::-;18974:37;;19078:13;;19059:16;;19052:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;19030:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;19146:13:0;;19133:10;;19126:17;;:4;:17;:::i;:::-;:33;;;;:::i;:::-;19110:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;18899:567:0;;-1:-1:-1;18899:567:0;;-1:-1:-1;;;;;19198:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;19248:1;19233:12;;:16;19198:51;19194:272;;;19303:3;19287:12;;19278:6;:21;;;;:::i;:::-;19277:29;;;;:::i;:::-;19270:36;;19372:12;;19354:15;;19347:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;19325:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;19438:12:0;;19426:9;;19419:16;;:4;:16;:::i;:::-;:31;;;;:::i;:::-;19403:12;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;19194:272:0;19482:14;19492:4;19482:14;;:::i;:::-;;;18871:637;19524:14;;-1:-1:-1;;;19524:14:0;;;;19520:1396;;;19585:8;;-1:-1:-1;;;;;19577:16:0;;;19585:8;;;;;19577:16;;;;:51;;-1:-1:-1;19620:8:0;;-1:-1:-1;;;;;19614:14:0;;;19620:8;;;;;19614:14;;19577:51;:88;;;;-1:-1:-1;;;;;;19649:16:0;;;;19577:88;:130;;;;-1:-1:-1;;;;;;19686:21:0;;19700:6;19686:21;;19577:130;:160;;;;-1:-1:-1;19729:8:0;;;;19728:9;19577:160;19555:1350;;;19777:13;;-1:-1:-1;;;19777:13:0;;;;19772:149;;-1:-1:-1;;;;;19823:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19852:23:0;;;;;;:19;:23;;;;;;;;19823:52;19815:86;;;;-1:-1:-1;;;19815:86:0;;14222:2:1;19815:86:0;;;14204:21:1;14261:2;14241:18;;;14234:30;-1:-1:-1;;;14280:18:1;;;14273:51;14341:18;;19815:86:0;14020:345:1;19815:86:0;-1:-1:-1;;;;;19945:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19981:35:0;;;;;;:31;:35;;;;;;;;19980:36;19945:71;19941:949;;;20085:20;;20075:6;:30;;20041:154;;;;-1:-1:-1;;;20041:154:0;;14572:2:1;20041:154:0;;;14554:21:1;14611:2;14591:18;;;14584:30;14650:34;14630:18;;;14623:62;-1:-1:-1;;;14701:18:1;;;14694:36;14747:19;;20041:154:0;14370:402:1;20041:154:0;20278:9;;-1:-1:-1;;;;;13503:18:0;;13476:7;13503:18;;;:9;:18;;;;;;20252:22;;:6;:22;:::i;:::-;:35;;20218:140;;;;-1:-1:-1;;;20218:140:0;;14979:2:1;20218:140:0;;;14961:21:1;15018:2;14998:18;;;14991:30;-1:-1:-1;;;15037:18:1;;;15030:49;15096:18;;20218:140:0;14777:343:1;20218:140:0;19941:949;;;-1:-1:-1;;;;;20388:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;20422:37:0;;;;;;:31;:37;;;;;;;;20421:38;20388:71;20384:506;;;20528:20;;20518:6;:30;;20484:155;;;;-1:-1:-1;;;20484:155:0;;15327:2:1;20484:155:0;;;15309:21:1;15366:2;15346:18;;;15339:30;15405:34;15385:18;;;15378:62;-1:-1:-1;;;15456:18:1;;;15449:37;15503:19;;20484:155:0;15125:403:1;20384:506:0;-1:-1:-1;;;;;20670:35:0;;;;;;:31;:35;;;;;;;;20665:225;;20790:9;;-1:-1:-1;;;;;13503:18:0;;13476:7;13503:18;;;:9;:18;;;;;;20764:22;;:6;:22;:::i;:::-;:35;;20730:140;;;;-1:-1:-1;;;20730:140:0;;14979:2:1;20730:140:0;;;14961:21:1;15018:2;14998:18;;;14991:30;-1:-1:-1;;;15037:18:1;;;15030:49;15096:18;;20730:140:0;14777:343:1;20730:140:0;20977:4;20928:28;13503:18;;;:9;:18;;;;;;21035;;21011:42;;;;;;;21084:35;;-1:-1:-1;21108:11:0;;-1:-1:-1;;;21108:11:0;;;;21084:35;:61;;;;-1:-1:-1;21137:8:0;;;;21136:9;21084:61;:110;;;;-1:-1:-1;;;;;;21163:31:0;;;;;;:25;:31;;;;;;;;21162:32;21084:110;:153;;;;-1:-1:-1;;;;;;21212:25:0;;;;;;:19;:25;;;;;;;;21211:26;21084:153;:194;;;;-1:-1:-1;;;;;;21255:23:0;;;;;;:19;:23;;;;;;;;21254:24;21084:194;21066:326;;;21305:8;:15;;-1:-1:-1;;21305:15:0;21316:4;21305:15;;;21337:10;:8;:10::i;:::-;21364:8;:16;;-1:-1:-1;;21364:16:0;;;21066:326;21408:8;;21404:214;;-1:-1:-1;;;;;21462:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;21522:4;21504:24;;;;;;;:32;;;;;;21571:35;2100:25:1;;;21522:4:0;;21462:15;21571:35;;2073:18:1;21571:35:0;;;;;;;21404:214;-1:-1:-1;;;;;21655:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;21695:13;;;;;;;;;;:23;;;;;;21745:26;;;;;;21674:6;2100:25:1;;2088:2;2073:18;;1954:177;21745:26:0;;;;;;;;18318:3461;;;;;18214:3565;;;:::o;3220:191::-;3294:16;3313:6;;-1:-1:-1;;;;;3330:17:0;;;-1:-1:-1;;;;;;3330:17:0;;;;;;3363:40;;3313:6;;;;;;;3363:40;;3294:16;3363:40;3283:128;3220:191;:::o;22270:793::-;22309:22;22355:12;;22334:18;;:33;;;;:::i;:::-;22422:4;22378:23;13503:18;;;:9;:18;;;;;;22467;;22309:58;;-1:-1:-1;13503:18:0;22520:23;22467:18;22541:2;22520:23;:::i;:::-;22502:15;:41;22498:117;;;22580:18;;:23;;22601:2;22580:23;:::i;:::-;22560:43;;22498:117;22627:35;22644:17;22627:16;:35::i;:::-;22768:18;;22696:21;;22675:18;;22790:14;;22755:31;;22696:21;22755:31;:::i;:::-;22754:50;;;;:::i;:::-;22838:1;22817:18;:22;;;22850:12;:16;;;22923:15;;22915:58;;22728:76;;-1:-1:-1;22838:1:0;;-1:-1:-1;;;;;22923:15:0;;;;22728:76;;22838:1;22915:58;22838:1;22915:58;22728:76;22923:15;22915:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23005:9:0;;22997:58;;22902:71;;-1:-1:-1;;;;;;23005:9:0;;23029:21;;22997:58;;;;23029:21;23005:9;22997:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;22270:793:0:o;21787:475::-;21877:16;;;21891:1;21877:16;;;;;;;;21853:21;;21877:16;;;;;;;;;;-1:-1:-1;21877:16:0;21853:40;;21922:4;21904;21909:1;21904:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21904:23:0;;;-1:-1:-1;;;;;21904:23:0;;;;;9506:42;-1:-1:-1;;;;;21948:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21938:4;21943:1;21938:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;21938:32:0;;;-1:-1:-1;;;;;21938:32:0;;;;;21983:62;22000:4;9506:42;22033:11;21983:8;:62::i;:::-;22058:196;;-1:-1:-1;;;22058:196:0;;9506:42;;22058:66;;:196;;22139:11;;22165:1;;22181:4;;22208;;22228:15;;22058:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21842:420;21787:475;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:131::-;-1:-1:-1;;;;;895:31:1;;885:42;;875:70;;941:1;938;931:12;956:315;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;1261:2;1246:18;;;;1233:32;;-1:-1:-1;;;956:315:1:o;1468:247::-;1527:6;1580:2;1568:9;1559:7;1555:23;1551:32;1548:52;;;1596:1;1593;1586:12;1548:52;1635:9;1622:23;1654:31;1679:5;1654:31;:::i;:::-;1704:5;1468:247;-1:-1:-1;;;1468:247:1:o;2136:180::-;2195:6;2248:2;2236:9;2227:7;2223:23;2219:32;2216:52;;;2264:1;2261;2254:12;2216:52;-1:-1:-1;2287:23:1;;2136:180;-1:-1:-1;2136:180:1:o;2321:456::-;2398:6;2406;2414;2467:2;2455:9;2446:7;2442:23;2438:32;2435:52;;;2483:1;2480;2473:12;2435:52;2522:9;2509:23;2541:31;2566:5;2541:31;:::i;:::-;2591:5;-1:-1:-1;2648:2:1;2633:18;;2620:32;2661:33;2620:32;2661:33;:::i;:::-;2321:456;;2713:7;;-1:-1:-1;;;2767:2:1;2752:18;;;;2739:32;;2321:456::o;2971:388::-;3039:6;3047;3100:2;3088:9;3079:7;3075:23;3071:32;3068:52;;;3116:1;3113;3106:12;3068:52;3155:9;3142:23;3174:31;3199:5;3174:31;:::i;:::-;3224:5;-1:-1:-1;3281:2:1;3266:18;;3253:32;3294:33;3253:32;3294:33;:::i;:::-;3346:7;3336:17;;;2971:388;;;;;:::o;3572:367::-;3635:8;3645:6;3699:3;3692:4;3684:6;3680:17;3676:27;3666:55;;3717:1;3714;3707:12;3666:55;-1:-1:-1;3740:20:1;;3783:18;3772:30;;3769:50;;;3815:1;3812;3805:12;3769:50;3852:4;3844:6;3840:17;3828:29;;3912:3;3905:4;3895:6;3892:1;3888:14;3880:6;3876:27;3872:38;3869:47;3866:67;;;3929:1;3926;3919:12;3866:67;3572:367;;;;;:::o;3944:773::-;4066:6;4074;4082;4090;4143:2;4131:9;4122:7;4118:23;4114:32;4111:52;;;4159:1;4156;4149:12;4111:52;4199:9;4186:23;4228:18;4269:2;4261:6;4258:14;4255:34;;;4285:1;4282;4275:12;4255:34;4324:70;4386:7;4377:6;4366:9;4362:22;4324:70;:::i;:::-;4413:8;;-1:-1:-1;4298:96:1;-1:-1:-1;4501:2:1;4486:18;;4473:32;;-1:-1:-1;4517:16:1;;;4514:36;;;4546:1;4543;4536:12;4514:36;;4585:72;4649:7;4638:8;4627:9;4623:24;4585:72;:::i;:::-;3944:773;;;;-1:-1:-1;4676:8:1;-1:-1:-1;;;;3944:773:1:o;4722:118::-;4808:5;4801:13;4794:21;4787:5;4784:32;4774:60;;4830:1;4827;4820:12;4845:382;4910:6;4918;4971:2;4959:9;4950:7;4946:23;4942:32;4939:52;;;4987:1;4984;4977:12;4939:52;5026:9;5013:23;5045:31;5070:5;5045:31;:::i;:::-;5095:5;-1:-1:-1;5152:2:1;5137:18;;5124:32;5165:30;5124:32;5165:30;:::i;5232:241::-;5288:6;5341:2;5329:9;5320:7;5316:23;5312:32;5309:52;;;5357:1;5354;5347:12;5309:52;5396:9;5383:23;5415:28;5437:5;5415:28;:::i;5478:356::-;5680:2;5662:21;;;5699:18;;;5692:30;5758:34;5753:2;5738:18;;5731:62;5825:2;5810:18;;5478:356::o;5839:127::-;5900:10;5895:3;5891:20;5888:1;5881:31;5931:4;5928:1;5921:15;5955:4;5952:1;5945:15;5971:125;6036:9;;;6057:10;;;6054:36;;;6070:18;;:::i;6459:168::-;6532:9;;;6563;;6580:15;;;6574:22;;6560:37;6550:71;;6601:18;;:::i;6632:217::-;6672:1;6698;6688:132;;6742:10;6737:3;6733:20;6730:1;6723:31;6777:4;6774:1;6767:15;6805:4;6802:1;6795:15;6688:132;-1:-1:-1;6834:9:1;;6632:217::o;8034:184::-;8104:6;8157:2;8145:9;8136:7;8132:23;8128:32;8125:52;;;8173:1;8170;8163:12;8125:52;-1:-1:-1;8196:16:1;;8034:184;-1:-1:-1;8034:184:1:o;8502:245::-;8569:6;8622:2;8610:9;8601:7;8597:23;8593:32;8590:52;;;8638:1;8635;8628:12;8590:52;8670:9;8664:16;8689:28;8711:5;8689:28;:::i;9102:127::-;9163:10;9158:3;9154:20;9151:1;9144:31;9194:4;9191:1;9184:15;9218:4;9215:1;9208:15;9234:402;9436:2;9418:21;;;9475:2;9455:18;;;9448:30;9514:34;9509:2;9494:18;;9487:62;-1:-1:-1;;;9580:2:1;9565:18;;9558:36;9626:3;9611:19;;9234:402::o;9641:128::-;9708:9;;;9729:11;;;9726:37;;;9743:18;;:::i;9774:197::-;9812:3;9840:6;9881:2;9874:5;9870:14;9908:2;9899:7;9896:15;9893:41;;9914:18;;:::i;:::-;9963:1;9950:15;;9774:197;-1:-1:-1;;;9774:197:1:o;15875:251::-;15945:6;15998:2;15986:9;15977:7;15973:23;15969:32;15966:52;;;16014:1;16011;16004:12;15966:52;16046:9;16040:16;16065:31;16090:5;16065:31;:::i;16131:980::-;16393:4;16441:3;16430:9;16426:19;16472:6;16461:9;16454:25;16498:2;16536:6;16531:2;16520:9;16516:18;16509:34;16579:3;16574:2;16563:9;16559:18;16552:31;16603:6;16638;16632:13;16669:6;16661;16654:22;16707:3;16696:9;16692:19;16685:26;;16746:2;16738:6;16734:15;16720:29;;16767:1;16777:195;16791:6;16788:1;16785:13;16777:195;;;16856:13;;-1:-1:-1;;;;;16852:39:1;16840:52;;16947:15;;;;16912:12;;;;16888:1;16806:9;16777:195;;;-1:-1:-1;;;;;;;17028:32:1;;;;17023:2;17008:18;;17001:60;-1:-1:-1;;;17092:3:1;17077:19;17070:35;16989:3;16131:980;-1:-1:-1;;;16131:980:1:o

Swarm Source

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