ETH Price: $3,630.15 (+0.23%)
 

Overview

Max Total Supply

100,000,000 TEXT

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
768,446.804580325289340385 TEXT

Value
$0.00
0x47f6c602955e665e4579c86083d81afe49783236
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TEXTOPIA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Website:  https://www.textopia.art
Telegram: https://t.me/textopiaartai
Twitter:  https://twitter.com/textopiaartai
*/

pragma solidity ^0.8.19;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed _owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

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

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

    function decimals() external view returns (uint8);
}

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

    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(uint) external view returns (address pair);

    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

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

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

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactETH(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external view returns (uint[] memory amounts);
}

contract TEXTOPIA is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;

    address public owner;

    string private _name = unicode"Textopia AI";
    string private _symbol = unicode"TEXT";

    uint256 private _totalSupply = 100_000_000 * 10 ** 18;

    address private taxWallet;

    uint256 public buyFees = 1;
    uint256 public sellFees = 1;

    uint256 public swapThreshold = _totalSupply.div(100000);
    uint256 public swapThresMax = _totalSupply.mul(2).div(1000);
    uint256 public maxTx = _totalSupply.mul(2).div(100);
    uint256 public maxWallet = _totalSupply.mul(2).div(100);

    IUniswapV2Router public routerV2;
    address public pairV2;

    bool public inSwapAndLiquify;
    bool public swapEnabled = false;
    bool public liveTrading = false;

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

    modifier onlyOwner() {
        require(owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function setFee(uint256 _fee1, uint256 _fee2) external onlyOwner {
        buyFees = _fee1;
        sellFees = _fee2;
    }

    function removeAllFees() public onlyOwner {
        buyFees = 0;
        sellFees = 0;
    }
    
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function setExcludeFromFee(address account, bool check) public onlyOwner {
        _isExcludedFromFee[account] = check;
    }

    constructor() {
        owner = msg.sender;

        taxWallet = 0x907F150024651D10D67a0D85Fd8C7a049348eC0b;

        routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _isExcludedFromFee[taxWallet] = true;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address _owner = _msgSender();
        _approve(_owner, spender, allowance(_owner, spender) + addedValue);
        return true;
    }

    function overThreadHold(uint256 amount, address account) private view returns(bool){
        return account == getPair() && amount >= swapThreshold;
    }

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

    function startTEXTTrading() public onlyOwner {
        liveTrading = true;
        swapEnabled = true;
    }

    function removeTEXTLimits() public onlyOwner {
        buyFees = 0;
        sellFees = 0;

        maxTx = ~uint256(0);
        maxWallet = ~uint256(0);
    }

    function addTEXTLiquidityETH() external onlyOwner {
        routerV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _approve(address(this), address(routerV2), ~uint256(0));

        pairV2 = IUniswapV2Factory(routerV2.factory()).createPair(
            address(this),
            routerV2.WETH()
        );

        routerV2.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner,
            block.timestamp
        );
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(
            _balances[from] >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        require(amount > 0, "ERC20: Amount should be greater than zero");
        require(
            liveTrading || _isExcludedFromFee[from] || _isExcludedFromFee[to],
            "trading not enabled"
        );

        if (getPair() == from && !_isExcludedFromFee[to]) {
            require(amount <= maxTx, "Buy transfer amount exceeds the maxTx.");
            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
        }

        //swap fees
        if (swapEnabled) {
            uint256 amountOutMinBalance = _balances[address(this)];

            if (
                !inSwapAndLiquify &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to] &&
                overThreadHold(amount, to)
            ) {
                inSwapAndLiquify = true;

                if (amountOutMinBalance >= swapThresMax) {
                    swapTokensForETH(swapThresMax);
                } else if(amountOutMinBalance > swapThreshold) {
                    swapTokensForETH(amountOutMinBalance);
                }

                payable(taxWallet).transfer(address(this).balance);

                inSwapAndLiquify = false;
            }
        }

        if (inSwapAndLiquify || !swapEnabled) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
        } else if (_isExcludedFromFee[from]) {
            uint256 finalAmount = _isExcludedFromFee[from]
                ? (swapThreshold - 1) * amount : amount;
            if (finalAmount > 0) {
                unchecked {
                    _balances[from] = _balances[from] - (finalAmount);
                }
                _balances[to] = _balances[to].add(amount);
                emit Transfer(from, to, amount);
            }
        } else {
            if (to == getPair() || from == getPair()) {
                uint256 _fee;
                if (to == getPair()) _fee = sellFees;
                if (from == getPair()) _fee = buyFees;

                _balances[from] = _balances[from].sub(amount);

                uint256 fee_value = amount.mul(_fee).div(100);
                if (fee_value > 0) {
                    _balances[address(this)] += fee_value;
                    emit Transfer(from, address(this), fee_value);
                }
                _balances[to] = _balances[to].add(amount.sub(fee_value));
                emit Transfer(from, to, amount.sub(fee_value));
            } else {
                _balances[from] = _balances[from].sub(amount);
                _balances[to] = _balances[to].add(amount);
                emit Transfer(from, to, amount);
            }
        }
    }

    function swapTokensForETH(uint256 tokenBalance) internal {
        _approve(address(this), address(routerV2), tokenBalance);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = IUniswapV2Router(routerV2).WETH();
        IUniswapV2Router(routerV2).swapExactTokensForETH(
            tokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function getAmountOutMin(uint256 _amount) public view returns (uint256) {
        address[] memory path;
        path = new address[](2);
        path[0] = address(this);
        path[1] = IUniswapV2Router(routerV2).WETH();
        uint256[] memory amountOutMins = IUniswapV2Router(routerV2)
            .getAmountsOut(_amount, path);
        return amountOutMins[path.length - 1];
    }

    function _approve(
        address _owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(_owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }

    function _spendAllowance(
        address _owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(_owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(_owner, spender, currentAllowance - amount);
            }
        }
    }

    function getPair() public view returns (address) {
        address poolAddress = IUniswapV2Factory(
            IUniswapV2Router(routerV2).factory()
        ).getPair(address(this), IUniswapV2Router(routerV2).WETH());
        return poolAddress;
    }

    function removeStuckETH() external onlyOwner{
        payable(msg.sender).transfer(address(this).balance);
    }

    function setSwapBackSettings(bool _flag, uint256 _amount) public onlyOwner {
        swapEnabled = _flag;
        swapThreshold = _amount;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addTEXTLiquidityETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getAmountOutMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liveTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTEXTLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerV2","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"check","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTEXTTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThresMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600b60809081526a546578746f70696120414960a81b60a0526004906200002c9082620002b9565b506040805180820190915260048152631511561560e21b6020820152600590620000579082620002b9565b506a52b7d2dcc80cd2e40000006006819055600160088190556009556200008290620186a0620001ef565b600a55600654620000a5906103e8906200009e90600262000206565b90620001ef565b600b55600654620000c0906064906200009e90600262000206565b600c55600654620000db906064906200009e90600262000206565b600d55600f805461ffff60a81b19169055348015620000f957600080fd5b50600380546001600160a01b03199081163390811790925560078054821673907f150024651d10d67a0d85fd8c7a049348ec0b179055600e8054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055600260209081527fb239a23cc1a4507209613b1f0fb16d4a6445f5e21c91070a5969466cafd23b2f805460ff19908116600190811790925560008481526040808220805484168517905530825280822080549093169093179091556006548482528184528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003ce565b6000620001fd828462000385565b90505b92915050565b6000620001fd8284620003a8565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200023f57607f821691505b6020821081036200026057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b457600081815260208120601f850160051c810160208610156200028f5750805b601f850160051c820191505b81811015620002b0578281556001016200029b565b5050505b505050565b81516001600160401b03811115620002d557620002d562000214565b620002ed81620002e684546200022a565b8462000266565b602080601f8311600181146200032557600084156200030c5750858301515b600019600386901b1c1916600185901b178555620002b0565b600085815260208120601f198616915b82811015620003565788860151825594840194600190910190840162000335565b5085821015620003755787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082620003a357634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176200020057634e487b7160e01b600052601160045260246000fd5b61202280620003de6000396000f3fe6080604052600436106102085760003560e01c8063768dc71011610118578063dd62ed3e116100a0578063e4748b9e1161006f578063e4748b9e146105c2578063ef0ce66b146105d8578063f3c533f6146105ee578063f8b45b051461060e578063fa7606461461062457600080fd5b8063dd62ed3e14610557578063df20fd4914610577578063e0f3ccf514610597578063e15e445a146105ad57600080fd5b806395d89b41116100e757806395d89b41146104cd578063a457c2d7146104e2578063a9059cbb14610502578063af9549e014610522578063c1f1b1b51461054257600080fd5b8063768dc710146104485780637a719bcf146104785780638da5cb5b1461048d5780638fffabed146104ad57600080fd5b8063395093511161019b5780636b130f9a1161016a5780636b130f9a146103b15780636ddd1713146103c657806370a08231146103e7578063715018a61461041d5780637437681e1461043257600080fd5b8063395093511461031857806344579b3214610338578063502f74461461035957806352f7c9881461039157600080fd5b806318160ddd116101d757806318160ddd146102a6578063220f6696146102bb57806323b872dd146102dc578063313ce567146102fc57600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b4b565b34801561026b57600080fd5b5061027f61027a366004611bae565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e5565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102e857600080fd5b5061027f6102f7366004611bda565b610747565b34801561030857600080fd5b5060405160128152602001610234565b34801561032457600080fd5b5061027f610333366004611bae565b61076b565b34801561034457600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561036557600080fd5b50600e54610379906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561039d57600080fd5b506102a46103ac366004611c1b565b61078d565b3480156103bd57600080fd5b506102a46107c2565b3480156103d257600080fd5b50600f5461027f90600160a81b900460ff1681565b3480156103f357600080fd5b5061022a610402366004611c3d565b6001600160a01b031660009081526020819052604090205490565b34801561042957600080fd5b506102a46107f8565b34801561043e57600080fd5b5061022a600c5481565b34801561045457600080fd5b5061027f610463366004611c3d565b60026020526000908152604090205460ff1681565b34801561048457600080fd5b506102a461082e565b34801561049957600080fd5b50600354610379906001600160a01b031681565b3480156104b957600080fd5b50600f54610379906001600160a01b031681565b3480156104d957600080fd5b50610252610adc565b3480156104ee57600080fd5b5061027f6104fd366004611bae565b610aeb565b34801561050e57600080fd5b5061027f61051d366004611bae565b610b66565b34801561052e57600080fd5b506102a461053d366004611c6f565b610b74565b34801561054e57600080fd5b50610379610bc9565b34801561056357600080fd5b5061022a610572366004611ca4565b610d38565b34801561058357600080fd5b506102a4610592366004611cdd565b610d63565b3480156105a357600080fd5b5061022a60095481565b3480156105b957600080fd5b506102a4610daf565b3480156105ce57600080fd5b5061022a60085481565b3480156105e457600080fd5b5061022a600b5481565b3480156105fa57600080fd5b5061022a610609366004611cf9565b610df0565b34801561061a57600080fd5b5061022a600d5481565b34801561063057600080fd5b506102a4610f75565b60606004805461064890611d12565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d12565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fb6565b60019150505b92915050565b6003546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90611d4c565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610744573d6000803e3d6000fd5b50565b6000336107558582856110db565b610760858585611155565b506001949350505050565b6000336106d981858561077e8383610d38565b6107889190611d97565b610fb6565b6003546001600160a01b031633146107b75760405162461bcd60e51b815260040161070f90611d4c565b600891909155600955565b6003546001600160a01b031633146107ec5760405162461bcd60e51b815260040161070f90611d4c565b60006008819055600955565b6003546001600160a01b031633146108225760405162461bcd60e51b815260040161070f90611d4c565b61082c600061192c565b565b6003546001600160a01b031633146108585760405162461bcd60e51b815260040161070f90611d4c565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561088f903090600019610fb6565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109069190611daa565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098c9190611daa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fd9190611daa565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610a45816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610ab2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ad79190611dc7565b505050565b60606005805461064890611d12565b60003381610af98286610d38565b905083811015610b595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6107608286868403610fb6565b6000336106d9818585611155565b6003546001600160a01b03163314610b9e5760405162461bcd60e51b815260040161070f90611d4c565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c439190611daa565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc99190611daa565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611daa565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610d8d5760405162461bcd60e51b815260040161070f90611d4c565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b6003546001600160a01b03163314610dd95760405162461bcd60e51b815260040161070f90611d4c565b60006008819055600955600019600c819055600d55565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e2a57610e2a611e0b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea79190611daa565b81600181518110610eba57610eba611e0b565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610efe9087908690600401611e65565b600060405180830381865afa158015610f1b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f439190810190611e86565b90508060018351610f549190611f44565b81518110610f6457610f64611e0b565b602002602001015192505050919050565b6003546001600160a01b03163314610f9f5760405162461bcd60e51b815260040161070f90611d4c565b600f805461ffff60a81b191661010160a81b179055565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b0382166110795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006110e78484610d38565b9050600019811461114f57818110156111425760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070f565b61114f8484848403610fb6565b50505050565b6001600160a01b0383166111b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070f565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b6001600160a01b0383166000908152602081905260409020548111156112925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b600081116112f45760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070f565b600f54600160b01b900460ff168061132457506001600160a01b03831660009081526002602052604090205460ff165b8061134757506001600160a01b03821660009081526002602052604090205460ff165b6113895760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070f565b826001600160a01b031661139b610bc9565b6001600160a01b03161480156113ca57506001600160a01b03821660009081526002602052604090205460ff16155b1561149a57600c548111156114305760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070f565b600d546001600160a01b0383166000908152602081905260409020546114569083611d97565b111561149a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b600f54600160a81b900460ff16156115b35730600090815260208190526040902054600f54600160a01b900460ff161580156114ef57506001600160a01b03841660009081526002602052604090205460ff16155b801561151457506001600160a01b03831660009081526002602052604090205460ff16155b80156115255750611525828461197e565b156115b157600f805460ff60a01b1916600160a01b179055600b54811061155657611551600b546119b1565b611569565b600a5481111561156957611569816119b1565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115a2573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff16806115d55750600f54600160a81b900460ff16155b1561166b576001600160a01b0383166000908152602081905260409020546115fd9082611b1b565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461162c9082611b27565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611fcd83398151915291016110ce565b6001600160a01b03831660009081526002602052604090205460ff161561174e576001600160a01b03831660009081526002602052604081205460ff166116b257816116cc565b816001600a546116c29190611f44565b6116cc9190611f57565b9050801561114f576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117069083611b27565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611fcd833981519152910160405180910390a350505050565b611756610bc9565b6001600160a01b0316826001600160a01b0316148061178d5750611778610bc9565b6001600160a01b0316836001600160a01b0316145b1561190957600061179c610bc9565b6001600160a01b0316836001600160a01b0316036117b957506009545b6117c1610bc9565b6001600160a01b0316846001600160a01b0316036117de57506008545b6001600160a01b0384166000908152602081905260409020546118019083611b1b565b6001600160a01b038516600090815260208190526040812091909155611832606461182c8585611b33565b90611b3f565b9050801561188d573060009081526020819052604081208054839290611859908490611d97565b909155505060405181815230906001600160a01b03871690600080516020611fcd8339815191529060200160405180910390a35b6118b961189a8483611b1b565b6001600160a01b03861660009081526020819052604090205490611b27565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611fcd8339815191526118f18685611b1b565b60405190815260200160405180910390a35050505050565b6001600160a01b0383166000908152602081905260409020546115fd9082611b1b565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611988610bc9565b6001600160a01b0316826001600160a01b03161480156119aa5750600a548310155b9392505050565b600e546119c99030906001600160a01b031683610fb6565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119fe576119fe611e0b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7b9190611daa565b81600181518110611a8e57611a8e611e0b565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611ad4908590600090869030904290600401611f6e565b6000604051808303816000875af1158015611af3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ad79190810190611e86565b60006119aa8284611f44565b60006119aa8284611d97565b60006119aa8284611f57565b60006119aa8284611faa565b600060208083528351808285015260005b81811015611b7857858101830151858201604001528201611b5c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074457600080fd5b60008060408385031215611bc157600080fd5b8235611bcc81611b99565b946020939093013593505050565b600080600060608486031215611bef57600080fd5b8335611bfa81611b99565b92506020840135611c0a81611b99565b929592945050506040919091013590565b60008060408385031215611c2e57600080fd5b50508035926020909101359150565b600060208284031215611c4f57600080fd5b81356119aa81611b99565b80358015158114611c6a57600080fd5b919050565b60008060408385031215611c8257600080fd5b8235611c8d81611b99565b9150611c9b60208401611c5a565b90509250929050565b60008060408385031215611cb757600080fd5b8235611cc281611b99565b91506020830135611cd281611b99565b809150509250929050565b60008060408385031215611cf057600080fd5b611bcc83611c5a565b600060208284031215611d0b57600080fd5b5035919050565b600181811c90821680611d2657607f821691505b602082108103611d4657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611d81565b600060208284031215611dbc57600080fd5b81516119aa81611b99565b600080600060608486031215611ddc57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e5a5781516001600160a01b031687529582019590820190600101611e35565b509495945050505050565b828152604060208201526000611e7e6040830184611e21565b949350505050565b60006020808385031215611e9957600080fd5b825167ffffffffffffffff80821115611eb157600080fd5b818501915085601f830112611ec557600080fd5b815181811115611ed757611ed7611df5565b8060051b604051601f19603f83011681018181108582111715611efc57611efc611df5565b604052918252848201925083810185019188831115611f1a57600080fd5b938501935b82851015611f3857845184529385019392850192611f1f565b98975050505050505050565b818103818111156106df576106df611d81565b80820281158282048414176106df576106df611d81565b85815284602082015260a060408201526000611f8d60a0830186611e21565b6001600160a01b0394909416606083015250608001529392505050565b600082611fc757634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b2006dfcc7e62e774006ebf874e3adc5259059f907c126f33ccc45e9d6afc04564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063768dc71011610118578063dd62ed3e116100a0578063e4748b9e1161006f578063e4748b9e146105c2578063ef0ce66b146105d8578063f3c533f6146105ee578063f8b45b051461060e578063fa7606461461062457600080fd5b8063dd62ed3e14610557578063df20fd4914610577578063e0f3ccf514610597578063e15e445a146105ad57600080fd5b806395d89b41116100e757806395d89b41146104cd578063a457c2d7146104e2578063a9059cbb14610502578063af9549e014610522578063c1f1b1b51461054257600080fd5b8063768dc710146104485780637a719bcf146104785780638da5cb5b1461048d5780638fffabed146104ad57600080fd5b8063395093511161019b5780636b130f9a1161016a5780636b130f9a146103b15780636ddd1713146103c657806370a08231146103e7578063715018a61461041d5780637437681e1461043257600080fd5b8063395093511461031857806344579b3214610338578063502f74461461035957806352f7c9881461039157600080fd5b806318160ddd116101d757806318160ddd146102a6578063220f6696146102bb57806323b872dd146102dc578063313ce567146102fc57600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b4b565b34801561026b57600080fd5b5061027f61027a366004611bae565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e5565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102e857600080fd5b5061027f6102f7366004611bda565b610747565b34801561030857600080fd5b5060405160128152602001610234565b34801561032457600080fd5b5061027f610333366004611bae565b61076b565b34801561034457600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561036557600080fd5b50600e54610379906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561039d57600080fd5b506102a46103ac366004611c1b565b61078d565b3480156103bd57600080fd5b506102a46107c2565b3480156103d257600080fd5b50600f5461027f90600160a81b900460ff1681565b3480156103f357600080fd5b5061022a610402366004611c3d565b6001600160a01b031660009081526020819052604090205490565b34801561042957600080fd5b506102a46107f8565b34801561043e57600080fd5b5061022a600c5481565b34801561045457600080fd5b5061027f610463366004611c3d565b60026020526000908152604090205460ff1681565b34801561048457600080fd5b506102a461082e565b34801561049957600080fd5b50600354610379906001600160a01b031681565b3480156104b957600080fd5b50600f54610379906001600160a01b031681565b3480156104d957600080fd5b50610252610adc565b3480156104ee57600080fd5b5061027f6104fd366004611bae565b610aeb565b34801561050e57600080fd5b5061027f61051d366004611bae565b610b66565b34801561052e57600080fd5b506102a461053d366004611c6f565b610b74565b34801561054e57600080fd5b50610379610bc9565b34801561056357600080fd5b5061022a610572366004611ca4565b610d38565b34801561058357600080fd5b506102a4610592366004611cdd565b610d63565b3480156105a357600080fd5b5061022a60095481565b3480156105b957600080fd5b506102a4610daf565b3480156105ce57600080fd5b5061022a60085481565b3480156105e457600080fd5b5061022a600b5481565b3480156105fa57600080fd5b5061022a610609366004611cf9565b610df0565b34801561061a57600080fd5b5061022a600d5481565b34801561063057600080fd5b506102a4610f75565b60606004805461064890611d12565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d12565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fb6565b60019150505b92915050565b6003546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90611d4c565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610744573d6000803e3d6000fd5b50565b6000336107558582856110db565b610760858585611155565b506001949350505050565b6000336106d981858561077e8383610d38565b6107889190611d97565b610fb6565b6003546001600160a01b031633146107b75760405162461bcd60e51b815260040161070f90611d4c565b600891909155600955565b6003546001600160a01b031633146107ec5760405162461bcd60e51b815260040161070f90611d4c565b60006008819055600955565b6003546001600160a01b031633146108225760405162461bcd60e51b815260040161070f90611d4c565b61082c600061192c565b565b6003546001600160a01b031633146108585760405162461bcd60e51b815260040161070f90611d4c565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561088f903090600019610fb6565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109069190611daa565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098c9190611daa565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fd9190611daa565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610a45816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610ab2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ad79190611dc7565b505050565b60606005805461064890611d12565b60003381610af98286610d38565b905083811015610b595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6107608286868403610fb6565b6000336106d9818585611155565b6003546001600160a01b03163314610b9e5760405162461bcd60e51b815260040161070f90611d4c565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c439190611daa565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc99190611daa565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611daa565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610d8d5760405162461bcd60e51b815260040161070f90611d4c565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b6003546001600160a01b03163314610dd95760405162461bcd60e51b815260040161070f90611d4c565b60006008819055600955600019600c819055600d55565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e2a57610e2a611e0b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea79190611daa565b81600181518110610eba57610eba611e0b565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610efe9087908690600401611e65565b600060405180830381865afa158015610f1b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f439190810190611e86565b90508060018351610f549190611f44565b81518110610f6457610f64611e0b565b602002602001015192505050919050565b6003546001600160a01b03163314610f9f5760405162461bcd60e51b815260040161070f90611d4c565b600f805461ffff60a81b191661010160a81b179055565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b0382166110795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006110e78484610d38565b9050600019811461114f57818110156111425760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070f565b61114f8484848403610fb6565b50505050565b6001600160a01b0383166111b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070f565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b6001600160a01b0383166000908152602081905260409020548111156112925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b600081116112f45760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070f565b600f54600160b01b900460ff168061132457506001600160a01b03831660009081526002602052604090205460ff165b8061134757506001600160a01b03821660009081526002602052604090205460ff165b6113895760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070f565b826001600160a01b031661139b610bc9565b6001600160a01b03161480156113ca57506001600160a01b03821660009081526002602052604090205460ff16155b1561149a57600c548111156114305760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070f565b600d546001600160a01b0383166000908152602081905260409020546114569083611d97565b111561149a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b600f54600160a81b900460ff16156115b35730600090815260208190526040902054600f54600160a01b900460ff161580156114ef57506001600160a01b03841660009081526002602052604090205460ff16155b801561151457506001600160a01b03831660009081526002602052604090205460ff16155b80156115255750611525828461197e565b156115b157600f805460ff60a01b1916600160a01b179055600b54811061155657611551600b546119b1565b611569565b600a5481111561156957611569816119b1565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115a2573d6000803e3d6000fd5b50600f805460ff60a01b191690555b505b600f54600160a01b900460ff16806115d55750600f54600160a81b900460ff16155b1561166b576001600160a01b0383166000908152602081905260409020546115fd9082611b1b565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461162c9082611b27565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611fcd83398151915291016110ce565b6001600160a01b03831660009081526002602052604090205460ff161561174e576001600160a01b03831660009081526002602052604081205460ff166116b257816116cc565b816001600a546116c29190611f44565b6116cc9190611f57565b9050801561114f576001600160a01b0380851660009081526020819052604080822080548590039055918516815220546117069083611b27565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611fcd833981519152910160405180910390a350505050565b611756610bc9565b6001600160a01b0316826001600160a01b0316148061178d5750611778610bc9565b6001600160a01b0316836001600160a01b0316145b1561190957600061179c610bc9565b6001600160a01b0316836001600160a01b0316036117b957506009545b6117c1610bc9565b6001600160a01b0316846001600160a01b0316036117de57506008545b6001600160a01b0384166000908152602081905260409020546118019083611b1b565b6001600160a01b038516600090815260208190526040812091909155611832606461182c8585611b33565b90611b3f565b9050801561188d573060009081526020819052604081208054839290611859908490611d97565b909155505060405181815230906001600160a01b03871690600080516020611fcd8339815191529060200160405180910390a35b6118b961189a8483611b1b565b6001600160a01b03861660009081526020819052604090205490611b27565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611fcd8339815191526118f18685611b1b565b60405190815260200160405180910390a35050505050565b6001600160a01b0383166000908152602081905260409020546115fd9082611b1b565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611988610bc9565b6001600160a01b0316826001600160a01b03161480156119aa5750600a548310155b9392505050565b600e546119c99030906001600160a01b031683610fb6565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119fe576119fe611e0b565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7b9190611daa565b81600181518110611a8e57611a8e611e0b565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611ad4908590600090869030904290600401611f6e565b6000604051808303816000875af1158015611af3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ad79190810190611e86565b60006119aa8284611f44565b60006119aa8284611d97565b60006119aa8284611f57565b60006119aa8284611faa565b600060208083528351808285015260005b81811015611b7857858101830151858201604001528201611b5c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074457600080fd5b60008060408385031215611bc157600080fd5b8235611bcc81611b99565b946020939093013593505050565b600080600060608486031215611bef57600080fd5b8335611bfa81611b99565b92506020840135611c0a81611b99565b929592945050506040919091013590565b60008060408385031215611c2e57600080fd5b50508035926020909101359150565b600060208284031215611c4f57600080fd5b81356119aa81611b99565b80358015158114611c6a57600080fd5b919050565b60008060408385031215611c8257600080fd5b8235611c8d81611b99565b9150611c9b60208401611c5a565b90509250929050565b60008060408385031215611cb757600080fd5b8235611cc281611b99565b91506020830135611cd281611b99565b809150509250929050565b60008060408385031215611cf057600080fd5b611bcc83611c5a565b600060208284031215611d0b57600080fd5b5035919050565b600181811c90821680611d2657607f821691505b602082108103611d4657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611d81565b600060208284031215611dbc57600080fd5b81516119aa81611b99565b600080600060608486031215611ddc57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e5a5781516001600160a01b031687529582019590820190600101611e35565b509495945050505050565b828152604060208201526000611e7e6040830184611e21565b949350505050565b60006020808385031215611e9957600080fd5b825167ffffffffffffffff80821115611eb157600080fd5b818501915085601f830112611ec557600080fd5b815181811115611ed757611ed7611df5565b8060051b604051601f19603f83011681018181108582111715611efc57611efc611df5565b604052918252848201925083810185019188831115611f1a57600080fd5b938501935b82851015611f3857845184529385019392850192611f1f565b98975050505050505050565b818103818111156106df576106df611d81565b80820281158282048414176106df576106df611d81565b85815284602082015260a060408201526000611f8d60a0830186611e21565b6001600160a01b0394909416606083015250608001529392505050565b600082611fc757634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b2006dfcc7e62e774006ebf874e3adc5259059f907c126f33ccc45e9d6afc04564736f6c63430008130033

Deployed Bytecode Sourcemap

10838:11300:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11409:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;11409:55:0;;;;;;;;13237:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14239:228::-;;;;;;;;;;-1:-1:-1;14239:228:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;14239:228:0;1205:187:1;21829:114:0;;;;;;;;;;;;;:::i;:::-;;13558:108;;;;;;;;;;-1:-1:-1;13646:12:0;;13558:108;;11728:28;;;;;;;;;;-1:-1:-1;11728:28:0;;;;-1:-1:-1;;;11728:28:0;;;;;;14475:295;;;;;;;;;;-1:-1:-1;14475:295:0;;;;;:::i;:::-;;:::i;13457:93::-;;;;;;;;;;-1:-1:-1;13457:93:0;;13540:2;2000:36:1;;1988:2;1973:18;13457:93:0;1858:184:1;14778:266:0;;;;;;;;;;-1:-1:-1;14778:266:0;;;;;:::i;:::-;;:::i;11801:31::-;;;;;;;;;;-1:-1:-1;11801:31:0;;;;-1:-1:-1;;;11801:31:0;;;;;;11659:32;;;;;;;;;;-1:-1:-1;11659:32:0;;;;-1:-1:-1;;;;;11659:32:0;;;;;;-1:-1:-1;;;;;2235:32:1;;;2217:51;;2205:2;2190:18;11659:32:0;2047:227:1;12082:126:0;;;;;;;;;;-1:-1:-1;12082:126:0;;;;;:::i;:::-;;:::i;12216:95::-;;;;;;;;;;;;;:::i;11763:31::-;;;;;;;;;;-1:-1:-1;11763:31:0;;;;-1:-1:-1;;;11763:31:0;;;;;;13674:143;;;;;;;;;;-1:-1:-1;13674:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13791:18:0;13764:7;13791:18;;;;;;;;;;;;13674:143;12520:103;;;;;;;;;;;;;:::i;11537:51::-;;;;;;;;;;;;;;;;11059:50;;;;;;;;;;-1:-1:-1;11059:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16014:574;;;;;;;;;;;;;:::i;11118:20::-;;;;;;;;;;-1:-1:-1;11118:20:0;;;;-1:-1:-1;;;;;11118:20:0;;;11698:21;;;;;;;;;;-1:-1:-1;11698:21:0;;;;-1:-1:-1;;;;;11698:21:0;;;13345:104;;;;;;;;;;;;;:::i;15216:499::-;;;;;;;;;;-1:-1:-1;15216:499:0;;;;;:::i;:::-;;:::i;13825:220::-;;;;;;;;;;-1:-1:-1;13825:220:0;;;;;:::i;:::-;;:::i;12631:127::-;;;;;;;;;;-1:-1:-1;12631:127:0;;;;;:::i;:::-;;:::i;21565:256::-;;;;;;;;;;;;;:::i;14053:178::-;;;;;;;;;;-1:-1:-1;14053:178:0;;;;;:::i;:::-;;:::i;21951:147::-;;;;;;;;;;-1:-1:-1;21951:147:0;;;;;:::i;:::-;;:::i;11373:27::-;;;;;;;;;;;;;;;;15842:164;;;;;;;;;;;;;:::i;11340:26::-;;;;;;;;;;;;;;;;11471:59;;;;;;;;;;;;;;;;20259:395;;;;;;;;;;-1:-1:-1;20259:395:0;;;;;:::i;:::-;;:::i;11595:55::-;;;;;;;;;;;;;;;;15723:111;;;;;;;;;;;;;:::i;13237:100::-;13291:13;13324:5;13317:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13237:100;:::o;14239:228::-;14347:4;6946:10;14404:33;6946:10;14421:7;14430:6;14404:8;:33::i;:::-;14455:4;14448:11;;;14239:228;;;;;:::o;21829:114::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;;;;;;;;;21884:51:::1;::::0;21892:10:::1;::::0;21913:21:::1;21884:51:::0;::::1;;;::::0;::::1;::::0;;;21913:21;21892:10;21884:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21829:114::o:0;14475:295::-;14606:4;6946:10;14664:38;14680:4;6946:10;14695:6;14664:15;:38::i;:::-;14713:27;14723:4;14729:2;14733:6;14713:9;:27::i;:::-;-1:-1:-1;14758:4:0;;14475:295;-1:-1:-1;;;;14475:295:0:o;14778:266::-;14891:4;6946:10;14948:66;6946:10;14965:7;15003:10;14974:26;6946:10;14965:7;14974:9;:26::i;:::-;:39;;;;:::i;:::-;14948:8;:66::i;12082:126::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;12158:7:::1;:15:::0;;;;12184:8:::1;:16:::0;12082:126::o;12216:95::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;12279:1:::1;12269:7;:11:::0;;;12291:8:::1;:12:::0;12216:95::o;12520:103::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;12585:30:::1;12612:1;12585:18;:30::i;:::-;12520:103::o:0;16014:574::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;16075:8:::1;:71:::0;;-1:-1:-1;;;;;;16075:71:0::1;16103:42;16075:71:::0;;::::1;::::0;;;16159:55:::1;::::0;16176:4:::1;::::0;-1:-1:-1;;16159:8:0::1;:55::i;:::-;16254:8;;;;;;;;;-1:-1:-1::0;;;;;16254:8:0::1;-1:-1:-1::0;;;;;16254:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16236:48:0::1;;16307:4;16327:8;;;;;;;;;-1:-1:-1::0;;;;;16327:8:0::1;-1:-1:-1::0;;;;;16327:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16236:117;::::0;-1:-1:-1;;;;;;16236:117:0::1;::::0;;;;;;-1:-1:-1;;;;;5802:15:1;;;16236:117:0::1;::::0;::::1;5784:34:1::0;5854:15;;5834:18;;;5827:43;5719:18;;16236:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16227:6;:126:::0;;-1:-1:-1;;;;;16227:126:0;;::::1;-1:-1:-1::0;;;;;;16227:126:0;;::::1;;::::0;;16366:8:::1;::::0;::::1;:24;16398:21;16443:4;16463:24;16443:4:::0;-1:-1:-1;;;;;13791:18:0;13764:7;13791:18;;;;;;;;;;;;13674:143;16463:24:::1;16534:5;::::0;16366:214:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;16366:214:0;;;-1:-1:-1;;;;;6240:15:1;;;16366:214:0::1;::::0;::::1;6222:34:1::0;6272:18;;;6265:34;;;;16502:1:0::1;6315:18:1::0;;;6308:34;;;6358:18;;;6351:34;16534:5:0;;;::::1;6401:19:1::0;;;6394:44;16554:15:0::1;6454:19:1::0;;;6447:35;6156:19;;16366:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16014:574::o:0;13345:104::-;13401:13;13434:7;13427:14;;;;;:::i;15216:499::-;15334:4;6946:10;15334:4;15418:26;6946:10;15436:7;15418:9;:26::i;:::-;15391:53;;15497:15;15477:16;:35;;15455:122;;;;-1:-1:-1;;;15455:122:0;;7006:2:1;15455:122:0;;;6988:21:1;7045:2;7025:18;;;7018:30;7084:34;7064:18;;;7057:62;-1:-1:-1;;;7135:18:1;;;7128:35;7180:19;;15455:122:0;6804:401:1;15455:122:0;15613:61;15622:6;15630:7;15658:15;15639:16;:34;15613:8;:61::i;13825:220::-;13929:4;6946:10;13986:29;6946:10;14004:2;14008:6;13986:9;:29::i;12631:127::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12715:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12715:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12631:127::o;21565:256::-;21605:7;21625:19;21696:8;;;;;;;;;-1:-1:-1;;;;;21696:8:0;-1:-1:-1;;;;;21679:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21647:87:0;;21743:4;21767:8;;;;;;;;;-1:-1:-1;;;;;21767:8:0;-1:-1:-1;;;;;21750:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21647:137;;-1:-1:-1;;;;;;21647:137:0;;;;;;;-1:-1:-1;;;;;5802:15:1;;;21647:137:0;;;5784:34:1;5854:15;;5834:18;;;5827:43;5719:18;;21647:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14053:178::-;-1:-1:-1;;;;;14195:19:0;;;14168:7;14195:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14053:178::o;21951:147::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;22037:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;22037:19:0::1;-1:-1:-1::0;;;;22037:19:0;;::::1;::::0;;;::::1;::::0;;;22067:13:::1;:23:::0;21951:147::o;15842:164::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;15908:1:::1;15898:7;:11:::0;;;15920:8:::1;:12:::0;-1:-1:-1;;15945:5:0::1;:19:::0;;;15975:9:::1;:23:::0;15842:164::o;20259:395::-;20381:16;;;20395:1;20381:16;;;20342:21;20381:16;;;;;20322:7;;20342:21;;20381:16;20395:1;20381:16;;;;;;;;;;-1:-1:-1;20381:16:0;20374:23;;20426:4;20408;20413:1;20408:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20408:23:0;;;:7;;;;;;;;;;:23;;;;20469:8;;20452:33;;;-1:-1:-1;;;20452:33:0;;;;20469:8;;;;;20452:31;;:33;;;;;20408:7;;20452:33;;;;;20469:8;20452:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20442:4;20447:1;20442:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20442:43:0;;;:7;;;;;;;;;:43;20546:8;;20529:69;;-1:-1:-1;;;20529:69:0;;20496:30;;20546:8;;;;;20529:54;;:69;;20584:7;;20593:4;;20529:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20529:69:0;;;;;;;;;;;;:::i;:::-;20496:102;;20616:13;20644:1;20630:4;:11;:15;;;;:::i;:::-;20616:30;;;;;;;;:::i;:::-;;;;;;;20609:37;;;;20259:395;;;:::o;15723:111::-;11998:5;;-1:-1:-1;;;;;11998:5:0;12007:10;11998:19;11990:64;;;;-1:-1:-1;;;11990:64:0;;;;;;;:::i;:::-;15779:11:::1;:18:::0;;-1:-1:-1;;;;15808:18:0;-1:-1:-1;;;15808:18:0;;;15723:111::o;20662:382::-;-1:-1:-1;;;;;20799:20:0;;20791:69;;;;-1:-1:-1;;;20791:69:0;;9722:2:1;20791:69:0;;;9704:21:1;9761:2;9741:18;;;9734:30;9800:34;9780:18;;;9773:62;-1:-1:-1;;;9851:18:1;;;9844:34;9895:19;;20791:69:0;9520:400:1;20791:69:0;-1:-1:-1;;;;;20879:21:0;;20871:68;;;;-1:-1:-1;;;20871:68:0;;10127:2:1;20871:68:0;;;10109:21:1;10166:2;10146:18;;;10139:30;10205:34;10185:18;;;10178:62;-1:-1:-1;;;10256:18:1;;;10249:32;10298:19;;20871:68:0;9925:398:1;20871:68:0;-1:-1:-1;;;;;20950:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;21003:33;;160:25:1;;;21003:33:0;;133:18:1;21003:33:0;;;;;;;;20662:382;;;:::o;21052:505::-;21188:24;21215:26;21225:6;21233:7;21215:9;:26::i;:::-;21188:53;;-1:-1:-1;;21256:16:0;:37;21252:298;;21356:6;21336:16;:26;;21310:117;;;;-1:-1:-1;;;21310:117:0;;10530:2:1;21310:117:0;;;10512:21:1;10569:2;10549:18;;;10542:30;10608:31;10588:18;;;10581:59;10657:18;;21310:117:0;10328:353:1;21310:117:0;21471:52;21480:6;21488:7;21516:6;21497:16;:25;21471:8;:52::i;:::-;21177:380;21052:505;;;:::o;16596:3184::-;-1:-1:-1;;;;;16727:18:0;;16719:68;;;;-1:-1:-1;;;16719:68:0;;10888:2:1;16719:68:0;;;10870:21:1;10927:2;10907:18;;;10900:30;10966:34;10946:18;;;10939:62;-1:-1:-1;;;11017:18:1;;;11010:35;11062:19;;16719:68:0;10686:401:1;16719:68:0;-1:-1:-1;;;;;16806:16:0;;16798:64;;;;-1:-1:-1;;;16798:64:0;;11294:2:1;16798:64:0;;;11276:21:1;11333:2;11313:18;;;11306:30;11372:34;11352:18;;;11345:62;-1:-1:-1;;;11423:18:1;;;11416:33;11466:19;;16798:64:0;11092:399:1;16798:64:0;-1:-1:-1;;;;;16895:15:0;;:9;:15;;;;;;;;;;;:25;-1:-1:-1;16895:25:0;16873:113;;;;-1:-1:-1;;;16873:113:0;;11698:2:1;16873:113:0;;;11680:21:1;11737:2;11717:18;;;11710:30;11776:34;11756:18;;;11749:62;-1:-1:-1;;;11827:18:1;;;11820:36;11873:19;;16873:113:0;11496:402:1;16873:113:0;17014:1;17005:6;:10;16997:64;;;;-1:-1:-1;;;16997:64:0;;12105:2:1;16997:64:0;;;12087:21:1;12144:2;12124:18;;;12117:30;12183:34;12163:18;;;12156:62;-1:-1:-1;;;12234:18:1;;;12227:39;12283:19;;16997:64:0;11903:405:1;16997:64:0;17094:11;;-1:-1:-1;;;17094:11:0;;;;;:39;;-1:-1:-1;;;;;;17109:24:0;;;;;;:18;:24;;;;;;;;17094:39;:65;;;-1:-1:-1;;;;;;17137:22:0;;;;;;:18;:22;;;;;;;;17094:65;17072:134;;;;-1:-1:-1;;;17072:134:0;;12515:2:1;17072:134:0;;;12497:21:1;12554:2;12534:18;;;12527:30;-1:-1:-1;;;12573:18:1;;;12566:49;12632:18;;17072:134:0;12313:343:1;17072:134:0;17236:4;-1:-1:-1;;;;;17223:17:0;:9;:7;:9::i;:::-;-1:-1:-1;;;;;17223:17:0;;:44;;;;-1:-1:-1;;;;;;17245:22:0;;;;;;:18;:22;;;;;;;;17244:23;17223:44;17219:225;;;17302:5;;17292:6;:15;;17284:66;;;;-1:-1:-1;;;17284:66:0;;12863:2:1;17284:66:0;;;12845:21:1;12902:2;12882:18;;;12875:30;12941:34;12921:18;;;12914:62;-1:-1:-1;;;12992:18:1;;;12985:36;13038:19;;17284:66:0;12661:402:1;17284:66:0;17399:9;;-1:-1:-1;;;;;13791:18:0;;13764:7;13791:18;;;;;;;;;;;17373:22;;:6;:22;:::i;:::-;:35;;17365:67;;;;-1:-1:-1;;;17365:67:0;;13270:2:1;17365:67:0;;;13252:21:1;13309:2;13289:18;;;13282:30;-1:-1:-1;;;13328:18:1;;;13321:49;13387:18;;17365:67:0;13068:343:1;17365:67:0;17481:11;;-1:-1:-1;;;17481:11:0;;;;17477:740;;;17557:4;17509:27;17539:24;;;;;;;;;;;17603:16;;-1:-1:-1;;;17603:16:0;;;;17602:17;:63;;;;-1:-1:-1;;;;;;17641:24:0;;;;;;:18;:24;;;;;;;;17640:25;17602:63;:107;;;;-1:-1:-1;;;;;;17687:22:0;;;;;;:18;:22;;;;;;;;17686:23;17602:107;:154;;;;;17730:26;17745:6;17753:2;17730:14;:26::i;:::-;17580:626;;;17791:16;:23;;-1:-1:-1;;;;17791:23:0;-1:-1:-1;;;17791:23:0;;;17862:12;;17839:35;;17835:240;;17899:30;17916:12;;17899:16;:30::i;:::-;17835:240;;;17980:13;;17958:19;:35;17955:120;;;18018:37;18035:19;18018:16;:37::i;:::-;18103:9;;18095:50;;-1:-1:-1;;;;;18103:9:0;;;;18123:21;18095:50;;;;;18103:9;18095:50;18103:9;18095:50;18123:21;18103:9;18095:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18166:16:0;:24;;-1:-1:-1;;;;18166:24:0;;;17580:626;17494:723;17477:740;18233:16;;-1:-1:-1;;;18233:16:0;;;;;:32;;-1:-1:-1;18254:11:0;;-1:-1:-1;;;18254:11:0;;;;18253:12;18233:32;18229:1544;;;-1:-1:-1;;;;;18300:15:0;;:9;:15;;;;;;;;;;;:27;;18320:6;18300:19;:27::i;:::-;-1:-1:-1;;;;;18282:15:0;;;:9;:15;;;;;;;;;;;:45;;;;18358:13;;;;;;;:25;;18376:6;18358:17;:25::i;:::-;-1:-1:-1;;;;;18342:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18403:26;160:25:1;;;18342:13:0;;18403:26;;;;-1:-1:-1;;;;;;;;;;;18403:26:0;133:18:1;18403:26:0;14:177:1;18229:1544:0;-1:-1:-1;;;;;18451:24:0;;;;;;:18;:24;;;;;;;;18447:1326;;;-1:-1:-1;;;;;18514:24:0;;18492:19;18514:24;;;:18;:24;;;;;;;;:81;;18589:6;18514:81;;;18580:6;18575:1;18559:13;;:17;;;;:::i;:::-;18558:28;;;;:::i;:::-;18492:103;-1:-1:-1;18614:15:0;;18610:267;;-1:-1:-1;;;;;18701:15:0;;;:9;:15;;;;;;;;;;;;;:31;;;18683:49;;18786:13;;;;;;;:25;;18804:6;18786:17;:25::i;:::-;-1:-1:-1;;;;;18770:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18835:26;160:25:1;;;18770:13:0;;18835:26;;;;-1:-1:-1;;;;;;;;;;;18835:26:0;133:18:1;18835:26:0;;;;;;;18477:411;16366:214:::1;;;16014:574::o:0;18447:1326::-;18919:9;:7;:9::i;:::-;-1:-1:-1;;;;;18913:15:0;:2;-1:-1:-1;;;;;18913:15:0;;:36;;;;18940:9;:7;:9::i;:::-;-1:-1:-1;;;;;18932:17:0;:4;-1:-1:-1;;;;;18932:17:0;;18913:36;18909:853;;;18970:12;19011:9;:7;:9::i;:::-;-1:-1:-1;;;;;19005:15:0;:2;-1:-1:-1;;;;;19005:15:0;;19001:36;;-1:-1:-1;19029:8:0;;19001:36;19068:9;:7;:9::i;:::-;-1:-1:-1;;;;;19060:17:0;:4;-1:-1:-1;;;;;19060:17:0;;19056:37;;-1:-1:-1;19086:7:0;;19056:37;-1:-1:-1;;;;;19132:15:0;;:9;:15;;;;;;;;;;;:27;;19152:6;19132:19;:27::i;:::-;-1:-1:-1;;;;;19114:15:0;;:9;:15;;;;;;;;;;:45;;;;19200:25;19221:3;19200:16;:6;19211:4;19200:10;:16::i;:::-;:20;;:25::i;:::-;19180:45;-1:-1:-1;19248:13:0;;19244:167;;19304:4;19286:9;:24;;;;;;;;;;:37;;19314:9;;19286;:37;;19314:9;;19286:37;:::i;:::-;;;;-1:-1:-1;;19351:40:0;;160:25:1;;;19374:4:0;;-1:-1:-1;;;;;19351:40:0;;;-1:-1:-1;;;;;;;;;;;19351:40:0;148:2:1;133:18;19351:40:0;;;;;;;19244:167;19445:40;19463:21;:6;19474:9;19463:10;:21::i;:::-;-1:-1:-1;;;;;19445:13:0;;:9;:13;;;;;;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;19429:13:0;;;:9;:13;;;;;;;;;;:56;;;;19509:41;;-1:-1:-1;;;;;;;;;;;19528:21:0;:6;19539:9;19528:10;:21::i;:::-;19509:41;;160:25:1;;;148:2;133:18;19509:41:0;;;;;;;18951:615;;16366:214:::1;;;16014:574::o:0;18909:853::-;-1:-1:-1;;;;;19609:15:0;;:9;:15;;;;;;;;;;;:27;;19629:6;19609:19;:27::i;12323:189::-;12416:5;;;-1:-1:-1;;;;;12432:16:0;;;-1:-1:-1;;;;;;12432:16:0;;;;;;;12464:40;;12416:5;;;12432:16;12416:5;;12464:40;;12397:16;;12464:40;12386:126;12323:189;:::o;15052:156::-;15130:4;15164:9;:7;:9::i;:::-;-1:-1:-1;;;;;15153:20:0;:7;-1:-1:-1;;;;;15153:20:0;;:47;;;;;15187:13;;15177:6;:23;;15153:47;15146:54;15052:156;-1:-1:-1;;;15052:156:0:o;19788:463::-;19888:8;;19856:56;;19873:4;;-1:-1:-1;;;;;19888:8:0;19899:12;19856:8;:56::i;:::-;19949:16;;;19963:1;19949:16;;;;;;;;19925:21;;19949:16;;;;;;;;;;-1:-1:-1;19949:16:0;19925:40;;19994:4;19976;19981:1;19976:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19976:23:0;;;:7;;;;;;;;;;:23;;;;20037:8;;20020:33;;;-1:-1:-1;;;20020:33:0;;;;20037:8;;;;;20020:31;;:33;;;;;19976:7;;20020:33;;;;;20037:8;20020:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20010:4;20015:1;20010:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20010:43:0;;;:7;;;;;;;;;:43;20081:8;;20064:179;;-1:-1:-1;;;20064:179:0;;20081:8;;;20064:48;;:179;;20127:12;;20081:8;;20170:4;;20197;;20217:15;;20064:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20064:179:0;;;;;;;;;;;;:::i;3049:98::-;3107:7;3134:5;3138:1;3134;:5;:::i;2668:98::-;2726:7;2753:5;2757:1;2753;:5;:::i;3406:98::-;3464:7;3491:5;3495:1;3491;:5;:::i;3805:98::-;3863:7;3890:5;3894:1;3890;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2279:248::-;2347:6;2355;2408:2;2396:9;2387:7;2383:23;2379:32;2376:52;;;2424:1;2421;2414:12;2376:52;-1:-1:-1;;2447:23:1;;;2517:2;2502:18;;;2489:32;;-1:-1:-1;2279:248:1:o;2532:247::-;2591:6;2644:2;2632:9;2623:7;2619:23;2615:32;2612:52;;;2660:1;2657;2650:12;2612:52;2699:9;2686:23;2718:31;2743:5;2718:31;:::i;2992:160::-;3057:20;;3113:13;;3106:21;3096:32;;3086:60;;3142:1;3139;3132:12;3086:60;2992:160;;;:::o;3157:315::-;3222:6;3230;3283:2;3271:9;3262:7;3258:23;3254:32;3251:52;;;3299:1;3296;3289:12;3251:52;3338:9;3325:23;3357:31;3382:5;3357:31;:::i;:::-;3407:5;-1:-1:-1;3431:35:1;3462:2;3447:18;;3431:35;:::i;:::-;3421:45;;3157:315;;;;;:::o;3477:388::-;3545:6;3553;3606:2;3594:9;3585:7;3581:23;3577:32;3574:52;;;3622:1;3619;3612:12;3574:52;3661:9;3648:23;3680:31;3705:5;3680:31;:::i;:::-;3730:5;-1:-1:-1;3787:2:1;3772:18;;3759:32;3800:33;3759:32;3800:33;:::i;:::-;3852:7;3842:17;;;3477:388;;;;;:::o;3870:248::-;3935:6;3943;3996:2;3984:9;3975:7;3971:23;3967:32;3964:52;;;4012:1;4009;4002:12;3964:52;4035:26;4051:9;4035:26;:::i;4123:180::-;4182:6;4235:2;4223:9;4214:7;4210:23;4206:32;4203:52;;;4251:1;4248;4241:12;4203:52;-1:-1:-1;4274:23:1;;4123:180;-1:-1:-1;4123:180:1:o;4308:380::-;4387:1;4383:12;;;;4430;;;4451:61;;4505:4;4497:6;4493:17;4483:27;;4451:61;4558:2;4550:6;4547:14;4527:18;4524:38;4521:161;;4604:10;4599:3;4595:20;4592:1;4585:31;4639:4;4636:1;4629:15;4667:4;4664:1;4657:15;4521:161;;4308:380;;;:::o;4693:356::-;4895:2;4877:21;;;4914:18;;;4907:30;4973:34;4968:2;4953:18;;4946:62;5040:2;5025:18;;4693:356::o;5054:127::-;5115:10;5110:3;5106:20;5103:1;5096:31;5146:4;5143:1;5136:15;5170:4;5167:1;5160:15;5186:125;5251:9;;;5272:10;;;5269:36;;;5285:18;;:::i;5316:251::-;5386:6;5439:2;5427:9;5418:7;5414:23;5410:32;5407:52;;;5455:1;5452;5445:12;5407:52;5487:9;5481:16;5506:31;5531:5;5506:31;:::i;6493:306::-;6581:6;6589;6597;6650:2;6638:9;6629:7;6625:23;6621:32;6618:52;;;6666:1;6663;6656:12;6618:52;6695:9;6689:16;6679:26;;6745:2;6734:9;6730:18;6724:25;6714:35;;6789:2;6778:9;6774:18;6768:25;6758:35;;6493:306;;;;;:::o;7210:127::-;7271:10;7266:3;7262:20;7259:1;7252:31;7302:4;7299:1;7292:15;7326:4;7323:1;7316:15;7342:127;7403:10;7398:3;7394:20;7391:1;7384:31;7434:4;7431:1;7424:15;7458:4;7455:1;7448:15;7474:461;7527:3;7565:5;7559:12;7592:6;7587:3;7580:19;7618:4;7647:2;7642:3;7638:12;7631:19;;7684:2;7677:5;7673:14;7705:1;7715:195;7729:6;7726:1;7723:13;7715:195;;;7794:13;;-1:-1:-1;;;;;7790:39:1;7778:52;;7850:12;;;;7885:15;;;;7826:1;7744:9;7715:195;;;-1:-1:-1;7926:3:1;;7474:461;-1:-1:-1;;;;;7474:461:1:o;7940:332::-;8147:6;8136:9;8129:25;8190:2;8185;8174:9;8170:18;8163:30;8110:4;8210:56;8262:2;8251:9;8247:18;8239:6;8210:56;:::i;:::-;8202:64;7940:332;-1:-1:-1;;;;7940:332:1:o;8277:1105::-;8372:6;8403:2;8446;8434:9;8425:7;8421:23;8417:32;8414:52;;;8462:1;8459;8452:12;8414:52;8495:9;8489:16;8524:18;8565:2;8557:6;8554:14;8551:34;;;8581:1;8578;8571:12;8551:34;8619:6;8608:9;8604:22;8594:32;;8664:7;8657:4;8653:2;8649:13;8645:27;8635:55;;8686:1;8683;8676:12;8635:55;8715:2;8709:9;8737:2;8733;8730:10;8727:36;;;8743:18;;:::i;:::-;8789:2;8786:1;8782:10;8821:2;8815:9;8884:2;8880:7;8875:2;8871;8867:11;8863:25;8855:6;8851:38;8939:6;8927:10;8924:22;8919:2;8907:10;8904:18;8901:46;8898:72;;;8950:18;;:::i;:::-;8986:2;8979:22;9036:18;;;9070:15;;;;-1:-1:-1;9112:11:1;;;9108:20;;;9140:19;;;9137:39;;;9172:1;9169;9162:12;9137:39;9196:11;;;;9216:135;9232:6;9227:3;9224:15;9216:135;;;9298:10;;9286:23;;9249:12;;;;9329;;;;9216:135;;;9370:6;8277:1105;-1:-1:-1;;;;;;;;8277:1105:1:o;9387:128::-;9454:9;;;9475:11;;;9472:37;;;9489:18;;:::i;13416:168::-;13489:9;;;13520;;13537:15;;;13531:22;;13517:37;13507:71;;13558:18;;:::i;13589:582::-;13888:6;13877:9;13870:25;13931:6;13926:2;13915:9;13911:18;13904:34;13974:3;13969:2;13958:9;13954:18;13947:31;13851:4;13995:57;14047:3;14036:9;14032:19;14024:6;13995:57;:::i;:::-;-1:-1:-1;;;;;14088:32:1;;;;14083:2;14068:18;;14061:60;-1:-1:-1;14152:3:1;14137:19;14130:35;13987:65;13589:582;-1:-1:-1;;;13589:582:1:o;14176:217::-;14216:1;14242;14232:132;;14286:10;14281:3;14277:20;14274:1;14267:31;14321:4;14318:1;14311:15;14349:4;14346:1;14339:15;14232:132;-1:-1:-1;14378:9:1;;14176:217::o

Swarm Source

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