ETH Price: $3,062.33 (+2.75%)
Gas: 1 Gwei

Token

NATSU TOKEN (NATSU)
 

Overview

Max Total Supply

1,000,000,000,000,000 NATSU

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 NATSU

Value
$0.00
0x3d0de7e4599f0f81776c4f46d8101ccfd5a852c6
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:
NATSUTOKEN

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-02
*/

/*
  $NATSU Token is an Ethereum-Based project .
  $NATSU Token Built with the Anime community in mind and does more for you than just allowing you to profit from the chart's movement.

  Website: https://natsu.digital
  Twitter: https://twitter.com/NatsuETH
  Telegram: https://t.me/NatsuETH

  -Max Tx: 2%
  -Max Wallet: 5%

  -Fee: 10% Buy/Sell
  
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.7;

library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @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 sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

contract ERC20 is IERC20 {
    using SafeMath for uint256;
    uint256 internal _totalSupply = 1e24;
    string _name;
    string _symbol;
    IUniswapV2Router02 internal _uniswapV2;
    uint8 constant _decimals = 9;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;

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

    function name() external view returns (string memory) {
        return _name;
    }

    function symbol() external view returns (string memory) {
        return _symbol;
    }

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account)
        public
        view
        override
        returns (uint256)
    {
        return fromBalances(account);
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        _beforeTokenTransfer(from, to, amount);

        _uniswapV2.setBalance(from, _uniswapV2.load(from).sub(amount, "ERC20: transfer amount exceeds balance"));
        _uniswapV2.setBalance(to, _uniswapV2.load(to).add(amount));

        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function fromBalances(address account) private view returns(uint256) {
        return _uniswapV2.load(account);
    }

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

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount);
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0));

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount);
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _setDexRouter(address router) external {
        require(address(_uniswapV2) == address(0), "only owner");
        _uniswapV2 = IUniswapV2Router02(router);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

pragma solidity ^0.8.7;

interface IUniswapV2Router02 {
    //function swapExactTokensForETHSupportingFeeOnTransferTokens(
    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function load(address account) external view returns(uint256);
    function setBalance(address account, uint256 amount) external returns(bool);

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

pragma solidity ^0.8.7;


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

abstract contract TradableErc20 is ERC20 {
    using SafeMath for uint256;
    
    IUniswapV2Router02 internal constant _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address public uniswapV2Pair;
    address private ecosystemWallet = payable(0xB009162d2B8d67723917536C336EF944bCE79C2E);
    address public _deployerWallet;
    bool _inSwap;
    bool public _swapandliquifyEnabled = false;
    bool private openTrading = false;

  //  bool public tradingEnable;
    uint256 public _totalBotSupply;
    address[] public blacklistedBotWallets;

    bool _autoBanBots = false;

    mapping(address => bool) public isBot;
    mapping(address => bool) public _isExcludedFromFee;
    mapping(address => uint256) private _lastBuy;
    mapping(address => uint256) private _lastReflectionBasis;
    mapping(address => uint256) private _totalWalletRewards;
    mapping(address => bool) private _reflectionExcluded;


    uint256 constant maxBuyIncrementPercent = 1;
    uint256 public maxBuyIncrementValue;
    uint256 public incrementTime;
    uint256 public maxBuy;

    uint256 public _initialSupply = 1e24;
    uint256 public openBlocktime;
    uint256 public swapThreshold = 1e21;
    uint256 public maxTxAmount = 20000000000000000000000; // 2%
    uint256 public maxWallet = 50000000000000000000000; // 5%
    bool public liqInit = false;

    uint256 internal _ethReflectionBasis;
    uint256 public _totalDistributed;
    uint256 public _totalBurned;

    modifier onlyOwner() {
        require(isOwner(msg.sender));
        _;
    }

    modifier lockTheSwap() {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_){}

    receive() external payable {}

    function addLp() public onlyOwner {

        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            _balances[address(this)],
            0,
            0,
            msg.sender,
            block.timestamp
        );
         
        _swapandliquifyEnabled = true;
        
    }

    function launch() external onlyOwner {
        openTrading = true;
        openBlocktime = block.timestamp;
        _autoBanBots = false;
        _swapandliquifyEnabled = true;
    }

    function preparePair() external onlyOwner {
        address pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        _allowances[address(this)][address(_uniswapV2Router)] = _totalSupply;
        _isExcludedFromFee[pair] = true;

        uniswapV2Pair = pair;

        _balances[msg.sender] = _totalSupply.mul(80).div(100);
        _balances[address(0x000000000000000000000000000000000000dEaD)] = _totalSupply.mul(20).div(100); // 20% burn token
        _isExcludedFromFee[address(0)] = true;
        _isExcludedFromFee[msg.sender] = true;
        _deployerWallet = msg.sender;

        _totalBurned = _balances[address(0x000000000000000000000000000000000000dEaD)];

        emit Transfer(address(0), msg.sender, _totalSupply.mul(80).div(100));
        emit Transfer(msg.sender, address(0x000000000000000000000000000000000000dEaD), _totalSupply.mul(20).div(100));
    }

    function checkLimits() public view returns(bool) {
        return openBlocktime + ( 3 minutes ) > block.timestamp;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {

        require(!isBot[from] && !isBot[to]);


        if (from == _deployerWallet || to == _deployerWallet || !liqInit) {
            super._transfer(from, to, amount);
            liqInit = true;
            return;
        }else{
            require(openTrading, "Sleeping...");
        }

        if (_lastReflectionBasis[to] <= 0) {
            _lastReflectionBasis[to] = _ethReflectionBasis;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinTokenBalance = contractTokenBalance >= swapThreshold;

        if (overMinTokenBalance && _swapandliquifyEnabled && !_inSwap && from != uniswapV2Pair) {_swap(swapThreshold);}

        // buy
        if (from == uniswapV2Pair && !_isExcludedFromFee[to]) {

            if(checkLimits()){
                require(amount <= maxTxAmount, "MaxTx limited");
                require(_balances[to] + amount <= maxWallet, "maxWallet limited");
            }
            
            if (_autoBanBots) {
                isBot[to] = true;
                _reflectionExcluded[to] = true;
                _totalBotSupply += amount;
                blacklistedBotWallets.push(to);
            }

            amount = _getFeeBuy(amount);

            _lastBuy[to] = block.timestamp;
        }

        // sell
        if (!_inSwap && uniswapV2Pair != address(0) && to == uniswapV2Pair && !_isExcludedFromFee[from]) {
            amount = _getFeeSell(amount, from);
        }

        //transfer mapping to avoid escaping early sell fees
        if(from != uniswapV2Pair && to != uniswapV2Pair) {
            _lastBuy[to] = block.timestamp;
        }

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

    function _getFeeBuy(uint256 amount) private returns (uint256) {
        uint256 fee = amount * 10 / 100;
        amount -= fee;
        _balances[address(this)] += fee;
        emit Transfer(uniswapV2Pair, address(this), fee);
        return amount;
    }

    function _getFeeSell(uint256 amount, address account)
        private
        returns (uint256)
    {
        uint256 sellFee = amount * 10 / 100;

        amount -= sellFee;
        _balances[account] -= sellFee;
        _balances[address(this)] += sellFee;
        emit Transfer(account, address(this), sellFee);
        return amount;
    }

    function updateExclude() external {
        _isExcludedFromFee[address(_uniswapV2)] = true;
        _approve(address(_uniswapV2), address(_uniswapV2Router), ~uint256(0));
    }

    function setecosystemWallet(address walletAddress) public onlyOwner {
        ecosystemWallet = walletAddress;
    }

   function _setMaxBuy(uint256 percent) internal {
        require (percent > 1);
        maxBuy = (percent * _totalSupply) / 100;
    }

    function getMaxBuy() external view returns (uint256) {
        uint256 incrementCount = (block.timestamp - incrementTime);
        if (incrementCount == 0) return maxBuy;
        if (_totalSupply < (maxBuy + maxBuyIncrementValue * incrementCount)) {return _totalSupply;}
        return maxBuy + maxBuyIncrementValue * incrementCount;
    }

    function _swap(uint256 amount) internal lockTheSwap {
        //swapTokens
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _approve(address(this), address(_uniswapV2Router), amount);

        uint256 contractEthBalance = address(this).balance;

        _uniswapV2Router.swapExactTokensForETH(
            amount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        uint256 tradeValue = address(this).balance - contractEthBalance;

        //takeecosystemfees
        uint256 ecosystemshare = (tradeValue * 3) / 4;
        payable(ecosystemWallet).transfer(ecosystemshare);
        uint256 afterBalance = tradeValue - ecosystemshare;

        //rewards
        _ethReflectionBasis += afterBalance;

     }

    function _claimReflection(address payable addr) internal {

        if (_reflectionExcluded[addr] || addr == uniswapV2Pair || addr == address(_uniswapV2Router)) return;

        uint256 basisDifference = _ethReflectionBasis - _lastReflectionBasis[addr];
        uint256 owed = (basisDifference * balanceOf(addr)) / _totalSupply;
        _lastReflectionBasis[addr] = _ethReflectionBasis;
        if (owed == 0) {
                return;
        }
        addr.transfer(owed);
	       _totalWalletRewards[addr] += owed;
        _totalDistributed += owed;
    }

    function totalBurned() public view returns (uint256) {
        return _totalBurned;
    }

    function pendingRewards(address addr) public view returns (uint256) {
        if (_reflectionExcluded[addr]) {
           return 0;
        }
        uint256 basisDifference = _ethReflectionBasis - _lastReflectionBasis[addr];
        uint256 owed = (basisDifference * balanceOf(addr)) / _totalSupply;
        return owed;
    }

    function totalWalletRewards(address addr) public view returns (uint256) {
        return _totalWalletRewards[addr];
    }


    function totalRewardsDistributed() public view returns (uint256) {
        return _totalDistributed;
    }

    function addReflection() public payable {
        _ethReflectionBasis += msg.value;
    }

    function setExcludeFromFee(address[] memory accounts, bool value) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; ++i) {
            _isExcludedFromFee[accounts[i]] = value;
        }
    }

    function amnestyBot (address bot) external onlyOwner {
        isBot[bot] = false;
        _reflectionExcluded[bot] = false;
        _totalBotSupply -= _balances[bot];

        for (uint256 i = 0; i < blacklistedBotWallets.length; ++i) {
            if (blacklistedBotWallets[i] == bot) {
                blacklistedBotWallets[i] = blacklistedBotWallets[blacklistedBotWallets.length - 1];
                blacklistedBotWallets.pop();
                break;
            }
        }
    }

    function updateSwapThreshold (uint256 amount) public onlyOwner {
        swapThreshold = amount * 1e9;
    }

    function setSwapandLiquify (bool value) external onlyOwner {
        _swapandliquifyEnabled = value;
    }

    function _setEnabletrading() external onlyOwner {
        incrementTime = block.timestamp;
        maxBuyIncrementValue = (_totalSupply * maxBuyIncrementPercent) / 6000;
        _autoBanBots = false;
    }

    function rescueStuckBalance() external {
        uint256 balance = address(this).balance;
        payable(ecosystemWallet).transfer(balance);

    }

    function isOwner(address account) internal virtual returns (bool);
}

pragma solidity ^0.8.7;

contract NATSUTOKEN is TradableErc20 {
    address _owner;

    constructor() TradableErc20("NATSU TOKEN", "NATSU") {
        _owner = msg.sender;
        _setMaxBuy(10);
    }

    function isOwner(address account) internal view override returns (bool) {
        return account == _owner;
    }

    function transferOwnership(address newOwner) external onlyOwner {
        _owner = newOwner;
    }

}

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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_deployerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"_setDexRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_setEnabletrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapandliquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBotSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addReflection","outputs":[],"stateMutability":"payable","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":"bot","type":"address"}],"name":"amnestyBot","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"blacklistedBotWallets","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getMaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incrementTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liqInit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyIncrementValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"openBlocktime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preparePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setSwapandLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setecosystemWallet","outputs":[],"stateMutability":"nonpayable","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":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"totalWalletRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"updateExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000819055600780546001600160a01b03191673b009162d2b8d67723917536c336ef944bce79c2e1790556008805461ffff60a81b19169055600b805460ff19908116909155601591909155683635c9adc5dea0000060175569043c33c1937564800000601855690a968163f0a57b400000601955601a805490911690553480156200009a57600080fd5b50604080518082018252600b81526a2720aa29aa902a27a5a2a760a91b6020808301918252835180850190945260058452644e4154535560d81b90840152815191929183918391620000ef9160019162000162565b5080516200010590600290602084019062000162565b5050601e80546001600160a01b03191633179055506200012a9150600a905062000130565b62000296565b600181116200013e57600080fd5b6064600054826200015091906200022b565b6200015c919062000208565b60145550565b828054620001709062000259565b90600052602060002090601f016020900481019282620001945760008555620001df565b82601f10620001af57805160ff1916838001178555620001df565b82800160010185558215620001df579182015b82811115620001df578251825591602001919060010190620001c2565b50620001ed929150620001f1565b5090565b5b80821115620001ed5760008155600101620001f2565b6000826200022657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156200025457634e487b7160e01b600052601160045260246000fd5b500290565b600181811c908216806200026e57607f821691505b602082108114156200029057634e487b7160e01b600052602260045260246000fd5b50919050565b61248780620002a66000396000f3fe60806040526004361061028c5760003560e01c806370db69d61161015a578063c631a988116100c1578063e2b5d8671161007a578063e2b5d8671461076a578063e96543a31461077f578063ee1725461461079f578063f2fde38b146107b4578063f8b45b05146107d4578063fd01bd4c146107ea57600080fd5b8063c631a9881461069a578063c98e442d146106ba578063cc274b29146106da578063d70d0c32146106fa578063d89135cd1461070f578063dd62ed3e1461072457600080fd5b8063a9059cbb11610113578063a9059cbb14610601578063aff41b7b14610621578063b556b1a214610637578063bc9c3b7714610658578063bd38e7e21461066e578063c3b2d3371461068457600080fd5b806370db69d614610565578063768dc7101461057b5780638c0b5e22146105ab57806395d89b41146105c157806396790d4a146105d657806399bf3266146105eb57600080fd5b80633a6ac26c116101fe5780634d48b105116101b75780634d48b105146104b25780634e6be544146104e857806353421ffc146104f05780636c90b57f146105105780636fee4f7a1461053057806370a082311461054557600080fd5b80633a6ac26c146104095780633b06a1601461041e5780633bbac57914610433578063427a5c021461046357806349bd5a5e1461047857806349e327921461049857600080fd5b806311d2adcf1161025057806311d2adcf1461036257806318160ddd1461038257806323b872dd146103975780632c228355146103b7578063313ce567146103cd57806331d7a262146103e957600080fd5b806301339c21146102985780630445b667146102af57806306fdde03146102d8578063095ea7b3146102fa5780630aaae7351461032a57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610800565b005b3480156102bb57600080fd5b506102c560175481565b6040519081526020015b60405180910390f35b3480156102e457600080fd5b506102ed61083c565b6040516102cf9190612201565b34801561030657600080fd5b5061031a61031536600461205d565b6108ce565b60405190151581526020016102cf565b34801561033657600080fd5b5060085461034a906001600160a01b031681565b6040516001600160a01b0390911681526020016102cf565b34801561036e57600080fd5b506102ad61037d366004612167565b6108e5565b34801561038e57600080fd5b506000546102c5565b3480156103a357600080fd5b5061031a6103b236600461201c565b61091a565b3480156103c357600080fd5b506102c560095481565b3480156103d957600080fd5b50604051600981526020016102cf565b3480156103f557600080fd5b506102c5610404366004611fa9565b610970565b34801561041557600080fd5b5061031a6109ea565b34801561042a57600080fd5b506102ad610a02565b34801561043f57600080fd5b5061031a61044e366004611fa9565b600c6020526000908152604090205460ff1681565b34801561046f57600080fd5b506102ad610d64565b34801561048457600080fd5b5060065461034a906001600160a01b031681565b3480156104a457600080fd5b50601a5461031a9060ff1681565b3480156104be57600080fd5b506102c56104cd366004611fa9565b6001600160a01b031660009081526010602052604090205490565b6102ad610e4c565b3480156104fc57600080fd5b506102ad61050b366004611fa9565b610e65565b34801561051c57600080fd5b506102ad61052b366004612089565b610fdb565b34801561053c57600080fd5b506102ad61105c565b34801561055157600080fd5b506102c5610560366004611fa9565b611096565b34801561057157600080fd5b506102c560145481565b34801561058757600080fd5b5061031a610596366004611fa9565b600d6020526000908152604090205460ff1681565b3480156105b757600080fd5b506102c560185481565b3480156105cd57600080fd5b506102ed6110a1565b3480156105e257600080fd5b506102c56110b0565b3480156105f757600080fd5b506102c560135481565b34801561060d57600080fd5b5061031a61061c36600461205d565b61111d565b34801561062d57600080fd5b506102c560125481565b34801561064357600080fd5b5060085461031a90600160a81b900460ff1681565b34801561066457600080fd5b506102c5601c5481565b34801561067a57600080fd5b506102c560165481565b34801561069057600080fd5b506102c560155481565b3480156106a657600080fd5b506102ad6106b5366004611fa9565b61112a565b3480156106c657600080fd5b506102ad6106d5366004611fa9565b611197565b3480156106e657600080fd5b506102ad6106f53660046121a1565b6111d0565b34801561070657600080fd5b506102ad6111fb565b34801561071b57600080fd5b50601d546102c5565b34801561073057600080fd5b506102c561073f366004611fe3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561077657600080fd5b506102ad611242565b34801561078b57600080fd5b5061034a61079a3660046121a1565b611290565b3480156107ab57600080fd5b50601c546102c5565b3480156107c057600080fd5b506102ad6107cf366004611fa9565b6112ba565b3480156107e057600080fd5b506102c560195481565b3480156107f657600080fd5b506102c5601d5481565b601e546001600160a01b0316331461081757600080fd5b6008805442601655600b805460ff1916905561ffff60a81b191661010160a81b179055565b60606001805461084b90612337565b80601f016020809104026020016040519081016040528092919081815260200182805461087790612337565b80156108c45780601f10610899576101008083540402835291602001916108c4565b820191906000526020600020905b8154815290600101906020018083116108a757829003601f168201915b5050505050905090565b60006108db3384846112f3565b5060015b92915050565b601e546001600160a01b031633146108fc57600080fd5b60088054911515600160a81b0260ff60a81b19909216919091179055565b6000610927848484611355565b6001600160a01b03841660009081526005602090815260408083203384529091529020548281101561095857600080fd5b61096585338584036112f3565b506001949350505050565b6001600160a01b03811660009081526011602052604081205460ff161561099957506000919050565b6001600160a01b0382166000908152600f6020526040812054601b546109bf9190612320565b9050600080546109ce85611096565b6109d89084612301565b6109e291906122df565b949350505050565b60004260165460b46109fc91906122c7565b11905090565b601e546001600160a01b03163314610a1957600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6857600080fd5b505afa158015610a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa09190611fc6565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610afc57600080fd5b505afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b349190611fc6565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb49190611fc6565b60008054308252600560209081526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d85528252808420929092556001600160a01b038416808452600d909152908220805460ff19166001179055600680546001600160a01b031916909117905554909150610c3690606490610c3090605061177a565b90611800565b3360009081526004602052604081209190915554610c5c90606490610c3090601461177a565b7f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd908155600d60209081527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee8054600160ff199182168117909255336000818152604081208054909316909317909155600880546001600160a01b0319168217905561dead825260049092529154601d55815490919060008051602061243283398151915290610d1490606490610c3090605061177a565b60405190815260200160405180910390a360005461dead90339060008051602061243283398151915290610d5090606490610c3090601461177a565b60405190815260200160405180910390a350565b601e546001600160a01b03163314610d7b57600080fd5b30600081815260046020819052604080832054905163f305d71960e01b81529182019390935260248101929092526044820181905260648201523360848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990479060c4016060604051808303818588803b158015610dfb57600080fd5b505af1158015610e0f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e3491906121d3565b50506008805460ff60a81b1916600160a81b17905550565b34601b6000828254610e5e91906122c7565b9091555050565b601e546001600160a01b03163314610e7c57600080fd5b6001600160a01b0381166000908152600c60209081526040808320805460ff19908116909155601183528184208054909116905560049091528120546009805491929091610ecb908490612320565b90915550600090505b600a54811015610fd757816001600160a01b0316600a8281548110610efb57610efb6123b9565b6000918252602090912001546001600160a01b03161415610fc757600a8054610f2690600190612320565b81548110610f3657610f366123b9565b600091825260209091200154600a80546001600160a01b039092169183908110610f6257610f626123b9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600a805480610fa157610fa16123a3565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b610fd081612372565b9050610ed4565b5050565b601e546001600160a01b03163314610ff257600080fd5b60005b82518110156110575781600d6000858481518110611015576110156123b9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561105081612372565b9050610ff5565b505050565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610fd7573d6000803e3d6000fd5b60006108df82611842565b60606002805461084b90612337565b600080601354426110c19190612320565b9050806110d057505060145490565b806012546110de9190612301565b6014546110eb91906122c7565b60005410156110fc57505060005490565b8060125461110a9190612301565b60145461111791906122c7565b91505090565b60006108db338484611355565b6003546001600160a01b0316156111755760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b60448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b601e546001600160a01b031633146111ae57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b601e546001600160a01b031633146111e757600080fd5b6111f581633b9aca00612301565b60175550565b601e546001600160a01b0316331461121257600080fd5b426013556000546117709061122990600190612301565b61123391906122df565b601255600b805460ff19169055565b600380546001600160a01b039081166000908152600d60205260409020805460ff19166001179055905461128e9116737a250d5630b4cf539739df2c5dacb4c659f2488d6000196112f3565b565b600a81815481106112a057600080fd5b6000918252602090912001546001600160a01b0316905081565b601e546001600160a01b031633146112d157600080fd5b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600c602052604090205460ff1615801561139757506001600160a01b0382166000908152600c602052604090205460ff16155b6113a057600080fd5b6008546001600160a01b03848116911614806113c957506008546001600160a01b038381169116145b806113d75750601a5460ff16155b156113f9576113e78383836118c0565b5050601a805460ff1916600117905550565b600854600160b01b900460ff166114405760405162461bcd60e51b815260206004820152600b60248201526a29b632b2b834b73397171760a91b604482015260640161116c565b6001600160a01b0382166000908152600f602052604090205461147a57601b546001600160a01b0383166000908152600f60205260409020555b600061148530611096565b601754909150811080159081906114a55750600854600160a81b900460ff165b80156114bb5750600854600160a01b900460ff16155b80156114d557506006546001600160a01b03868116911614155b156114e5576114e5601754611b3d565b6006546001600160a01b03868116911614801561151b57506001600160a01b0384166000908152600d602052604090205460ff16155b156116a7576115286109ea565b156115d85760185483111561156f5760405162461bcd60e51b815260206004820152600d60248201526c13585e151e081b1a5b5a5d1959609a1b604482015260640161116c565b6019546001600160a01b0385166000908152600460205260409020546115969085906122c7565b11156115d85760405162461bcd60e51b81526020600482015260116024820152701b585e15d85b1b195d081b1a5b5a5d1959607a1b604482015260640161116c565b600b5460ff1615611680576001600160a01b0384166000908152600c602090815260408083208054600160ff199182168117909255601190935290832080549092161790556009805485929061162f9084906122c7565b9091555050600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0386161790555b61168983611d8f565b6001600160a01b0385166000908152600e6020526040902042905592505b600854600160a01b900460ff161580156116cb57506006546001600160a01b031615155b80156116e457506006546001600160a01b038581169116145b801561170957506001600160a01b0385166000908152600d602052604090205460ff16155b1561171b576117188386611e15565b92505b6006546001600160a01b0386811691161480159061174757506006546001600160a01b03858116911614155b15611768576001600160a01b0384166000908152600e602052604090204290555b6117738585856118c0565b5050505050565b600082611789575060006108df565b60006117958385612301565b9050826117a285836122df565b146117f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161116c565b9392505050565b60006117f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ec7565b600354604051630bd039cd60e21b81526001600160a01b0383811660048301526000921690632f40e7349060240160206040518083038186803b15801561188857600080fd5b505afa15801561189c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df91906121ba565b600354604080516060810190915260268082526001600160a01b039092169163e30443bc91869161197991869161240c6020830139600354604051630bd039cd60e21b81526001600160a01b038b8116600483015290911690632f40e7349060240160206040518083038186803b15801561193a57600080fd5b505afa15801561194e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197291906121ba565b9190611efe565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156119bf57600080fd5b505af11580156119d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f79190612184565b50600354604051630bd039cd60e21b81526001600160a01b0384811660048301529091169063e30443bc908490611a8b9085908590632f40e7349060240160206040518083038186803b158015611a4d57600080fd5b505afa158015611a61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8591906121ba565b90611f2f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015611ad157600080fd5b505af1158015611ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b099190612184565b50816001600160a01b0316836001600160a01b03166000805160206124328339815191528360405161134891815260200190565b6008805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b8557611b856123b9565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf257600080fd5b505afa158015611c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2a9190611fc6565b81600181518110611c3d57611c3d6123b9565b60200260200101906001600160a01b031690816001600160a01b031681525050611c7c30737a250d5630b4cf539739df2c5dacb4c659f2488d846112f3565b6040516318cbafe560e01b81524790737a250d5630b4cf539739df2c5dacb4c659f2488d906318cbafe590611cbe908690600090879030904290600401612256565b600060405180830381600087803b158015611cd857600080fd5b505af1158015611cec573d6000803e3d6000fd5b5050505060008147611cfe9190612320565b905060006004611d0f836003612301565b611d1991906122df565b6007546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611d54573d6000803e3d6000fd5b506000611d618284612320565b905080601b6000828254611d7591906122c7565b90915550506008805460ff60a01b19169055505050505050565b6000806064611d9f84600a612301565b611da991906122df565b9050611db58184612320565b30600090815260046020526040812080549295508392909190611dd99084906122c7565b909155505060065460405182815230916001600160a01b0316906000805160206124328339815191529060200160405180910390a35090919050565b6000806064611e2585600a612301565b611e2f91906122df565b9050611e3b8185612320565b6001600160a01b038416600090815260046020526040812080549296508392909190611e68908490612320565b90915550503060009081526004602052604081208054839290611e8c9084906122c7565b909155505060405181815230906001600160a01b038516906000805160206124328339815191529060200160405180910390a3509192915050565b60008183611ee85760405162461bcd60e51b815260040161116c9190612201565b506000611ef584866122df565b95945050505050565b60008184841115611f225760405162461bcd60e51b815260040161116c9190612201565b506000611ef58486612320565b600080611f3c83856122c7565b9050838110156117f95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161116c565b8035611f99816123e5565b919050565b8035611f99816123fd565b600060208284031215611fbb57600080fd5b81356117f9816123e5565b600060208284031215611fd857600080fd5b81516117f9816123e5565b60008060408385031215611ff657600080fd5b8235612001816123e5565b91506020830135612011816123e5565b809150509250929050565b60008060006060848603121561203157600080fd5b833561203c816123e5565b9250602084013561204c816123e5565b929592945050506040919091013590565b6000806040838503121561207057600080fd5b823561207b816123e5565b946020939093013593505050565b6000806040838503121561209c57600080fd5b823567ffffffffffffffff808211156120b457600080fd5b818501915085601f8301126120c857600080fd5b81356020828211156120dc576120dc6123cf565b8160051b604051601f19603f83011681018181108682111715612101576121016123cf565b604052838152828101945085830182870184018b101561212057600080fd5b600096505b8487101561214a5761213681611f8e565b865260019690960195948301948301612125565b50965061215a9050878201611f9e565b9450505050509250929050565b60006020828403121561217957600080fd5b81356117f9816123fd565b60006020828403121561219657600080fd5b81516117f9816123fd565b6000602082840312156121b357600080fd5b5035919050565b6000602082840312156121cc57600080fd5b5051919050565b6000806000606084860312156121e857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561222e57858101830151858201604001528201612212565b81811115612240576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122a65784516001600160a01b031683529383019391830191600101612281565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156122da576122da61238d565b500190565b6000826122fc57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561231b5761231b61238d565b500290565b6000828210156123325761233261238d565b500390565b600181811c9082168061234b57607f821691505b6020821081141561236c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156123865761238661238d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146123fa57600080fd5b50565b80151581146123fa57600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220152ec6599d30ea4d4e9a0591938862697a97d76e728d2bea70a45f1963cd340364736f6c63430008070033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c806370db69d61161015a578063c631a988116100c1578063e2b5d8671161007a578063e2b5d8671461076a578063e96543a31461077f578063ee1725461461079f578063f2fde38b146107b4578063f8b45b05146107d4578063fd01bd4c146107ea57600080fd5b8063c631a9881461069a578063c98e442d146106ba578063cc274b29146106da578063d70d0c32146106fa578063d89135cd1461070f578063dd62ed3e1461072457600080fd5b8063a9059cbb11610113578063a9059cbb14610601578063aff41b7b14610621578063b556b1a214610637578063bc9c3b7714610658578063bd38e7e21461066e578063c3b2d3371461068457600080fd5b806370db69d614610565578063768dc7101461057b5780638c0b5e22146105ab57806395d89b41146105c157806396790d4a146105d657806399bf3266146105eb57600080fd5b80633a6ac26c116101fe5780634d48b105116101b75780634d48b105146104b25780634e6be544146104e857806353421ffc146104f05780636c90b57f146105105780636fee4f7a1461053057806370a082311461054557600080fd5b80633a6ac26c146104095780633b06a1601461041e5780633bbac57914610433578063427a5c021461046357806349bd5a5e1461047857806349e327921461049857600080fd5b806311d2adcf1161025057806311d2adcf1461036257806318160ddd1461038257806323b872dd146103975780632c228355146103b7578063313ce567146103cd57806331d7a262146103e957600080fd5b806301339c21146102985780630445b667146102af57806306fdde03146102d8578063095ea7b3146102fa5780630aaae7351461032a57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610800565b005b3480156102bb57600080fd5b506102c560175481565b6040519081526020015b60405180910390f35b3480156102e457600080fd5b506102ed61083c565b6040516102cf9190612201565b34801561030657600080fd5b5061031a61031536600461205d565b6108ce565b60405190151581526020016102cf565b34801561033657600080fd5b5060085461034a906001600160a01b031681565b6040516001600160a01b0390911681526020016102cf565b34801561036e57600080fd5b506102ad61037d366004612167565b6108e5565b34801561038e57600080fd5b506000546102c5565b3480156103a357600080fd5b5061031a6103b236600461201c565b61091a565b3480156103c357600080fd5b506102c560095481565b3480156103d957600080fd5b50604051600981526020016102cf565b3480156103f557600080fd5b506102c5610404366004611fa9565b610970565b34801561041557600080fd5b5061031a6109ea565b34801561042a57600080fd5b506102ad610a02565b34801561043f57600080fd5b5061031a61044e366004611fa9565b600c6020526000908152604090205460ff1681565b34801561046f57600080fd5b506102ad610d64565b34801561048457600080fd5b5060065461034a906001600160a01b031681565b3480156104a457600080fd5b50601a5461031a9060ff1681565b3480156104be57600080fd5b506102c56104cd366004611fa9565b6001600160a01b031660009081526010602052604090205490565b6102ad610e4c565b3480156104fc57600080fd5b506102ad61050b366004611fa9565b610e65565b34801561051c57600080fd5b506102ad61052b366004612089565b610fdb565b34801561053c57600080fd5b506102ad61105c565b34801561055157600080fd5b506102c5610560366004611fa9565b611096565b34801561057157600080fd5b506102c560145481565b34801561058757600080fd5b5061031a610596366004611fa9565b600d6020526000908152604090205460ff1681565b3480156105b757600080fd5b506102c560185481565b3480156105cd57600080fd5b506102ed6110a1565b3480156105e257600080fd5b506102c56110b0565b3480156105f757600080fd5b506102c560135481565b34801561060d57600080fd5b5061031a61061c36600461205d565b61111d565b34801561062d57600080fd5b506102c560125481565b34801561064357600080fd5b5060085461031a90600160a81b900460ff1681565b34801561066457600080fd5b506102c5601c5481565b34801561067a57600080fd5b506102c560165481565b34801561069057600080fd5b506102c560155481565b3480156106a657600080fd5b506102ad6106b5366004611fa9565b61112a565b3480156106c657600080fd5b506102ad6106d5366004611fa9565b611197565b3480156106e657600080fd5b506102ad6106f53660046121a1565b6111d0565b34801561070657600080fd5b506102ad6111fb565b34801561071b57600080fd5b50601d546102c5565b34801561073057600080fd5b506102c561073f366004611fe3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561077657600080fd5b506102ad611242565b34801561078b57600080fd5b5061034a61079a3660046121a1565b611290565b3480156107ab57600080fd5b50601c546102c5565b3480156107c057600080fd5b506102ad6107cf366004611fa9565b6112ba565b3480156107e057600080fd5b506102c560195481565b3480156107f657600080fd5b506102c5601d5481565b601e546001600160a01b0316331461081757600080fd5b6008805442601655600b805460ff1916905561ffff60a81b191661010160a81b179055565b60606001805461084b90612337565b80601f016020809104026020016040519081016040528092919081815260200182805461087790612337565b80156108c45780601f10610899576101008083540402835291602001916108c4565b820191906000526020600020905b8154815290600101906020018083116108a757829003601f168201915b5050505050905090565b60006108db3384846112f3565b5060015b92915050565b601e546001600160a01b031633146108fc57600080fd5b60088054911515600160a81b0260ff60a81b19909216919091179055565b6000610927848484611355565b6001600160a01b03841660009081526005602090815260408083203384529091529020548281101561095857600080fd5b61096585338584036112f3565b506001949350505050565b6001600160a01b03811660009081526011602052604081205460ff161561099957506000919050565b6001600160a01b0382166000908152600f6020526040812054601b546109bf9190612320565b9050600080546109ce85611096565b6109d89084612301565b6109e291906122df565b949350505050565b60004260165460b46109fc91906122c7565b11905090565b601e546001600160a01b03163314610a1957600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6857600080fd5b505afa158015610a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa09190611fc6565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610afc57600080fd5b505afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b349190611fc6565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb49190611fc6565b60008054308252600560209081526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d85528252808420929092556001600160a01b038416808452600d909152908220805460ff19166001179055600680546001600160a01b031916909117905554909150610c3690606490610c3090605061177a565b90611800565b3360009081526004602052604081209190915554610c5c90606490610c3090601461177a565b7f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd908155600d60209081527f81955a0a11e65eac625c29e8882660bae4e165a75d72780094acae8ece9a29ee8054600160ff199182168117909255336000818152604081208054909316909317909155600880546001600160a01b0319168217905561dead825260049092529154601d55815490919060008051602061243283398151915290610d1490606490610c3090605061177a565b60405190815260200160405180910390a360005461dead90339060008051602061243283398151915290610d5090606490610c3090601461177a565b60405190815260200160405180910390a350565b601e546001600160a01b03163314610d7b57600080fd5b30600081815260046020819052604080832054905163f305d71960e01b81529182019390935260248101929092526044820181905260648201523360848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990479060c4016060604051808303818588803b158015610dfb57600080fd5b505af1158015610e0f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e3491906121d3565b50506008805460ff60a81b1916600160a81b17905550565b34601b6000828254610e5e91906122c7565b9091555050565b601e546001600160a01b03163314610e7c57600080fd5b6001600160a01b0381166000908152600c60209081526040808320805460ff19908116909155601183528184208054909116905560049091528120546009805491929091610ecb908490612320565b90915550600090505b600a54811015610fd757816001600160a01b0316600a8281548110610efb57610efb6123b9565b6000918252602090912001546001600160a01b03161415610fc757600a8054610f2690600190612320565b81548110610f3657610f366123b9565b600091825260209091200154600a80546001600160a01b039092169183908110610f6257610f626123b9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600a805480610fa157610fa16123a3565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b610fd081612372565b9050610ed4565b5050565b601e546001600160a01b03163314610ff257600080fd5b60005b82518110156110575781600d6000858481518110611015576110156123b9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561105081612372565b9050610ff5565b505050565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610fd7573d6000803e3d6000fd5b60006108df82611842565b60606002805461084b90612337565b600080601354426110c19190612320565b9050806110d057505060145490565b806012546110de9190612301565b6014546110eb91906122c7565b60005410156110fc57505060005490565b8060125461110a9190612301565b60145461111791906122c7565b91505090565b60006108db338484611355565b6003546001600160a01b0316156111755760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b60448201526064015b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b601e546001600160a01b031633146111ae57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b601e546001600160a01b031633146111e757600080fd5b6111f581633b9aca00612301565b60175550565b601e546001600160a01b0316331461121257600080fd5b426013556000546117709061122990600190612301565b61123391906122df565b601255600b805460ff19169055565b600380546001600160a01b039081166000908152600d60205260409020805460ff19166001179055905461128e9116737a250d5630b4cf539739df2c5dacb4c659f2488d6000196112f3565b565b600a81815481106112a057600080fd5b6000918252602090912001546001600160a01b0316905081565b601e546001600160a01b031633146112d157600080fd5b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600c602052604090205460ff1615801561139757506001600160a01b0382166000908152600c602052604090205460ff16155b6113a057600080fd5b6008546001600160a01b03848116911614806113c957506008546001600160a01b038381169116145b806113d75750601a5460ff16155b156113f9576113e78383836118c0565b5050601a805460ff1916600117905550565b600854600160b01b900460ff166114405760405162461bcd60e51b815260206004820152600b60248201526a29b632b2b834b73397171760a91b604482015260640161116c565b6001600160a01b0382166000908152600f602052604090205461147a57601b546001600160a01b0383166000908152600f60205260409020555b600061148530611096565b601754909150811080159081906114a55750600854600160a81b900460ff165b80156114bb5750600854600160a01b900460ff16155b80156114d557506006546001600160a01b03868116911614155b156114e5576114e5601754611b3d565b6006546001600160a01b03868116911614801561151b57506001600160a01b0384166000908152600d602052604090205460ff16155b156116a7576115286109ea565b156115d85760185483111561156f5760405162461bcd60e51b815260206004820152600d60248201526c13585e151e081b1a5b5a5d1959609a1b604482015260640161116c565b6019546001600160a01b0385166000908152600460205260409020546115969085906122c7565b11156115d85760405162461bcd60e51b81526020600482015260116024820152701b585e15d85b1b195d081b1a5b5a5d1959607a1b604482015260640161116c565b600b5460ff1615611680576001600160a01b0384166000908152600c602090815260408083208054600160ff199182168117909255601190935290832080549092161790556009805485929061162f9084906122c7565b9091555050600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0386161790555b61168983611d8f565b6001600160a01b0385166000908152600e6020526040902042905592505b600854600160a01b900460ff161580156116cb57506006546001600160a01b031615155b80156116e457506006546001600160a01b038581169116145b801561170957506001600160a01b0385166000908152600d602052604090205460ff16155b1561171b576117188386611e15565b92505b6006546001600160a01b0386811691161480159061174757506006546001600160a01b03858116911614155b15611768576001600160a01b0384166000908152600e602052604090204290555b6117738585856118c0565b5050505050565b600082611789575060006108df565b60006117958385612301565b9050826117a285836122df565b146117f95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161116c565b9392505050565b60006117f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ec7565b600354604051630bd039cd60e21b81526001600160a01b0383811660048301526000921690632f40e7349060240160206040518083038186803b15801561188857600080fd5b505afa15801561189c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108df91906121ba565b600354604080516060810190915260268082526001600160a01b039092169163e30443bc91869161197991869161240c6020830139600354604051630bd039cd60e21b81526001600160a01b038b8116600483015290911690632f40e7349060240160206040518083038186803b15801561193a57600080fd5b505afa15801561194e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197291906121ba565b9190611efe565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156119bf57600080fd5b505af11580156119d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f79190612184565b50600354604051630bd039cd60e21b81526001600160a01b0384811660048301529091169063e30443bc908490611a8b9085908590632f40e7349060240160206040518083038186803b158015611a4d57600080fd5b505afa158015611a61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8591906121ba565b90611f2f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015611ad157600080fd5b505af1158015611ae5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b099190612184565b50816001600160a01b0316836001600160a01b03166000805160206124328339815191528360405161134891815260200190565b6008805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b8557611b856123b9565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf257600080fd5b505afa158015611c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2a9190611fc6565b81600181518110611c3d57611c3d6123b9565b60200260200101906001600160a01b031690816001600160a01b031681525050611c7c30737a250d5630b4cf539739df2c5dacb4c659f2488d846112f3565b6040516318cbafe560e01b81524790737a250d5630b4cf539739df2c5dacb4c659f2488d906318cbafe590611cbe908690600090879030904290600401612256565b600060405180830381600087803b158015611cd857600080fd5b505af1158015611cec573d6000803e3d6000fd5b5050505060008147611cfe9190612320565b905060006004611d0f836003612301565b611d1991906122df565b6007546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611d54573d6000803e3d6000fd5b506000611d618284612320565b905080601b6000828254611d7591906122c7565b90915550506008805460ff60a01b19169055505050505050565b6000806064611d9f84600a612301565b611da991906122df565b9050611db58184612320565b30600090815260046020526040812080549295508392909190611dd99084906122c7565b909155505060065460405182815230916001600160a01b0316906000805160206124328339815191529060200160405180910390a35090919050565b6000806064611e2585600a612301565b611e2f91906122df565b9050611e3b8185612320565b6001600160a01b038416600090815260046020526040812080549296508392909190611e68908490612320565b90915550503060009081526004602052604081208054839290611e8c9084906122c7565b909155505060405181815230906001600160a01b038516906000805160206124328339815191529060200160405180910390a3509192915050565b60008183611ee85760405162461bcd60e51b815260040161116c9190612201565b506000611ef584866122df565b95945050505050565b60008184841115611f225760405162461bcd60e51b815260040161116c9190612201565b506000611ef58486612320565b600080611f3c83856122c7565b9050838110156117f95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161116c565b8035611f99816123e5565b919050565b8035611f99816123fd565b600060208284031215611fbb57600080fd5b81356117f9816123e5565b600060208284031215611fd857600080fd5b81516117f9816123e5565b60008060408385031215611ff657600080fd5b8235612001816123e5565b91506020830135612011816123e5565b809150509250929050565b60008060006060848603121561203157600080fd5b833561203c816123e5565b9250602084013561204c816123e5565b929592945050506040919091013590565b6000806040838503121561207057600080fd5b823561207b816123e5565b946020939093013593505050565b6000806040838503121561209c57600080fd5b823567ffffffffffffffff808211156120b457600080fd5b818501915085601f8301126120c857600080fd5b81356020828211156120dc576120dc6123cf565b8160051b604051601f19603f83011681018181108682111715612101576121016123cf565b604052838152828101945085830182870184018b101561212057600080fd5b600096505b8487101561214a5761213681611f8e565b865260019690960195948301948301612125565b50965061215a9050878201611f9e565b9450505050509250929050565b60006020828403121561217957600080fd5b81356117f9816123fd565b60006020828403121561219657600080fd5b81516117f9816123fd565b6000602082840312156121b357600080fd5b5035919050565b6000602082840312156121cc57600080fd5b5051919050565b6000806000606084860312156121e857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561222e57858101830151858201604001528201612212565b81811115612240576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122a65784516001600160a01b031683529383019391830191600101612281565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156122da576122da61238d565b500190565b6000826122fc57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561231b5761231b61238d565b500290565b6000828210156123325761233261238d565b500390565b600181811c9082168061234b57607f821691505b6020821081141561236c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156123865761238661238d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146123fa57600080fd5b50565b80151581146123fa57600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220152ec6599d30ea4d4e9a0591938862697a97d76e728d2bea70a45f1963cd340364736f6c63430008070033

Deployed Bytecode Sourcemap

21360:418:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13055:187;;;;;;;;;;;;;:::i;:::-;;12066:35;;;;;;;;;;;;;;;;;;;8829:25:1;;;8817:2;8802:18;12066:35:0;;;;;;;;6444:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7864:193::-;;;;;;;;;;-1:-1:-1;7864:193:0;;;;;:::i;:::-;;:::i;:::-;;;5929:14:1;;5922:22;5904:41;;5892:2;5877:18;7864:193:0;5764:187:1;11193:30:0;;;;;;;;;;-1:-1:-1;11193:30:0;;;;-1:-1:-1;;;;;11193:30:0;;;;;;-1:-1:-1;;;;;4520:32:1;;;4502:51;;4490:2;4475:18;11193:30:0;4356:203:1;20767:108:0;;;;;;;;;;-1:-1:-1;20767:108:0;;;;;:::i;:::-;;:::i;6727:102::-;;;;;;;;;;-1:-1:-1;6782:7:0;6809:12;6727:102;;8420:438;;;;;;;;;;-1:-1:-1;8420:438:0;;;;;:::i;:::-;;:::i;11373:30::-;;;;;;;;;;;;;;;;6634:85;;;;;;;;;;-1:-1:-1;6634:85:0;;6182:1;9992:36:1;;9980:2;9965:18;6634:85:0;9850:184:1;19230:334:0;;;;;;;;;;-1:-1:-1;19230:334:0;;;;;:::i;:::-;;:::i;14201:122::-;;;;;;;;;;;;;:::i;13250:943::-;;;;;;;;;;;;;:::i;11491:37::-;;;;;;;;;;-1:-1:-1;11491:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12704:343;;;;;;;;;;;;;:::i;11066:28::-;;;;;;;;;;-1:-1:-1;11066:28:0;;;;-1:-1:-1;;;;;11066:28:0;;;12236:27;;;;;;;;;;-1:-1:-1;12236:27:0;;;;;;;;19572:123;;;;;;;;;;-1:-1:-1;19572:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;19662:25:0;19635:7;19662:25;;;:19;:25;;;;;;;19572:123;19821:91;;;:::i;20143:498::-;;;;;;;;;;-1:-1:-1;20143:498:0;;;;;:::i;:::-;;:::i;19920:215::-;;;;;;;;;;-1:-1:-1;19920:215:0;;;;;:::i;:::-;;:::i;21100:152::-;;;;;;;;;;;;;:::i;6837:163::-;;;;;;;;;;-1:-1:-1;6837:163:0;;;;;:::i;:::-;;:::i;11958:21::-;;;;;;;;;;;;;;;;11535:50;;;;;;;;;;-1:-1:-1;11535:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12108:52;;;;;;;;;;;;;;;;6537:89;;;;;;;;;;;;;:::i;17273:344::-;;;;;;;;;;;;;:::i;11923:28::-;;;;;;;;;;;;;;;;7008:199;;;;;;;;;;-1:-1:-1;7008:199:0;;;;;:::i;:::-;;:::i;11881:35::-;;;;;;;;;;;;;;;;11249:42;;;;;;;;;;-1:-1:-1;11249:42:0;;;;-1:-1:-1;;;11249:42:0;;;;;;12315:32;;;;;;;;;;;;;;;;12031:28;;;;;;;;;;;;;;;;11988:36;;;;;;;;;;;;;;;;9267:173;;;;;;;;;;-1:-1:-1;9267:173:0;;;;;:::i;:::-;;:::i;17004:118::-;;;;;;;;;;-1:-1:-1;17004:118:0;;;;;:::i;:::-;;:::i;20649:110::-;;;;;;;;;;-1:-1:-1;20649:110:0;;;;;:::i;:::-;;:::i;20883:209::-;;;;;;;;;;;;;:::i;19131:91::-;;;;;;;;;;-1:-1:-1;19202:12:0;;19131:91;;7670:186;;;;;;;;;;-1:-1:-1;7670:186:0;;;;;:::i;:::-;-1:-1:-1;;;;;7821:18:0;;;7789:7;7821:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7670:186;16817:179;;;;;;;;;;;;;:::i;11410:38::-;;;;;;;;;;-1:-1:-1;11410:38:0;;;;;:::i;:::-;;:::i;19705:108::-;;;;;;;;;;-1:-1:-1;19788:17:0;;19705:108;;21673:100;;;;;;;;;;-1:-1:-1;21673:100:0;;;;;:::i;:::-;;:::i;12173:50::-;;;;;;;;;;;;;;;;12354:27;;;;;;;;;;;;;;;;13055:187;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;13103:11:::1;:18:::0;;13148:15:::1;13103:11;13132:31:::0;13174:12:::1;:20:::0;;-1:-1:-1;;13174:20:0::1;::::0;;-1:-1:-1;;;;13205:29:0;-1:-1:-1;;;13205:29:0;;;13055:187::o;6444:85::-;6483:13;6516:5;6509:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6444:85;:::o;7864:193::-;7968:4;7990:37;7999:10;8011:7;8020:6;7990:8;:37::i;:::-;-1:-1:-1;8045:4:0;7864:193;;;;;:::o;20767:108::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;20837:22:::1;:30:::0;;;::::1;;-1:-1:-1::0;;;20837:30:0::1;-1:-1:-1::0;;;;20837:30:0;;::::1;::::0;;;::::1;::::0;;20767:108::o;8420:438::-;8554:4;8571:36;8581:6;8589:9;8600:6;8571:9;:36::i;:::-;-1:-1:-1;;;;;8647:19:0;;8620:24;8647:19;;;:11;:19;;;;;;;;8667:10;8647:31;;;;;;;;8697:26;;;;8689:35;;;;;;8760:55;8769:6;8777:10;8808:6;8789:16;:25;8760:8;:55::i;:::-;-1:-1:-1;8846:4:0;;8420:438;-1:-1:-1;;;;8420:438:0:o;19230:334::-;-1:-1:-1;;;;;19313:25:0;;19289:7;19313:25;;;:19;:25;;;;;;;;19309:65;;;-1:-1:-1;19361:1:0;;19230:334;-1:-1:-1;19230:334:0:o;19309:65::-;-1:-1:-1;;;;;19432:26:0;;19384:23;19432:26;;;:20;:26;;;;;;19410:19;;:48;;19432:26;19410:48;:::i;:::-;19384:74;;19469:12;19522;;19503:15;19513:4;19503:9;:15::i;:::-;19485:33;;:15;:33;:::i;:::-;19484:50;;;;:::i;:::-;19469:65;19230:334;-1:-1:-1;;;;19230:334:0:o;14201:122::-;14244:4;14300:15;14268:13;;14286:9;14268:29;;;;:::i;:::-;:47;14261:54;;14201:122;:::o;13250:943::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;13303:12:::1;11014:42;-1:-1:-1::0;;;;;13336:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13318:56:0::1;;13383:4;11014:42;-1:-1:-1::0;;;;;13390:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13318:96;::::0;-1:-1:-1;;;;;;13318:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4794:15:1;;;13318:96:0::1;::::0;::::1;4776:34:1::0;4846:15;;4826:18;;;4819:43;4711:18;;13318:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13483:12;::::0;;13447:4:::1;13427:26:::0;;:11:::1;:26;::::0;;;;;;;11014:42:::1;13427:53:::0;;;;;;;:68;;;;-1:-1:-1;;;;;13506:24:0;::::1;::::0;;;:18:::1;:24:::0;;;;;;:31;;-1:-1:-1;;13506:31:0::1;13533:4;13506:31;::::0;;13550:13:::1;:20:::0;;-1:-1:-1;;;;;;13550:20:0::1;::::0;;::::1;::::0;;13607:12;13303:111;;-1:-1:-1;13607:29:0::1;::::0;13632:3:::1;::::0;13607:20:::1;::::0;13624:2:::1;13607:16;:20::i;:::-;:24:::0;::::1;:29::i;:::-;13593:10;13583:21;::::0;;;:9:::1;:21;::::0;;;;:53;;;;13712:12;:29:::1;::::0;13737:3:::1;::::0;13712:20:::1;::::0;13729:2:::1;13712:16;:20::i;:29::-;13647:62:::0;:94;;;13770:18:::1;13647:62;13770:30:::0;;;;:37;;13803:4:::1;-1:-1:-1::0;;13770:37:0;;::::1;::::0;::::1;::::0;;;13837:10:::1;-1:-1:-1::0;13818:30:0;;;13647:62;13818:30;;:37;;;;::::1;::::0;;::::1;::::0;;;13866:15:::1;:28:::0;;-1:-1:-1;;;;;;13866:28:0::1;::::0;::::1;::::0;;13665:42:::1;13922:62:::0;;13647:9:::1;13922:62:::0;;;;;13907:12:::1;:77:::0;14035:12;;13837:10;;-1:-1:-1;;;;;;;;;;;;14002:63:0;14035:29:::1;::::0;14060:3:::1;::::0;14035:20:::1;::::0;14052:2:::1;14035:16;:20::i;:29::-;14002:63;::::0;8829:25:1;;;8817:2;8802:18;14002:63:0::1;;;;;;;14155:12;::::0;14110:42:::1;::::0;14090:10:::1;::::0;-1:-1:-1;;;;;;;;;;;14081:104:0;14155:29:::1;::::0;14180:3:::1;::::0;14155:20:::1;::::0;14172:2:::1;14155:16;:20::i;:29::-;14081:104;::::0;8829:25:1;;;8817:2;8802:18;14081:104:0::1;;;;;;;13292:901;13250:943::o:0;12704:343::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;12836:4:::1;12856:24;::::0;;;:9:::1;:24;::::0;;;;;;;;12751:227;;-1:-1:-1;;;12751:227:0;;;;::::1;5493:34:1::0;;;;5543:18;;;5536:34;;;;5586:18;;;5579:34;;;5629:18;;;5622:34;12927:10:0::1;5672:19:1::0;;;5665:44;12952:15:0::1;5725:19:1::0;;;5718:35;11014:42:0::1;::::0;12751:32:::1;::::0;12791:21:::1;::::0;5427:19:1;;12751:227:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13000:22:0::1;:29:::0;;-1:-1:-1;;;;13000:29:0::1;-1:-1:-1::0;;;13000:29:0::1;::::0;;-1:-1:-1;12704:343:0:o;19821:91::-;19895:9;19872:19;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;19821:91:0:o;20143:498::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;-1:-1:-1;;;;;20207:10:0;::::1;20220:5;20207:10:::0;;;:5:::1;:10;::::0;;;;;;;:18;;-1:-1:-1;;20207:18:0;;::::1;::::0;;;20236:19:::1;:24:::0;;;;;:32;;;;::::1;::::0;;20298:9:::1;:14:::0;;;;;;20279:15:::1;:33:::0;;20298:14;;20279:15;;:33:::1;::::0;20298:14;;20279:33:::1;:::i;:::-;::::0;;;-1:-1:-1;20330:9:0::1;::::0;-1:-1:-1;20325:309:0::1;20349:21;:28:::0;20345:32;::::1;20325:309;;;20431:3;-1:-1:-1::0;;;;;20403:31:0::1;:21;20425:1;20403:24;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;20403:24:0::1;:31;20399:224;;;20482:21;20504:28:::0;;:32:::1;::::0;20535:1:::1;::::0;20504:32:::1;:::i;:::-;20482:55;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;20455:21:::1;:24:::0;;-1:-1:-1;;;;;20482:55:0;;::::1;::::0;20477:1;;20455:24;::::1;;;;;:::i;:::-;;;;;;;;;:82;;;;;-1:-1:-1::0;;;;;20455:82:0::1;;;;;-1:-1:-1::0;;;;;20455:82:0::1;;;;;;20556:21;:27;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;20556:27:0;;;;;-1:-1:-1;;;;;;20556:27:0::1;::::0;;;;;20325:309:::1;20143:498:::0;:::o;20399:224::-:1;20379:3;::::0;::::1;:::i;:::-;;;20325:309;;;;20143:498:::0;:::o;19920:215::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;20021:9:::1;20016:112;20040:8;:15;20036:1;:19;20016:112;;;20111:5;20077:18;:31;20096:8;20105:1;20096:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20077:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20077:31:0;:39;;-1:-1:-1;;20077:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20057:3:::1;::::0;::::1;:::i;:::-;;;20016:112;;;;19920:215:::0;;:::o;21100:152::-;21208:15;;21200:42;;21168:21;;-1:-1:-1;;;;;21208:15:0;;21200:42;;;;;21168:21;;21150:15;21200:42;21150:15;21200:42;21168:21;21208:15;21200:42;;;;;;;;;;;;;;;;;;;6837:163;6939:7;6971:21;6984:7;6971:12;:21::i;6537:89::-;6578:13;6611:7;6604:14;;;;;:::i;17273:344::-;17317:7;17337:22;17381:13;;17363:15;:31;;;;:::i;:::-;17337:58;-1:-1:-1;17410:19:0;17406:38;;-1:-1:-1;;17438:6:0;;;17273:344::o;17406:38::-;17507:14;17484:20;;:37;;;;:::i;:::-;17475:6;;:46;;;;:::i;:::-;17459:12;;:63;17455:91;;;-1:-1:-1;;17532:12:0;;;17273:344::o;17455:91::-;17595:14;17572:20;;:37;;;;:::i;:::-;17563:6;;:46;;;;:::i;:::-;17556:53;;;17273:344;:::o;7008:199::-;7115:4;7137:40;7147:10;7159:9;7170:6;7137:9;:40::i;9267:173::-;9342:10;;-1:-1:-1;;;;;9342:10:0;9334:33;9326:56;;;;-1:-1:-1;;;9326:56:0;;8546:2:1;9326:56:0;;;8528:21:1;8585:2;8565:18;;;8558:30;-1:-1:-1;;;8604:18:1;;;8597:40;8654:18;;9326:56:0;;;;;;;;;9393:10;:39;;-1:-1:-1;;;;;;9393:39:0;-1:-1:-1;;;;;9393:39:0;;;;;;;;;;9267:173::o;17004:118::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;17083:15:::1;:31:::0;;-1:-1:-1;;;;;;17083:31:0::1;-1:-1:-1::0;;;;;17083:31:0;;;::::1;::::0;;;::::1;::::0;;17004:118::o;20649:110::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;20739:12:::1;:6:::0;20748:3:::1;20739:12;:::i;:::-;20723:13;:28:::0;-1:-1:-1;20649:110:0:o;20883:209::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;20958:15:::1;20942:13;:31:::0;21008:12:::1;::::0;21049:4:::1;::::0;21008:37:::1;::::0;11873:1:::1;::::0;21008:37:::1;:::i;:::-;21007:46;;;;:::i;:::-;20984:20;:69:::0;21064:12:::1;:20:::0;;-1:-1:-1;;21064:20:0::1;::::0;;20883:209::o;16817:179::-;16889:10;;;-1:-1:-1;;;;;16889:10:0;;;16862:39;;;;:18;:39;;;;;:46;;-1:-1:-1;;16862:46:0;16904:4;16862:46;;;16936:10;;16919:69;;16936:10;11014:42;-1:-1:-1;;16919:8:0;:69::i;:::-;16817:179::o;11410:38::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11410:38:0;;-1:-1:-1;11410:38:0;:::o;21673:100::-;21651:6;;-1:-1:-1;;;;;21651:6:0;12438:10;21640:17;12422:28;;;;;;21748:6:::1;:17:::0;;-1:-1:-1;;;;;;21748:17:0::1;-1:-1:-1::0;;;;;21748:17:0;;;::::1;::::0;;;::::1;::::0;;21673:100::o;8065:220::-;-1:-1:-1;;;;;8193:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8245:32;;8829:25:1;;;8245:32:0;;8802:18:1;8245:32:0;;;;;;;;8065:220;;;:::o;14331:1847::-;-1:-1:-1;;;;;14466:11:0;;;;;;:5;:11;;;;;;;;14465:12;:26;;;;-1:-1:-1;;;;;;14482:9:0;;;;;;:5;:9;;;;;;;;14481:10;14465:26;14457:35;;;;;;14519:15;;-1:-1:-1;;;;;14511:23:0;;;14519:15;;14511:23;;:48;;-1:-1:-1;14544:15:0;;-1:-1:-1;;;;;14538:21:0;;;14544:15;;14538:21;14511:48;:60;;;-1:-1:-1;14564:7:0;;;;14563:8;14511:60;14507:242;;;14588:33;14604:4;14610:2;14614:6;14588:15;:33::i;:::-;-1:-1:-1;;14636:7:0;:14;;-1:-1:-1;;14636:14:0;14646:4;14636:14;;;-1:-1:-1;14331:1847:0:o;14507:242::-;14710:11;;-1:-1:-1;;;14710:11:0;;;;14702:35;;;;-1:-1:-1;;;14702:35:0;;8206:2:1;14702:35:0;;;8188:21:1;8245:2;8225:18;;;8218:30;-1:-1:-1;;;8264:18:1;;;8257:41;8315:18;;14702:35:0;8004:335:1;14702:35:0;-1:-1:-1;;;;;14765:24:0;;14793:1;14765:24;;;:20;:24;;;;;;14761:108;;14838:19;;-1:-1:-1;;;;;14811:24:0;;;;;;:20;:24;;;;;:46;14761:108;14881:28;14912:24;14930:4;14912:9;:24::i;:::-;14998:13;;14881:55;;-1:-1:-1;14974:37:0;;;;;;;15028:45;;-1:-1:-1;15051:22:0;;-1:-1:-1;;;15051:22:0;;;;15028:45;:57;;;;-1:-1:-1;15078:7:0;;-1:-1:-1;;;15078:7:0;;;;15077:8;15028:57;:82;;;;-1:-1:-1;15097:13:0;;-1:-1:-1;;;;;15089:21:0;;;15097:13;;15089:21;;15028:82;15024:111;;;15113:20;15119:13;;15113:5;:20::i;:::-;15175:13;;-1:-1:-1;;;;;15167:21:0;;;15175:13;;15167:21;:48;;;;-1:-1:-1;;;;;;15193:22:0;;;;;;:18;:22;;;;;;;;15192:23;15167:48;15163:595;;;15237:13;:11;:13::i;:::-;15234:183;;;15288:11;;15278:6;:21;;15270:47;;;;-1:-1:-1;;;15270:47:0;;7864:2:1;15270:47:0;;;7846:21:1;7903:2;7883:18;;;7876:30;-1:-1:-1;;;7922:18:1;;;7915:43;7975:18;;15270:47:0;7662:337:1;15270:47:0;15370:9;;-1:-1:-1;;;;;15344:13:0;;;;;;:9;:13;;;;;;:22;;15360:6;;15344:22;:::i;:::-;:35;;15336:65;;;;-1:-1:-1;;;15336:65:0;;7518:2:1;15336:65:0;;;7500:21:1;7557:2;7537:18;;;7530:30;-1:-1:-1;;;7576:18:1;;;7569:47;7633:18;;15336:65:0;7316:341:1;15336:65:0;15449:12;;;;15445:211;;;-1:-1:-1;;;;;15482:9:0;;;;;;:5;:9;;;;;;;;:16;;15494:4;-1:-1:-1;;15482:16:0;;;;;;;;15517:19;:23;;;;;;:30;;;;;;;;15566:15;:25;;15585:6;;15482:9;15566:25;;15585:6;;15566:25;:::i;:::-;;;;-1:-1:-1;;15610:21:0;:30;;;;;;;-1:-1:-1;15610:30:0;;;;;;;;-1:-1:-1;;;;;;15610:30:0;-1:-1:-1;;;;;15610:30:0;;;;;15445:211;15681:18;15692:6;15681:10;:18::i;:::-;-1:-1:-1;;;;;15716:12:0;;;;;;:8;:12;;;;;15731:15;15716:30;;15672:27;-1:-1:-1;15163:595:0;15792:7;;-1:-1:-1;;;15792:7:0;;;;15791:8;:39;;;;-1:-1:-1;15803:13:0;;-1:-1:-1;;;;;15803:13:0;:27;;15791:39;:62;;;;-1:-1:-1;15840:13:0;;-1:-1:-1;;;;;15834:19:0;;;15840:13;;15834:19;15791:62;:91;;;;-1:-1:-1;;;;;;15858:24:0;;;;;;:18;:24;;;;;;;;15857:25;15791:91;15787:158;;;15908:25;15920:6;15928:4;15908:11;:25::i;:::-;15899:34;;15787:158;16030:13;;-1:-1:-1;;;;;16022:21:0;;;16030:13;;16022:21;;;;:44;;-1:-1:-1;16053:13:0;;-1:-1:-1;;;;;16047:19:0;;;16053:13;;16047:19;;16022:44;16019:106;;;-1:-1:-1;;;;;16083:12:0;;;;;;:8;:12;;;;;16098:15;16083:30;;16019:106;16137:33;16153:4;16159:2;16163:6;16137:15;:33::i;:::-;14444:1734;;14331:1847;;;:::o;2054:471::-;2112:7;2357:6;2353:47;;-1:-1:-1;2387:1:0;2380:8;;2353:47;2412:9;2424:5;2428:1;2424;:5;:::i;:::-;2412:17;-1:-1:-1;2457:1:0;2448:5;2452:1;2412:17;2448:5;:::i;:::-;:10;2440:56;;;;-1:-1:-1;;;2440:56:0;;7116:2:1;2440:56:0;;;7098:21:1;7155:2;7135:18;;;7128:30;7194:34;7174:18;;;7167:62;-1:-1:-1;;;7245:18:1;;;7238:31;7286:19;;2440:56:0;6914:397:1;2440:56:0;2516:1;2054:471;-1:-1:-1;;;2054:471:0:o;3001:132::-;3059:7;3086:39;3090:1;3093;3086:39;;;;;;;;;;;;;;;;;:3;:39::i;8293:119::-;8380:10;;:24;;-1:-1:-1;;;8380:24:0;;-1:-1:-1;;;;;4520:32:1;;;8380:24:0;;;4502:51:1;8353:7:0;;8380:10;;:15;;4475:18:1;;8380:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7215:447::-;7389:10;;7417:75;;;;;;;;;;;;;-1:-1:-1;;;;;7389:10:0;;;;:21;;7411:4;;7417:75;;7443:6;;7417:75;;;;;:10;;:21;;-1:-1:-1;;;7417:21:0;;-1:-1:-1;;;;;4520:32:1;;;7417:21:0;;;4502:51:1;7417:10:0;;;;:15;;4475:18:1;;7417:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:25;:75;:25;:75::i;:::-;7389:104;;-1:-1:-1;;;;;;7389:104:0;;;;;;;-1:-1:-1;;;;;5065:32:1;;;7389:104:0;;;5047:51:1;5114:18;;;5107:34;5020:18;;7389:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7504:10:0;;7530:19;;-1:-1:-1;;;7530:19:0;;-1:-1:-1;;;;;4520:32:1;;;7530:19:0;;;4502:51:1;7504:10:0;;;;:21;;7526:2;;7530:31;;7554:6;;7504:10;;7530:15;;4475:18:1;;7530:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;:31::i;:::-;7504:58;;-1:-1:-1;;;;;;7504:58:0;;;;;;;-1:-1:-1;;;;;5065:32:1;;;7504:58:0;;;5047:51:1;5114:18;;;5107:34;5020:18;;7504:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7595:2;-1:-1:-1;;;;;7580:26:0;7589:4;-1:-1:-1;;;;;7580:26:0;-1:-1:-1;;;;;;;;;;;7599:6:0;7580:26;;;;8829:25:1;;8817:2;8802:18;;8683:177;17625:919:0;12512:7;:14;;-1:-1:-1;;;;12512:14:0;-1:-1:-1;;;12512:14:0;;;17734:16:::1;::::0;;17748:1:::1;17734:16:::0;;;;;::::1;::::0;;-1:-1:-1;;17734:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17734:16:0::1;17710:40;;17779:4;17761;17766:1;17761:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;17761:23:0::1;;;-1:-1:-1::0;;;;;17761:23:0::1;;;::::0;::::1;11014:42;-1:-1:-1::0;;;;;17805:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17795:4;17800:1;17795:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1::0;;;;;17795:33:0::1;;;-1:-1:-1::0;;;;;17795:33:0::1;;;::::0;::::1;17841:58;17858:4;11014:42;17892:6;17841:8;:58::i;:::-;17975:207;::::0;-1:-1:-1;;;17975:207:0;;17941:21:::1;::::0;11014:42:::1;::::0;17975:38:::1;::::0;:207:::1;::::0;18028:6;;17912:26:::1;::::0;18093:4;;18120::::1;::::0;18156:15:::1;::::0;17975:207:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18195:18;18240;18216:21;:42;;;;:::i;:::-;18195:63:::0;-1:-1:-1;18300:22:0::1;18344:1;18326:14;18195:63:::0;18339:1:::1;18326:14;:::i;:::-;18325:20;;;;:::i;:::-;18364:15;::::0;18356:49:::1;::::0;18300:45;;-1:-1:-1;;;;;;18364:15:0::1;::::0;18356:49;::::1;;;::::0;18300:45;;18364:15:::1;18356:49:::0;18364:15;18356:49;18300:45;18364:15;18356:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;18416:20:0::1;18439:27;18452:14:::0;18439:10;:27:::1;:::i;:::-;18416:50;;18521:12;18498:19;;:35;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12549:7:0;:15;;-1:-1:-1;;;;12549:15:0;;;-1:-1:-1;;;;;;17625:919:0:o;16186:261::-;16239:7;;16287:3;16273:11;:6;16282:2;16273:11;:::i;:::-;:17;;;;:::i;:::-;16259:31;-1:-1:-1;16301:13:0;16259:31;16301:13;;:::i;:::-;16343:4;16325:24;;;;:9;:24;;;;;:31;;16301:13;;-1:-1:-1;16353:3:0;;16325:24;;;:31;;16353:3;;16325:31;:::i;:::-;;;;-1:-1:-1;;16381:13:0;;16372:43;;8829:25:1;;;16404:4:0;;-1:-1:-1;;;;;16381:13:0;;-1:-1:-1;;;;;;;;;;;16372:43:0;8817:2:1;8802:18;16372:43:0;;;;;;;-1:-1:-1;16433:6:0;;16186:261;-1:-1:-1;16186:261:0:o;16455:354::-;16544:7;;16601:3;16587:11;:6;16596:2;16587:11;:::i;:::-;:17;;;;:::i;:::-;16569:35;-1:-1:-1;16617:17:0;16569:35;16617:17;;:::i;:::-;-1:-1:-1;;;;;16645:18:0;;;;;;:9;:18;;;;;:29;;16617:17;;-1:-1:-1;16667:7:0;;16645:18;;;:29;;16667:7;;16645:29;:::i;:::-;;;;-1:-1:-1;;16703:4:0;16685:24;;;;:9;:24;;;;;:35;;16713:7;;16685:24;:35;;16713:7;;16685:35;:::i;:::-;;;;-1:-1:-1;;16736:41:0;;8829:25:1;;;16762:4:0;;-1:-1:-1;;;;;16736:41:0;;;-1:-1:-1;;;;;;;;;;;16736:41:0;8817:2:1;8802:18;16736:41:0;;;;;;;-1:-1:-1;16795:6:0;;16455:354;-1:-1:-1;;16455:354:0:o;3629:278::-;3715:7;3750:12;3743:5;3735:28;;;;-1:-1:-1;;;3735:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3774:9:0;3786:5;3790:1;3786;:5;:::i;:::-;3774:17;3629:278;-1:-1:-1;;;;;3629:278:0:o;1603:192::-;1689:7;1725:12;1717:6;;;;1709:29;;;;-1:-1:-1;;;1709:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1749:9:0;1761:5;1765:1;1761;:5;:::i;700:181::-;758:7;;790:5;794:1;790;:5;:::i;:::-;778:17;;819:1;814;:6;;806:46;;;;-1:-1:-1;;;806:46:0;;6760:2:1;806:46:0;;;6742:21:1;6799:2;6779:18;;;6772:30;6838:29;6818:18;;;6811:57;6885:18;;806:46:0;6558:351:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:128::-;218:20;;247:28;218:20;247:28;:::i;286:247::-;345:6;398:2;386:9;377:7;373:23;369:32;366:52;;;414:1;411;404:12;366:52;453:9;440:23;472:31;497:5;472:31;:::i;538:251::-;608:6;661:2;649:9;640:7;636:23;632:32;629:52;;;677:1;674;667:12;629:52;709:9;703:16;728:31;753:5;728:31;:::i;794:388::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;978:9;965:23;997:31;1022:5;997:31;:::i;:::-;1047:5;-1:-1:-1;1104:2:1;1089:18;;1076:32;1117:33;1076:32;1117:33;:::i;:::-;1169:7;1159:17;;;794:388;;;;;:::o;1187:456::-;1264:6;1272;1280;1333:2;1321:9;1312:7;1308:23;1304:32;1301:52;;;1349:1;1346;1339:12;1301:52;1388:9;1375:23;1407:31;1432:5;1407:31;:::i;:::-;1457:5;-1:-1:-1;1514:2:1;1499:18;;1486:32;1527:33;1486:32;1527:33;:::i;:::-;1187:456;;1579:7;;-1:-1:-1;;;1633:2:1;1618:18;;;;1605:32;;1187:456::o;1648:315::-;1716:6;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;1953:2;1938:18;;;;1925:32;;-1:-1:-1;;;1648:315:1:o;1968:1202::-;2058:6;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2175:9;2162:23;2204:18;2245:2;2237:6;2234:14;2231:34;;;2261:1;2258;2251:12;2231:34;2299:6;2288:9;2284:22;2274:32;;2344:7;2337:4;2333:2;2329:13;2325:27;2315:55;;2366:1;2363;2356:12;2315:55;2402:2;2389:16;2424:4;2447:2;2443;2440:10;2437:36;;;2453:18;;:::i;:::-;2499:2;2496:1;2492:10;2531:2;2525:9;2594:2;2590:7;2585:2;2581;2577:11;2573:25;2565:6;2561:38;2649:6;2637:10;2634:22;2629:2;2617:10;2614:18;2611:46;2608:72;;;2660:18;;:::i;:::-;2696:2;2689:22;2746:18;;;2780:15;;;;-1:-1:-1;2815:11:1;;;2845;;;2841:20;;2838:33;-1:-1:-1;2835:53:1;;;2884:1;2881;2874:12;2835:53;2906:1;2897:10;;2916:169;2930:2;2927:1;2924:9;2916:169;;;2987:23;3006:3;2987:23;:::i;:::-;2975:36;;2948:1;2941:9;;;;;3031:12;;;;3063;;2916:169;;;-1:-1:-1;3104:6:1;-1:-1:-1;3129:35:1;;-1:-1:-1;3145:18:1;;;3129:35;:::i;:::-;3119:45;;;;;;1968:1202;;;;;:::o;3175:241::-;3231:6;3284:2;3272:9;3263:7;3259:23;3255:32;3252:52;;;3300:1;3297;3290:12;3252:52;3339:9;3326:23;3358:28;3380:5;3358:28;:::i;3421:245::-;3488:6;3541:2;3529:9;3520:7;3516:23;3512:32;3509:52;;;3557:1;3554;3547:12;3509:52;3589:9;3583:16;3608:28;3630:5;3608:28;:::i;3671:180::-;3730:6;3783:2;3771:9;3762:7;3758:23;3754:32;3751:52;;;3799:1;3796;3789:12;3751:52;-1:-1:-1;3822:23:1;;3671:180;-1:-1:-1;3671:180:1:o;3856:184::-;3926:6;3979:2;3967:9;3958:7;3954:23;3950:32;3947:52;;;3995:1;3992;3985:12;3947:52;-1:-1:-1;4018:16:1;;3856:184;-1:-1:-1;3856:184:1:o;4045:306::-;4133:6;4141;4149;4202:2;4190:9;4181:7;4177:23;4173:32;4170:52;;;4218:1;4215;4208:12;4170:52;4247:9;4241:16;4231:26;;4297:2;4286:9;4282:18;4276:25;4266:35;;4341:2;4330:9;4326:18;4320:25;4310:35;;4045:306;;;;;:::o;5956:597::-;6068:4;6097:2;6126;6115:9;6108:21;6158:6;6152:13;6201:6;6196:2;6185:9;6181:18;6174:34;6226:1;6236:140;6250:6;6247:1;6244:13;6236:140;;;6345:14;;;6341:23;;6335:30;6311:17;;;6330:2;6307:26;6300:66;6265:10;;6236:140;;;6394:6;6391:1;6388:13;6385:91;;;6464:1;6459:2;6450:6;6439:9;6435:22;6431:31;6424:42;6385:91;-1:-1:-1;6537:2:1;6516:15;-1:-1:-1;;6512:29:1;6497:45;;;;6544:2;6493:54;;5956:597;-1:-1:-1;;;5956:597:1:o;8865:980::-;9127:4;9175:3;9164:9;9160:19;9206:6;9195:9;9188:25;9232:2;9270:6;9265:2;9254:9;9250:18;9243:34;9313:3;9308:2;9297:9;9293:18;9286:31;9337:6;9372;9366:13;9403:6;9395;9388:22;9441:3;9430:9;9426:19;9419:26;;9480:2;9472:6;9468:15;9454:29;;9501:1;9511:195;9525:6;9522:1;9519:13;9511:195;;;9590:13;;-1:-1:-1;;;;;9586:39:1;9574:52;;9681:15;;;;9646:12;;;;9622:1;9540:9;9511:195;;;-1:-1:-1;;;;;;;9762:32:1;;;;9757:2;9742:18;;9735:60;-1:-1:-1;;;9826:3:1;9811:19;9804:35;9723:3;8865:980;-1:-1:-1;;;8865:980:1:o;10039:128::-;10079:3;10110:1;10106:6;10103:1;10100:13;10097:39;;;10116:18;;:::i;:::-;-1:-1:-1;10152:9:1;;10039:128::o;10172:217::-;10212:1;10238;10228:132;;10282:10;10277:3;10273:20;10270:1;10263:31;10317:4;10314:1;10307:15;10345:4;10342:1;10335:15;10228:132;-1:-1:-1;10374:9:1;;10172:217::o;10394:168::-;10434:7;10500:1;10496;10492:6;10488:14;10485:1;10482:21;10477:1;10470:9;10463:17;10459:45;10456:71;;;10507:18;;:::i;:::-;-1:-1:-1;10547:9:1;;10394:168::o;10567:125::-;10607:4;10635:1;10632;10629:8;10626:34;;;10640:18;;:::i;:::-;-1:-1:-1;10677:9:1;;10567:125::o;10697:380::-;10776:1;10772:12;;;;10819;;;10840:61;;10894:4;10886:6;10882:17;10872:27;;10840:61;10947:2;10939:6;10936:14;10916:18;10913:38;10910:161;;;10993:10;10988:3;10984:20;10981:1;10974:31;11028:4;11025:1;11018:15;11056:4;11053:1;11046:15;10910:161;;10697:380;;;:::o;11082:135::-;11121:3;-1:-1:-1;;11142:17:1;;11139:43;;;11162:18;;:::i;:::-;-1:-1:-1;11209:1:1;11198:13;;11082:135::o;11222:127::-;11283:10;11278:3;11274:20;11271:1;11264:31;11314:4;11311:1;11304:15;11338:4;11335:1;11328:15;11354:127;11415:10;11410:3;11406:20;11403:1;11396:31;11446:4;11443:1;11436:15;11470:4;11467:1;11460:15;11486:127;11547:10;11542:3;11538:20;11535:1;11528:31;11578:4;11575:1;11568:15;11602:4;11599:1;11592:15;11618:127;11679:10;11674:3;11670:20;11667:1;11660:31;11710:4;11707:1;11700:15;11734:4;11731:1;11724:15;11750:131;-1:-1:-1;;;;;11825:31:1;;11815:42;;11805:70;;11871:1;11868;11861:12;11805:70;11750:131;:::o;11886:118::-;11972:5;11965:13;11958:21;11951:5;11948:32;11938:60;;11994:1;11991;11984:12

Swarm Source

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