ETH Price: $2,454.84 (+1.52%)

Token

AutistsAnonymous (AA)
 

Overview

Max Total Supply

100,000,000 AA

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
*💩️👨🏻‍⚕️.eth
Balance
1,919,999.040000000011190455 AA

Value
$0.00
0x3f46cb3461625fde3e15f55d8b740e0b6f6b77ee
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:
AA

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

// SPDX-License-Identifier: MIT



//AutistsAnonymous
//https://twitter.com/AutistsAnonsETH
//t.me/AutistsAnonymousETH


pragma solidity ^0.8.9;


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

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

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

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

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

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

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

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

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

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

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

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

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 recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
    unchecked {
        _approve(sender, _msgSender(), currentAllowance - amount);
    }
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    unchecked {
        _balances[sender] = senderBalance - amount;
    }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
    }

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

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


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


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

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


abstract contract Pausable is Context {

    event Paused(address account);

    event Unpaused(address account);

    bool private _paused;


    constructor() {
        _paused = false;
    }


    function paused() public view virtual returns (bool) {
        return _paused;
    }


    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }


    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);

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

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

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

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

    function transferFrom(address from, address to, uint 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 (uint);

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

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);

    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 (uint);

    function price1CumulativeLast() external view returns (uint);

    function kLast() external view returns (uint);

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

    function burn(address to) external returns (uint amount0, uint amount1);

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);

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

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

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

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

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

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

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);

    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);

    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);

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

    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

