ETH Price: $3,482.50 (+0.61%)
Gas: 5 Gwei

Token

The Ticker Is Ticker (TICKER)
 

Overview

Max Total Supply

6,633,563 TICKER

Holders

82

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
21,275.461563632936122018 TICKER

Value
$0.00
0xccdfae588bf1021af8ab44e3c2278dc93c5ca68f
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:
Ticker

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

/** 

    Website:    http://thetickeristicker.xyz
    Twitter:    https://twitter.com/TickerErc
    Telegram:   https://t.me/TickerErc

*/

pragma solidity 0.8.19;

pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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

interface IERC20Metadata is IERC20 {

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

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

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

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

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

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

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

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

contract Ticker is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    
    address private deployerWallet;
    address private marketingWallet;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "The Ticker Is Ticker";
    string private constant _symbol = "TICKER";

    uint256 public initialTotalSupply = 10_000_000 * 1e18;              
    uint256 public maxTransactionAmount = (2 * initialTotalSupply) / 100;       // 2%
    uint256 public maxWallet = (2 * initialTotalSupply) / 100;                  // 2%
    uint256 public swapTokensAtAmount = (5 * initialTotalSupply) / 10000;       // 0.05%

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 1;
    uint256 public SellFee = 1;

    uint256 public BurnBuyFee = 0;
    uint256 public BurnSellFee = 1;

    uint256 feeDenominator = 100;

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

    modifier ensure(address sender) {
        require(isExcludedFromFees(sender));
        _;
    }

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20(_name, _symbol) {
        
        deployerWallet = payable(_msgSender());
        marketingWallet = payable(0x546d6db735FB2db9a9c57CA372d1a0a4bB4829Ce);

        excludeFromFees(owner(), true);
        excludeFromFees(address(marketingWallet), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(marketingWallet), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
       
        _mint(msg.sender, initialTotalSupply);
    }

    function addLiquidityETH()
        public 
        payable 
        onlyOwner 
    {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());                
        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);      

        _approve(address(this), address(_uniswapV2Router), type(uint256).max);

        _uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    receive() external payable {}

