ETH Price: $2,402.41 (-4.25%)

Token

Grok Theft Auto (GTA)
 

Overview

Max Total Supply

277,691.523629338312965671 GTA

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.994265913965 GTA

Value
$0.00
0x5e3d03d052e62563c57d0e69aff1cce9fdd35b52
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:
GrokTheftAuto

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

Telegram: https://t.me/GrokTheftAuto

Website: https://groktheftauto.com/

Twitter: https://twitter.com/GrokTheftAuto

*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

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 GrokTheftAuto is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;

    address private markWllAddress;
    address private developmentWllAddress;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Grok Theft Auto";
    string private constant _symbol = "GTA";

    uint256 public initialTotalSupply = 1_000_000 * 1e18;
    uint256 public maxTransactionAmount = (2 * initialTotalSupply) / 100;
    uint256 public maxWallet = (2 * initialTotalSupply) / 100;
    uint256 public swapTokensAtAmount = (6 * initialTotalSupply) / 10000;

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

    uint256 public BuyFee = 0;
    uint256 public SellFee = 0;

    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) {
        markWllAddress = payable(_msgSender());
        developmentWllAddress = payable(0xE10955dB3fAF76DF0b48b86706eCB2ad3205F68A);

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

        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(developmentWllAddress), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, initialTotalSupply);
    }

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

        swapEnabled = true;
        tradingOpen = true;
    }

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

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

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

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

    function _setMarketMakerPair(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(ratio(_burnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(ratio(_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,
            developmentWllAddress,
            block.timestamp
        );
    }

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

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

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

        _setMarketMakerPair(address(uniswapV2Pair), true);

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

        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        ERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);

    }

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

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

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

    function manualSwap(uint256 percent) external {
        require(_msgSender() == developmentWllAddress);

        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);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SetSwapTokensAmountify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensBurns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityNathan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckedBalance","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":[{"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":[],"name":"fireGTA","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":"manualSwap","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":"removeWalletLimitelitTsetenat","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":"setMarketMakerPair","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"}]

608060405269d3c21bcecceda1000000600a556064600a54600262000025919062000447565b62000031919062000467565b600b556064600a54600262000047919062000447565b62000053919062000467565b600c55612710600a5460066200006a919062000447565b62000076919062000467565b600d55600e805461ffff191690555f600f819055601081905560115560016012556064601355348015620000a8575f80fd5b506040518060400160405280600f81526020016e47726f6b205468656674204175746f60881b8152506040518060400160405280600381526020016247544160e81b8152508160039081620000fe919062000524565b5060046200010d828262000524565b5050506200012a620001246200021a60201b60201c565b6200021e565b60088054336001600160a01b0319918216179091556009805490911673e10955db3faf76df0b48b86706ecb2ad3205f68a17905560055462000177906001600160a01b031660016200026f565b60095462000190906001600160a01b031660016200026f565b6200019d3060016200026f565b620001ac61dead60016200026f565b620001b9306001620002d7565b620001d8620001d06005546001600160a01b031690565b6001620002d7565b600954620001f1906001600160a01b03166001620002d7565b6200020061dead6001620002d7565b6200021433600a546200030b60201b60201c565b62000606565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b62000279620003d0565b6001600160a01b0382165f81815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b620002e1620003d0565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6001600160a01b038216620003675760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f8282546200037a9190620005f0565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b031633146200042c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200035e565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141762000461576200046162000433565b92915050565b5f826200048257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004b057607f821691505b602082108103620004cf57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200042e57805f5260205f20601f840160051c81016020851015620004fc5750805b601f840160051c820191505b818110156200051d575f815560010162000508565b5050505050565b81516001600160401b0381111562000540576200054062000487565b62000558816200055184546200049b565b84620004d5565b602080601f8311600181146200058e575f8415620005765750858301515b5f19600386901b1c1916600185901b178555620005e8565b5f85815260208120601f198616915b82811015620005be578886015182559484019460019091019084016200059d565b5085821015620005dc57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b8082018082111562000461576200046162000433565b611f5980620006145f395ff3fe608060405260043610610215575f3560e01c80637571336a1161011e578063be06aa04116100a8578063dd8546521161006d578063dd854652146105d1578063e2f45605146105e6578063f2fde38b146105fb578063f8b45b051461061a578063ffb54a991461062f575f80fd5b8063be06aa0414610555578063c024666814610569578063c8c8ebe414610588578063cf9522fd1461059d578063dd62ed3e146105b2575f80fd5b8063a457c2d7116100ee578063a457c2d7146104d0578063a5f17cfa146104ef578063a9059cbb14610503578063acd8564514610522578063b70143c914610536575f80fd5b80637571336a146104615780638da5cb5b146104805780639335bda31461049d57806395d89b41146104bc575f80fd5b806349bd5a5e1161019f578063583e05681161016f578063583e0568146103dc5780636b73fc9a146103fb5780636ddd17131461041057806370a082311461042e578063715018a61461044d575f80fd5b806349bd5a5e1461033b5780634ab0c04a146103725780634e0088b3146103865780634fbee193146103a5575f80fd5b806323b872dd116101e557806323b872dd146102ac5780632f72ed9e146102cb578063311028af146102ec578063313ce56714610301578063395093511461031c575f80fd5b806306fdde0314610220578063095ea7b31461024a57806318160ddd1461027957806318a1940014610297575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b50610234610648565b6040516102419190611ba3565b60405180910390f35b348015610255575f80fd5b50610269610264366004611c03565b6106d8565b6040519015158152602001610241565b348015610284575f80fd5b506002545b604051908152602001610241565b3480156102a2575f80fd5b5061028960125481565b3480156102b7575f80fd5b506102696102c6366004611c2d565b6106f1565b3480156102d6575f80fd5b506102ea6102e5366004611c6b565b610714565b005b3480156102f7575f80fd5b50610289600a5481565b34801561030c575f80fd5b5060405160128152602001610241565b348015610327575f80fd5b50610269610336366004611c03565b610734565b348015610346575f80fd5b5060075461035a906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b34801561037d575f80fd5b506102ea610755565b348015610391575f80fd5b506102ea6103a0366004611c03565b6107ed565b3480156103b0575f80fd5b506102696103bf366004611c82565b6001600160a01b03165f9081526014602052604090205460ff1690565b3480156103e7575f80fd5b5060065461035a906001600160a01b031681565b348015610406575f80fd5b5061028960115481565b34801561041b575f80fd5b50600e5461026990610100900460ff1681565b348015610439575f80fd5b50610289610448366004611c82565b610816565b348015610458575f80fd5b506102ea610830565b34801561046c575f80fd5b506102ea61047b366004611caa565b610843565b34801561048b575f80fd5b506005546001600160a01b031661035a565b3480156104a8575f80fd5b506102ea6104b7366004611caa565b610875565b3480156104c7575f80fd5b5061023461090f565b3480156104db575f80fd5b506102696104ea366004611c03565b61091e565b3480156104fa575f80fd5b506102ea610998565b34801561050e575f80fd5b5061026961051d366004611c03565b6109b5565b34801561052d575f80fd5b506102ea6109c2565b348015610541575f80fd5b506102ea610550366004611c6b565b610a2e565b348015610560575f80fd5b506102ea610ad1565b348015610574575f80fd5b506102ea610583366004611caa565b610e00565b348015610593575f80fd5b50610289600b5481565b3480156105a8575f80fd5b5061028960105481565b3480156105bd575f80fd5b506102896105cc366004611ce1565b610e66565b3480156105dc575f80fd5b50610289600f5481565b3480156105f1575f80fd5b50610289600d5481565b348015610606575f80fd5b506102ea610615366004611c82565b610e90565b348015610625575f80fd5b50610289600c5481565b34801561063a575f80fd5b50600e546102699060ff1681565b60606003805461065790611d0d565b80601f016020809104026020016040519081016040528092919081815260200182805461068390611d0d565b80156106ce5780601f106106a5576101008083540402835291602001916106ce565b820191905f5260205f20905b8154815290600101906020018083116106b157829003601f168201915b5050505050905090565b5f336106e5818585610f06565b60019150505b92915050565b5f336106fe858285611029565b61070985858561109b565b506001949350505050565b61071c61161c565b61072e81670de0b6b3a7640000611d59565b600d5550565b5f336106e58185856107468383610e66565b6107509190611d70565b610f06565b5f47116107a25760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064015b60405180910390fd5b6009546001600160a01b0316336001600160a01b0316146107c1575f80fd5b60405133904780156108fc02915f818181858888f193505050501580156107ea573d5f803e3d5ffd5b50565b335f8181526014602052604090205460ff16610807575f80fd5b6108118383611676565b505050565b6001600160a01b03165f9081526020819052604090205490565b61083861161c565b6108415f6117a6565b565b61084b61161c565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b61087d61161c565b6007546001600160a01b03908116908316036109015760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610799565b61090b82826117f7565b5050565b60606004805461065790611d0d565b5f338161092b8286610e66565b90508381101561098b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610799565b6107098286868403610f06565b6109a061161c565b5f6109aa60025490565b600b819055600c5550565b5f336106e581858561109b565b6109ca61161c565b600e5460ff1615610a1d5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610799565b600e805461ffff1916610101179055565b6009546001600160a01b0316336001600160a01b031614610a4d575f80fd5b5f610a5760025490565b90505f610a6330610816565b90505f6064610a728585611d59565b610a7c9190611d83565b905080821015610ac25760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b6044820152606401610799565b610acb8161184a565b50505050565b610ad961161c565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610b0d906001610843565b60065f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b819190611da2565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c049190611da2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c729190611da2565b600780546001600160a01b0319166001600160a01b03929092169182179055610c9c906001610843565b600754610cb3906001600160a01b031660016117f7565b600654610ccc9030906001600160a01b03165f19610f06565b6006546001600160a01b031663f305d7194730610ce881610816565b5f80610cfc6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d62573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d879190611dbd565b505060075460065460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ddc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ea9190611de8565b610e0861161c565b6001600160a01b0382165f81815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610e9861161c565b6001600160a01b038116610efd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610799565b6107ea816117a6565b6001600160a01b038316610f685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610799565b6001600160a01b038216610fc95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610799565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6110348484610e66565b90505f198114610acb578181101561108e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610799565b610acb8484848403610f06565b6001600160a01b0383166110c15760405162461bcd60e51b815260040161079990611e03565b6001600160a01b0382166110e75760405162461bcd60e51b815260040161079990611e48565b805f036110f95761081183835f61199e565b6005546001600160a01b0384811691161480159061112557506005546001600160a01b03838116911614155b801561113957506001600160a01b03821615155b801561115057506001600160a01b03821661dead14155b80156111665750600954600160a01b900460ff16155b1561143857600e5460ff166111f7576001600160a01b0383165f9081526014602052604090205460ff16806111b257506001600160a01b0382165f9081526014602052604090205460ff165b6111f75760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610799565b6001600160a01b0383165f9081526016602052604090205460ff16801561123657506001600160a01b0382165f9081526015602052604090205460ff16155b1561130a57600b548111156112ab5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610799565b600c546112b783610816565b6112c19083611d70565b11156113055760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610799565b611438565b6001600160a01b0382165f9081526016602052604090205460ff16801561134957506001600160a01b0383165f9081526015602052604090205460ff16155b156113bf57600b548111156113055760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610799565b6001600160a01b0382165f9081526015602052604090205460ff1661143857600c546113ea83610816565b6113f49083611d70565b11156114385760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610799565b5f61144230610816565b90508015801590819061145c5750600e54610100900460ff165b80156114725750600954600160a01b900460ff16155b801561149657506001600160a01b0385165f9081526016602052604090205460ff16155b80156114ba57506001600160a01b0385165f9081526014602052604090205460ff16155b80156114de57506001600160a01b0384165f9081526014602052604090205460ff16155b1561150d576009805460ff60a01b1916600160a01b1790556114ff83611ac6565b6009805460ff60a01b191690555b6009546001600160a01b0386165f9081526014602052604090205460ff600160a01b90920482161591168061155957506001600160a01b0385165f9081526014602052604090205460ff165b1561156157505f5b5f8115611608576001600160a01b0386165f9081526016602052604090205460ff16156115be576115b7601354611599601254611b47565b6115a39190611d59565b6010546115b1908890611b86565b90611b98565b90506115ea565b6115e76013546115cf601154611b47565b6115d99190611d59565b600f546115b1908890611b86565b90505b80156115fb576115fb87308361199e565b6116058186611e8b565b94505b61161387878761199e565b50505050505050565b6005546001600160a01b031633146108415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610799565b6001600160a01b0382166116d65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610799565b6001600160a01b0382165f90815260208190526040902054818110156117495760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610799565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061187d5761187d611e9e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f89190611da2565b8160018151811061190b5761190b611e9e565b6001600160a01b0392831660209182029290920101526006546119319130911684610f06565b60065460095460405163791ac94760e01b81526001600160a01b039283169263791ac9479261196d9287925f9288929116904290600401611eb2565b5f604051808303815f87803b158015611984575f80fd5b505af1158015611996573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166119c45760405162461bcd60e51b815260040161079990611e03565b6001600160a01b0382166119ea5760405162461bcd60e51b815260040161079990611e48565b6001600160a01b0383165f9081526020819052604090205481811015611a615760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610799565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610acb565b5f611ad030610816565b90505f815f03611adf57505050565b5f82118015611aef5750600d5482105b15611afb575080611b3e565b5f611b1660646115b160105487611b8690919063ffffffff16565b9050611b228185611e8b565b9350600d54841115611b3857600d549150611b3c565b8391505b505b6108118161184a565b5f8082118015611b6057505f611b5e61dead610816565b115b611b6b5760016106eb565b60646001601354611b7c9190611e8b565b6106eb9190611d83565b5f611b918284611d59565b9392505050565b5f611b918284611d83565b5f602080835283518060208501525f5b81811015611bcf57858101830151858201604001528201611bb3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107ea575f80fd5b5f8060408385031215611c14575f80fd5b8235611c1f81611bef565b946020939093013593505050565b5f805f60608486031215611c3f575f80fd5b8335611c4a81611bef565b92506020840135611c5a81611bef565b929592945050506040919091013590565b5f60208284031215611c7b575f80fd5b5035919050565b5f60208284031215611c92575f80fd5b8135611b9181611bef565b80151581146107ea575f80fd5b5f8060408385031215611cbb575f80fd5b8235611cc681611bef565b91506020830135611cd681611c9d565b809150509250929050565b5f8060408385031215611cf2575f80fd5b8235611cfd81611bef565b91506020830135611cd681611bef565b600181811c90821680611d2157607f821691505b602082108103611d3f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106eb576106eb611d45565b808201808211156106eb576106eb611d45565b5f82611d9d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611db2575f80fd5b8151611b9181611bef565b5f805f60608486031215611dcf575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611df8575f80fd5b8151611b9181611c9d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106eb576106eb611d45565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f025784516001600160a01b031683529383019391830191600101611edd565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220600c385c89795e5f4ba29b3dce1887c80e34f7ef96a99ee1e255147cf914e68064736f6c63430008170033

Deployed Bytecode

0x608060405260043610610215575f3560e01c80637571336a1161011e578063be06aa04116100a8578063dd8546521161006d578063dd854652146105d1578063e2f45605146105e6578063f2fde38b146105fb578063f8b45b051461061a578063ffb54a991461062f575f80fd5b8063be06aa0414610555578063c024666814610569578063c8c8ebe414610588578063cf9522fd1461059d578063dd62ed3e146105b2575f80fd5b8063a457c2d7116100ee578063a457c2d7146104d0578063a5f17cfa146104ef578063a9059cbb14610503578063acd8564514610522578063b70143c914610536575f80fd5b80637571336a146104615780638da5cb5b146104805780639335bda31461049d57806395d89b41146104bc575f80fd5b806349bd5a5e1161019f578063583e05681161016f578063583e0568146103dc5780636b73fc9a146103fb5780636ddd17131461041057806370a082311461042e578063715018a61461044d575f80fd5b806349bd5a5e1461033b5780634ab0c04a146103725780634e0088b3146103865780634fbee193146103a5575f80fd5b806323b872dd116101e557806323b872dd146102ac5780632f72ed9e146102cb578063311028af146102ec578063313ce56714610301578063395093511461031c575f80fd5b806306fdde0314610220578063095ea7b31461024a57806318160ddd1461027957806318a1940014610297575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b50610234610648565b6040516102419190611ba3565b60405180910390f35b348015610255575f80fd5b50610269610264366004611c03565b6106d8565b6040519015158152602001610241565b348015610284575f80fd5b506002545b604051908152602001610241565b3480156102a2575f80fd5b5061028960125481565b3480156102b7575f80fd5b506102696102c6366004611c2d565b6106f1565b3480156102d6575f80fd5b506102ea6102e5366004611c6b565b610714565b005b3480156102f7575f80fd5b50610289600a5481565b34801561030c575f80fd5b5060405160128152602001610241565b348015610327575f80fd5b50610269610336366004611c03565b610734565b348015610346575f80fd5b5060075461035a906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b34801561037d575f80fd5b506102ea610755565b348015610391575f80fd5b506102ea6103a0366004611c03565b6107ed565b3480156103b0575f80fd5b506102696103bf366004611c82565b6001600160a01b03165f9081526014602052604090205460ff1690565b3480156103e7575f80fd5b5060065461035a906001600160a01b031681565b348015610406575f80fd5b5061028960115481565b34801561041b575f80fd5b50600e5461026990610100900460ff1681565b348015610439575f80fd5b50610289610448366004611c82565b610816565b348015610458575f80fd5b506102ea610830565b34801561046c575f80fd5b506102ea61047b366004611caa565b610843565b34801561048b575f80fd5b506005546001600160a01b031661035a565b3480156104a8575f80fd5b506102ea6104b7366004611caa565b610875565b3480156104c7575f80fd5b5061023461090f565b3480156104db575f80fd5b506102696104ea366004611c03565b61091e565b3480156104fa575f80fd5b506102ea610998565b34801561050e575f80fd5b5061026961051d366004611c03565b6109b5565b34801561052d575f80fd5b506102ea6109c2565b348015610541575f80fd5b506102ea610550366004611c6b565b610a2e565b348015610560575f80fd5b506102ea610ad1565b348015610574575f80fd5b506102ea610583366004611caa565b610e00565b348015610593575f80fd5b50610289600b5481565b3480156105a8575f80fd5b5061028960105481565b3480156105bd575f80fd5b506102896105cc366004611ce1565b610e66565b3480156105dc575f80fd5b50610289600f5481565b3480156105f1575f80fd5b50610289600d5481565b348015610606575f80fd5b506102ea610615366004611c82565b610e90565b348015610625575f80fd5b50610289600c5481565b34801561063a575f80fd5b50600e546102699060ff1681565b60606003805461065790611d0d565b80601f016020809104026020016040519081016040528092919081815260200182805461068390611d0d565b80156106ce5780601f106106a5576101008083540402835291602001916106ce565b820191905f5260205f20905b8154815290600101906020018083116106b157829003601f168201915b5050505050905090565b5f336106e5818585610f06565b60019150505b92915050565b5f336106fe858285611029565b61070985858561109b565b506001949350505050565b61071c61161c565b61072e81670de0b6b3a7640000611d59565b600d5550565b5f336106e58185856107468383610e66565b6107509190611d70565b610f06565b5f47116107a25760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064015b60405180910390fd5b6009546001600160a01b0316336001600160a01b0316146107c1575f80fd5b60405133904780156108fc02915f818181858888f193505050501580156107ea573d5f803e3d5ffd5b50565b335f8181526014602052604090205460ff16610807575f80fd5b6108118383611676565b505050565b6001600160a01b03165f9081526020819052604090205490565b61083861161c565b6108415f6117a6565b565b61084b61161c565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b61087d61161c565b6007546001600160a01b03908116908316036109015760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610799565b61090b82826117f7565b5050565b60606004805461065790611d0d565b5f338161092b8286610e66565b90508381101561098b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610799565b6107098286868403610f06565b6109a061161c565b5f6109aa60025490565b600b819055600c5550565b5f336106e581858561109b565b6109ca61161c565b600e5460ff1615610a1d5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610799565b600e805461ffff1916610101179055565b6009546001600160a01b0316336001600160a01b031614610a4d575f80fd5b5f610a5760025490565b90505f610a6330610816565b90505f6064610a728585611d59565b610a7c9190611d83565b905080821015610ac25760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b6044820152606401610799565b610acb8161184a565b50505050565b610ad961161c565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610b0d906001610843565b60065f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b819190611da2565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c049190611da2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c729190611da2565b600780546001600160a01b0319166001600160a01b03929092169182179055610c9c906001610843565b600754610cb3906001600160a01b031660016117f7565b600654610ccc9030906001600160a01b03165f19610f06565b6006546001600160a01b031663f305d7194730610ce881610816565b5f80610cfc6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d62573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d879190611dbd565b505060075460065460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ddc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ea9190611de8565b610e0861161c565b6001600160a01b0382165f81815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610e9861161c565b6001600160a01b038116610efd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610799565b6107ea816117a6565b6001600160a01b038316610f685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610799565b6001600160a01b038216610fc95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610799565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6110348484610e66565b90505f198114610acb578181101561108e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610799565b610acb8484848403610f06565b6001600160a01b0383166110c15760405162461bcd60e51b815260040161079990611e03565b6001600160a01b0382166110e75760405162461bcd60e51b815260040161079990611e48565b805f036110f95761081183835f61199e565b6005546001600160a01b0384811691161480159061112557506005546001600160a01b03838116911614155b801561113957506001600160a01b03821615155b801561115057506001600160a01b03821661dead14155b80156111665750600954600160a01b900460ff16155b1561143857600e5460ff166111f7576001600160a01b0383165f9081526014602052604090205460ff16806111b257506001600160a01b0382165f9081526014602052604090205460ff165b6111f75760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610799565b6001600160a01b0383165f9081526016602052604090205460ff16801561123657506001600160a01b0382165f9081526015602052604090205460ff16155b1561130a57600b548111156112ab5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610799565b600c546112b783610816565b6112c19083611d70565b11156113055760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610799565b611438565b6001600160a01b0382165f9081526016602052604090205460ff16801561134957506001600160a01b0383165f9081526015602052604090205460ff16155b156113bf57600b548111156113055760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610799565b6001600160a01b0382165f9081526015602052604090205460ff1661143857600c546113ea83610816565b6113f49083611d70565b11156114385760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610799565b5f61144230610816565b90508015801590819061145c5750600e54610100900460ff165b80156114725750600954600160a01b900460ff16155b801561149657506001600160a01b0385165f9081526016602052604090205460ff16155b80156114ba57506001600160a01b0385165f9081526014602052604090205460ff16155b80156114de57506001600160a01b0384165f9081526014602052604090205460ff16155b1561150d576009805460ff60a01b1916600160a01b1790556114ff83611ac6565b6009805460ff60a01b191690555b6009546001600160a01b0386165f9081526014602052604090205460ff600160a01b90920482161591168061155957506001600160a01b0385165f9081526014602052604090205460ff165b1561156157505f5b5f8115611608576001600160a01b0386165f9081526016602052604090205460ff16156115be576115b7601354611599601254611b47565b6115a39190611d59565b6010546115b1908890611b86565b90611b98565b90506115ea565b6115e76013546115cf601154611b47565b6115d99190611d59565b600f546115b1908890611b86565b90505b80156115fb576115fb87308361199e565b6116058186611e8b565b94505b61161387878761199e565b50505050505050565b6005546001600160a01b031633146108415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610799565b6001600160a01b0382166116d65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610799565b6001600160a01b0382165f90815260208190526040902054818110156117495760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610799565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061187d5761187d611e9e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f89190611da2565b8160018151811061190b5761190b611e9e565b6001600160a01b0392831660209182029290920101526006546119319130911684610f06565b60065460095460405163791ac94760e01b81526001600160a01b039283169263791ac9479261196d9287925f9288929116904290600401611eb2565b5f604051808303815f87803b158015611984575f80fd5b505af1158015611996573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166119c45760405162461bcd60e51b815260040161079990611e03565b6001600160a01b0382166119ea5760405162461bcd60e51b815260040161079990611e48565b6001600160a01b0383165f9081526020819052604090205481811015611a615760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610799565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610acb565b5f611ad030610816565b90505f815f03611adf57505050565b5f82118015611aef5750600d5482105b15611afb575080611b3e565b5f611b1660646115b160105487611b8690919063ffffffff16565b9050611b228185611e8b565b9350600d54841115611b3857600d549150611b3c565b8391505b505b6108118161184a565b5f8082118015611b6057505f611b5e61dead610816565b115b611b6b5760016106eb565b60646001601354611b7c9190611e8b565b6106eb9190611d83565b5f611b918284611d59565b9392505050565b5f611b918284611d83565b5f602080835283518060208501525f5b81811015611bcf57858101830151858201604001528201611bb3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107ea575f80fd5b5f8060408385031215611c14575f80fd5b8235611c1f81611bef565b946020939093013593505050565b5f805f60608486031215611c3f575f80fd5b8335611c4a81611bef565b92506020840135611c5a81611bef565b929592945050506040919091013590565b5f60208284031215611c7b575f80fd5b5035919050565b5f60208284031215611c92575f80fd5b8135611b9181611bef565b80151581146107ea575f80fd5b5f8060408385031215611cbb575f80fd5b8235611cc681611bef565b91506020830135611cd681611c9d565b809150509250929050565b5f8060408385031215611cf2575f80fd5b8235611cfd81611bef565b91506020830135611cd681611bef565b600181811c90821680611d2157607f821691505b602082108103611d3f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106eb576106eb611d45565b808201808211156106eb576106eb611d45565b5f82611d9d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611db2575f80fd5b8151611b9181611bef565b5f805f60608486031215611dcf575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611df8575f80fd5b8151611b9181611c9d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106eb576106eb611d45565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f025784516001600160a01b031683529383019391830191600101611edd565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220600c385c89795e5f4ba29b3dce1887c80e34f7ef96a99ee1e255147cf914e68064736f6c63430008170033

Deployed Bytecode Sourcemap

14384:9084:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9680:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10612:201;;;;;;;;;;-1:-1:-1;10612:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10612:201:0;1023:187:1;10001:108:0;;;;;;;;;;-1:-1:-1;10089:12:0;;10001:108;;;1361:25:1;;;1349:2;1334:18;10001:108:0;1215:177:1;15290:31:0;;;;;;;;;;;;;;;;10821:261;;;;;;;;;;-1:-1:-1;10821:261:0;;;;;:::i;:::-;;:::i;22165:128::-;;;;;;;;;;-1:-1:-1;22165:128:0;;;;;:::i;:::-;;:::i;:::-;;14833:52;;;;;;;;;;;;;;;;9900:93;;;;;;;;;;-1:-1:-1;9900:93:0;;9983:2;2185:36:1;;2173:2;2158:18;9900:93:0;2043:184:1;11090:238:0;;;;;;;;;;-1:-1:-1;11090:238:0;;;;;:::i;:::-;;:::i;14516:28::-;;;;;;;;;;-1:-1:-1;14516:28:0;;;;-1:-1:-1;;;;;14516:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;14516:28:0;2232:203:1;21771:238:0;;;;;;;;;;;;;:::i;22017:140::-;;;;;;;;;;-1:-1:-1;22017:140:0;;;;;:::i;:::-;;:::i;17738:126::-;;;;;;;;;;-1:-1:-1;17738:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;17828:28:0;17804:4;17828:28;;;:19;:28;;;;;;;;;17738:126;14467:42;;;;;;;;;;-1:-1:-1;14467:42:0;;;;-1:-1:-1;;;;;14467:42:0;;;15253:30;;;;;;;;;;;;;;;;15146:31;;;;;;;;;;-1:-1:-1;15146:31:0;;;;;;;;;;;10117:127;;;;;;;;;;-1:-1:-1;10117:127:0;;;;;:::i;:::-;;:::i;1029:103::-;;;;;;;;;;;;;:::i;16768:159::-;;;;;;;;;;-1:-1:-1;16768:159:0;;;;;:::i;:::-;;:::i;794:87::-;;;;;;;;;;-1:-1:-1;867:6:0;;-1:-1:-1;;;;;867:6:0;794:87;;17306:239;;;;;;;;;;-1:-1:-1;17306:239:0;;;;;:::i;:::-;;:::i;9788:104::-;;;;;;;;;;;;;:::i;11336:424::-;;;;;;;;;;-1:-1:-1;11336:424:0;;;;;:::i;:::-;;:::i;20751:211::-;;;;;;;;;;;;;:::i;10252:193::-;;;;;;;;;;-1:-1:-1;10252:193:0;;;;;:::i;:::-;;:::i;16580:180::-;;;;;;;;;;;;;:::i;22301:415::-;;;;;;;;;;-1:-1:-1;22301:415:0;;;;;:::i;:::-;;:::i;20970:793::-;;;;;;;;;;;;;:::i;17101:197::-;;;;;;;;;;-1:-1:-1;17101:197:0;;;;;:::i;:::-;;:::i;14892:68::-;;;;;;;;;;;;;;;;15218:26;;;;;;;;;;;;;;;;10453:151;;;;;;;;;;-1:-1:-1;10453:151:0;;;;;:::i;:::-;;:::i;15186:25::-;;;;;;;;;;;;;;;;15031:68;;;;;;;;;;;;;;;;1140:201;;;;;;;;;;-1:-1:-1;1140:201:0;;;;;:::i;:::-;;:::i;14967:57::-;;;;;;;;;;;;;;;;15108:31;;;;;;;;;;-1:-1:-1;15108:31:0;;;;;;;;9680:100;9734:13;9767:5;9760:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9680:100;:::o;10612:201::-;10695:4;347:10;10751:32;347:10;10767:7;10776:6;10751:8;:32::i;:::-;10801:4;10794:11;;;10612:201;;;;;:::o;10821:261::-;10918:4;347:10;10976:38;10992:4;347:10;11007:6;10976:15;:38::i;:::-;11025:27;11035:4;11041:2;11045:6;11025:9;:27::i;:::-;-1:-1:-1;11070:4:0;;10821:261;-1:-1:-1;;;;10821:261:0:o;22165:128::-;753:13;:11;:13::i;:::-;22265:20:::1;:7:::0;22276:8:::1;22265:20;:::i;:::-;22244:18;:41:::0;-1:-1:-1;22165:128:0:o;11090:238::-;11178:4;347:10;11234:64;347:10;11250:7;11287:10;11259:25;347:10;11250:7;11259:9;:25::i;:::-;:38;;;;:::i;:::-;11234:8;:64::i;21771:238::-;21854:1;21830:21;:25;21822:60;;;;-1:-1:-1;;;21822:60:0;;5185:2:1;21822:60:0;;;5167:21:1;5224:2;5204:18;;;5197:30;-1:-1:-1;;;5243:18:1;;;5236:52;5305:18;;21822:60:0;;;;;;;;;21917:21;;-1:-1:-1;;;;;21917:21:0;347:10;-1:-1:-1;;;;;21901:37:0;;21893:46;;;;;;21950:51;;21958:10;;21979:21;21950:51;;;;;;;;;21979:21;21958:10;21950:51;;;;;;;;;;;;;;;;;;;;;21771:238::o;22017:140::-;22090:10;17804:4;17828:28;;;:19;:28;;;;;;;;15678:35;;;;;;22113:36:::1;22127:12;22142:6;22113:5;:36::i;:::-;22017:140:::0;;;:::o;10117:127::-;-1:-1:-1;;;;;10218:18:0;10191:7;10218:18;;;;;;;;;;;;10117:127::o;1029:103::-;753:13;:11;:13::i;:::-;1094:30:::1;1121:1;1094:18;:30::i;:::-;1029:103::o:0;16768:159::-;753:13;:11;:13::i;:::-;-1:-1:-1;;;;;16873:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;16873:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16768:159::o;17306:239::-;753:13;:11;:13::i;:::-;17419::::1;::::0;-1:-1:-1;;;;;17419:13:0;;::::1;17411:21:::0;;::::1;::::0;17403:91:::1;;;::::0;-1:-1:-1;;;17403:91:0;;5536:2:1;17403:91:0::1;::::0;::::1;5518:21:1::0;5575:2;5555:18;;;5548:30;5614:34;5594:18;;;5587:62;5685:27;5665:18;;;5658:55;5730:19;;17403:91:0::1;5334:421:1::0;17403:91:0::1;17505:32;17525:4;17531:5;17505:19;:32::i;:::-;17306:239:::0;;:::o;9788:104::-;9844:13;9877:7;9870:14;;;;;:::i;11336:424::-;11429:4;347:10;11429:4;11512:25;347:10;11529:7;11512:9;:25::i;:::-;11485:52;;11576:15;11556:16;:35;;11548:85;;;;-1:-1:-1;;;11548:85:0;;5962:2:1;11548:85:0;;;5944:21:1;6001:2;5981:18;;;5974:30;6040:34;6020:18;;;6013:62;-1:-1:-1;;;6091:18:1;;;6084:35;6136:19;;11548:85:0;5760:401:1;11548:85:0;11661:60;11670:5;11677:7;11705:15;11686:16;:34;11661:8;:60::i;20751:211::-;753:13;:11;:13::i;:::-;20822:25:::1;20850:13;10089:12:::0;;;10001:108;20850:13:::1;20874:20;:40:::0;;;20925:9:::1;:29:::0;-1:-1:-1;20751:211:0:o;10252:193::-;10331:4;347:10;10387:28;347:10;10404:2;10408:6;10387:9;:28::i;16580:180::-;753:13;:11;:13::i;:::-;16653:11:::1;::::0;::::1;;16652:12;16644:48;;;::::0;-1:-1:-1;;;16644:48:0;;6368:2:1;16644:48:0::1;::::0;::::1;6350:21:1::0;6407:2;6387:18;;;6380:30;6446:25;6426:18;;;6419:53;6489:18;;16644:48:0::1;6166:347:1::0;16644:48:0::1;16705:11;:18:::0;;-1:-1:-1;;16734:18:0;;;;;16580:180::o;22301:415::-;22382:21;;-1:-1:-1;;;;;22382:21:0;347:10;-1:-1:-1;;;;;22366:37:0;;22358:46;;;;;;22417:25;22445:13;10089:12;;;10001:108;22445:13;22417:41;;22469:23;22495:24;22513:4;22495:9;:24::i;:::-;22469:50;-1:-1:-1;22530:23:0;22586:3;22556:27;22576:7;22556:17;:27;:::i;:::-;:33;;;;:::i;:::-;22530:59;;22627:15;22608;:34;;22600:64;;;;-1:-1:-1;;;22600:64:0;;6942:2:1;22600:64:0;;;6924:21:1;6981:2;6961:18;;;6954:30;-1:-1:-1;;;7000:18:1;;;6993:47;7057:18;;22600:64:0;6740:341:1;22600:64:0;22675:33;22692:15;22675:16;:33::i;:::-;22347:369;;;22301:415;:::o;20970:793::-;753:13;:11;:13::i;:::-;21043:16:::1;:81:::0;;-1:-1:-1;;;;;;21043:81:0::1;21081:42;21043:81:::0;;::::1;::::0;;;21135:58:::1;::::0;21043:81;21135:25:::1;:58::i;:::-;21240:16;;;;;;;;;-1:-1:-1::0;;;;;21240:16:0::1;-1:-1:-1::0;;;;;21240:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21222:56:0::1;;21287:4;21294:16;;;;;;;;;-1:-1:-1::0;;;;;21294:16:0::1;-1:-1:-1::0;;;;;21294:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21222:96;::::0;-1:-1:-1;;;;;;21222:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7572:15:1;;;21222:96:0::1;::::0;::::1;7554:34:1::0;7624:15;;7604:18;;;7597:43;7489:18;;21222:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21206:13;:112:::0;;-1:-1:-1;;;;;;21206:112:0::1;-1:-1:-1::0;;;;;21206:112:0;;;::::1;::::0;;::::1;::::0;;21329:55:::1;::::0;-1:-1:-1;21329:25:0::1;:55::i;:::-;21425:13;::::0;21397:49:::1;::::0;-1:-1:-1;;;;;21425:13:0::1;::::0;21397:19:::1;:49::i;:::-;21491:16;::::0;21459:69:::1;::::0;21476:4:::1;::::0;-1:-1:-1;;;;;21491:16:0::1;-1:-1:-1::0;;21459:8:0::1;:69::i;:::-;21541:16;::::0;-1:-1:-1;;;;;21541:16:0::1;:32;21581:21;21612:4;21618:24;21612:4:::0;21618:9:::1;:24::i;:::-;21643:1;21645::::0;21647:7:::1;867:6:::0;;-1:-1:-1;;;;;867:6:0;;794:87;21647:7:::1;21541:130;::::0;::::1;::::0;;;-1:-1:-1;;;;;;21541:130:0;;;-1:-1:-1;;;;;8010:15:1;;;21541:130:0::1;::::0;::::1;7992:34:1::0;8042:18;;;8035:34;;;;8085:18;;;8078:34;;;;8128:18;;;8121:34;8192:15;;;8171:19;;;8164:44;21655:15:0::1;8224:19:1::0;;;8217:35;7926:19;;21541:130:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;21688:13:0::1;::::0;21719:16:::1;::::0;21682:71:::1;::::0;-1:-1:-1;;;21682:71:0;;-1:-1:-1;;;;;21719:16:0;;::::1;21682:71;::::0;::::1;8748:51:1::0;-1:-1:-1;;8815:18:1;;;8808:34;21688:13:0;::::1;::::0;-1:-1:-1;21682:28:0::1;::::0;8721:18:1;;21682:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17101:197::-:0;753:13;:11;:13::i;:::-;-1:-1:-1;;;;;17201:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17201:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17256:34;;1163:41:1;;;17256:34:0::1;::::0;1136:18:1;17256:34:0::1;;;;;;;17101:197:::0;;:::o;10453:151::-;-1:-1:-1;;;;;10569:18:0;;;10542:7;10569:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10453:151::o;1140:201::-;753:13;:11;:13::i;:::-;-1:-1:-1;;;;;1229:22:0;::::1;1221:73;;;::::0;-1:-1:-1;;;1221:73:0;;9305:2:1;1221:73:0::1;::::0;::::1;9287:21:1::0;9344:2;9324:18;;;9317:30;9383:34;9363:18;;;9356:62;-1:-1:-1;;;9434:18:1;;;9427:36;9480:19;;1221:73:0::1;9103:402:1::0;1221:73:0::1;1305:28;1324:8;1305:18;:28::i;13419:346::-:0;-1:-1:-1;;;;;13521:19:0;;13513:68;;;;-1:-1:-1;;;13513:68:0;;9712:2:1;13513:68:0;;;9694:21:1;9751:2;9731:18;;;9724:30;9790:34;9770:18;;;9763:62;-1:-1:-1;;;9841:18:1;;;9834:34;9885:19;;13513:68:0;9510:400:1;13513:68:0;-1:-1:-1;;;;;13600:21:0;;13592:68;;;;-1:-1:-1;;;13592:68:0;;10117:2:1;13592:68:0;;;10099:21:1;10156:2;10136:18;;;10129:30;10195:34;10175:18;;;10168:62;-1:-1:-1;;;10246:18:1;;;10239:32;10288:19;;13592:68:0;9915:398:1;13592:68:0;-1:-1:-1;;;;;13673:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13725:32;;1361:25:1;;;13725:32:0;;1334:18:1;13725:32:0;;;;;;;13419:346;;;:::o;13773:407::-;13874:24;13901:25;13911:5;13918:7;13901:9;:25::i;:::-;13874:52;;-1:-1:-1;;13941:16:0;:37;13937:236;;14023:6;14003:16;:26;;13995:68;;;;-1:-1:-1;;;13995:68:0;;10520:2:1;13995:68:0;;;10502:21:1;10559:2;10539:18;;;10532:30;10598:31;10578:18;;;10571:59;10647:18;;13995:68:0;10318:353:1;13995:68:0;14099:51;14108:5;14115:7;14143:6;14124:16;:25;14099:8;:51::i;17872:2381::-;-1:-1:-1;;;;;17972:18:0;;17964:68;;;;-1:-1:-1;;;17964:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18051:16:0;;18043:64;;;;-1:-1:-1;;;18043:64:0;;;;;;;:::i;:::-;18124:6;18134:1;18124:11;18120:93;;18152:28;18168:4;18174:2;18178:1;18152:15;:28::i;18120:93::-;867:6;;-1:-1:-1;;;;;18229:15:0;;;867:6;;18229:15;;;;:32;;-1:-1:-1;867:6:0;;-1:-1:-1;;;;;18248:13:0;;;867:6;;18248:13;;18229:32;:52;;;;-1:-1:-1;;;;;;18265:16:0;;;;18229:52;:77;;;;-1:-1:-1;;;;;;18285:21:0;;18299:6;18285:21;;18229:77;:90;;;;-1:-1:-1;18311:8:0;;-1:-1:-1;;;18311:8:0;;;;18310:9;18229:90;18225:983;;;18343:11;;;;18338:140;;-1:-1:-1;;;;;18383:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18412:23:0;;;;;;:19;:23;;;;;;;;18383:52;18375:87;;;;-1:-1:-1;;;18375:87:0;;11688:2:1;18375:87:0;;;11670:21:1;11727:2;11707:18;;;11700:30;-1:-1:-1;;;11746:18:1;;;11739:52;11808:18;;18375:87:0;11486:346:1;18375:87:0;-1:-1:-1;;;;;18498:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;18534:35:0;;;;;;:31;:35;;;;;;;;18533:36;18498:71;18494:703;;;18622:20;;18612:6;:30;;18604:96;;;;-1:-1:-1;;;18604:96:0;;12039:2:1;18604:96:0;;;12021:21:1;12078:2;12058:18;;;12051:30;12117:34;12097:18;;;12090:62;-1:-1:-1;;;12168:18:1;;;12161:51;12229:19;;18604:96:0;11837:417:1;18604:96:0;18753:9;;18736:13;18746:2;18736:9;:13::i;:::-;18727:22;;:6;:22;:::i;:::-;:35;;18719:67;;;;-1:-1:-1;;;18719:67:0;;12461:2:1;18719:67:0;;;12443:21:1;12500:2;12480:18;;;12473:30;-1:-1:-1;;;12519:18:1;;;12512:49;12578:18;;18719:67:0;12259:343:1;18719:67:0;18494:703;;;-1:-1:-1;;;;;18827:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;18861:37:0;;;;;;:31;:37;;;;;;;;18860:38;18827:71;18823:374;;;18937:20;;18927:6;:30;;18919:97;;;;-1:-1:-1;;;18919:97:0;;12809:2:1;18919:97:0;;;12791:21:1;12848:2;12828:18;;;12821:30;12887:34;12867:18;;;12860:62;-1:-1:-1;;;12938:18:1;;;12931:52;13000:19;;18919:97:0;12607:418:1;18823:374:0;-1:-1:-1;;;;;19058:35:0;;;;;;:31;:35;;;;;;;;19053:144;;19148:9;;19131:13;19141:2;19131:9;:13::i;:::-;19122:22;;:6;:22;:::i;:::-;:35;;19114:67;;;;-1:-1:-1;;;19114:67:0;;12461:2:1;19114:67:0;;;12443:21:1;12500:2;12480:18;;;12473:30;-1:-1:-1;;;12519:18:1;;;12512:49;12578:18;;19114:67:0;12259:343:1;19114:67:0;19220:28;19251:24;19269:4;19251:9;:24::i;:::-;19220:55;-1:-1:-1;19303:24:0;;;;;;;19344:22;;-1:-1:-1;19355:11:0;;;;;;;19344:22;:35;;;;-1:-1:-1;19371:8:0;;-1:-1:-1;;;19371:8:0;;;;19370:9;19344:35;:71;;;;-1:-1:-1;;;;;;19384:31:0;;;;;;:25;:31;;;;;;;;19383:32;19344:71;:101;;;;-1:-1:-1;;;;;;19420:25:0;;;;;;:19;:25;;;;;;;;19419:26;19344:101;:129;;;;-1:-1:-1;;;;;;19450:23:0;;;;;;:19;:23;;;;;;;;19449:24;19344:129;19340:239;;;19490:8;:15;;-1:-1:-1;;;;19490:15:0;-1:-1:-1;;;19490:15:0;;;19520:16;19529:6;19520:8;:16::i;:::-;19551:8;:16;;-1:-1:-1;;;;19551:16:0;;;19340:239;19607:8;;-1:-1:-1;;;;;19632:25:0;;19591:12;19632:25;;;19607:8;19632:25;;;;;;19607:8;-1:-1:-1;;;19607:8:0;;;;;19606:9;;19632:25;;:52;;-1:-1:-1;;;;;;19661:23:0;;;;;;:19;:23;;;;;;;;19632:52;19628:100;;;-1:-1:-1;19711:5:0;19628:100;19740:12;19773:7;19769:433;;;-1:-1:-1;;;;;19801:29:0;;;;;;:25;:29;;;;;;;;19797:258;;;19858:61;19904:14;;19882:19;19888:12;;19882:5;:19::i;:::-;:36;;;;:::i;:::-;19869:7;;19858:19;;:6;;:10;:19::i;:::-;:23;;:61::i;:::-;19851:68;;19797:258;;;19980:59;20024:14;;20003:18;20009:11;;20003:5;:18::i;:::-;:35;;;;:::i;:::-;19991:6;;19980:18;;:6;;:10;:18::i;:59::-;19973:66;;19797:258;20075:8;;20071:91;;20104:42;20120:4;20134;20141;20104:15;:42::i;:::-;20176:14;20186:4;20176:14;;:::i;:::-;;;19769:433;20212:33;20228:4;20234:2;20238:6;20212:15;:33::i;:::-;17951:2302;;;;17872:2381;;;:::o;889:132::-;867:6;;-1:-1:-1;;;;;867:6:0;347:10;953:23;945:68;;;;-1:-1:-1;;;945:68:0;;13365:2:1;945:68:0;;;13347:21:1;;;13384:18;;;13377:30;13443:34;13423:18;;;13416:62;13495:18;;945:68:0;13163:356:1;12832:579:0;-1:-1:-1;;;;;12916:21:0;;12908:67;;;;-1:-1:-1;;;12908:67:0;;13726:2:1;12908:67:0;;;13708:21:1;13765:2;13745:18;;;13738:30;13804:34;13784:18;;;13777:62;-1:-1:-1;;;13855:18:1;;;13848:31;13896:19;;12908:67:0;13524:397:1;12908:67:0;-1:-1:-1;;;;;13075:18:0;;13050:22;13075:18;;;;;;;;;;;13112:24;;;;13104:71;;;;-1:-1:-1;;;13104:71:0;;14128:2:1;13104:71:0;;;14110:21:1;14167:2;14147:18;;;14140:30;14206:34;14186:18;;;14179:62;-1:-1:-1;;;14257:18:1;;;14250:32;14299:19;;13104:71:0;13926:398:1;13104:71:0;-1:-1:-1;;;;;13203:18:0;;:9;:18;;;;;;;;;;;13224:23;;;13203:44;;13258:12;:22;;;;;;;13305:37;1361:25:1;;;13203:9:0;;:18;13305:37;;1334:18:1;13305:37:0;;;;;;;22017:140;;;:::o;1349:191::-;1442:6;;;-1:-1:-1;;;;;1459:17:0;;;-1:-1:-1;;;;;;1459:17:0;;;;;;;1492:40;;1442:6;;;1459:17;1442:6;;1492:40;;1423:16;;1492:40;1412:128;1349:191;:::o;17553:177::-;-1:-1:-1;;;;;17627:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;17627:39:0;;;;;;;;;;17682:40;;17627:39;;:31;17682:40;;;17553:177;;:::o;20261:482::-;20351:16;;;20365:1;20351:16;;;;;;;;20327:21;;20351:16;;;;;;;;;;-1:-1:-1;20351:16:0;20327:40;;20396:4;20378;20383:1;20378:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20378:23:0;;;:7;;;;;;;;;;:23;;;;20422:16;;:23;;;-1:-1:-1;;;20422:23:0;;;;:16;;;;;:21;;:23;;;;;20378:7;;20422:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20412:4;20417:1;20412:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20412:33:0;;;:7;;;;;;;;;:33;20488:16;;20456:63;;20473:4;;20488:16;20507:11;20456:8;:63::i;:::-;20530:16;;20673:21;;20530:205;;-1:-1:-1;;;20530:205:0;;-1:-1:-1;;;;;20530:16:0;;;;:67;;:205;;20612:11;;20530:16;;20654:4;;20673:21;;;20709:15;;20530:205;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20316:427;20261:482;:::o;11768:625::-;-1:-1:-1;;;;;11865:18:0;;11857:68;;;;-1:-1:-1;;;11857:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11944:16:0;;11936:64;;;;-1:-1:-1;;;11936:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12086:15:0;;12064:19;12086:15;;;;;;;;;;;12120:21;;;;12112:72;;;;-1:-1:-1;;;12112:72:0;;15780:2:1;12112:72:0;;;15762:21:1;15819:2;15799:18;;;15792:30;15858:34;15838:18;;;15831:62;-1:-1:-1;;;15909:18:1;;;15902:36;15955:19;;12112:72:0;15578:402:1;12112:72:0;-1:-1:-1;;;;;12212:15:0;;;:9;:15;;;;;;;;;;;12230:20;;;12212:38;;12261:13;;;;;;;;;;:23;;;;;;12309:26;;1361:25:1;;;12261:13:0;;12309:26;;1334:18:1;12309:26:0;;;;;;;12348:37;22017:140;22724:704;22779:23;22805:24;22823:4;22805:9;:24::i;:::-;22779:50;;22840:20;22877:15;22896:1;22877:20;22873:505;;22914:7;;22724:704;:::o;22873:505::-;22969:1;22951:15;:19;:59;;;;;22992:18;;22974:15;:36;22951:59;22947:431;;;-1:-1:-1;23042:15:0;22947:431;;;23099:21;23123:28;23147:3;23123:19;23134:7;;23123:6;:10;;:19;;;;:::i;:28::-;23099:52;-1:-1:-1;23166:23:0;23099:52;23166:23;;:::i;:::-;;;23217:18;;23208:6;:27;23204:163;;;23271:18;;23256:33;;23204:163;;;23345:6;23330:21;;23204:163;23084:294;22947:431;23390:30;23407:12;23390:16;:30::i;16935:158::-;16986:7;17019:1;17013:3;:7;:37;;;;;17049:1;17024:22;14683:6;17024:9;:22::i;:::-;:26;17013:37;:72;;17084:1;17013:72;;;17077:3;17072:1;17055:14;;:18;;;;:::i;:::-;17054:26;;;;:::i;8185:98::-;8243:7;8270:5;8274:1;8270;:5;:::i;:::-;8263:12;8185:98;-1:-1:-1;;;8185:98:0:o;8291:::-;8349:7;8376:5;8380:1;8376;: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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2774:247::-;2833:6;2886:2;2874:9;2865:7;2861:23;2857:32;2854:52;;;2902:1;2899;2892:12;2854:52;2941:9;2928:23;2960:31;2985:5;2960:31;:::i;3260:118::-;3346:5;3339:13;3332:21;3325:5;3322:32;3312:60;;3368:1;3365;3358:12;3383:382;3448:6;3456;3509:2;3497:9;3488:7;3484:23;3480:32;3477:52;;;3525:1;3522;3515:12;3477:52;3564:9;3551:23;3583:31;3608:5;3583:31;:::i;:::-;3633:5;-1:-1:-1;3690:2:1;3675:18;;3662:32;3703:30;3662:32;3703:30;:::i;:::-;3752:7;3742:17;;;3383:382;;;;;:::o;3770:388::-;3838:6;3846;3899:2;3887:9;3878:7;3874:23;3870:32;3867:52;;;3915:1;3912;3905:12;3867:52;3954:9;3941:23;3973:31;3998:5;3973:31;:::i;:::-;4023:5;-1:-1:-1;4080:2:1;4065:18;;4052:32;4093:33;4052:32;4093:33;:::i;4163:380::-;4242:1;4238:12;;;;4285;;;4306:61;;4360:4;4352:6;4348:17;4338:27;;4306:61;4413:2;4405:6;4402:14;4382:18;4379:38;4376:161;;4459:10;4454:3;4450:20;4447:1;4440:31;4494:4;4491:1;4484:15;4522:4;4519:1;4512:15;4376:161;;4163:380;;;:::o;4548:127::-;4609:10;4604:3;4600:20;4597:1;4590:31;4640:4;4637:1;4630:15;4664:4;4661:1;4654:15;4680:168;4753:9;;;4784;;4801:15;;;4795:22;;4781:37;4771:71;;4822:18;;:::i;4853:125::-;4918:9;;;4939:10;;;4936:36;;;4952:18;;:::i;6518:217::-;6558:1;6584;6574:132;;6628:10;6623:3;6619:20;6616:1;6609:31;6663:4;6660:1;6653:15;6691:4;6688:1;6681:15;6574:132;-1:-1:-1;6720:9:1;;6518:217::o;7086:251::-;7156:6;7209:2;7197:9;7188:7;7184:23;7180:32;7177:52;;;7225:1;7222;7215:12;7177:52;7257:9;7251:16;7276:31;7301:5;7276:31;:::i;8263:306::-;8351:6;8359;8367;8420:2;8408:9;8399:7;8395:23;8391:32;8388:52;;;8436:1;8433;8426:12;8388:52;8465:9;8459:16;8449:26;;8515:2;8504:9;8500:18;8494:25;8484:35;;8559:2;8548:9;8544:18;8538:25;8528:35;;8263:306;;;;;:::o;8853:245::-;8920:6;8973:2;8961:9;8952:7;8948:23;8944:32;8941:52;;;8989:1;8986;8979:12;8941:52;9021:9;9015:16;9040:28;9062:5;9040:28;:::i;10676:401::-;10878:2;10860:21;;;10917:2;10897:18;;;10890:30;10956:34;10951:2;10936:18;;10929:62;-1:-1:-1;;;11022:2:1;11007:18;;11000:35;11067:3;11052:19;;10676:401::o;11082:399::-;11284:2;11266:21;;;11323:2;11303:18;;;11296:30;11362:34;11357:2;11342:18;;11335:62;-1:-1:-1;;;11428:2:1;11413:18;;11406:33;11471:3;11456:19;;11082:399::o;13030:128::-;13097:9;;;13118:11;;;13115:37;;;13132:18;;:::i;14461:127::-;14522:10;14517:3;14513:20;14510:1;14503:31;14553:4;14550:1;14543:15;14577:4;14574:1;14567:15;14593:980;14855:4;14903:3;14892:9;14888:19;14934:6;14923:9;14916:25;14960:2;14998:6;14993:2;14982:9;14978:18;14971:34;15041:3;15036:2;15025:9;15021:18;15014:31;15065:6;15100;15094:13;15131:6;15123;15116:22;15169:3;15158:9;15154:19;15147:26;;15208:2;15200:6;15196:15;15182:29;;15229:1;15239:195;15253:6;15250:1;15247:13;15239:195;;;15318:13;;-1:-1:-1;;;;;15314:39:1;15302:52;;15409:15;;;;15374:12;;;;15350:1;15268:9;15239:195;;;-1:-1:-1;;;;;;;15490:32:1;;;;15485:2;15470:18;;15463:60;-1:-1:-1;;;15554:3:1;15539:19;15532:35;15451:3;14593:980;-1:-1:-1;;;14593:980:1:o

Swarm Source

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