contract AA is ERC20, Ownable, Pausable {

    uint256 private initialSupply;
    uint256 private initialTeamSupply;
    uint256 private denominator = 100; // for percents
    uint256 private swapThreshold = 0.000005 ether;

    uint256 private devTaxBuy;
    uint256 private liquidityTaxBuy;

    uint256 private devTaxSell;
    uint256 private liquidityTaxSell;
    uint256 public maxWallet;

    mapping(address => bool) public blacklist; // make private
    mapping(address => bool) public excludeList; // make private

    mapping(string => uint256) public buyTaxes; // make private
    mapping(string => uint256) public sellTaxes; // make private
    mapping(string => address) public taxWallets; // make private

    uint256 public devTokens;
    uint256 public liquidityTokens;

    // delete these:
    uint256 public currentLiqEthValue;
    uint256 public currentToSell;
    uint256 public currentEthGained;
    uint256 public currentRemainingTokens;

    uint256 public currentBalanceOfTo;
    uint256 public currentAmount;
    uint256 public currentBalancePlusAmount;
    uint256 public currentMaxWallet;


    bool public taxStatus = true;
    bool public autoLiqStatus = true;

    IUniswapV2Router02 private uniswapV2Router02;
    IUniswapV2Factory private uniswapV2Factory;
    IUniswapV2Pair private uniswapV2Pair;

    constructor() ERC20("AutistsAnonymous", "AA") payable
    {
        initialSupply = 100000000 * 10 ** decimals();
        // 420.69 million
        initialTeamSupply = initialSupply * 42 / 1000;
        // 4.2% of total supply (0)
        maxWallet = initialSupply * 50 / 1000;
        // 2.5% of total supply (0)
        _setOwner(msg.sender);
        uniswapV2Router02 = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Factory = IUniswapV2Factory(uniswapV2Router02.factory());
        uniswapV2Pair = IUniswapV2Pair(uniswapV2Factory.createPair(address(this), uniswapV2Router02.WETH()));
        taxWallets["liquidity"] = address(0);
        setBuyTax(0, 4);
        setSellTax(0, 30);
        setTaxWallets(0x417FBcbb947C0E860FFb66F3a4aF0E457FD27EbD);
        // owner wallet excluded from tax and cap
        exclude(msg.sender);
        exclude(address(this));
        // dex tax wallet excluded from tax and cap
        exclude(0x417FBcbb947C0E860FFb66F3a4aF0E457FD27EbD);

        _mint(0x417FBcbb947C0E860FFb66F3a4aF0E457FD27EbD, initialTeamSupply);
        _mint(msg.sender, initialSupply - initialTeamSupply);
    }

    function handleTax(address from, address to, uint256 amount) private returns (uint256) {

        if (!isExcluded(from) && !isExcluded(to)) {
            uint256 tax;
            if (from == address(uniswapV2Pair)) {
                tax += amount * buyTaxes["dev"] / denominator;
                tax += amount * buyTaxes["liquidity"] / denominator;

                devTokens += amount * buyTaxes["dev"] / denominator;
                liquidityTokens += amount * buyTaxes["liquidity"] / denominator;

                if (tax > 0) {
                    _transfer(from, address(this), tax);
                    // moved tax to this contract
                }
            } else if (to == address(uniswapV2Pair)) {

                tax += amount * sellTaxes["dev"] / denominator;
                tax += amount * sellTaxes["liquidity"] / denominator;

                devTokens += amount * sellTaxes["dev"] / denominator;
                liquidityTokens += amount * sellTaxes["liquidity"] / denominator;

                if (tax > 0) {
                    _transfer(from, address(this), tax);
                }

                uint256 taxSum = devTokens + liquidityTokens;
                if (taxSum == 0) return amount;

                if(autoLiqStatus) _do_swap_and_liq_provide();

            }

            amount -= tax;

            currentBalanceOfTo = balanceOf(to);
            currentAmount = amount;
            currentBalancePlusAmount = currentBalanceOfTo + currentAmount;
            currentMaxWallet = maxWallet;

            if (to != address(uniswapV2Pair)) {
                require(balanceOf(to) + amount <= maxWallet, "maxWallet limit exceeded");
            }

        }

        return amount;
    }

    function _do_swap_and_liq_provide() public {
        address[] memory sellPath = new address[](2);
        sellPath[0] = address(this);
        sellPath[1] = uniswapV2Router02.WETH();

        uint256 ethValue = uniswapV2Router02.getAmountsOut(devTokens + liquidityTokens, sellPath)[1];
        // delete
        //currentLiqForEthValue = devTokens + liquidityTokens;
        currentLiqEthValue = ethValue;

        if (ethValue >= swapThreshold) {
            uint256 startBalance = address(this).balance;

            uint256 toSell = devTokens + liquidityTokens / 2;

            // delete
            currentToSell = toSell;

            _approve(address(this), address(uniswapV2Router02), toSell);

            uniswapV2Router02.swapExactTokensForETH(
                toSell,
                0,
                sellPath,
                address(this),
                block.timestamp
            );

            uint256 ethGained = address(this).balance - startBalance;

            // delete
            currentEthGained = ethGained;

            uint256 liquidityToken = liquidityTokens / 2;
            uint256 liquidityETH = (ethGained * ((liquidityTokens / 2 * 10 ** 18) / (devTokens + liquidityTokens))) / 10 ** 18;

            uint256 devETH = (ethGained * ((devTokens * 10 ** 18) / (devTokens + liquidityTokens))) / 10 ** 18;

            _approve(address(this), address(uniswapV2Router02), liquidityToken);

            uniswapV2Router02.addLiquidityETH{value : liquidityETH}(
                address(this),
                liquidityToken,
                0,
                0,
                taxWallets["liquidity"],
                block.timestamp
            );

            uint256 remainingTokens = (devTokens + liquidityTokens) - (toSell + liquidityToken);

            // delete
            currentRemainingTokens = remainingTokens;

            if (remainingTokens > 0) {
                _transfer(address(this), taxWallets["dev"], remainingTokens);
            }


            (bool success,) = taxWallets["dev"].call{value : devETH}("");
            require(success, "transfer to  dev wallet failed");

            if (ethGained - (devETH + liquidityETH) > 0) {
                (bool success1,) = taxWallets["dev"].call{value : ethGained - (devETH + liquidityETH)}("");
                require(success1, "transfer to  dev wallet failed");
            }

            devTokens = 0;
            liquidityTokens = 0;

        }

    }


    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override virtual {
        require(!paused(), "ERC20: token transfer while paused");
        require(!isBlacklisted(msg.sender), "ERC20: sender blacklisted");
        require(!isBlacklisted(recipient), "ERC20: recipient blacklisted");
        require(!isBlacklisted(tx.origin), "ERC20: sender blacklisted");

        if (taxStatus) {
            amount = handleTax(sender, recipient, amount);
        }

        super._transfer(sender, recipient, amount);
    }

    /**
     * @dev Triggers the tax handling functionality
     */
    function triggerTax() public onlyOwner {
        handleTax(address(0), address(uniswapV2Pair), 0);
    }

    /**
     * @dev Pauses transfers on the token.
     */
    function pause() public onlyOwner {
        require(!paused(), "ERC20: Contract is already paused");
        _pause();
    }

    /**
     * @dev Unpauses transfers on the token.
     */
    function unpause() public onlyOwner {
        require(paused(), "ERC20: Contract is not paused");
        _unpause();
    }

    /**
    * @dev set max wallet limit per address.
     */

    function setMaxWallet(uint256 amount) external onlyOwner {
        require(amount > 10000, "NO rug pull");
        maxWallet = amount * 10 ** 18;
    }

    /**
     * @dev Burns tokens from caller address.
     */
    function burn(uint256 amount) public onlyOwner {
        _burn(msg.sender, amount);
    }

    /**
     * @dev Blacklists the specified account (Disables transfers to and from the account).
     */
    function enableBlacklist(address account) public onlyOwner {
        require(!blacklist[account], "ERC20: Account is already blacklisted");
        blacklist[account] = true;
    }

    /**
     * @dev Remove the specified account from the blacklist.
     */
    function disableBlacklist(address account) public onlyOwner {
        require(blacklist[account], "ERC20: Account is not blacklisted");
        blacklist[account] = false;
    }

    /**
     * @dev Excludes the specified account from tax.
     */
    function exclude(address account) public onlyOwner {
        require(!isExcluded(account), "ERC20: Account is already excluded");
        excludeList[account] = true;
    }

    /**
     * @dev Re-enables tax on the specified account.
     */
    function removeExclude(address account) public onlyOwner {
        require(isExcluded(account), "ERC20: Account is not excluded");
        excludeList[account] = false;
    }

    /**
     * @dev Sets tax for buys.
     */
    function setBuyTax(uint256 dev, uint256 liquidity) public onlyOwner {
        buyTaxes["dev"] = dev;
        buyTaxes["liquidity"] = liquidity;

    }

    /**
     * @dev Sets tax for sells.
     */
    function setSellTax(uint256 dev, uint256 liquidity) public onlyOwner {

        sellTaxes["dev"] = dev;
        sellTaxes["liquidity"] = liquidity;

    }

    /**
     * @dev Sets wallets for taxes.
     */
    function setTaxWallets(address dev) public onlyOwner {
        taxWallets["dev"] = dev;

    }

    function claimStuckTokens(address _token) external onlyOwner {

        if (_token == address(0x0)) {
            payable(owner()).transfer(address(this).balance);
            return;
        }
        IERC20 erc20token = IERC20(_token);
        uint256 balance = erc20token.balanceOf(address(this));
        erc20token.transfer(owner(), balance);
    }

    /**
     * @dev Enables tax globally.
     */
    function enableTax() public onlyOwner {
        require(!taxStatus, "ERC20: Tax is already enabled");
        taxStatus = true;
    }

    /**
     * @dev Disables tax globally.
     */
    function disableTax() public onlyOwner {
        require(taxStatus, "ERC20: Tax is already disabled");
        taxStatus = false;
    }

    /**
     * @dev Returns true if the account is blacklisted, and false otherwise.
     */
    function isBlacklisted(address account) public view returns (bool) {
        return blacklist[account];
    }

    /**
     * @dev Returns true if the account is excluded, and false otherwise.
     */
    function isExcluded(address account) public view returns (bool) {
        return excludeList[account];
    }

    /**
     * @dev Enables auto liquidity add.
     */
    function enableAutoLiq() public onlyOwner {
        autoLiqStatus = true;
    }

    /**
     * @dev Disables auto liquidity add.
     */
    function disableAutoLiq() public onlyOwner {
        autoLiqStatus = false;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"_do_swap_and_liq_provide","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":[],"name":"autoLiqStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentBalanceOfTo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentBalancePlusAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEthGained","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentLiqEthValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentRemainingTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableAutoLiq","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"disableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableAutoLiq","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"enableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludeList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTokens","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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dev","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"taxWallets","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"triggerTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

606460085565048c27395000600955601e805461ffff1916610101179055601060809081526f41757469737473416e6f6e796d6f757360801b60a052610100604052600260c090815261414160f01b60e05260036200005f83826200083d565b5060046200006e82826200083d565b50506005805460ff60a01b19169055506200008c6012600a62000a1e565b6200009c906305f5e10062000a36565b60068190556103e890620000b290602a62000a36565b620000be919062000a50565b6007556006546103e890620000d590603262000a36565b620000e1919062000a50565b600e55620000ef33620003a4565b601e8054757a250d5630b4cf539739df2c5dacb4c659f2488d000062010000600160b01b031990911617908190556040805163c45a015560e01b81529051620100009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000190919062000a73565b601f80546001600160a01b0319166001600160a01b03928316908117909155601e54604080516315ab88c960e31b81529051929363c9c653969330936201000090049091169163ad5c46489160048083019260209291908290030181865afa15801562000201573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000227919062000a73565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b919062000a73565b602080546001600160a01b03929092166001600160a01b031992831617905560408051686c697175696469747960b81b815260136009820152905160299181900391909101902080549091169055620002f760006004620003f6565b620003056000601e6200049e565b6200032473417fbcbb947c0e860ffb66f3a4af0e457fd27ebd62000533565b6200032f33620005ca565b6200033a30620005ca565b6200035973417fbcbb947c0e860ffb66f3a4af0e457fd27ebd620005ca565b6200038173417fbcbb947c0e860ffb66f3a4af0e457fd27ebd600754620006af60201b60201c565b6200039e3360075460065462000398919062000a9e565b620006af565b62000aca565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620004455760405162461bcd60e51b815260206004820181905260248201526000805160206200380683398151915260448201526064015b60405180910390fd5b8160116040516200045f90623232bb60e91b815260030190565b90815260405190819003602001812091909155686c697175696469747960b81b815281906011906009015b908152604051908190036020019020555050565b6005546001600160a01b03163314620004e95760405162461bcd60e51b815260206004820181905260248201526000805160206200380683398151915260448201526064016200043c565b8160126040516200050390623232bb60e91b815260030190565b90815260405190819003602001812091909155686c697175696469747960b81b815281906012906009016200048a565b6005546001600160a01b031633146200057e5760405162461bcd60e51b815260206004820181905260248201526000805160206200380683398151915260448201526064016200043c565b8060136040516200059890623232bb60e91b815260030190565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b031990921691909117905550565b6005546001600160a01b03163314620006155760405162461bcd60e51b815260206004820181905260248201526000805160206200380683398151915260448201526064016200043c565b6001600160a01b03811660009081526010602052604090205460ff16156200068b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a204163636f756e7420697320616c7265616479206578636c7564604482015261195960f21b60648201526084016200043c565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6001600160a01b038216620007075760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200043c565b80600260008282546200071b919062000ab4565b90915550506001600160a01b038216600090815260208190526040812080548392906200074a90849062000ab4565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007c457607f821691505b602082108103620007e557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200079457600081815260208120601f850160051c81016020861015620008145750805b601f850160051c820191505b81811015620008355782815560010162000820565b505050505050565b81516001600160401b0381111562000859576200085962000799565b62000871816200086a8454620007af565b84620007eb565b602080601f831160018114620008a95760008415620008905750858301515b600019600386901b1c1916600185901b17855562000835565b600085815260208120601f198616915b82811015620008da57888601518255948401946001909101908401620008b9565b5085821015620008f95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200096057816000190482111562000944576200094462000909565b808516156200095257918102915b93841c939080029062000924565b509250929050565b600082620009795750600162000a18565b81620009885750600062000a18565b8160018114620009a15760028114620009ac57620009cc565b600191505062000a18565b60ff841115620009c057620009c062000909565b50506001821b62000a18565b5060208310610133831016604e8410600b8410161715620009f1575081810a62000a18565b620009fd83836200091f565b806000190482111562000a145762000a1462000909565b0290505b92915050565b600062000a2f60ff84168362000968565b9392505050565b808202811582820484141762000a185762000a1862000909565b60008262000a6e57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121562000a8657600080fd5b81516001600160a01b038116811462000a2f57600080fd5b8181038181111562000a185762000a1862000909565b8082018082111562000a185762000a1862000909565b612d2c8062000ada6000396000f3fe60806040526004361061031e5760003560e01c8063715018a6116101ab578063ced695a4116100f7578063f2fde38b11610095578063f9d0831a1161006f578063f9d0831a14610932578063f9f92be414610952578063fd46752a14610982578063fe575a87146109a157600080fd5b8063f2fde38b146108e6578063f441b1c814610906578063f8b45b051461091c57600080fd5b8063dc2c5f8a116100d1578063dc2c5f8a1461085e578063dd62ed3e14610874578063e1370dd3146108ba578063ebcec6a2146108d057600080fd5b8063ced695a414610809578063cfefd79e1461081e578063d01dc84b1461083e57600080fd5b806395d89b4111610164578063a9059cbb1161013e578063a9059cbb14610768578063ab47919a14610788578063abe4f11d146107c9578063cba0e996146107e957600080fd5b806395d89b411461071e5780639692c4f914610733578063a457c2d71461074857600080fd5b8063715018a614610678578063717a86511461068d5780637898d9b9146106ad5780638456cb59146106c257806387d88182146106d75780638da5cb5b146106ec57600080fd5b8063395093511161026a57806353eb3bcf116102235780635cabe5df116101fd5780635cabe5df146105f65780635d0044ca1461060c5780635d9833ec1461062c57806370a082311461064257600080fd5b806353eb3bcf146105ac57806355648209146105c15780635c975abb146105d757600080fd5b806339509351146104e95780633f4ba83a1461050957806342966c681461051e5780634b8ce6021461053e5780634febf53d14610554578063506e50ec1461057457600080fd5b80631c9f0d2e116102d7578063247b912d116102b1578063247b912d146104685780632c32abc214610488578063311273941461049d578063313ce567146104cd57600080fd5b80631c9f0d2e1461041857806323a38a381461042e57806323b872dd1461044857600080fd5b806305a1f36d1461032a57806306fdde031461034c578063095ea7b314610377578063099aca7d146103a757806316483a92146103ed57806318160ddd1461040357600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061034a6103453660046127ce565b6109da565b005b34801561035857600080fd5b50610361610a51565b60405161036e91906127f0565b60405180910390f35b34801561038357600080fd5b50610397610392366004612853565b610ae3565b604051901515815260200161036e565b3480156103b357600080fd5b506103df6103c23660046128c6565b805160208183018101805160118252928201919093012091525481565b60405190815260200161036e565b3480156103f957600080fd5b506103df60175481565b34801561040f57600080fd5b506002546103df565b34801561042457600080fd5b506103df60185481565b34801561043a57600080fd5b50601e546103979060ff1681565b34801561045457600080fd5b5061039761046336600461295b565b610afa565b34801561047457600080fd5b5061034a6104833660046127ce565b610ba6565b34801561049457600080fd5b5061034a610c00565b3480156104a957600080fd5b506103976104b836600461299c565b60106020526000908152604090205460ff1681565b3480156104d957600080fd5b506040516012815260200161036e565b3480156104f557600080fd5b50610397610504366004612853565b610c46565b34801561051557600080fd5b5061034a610c82565b34801561052a57600080fd5b5061034a6105393660046129b9565b610d0f565b34801561054a57600080fd5b506103df60155481565b34801561056057600080fd5b5061034a61056f36600461299c565b610d43565b34801561058057600080fd5b506103df61058f3660046128c6565b805160208183018101805160128252928201919093012091525481565b3480156105b857600080fd5b5061034a610df2565b3480156105cd57600080fd5b506103df60145481565b3480156105e357600080fd5b50600554600160a01b900460ff16610397565b34801561060257600080fd5b506103df601c5481565b34801561061857600080fd5b5061034a6106273660046129b9565b610e7e565b34801561063857600080fd5b506103df601a5481565b34801561064e57600080fd5b506103df61065d36600461299c565b6001600160a01b031660009081526020819052604090205490565b34801561068457600080fd5b5061034a610eff565b34801561069957600080fd5b5061034a6106a836600461299c565b610f33565b3480156106b957600080fd5b5061034a610ff8565b3480156106ce57600080fd5b5061034a611033565b3480156106e357600080fd5b5061034a6110c9565b3480156106f857600080fd5b506005546001600160a01b03165b6040516001600160a01b03909116815260200161036e565b34801561072a57600080fd5b50610361611731565b34801561073f57600080fd5b5061034a611740565b34801561075457600080fd5b50610397610763366004612853565b611777565b34801561077457600080fd5b50610397610783366004612853565b611810565b34801561079457600080fd5b506107066107a33660046128c6565b80516020818301810180516013825292820191909301209152546001600160a01b031681565b3480156107d557600080fd5b5061034a6107e436600461299c565b61181d565b3480156107f557600080fd5b5061039761080436600461299c565b6118bd565b34801561081557600080fd5b5061034a6118db565b34801561082a57600080fd5b5061034a61083936600461299c565b611963565b34801561084a57600080fd5b5061034a61085936600461299c565b611a20565b34801561086a57600080fd5b506103df60195481565b34801561088057600080fd5b506103df61088f3660046129d2565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108c657600080fd5b506103df601d5481565b3480156108dc57600080fd5b506103df60165481565b3480156108f257600080fd5b5061034a61090136600461299c565b611a8b565b34801561091257600080fd5b506103df601b5481565b34801561092857600080fd5b506103df600e5481565b34801561093e57600080fd5b5061034a61094d36600461299c565b611b23565b34801561095e57600080fd5b5061039761096d36600461299c565b600f6020526000908152604090205460ff1681565b34801561098e57600080fd5b50601e5461039790610100900460ff1681565b3480156109ad57600080fd5b506103976109bc36600461299c565b6001600160a01b03166000908152600f602052604090205460ff1690565b6005546001600160a01b03163314610a0d5760405162461bcd60e51b8152600401610a0490612a0b565b60405180910390fd5b816011604051610a1c90612a40565b908152602001604051809103902081905550806011604051610a3d90612a4f565b908152604051908190036020019020555050565b606060038054610a6090612a64565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8c90612a64565b8015610ad95780601f10610aae57610100808354040283529160200191610ad9565b820191906000526020600020905b815481529060010190602001808311610abc57829003601f168201915b5050505050905090565b6000610af0338484611c9b565b5060015b92915050565b6000610b07848484611dbf565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b8c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a04565b610b998533858403611c9b565b60019150505b9392505050565b6005546001600160a01b03163314610bd05760405162461bcd60e51b8152600401610a0490612a0b565b816012604051610bdf90612a40565b908152602001604051809103902081905550806012604051610a3d90612a4f565b6005546001600160a01b03163314610c2a5760405162461bcd60e51b8152600401610a0490612a0b565b602054610c43906000906001600160a01b031681611f6e565b50565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610af0918590610c7d908690612ab4565b611c9b565b6005546001600160a01b03163314610cac5760405162461bcd60e51b8152600401610a0490612a0b565b600554600160a01b900460ff16610d055760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20436f6e7472616374206973206e6f74207061757365640000006044820152606401610a04565b610d0d61233b565b565b6005546001600160a01b03163314610d395760405162461bcd60e51b8152600401610a0490612a0b565b610c4333826123d8565b6005546001600160a01b03163314610d6d5760405162461bcd60e51b8152600401610a0490612a0b565b610d76816118bd565b15610dce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a204163636f756e7420697320616c7265616479206578636c7564604482015261195960f21b6064820152608401610a04565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6005546001600160a01b03163314610e1c5760405162461bcd60e51b8152600401610a0490612a0b565b601e5460ff1615610e6f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054617820697320616c726561647920656e61626c65640000006044820152606401610a04565b601e805460ff19166001179055565b6005546001600160a01b03163314610ea85760405162461bcd60e51b8152600401610a0490612a0b565b6127108111610ee75760405162461bcd60e51b815260206004820152600b60248201526a1393c81c9d59c81c1d5b1b60aa1b6044820152606401610a04565b610ef981670de0b6b3a7640000612ac7565b600e5550565b6005546001600160a01b03163314610f295760405162461bcd60e51b8152600401610a0490612a0b565b610d0d6000612526565b6005546001600160a01b03163314610f5d5760405162461bcd60e51b8152600401610a0490612a0b565b6001600160a01b0381166000908152600f602052604090205460ff1615610fd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a204163636f756e7420697320616c726561647920626c61636b6c6044820152641a5cdd195960da1b6064820152608401610a04565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6005546001600160a01b031633146110225760405162461bcd60e51b8152600401610a0490612a0b565b601e805461ff001916610100179055565b6005546001600160a01b0316331461105d5760405162461bcd60e51b8152600401610a0490612a0b565b600554600160a01b900460ff16156110c15760405162461bcd60e51b815260206004820152602160248201527f45524332303a20436f6e747261637420697320616c72656164792070617573656044820152601960fa1b6064820152608401610a04565b610d0d612578565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110fe576110fe612ade565b60200260200101906001600160a01b031690816001600160a01b031681525050601e60029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190612af4565b816001815181106111a8576111a8612ade565b6001600160a01b039283166020918202929092010152601e54601554601454600093620100009093049092169163d06ca61f916111e491612ab4565b846040518363ffffffff1660e01b8152600401611202929190612b55565b600060405180830381865afa15801561121f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112479190810190612b76565b60018151811061125957611259612ade565b6020026020010151905080601681905550600954811061172d57601554479060009061128790600290612c1c565b6014546112949190612ab4565b6017819055601e549091506112ba9030906201000090046001600160a01b031683611c9b565b601e546040516318cbafe560e01b8152620100009091046001600160a01b0316906318cbafe5906112f8908490600090899030904290600401612c3e565b6000604051808303816000875af1158015611317573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261133f9190810190612b76565b50600061134c8347612c7a565b905080601881905550600060026015546113669190612c1c565b90506000670de0b6b3a76400006015546014546113839190612ab4565b60026015546113929190612c1c565b6113a490670de0b6b3a7640000612ac7565b6113ae9190612c1c565b6113b89085612ac7565b6113c29190612c1c565b90506000670de0b6b3a76400006015546014546113df9190612ab4565b6014546113f490670de0b6b3a7640000612ac7565b6113fe9190612c1c565b6114089086612ac7565b6114129190612c1c565b905061143430601e60029054906101000a90046001600160a01b031685611c9b565b601e60029054906101000a90046001600160a01b03166001600160a01b031663f305d719833086600080601360405161146c90612a4f565b908152604051908190036020018120546001600160e01b031960e089901b1682526001600160a01b039586166004830152602482019490945260448101929092526064820152911660848201524260a482015260c40160606040518083038185885af11580156114e0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115059190612c8d565b505050600083866115169190612ab4565b6015546014546115269190612ab4565b6115309190612c7a565b60198190559050801561156e5761156e30601360405161154f90612a40565b908152604051908190036020019020546001600160a01b031683611dbf565b6000601360405161157e90612a40565b908152604051908190036020018120546001600160a01b031690849060006040518083038185875af1925050503d80600081146115d7576040519150601f19603f3d011682016040523d82523d6000602084013e6115dc565b606091505b505090508061162d5760405162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f20206465762077616c6c6574206661696c656400006044820152606401610a04565b60006116398585612ab4565b6116439088612c7a565b111561171a576000601360405161165990612a40565b908152604051908190036020019020546001600160a01b031661167c8686612ab4565b6116869089612c7a565b604051600081818185875af1925050503d80600081146116c2576040519150601f19603f3d011682016040523d82523d6000602084013e6116c7565b606091505b50509050806117185760405162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f20206465762077616c6c6574206661696c656400006044820152606401610a04565b505b5050600060148190556015555050505050505b5050565b606060048054610a6090612a64565b6005546001600160a01b0316331461176a5760405162461bcd60e51b8152600401610a0490612a0b565b601e805461ff0019169055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156117f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a04565b6118063385858403611c9b565b5060019392505050565b6000610af0338484611dbf565b6005546001600160a01b031633146118475760405162461bcd60e51b8152600401610a0490612a0b565b611850816118bd565b61189c5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204163636f756e74206973206e6f74206578636c7564656400006044820152606401610a04565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6001600160a01b031660009081526010602052604090205460ff1690565b6005546001600160a01b031633146119055760405162461bcd60e51b8152600401610a0490612a0b565b601e5460ff166119575760405162461bcd60e51b815260206004820152601e60248201527f45524332303a2054617820697320616c72656164792064697361626c656400006044820152606401610a04565b601e805460ff19169055565b6005546001600160a01b0316331461198d5760405162461bcd60e51b8152600401610a0490612a0b565b6001600160a01b0381166000908152600f602052604090205460ff166119ff5760405162461bcd60e51b815260206004820152602160248201527f45524332303a204163636f756e74206973206e6f7420626c61636b6c697374656044820152601960fa1b6064820152608401610a04565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6005546001600160a01b03163314611a4a5760405162461bcd60e51b8152600401610a0490612a0b565b806013604051611a5990612a40565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b031990921691909117905550565b6005546001600160a01b03163314611ab55760405162461bcd60e51b8152600401610a0490612a0b565b6001600160a01b038116611b1a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a04565b610c4381612526565b6005546001600160a01b03163314611b4d5760405162461bcd60e51b8152600401610a0490612a0b565b6001600160a01b038116611b94576005546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561172d573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c019190612cbb565b9050816001600160a01b031663a9059cbb611c246005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612cd4565b50505050565b6001600160a01b038316611cfd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a04565b6001600160a01b038216611d5e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a04565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600554600160a01b900460ff1615611e245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20746f6b656e207472616e73666572207768696c652070617573604482015261195960f21b6064820152608401610a04565b336000908152600f602052604090205460ff1615611e805760405162461bcd60e51b8152602060048201526019602482015278115490cc8c0e881cd95b99195c88189b1858dadb1a5cdd1959603a1b6044820152606401610a04565b6001600160a01b0382166000908152600f602052604090205460ff1615611ee95760405162461bcd60e51b815260206004820152601c60248201527f45524332303a20726563697069656e7420626c61636b6c6973746564000000006044820152606401610a04565b326000908152600f602052604090205460ff1615611f455760405162461bcd60e51b8152602060048201526019602482015278115490cc8c0e881cd95b99195c88189b1858dadb1a5cdd1959603a1b6044820152606401610a04565b601e5460ff1615611f5e57611f5b838383611f6e565b90505b611f69838383612600565b505050565b6000611f79846118bd565b158015611f8c5750611f8a836118bd565b155b15612334576020546000906001600160a01b03908116908616036120d9576008546011604051611fbb90612a40565b90815260200160405180910390205484611fd59190612ac7565b611fdf9190612c1c565b611fe99082612ab4565b90506008546011604051611ffc90612a4f565b908152602001604051809103902054846120169190612ac7565b6120209190612c1c565b61202a9082612ab4565b9050600854601160405161203d90612a40565b908152602001604051809103902054846120579190612ac7565b6120619190612c1c565b601460008282546120729190612ab4565b909155505060085460405160119061208990612a4f565b908152602001604051809103902054846120a39190612ac7565b6120ad9190612c1c565b601560008282546120be9190612ab4565b909155505080156120d4576120d4853083611dbf565b612259565b6020546001600160a01b039081169085160361225957600854601260405161210090612a40565b9081526020016040518091039020548461211a9190612ac7565b6121249190612c1c565b61212e9082612ab4565b9050600854601260405161214190612a4f565b9081526020016040518091039020548461215b9190612ac7565b6121659190612c1c565b61216f9082612ab4565b9050600854601260405161218290612a40565b9081526020016040518091039020548461219c9190612ac7565b6121a69190612c1c565b601460008282546121b79190612ab4565b90915550506008546040516012906121ce90612a4f565b908152602001604051809103902054846121e89190612ac7565b6121f29190612c1c565b601560008282546122039190612ab4565b9091555050801561221957612219853083611dbf565b600060155460145461222b9190612ab4565b90508060000361223f578392505050610b9f565b601e54610100900460ff1615612257576122576110c9565b505b6122638184612c7a565b9250612284846001600160a01b031660009081526020819052604090205490565b601a819055601b849055612299908490612ab4565b601c55600e54601d556020546001600160a01b0385811691161461233257600e54836122da866001600160a01b031660009081526020819052604090205490565b6122e49190612ab4565b11156123325760405162461bcd60e51b815260206004820152601860248201527f6d617857616c6c6574206c696d697420657863656564656400000000000000006044820152606401610a04565b505b5092915050565b600554600160a01b900460ff1661238b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610a04565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166124385760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a04565b6001600160a01b038216600090815260208190526040902054818110156124ac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a04565b6001600160a01b03831660009081526020819052604081208383039055600280548492906124db908490612c7a565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600554600160a01b900460ff16156125c55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610a04565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123bb3390565b6001600160a01b0383166126645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a04565b6001600160a01b0382166126c65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a04565b6001600160a01b0383166000908152602081905260409020548181101561273e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a04565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612775908490612ab4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127c191815260200190565b60405180910390a3611c95565b600080604083850312156127e157600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561281d57858101830151858201604001528201612801565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c4357600080fd5b6000806040838503121561286657600080fd5b82356128718161283e565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156128be576128be61287f565b604052919050565b600060208083850312156128d957600080fd5b823567ffffffffffffffff808211156128f157600080fd5b818501915085601f83011261290557600080fd5b8135818111156129175761291761287f565b612929601f8201601f19168501612895565b9150808252868482850101111561293f57600080fd5b8084840185840137600090820190930192909252509392505050565b60008060006060848603121561297057600080fd5b833561297b8161283e565b9250602084013561298b8161283e565b929592945050506040919091013590565b6000602082840312156129ae57600080fd5b8135610b9f8161283e565b6000602082840312156129cb57600080fd5b5035919050565b600080604083850312156129e557600080fd5b82356129f08161283e565b91506020830135612a008161283e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b623232bb60e91b815260030190565b686c697175696469747960b81b815260090190565b600181811c90821680612a7857607f821691505b602082108103612a9857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610af457610af4612a9e565b8082028115828204841417610af457610af4612a9e565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612b0657600080fd5b8151610b9f8161283e565b600081518084526020808501945080840160005b83811015612b4a5781516001600160a01b031687529582019590820190600101612b25565b509495945050505050565b828152604060208201526000612b6e6040830184612b11565b949350505050565b60006020808385031215612b8957600080fd5b825167ffffffffffffffff80821115612ba157600080fd5b818501915085601f830112612bb557600080fd5b815181811115612bc757612bc761287f565b8060051b9150612bd8848301612895565b8181529183018401918481019088841115612bf257600080fd5b938501935b83851015612c1057845182529385019390850190612bf7565b98975050505050505050565b600082612c3957634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a060408201526000612c5d60a0830186612b11565b6001600160a01b0394909416606083015250608001529392505050565b81810381811115610af457610af4612a9e565b600080600060608486031215612ca257600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612ccd57600080fd5b5051919050565b600060208284031215612ce657600080fd5b81518015158114610b9f57600080fdfea2646970667358221220126b8192454ac1fd8552229b5c9ee08be4b10e1846d9e860326c5d049893915564736f6c634300081200334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x60806040526004361061031e5760003560e01c8063715018a6116101ab578063ced695a4116100f7578063f2fde38b11610095578063f9d0831a1161006f578063f9d0831a14610932578063f9f92be414610952578063fd46752a14610982578063fe575a87146109a157600080fd5b8063f2fde38b146108e6578063f441b1c814610906578063f8b45b051461091c57600080fd5b8063dc2c5f8a116100d1578063dc2c5f8a1461085e578063dd62ed3e14610874578063e1370dd3146108ba578063ebcec6a2146108d057600080fd5b8063ced695a414610809578063cfefd79e1461081e578063d01dc84b1461083e57600080fd5b806395d89b4111610164578063a9059cbb1161013e578063a9059cbb14610768578063ab47919a14610788578063abe4f11d146107c9578063cba0e996146107e957600080fd5b806395d89b411461071e5780639692c4f914610733578063a457c2d71461074857600080fd5b8063715018a614610678578063717a86511461068d5780637898d9b9146106ad5780638456cb59146106c257806387d88182146106d75780638da5cb5b146106ec57600080fd5b8063395093511161026a57806353eb3bcf116102235780635cabe5df116101fd5780635cabe5df146105f65780635d0044ca1461060c5780635d9833ec1461062c57806370a082311461064257600080fd5b806353eb3bcf146105ac57806355648209146105c15780635c975abb146105d757600080fd5b806339509351146104e95780633f4ba83a1461050957806342966c681461051e5780634b8ce6021461053e5780634febf53d14610554578063506e50ec1461057457600080fd5b80631c9f0d2e116102d7578063247b912d116102b1578063247b912d146104685780632c32abc214610488578063311273941461049d578063313ce567146104cd57600080fd5b80631c9f0d2e1461041857806323a38a381461042e57806323b872dd1461044857600080fd5b806305a1f36d1461032a57806306fdde031461034c578063095ea7b314610377578063099aca7d146103a757806316483a92146103ed57806318160ddd1461040357600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061034a6103453660046127ce565b6109da565b005b34801561035857600080fd5b50610361610a51565b60405161036e91906127f0565b60405180910390f35b34801561038357600080fd5b50610397610392366004612853565b610ae3565b604051901515815260200161036e565b3480156103b357600080fd5b506103df6103c23660046128c6565b805160208183018101805160118252928201919093012091525481565b60405190815260200161036e565b3480156103f957600080fd5b506103df60175481565b34801561040f57600080fd5b506002546103df565b34801561042457600080fd5b506103df60185481565b34801561043a57600080fd5b50601e546103979060ff1681565b34801561045457600080fd5b5061039761046336600461295b565b610afa565b34801561047457600080fd5b5061034a6104833660046127ce565b610ba6565b34801561049457600080fd5b5061034a610c00565b3480156104a957600080fd5b506103976104b836600461299c565b60106020526000908152604090205460ff1681565b3480156104d957600080fd5b506040516012815260200161036e565b3480156104f557600080fd5b50610397610504366004612853565b610c46565b34801561051557600080fd5b5061034a610c82565b34801561052a57600080fd5b5061034a6105393660046129b9565b610d0f565b34801561054a57600080fd5b506103df60155481565b34801561056057600080fd5b5061034a61056f36600461299c565b610d43565b34801561058057600080fd5b506103df61058f3660046128c6565b805160208183018101805160128252928201919093012091525481565b3480156105b857600080fd5b5061034a610df2565b3480156105cd57600080fd5b506103df60145481565b3480156105e357600080fd5b50600554600160a01b900460ff16610397565b34801561060257600080fd5b506103df601c5481565b34801561061857600080fd5b5061034a6106273660046129b9565b610e7e565b34801561063857600080fd5b506103df601a5481565b34801561064e57600080fd5b506103df61065d36600461299c565b6001600160a01b031660009081526020819052604090205490565b34801561068457600080fd5b5061034a610eff565b34801561069957600080fd5b5061034a6106a836600461299c565b610f33565b3480156106b957600080fd5b5061034a610ff8565b3480156106ce57600080fd5b5061034a611033565b3480156106e357600080fd5b5061034a6110c9565b3480156106f857600080fd5b506005546001600160a01b03165b6040516001600160a01b03909116815260200161036e565b34801561072a57600080fd5b50610361611731565b34801561073f57600080fd5b5061034a611740565b34801561075457600080fd5b50610397610763366004612853565b611777565b34801561077457600080fd5b50610397610783366004612853565b611810565b34801561079457600080fd5b506107066107a33660046128c6565b80516020818301810180516013825292820191909301209152546001600160a01b031681565b3480156107d557600080fd5b5061034a6107e436600461299c565b61181d565b3480156107f557600080fd5b5061039761080436600461299c565b6118bd565b34801561081557600080fd5b5061034a6118db565b34801561082a57600080fd5b5061034a61083936600461299c565b611963565b34801561084a57600080fd5b5061034a61085936600461299c565b611a20565b34801561086a57600080fd5b506103df60195481565b34801561088057600080fd5b506103df61088f3660046129d2565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108c657600080fd5b506103df601d5481565b3480156108dc57600080fd5b506103df60165481565b3480156108f257600080fd5b5061034a61090136600461299c565b611a8b565b34801561091257600080fd5b506103df601b5481565b34801561092857600080fd5b506103df600e5481565b34801561093e57600080fd5b5061034a61094d36600461299c565b611b23565b34801561095e57600080fd5b5061039761096d36600461299c565b600f6020526000908152604090205460ff1681565b34801561098e57600080fd5b50601e5461039790610100900460ff1681565b3480156109ad57600080fd5b506103976109bc36600461299c565b6001600160a01b03166000908152600f602052604090205460ff1690565b6005546001600160a01b03163314610a0d5760405162461bcd60e51b8152600401610a0490612a0b565b60405180910390fd5b816011604051610a1c90612a40565b908152602001604051809103902081905550806011604051610a3d90612a4f565b908152604051908190036020019020555050565b606060038054610a6090612a64565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8c90612a64565b8015610ad95780601f10610aae57610100808354040283529160200191610ad9565b820191906000526020600020905b815481529060010190602001808311610abc57829003601f168201915b5050505050905090565b6000610af0338484611c9b565b5060015b92915050565b6000610b07848484611dbf565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b8c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a04565b610b998533858403611c9b565b60019150505b9392505050565b6005546001600160a01b03163314610bd05760405162461bcd60e51b8152600401610a0490612a0b565b816012604051610bdf90612a40565b908152602001604051809103902081905550806012604051610a3d90612a4f565b6005546001600160a01b03163314610c2a5760405162461bcd60e51b8152600401610a0490612a0b565b602054610c43906000906001600160a01b031681611f6e565b50565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610af0918590610c7d908690612ab4565b611c9b565b6005546001600160a01b03163314610cac5760405162461bcd60e51b8152600401610a0490612a0b565b600554600160a01b900460ff16610d055760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20436f6e7472616374206973206e6f74207061757365640000006044820152606401610a04565b610d0d61233b565b565b6005546001600160a01b03163314610d395760405162461bcd60e51b8152600401610a0490612a0b565b610c4333826123d8565b6005546001600160a01b03163314610d6d5760405162461bcd60e51b8152600401610a0490612a0b565b610d76816118bd565b15610dce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a204163636f756e7420697320616c7265616479206578636c7564604482015261195960f21b6064820152608401610a04565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6005546001600160a01b03163314610e1c5760405162461bcd60e51b8152600401610a0490612a0b565b601e5460ff1615610e6f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054617820697320616c726561647920656e61626c65640000006044820152606401610a04565b601e805460ff19166001179055565b6005546001600160a01b03163314610ea85760405162461bcd60e51b8152600401610a0490612a0b565b6127108111610ee75760405162461bcd60e51b815260206004820152600b60248201526a1393c81c9d59c81c1d5b1b60aa1b6044820152606401610a04565b610ef981670de0b6b3a7640000612ac7565b600e5550565b6005546001600160a01b03163314610f295760405162461bcd60e51b8152600401610a0490612a0b565b610d0d6000612526565b6005546001600160a01b03163314610f5d5760405162461bcd60e51b8152600401610a0490612a0b565b6001600160a01b0381166000908152600f602052604090205460ff1615610fd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a204163636f756e7420697320616c726561647920626c61636b6c6044820152641a5cdd195960da1b6064820152608401610a04565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6005546001600160a01b031633146110225760405162461bcd60e51b8152600401610a0490612a0b565b601e805461ff001916610100179055565b6005546001600160a01b0316331461105d5760405162461bcd60e51b8152600401610a0490612a0b565b600554600160a01b900460ff16156110c15760405162461bcd60e51b815260206004820152602160248201527f45524332303a20436f6e747261637420697320616c72656164792070617573656044820152601960fa1b6064820152608401610a04565b610d0d612578565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110fe576110fe612ade565b60200260200101906001600160a01b031690816001600160a01b031681525050601e60029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190612af4565b816001815181106111a8576111a8612ade565b6001600160a01b039283166020918202929092010152601e54601554601454600093620100009093049092169163d06ca61f916111e491612ab4565b846040518363ffffffff1660e01b8152600401611202929190612b55565b600060405180830381865afa15801561121f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112479190810190612b76565b60018151811061125957611259612ade565b6020026020010151905080601681905550600954811061172d57601554479060009061128790600290612c1c565b6014546112949190612ab4565b6017819055601e549091506112ba9030906201000090046001600160a01b031683611c9b565b601e546040516318cbafe560e01b8152620100009091046001600160a01b0316906318cbafe5906112f8908490600090899030904290600401612c3e565b6000604051808303816000875af1158015611317573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261133f9190810190612b76565b50600061134c8347612c7a565b905080601881905550600060026015546113669190612c1c565b90506000670de0b6b3a76400006015546014546113839190612ab4565b60026015546113929190612c1c565b6113a490670de0b6b3a7640000612ac7565b6113ae9190612c1c565b6113b89085612ac7565b6113c29190612c1c565b90506000670de0b6b3a76400006015546014546113df9190612ab4565b6014546113f490670de0b6b3a7640000612ac7565b6113fe9190612c1c565b6114089086612ac7565b6114129190612c1c565b905061143430601e60029054906101000a90046001600160a01b031685611c9b565b601e60029054906101000a90046001600160a01b03166001600160a01b031663f305d719833086600080601360405161146c90612a4f565b908152604051908190036020018120546001600160e01b031960e089901b1682526001600160a01b039586166004830152602482019490945260448101929092526064820152911660848201524260a482015260c40160606040518083038185885af11580156114e0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115059190612c8d565b505050600083866115169190612ab4565b6015546014546115269190612ab4565b6115309190612c7a565b60198190559050801561156e5761156e30601360405161154f90612a40565b908152604051908190036020019020546001600160a01b031683611dbf565b6000601360405161157e90612a40565b908152604051908190036020018120546001600160a01b031690849060006040518083038185875af1925050503d80600081146115d7576040519150601f19603f3d011682016040523d82523d6000602084013e6115dc565b606091505b505090508061162d5760405162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f20206465762077616c6c6574206661696c656400006044820152606401610a04565b60006116398585612ab4565b6116439088612c7a565b111561171a576000601360405161165990612a40565b908152604051908190036020019020546001600160a01b031661167c8686612ab4565b6116869089612c7a565b604051600081818185875af1925050503d80600081146116c2576040519150601f19603f3d011682016040523d82523d6000602084013e6116c7565b606091505b50509050806117185760405162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f20206465762077616c6c6574206661696c656400006044820152606401610a04565b505b5050600060148190556015555050505050505b5050565b606060048054610a6090612a64565b6005546001600160a01b0316331461176a5760405162461bcd60e51b8152600401610a0490612a0b565b601e805461ff0019169055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156117f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a04565b6118063385858403611c9b565b5060019392505050565b6000610af0338484611dbf565b6005546001600160a01b031633146118475760405162461bcd60e51b8152600401610a0490612a0b565b611850816118bd565b61189c5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204163636f756e74206973206e6f74206578636c7564656400006044820152606401610a04565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6001600160a01b031660009081526010602052604090205460ff1690565b6005546001600160a01b031633146119055760405162461bcd60e51b8152600401610a0490612a0b565b601e5460ff166119575760405162461bcd60e51b815260206004820152601e60248201527f45524332303a2054617820697320616c72656164792064697361626c656400006044820152606401610a04565b601e805460ff19169055565b6005546001600160a01b0316331461198d5760405162461bcd60e51b8152600401610a0490612a0b565b6001600160a01b0381166000908152600f602052604090205460ff166119ff5760405162461bcd60e51b815260206004820152602160248201527f45524332303a204163636f756e74206973206e6f7420626c61636b6c697374656044820152601960fa1b6064820152608401610a04565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6005546001600160a01b03163314611a4a5760405162461bcd60e51b8152600401610a0490612a0b565b806013604051611a5990612a40565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b031990921691909117905550565b6005546001600160a01b03163314611ab55760405162461bcd60e51b8152600401610a0490612a0b565b6001600160a01b038116611b1a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a04565b610c4381612526565b6005546001600160a01b03163314611b4d5760405162461bcd60e51b8152600401610a0490612a0b565b6001600160a01b038116611b94576005546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561172d573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c019190612cbb565b9050816001600160a01b031663a9059cbb611c246005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612cd4565b50505050565b6001600160a01b038316611cfd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a04565b6001600160a01b038216611d5e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a04565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600554600160a01b900460ff1615611e245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20746f6b656e207472616e73666572207768696c652070617573604482015261195960f21b6064820152608401610a04565b336000908152600f602052604090205460ff1615611e805760405162461bcd60e51b8152602060048201526019602482015278115490cc8c0e881cd95b99195c88189b1858dadb1a5cdd1959603a1b6044820152606401610a04565b6001600160a01b0382166000908152600f602052604090205460ff1615611ee95760405162461bcd60e51b815260206004820152601c60248201527f45524332303a20726563697069656e7420626c61636b6c6973746564000000006044820152606401610a04565b326000908152600f602052604090205460ff1615611f455760405162461bcd60e51b8152602060048201526019602482015278115490cc8c0e881cd95b99195c88189b1858dadb1a5cdd1959603a1b6044820152606401610a04565b601e5460ff1615611f5e57611f5b838383611f6e565b90505b611f69838383612600565b505050565b6000611f79846118bd565b158015611f8c5750611f8a836118bd565b155b15612334576020546000906001600160a01b03908116908616036120d9576008546011604051611fbb90612a40565b90815260200160405180910390205484611fd59190612ac7565b611fdf9190612c1c565b611fe99082612ab4565b90506008546011604051611ffc90612a4f565b908152602001604051809103902054846120169190612ac7565b6120209190612c1c565b61202a9082612ab4565b9050600854601160405161203d90612a40565b908152602001604051809103902054846120579190612ac7565b6120619190612c1c565b601460008282546120729190612ab4565b909155505060085460405160119061208990612a4f565b908152602001604051809103902054846120a39190612ac7565b6120ad9190612c1c565b601560008282546120be9190612ab4565b909155505080156120d4576120d4853083611dbf565b612259565b6020546001600160a01b039081169085160361225957600854601260405161210090612a40565b9081526020016040518091039020548461211a9190612ac7565b6121249190612c1c565b61212e9082612ab4565b9050600854601260405161214190612a4f565b9081526020016040518091039020548461215b9190612ac7565b6121659190612c1c565b61216f9082612ab4565b9050600854601260405161218290612a40565b9081526020016040518091039020548461219c9190612ac7565b6121a69190612c1c565b601460008282546121b79190612ab4565b90915550506008546040516012906121ce90612a4f565b908152602001604051809103902054846121e89190612ac7565b6121f29190612c1c565b601560008282546122039190612ab4565b9091555050801561221957612219853083611dbf565b600060155460145461222b9190612ab4565b90508060000361223f578392505050610b9f565b601e54610100900460ff1615612257576122576110c9565b505b6122638184612c7a565b9250612284846001600160a01b031660009081526020819052604090205490565b601a819055601b849055612299908490612ab4565b601c55600e54601d556020546001600160a01b0385811691161461233257600e54836122da866001600160a01b031660009081526020819052604090205490565b6122e49190612ab4565b11156123325760405162461bcd60e51b815260206004820152601860248201527f6d617857616c6c6574206c696d697420657863656564656400000000000000006044820152606401610a04565b505b5092915050565b600554600160a01b900460ff1661238b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610a04565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166124385760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a04565b6001600160a01b038216600090815260208190526040902054818110156124ac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a04565b6001600160a01b03831660009081526020819052604081208383039055600280548492906124db908490612c7a565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600554600160a01b900460ff16156125c55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610a04565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123bb3390565b6001600160a01b0383166126645760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a04565b6001600160a01b0382166126c65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a04565b6001600160a01b0383166000908152602081905260409020548181101561273e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a04565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612775908490612ab4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127c191815260200190565b60405180910390a3611c95565b600080604083850312156127e157600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561281d57858101830151858201604001528201612801565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c4357600080fd5b6000806040838503121561286657600080fd5b82356128718161283e565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156128be576128be61287f565b604052919050565b600060208083850312156128d957600080fd5b823567ffffffffffffffff808211156128f157600080fd5b818501915085601f83011261290557600080fd5b8135818111156129175761291761287f565b612929601f8201601f19168501612895565b9150808252868482850101111561293f57600080fd5b8084840185840137600090820190930192909252509392505050565b60008060006060848603121561297057600080fd5b833561297b8161283e565b9250602084013561298b8161283e565b929592945050506040919091013590565b6000602082840312156129ae57600080fd5b8135610b9f8161283e565b6000602082840312156129cb57600080fd5b5035919050565b600080604083850312156129e557600080fd5b82356129f08161283e565b91506020830135612a008161283e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b623232bb60e91b815260030190565b686c697175696469747960b81b815260090190565b600181811c90821680612a7857607f821691505b602082108103612a9857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610af457610af4612a9e565b8082028115828204841417610af457610af4612a9e565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612b0657600080fd5b8151610b9f8161283e565b600081518084526020808501945080840160005b83811015612b4a5781516001600160a01b031687529582019590820190600101612b25565b509495945050505050565b828152604060208201526000612b6e6040830184612b11565b949350505050565b60006020808385031215612b8957600080fd5b825167ffffffffffffffff80821115612ba157600080fd5b818501915085601f830112612bb557600080fd5b815181811115612bc757612bc761287f565b8060051b9150612bd8848301612895565b8181529183018401918481019088841115612bf257600080fd5b938501935b83851015612c1057845182529385019390850190612bf7565b98975050505050505050565b600082612c3957634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a060408201526000612c5d60a0830186612b11565b6001600160a01b0394909416606083015250608001529392505050565b81810381811115610af457610af4612a9e565b600080600060608486031215612ca257600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612ccd57600080fd5b5051919050565b600060208284031215612ce657600080fd5b81518015158114610b9f57600080fdfea2646970667358221220126b8192454ac1fd8552229b5c9ee08be4b10e1846d9e860326c5d049893915564736f6c63430008120033

Deployed Bytecode Sourcemap

16098:11643:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25677:154;;;;;;;;;;-1:-1:-1;25677:154:0;;;;;:::i;:::-;;:::i;:::-;;1825:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2739:169;;;;;;;;;;-1:-1:-1;2739:169:0;;;;;:::i;:::-;;:::i;:::-;;;1441:14:1;;1434:22;1416:41;;1404:2;1389:18;2739:169:0;1276:187:1;16643:42:0;;;;;;;;;;-1:-1:-1;16643:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2795:25:1;;;2783:2;2768:18;16643:42:0;2649:177:1;16975:28:0;;;;;;;;;;;;;;;;2146:108;;;;;;;;;;-1:-1:-1;2234:12:0;;2146:108;;17010:31;;;;;;;;;;;;;;;;17257:28;;;;;;;;;;-1:-1:-1;17257:28:0;;;;;;;;2916:476;;;;;;;;;;-1:-1:-1;2916:476:0;;;;;:::i;:::-;;:::i;25890:159::-;;;;;;;;;;-1:-1:-1;25890:159:0;;;;;:::i;:::-;;:::i;23645:106::-;;;;;;;;;;;;;:::i;16575:43::-;;;;;;;;;;-1:-1:-1;16575:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2045:93;;;;;;;;;;-1:-1:-1;2045:93:0;;2128:2;3686:36:1;;3674:2;3659:18;2045:93:0;3544:184:1;3400:215:0;;;;;;;;;;-1:-1:-1;3400:215:0;;;;;:::i;:::-;;:::i;24020:126::-;;;;;;;;;;;;;:::i;24447:91::-;;;;;;;;;;-1:-1:-1;24447:91:0;;;;;:::i;:::-;;:::i;16874:30::-;;;;;;;;;;;;;;;;25187:175;;;;;;;;;;-1:-1:-1;25187:175:0;;;;;:::i;:::-;;:::i;16708:43::-;;;;;;;;;;-1:-1:-1;16708:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;26640:136;;;;;;;;;;;;;:::i;16843:24::-;;;;;;;;;;;;;;;;7534:86;;;;;;;;;;-1:-1:-1;7605:7:0;;-1:-1:-1;;;7605:7:0;;;;7534:86;;17169:39;;;;;;;;;;;;;;;;24220:154;;;;;;;;;;-1:-1:-1;24220:154:0;;;;;:::i;:::-;;:::i;17094:33::-;;;;;;;;;;;;;;;;2262:127;;;;;;;;;;-1:-1:-1;2262:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2363:18:0;2336:7;2363:18;;;;;;;;;;;;2262:127;6833:94;;;;;;;;;;;;;:::i;24656:183::-;;;;;;;;;;-1:-1:-1;24656:183:0;;;;;:::i;:::-;;:::i;27469:81::-;;;;;;;;;;;;;:::i;23821:127::-;;;;;;;;;;;;;:::i;20442:2529::-;;;;;;;;;;;;;:::i;6608:87::-;;;;;;;;;;-1:-1:-1;6681:6:0;;-1:-1:-1;;;;;6681:6:0;6608:87;;;-1:-1:-1;;;;;4082:32:1;;;4064:51;;4052:2;4037:18;6608:87:0;3918:203:1;1933:104:0;;;;;;;;;;;;;:::i;27618:83::-;;;;;;;;;;;;;:::i;3623:401::-;;;;;;;;;;-1:-1:-1;3623:401:0;;;;;:::i;:::-;;:::i;2397:175::-;;;;;;;;;;-1:-1:-1;2397:175:0;;;;;:::i;:::-;;:::i;16774:44::-;;;;;;;;;;-1:-1:-1;16774:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16774:44:0;;;25442:177;;;;;;;;;;-1:-1:-1;25442:177:0;;;;;:::i;:::-;;:::i;27292:110::-;;;;;;;;;;-1:-1:-1;27292:110:0;;;;;:::i;:::-;;:::i;26838:138::-;;;;;;;;;;;;;:::i;24927:180::-;;;;;;;;;;-1:-1:-1;24927:180:0;;;;;:::i;:::-;;:::i;26112:97::-;;;;;;;;;;-1:-1:-1;26112:97:0;;;;;:::i;:::-;;:::i;17048:37::-;;;;;;;;;;;;;;;;2580:151;;;;;;;;;;-1:-1:-1;2580:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2696:18:0;;;2669:7;2696:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2580:151;17215:31;;;;;;;;;;;;;;;;16935:33;;;;;;;;;;;;;;;;6937:192;;;;;;;;;;-1:-1:-1;6937:192:0;;;;;:::i;:::-;;:::i;17134:28::-;;;;;;;;;;;;;;;;16478:24;;;;;;;;;;;;;;;;26217:362;;;;;;;;;;-1:-1:-1;26217:362:0;;;;;:::i;:::-;;:::i;16511:41::-;;;;;;;;;;-1:-1:-1;16511:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17292:32;;;;;;;;;;-1:-1:-1;17292:32:0;;;;;;;;;;;27080:111;;;;;;;;;;-1:-1:-1;27080:111:0;;;;;:::i;:::-;-1:-1:-1;;;;;27165:18:0;27141:4;27165:18;;;:9;:18;;;;;;;;;27080:111;25677:154;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;;;;;;;;;25774:3:::1;25756:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;25812:9;25788:8;:21;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:33;-1:-1:-1;;25677:154:0:o;1825:100::-;1879:13;1912:5;1905:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:100;:::o;2739:169::-;2822:4;2839:39;1291:10;2862:7;2871:6;2839:8;:39::i;:::-;-1:-1:-1;2896:4:0;2739:169;;;;;:::o;2916:476::-;3056:4;3073:36;3083:6;3091:9;3102:6;3073:9;:36::i;:::-;-1:-1:-1;;;;;3147:19:0;;3120:24;3147:19;;;:11;:19;;;;;;;;1291:10;3147:33;;;;;;;;3199:26;;;;3191:79;;;;-1:-1:-1;;;3191:79:0;;5989:2:1;3191:79:0;;;5971:21:1;6028:2;6008:18;;;6001:30;6067:34;6047:18;;;6040:62;-1:-1:-1;;;6118:18:1;;;6111:38;6166:19;;3191:79:0;5787:404:1;3191:79:0;3298:57;3307:6;1291:10;3348:6;3329:16;:25;3298:8;:57::i;:::-;3380:4;3373:11;;;2916:476;;;;;;:::o;25890:159::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;25991:3:::1;25972:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;;26030:9;26005;:22;;;;;:::i;23645:106::-:0;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;23725:13:::1;::::0;23695:48:::1;::::0;23713:1:::1;::::0;-1:-1:-1;;;;;23725:13:0::1;23713:1:::0;23695:9:::1;:48::i;:::-;;23645:106::o:0;3400:215::-;1291:10;3488:4;3537:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3537:34:0;;;;;;;;;;3488:4;;3505:80;;3528:7;;3537:47;;3574:10;;3537:47;:::i;:::-;3505:8;:80::i;24020:126::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;7605:7;;-1:-1:-1;;;7605:7:0;;;;24067:50:::1;;;::::0;-1:-1:-1;;;24067:50:0;;6660:2:1;24067:50:0::1;::::0;::::1;6642:21:1::0;6699:2;6679:18;;;6672:30;6738:31;6718:18;;;6711:59;6787:18;;24067:50:0::1;6458:353:1::0;24067:50:0::1;24128:10;:8;:10::i;:::-;24020:126::o:0;24447:91::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;24505:25:::1;24511:10;24523:6;24505:5;:25::i;25187:175::-:0;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;25258:19:::1;25269:7;25258:10;:19::i;:::-;25257:20;25249:67;;;::::0;-1:-1:-1;;;25249:67:0;;7018:2:1;25249:67:0::1;::::0;::::1;7000:21:1::0;7057:2;7037:18;;;7030:30;7096:34;7076:18;;;7069:62;-1:-1:-1;;;7147:18:1;;;7140:32;7189:19;;25249:67:0::1;6816:398:1::0;25249:67:0::1;-1:-1:-1::0;;;;;25327:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;25327:27:0::1;25350:4;25327:27;::::0;;25187:175::o;26640:136::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;26698:9:::1;::::0;::::1;;26697:10;26689:52;;;::::0;-1:-1:-1;;;26689:52:0;;7421:2:1;26689:52:0::1;::::0;::::1;7403:21:1::0;7460:2;7440:18;;;7433:30;7499:31;7479:18;;;7472:59;7548:18;;26689:52:0::1;7219:353:1::0;26689:52:0::1;26752:9;:16:::0;;-1:-1:-1;;26752:16:0::1;26764:4;26752:16;::::0;;26640:136::o;24220:154::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;24305:5:::1;24296:6;:14;24288:38;;;::::0;-1:-1:-1;;;24288:38:0;;7779:2:1;24288:38:0::1;::::0;::::1;7761:21:1::0;7818:2;7798:18;;;7791:30;-1:-1:-1;;;7837:18:1;;;7830:41;7888:18;;24288:38:0::1;7577:335:1::0;24288:38:0::1;24349:17;:6:::0;24358:8:::1;24349:17;:::i;:::-;24337:9;:29:::0;-1:-1:-1;24220:154:0:o;6833:94::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;6898:21:::1;6916:1;6898:9;:21::i;24656:183::-:0;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24735:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;24734:19;24726:69;;;::::0;-1:-1:-1;;;24726:69:0;;8292:2:1;24726:69:0::1;::::0;::::1;8274:21:1::0;8331:2;8311:18;;;8304:30;8370:34;8350:18;;;8343:62;-1:-1:-1;;;8421:18:1;;;8414:35;8466:19;;24726:69:0::1;8090:401:1::0;24726:69:0::1;-1:-1:-1::0;;;;;24806:18:0::1;;::::0;;;:9:::1;:18;::::0;;;;:25;;-1:-1:-1;;24806:25:0::1;24827:4;24806:25;::::0;;24656:183::o;27469:81::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;27522:13:::1;:20:::0;;-1:-1:-1;;27522:20:0::1;;;::::0;;27469:81::o;23821:127::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;7605:7;;-1:-1:-1;;;7605:7:0;;;;23874:9:::1;23866:55;;;::::0;-1:-1:-1;;;23866:55:0;;8698:2:1;23866:55:0::1;::::0;::::1;8680:21:1::0;8737:2;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;-1:-1:-1;;;8827:18:1;;;8820:31;8868:19;;23866:55:0::1;8496:397:1::0;23866:55:0::1;23932:8;:6;:8::i;20442:2529::-:0;20524:16;;;20538:1;20524:16;;;;;;;;20496:25;;20524:16;;;;;;;;;;-1:-1:-1;20524:16:0;20496:44;;20573:4;20551:8;20560:1;20551:11;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1;;;;;20551:27:0;;;-1:-1:-1;;;;;20551:27:0;;;;;20603:17;;;;;;;;;-1:-1:-1;;;;;20603:17:0;-1:-1:-1;;;;;20603:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20589:8;20598:1;20589:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20589:38:0;;;:11;;;;;;;;;:38;20659:17;;20703:15;;20691:9;;20640:16;;20659:17;;;;;;;;:31;;20691:27;;;:::i;:::-;20720:8;20659:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20659:70:0;;;;;;;;;;;;:::i;:::-;20730:1;20659:73;;;;;;;;:::i;:::-;;;;;;;20640:92;;20847:8;20826:18;:29;;;;20884:13;;20872:8;:25;20868:2094;;21004:15;;20937:21;;20914:20;;21004:19;;21022:1;;21004:19;:::i;:::-;20992:9;;:31;;;;:::i;:::-;21063:13;:22;;;21134:17;;21063:22;;-1:-1:-1;21102:59:0;;21119:4;;21134:17;;;-1:-1:-1;;;;;21134:17:0;21063:22;21102:8;:59::i;:::-;21178:17;;:192;;-1:-1:-1;;;21178:192:0;;:17;;;;-1:-1:-1;;;;;21178:17:0;;:39;;:192;;21236:6;;21261:1;;21281:8;;21316:4;;21340:15;;21178:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21178:192:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;21387:17:0;21407:36;21431:12;21407:21;:36;:::i;:::-;21387:56;;21502:9;21483:16;:28;;;;21528:22;21571:1;21553:15;;:19;;;;:::i;:::-;21528:44;;21587:20;21693:8;21672:15;;21660:9;;:27;;;;:::i;:::-;21643:1;21625:15;;:19;;;;:::i;:::-;:30;;21647:8;21625:30;:::i;:::-;21624:64;;;;:::i;:::-;21611:78;;:9;:78;:::i;:::-;21610:91;;;;:::i;:::-;21587:114;;21718:14;21808:8;21787:15;;21775:9;;:27;;;;:::i;:::-;21750:9;;:20;;21762:8;21750:20;:::i;:::-;21749:54;;;;:::i;:::-;21736:68;;:9;:68;:::i;:::-;21735:81;;;;:::i;:::-;21718:98;;21833:67;21850:4;21865:17;;;;;;;;;-1:-1:-1;;;;;21865:17:0;21885:14;21833:8;:67::i;:::-;21917:17;;;;;;;;;-1:-1:-1;;;;;21917:17:0;-1:-1:-1;;;;;21917:33:0;;21959:12;21999:4;22023:14;22056:1;22076;22096:10;:23;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21917:251:0;;;;;;;-1:-1:-1;;;;;12331:15:1;;;21917:251:0;;;12313:34:1;12363:18;;;12356:34;;;;12406:18;;;12399:34;;;;12449:18;;;12442:34;22096:23:0;;12492:19:1;;;12485:44;22138:15:0;12545:19:1;;;12538:35;12247:19;;21917:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22185:23;22253:14;22244:6;:23;;;;:::i;:::-;22224:15;;22212:9;;:27;;;;:::i;:::-;22211:57;;;;:::i;:::-;22308:22;:40;;;22185:83;-1:-1:-1;22369:19:0;;22365:120;;22409:60;22427:4;22434:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;22434:17:0;22453:15;22409:9;:60::i;:::-;22504:12;22521:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;22521:17:0;;22552:6;;22521:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22503:60;;;22586:7;22578:50;;;;-1:-1:-1;;;22578:50:0;;13307:2:1;22578:50:0;;;13289:21:1;13346:2;13326:18;;;13319:30;13385:32;13365:18;;;13358:60;13435:18;;22578:50:0;13105:354:1;22578:50:0;22687:1;22662:21;22671:12;22662:6;:21;:::i;:::-;22649:35;;:9;:35;:::i;:::-;:39;22645:240;;;22710:13;22728:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;22728:17:0;22772:21;22781:12;22772:6;:21;:::i;:::-;22759:35;;:9;:35;:::i;:::-;22728:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22709:90;;;22826:8;22818:51;;;;-1:-1:-1;;;22818:51:0;;13307:2:1;22818:51:0;;;13289:21:1;13346:2;13326:18;;;13319:30;13385:32;13365:18;;;13358:60;13435:18;;22818:51:0;13105:354:1;22818:51:0;22690:195;22645:240;-1:-1:-1;;22913:1:0;22901:9;:13;;;22929:15;:19;-1:-1:-1;;;;;;20868:2094:0;20485:2486;;20442:2529::o;1933:104::-;1989:13;2022:7;2015:14;;;;;:::i;27618:83::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;27672:13:::1;:21:::0;;-1:-1:-1;;27672:21:0::1;::::0;;27618:83::o;3623:401::-;1291:10;3716:4;3760:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3760:34:0;;;;;;;;;;3813:35;;;;3805:85;;;;-1:-1:-1;;;3805:85:0;;13666:2:1;3805:85:0;;;13648:21:1;13705:2;13685:18;;;13678:30;13744:34;13724:18;;;13717:62;-1:-1:-1;;;13795:18:1;;;13788:35;13840:19;;3805:85:0;13464:401:1;3805:85:0;3918:67;1291:10;3941:7;3969:15;3950:16;:34;3918:8;:67::i;:::-;-1:-1:-1;4012:4:0;;3623:401;-1:-1:-1;;;3623:401:0:o;2397:175::-;2483:4;2500:42;1291:10;2524:9;2535:6;2500:9;:42::i;25442:177::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;25518:19:::1;25529:7;25518:10;:19::i;:::-;25510:62;;;::::0;-1:-1:-1;;;25510:62:0;;14072:2:1;25510:62:0::1;::::0;::::1;14054:21:1::0;14111:2;14091:18;;;14084:30;14150:32;14130:18;;;14123:60;14200:18;;25510:62:0::1;13870:354:1::0;25510:62:0::1;-1:-1:-1::0;;;;;25583:20:0::1;25606:5;25583:20:::0;;;:11:::1;:20;::::0;;;;:28;;-1:-1:-1;;25583:28:0::1;::::0;;25442:177::o;27292:110::-;-1:-1:-1;;;;;27374:20:0;27350:4;27374:20;;;:11;:20;;;;;;;;;27292:110::o;26838:138::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;26896:9:::1;::::0;::::1;;26888:52;;;::::0;-1:-1:-1;;;26888:52:0;;14431:2:1;26888:52:0::1;::::0;::::1;14413:21:1::0;14470:2;14450:18;;;14443:30;14509:32;14489:18;;;14482:60;14559:18;;26888:52:0::1;14229:354:1::0;26888:52:0::1;26951:9;:17:::0;;-1:-1:-1;;26951:17:0::1;::::0;;26838:138::o;24927:180::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25006:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;24998:64;;;::::0;-1:-1:-1;;;24998:64:0;;14790:2:1;24998:64:0::1;::::0;::::1;14772:21:1::0;14829:2;14809:18;;;14802:30;14868:34;14848:18;;;14841:62;-1:-1:-1;;;14919:18:1;;;14912:31;14960:19;;24998:64:0::1;14588:397:1::0;24998:64:0::1;-1:-1:-1::0;;;;;25073:18:0::1;25094:5;25073:18:::0;;;:9:::1;:18;::::0;;;;:26;;-1:-1:-1;;25073:26:0::1;::::0;;24927:180::o;26112:97::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;26196:3:::1;26176:10;:17;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:23;;-1:-1:-1;;;;;26176:23:0;;;::::1;-1:-1:-1::0;;;;;;26176:23:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;26112:97:0:o;6937:192::-;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7026:22:0;::::1;7018:73;;;::::0;-1:-1:-1;;;7018:73:0;;15192:2:1;7018:73:0::1;::::0;::::1;15174:21:1::0;15231:2;15211:18;;;15204:30;15270:34;15250:18;;;15243:62;-1:-1:-1;;;15321:18:1;;;15314:36;15367:19;;7018:73:0::1;14990:402:1::0;7018:73:0::1;7102:19;7112:8;7102:9;:19::i;26217:362::-:0;6681:6;;-1:-1:-1;;;;;6681:6:0;1291:10;6743:23;6735:68;;;;-1:-1:-1;;;6735:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26295:22:0;::::1;26291:124;;6681:6:::0;;26334:48:::1;::::0;-1:-1:-1;;;;;6681:6:0;;;;26360:21:::1;26334:48:::0;::::1;;;::::0;::::1;::::0;;;26360:21;6681:6;26334:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;26291:124;26488:35;::::0;-1:-1:-1;;;26488:35:0;;26517:4:::1;26488:35;::::0;::::1;4064:51:1::0;26452:6:0;;26425:17:::1;::::0;-1:-1:-1;;;;;26488:20:0;::::1;::::0;::::1;::::0;4037:18:1;;26488:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26470:53;;26534:10;-1:-1:-1::0;;;;;26534:19:0::1;;26554:7;6681:6:::0;;-1:-1:-1;;;;;6681:6:0;;6608:87;26554:7:::1;26534:37;::::0;-1:-1:-1;;;;;;26534:37:0::1;::::0;;;;;;-1:-1:-1;;;;;15778:32:1;;;26534:37:0::1;::::0;::::1;15760:51:1::0;15827:18;;;15820:34;;;15733:18;;26534:37:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26278:301;;26217:362:::0;:::o;5759:380::-;-1:-1:-1;;;;;5895:19:0;;5887:68;;;;-1:-1:-1;;;5887:68:0;;16349:2:1;5887:68:0;;;16331:21:1;16388:2;16368:18;;;16361:30;16427:34;16407:18;;;16400:62;-1:-1:-1;;;16478:18:1;;;16471:34;16522:19;;5887:68:0;16147:400:1;5887:68:0;-1:-1:-1;;;;;5974:21:0;;5966:68;;;;-1:-1:-1;;;5966:68:0;;16754:2:1;5966:68:0;;;16736:21:1;16793:2;16773:18;;;16766:30;16832:34;16812:18;;;16805:62;-1:-1:-1;;;16883:18:1;;;16876:32;16925:19;;5966:68:0;16552:398:1;5966:68:0;-1:-1:-1;;;;;6047:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6099:32;;2795:25:1;;;6099:32:0;;2768:18:1;6099:32:0;;;;;;;5759:380;;;:::o;22981:585::-;7605:7;;-1:-1:-1;;;7605:7:0;;;;23130:9;23122:56;;;;-1:-1:-1;;;23122:56:0;;17157:2:1;23122:56:0;;;17139:21:1;17196:2;17176:18;;;17169:30;17235:34;17215:18;;;17208:62;-1:-1:-1;;;17286:18:1;;;17279:32;17328:19;;23122:56:0;16955:398:1;23122:56:0;23212:10;27141:4;27165:18;;;:9;:18;;;;;;;;23197:26;23189:64;;;;-1:-1:-1;;;23189:64:0;;17560:2:1;23189:64:0;;;17542:21:1;17599:2;17579:18;;;17572:30;-1:-1:-1;;;17618:18:1;;;17611:55;17683:18;;23189:64:0;17358:349:1;23189:64:0;-1:-1:-1;;;;;27165:18:0;;27141:4;27165:18;;;:9;:18;;;;;;;;23272:25;23264:66;;;;-1:-1:-1;;;23264:66:0;;17914:2:1;23264:66:0;;;17896:21:1;17953:2;17933:18;;;17926:30;17992;17972:18;;;17965:58;18040:18;;23264:66:0;17712:352:1;23264:66:0;23364:9;27141:4;27165:18;;;:9;:18;;;;;;;;23349:25;23341:63;;;;-1:-1:-1;;;23341:63:0;;17560:2:1;23341:63:0;;;17542:21:1;17599:2;17579:18;;;17572:30;-1:-1:-1;;;17618:18:1;;;17611:55;17683:18;;23341:63:0;17358:349:1;23341:63:0;23421:9;;;;23417:87;;;23456:36;23466:6;23474:9;23485:6;23456:9;:36::i;:::-;23447:45;;23417:87;23516:42;23532:6;23540:9;23551:6;23516:15;:42::i;:::-;22981:585;;;:::o;18667:1767::-;18745:7;18772:16;18783:4;18772:10;:16::i;:::-;18771:17;:36;;;;;18793:14;18804:2;18793:10;:14::i;:::-;18792:15;18771:36;18767:1634;;;18870:13;;18824:11;;-1:-1:-1;;;;;18870:13:0;;;18854:30;;;;18850:1144;;18939:11;;18921:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;;18912:6;:24;;;;:::i;:::-;:38;;;;:::i;:::-;18905:45;;;;:::i;:::-;;;19009:11;;18985:8;:21;;;;;:::i;:::-;;;;;;;;;;;;;;18976:6;:30;;;;:::i;:::-;:44;;;;:::i;:::-;18969:51;;;;:::i;:::-;;;19081:11;;19063:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;;19054:6;:24;;;;:::i;:::-;:38;;;;:::i;:::-;19041:9;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;;19163:11:0;;19139:21;;:8;;:21;;;:::i;:::-;;;;;;;;;;;;;;19130:6;:30;;;;:::i;:::-;:44;;;;:::i;:::-;19111:15;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;19199:7:0;;19195:142;;19231:35;19241:4;19255;19262:3;19231:9;:35::i;:::-;18850:1144;;;19376:13;;-1:-1:-1;;;;;19376:13:0;;;19362:28;;;;19358:636;;19448:11;;19429:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;;19420:6;:25;;;;:::i;:::-;:39;;;;:::i;:::-;19413:46;;;;:::i;:::-;;;19519:11;;19494:9;:22;;;;;:::i;:::-;;;;;;;;;;;;;;19485:6;:31;;;;:::i;:::-;:45;;;;:::i;:::-;19478:52;;;;:::i;:::-;;;19592:11;;19573:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;;19564:6;:25;;;;:::i;:::-;:39;;;;:::i;:::-;19551:9;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;19675:11:0;;19650:22;;:9;;:22;;;:::i;:::-;;;;;;;;;;;;;;19641:6;:31;;;;:::i;:::-;:45;;;;:::i;:::-;19622:15;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;19711:7:0;;19707:91;;19743:35;19753:4;19767;19774:3;19743:9;:35::i;:::-;19818:14;19847:15;;19835:9;;:27;;;;:::i;:::-;19818:44;;19885:6;19895:1;19885:11;19881:30;;19905:6;19898:13;;;;;;19881:30;19935:13;;;;;;;19932:44;;;19950:26;:24;:26::i;:::-;19392:602;19358:636;20010:13;20020:3;20010:13;;:::i;:::-;;;20061;20071:2;-1:-1:-1;;;;;2363:18:0;2336:7;2363:18;;;;;;;;;;;;2262:127;20061:13;20040:18;:34;;;20089:13;:22;;;20153:34;;20105:6;;20153:34;:::i;:::-;20126:24;:61;20221:9;;20202:16;:28;20265:13;;-1:-1:-1;;;;;20251:28:0;;;20265:13;;20251:28;20247:141;;20334:9;;20324:6;20308:13;20318:2;-1:-1:-1;;;;;2363:18:0;2336:7;2363:18;;;;;;;;;;;;2262:127;20308:13;:22;;;;:::i;:::-;:35;;20300:72;;;;-1:-1:-1;;;20300:72:0;;18271:2:1;20300:72:0;;;18253:21:1;18310:2;18290:18;;;18283:30;18349:26;18329:18;;;18322:54;18393:18;;20300:72:0;18069:348:1;20300:72:0;18809:1592;18767:1634;-1:-1:-1;20420:6:0;18667:1767;-1:-1:-1;;18667:1767:0:o;7962:120::-;7605:7;;-1:-1:-1;;;7605:7:0;;;;7767:41;;;;-1:-1:-1;;;7767:41:0;;18624:2:1;7767:41:0;;;18606:21:1;18663:2;18643:18;;;18636:30;-1:-1:-1;;;18682:18:1;;;18675:50;18742:18;;7767:41:0;18422:344:1;7767:41:0;8021:7:::1;:15:::0;;-1:-1:-1;;;;8021:15:0::1;::::0;;8052:22:::1;1291:10:::0;8061:12:::1;8052:22;::::0;-1:-1:-1;;;;;4082:32:1;;;4064:51;;4052:2;4037:18;8052:22:0::1;;;;;;;7962:120::o:0;5170:579::-;-1:-1:-1;;;;;5254:21:0;;5246:67;;;;-1:-1:-1;;;5246:67:0;;18973:2:1;5246:67:0;;;18955:21:1;19012:2;18992:18;;;18985:30;19051:34;19031:18;;;19024:62;-1:-1:-1;;;19102:18:1;;;19095:31;19143:19;;5246:67:0;18771:397:1;5246:67:0;-1:-1:-1;;;;;5413:18:0;;5388:22;5413:18;;;;;;;;;;;5450:24;;;;5442:71;;;;-1:-1:-1;;;5442:71:0;;19375:2:1;5442:71:0;;;19357:21:1;19414:2;19394:18;;;19387:30;19453:34;19433:18;;;19426:62;-1:-1:-1;;;19504:18:1;;;19497:32;19546:19;;5442:71:0;19173:398:1;5442:71:0;-1:-1:-1;;;;;5541:18:0;;:9;:18;;;;;;;;;;5562:23;;;5541:44;;5603:12;:22;;5579:6;;5541:9;5603:22;;5579:6;;5603:22;:::i;:::-;;;;-1:-1:-1;;5643:37:0;;2795:25:1;;;5669:1:0;;-1:-1:-1;;;;;5643:37:0;;;;;2783:2:1;2768:18;5643:37:0;;;;;;;22981:585;;;:::o;7137:174::-;7213:6;;;-1:-1:-1;;;;;7230:17:0;;;-1:-1:-1;;;;;;7230:17:0;;;;;;;7263:40;;7213:6;;;7230:17;7213:6;;7263:40;;7194:16;;7263:40;7183:128;7137:174;:::o;7836:118::-;7605:7;;-1:-1:-1;;;7605:7:0;;;;7674:9;7666:38;;;;-1:-1:-1;;;7666:38:0;;19778:2:1;7666:38:0;;;19760:21:1;19817:2;19797:18;;;19790:30;-1:-1:-1;;;19836:18:1;;;19829:46;19892:18;;7666:38:0;19576:340:1;7666:38:0;7896:7:::1;:14:::0;;-1:-1:-1;;;;7896:14:0::1;-1:-1:-1::0;;;7896:14:0::1;::::0;;7926:20:::1;7933:12;1291:10:::0;;1211:98;4032:721;-1:-1:-1;;;;;4172:20:0;;4164:70;;;;-1:-1:-1;;;4164:70:0;;20123:2:1;4164:70:0;;;20105:21:1;20162:2;20142:18;;;20135:30;20201:34;20181:18;;;20174:62;-1:-1:-1;;;20252:18:1;;;20245:35;20297:19;;4164:70:0;19921:401:1;4164:70:0;-1:-1:-1;;;;;4253:23:0;;4245:71;;;;-1:-1:-1;;;4245:71:0;;20529:2:1;4245:71:0;;;20511:21:1;20568:2;20548:18;;;20541:30;20607:34;20587:18;;;20580:62;-1:-1:-1;;;20658:18:1;;;20651:33;20701:19;;4245:71:0;20327:399:1;4245:71:0;-1:-1:-1;;;;;4413:17:0;;4389:21;4413:17;;;;;;;;;;;4449:23;;;;4441:74;;;;-1:-1:-1;;;4441:74:0;;20933:2:1;4441:74:0;;;20915:21:1;20972:2;20952:18;;;20945:30;21011:34;20991:18;;;20984:62;-1:-1:-1;;;21062:18:1;;;21055:36;21108:19;;4441:74:0;20731:402:1;4441:74:0;-1:-1:-1;;;;;4543:17:0;;;:9;:17;;;;;;;;;;;4563:22;;;4543:42;;4603:20;;;;;;;;:30;;4579:6;;4543:9;4603:30;;4579:6;;4603:30;:::i;:::-;;;;;;;;4668:9;-1:-1:-1;;;;;4651:35:0;4660:6;-1:-1:-1;;;;;4651:35:0;;4679:6;4651:35;;;;2795:25:1;;2783:2;2768:18;;2649:177;4651:35:0;;;;;;;;4699:46;22981:585;14:248:1;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:131::-;-1:-1:-1;;;;;895:31:1;;885:42;;875:70;;941:1;938;931:12;956:315;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;1261:2;1246:18;;;;1233:32;;-1:-1:-1;;;956:315:1:o;1468:127::-;1529:10;1524:3;1520:20;1517:1;1510:31;1560:4;1557:1;1550:15;1584:4;1581:1;1574:15;1600:275;1671:2;1665:9;1736:2;1717:13;;-1:-1:-1;;1713:27:1;1701:40;;1771:18;1756:34;;1792:22;;;1753:62;1750:88;;;1818:18;;:::i;:::-;1854:2;1847:22;1600:275;;-1:-1:-1;1600:275:1:o;1880:764::-;1949:6;1980:2;2023;2011:9;2002:7;1998:23;1994:32;1991:52;;;2039:1;2036;2029:12;1991:52;2079:9;2066:23;2108:18;2149:2;2141:6;2138:14;2135:34;;;2165:1;2162;2155:12;2135:34;2203:6;2192:9;2188:22;2178:32;;2248:7;2241:4;2237:2;2233:13;2229:27;2219:55;;2270:1;2267;2260:12;2219:55;2306:2;2293:16;2328:2;2324;2321:10;2318:36;;;2334:18;;:::i;:::-;2376:53;2419:2;2400:13;;-1:-1:-1;;2396:27:1;2392:36;;2376:53;:::i;:::-;2363:66;;2452:2;2445:5;2438:17;2492:7;2487:2;2482;2478;2474:11;2470:20;2467:33;2464:53;;;2513:1;2510;2503:12;2464:53;2568:2;2563;2559;2555:11;2550:2;2543:5;2539:14;2526:45;2612:1;2591:14;;;2587:23;;;2580:34;;;;-1:-1:-1;2595:5:1;1880:764;-1:-1:-1;;;1880:764:1:o;2831:456::-;2908:6;2916;2924;2977:2;2965:9;2956:7;2952:23;2948:32;2945:52;;;2993:1;2990;2983:12;2945:52;3032:9;3019:23;3051:31;3076:5;3051:31;:::i;:::-;3101:5;-1:-1:-1;3158:2:1;3143:18;;3130:32;3171:33;3130:32;3171:33;:::i;:::-;2831:456;;3223:7;;-1:-1:-1;;;3277:2:1;3262:18;;;;3249:32;;2831:456::o;3292:247::-;3351:6;3404:2;3392:9;3383:7;3379:23;3375:32;3372:52;;;3420:1;3417;3410:12;3372:52;3459:9;3446:23;3478:31;3503:5;3478:31;:::i;3733:180::-;3792:6;3845:2;3833:9;3824:7;3820:23;3816:32;3813:52;;;3861:1;3858;3851:12;3813:52;-1:-1:-1;3884:23:1;;3733:180;-1:-1:-1;3733:180:1:o;4126:388::-;4194:6;4202;4255:2;4243:9;4234:7;4230:23;4226:32;4223:52;;;4271:1;4268;4261:12;4223:52;4310:9;4297:23;4329:31;4354:5;4329:31;:::i;:::-;4379:5;-1:-1:-1;4436:2:1;4421:18;;4408:32;4449:33;4408:32;4449:33;:::i;:::-;4501:7;4491:17;;;4126:388;;;;;:::o;4519:356::-;4721:2;4703:21;;;4740:18;;;4733:30;4799:34;4794:2;4779:18;;4772:62;4866:2;4851:18;;4519:356::o;4880:253::-;-1:-1:-1;;;5082:18:1;;5125:1;5116:11;;4880:253::o;5138:259::-;-1:-1:-1;;;5340:24:1;;5389:1;5380:11;;5138:259::o;5402:380::-;5481:1;5477:12;;;;5524;;;5545:61;;5599:4;5591:6;5587:17;5577:27;;5545:61;5652:2;5644:6;5641:14;5621:18;5618:38;5615:161;;5698:10;5693:3;5689:20;5686:1;5679:31;5733:4;5730:1;5723:15;5761:4;5758:1;5751:15;5615:161;;5402:380;;;:::o;6196:127::-;6257:10;6252:3;6248:20;6245:1;6238:31;6288:4;6285:1;6278:15;6312:4;6309:1;6302:15;6328:125;6393:9;;;6414:10;;;6411:36;;;6427:18;;:::i;7917:168::-;7990:9;;;8021;;8038:15;;;8032:22;;8018:37;8008:71;;8059:18;;:::i;8898:127::-;8959:10;8954:3;8950:20;8947:1;8940:31;8990:4;8987:1;8980:15;9014:4;9011:1;9004:15;9030:251;9100:6;9153:2;9141:9;9132:7;9128:23;9124:32;9121:52;;;9169:1;9166;9159:12;9121:52;9201:9;9195:16;9220:31;9245:5;9220:31;:::i;9286:461::-;9339:3;9377:5;9371:12;9404:6;9399:3;9392:19;9430:4;9459:2;9454:3;9450:12;9443:19;;9496:2;9489:5;9485:14;9517:1;9527:195;9541:6;9538:1;9535:13;9527:195;;;9606:13;;-1:-1:-1;;;;;9602:39:1;9590:52;;9662:12;;;;9697:15;;;;9638:1;9556:9;9527:195;;;-1:-1:-1;9738:3:1;;9286:461;-1:-1:-1;;;;;9286:461:1:o;9752:332::-;9959:6;9948:9;9941:25;10002:2;9997;9986:9;9982:18;9975:30;9922:4;10022:56;10074:2;10063:9;10059:18;10051:6;10022:56;:::i;:::-;10014:64;9752:332;-1:-1:-1;;;;9752:332:1:o;10089:936::-;10184:6;10215:2;10258;10246:9;10237:7;10233:23;10229:32;10226:52;;;10274:1;10271;10264:12;10226:52;10307:9;10301:16;10336:18;10377:2;10369:6;10366:14;10363:34;;;10393:1;10390;10383:12;10363:34;10431:6;10420:9;10416:22;10406:32;;10476:7;10469:4;10465:2;10461:13;10457:27;10447:55;;10498:1;10495;10488:12;10447:55;10527:2;10521:9;10549:2;10545;10542:10;10539:36;;;10555:18;;:::i;:::-;10601:2;10598:1;10594:10;10584:20;;10624:28;10648:2;10644;10640:11;10624:28;:::i;:::-;10686:15;;;10756:11;;;10752:20;;;10717:12;;;;10784:19;;;10781:39;;;10816:1;10813;10806:12;10781:39;10840:11;;;;10860:135;10876:6;10871:3;10868:15;10860:135;;;10942:10;;10930:23;;10893:12;;;;10973;;;;10860:135;;;11014:5;10089:936;-1:-1:-1;;;;;;;;10089:936:1:o;11030:217::-;11070:1;11096;11086:132;;11140:10;11135:3;11131:20;11128:1;11121:31;11175:4;11172:1;11165:15;11203:4;11200:1;11193:15;11086:132;-1:-1:-1;11232:9:1;;11030:217::o;11252:582::-;11551:6;11540:9;11533:25;11594:6;11589:2;11578:9;11574:18;11567:34;11637:3;11632:2;11621:9;11617:18;11610:31;11514:4;11658:57;11710:3;11699:9;11695:19;11687:6;11658:57;:::i;:::-;-1:-1:-1;;;;;11751:32:1;;;;11746:2;11731:18;;11724:60;-1:-1:-1;11815:3:1;11800:19;11793:35;11650:65;11252:582;-1:-1:-1;;;11252:582:1:o;11839:128::-;11906:9;;;11927:11;;;11924:37;;;11941:18;;:::i;12584:306::-;12672:6;12680;12688;12741:2;12729:9;12720:7;12716:23;12712:32;12709:52;;;12757:1;12754;12747:12;12709:52;12786:9;12780:16;12770:26;;12836:2;12825:9;12821:18;12815:25;12805:35;;12880:2;12869:9;12865:18;12859:25;12849:35;;12584:306;;;;;:::o;15397:184::-;15467:6;15520:2;15508:9;15499:7;15495:23;15491:32;15488:52;;;15536:1;15533;15526:12;15488:52;-1:-1:-1;15559:16:1;;15397:184;-1:-1:-1;15397:184:1:o;15865:277::-;15932:6;15985:2;15973:9;15964:7;15960:23;15956:32;15953:52;;;16001:1;15998;15991:12;15953:52;16033:9;16027:16;16086:5;16079:13;16072:21;16065:5;16062:32;16052:60;;16108:1;16105;16098:12

Swarm Source

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