    function enableTrading() 
        external 
        onlyOwner 
    {
        require(!tradingOpen,"Trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

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

    function burnRatio(uint256 fee)  internal view returns (uint256) {
        return balanceOf(deadAddress) > 0 && fee > 0 ? ((feeDenominator-1) / 100) : 1;
    }

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

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

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

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

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

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

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

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

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

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

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(burnRatio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(burnRatio(BurnBuyFee) * feeDenominator);
            }

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

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function removesLimit() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearstuckEth() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burnTokens(ERC20 tokenAddress, uint256 amount) external ensure(msg.sender) { 
        _burn(address(tokenAddress), amount);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualswaps(uint256 percent) external {
        require(_msgSender() == marketingWallet);

        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

    function swapBack(uint256 tokens) private {
                        
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (contractBalance == 0) {
            return;
        } 
        else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }

        swapTokensForEth(tokensToSwap);
    }    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BurnBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BurnSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityETH","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":"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":"contract ERC20","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearstuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualswaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removesLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"},{"stateMutability":"payable","type":"receive"}]

60806040526a084595161401484a000000600a556064600a54600262000026919062000462565b62000032919062000482565b600b556064600a54600262000048919062000462565b62000054919062000482565b600c55612710600a5460056200006b919062000462565b62000077919062000482565b600d55600e805461ffff191690556001600f819055601081905560006011556012556064601355348015620000ab57600080fd5b506040518060400160405280601481526020017f546865205469636b6572204973205469636b6572000000000000000000000000815250604051806040016040528060068152602001652a24a1a5a2a960d11b815250816003908162000112919062000549565b50600462000121828262000549565b5050506200013e620001386200022e60201b60201c565b62000232565b60088054336001600160a01b0319918216179091556009805490911673546d6db735fb2db9a9c57ca372d1a0a4bb4829ce1790556005546200018b906001600160a01b0316600162000284565b600954620001a4906001600160a01b0316600162000284565b620001b130600162000284565b620001c061dead600162000284565b620001df620001d76005546001600160a01b031690565b6001620002ed565b600954620001f8906001600160a01b03166001620002ed565b62000205306001620002ed565b6200021461dead6001620002ed565b6200022833600a546200032260201b60201c565b6200062b565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200028e620003e9565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620002f7620003e9565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6001600160a01b0382166200037e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b806002600082825462000392919062000615565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620004455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000375565b565b505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200047c576200047c6200044c565b92915050565b600082620004a057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004d057607f821691505b602082108103620004f157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200044757600081815260208120601f850160051c81016020861015620005205750805b601f850160051c820191505b8181101562000541578281556001016200052c565b505050505050565b81516001600160401b03811115620005655762000565620004a5565b6200057d81620005768454620004bb565b84620004f7565b602080601f831160018114620005b557600084156200059c5750858301515b600019600386901b1c1916600185901b17855562000541565b600085815260208120601f198616915b82811015620005e657888601518255948401946001909101908401620005c5565b5085821015620006055787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200047c576200047c6200044c565b611f38806200063b6000396000f3fe60806040526004361061021e5760003560e01c80637963e1d211610123578063c8c8ebe4116100ab578063e2f456051161006f578063e2f45605146105fd578063ed99530714610613578063f2fde38b1461061b578063f8b45b051461063b578063ffb54a991461065157600080fd5b8063c8c8ebe414610586578063cf9522fd1461059c578063dbb859c8146105b2578063dd62ed3e146105c7578063dd854652146105e757600080fd5b80639a7a23d6116100f25780639a7a23d6146104e6578063a457c2d714610506578063a9059cbb14610526578063afa4f3b214610546578063c02466681461056657600080fd5b80637963e1d21461047e5780638a8c523c1461049e5780638da5cb5b146104b357806395d89b41146104d157600080fd5b80633ff52513116101a6578063583e056811610175578063583e0568146103ea5780636ddd17131461040a57806370a0823114610429578063715018a6146104495780637571336a1461045e57600080fd5b80633ff525131461034d578063414a87861461036357806349bd5a5e146103795780634fbee193146103b157600080fd5b806323b872dd116101ed57806323b872dd146102c6578063311028af146102e6578063313ce567146102fc57806339509351146103185780633efb47831461033857600080fd5b806306fdde031461022a578063095ea7b3146102555780630d1118ce1461028557806318160ddd146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f61066b565b60405161024c9190611b87565b60405180910390f35b34801561026157600080fd5b50610275610270366004611bea565b6106fd565b604051901515815260200161024c565b34801561029157600080fd5b506102a56102a0366004611bea565b610717565b005b3480156102b357600080fd5b506002545b60405190815260200161024c565b3480156102d257600080fd5b506102756102e1366004611c16565b610742565b3480156102f257600080fd5b506102b8600a5481565b34801561030857600080fd5b506040516012815260200161024c565b34801561032457600080fd5b50610275610333366004611bea565b610766565b34801561034457600080fd5b506102a5610788565b34801561035957600080fd5b506102b860125481565b34801561036f57600080fd5b506102b860115481565b34801561038557600080fd5b50600754610399906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156103bd57600080fd5b506102756103cc366004611c57565b6001600160a01b031660009081526014602052604090205460ff1690565b3480156103f657600080fd5b50600654610399906001600160a01b031681565b34801561041657600080fd5b50600e5461027590610100900460ff1681565b34801561043557600080fd5b506102b8610444366004611c57565b6107a6565b34801561045557600080fd5b506102a56107c1565b34801561046a57600080fd5b506102a5610479366004611c74565b6107d5565b34801561048a57600080fd5b506102a5610499366004611cb2565b610808565b3480156104aa57600080fd5b506102a56108b4565b3480156104bf57600080fd5b506005546001600160a01b0316610399565b3480156104dd57600080fd5b5061023f610920565b3480156104f257600080fd5b506102a5610501366004611c74565b61092f565b34801561051257600080fd5b50610275610521366004611bea565b6109c9565b34801561053257600080fd5b50610275610541366004611bea565b610a44565b34801561055257600080fd5b506102a5610561366004611cb2565b610a52565b34801561057257600080fd5b506102a5610581366004611c74565b610a72565b34801561059257600080fd5b506102b8600b5481565b3480156105a857600080fd5b506102b860105481565b3480156105be57600080fd5b506102a5610ad9565b3480156105d357600080fd5b506102b86105e2366004611ccb565b610b71565b3480156105f357600080fd5b506102b8600f5481565b34801561060957600080fd5b506102b8600d5481565b6102a5610b9c565b34801561062757600080fd5b506102a5610636366004611c57565b610e46565b34801561064757600080fd5b506102b8600c5481565b34801561065d57600080fd5b50600e546102759060ff1681565b60606003805461067a90611cf9565b80601f01602080910402602001604051908101604052809291908181526020018280546106a690611cf9565b80156106f35780601f106106c8576101008083540402835291602001916106f3565b820191906000526020600020905b8154815290600101906020018083116106d657829003601f168201915b5050505050905090565b60003361070b818585610ebc565b60019150505b92915050565b3360008181526014602052604090205460ff1661073357600080fd5b61073d8383610fe0565b505050565b600033610750858285611112565b61075b858585611186565b506001949350505050565b60003361070b8185856107798383610b71565b6107839190611d49565b610ebc565b610790611719565b600061079b60025490565b600b819055600c5550565b6001600160a01b031660009081526020819052604090205490565b6107c9611719565b6107d36000611773565b565b6107dd611719565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6009546001600160a01b0316336001600160a01b03161461082857600080fd5b600061083360025490565b90506000610840306107a6565b9050600060646108508585611d5c565b61085a9190611d73565b9050808210156108a55760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b60448201526064015b60405180910390fd5b6108ae816117c5565b50505050565b6108bc611719565b600e5460ff161561090f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161089c565b600e805461ffff1916610101179055565b60606004805461067a90611cf9565b610937611719565b6007546001600160a01b03908116908316036109bb5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161089c565b6109c58282611923565b5050565b600033816109d78286610b71565b905083811015610a375760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161089c565b61075b8286868403610ebc565b60003361070b818585611186565b610a5a611719565b610a6c81670de0b6b3a7640000611d5c565b600d5550565b610a7a611719565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b60004711610b225760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b604482015260640161089c565b6009546001600160a01b0316336001600160a01b031614610b4257600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610b6e573d6000803e3d6000fd5b50565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ba4611719565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610bd89060016107d5565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f9190611d95565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd59190611d95565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d469190611d95565b600780546001600160a01b0319166001600160a01b03929092169182179055610d709060016107d5565b600754610d87906001600160a01b03166001611923565b600654610da19030906001600160a01b0316600019610ebc565b6006546001600160a01b031663f305d7193430610dbd816107a6565b6040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610e21573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061073d9190611db2565b610e4e611719565b6001600160a01b038116610eb35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089c565b610b6e81611773565b6001600160a01b038316610f1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161089c565b6001600160a01b038216610f7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161089c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166110405760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161089c565b6001600160a01b038216600090815260208190526040902054818110156110b45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161089c565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600061111e8484610b71565b905060001981146108ae57818110156111795760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161089c565b6108ae8484848403610ebc565b6001600160a01b0383166111ac5760405162461bcd60e51b815260040161089c90611de0565b6001600160a01b0382166111d25760405162461bcd60e51b815260040161089c90611e25565b806000036111e65761073d83836000611977565b6005546001600160a01b0384811691161480159061121257506005546001600160a01b03838116911614155b801561122657506001600160a01b03821615155b801561123d57506001600160a01b03821661dead14155b80156112535750600954600160a01b900460ff16155b1561152c57600e5460ff166112e6576001600160a01b03831660009081526014602052604090205460ff16806112a157506001600160a01b03821660009081526014602052604090205460ff165b6112e65760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161089c565b6001600160a01b03831660009081526016602052604090205460ff16801561132757506001600160a01b03821660009081526015602052604090205460ff16155b156113fb57600b5481111561139c5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161089c565b600c546113a8836107a6565b6113b29083611d49565b11156113f65760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161089c565b61152c565b6001600160a01b03821660009081526016602052604090205460ff16801561143c57506001600160a01b03831660009081526015602052604090205460ff16155b156114b257600b548111156113f65760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161089c565b6001600160a01b03821660009081526015602052604090205460ff1661152c57600c546114de836107a6565b6114e89083611d49565b111561152c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161089c565b6000611537306107a6565b9050801580159081906115515750600e54610100900460ff165b80156115675750600954600160a01b900460ff16155b801561158c57506001600160a01b03851660009081526016602052604090205460ff16155b80156115b157506001600160a01b03851660009081526014602052604090205460ff16155b80156115d657506001600160a01b03841660009081526014602052604090205460ff16155b15611605576009805460ff60a01b1916600160a01b1790556115f783611aa1565b6009805460ff60a01b191690555b6009546001600160a01b03861660009081526014602052604090205460ff600160a01b90920482161591168061165357506001600160a01b03851660009081526014602052604090205460ff165b1561165c575060005b60008115611705576001600160a01b03861660009081526016602052604090205460ff16156116bb576116b4601354611696601254611b27565b6116a09190611d5c565b6010546116ae908890611b68565b90611b7b565b90506116e7565b6116e46013546116cc601154611b27565b6116d69190611d5c565b600f546116ae908890611b68565b90505b80156116f8576116f8873083611977565b6117028186611e68565b94505b611710878787611977565b50505050505050565b6005546001600160a01b031633146107d35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089c565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117fa576117fa611e7b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118779190611d95565b8160018151811061188a5761188a611e7b565b6001600160a01b0392831660209182029290920101526006546118b09130911684610ebc565b60065460095460405163791ac94760e01b81526001600160a01b039283169263791ac947926118ed92879260009288929116904290600401611e91565b600060405180830381600087803b15801561190757600080fd5b505af115801561191b573d6000803e3d6000fd5b505050505050565b6001600160a01b038216600081815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661199d5760405162461bcd60e51b815260040161089c90611de0565b6001600160a01b0382166119c35760405162461bcd60e51b815260040161089c90611e25565b6001600160a01b03831660009081526020819052604090205481811015611a3b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161089c565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108ae565b6000611aac306107a6565b9050600081600003611abd57505050565b600082118015611ace5750600d5482105b15611ada575080611b1e565b6000611af660646116ae60105487611b6890919063ffffffff16565b9050611b028185611e68565b9350600d54841115611b1857600d549150611b1c565b8391505b505b61073d816117c5565b600080611b3561dead6107a6565b118015611b425750600082115b611b4d576001610711565b60646001601354611b5e9190611e68565b6107119190611d73565b6000611b748284611d5c565b9392505050565b6000611b748284611d73565b600060208083528351808285015260005b81811015611bb457858101830151858201604001528201611b98565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b6e57600080fd5b60008060408385031215611bfd57600080fd5b8235611c0881611bd5565b946020939093013593505050565b600080600060608486031215611c2b57600080fd5b8335611c3681611bd5565b92506020840135611c4681611bd5565b929592945050506040919091013590565b600060208284031215611c6957600080fd5b8135611b7481611bd5565b60008060408385031215611c8757600080fd5b8235611c9281611bd5565b915060208301358015158114611ca757600080fd5b809150509250929050565b600060208284031215611cc457600080fd5b5035919050565b60008060408385031215611cde57600080fd5b8235611ce981611bd5565b91506020830135611ca781611bd5565b600181811c90821680611d0d57607f821691505b602082108103611d2d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561071157610711611d33565b808202811582820484141761071157610711611d33565b600082611d9057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611da757600080fd5b8151611b7481611bd5565b600080600060608486031215611dc757600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561071157610711611d33565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ee15784516001600160a01b031683529383019391830191600101611ebc565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203a5be27f0e4026cca0a31a0edef80ebf748d684f26eccc3802c50840db7db01764736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80637963e1d211610123578063c8c8ebe4116100ab578063e2f456051161006f578063e2f45605146105fd578063ed99530714610613578063f2fde38b1461061b578063f8b45b051461063b578063ffb54a991461065157600080fd5b8063c8c8ebe414610586578063cf9522fd1461059c578063dbb859c8146105b2578063dd62ed3e146105c7578063dd854652146105e757600080fd5b80639a7a23d6116100f25780639a7a23d6146104e6578063a457c2d714610506578063a9059cbb14610526578063afa4f3b214610546578063c02466681461056657600080fd5b80637963e1d21461047e5780638a8c523c1461049e5780638da5cb5b146104b357806395d89b41146104d157600080fd5b80633ff52513116101a6578063583e056811610175578063583e0568146103ea5780636ddd17131461040a57806370a0823114610429578063715018a6146104495780637571336a1461045e57600080fd5b80633ff525131461034d578063414a87861461036357806349bd5a5e146103795780634fbee193146103b157600080fd5b806323b872dd116101ed57806323b872dd146102c6578063311028af146102e6578063313ce567146102fc57806339509351146103185780633efb47831461033857600080fd5b806306fdde031461022a578063095ea7b3146102555780630d1118ce1461028557806318160ddd146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f61066b565b60405161024c9190611b87565b60405180910390f35b34801561026157600080fd5b50610275610270366004611bea565b6106fd565b604051901515815260200161024c565b34801561029157600080fd5b506102a56102a0366004611bea565b610717565b005b3480156102b357600080fd5b506002545b60405190815260200161024c565b3480156102d257600080fd5b506102756102e1366004611c16565b610742565b3480156102f257600080fd5b506102b8600a5481565b34801561030857600080fd5b506040516012815260200161024c565b34801561032457600080fd5b50610275610333366004611bea565b610766565b34801561034457600080fd5b506102a5610788565b34801561035957600080fd5b506102b860125481565b34801561036f57600080fd5b506102b860115481565b34801561038557600080fd5b50600754610399906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156103bd57600080fd5b506102756103cc366004611c57565b6001600160a01b031660009081526014602052604090205460ff1690565b3480156103f657600080fd5b50600654610399906001600160a01b031681565b34801561041657600080fd5b50600e5461027590610100900460ff1681565b34801561043557600080fd5b506102b8610444366004611c57565b6107a6565b34801561045557600080fd5b506102a56107c1565b34801561046a57600080fd5b506102a5610479366004611c74565b6107d5565b34801561048a57600080fd5b506102a5610499366004611cb2565b610808565b3480156104aa57600080fd5b506102a56108b4565b3480156104bf57600080fd5b506005546001600160a01b0316610399565b3480156104dd57600080fd5b5061023f610920565b3480156104f257600080fd5b506102a5610501366004611c74565b61092f565b34801561051257600080fd5b50610275610521366004611bea565b6109c9565b34801561053257600080fd5b50610275610541366004611bea565b610a44565b34801561055257600080fd5b506102a5610561366004611cb2565b610a52565b34801561057257600080fd5b506102a5610581366004611c74565b610a72565b34801561059257600080fd5b506102b8600b5481565b3480156105a857600080fd5b506102b860105481565b3480156105be57600080fd5b506102a5610ad9565b3480156105d357600080fd5b506102b86105e2366004611ccb565b610b71565b3480156105f357600080fd5b506102b8600f5481565b34801561060957600080fd5b506102b8600d5481565b6102a5610b9c565b34801561062757600080fd5b506102a5610636366004611c57565b610e46565b34801561064757600080fd5b506102b8600c5481565b34801561065d57600080fd5b50600e546102759060ff1681565b60606003805461067a90611cf9565b80601f01602080910402602001604051908101604052809291908181526020018280546106a690611cf9565b80156106f35780601f106106c8576101008083540402835291602001916106f3565b820191906000526020600020905b8154815290600101906020018083116106d657829003601f168201915b5050505050905090565b60003361070b818585610ebc565b60019150505b92915050565b3360008181526014602052604090205460ff1661073357600080fd5b61073d8383610fe0565b505050565b600033610750858285611112565b61075b858585611186565b506001949350505050565b60003361070b8185856107798383610b71565b6107839190611d49565b610ebc565b610790611719565b600061079b60025490565b600b819055600c5550565b6001600160a01b031660009081526020819052604090205490565b6107c9611719565b6107d36000611773565b565b6107dd611719565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6009546001600160a01b0316336001600160a01b03161461082857600080fd5b600061083360025490565b90506000610840306107a6565b9050600060646108508585611d5c565b61085a9190611d73565b9050808210156108a55760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b60448201526064015b60405180910390fd5b6108ae816117c5565b50505050565b6108bc611719565b600e5460ff161561090f5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161089c565b600e805461ffff1916610101179055565b60606004805461067a90611cf9565b610937611719565b6007546001600160a01b03908116908316036109bb5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161089c565b6109c58282611923565b5050565b600033816109d78286610b71565b905083811015610a375760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161089c565b61075b8286868403610ebc565b60003361070b818585611186565b610a5a611719565b610a6c81670de0b6b3a7640000611d5c565b600d5550565b610a7a611719565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b60004711610b225760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b604482015260640161089c565b6009546001600160a01b0316336001600160a01b031614610b4257600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610b6e573d6000803e3d6000fd5b50565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ba4611719565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610bd89060016107d5565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f9190611d95565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd59190611d95565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d469190611d95565b600780546001600160a01b0319166001600160a01b03929092169182179055610d709060016107d5565b600754610d87906001600160a01b03166001611923565b600654610da19030906001600160a01b0316600019610ebc565b6006546001600160a01b031663f305d7193430610dbd816107a6565b6040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610e21573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061073d9190611db2565b610e4e611719565b6001600160a01b038116610eb35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089c565b610b6e81611773565b6001600160a01b038316610f1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161089c565b6001600160a01b038216610f7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161089c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0382166110405760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161089c565b6001600160a01b038216600090815260208190526040902054818110156110b45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161089c565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600061111e8484610b71565b905060001981146108ae57818110156111795760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161089c565b6108ae8484848403610ebc565b6001600160a01b0383166111ac5760405162461bcd60e51b815260040161089c90611de0565b6001600160a01b0382166111d25760405162461bcd60e51b815260040161089c90611e25565b806000036111e65761073d83836000611977565b6005546001600160a01b0384811691161480159061121257506005546001600160a01b03838116911614155b801561122657506001600160a01b03821615155b801561123d57506001600160a01b03821661dead14155b80156112535750600954600160a01b900460ff16155b1561152c57600e5460ff166112e6576001600160a01b03831660009081526014602052604090205460ff16806112a157506001600160a01b03821660009081526014602052604090205460ff165b6112e65760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161089c565b6001600160a01b03831660009081526016602052604090205460ff16801561132757506001600160a01b03821660009081526015602052604090205460ff16155b156113fb57600b5481111561139c5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161089c565b600c546113a8836107a6565b6113b29083611d49565b11156113f65760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161089c565b61152c565b6001600160a01b03821660009081526016602052604090205460ff16801561143c57506001600160a01b03831660009081526015602052604090205460ff16155b156114b257600b548111156113f65760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161089c565b6001600160a01b03821660009081526015602052604090205460ff1661152c57600c546114de836107a6565b6114e89083611d49565b111561152c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161089c565b6000611537306107a6565b9050801580159081906115515750600e54610100900460ff165b80156115675750600954600160a01b900460ff16155b801561158c57506001600160a01b03851660009081526016602052604090205460ff16155b80156115b157506001600160a01b03851660009081526014602052604090205460ff16155b80156115d657506001600160a01b03841660009081526014602052604090205460ff16155b15611605576009805460ff60a01b1916600160a01b1790556115f783611aa1565b6009805460ff60a01b191690555b6009546001600160a01b03861660009081526014602052604090205460ff600160a01b90920482161591168061165357506001600160a01b03851660009081526014602052604090205460ff165b1561165c575060005b60008115611705576001600160a01b03861660009081526016602052604090205460ff16156116bb576116b4601354611696601254611b27565b6116a09190611d5c565b6010546116ae908890611b68565b90611b7b565b90506116e7565b6116e46013546116cc601154611b27565b6116d69190611d5c565b600f546116ae908890611b68565b90505b80156116f8576116f8873083611977565b6117028186611e68565b94505b611710878787611977565b50505050505050565b6005546001600160a01b031633146107d35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089c565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117fa576117fa611e7b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118779190611d95565b8160018151811061188a5761188a611e7b565b6001600160a01b0392831660209182029290920101526006546118b09130911684610ebc565b60065460095460405163791ac94760e01b81526001600160a01b039283169263791ac947926118ed92879260009288929116904290600401611e91565b600060405180830381600087803b15801561190757600080fd5b505af115801561191b573d6000803e3d6000fd5b505050505050565b6001600160a01b038216600081815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661199d5760405162461bcd60e51b815260040161089c90611de0565b6001600160a01b0382166119c35760405162461bcd60e51b815260040161089c90611e25565b6001600160a01b03831660009081526020819052604090205481811015611a3b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161089c565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36108ae565b6000611aac306107a6565b9050600081600003611abd57505050565b600082118015611ace5750600d5482105b15611ada575080611b1e565b6000611af660646116ae60105487611b6890919063ffffffff16565b9050611b028185611e68565b9350600d54841115611b1857600d549150611b1c565b8391505b505b61073d816117c5565b600080611b3561dead6107a6565b118015611b425750600082115b611b4d576001610711565b60646001601354611b5e9190611e68565b6107119190611d73565b6000611b748284611d5c565b9392505050565b6000611b748284611d73565b600060208083528351808285015260005b81811015611bb457858101830151858201604001528201611b98565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b6e57600080fd5b60008060408385031215611bfd57600080fd5b8235611c0881611bd5565b946020939093013593505050565b600080600060608486031215611c2b57600080fd5b8335611c3681611bd5565b92506020840135611c4681611bd5565b929592945050506040919091013590565b600060208284031215611c6957600080fd5b8135611b7481611bd5565b60008060408385031215611c8757600080fd5b8235611c9281611bd5565b915060208301358015158114611ca757600080fd5b809150509250929050565b600060208284031215611cc457600080fd5b5035919050565b60008060408385031215611cde57600080fd5b8235611ce981611bd5565b91506020830135611ca781611bd5565b600181811c90821680611d0d57607f821691505b602082108103611d2d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561071157610711611d33565b808202811582820484141761071157610711611d33565b600082611d9057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611da757600080fd5b8151611b7481611bd5565b600080600060608486031215611dc757600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561071157610711611d33565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ee15784516001600160a01b031683529383019391830191600101611ebc565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203a5be27f0e4026cca0a31a0edef80ebf748d684f26eccc3802c50840db7db01764736f6c63430008130033

Deployed Bytecode Sourcemap

14719:9178:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9947:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10879:201;;;;;;;;;;-1:-1:-1;10879:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10879:201:0;1023:187:1;22461:140:0;;;;;;;;;;-1:-1:-1;22461:140:0;;;;;:::i;:::-;;:::i;:::-;;10268:108;;;;;;;;;;-1:-1:-1;10356:12:0;;10268:108;;;1695:25:1;;;1683:2;1668:18;10268:108:0;1549:177:1;11088:261:0;;;;;;;;;;-1:-1:-1;11088:261:0;;;;;:::i;:::-;;:::i;15171:53::-;;;;;;;;;;;;;;;;10167:93;;;;;;;;;;-1:-1:-1;10167:93:0;;10250:2;2334:36:1;;2322:2;2307:18;10167:93:0;2192:184:1;11357:238:0;;;;;;;;;;-1:-1:-1;11357:238:0;;;;;:::i;:::-;;:::i;22025:194::-;;;;;;;;;;;;;:::i;15692:30::-;;;;;;;;;;;;;;;;15656:29;;;;;;;;;;;;;;;;14848:28;;;;;;;;;;-1:-1:-1;14848:28:0;;;;-1:-1:-1;;;;;14848:28:0;;;;;;-1:-1:-1;;;;;2545:32:1;;;2527:51;;2515:2;2500:18;14848:28:0;2381:203:1;19009:126:0;;;;;;;;;;-1:-1:-1;19009:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;19099:28:0;19075:4;19099:28;;;:19;:28;;;;;;;;;19009:126;14799:42;;;;;;;;;;-1:-1:-1;14799:42:0;;;;-1:-1:-1;;;;;14799:42:0;;;15549:31;;;;;;;;;;-1:-1:-1;15549:31:0;;;;;;;;;;;10384:127;;;;;;;;;;-1:-1:-1;10384:127:0;;;;;:::i;:::-;;:::i;1042:103::-;;;;;;;;;;;;;:::i;17983:167::-;;;;;;;;;;-1:-1:-1;17983:167:0;;;;;:::i;:::-;;:::i;22744:410::-;;;;;;;;;;-1:-1:-1;22744:410:0;;;;;:::i;:::-;;:::i;17779:196::-;;;;;;;;;;;;;:::i;807:87::-;;;;;;;;;;-1:-1:-1;880:6:0;;-1:-1:-1;;;;;880:6:0;807:87;;10055:104;;;;;;;;;;;;;:::i;18542:265::-;;;;;;;;;;-1:-1:-1;18542:265:0;;;;;:::i;:::-;;:::i;11603:436::-;;;;;;;;;;-1:-1:-1;11603:436:0;;;;;:::i;:::-;;:::i;10519:193::-;;;;;;;;;;-1:-1:-1;10519:193:0;;;;;:::i;:::-;;:::i;22609:127::-;;;;;;;;;;-1:-1:-1;22609:127:0;;;;;:::i;:::-;;:::i;18327:207::-;;;;;;;;;;-1:-1:-1;18327:207:0;;;;;:::i;:::-;;:::i;15245:68::-;;;;;;;;;;;;;;;;15621:26;;;;;;;;;;;;;;;;22227:226;;;;;;;;;;;;;:::i;10720:151::-;;;;;;;;;;-1:-1:-1;10720:151:0;;;;;:::i;:::-;;:::i;15589:25::-;;;;;;;;;;;;;;;;15419:68;;;;;;;;;;;;;;;;16978:756;;;:::i;1153:201::-;;;;;;;;;;-1:-1:-1;1153:201:0;;;;;:::i;:::-;;:::i;15332:57::-;;;;;;;;;;;;;;;;15511:31;;;;;;;;;;-1:-1:-1;15511:31:0;;;;;;;;9947:100;10001:13;10034:5;10027:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9947:100;:::o;10879:201::-;10962:4;360:10;11018:32;360:10;11034:7;11043:6;11018:8;:32::i;:::-;11068:4;11061:11;;;10879:201;;;;;:::o;22461:140::-;22533:10;19075:4;19099:28;;;:19;:28;;;;;;;;16079:35;;;;;;22557:36:::1;22571:12;22586:6;22557:5;:36::i;:::-;22461:140:::0;;;:::o;11088:261::-;11185:4;360:10;11243:38;11259:4;360:10;11274:6;11243:15;:38::i;:::-;11292:27;11302:4;11308:2;11312:6;11292:9;:27::i;:::-;-1:-1:-1;11337:4:0;;11088:261;-1:-1:-1;;;;11088:261:0:o;11357:238::-;11445:4;360:10;11501:64;360:10;11517:7;11554:10;11526:25;360:10;11517:7;11526:9;:25::i;:::-;:38;;;;:::i;:::-;11501:8;:64::i;22025:194::-;766:13;:11;:13::i;:::-;22079:25:::1;22107:13;10356:12:::0;;;10268:108;22107:13:::1;22131:20;:40:::0;;;22182:9:::1;:29:::0;-1:-1:-1;22025:194:0:o;10384:127::-;-1:-1:-1;;;;;10485:18:0;10458:7;10485:18;;;;;;;;;;;;10384:127::o;1042:103::-;766:13;:11;:13::i;:::-;1107:30:::1;1134:1;1107:18;:30::i;:::-;1042:103::o:0;17983:167::-;766:13;:11;:13::i;:::-;-1:-1:-1;;;;;18096:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;18096:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17983:167::o;22744:410::-;22826:15;;-1:-1:-1;;;;;22826:15:0;360:10;-1:-1:-1;;;;;22810:31:0;;22802:40;;;;;;22855:25;22883:13;10356:12;;;10268:108;22883:13;22855:41;;22907:23;22933:24;22951:4;22933:9;:24::i;:::-;22907:50;-1:-1:-1;22968:23:0;23024:3;22994:27;23014:7;22994:17;:27;:::i;:::-;:33;;;;:::i;:::-;22968:59;;23065:15;23046;:34;;23038:64;;;;-1:-1:-1;;;23038:64:0;;5318:2:1;23038:64:0;;;5300:21:1;5357:2;5337:18;;;5330:30;-1:-1:-1;;;5376:18:1;;;5369:47;5433:18;;23038:64:0;;;;;;;;;23113:33;23130:15;23113:16;:33::i;:::-;22791:363;;;22744:410;:::o;17779:196::-;766:13;:11;:13::i;:::-;17869:11:::1;::::0;::::1;;17868:12;17860:47;;;::::0;-1:-1:-1;;;17860:47:0;;5664:2:1;17860:47:0::1;::::0;::::1;5646:21:1::0;5703:2;5683:18;;;5676:30;5742:25;5722:18;;;5715:53;5785:18;;17860:47:0::1;5462:347:1::0;17860:47:0::1;17920:11;:18:::0;;-1:-1:-1;;17949:18:0;;;;;17779:196::o;10055:104::-;10111:13;10144:7;10137:14;;;;;:::i;18542:265::-;766:13;:11;:13::i;:::-;18672::::1;::::0;-1:-1:-1;;;;;18672:13:0;;::::1;18664:21:::0;;::::1;::::0;18656:91:::1;;;::::0;-1:-1:-1;;;18656:91:0;;6016:2:1;18656:91:0::1;::::0;::::1;5998:21:1::0;6055:2;6035:18;;;6028:30;6094:34;6074:18;;;6067:62;6165:27;6145:18;;;6138:55;6210:19;;18656:91:0::1;5814:421:1::0;18656:91:0::1;18758:41;18787:4;18793:5;18758:28;:41::i;:::-;18542:265:::0;;:::o;11603:436::-;11696:4;360:10;11696:4;11779:25;360:10;11796:7;11779:9;:25::i;:::-;11752:52;;11843:15;11823:16;:35;;11815:85;;;;-1:-1:-1;;;11815:85:0;;6442:2:1;11815:85:0;;;6424:21:1;6481:2;6461:18;;;6454:30;6520:34;6500:18;;;6493:62;-1:-1:-1;;;6571:18:1;;;6564:35;6616:19;;11815:85:0;6240:401:1;11815:85:0;11936:60;11945:5;11952:7;11980:15;11961:16;:34;11936:8;:60::i;10519:193::-;10598:4;360:10;10654:28;360:10;10671:2;10675:6;10654:9;:28::i;22609:127::-;766:13;:11;:13::i;:::-;22708:20:::1;:7:::0;22719:8:::1;22708:20;:::i;:::-;22687:18;:41:::0;-1:-1:-1;22609:127:0:o;18327:207::-;766:13;:11;:13::i;:::-;-1:-1:-1;;;;;18437:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;18437:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18492:34;;1163:41:1;;;18492:34:0::1;::::0;1136:18:1;18492:34:0::1;;;;;;;18327:207:::0;;:::o;22227:226::-;22304:1;22280:21;:25;22272:60;;;;-1:-1:-1;;;22272:60:0;;6848:2:1;22272:60:0;;;6830:21:1;6887:2;6867:18;;;6860:30;-1:-1:-1;;;6906:18:1;;;6899:52;6968:18;;22272:60:0;6646:346:1;22272:60:0;22367:15;;-1:-1:-1;;;;;22367:15:0;360:10;-1:-1:-1;;;;;22351:31:0;;22343:40;;;;;;22394:51;;22402:10;;22423:21;22394:51;;;;;;;;;22423:21;22402:10;22394:51;;;;;;;;;;;;;;;;;;;;;22227:226::o;10720:151::-;-1:-1:-1;;;;;10836:18:0;;;10809:7;10836:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10720:151::o;16978:756::-;766:13;:11;:13::i;:::-;17076:16:::1;:81:::0;;-1:-1:-1;;;;;;17076:81:0::1;17114:42;17076:81:::0;;::::1;::::0;;;17168:58:::1;::::0;17076:81;17168:25:::1;:58::i;:::-;17273:16;;;;;;;;;-1:-1:-1::0;;;;;17273:16:0::1;-1:-1:-1::0;;;;;17273:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17255:56:0::1;;17320:4;17327:16;;;;;;;;;-1:-1:-1::0;;;;;17327:16:0::1;-1:-1:-1::0;;;;;17327:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17255:96;::::0;-1:-1:-1;;;;;;17255:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7483:15:1;;;17255:96:0::1;::::0;::::1;7465:34:1::0;7535:15;;7515:18;;;7508:43;7400:18;;17255:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17239:13;:112:::0;;-1:-1:-1;;;;;;17239:112:0::1;-1:-1:-1::0;;;;;17239:112:0;;;::::1;::::0;;::::1;::::0;;17378:55:::1;::::0;-1:-1:-1;17378:25:0::1;:55::i;:::-;17483:13;::::0;17446:58:::1;::::0;-1:-1:-1;;;;;17483:13:0::1;::::0;17446:28:::1;:58::i;:::-;17555:16;::::0;17523:69:::1;::::0;17540:4:::1;::::0;-1:-1:-1;;;;;17555:16:0::1;-1:-1:-1::0;;17523:8:0::1;:69::i;:::-;17605:16;::::0;-1:-1:-1;;;;;17605:16:0::1;:32;17645:9;17664:4;17670:24;17664:4:::0;17670:9:::1;:24::i;:::-;17605:121;::::0;-1:-1:-1;;;;;;17605:121:0::1;::::0;;;;;;-1:-1:-1;;;;;7921:15:1;;;17605:121:0::1;::::0;::::1;7903:34:1::0;7953:18;;;7946:34;17695:1:0::1;7996:18:1::0;;;7989:34;;;8039:18;;;8032:34;17699:10:0::1;8082:19:1::0;;;8075:44;17710:15:0::1;8135:19:1::0;;;8128:35;7837:19;;17605:121:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1153:201::-:0;766:13;:11;:13::i;:::-;-1:-1:-1;;;;;1242:22:0;::::1;1234:73;;;::::0;-1:-1:-1;;;1234:73:0;;8687:2:1;1234:73:0::1;::::0;::::1;8669:21:1::0;8726:2;8706:18;;;8699:30;8765:34;8745:18;;;8738:62;-1:-1:-1;;;8816:18:1;;;8809:36;8862:19;;1234:73:0::1;8485:402:1::0;1234:73:0::1;1318:28;1337:8;1318:18;:28::i;13742:346::-:0;-1:-1:-1;;;;;13844:19:0;;13836:68;;;;-1:-1:-1;;;13836:68:0;;9094:2:1;13836:68:0;;;9076:21:1;9133:2;9113:18;;;9106:30;9172:34;9152:18;;;9145:62;-1:-1:-1;;;9223:18:1;;;9216:34;9267:19;;13836:68:0;8892:400:1;13836:68:0;-1:-1:-1;;;;;13923:21:0;;13915:68;;;;-1:-1:-1;;;13915:68:0;;9499:2:1;13915:68:0;;;9481:21:1;9538:2;9518:18;;;9511:30;9577:34;9557:18;;;9550:62;-1:-1:-1;;;9628:18:1;;;9621:32;9670:19;;13915:68:0;9297:398:1;13915:68:0;-1:-1:-1;;;;;13996:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14048:32;;1695:25:1;;;14048:32:0;;1668:18:1;14048:32:0;;;;;;;13742:346;;;:::o;13139:595::-;-1:-1:-1;;;;;13223:21:0;;13215:67;;;;-1:-1:-1;;;13215:67:0;;9902:2:1;13215:67:0;;;9884:21:1;9941:2;9921:18;;;9914:30;9980:34;9960:18;;;9953:62;-1:-1:-1;;;10031:18:1;;;10024:31;10072:19;;13215:67:0;9700:397:1;13215:67:0;-1:-1:-1;;;;;13382:18:0;;13357:22;13382:18;;;;;;;;;;;13419:24;;;;13411:71;;;;-1:-1:-1;;;13411:71:0;;10304:2:1;13411:71:0;;;10286:21:1;10343:2;10323:18;;;10316:30;10382:34;10362:18;;;10355:62;-1:-1:-1;;;10433:18:1;;;10426:32;10475:19;;13411:71:0;10102:398:1;13411:71:0;-1:-1:-1;;;;;13518:18:0;;:9;:18;;;;;;;;;;;13539:23;;;13518:44;;13577:12;:22;;;;;;;13628:37;1695:25:1;;;13518:9:0;;:18;13628:37;;1668:18:1;13628:37:0;;;;;;;22461:140;;;:::o;14096:419::-;14197:24;14224:25;14234:5;14241:7;14224:9;:25::i;:::-;14197:52;;-1:-1:-1;;14264:16:0;:37;14260:248;;14346:6;14326:16;:26;;14318:68;;;;-1:-1:-1;;;14318:68:0;;10707:2:1;14318:68:0;;;10689:21:1;10746:2;10726:18;;;10719:30;10785:31;10765:18;;;10758:59;10834:18;;14318:68:0;10505:353:1;14318:68:0;14430:51;14439:5;14446:7;14474:6;14455:16;:25;14430:8;:51::i;19143:2388::-;-1:-1:-1;;;;;19243:18:0;;19235:68;;;;-1:-1:-1;;;19235:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19322:16:0;;19314:64;;;;-1:-1:-1;;;19314:64:0;;;;;;;:::i;:::-;19403:6;19413:1;19403:11;19399:93;;19431:28;19447:4;19453:2;19457:1;19431:15;:28::i;19399:93::-;880:6;;-1:-1:-1;;;;;19508:15:0;;;880:6;;19508:15;;;;:32;;-1:-1:-1;880:6:0;;-1:-1:-1;;;;;19527:13:0;;;880:6;;19527:13;;19508:32;:52;;;;-1:-1:-1;;;;;;19544:16:0;;;;19508:52;:77;;;;-1:-1:-1;;;;;;19564:21:0;;19578:6;19564:21;;19508:77;:90;;;;-1:-1:-1;19590:8:0;;-1:-1:-1;;;19590:8:0;;;;19589:9;19508:90;19504:996;;;19622:11;;;;19617:140;;-1:-1:-1;;;;;19662:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19691:23:0;;;;;;:19;:23;;;;;;;;19662:52;19654:87;;;;-1:-1:-1;;;19654:87:0;;11875:2:1;19654:87:0;;;11857:21:1;11914:2;11894:18;;;11887:30;-1:-1:-1;;;11933:18:1;;;11926:52;11995:18;;19654:87:0;11673:346:1;19654:87:0;-1:-1:-1;;;;;19777:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19813:35:0;;;;;;:31;:35;;;;;;;;19812:36;19777:71;19773:716;;;19901:20;;19891:6;:30;;19883:96;;;;-1:-1:-1;;;19883:96:0;;12226:2:1;19883:96:0;;;12208:21:1;12265:2;12245:18;;;12238:30;12304:34;12284:18;;;12277:62;-1:-1:-1;;;12355:18:1;;;12348:51;12416:19;;19883:96:0;12024:417:1;19883:96:0;20032:9;;20015:13;20025:2;20015:9;:13::i;:::-;20006:22;;:6;:22;:::i;:::-;:35;;19998:67;;;;-1:-1:-1;;;19998:67:0;;12648:2:1;19998:67:0;;;12630:21:1;12687:2;12667:18;;;12660:30;-1:-1:-1;;;12706:18:1;;;12699:49;12765:18;;19998:67:0;12446:343:1;19998:67:0;19773:716;;;-1:-1:-1;;;;;20106:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;20140:37:0;;;;;;:31;:37;;;;;;;;20139:38;20106:71;20102:387;;;20216:20;;20206:6;:30;;20198:97;;;;-1:-1:-1;;;20198:97:0;;12996:2:1;20198:97:0;;;12978:21:1;13035:2;13015:18;;;13008:30;13074:34;13054:18;;;13047:62;-1:-1:-1;;;13125:18:1;;;13118:52;13187:19;;20198:97:0;12794:418:1;20102:387:0;-1:-1:-1;;;;;20350:35:0;;;;;;:31;:35;;;;;;;;20345:144;;20440:9;;20423:13;20433:2;20423:9;:13::i;:::-;20414:22;;:6;:22;:::i;:::-;:35;;20406:67;;;;-1:-1:-1;;;20406:67:0;;12648:2:1;20406:67:0;;;12630:21:1;12687:2;12667:18;;;12660:30;-1:-1:-1;;;12706:18:1;;;12699:49;12765:18;;20406:67:0;12446:343:1;20406:67:0;20512:28;20543:24;20561:4;20543:9;:24::i;:::-;20512:55;-1:-1:-1;20595:24:0;;;;;;;20636:22;;-1:-1:-1;20647:11:0;;;;;;;20636:22;:35;;;;-1:-1:-1;20663:8:0;;-1:-1:-1;;;20663:8:0;;;;20662:9;20636:35;:71;;;;-1:-1:-1;;;;;;20676:31:0;;;;;;:25;:31;;;;;;;;20675:32;20636:71;:101;;;;-1:-1:-1;;;;;;20712:25:0;;;;;;:19;:25;;;;;;;;20711:26;20636:101;:129;;;;-1:-1:-1;;;;;;20742:23:0;;;;;;:19;:23;;;;;;;;20741:24;20636:129;20632:239;;;20782:8;:15;;-1:-1:-1;;;;20782:15:0;-1:-1:-1;;;20782:15:0;;;20812:16;20821:6;20812:8;:16::i;:::-;20843:8;:16;;-1:-1:-1;;;;20843:16:0;;;20632:239;20899:8;;-1:-1:-1;;;;;20924:25:0;;20883:12;20924:25;;;20899:8;20924:25;;;;;;20899:8;-1:-1:-1;;;20899:8:0;;;;;20898:9;;20924:25;;:52;;-1:-1:-1;;;;;;20953:23:0;;;;;;:19;:23;;;;;;;;20924:52;20920:100;;;-1:-1:-1;21003:5:0;20920:100;21032:12;21065:7;21061:419;;;-1:-1:-1;;;;;21093:29:0;;;;;;:25;:29;;;;;;;;21089:264;;;21150:64;21199:14;;21174:22;21184:11;;21174:9;:22::i;:::-;:39;;;;:::i;:::-;21161:7;;21150:19;;:6;;:10;:19::i;:::-;:23;;:64::i;:::-;21143:71;;21089:264;;;21275:62;21322:14;;21298:21;21308:10;;21298:9;:21::i;:::-;:38;;;;:::i;:::-;21286:6;;21275:18;;:6;;:10;:18::i;:62::-;21268:69;;21089:264;21369:8;;21365:83;;21394:42;21410:4;21424;21431;21394:15;:42::i;:::-;21458:14;21468:4;21458:14;;:::i;:::-;;;21061:419;21490:33;21506:4;21512:2;21516:6;21490:15;:33::i;:::-;19222:2309;;;;19143:2388;;;:::o;902:132::-;880:6;;-1:-1:-1;;;;;880:6:0;360:10;966:23;958:68;;;;-1:-1:-1;;;958:68:0;;13552:2:1;958:68:0;;;13534:21:1;;;13571:18;;;13564:30;13630:34;13610:18;;;13603:62;13682:18;;958:68:0;13350:356:1;1362:191:0;1455:6;;;-1:-1:-1;;;;;1472:17:0;;;-1:-1:-1;;;;;;1472:17:0;;;;;;;1505:40;;1455:6;;;1472:17;1455:6;;1505:40;;1436:16;;1505:40;1425:128;1362:191;:::o;21539:478::-;21631:16;;;21645:1;21631:16;;;;;;;;21607:21;;21631:16;;;;;;;;;;-1:-1:-1;21631:16:0;21607:40;;21676:4;21658;21663:1;21658:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21658:23:0;;;:7;;;;;;;;;;:23;;;;21702:16;;:23;;;-1:-1:-1;;;21702:23:0;;;;:16;;;;;:21;;:23;;;;;21658:7;;21702:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21692:4;21697:1;21692:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21692:33:0;;;:7;;;;;;;;;:33;21768:16;;21736:63;;21753:4;;21768:16;21787:11;21736:8;:63::i;:::-;21810:16;;21953:15;;21810:199;;-1:-1:-1;;;21810:199:0;;-1:-1:-1;;;;;21810:16:0;;;;:67;;:199;;21892:11;;21810:16;;21934:4;;21953:15;;;21983;;21810:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21594:423;21539:478;:::o;18815:186::-;-1:-1:-1;;;;;18898:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18898:39:0;;;;;;;;;;18953:40;;18898:39;;:31;18953:40;;;18815:186;;:::o;12047:641::-;-1:-1:-1;;;;;12144:18:0;;12136:68;;;;-1:-1:-1;;;12136:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12223:16:0;;12215:64;;;;-1:-1:-1;;;12215:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12365:15:0;;12343:19;12365:15;;;;;;;;;;;12399:21;;;;12391:72;;;;-1:-1:-1;;;12391:72:0;;15162:2:1;12391:72:0;;;15144:21:1;15201:2;15181:18;;;15174:30;15240:34;15220:18;;;15213:62;-1:-1:-1;;;15291:18:1;;;15284:36;15337:19;;12391:72:0;14960:402:1;12391:72:0;-1:-1:-1;;;;;12499:15:0;;;:9;:15;;;;;;;;;;;12517:20;;;12499:38;;12552:13;;;;;;;;;;:23;;;;;;12604:26;;1695:25:1;;;12552:13:0;;12604:26;;1668:18:1;12604:26:0;;;;;;;12643:37;22461:140;23162:728;23241:23;23267:24;23285:4;23267:9;:24::i;:::-;23241:50;;23302:20;23339:15;23358:1;23339:20;23335:505;;23376:7;;23162:728;:::o;23335:505::-;23431:1;23413:15;:19;:59;;;;;23454:18;;23436:15;:36;23413:59;23410:430;;;-1:-1:-1;23504:15:0;23410:430;;;23561:21;23585:28;23609:3;23585:19;23596:7;;23585:6;:10;;:19;;;;:::i;:28::-;23561:52;-1:-1:-1;23628:23:0;23561:52;23628:23;;:::i;:::-;;;23679:18;;23670:6;:27;23666:163;;;23733:18;;23718:33;;23666:163;;;23807:6;23792:21;;23666:163;23546:294;23410:430;23852:30;23869:12;23852:16;:30::i;18158:161::-;18214:7;18266:1;18241:22;15013:6;18241:9;:22::i;:::-;:26;:37;;;;;18277:1;18271:3;:7;18241:37;:70;;18310:1;18241:70;;;18303:3;18298:1;18283:14;;:16;;;;:::i;:::-;18282:24;;;;:::i;8400:98::-;8458:7;8485:5;8489:1;8485;:5;:::i;:::-;8478:12;8400:98;-1:-1:-1;;;8400:98:0:o;8506:::-;8564:7;8591:5;8595:1;8591;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1731:456::-;1808:6;1816;1824;1877:2;1865:9;1856:7;1852:23;1848:32;1845:52;;;1893:1;1890;1883:12;1845:52;1932:9;1919:23;1951:31;1976:5;1951:31;:::i;:::-;2001:5;-1:-1:-1;2058:2:1;2043:18;;2030:32;2071:33;2030:32;2071:33;:::i;:::-;1731:456;;2123:7;;-1:-1:-1;;;2177:2:1;2162:18;;;;2149:32;;1731:456::o;2589:247::-;2648:6;2701:2;2689:9;2680:7;2676:23;2672:32;2669:52;;;2717:1;2714;2707:12;2669:52;2756:9;2743:23;2775:31;2800:5;2775:31;:::i;3075:416::-;3140:6;3148;3201:2;3189:9;3180:7;3176:23;3172:32;3169:52;;;3217:1;3214;3207:12;3169:52;3256:9;3243:23;3275:31;3300:5;3275:31;:::i;:::-;3325:5;-1:-1:-1;3382:2:1;3367:18;;3354:32;3424:15;;3417:23;3405:36;;3395:64;;3455:1;3452;3445:12;3395:64;3478:7;3468:17;;;3075:416;;;;;:::o;3496:180::-;3555:6;3608:2;3596:9;3587:7;3583:23;3579:32;3576:52;;;3624:1;3621;3614:12;3576:52;-1:-1:-1;3647:23:1;;3496:180;-1:-1:-1;3496:180:1:o;3681:388::-;3749:6;3757;3810:2;3798:9;3789:7;3785:23;3781:32;3778:52;;;3826:1;3823;3816:12;3778:52;3865:9;3852:23;3884:31;3909:5;3884:31;:::i;:::-;3934:5;-1:-1:-1;3991:2:1;3976:18;;3963:32;4004:33;3963:32;4004:33;:::i;4074:380::-;4153:1;4149:12;;;;4196;;;4217:61;;4271:4;4263:6;4259:17;4249:27;;4217:61;4324:2;4316:6;4313:14;4293:18;4290:38;4287:161;;4370:10;4365:3;4361:20;4358:1;4351:31;4405:4;4402:1;4395:15;4433:4;4430:1;4423:15;4287:161;;4074:380;;;:::o;4459:127::-;4520:10;4515:3;4511:20;4508:1;4501:31;4551:4;4548:1;4541:15;4575:4;4572:1;4565:15;4591:125;4656:9;;;4677:10;;;4674:36;;;4690:18;;:::i;4721:168::-;4794:9;;;4825;;4842:15;;;4836:22;;4822:37;4812:71;;4863:18;;:::i;4894:217::-;4934:1;4960;4950:132;;5004:10;4999:3;4995:20;4992:1;4985:31;5039:4;5036:1;5029:15;5067:4;5064:1;5057:15;4950:132;-1:-1:-1;5096:9:1;;4894:217::o;6997:251::-;7067:6;7120:2;7108:9;7099:7;7095:23;7091:32;7088:52;;;7136:1;7133;7126:12;7088:52;7168:9;7162:16;7187:31;7212:5;7187:31;:::i;8174:306::-;8262:6;8270;8278;8331:2;8319:9;8310:7;8306:23;8302:32;8299:52;;;8347:1;8344;8337:12;8299:52;8376:9;8370:16;8360:26;;8426:2;8415:9;8411:18;8405:25;8395:35;;8470:2;8459:9;8455:18;8449:25;8439:35;;8174:306;;;;;:::o;10863:401::-;11065:2;11047:21;;;11104:2;11084:18;;;11077:30;11143:34;11138:2;11123:18;;11116:62;-1:-1:-1;;;11209:2:1;11194:18;;11187:35;11254:3;11239:19;;10863:401::o;11269:399::-;11471:2;11453:21;;;11510:2;11490:18;;;11483:30;11549:34;11544:2;11529:18;;11522:62;-1:-1:-1;;;11615:2:1;11600:18;;11593:33;11658:3;11643:19;;11269:399::o;13217:128::-;13284:9;;;13305:11;;;13302:37;;;13319:18;;:::i;13843:127::-;13904:10;13899:3;13895:20;13892:1;13885:31;13935:4;13932:1;13925:15;13959:4;13956:1;13949:15;13975:980;14237:4;14285:3;14274:9;14270:19;14316:6;14305:9;14298:25;14342:2;14380:6;14375:2;14364:9;14360:18;14353:34;14423:3;14418:2;14407:9;14403:18;14396:31;14447:6;14482;14476:13;14513:6;14505;14498:22;14551:3;14540:9;14536:19;14529:26;;14590:2;14582:6;14578:15;14564:29;;14611:1;14621:195;14635:6;14632:1;14629:13;14621:195;;;14700:13;;-1:-1:-1;;;;;14696:39:1;14684:52;;14791:15;;;;14756:12;;;;14732:1;14650:9;14621:195;;;-1:-1:-1;;;;;;;14872:32:1;;;;14867:2;14852:18;;14845:60;-1:-1:-1;;;14936:3:1;14921:19;14914:35;14833:3;13975:980;-1:-1:-1;;;13975:980:1:o

Swarm Source

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