ETH Price: $2,507.02 (-3.43%)

Token

Tagd AI (TAGD)
 

Overview

Max Total Supply

100,000,000 TAGD

Holders

5

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
316,128.675640393851338621 TAGD

Value
$0.00
0xf2fe01fb5df020e9299e8378ec400e2e2e1eb189
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:
TAGDAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-24
*/

/**

Twitter : https://twitter.com/Tagd_AI
Website : https://tagd.dev/


*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.21;

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

pragma solidity ^0.8.21;

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

    function WETH() external pure returns (address);

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

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

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

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

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

pragma solidity ^0.8.21;

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

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

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

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

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

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

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

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

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

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

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

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

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

pragma solidity ^0.8.21;

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

pragma solidity ^0.8.21;


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

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

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

pragma solidity ^0.8.21;

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

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

pragma solidity ^0.8.21;


abstract contract Ownable is Context {
    address private _owner;

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

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

    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 {
        _transferOwnership(address(0));
    }

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

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

pragma solidity ^0.8.21;


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 {}
}

pragma solidity ^0.8.21;

contract TAGDAI is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address private marketingWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public maxSwapAmount;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 private launchedAt;
    uint256 private launchedTime;
    uint256 public blocks;

    uint256 public buyTotalFees;

    uint256 public sellTotalFees;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    mapping(uint256 => uint256) private blockSwaps;

    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor() ERC20("Tagd AI", "TAGD") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

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

        uint256 totalSupply = 100000000 * 1e18; //100M

        maxTransactionAmount = 2000000 * 1e18; //2M
        maxWallet = 2000000 * 1e18; //2M
        swapTokensAtAmount = 200000 * 1e18;
        maxSwapAmount = 1000000 * 1e18; //1M

        marketingWallet = msg.sender;

        uint256 amountLP = totalSupply.mul(95).div(100);
        uint256 amountTeam = totalSupply.mul(5).div(100);

        _mint(address(this), amountLP); 
        _mint(msg.sender, amountTeam);

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

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

    receive() external payable {}

    function AddLP(address[] memory _whitelist) external payable onlyOwner {
        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        for(uint256 i; i < _whitelist.length; ++i){
            whitelistContract(_whitelist[i], true);
        }
    }

    function startTrading() external onlyOwner {
        
        blocks = 0;
        tradingActive = true;
        swapEnabled = true;
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        swapTokensAtAmount = newAmount * (10 ** 18);
    }

    function updateMaxSwap(uint256 newAmount) external onlyOwner {
        maxSwapAmount = newAmount * (10 ** 18);
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10 ** 18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10 ** 18);
    }

    function whitelistContract(address _whitelist, bool isWL) public onlyOwner {
        _isExcludedMaxTransactionAmount[_whitelist] = isWL;

        _isExcludedFromFees[_whitelist] = isWL;
    }

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

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

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

    function manualswap(uint256 amount) external {
        require(_msgSender() == marketingWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function manualsend() external {
        bool success;
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    // function updateBuyFees(uint256 _marketingFee) external onlyOwner {
    //     buyTotalFees = _marketingFee;
    // }

    // function updateSellFees(uint256 _marketingFee) external onlyOwner {
    //     sellTotalFees = _marketingFee;
    // }

    function updateFees(uint256 _buy, uint256 _sell) external onlyOwner {
        require(_buy <= 5, "Exceed the limit");
        require(_sell <= 5, "Exceed the limit");
        buyTotalFees = _buy;
        sellTotalFees = _sell;
    }

    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function airdropTokens(address[] calldata addresses, uint256[] calldata amounts) external {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i] * (10 ** 18));
        }
    }

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if ((launchedAt + blocks) >= block.number) {
                    // Starting Taxes
                    sellTotalFees = 30;
                    buyTotalFees = 30;
                }

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

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

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from]
                && !_isExcludedFromFees[to]
        ) {
            // Limit swaps per block
            if (blockSwaps[block.number] < 3) {
                swapping = true;

                swapBack();

                swapping = false;

                blockSwaps[block.number] = blockSwaps[block.number] + 1;
            }
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
            }

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

            amount -= fees;
        }

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

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > maxSwapAmount) {
            contractBalance = maxSwapAmount;
        }

        // Halve the amount of liquidity tokens

        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

        uint256 totalETH = address(this).balance;

        (success,) = address(marketingWallet).call{value: totalETH}("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address[]","name":"_whitelist","type":"address[]"}],"name":"AddLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","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":[],"name":"blocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600b805462ffffff191660011790553480156200001f575f80fd5b50604051806040016040528060078152602001665461676420414960c81b81525060405180604001604052806004815260200163151051d160e21b81525081600390816200006e9190620006c3565b5060046200007d8282620006c3565b5050506200009a620000946200035260201b60201c565b62000356565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000bc816001620003a7565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000105573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012b91906200078b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000177573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019d91906200078b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001e8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020e91906200078b565b6001600160a01b031660a081905262000229906001620003a7565b60a051620002399060016200041f565b6a01a784379d99db420000006007819055600955692a5a058fc295ed00000060085569d3c21bcecceda1000000600a55600680546001600160a01b031916331790556a52b7d2dcc80cd2e40000005f620002a260646200029b84605f62000472565b9062000488565b90505f620002b860646200029b85600562000472565b9050620002c6308362000495565b620002d2338262000495565b620002f1620002e96005546001600160a01b031690565b600162000577565b620002fe30600162000577565b6200030d61dead600162000577565b6200032c620003246005546001600160a01b031690565b6001620003a7565b62000339306001620003a7565b6200034861dead6001620003a7565b505050506200081e565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620003f55760405162461bcd60e51b815260206004820181905260248201525f8051602062002f1083398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f6200047f8284620007ce565b90505b92915050565b5f6200047f8284620007e8565b6001600160a01b038216620004ed5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003ec565b8060025f82825462000500919062000808565b90915550506001600160a01b0382165f90815260208190526040812080548392906200052e90849062000808565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620005c15760405162461bcd60e51b815260206004820181905260248201525f8051602062002f108339815191526044820152606401620003ec565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200064d57607f821691505b6020821081036200066c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200061f575f81815260208120601f850160051c810160208610156200069a5750805b601f850160051c820191505b81811015620006bb57828155600101620006a6565b505050505050565b81516001600160401b03811115620006df57620006df62000624565b620006f781620006f0845462000638565b8462000672565b602080601f8311600181146200072d575f8415620007155750858301515b5f19600386901b1c1916600185901b178555620006bb565b5f85815260208120601f198616915b828110156200075d578886015182559484019460019091019084016200073c565b50858210156200077b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200079c575f80fd5b81516001600160a01b0381168114620007b3575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620004825762000482620007ba565b5f826200080357634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620004825762000482620007ba565b60805160a051612698620008785f395f818161044601528181610e8e01526113a401525f818161033c0152818161125b015281816112850152818161137501528181611d3901528181611df00152611e2c01526126985ff3fe608060405260043610610278575f3560e01c8063881dce601161014a578063bbc0c742116100be578063d257b34f11610078578063d257b34f14610753578063d85ba06314610772578063dd62ed3e14610787578063e2f45605146107cb578063f2fde38b146107e0578063f8b45b05146107ff575f80fd5b8063bbc0c742146106ba578063c0246668146106d8578063c18bc195146106f7578063c856dd3014610716578063c8c8ebe414610729578063cce987d41461073e575f80fd5b80639a7a23d61161010f5780639a7a23d6146105f1578063a457c2d714610610578063a672990c1461062f578063a9059cbb1461064e578063aacebbe31461066d578063b62496f51461068c575f80fd5b8063881dce601461056d5780638da5cb5b1461058c578063924de9b7146105a957806395d89b41146105c8578063967ff23e146105dc575f80fd5b806339509351116101ec5780636fc3eaec116101a65780636fc3eaec146104d4578063706f6937146104e857806370a0823114610507578063715018a614610526578063751039fc1461053a5780637571336a1461054e575f80fd5b8063395093511461041657806349bd5a5e146104355780634a62bb65146104685780636a486a8e146104815780636db79437146104965780636ddd1713146104b5575f80fd5b806318160ddd1161023d57806318160ddd14610376578063203e727e1461039457806323b872dd146103b357806327c8f835146103d2578063293230b8146103e7578063313ce567146103fb575f80fd5b806306fdde0314610283578063095ea7b3146102ad57806310d5de53146102dc578063150074a31461030a5780631694505e1461032b575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b50610297610814565b6040516102a4919061210d565b60405180910390f35b3480156102b8575f80fd5b506102cc6102c736600461217c565b6108a4565b60405190151581526020016102a4565b3480156102e7575f80fd5b506102cc6102f63660046121a6565b60126020525f908152604090205460ff1681565b348015610315575f80fd5b506103296103243660046121c1565b6108ba565b005b348015610336575f80fd5b5061035e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102a4565b348015610381575f80fd5b506002545b6040519081526020016102a4565b34801561039f575f80fd5b506103296103ae3660046121c1565b610905565b3480156103be575f80fd5b506102cc6103cd3660046121d8565b6109e2565b3480156103dd575f80fd5b5061035e61dead81565b3480156103f2575f80fd5b50610329610a8a565b348015610406575f80fd5b50604051601281526020016102a4565b348015610421575f80fd5b506102cc61043036600461217c565b610ad3565b348015610440575f80fd5b5061035e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610473575f80fd5b50600b546102cc9060ff1681565b34801561048c575f80fd5b5061038660105481565b3480156104a1575f80fd5b506103296104b0366004612216565b610b0e565b3480156104c0575f80fd5b50600b546102cc9062010000900460ff1681565b3480156104df575f80fd5b50610329610bcb565b3480156104f3575f80fd5b5061032961050236600461227e565b610c20565b348015610512575f80fd5b506103866105213660046121a6565b610cb7565b348015610531575f80fd5b50610329610cd1565b348015610545575f80fd5b50610329610d06565b348015610559575f80fd5b506103296105683660046122f2565b610d3c565b348015610578575f80fd5b506103296105873660046121c1565b610d90565b348015610597575f80fd5b506005546001600160a01b031661035e565b3480156105b4575f80fd5b506103296105c3366004612329565b610e0d565b3480156105d3575f80fd5b50610297610e53565b3480156105e7575f80fd5b50610386600e5481565b3480156105fc575f80fd5b5061032961060b3660046122f2565b610e62565b34801561061b575f80fd5b506102cc61062a36600461217c565b610f41565b34801561063a575f80fd5b506103296106493660046122f2565b610fd9565b348015610659575f80fd5b506102cc61066836600461217c565b611040565b348015610678575f80fd5b506103296106873660046121a6565b61104c565b348015610697575f80fd5b506102cc6106a63660046121a6565b60136020525f908152604090205460ff1681565b3480156106c5575f80fd5b50600b546102cc90610100900460ff1681565b3480156106e3575f80fd5b506103296106f23660046122f2565b6110d2565b348015610702575f80fd5b506103296107113660046121c1565b61115a565b610329610724366004612358565b61122b565b348015610734575f80fd5b5061038660075481565b348015610749575f80fd5b50610386600a5481565b34801561075e575f80fd5b5061032961076d3660046121c1565b61144f565b34801561077d575f80fd5b50610386600f5481565b348015610792575f80fd5b506103866107a1366004612418565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107d6575f80fd5b5061038660085481565b3480156107eb575f80fd5b506103296107fa3660046121a6565b611491565b34801561080a575f80fd5b5061038660095481565b60606003805461082390612444565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90612444565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f6108b0338484611529565b5060015b92915050565b6005546001600160a01b031633146108ed5760405162461bcd60e51b81526004016108e49061247c565b60405180910390fd5b6108ff81670de0b6b3a76400006124c5565b600a5550565b6005546001600160a01b0316331461092f5760405162461bcd60e51b81526004016108e49061247c565b670de0b6b3a76400006103e861094460025490565b61094f9060016124c5565b61095991906124dc565b61096391906124dc565b8110156109ca5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016108e4565b6109dc81670de0b6b3a76400006124c5565b60075550565b5f6109ee84848461164c565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a725760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108e4565b610a7f8533858403611529565b506001949350505050565b6005546001600160a01b03163314610ab45760405162461bcd60e51b81526004016108e49061247c565b5f600e55600b805462ffff0019166201010017905543600c5542600d55565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916108b0918590610b099086906124fb565b611529565b6005546001600160a01b03163314610b385760405162461bcd60e51b81526004016108e49061247c565b6005821115610b7c5760405162461bcd60e51b815260206004820152601060248201526f115e18d95959081d1a19481b1a5b5a5d60821b60448201526064016108e4565b6005811115610bc05760405162461bcd60e51b815260206004820152601060248201526f115e18d95959081d1a19481b1a5b5a5d60821b60448201526064016108e4565b600f91909155601055565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610c15576040519150601f19603f3d011682016040523d82523d5f602084013e610c1a565b606091505b50505050565b8215801590610c2e57508083145b610c36575f80fd5b335f5b84811015610caf57610c9d82878784818110610c5757610c5761250e565b9050602002016020810190610c6c91906121a6565b868685818110610c7e57610c7e61250e565b90506020020135670de0b6b3a7640000610c9891906124c5565b61164c565b80610ca781612522565b915050610c39565b505050505050565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b03163314610cfb5760405162461bcd60e51b81526004016108e49061247c565b610d045f611c93565b565b6005546001600160a01b03163314610d305760405162461bcd60e51b81526004016108e49061247c565b600b805460ff19169055565b6005546001600160a01b03163314610d665760405162461bcd60e51b81526004016108e49061247c565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6006546001600160a01b0316336001600160a01b031614610daf575f80fd5b610db830610cb7565b8111158015610dc657505f81115b610e015760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016108e4565b610e0a81611ce4565b50565b6005546001600160a01b03163314610e375760405162461bcd60e51b81526004016108e49061247c565b600b8054911515620100000262ff000019909216919091179055565b60606004805461082390612444565b6005546001600160a01b03163314610e8c5760405162461bcd60e51b81526004016108e49061247c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610f335760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108e4565b610f3d8282611e92565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610fc25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108e4565b610fcf3385858403611529565b5060019392505050565b6005546001600160a01b031633146110035760405162461bcd60e51b81526004016108e49061247c565b6001600160a01b039091165f908152601260209081526040808320805494151560ff19958616811790915560119092529091208054909216179055565b5f6108b033848461164c565b6005546001600160a01b031633146110765760405162461bcd60e51b81526004016108e49061247c565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110fc5760405162461bcd60e51b81526004016108e49061247c565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111845760405162461bcd60e51b81526004016108e49061247c565b670de0b6b3a76400006103e861119960025490565b6111a49060056124c5565b6111ae91906124dc565b6111b891906124dc565b8110156112135760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016108e4565b61122581670de0b6b3a76400006124c5565b60095550565b6005546001600160a01b031633146112555760405162461bcd60e51b81526004016108e49061247c565b611283307f0000000000000000000000000000000000000000000000000000000000000000610b0960025490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d71947306112bd30610cb7565b5f806112d16005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611337573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061135c919061253a565b505060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f000000000000000000000000000000000000000000000000000000000000000016915063095ea7b3906044016020604051808303815f875af11580156113eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140f9190612565565b505f5b8151811015610f3d5761143f8282815181106114305761143061250e565b60200260200101516001610fd9565b61144881612522565b9050611412565b6005546001600160a01b031633146114795760405162461bcd60e51b81526004016108e49061247c565b61148b81670de0b6b3a76400006124c5565b60085550565b6005546001600160a01b031633146114bb5760405162461bcd60e51b81526004016108e49061247c565b6001600160a01b0381166115205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e4565b610e0a81611c93565b6001600160a01b03831661158b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108e4565b6001600160a01b0382166115ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108e4565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116725760405162461bcd60e51b81526004016108e490612580565b6001600160a01b0382166116c85760405162461bcd60e51b815260206004820181905260248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526064016108e4565b805f036116df576116da83835f611ee5565b505050565b600b5460ff1615611a4f576005546001600160a01b0384811691161480159061171657506005546001600160a01b03838116911614155b801561172a57506001600160a01b03821615155b801561174157506001600160a01b03821661dead14155b80156117575750600554600160a01b900460ff16155b15611a4f5743600e54600c5461176d91906124fb565b1061177d57601e6010819055600f555b600b54610100900460ff1661180e576001600160a01b0383165f9081526011602052604090205460ff16806117c957506001600160a01b0382165f9081526011602052604090205460ff165b61180e5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108e4565b6001600160a01b0383165f9081526013602052604090205460ff16801561184d57506001600160a01b0382165f9081526012602052604090205460ff16155b15611921576007548111156118c25760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016108e4565b6009546118ce83610cb7565b6118d890836124fb565b111561191c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108e4565b611a4f565b6001600160a01b0382165f9081526013602052604090205460ff16801561196057506001600160a01b0383165f9081526012602052604090205460ff16155b156119d65760075481111561191c5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016108e4565b6001600160a01b0382165f9081526012602052604090205460ff16611a4f57600954611a0183610cb7565b611a0b90836124fb565b1115611a4f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108e4565b5f611a5930610cb7565b60085490915081108015908190611a785750600b5462010000900460ff165b8015611a8e5750600554600160a01b900460ff16155b8015611ab257506001600160a01b0385165f9081526013602052604090205460ff16155b8015611ad657506001600160a01b0385165f9081526011602052604090205460ff16155b8015611afa57506001600160a01b0384165f9081526011602052604090205460ff16155b15611b6857435f9081526014602052604090205460031115611b68576005805460ff60a01b1916600160a01b179055611b31612074565b6005805460ff60a01b19169055435f90815260146020526040902054611b589060016124fb565b435f908152601460205260409020555b6005546001600160a01b0386165f9081526011602052604090205460ff600160a01b909204821615911680611bb457506001600160a01b0385165f9081526011602052604090205460ff165b15611bbc57505f5b5f8115611c7f576001600160a01b0386165f9081526013602052604090205460ff168015611beb57505f601054115b15611c1757611c106064611c0a601054886120f090919063ffffffff16565b90612102565b9050611c61565b6001600160a01b0387165f9081526013602052604090205460ff168015611c3f57505f600f54115b15611c6157611c5e6064611c0a600f54886120f090919063ffffffff16565b90505b8015611c7257611c72873083611ee5565b611c7c81866125c5565b94505b611c8a878787611ee5565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611d1757611d1761250e565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db791906125d8565b81600181518110611dca57611dca61250e565b60200260200101906001600160a01b031690816001600160a01b031681525050611e15307f000000000000000000000000000000000000000000000000000000000000000084611529565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611e699085905f908690309042906004016125f3565b5f604051808303815f87803b158015611e80575f80fd5b505af1158015610caf573d5f803e3d5ffd5b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611f0b5760405162461bcd60e51b81526004016108e490612580565b6001600160a01b038216611f6d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108e4565b6001600160a01b0383165f9081526020819052604090205481811015611fe45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108e4565b6001600160a01b038085165f9081526020819052604080822085850390559185168152908120805484929061201a9084906124fb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161206691815260200190565b60405180910390a350505050565b5f61207e30610cb7565b90505f815f0361208c575050565b600a5482111561209c57600a5491505b816120a681611ce4565b60065460405147916001600160a01b03169082905f81818185875af1925050503d805f8114611c8a576040519150601f19603f3d011682016040523d82523d5f602084013e611c8a565b5f6120fb82846124c5565b9392505050565b5f6120fb82846124dc565b5f6020808352835180828501525f5b818110156121385785810183015185820160400152820161211c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e0a575f80fd5b803561217781612158565b919050565b5f806040838503121561218d575f80fd5b823561219881612158565b946020939093013593505050565b5f602082840312156121b6575f80fd5b81356120fb81612158565b5f602082840312156121d1575f80fd5b5035919050565b5f805f606084860312156121ea575f80fd5b83356121f581612158565b9250602084013561220581612158565b929592945050506040919091013590565b5f8060408385031215612227575f80fd5b50508035926020909101359150565b5f8083601f840112612246575f80fd5b50813567ffffffffffffffff81111561225d575f80fd5b6020830191508360208260051b8501011115612277575f80fd5b9250929050565b5f805f8060408587031215612291575f80fd5b843567ffffffffffffffff808211156122a8575f80fd5b6122b488838901612236565b909650945060208701359150808211156122cc575f80fd5b506122d987828801612236565b95989497509550505050565b8015158114610e0a575f80fd5b5f8060408385031215612303575f80fd5b823561230e81612158565b9150602083013561231e816122e5565b809150509250929050565b5f60208284031215612339575f80fd5b81356120fb816122e5565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215612369575f80fd5b823567ffffffffffffffff80821115612380575f80fd5b818501915085601f830112612393575f80fd5b8135818111156123a5576123a5612344565b8060051b604051601f19603f830116810181811085821117156123ca576123ca612344565b6040529182528482019250838101850191888311156123e7575f80fd5b938501935b8285101561240c576123fd8561216c565b845293850193928501926123ec565b98975050505050505050565b5f8060408385031215612429575f80fd5b823561243481612158565b9150602083013561231e81612158565b600181811c9082168061245857607f821691505b60208210810361247657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108b4576108b46124b1565b5f826124f657634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156108b4576108b46124b1565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612533576125336124b1565b5060010190565b5f805f6060848603121561254c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215612575575f80fd5b81516120fb816122e5565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b818103818111156108b4576108b46124b1565b5f602082840312156125e8575f80fd5b81516120fb81612158565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126415784516001600160a01b03168352938301939183019160010161261c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220886e7158817909f1efeb7fae3ea2c693d5b4021610a47aee028913e146754d4164736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x608060405260043610610278575f3560e01c8063881dce601161014a578063bbc0c742116100be578063d257b34f11610078578063d257b34f14610753578063d85ba06314610772578063dd62ed3e14610787578063e2f45605146107cb578063f2fde38b146107e0578063f8b45b05146107ff575f80fd5b8063bbc0c742146106ba578063c0246668146106d8578063c18bc195146106f7578063c856dd3014610716578063c8c8ebe414610729578063cce987d41461073e575f80fd5b80639a7a23d61161010f5780639a7a23d6146105f1578063a457c2d714610610578063a672990c1461062f578063a9059cbb1461064e578063aacebbe31461066d578063b62496f51461068c575f80fd5b8063881dce601461056d5780638da5cb5b1461058c578063924de9b7146105a957806395d89b41146105c8578063967ff23e146105dc575f80fd5b806339509351116101ec5780636fc3eaec116101a65780636fc3eaec146104d4578063706f6937146104e857806370a0823114610507578063715018a614610526578063751039fc1461053a5780637571336a1461054e575f80fd5b8063395093511461041657806349bd5a5e146104355780634a62bb65146104685780636a486a8e146104815780636db79437146104965780636ddd1713146104b5575f80fd5b806318160ddd1161023d57806318160ddd14610376578063203e727e1461039457806323b872dd146103b357806327c8f835146103d2578063293230b8146103e7578063313ce567146103fb575f80fd5b806306fdde0314610283578063095ea7b3146102ad57806310d5de53146102dc578063150074a31461030a5780631694505e1461032b575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b50610297610814565b6040516102a4919061210d565b60405180910390f35b3480156102b8575f80fd5b506102cc6102c736600461217c565b6108a4565b60405190151581526020016102a4565b3480156102e7575f80fd5b506102cc6102f63660046121a6565b60126020525f908152604090205460ff1681565b348015610315575f80fd5b506103296103243660046121c1565b6108ba565b005b348015610336575f80fd5b5061035e7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102a4565b348015610381575f80fd5b506002545b6040519081526020016102a4565b34801561039f575f80fd5b506103296103ae3660046121c1565b610905565b3480156103be575f80fd5b506102cc6103cd3660046121d8565b6109e2565b3480156103dd575f80fd5b5061035e61dead81565b3480156103f2575f80fd5b50610329610a8a565b348015610406575f80fd5b50604051601281526020016102a4565b348015610421575f80fd5b506102cc61043036600461217c565b610ad3565b348015610440575f80fd5b5061035e7f000000000000000000000000a4799d2246913dc9a3397886558c7d671abcec7881565b348015610473575f80fd5b50600b546102cc9060ff1681565b34801561048c575f80fd5b5061038660105481565b3480156104a1575f80fd5b506103296104b0366004612216565b610b0e565b3480156104c0575f80fd5b50600b546102cc9062010000900460ff1681565b3480156104df575f80fd5b50610329610bcb565b3480156104f3575f80fd5b5061032961050236600461227e565b610c20565b348015610512575f80fd5b506103866105213660046121a6565b610cb7565b348015610531575f80fd5b50610329610cd1565b348015610545575f80fd5b50610329610d06565b348015610559575f80fd5b506103296105683660046122f2565b610d3c565b348015610578575f80fd5b506103296105873660046121c1565b610d90565b348015610597575f80fd5b506005546001600160a01b031661035e565b3480156105b4575f80fd5b506103296105c3366004612329565b610e0d565b3480156105d3575f80fd5b50610297610e53565b3480156105e7575f80fd5b50610386600e5481565b3480156105fc575f80fd5b5061032961060b3660046122f2565b610e62565b34801561061b575f80fd5b506102cc61062a36600461217c565b610f41565b34801561063a575f80fd5b506103296106493660046122f2565b610fd9565b348015610659575f80fd5b506102cc61066836600461217c565b611040565b348015610678575f80fd5b506103296106873660046121a6565b61104c565b348015610697575f80fd5b506102cc6106a63660046121a6565b60136020525f908152604090205460ff1681565b3480156106c5575f80fd5b50600b546102cc90610100900460ff1681565b3480156106e3575f80fd5b506103296106f23660046122f2565b6110d2565b348015610702575f80fd5b506103296107113660046121c1565b61115a565b610329610724366004612358565b61122b565b348015610734575f80fd5b5061038660075481565b348015610749575f80fd5b50610386600a5481565b34801561075e575f80fd5b5061032961076d3660046121c1565b61144f565b34801561077d575f80fd5b50610386600f5481565b348015610792575f80fd5b506103866107a1366004612418565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107d6575f80fd5b5061038660085481565b3480156107eb575f80fd5b506103296107fa3660046121a6565b611491565b34801561080a575f80fd5b5061038660095481565b60606003805461082390612444565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90612444565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f6108b0338484611529565b5060015b92915050565b6005546001600160a01b031633146108ed5760405162461bcd60e51b81526004016108e49061247c565b60405180910390fd5b6108ff81670de0b6b3a76400006124c5565b600a5550565b6005546001600160a01b0316331461092f5760405162461bcd60e51b81526004016108e49061247c565b670de0b6b3a76400006103e861094460025490565b61094f9060016124c5565b61095991906124dc565b61096391906124dc565b8110156109ca5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016108e4565b6109dc81670de0b6b3a76400006124c5565b60075550565b5f6109ee84848461164c565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a725760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108e4565b610a7f8533858403611529565b506001949350505050565b6005546001600160a01b03163314610ab45760405162461bcd60e51b81526004016108e49061247c565b5f600e55600b805462ffff0019166201010017905543600c5542600d55565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916108b0918590610b099086906124fb565b611529565b6005546001600160a01b03163314610b385760405162461bcd60e51b81526004016108e49061247c565b6005821115610b7c5760405162461bcd60e51b815260206004820152601060248201526f115e18d95959081d1a19481b1a5b5a5d60821b60448201526064016108e4565b6005811115610bc05760405162461bcd60e51b815260206004820152601060248201526f115e18d95959081d1a19481b1a5b5a5d60821b60448201526064016108e4565b600f91909155601055565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610c15576040519150601f19603f3d011682016040523d82523d5f602084013e610c1a565b606091505b50505050565b8215801590610c2e57508083145b610c36575f80fd5b335f5b84811015610caf57610c9d82878784818110610c5757610c5761250e565b9050602002016020810190610c6c91906121a6565b868685818110610c7e57610c7e61250e565b90506020020135670de0b6b3a7640000610c9891906124c5565b61164c565b80610ca781612522565b915050610c39565b505050505050565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b03163314610cfb5760405162461bcd60e51b81526004016108e49061247c565b610d045f611c93565b565b6005546001600160a01b03163314610d305760405162461bcd60e51b81526004016108e49061247c565b600b805460ff19169055565b6005546001600160a01b03163314610d665760405162461bcd60e51b81526004016108e49061247c565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6006546001600160a01b0316336001600160a01b031614610daf575f80fd5b610db830610cb7565b8111158015610dc657505f81115b610e015760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016108e4565b610e0a81611ce4565b50565b6005546001600160a01b03163314610e375760405162461bcd60e51b81526004016108e49061247c565b600b8054911515620100000262ff000019909216919091179055565b60606004805461082390612444565b6005546001600160a01b03163314610e8c5760405162461bcd60e51b81526004016108e49061247c565b7f000000000000000000000000a4799d2246913dc9a3397886558c7d671abcec786001600160a01b0316826001600160a01b031603610f335760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108e4565b610f3d8282611e92565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610fc25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108e4565b610fcf3385858403611529565b5060019392505050565b6005546001600160a01b031633146110035760405162461bcd60e51b81526004016108e49061247c565b6001600160a01b039091165f908152601260209081526040808320805494151560ff19958616811790915560119092529091208054909216179055565b5f6108b033848461164c565b6005546001600160a01b031633146110765760405162461bcd60e51b81526004016108e49061247c565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110fc5760405162461bcd60e51b81526004016108e49061247c565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111845760405162461bcd60e51b81526004016108e49061247c565b670de0b6b3a76400006103e861119960025490565b6111a49060056124c5565b6111ae91906124dc565b6111b891906124dc565b8110156112135760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016108e4565b61122581670de0b6b3a76400006124c5565b60095550565b6005546001600160a01b031633146112555760405162461bcd60e51b81526004016108e49061247c565b611283307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d610b0960025490565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d71947306112bd30610cb7565b5f806112d16005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611337573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061135c919061253a565b505060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f1960248301527f000000000000000000000000a4799d2246913dc9a3397886558c7d671abcec7816915063095ea7b3906044016020604051808303815f875af11580156113eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140f9190612565565b505f5b8151811015610f3d5761143f8282815181106114305761143061250e565b60200260200101516001610fd9565b61144881612522565b9050611412565b6005546001600160a01b031633146114795760405162461bcd60e51b81526004016108e49061247c565b61148b81670de0b6b3a76400006124c5565b60085550565b6005546001600160a01b031633146114bb5760405162461bcd60e51b81526004016108e49061247c565b6001600160a01b0381166115205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e4565b610e0a81611c93565b6001600160a01b03831661158b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108e4565b6001600160a01b0382166115ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108e4565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116725760405162461bcd60e51b81526004016108e490612580565b6001600160a01b0382166116c85760405162461bcd60e51b815260206004820181905260248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526064016108e4565b805f036116df576116da83835f611ee5565b505050565b600b5460ff1615611a4f576005546001600160a01b0384811691161480159061171657506005546001600160a01b03838116911614155b801561172a57506001600160a01b03821615155b801561174157506001600160a01b03821661dead14155b80156117575750600554600160a01b900460ff16155b15611a4f5743600e54600c5461176d91906124fb565b1061177d57601e6010819055600f555b600b54610100900460ff1661180e576001600160a01b0383165f9081526011602052604090205460ff16806117c957506001600160a01b0382165f9081526011602052604090205460ff165b61180e5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108e4565b6001600160a01b0383165f9081526013602052604090205460ff16801561184d57506001600160a01b0382165f9081526012602052604090205460ff16155b15611921576007548111156118c25760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016108e4565b6009546118ce83610cb7565b6118d890836124fb565b111561191c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108e4565b611a4f565b6001600160a01b0382165f9081526013602052604090205460ff16801561196057506001600160a01b0383165f9081526012602052604090205460ff16155b156119d65760075481111561191c5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016108e4565b6001600160a01b0382165f9081526012602052604090205460ff16611a4f57600954611a0183610cb7565b611a0b90836124fb565b1115611a4f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108e4565b5f611a5930610cb7565b60085490915081108015908190611a785750600b5462010000900460ff165b8015611a8e5750600554600160a01b900460ff16155b8015611ab257506001600160a01b0385165f9081526013602052604090205460ff16155b8015611ad657506001600160a01b0385165f9081526011602052604090205460ff16155b8015611afa57506001600160a01b0384165f9081526011602052604090205460ff16155b15611b6857435f9081526014602052604090205460031115611b68576005805460ff60a01b1916600160a01b179055611b31612074565b6005805460ff60a01b19169055435f90815260146020526040902054611b589060016124fb565b435f908152601460205260409020555b6005546001600160a01b0386165f9081526011602052604090205460ff600160a01b909204821615911680611bb457506001600160a01b0385165f9081526011602052604090205460ff165b15611bbc57505f5b5f8115611c7f576001600160a01b0386165f9081526013602052604090205460ff168015611beb57505f601054115b15611c1757611c106064611c0a601054886120f090919063ffffffff16565b90612102565b9050611c61565b6001600160a01b0387165f9081526013602052604090205460ff168015611c3f57505f600f54115b15611c6157611c5e6064611c0a600f54886120f090919063ffffffff16565b90505b8015611c7257611c72873083611ee5565b611c7c81866125c5565b94505b611c8a878787611ee5565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611d1757611d1761250e565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db791906125d8565b81600181518110611dca57611dca61250e565b60200260200101906001600160a01b031690816001600160a01b031681525050611e15307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611529565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611e699085905f908690309042906004016125f3565b5f604051808303815f87803b158015611e80575f80fd5b505af1158015610caf573d5f803e3d5ffd5b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611f0b5760405162461bcd60e51b81526004016108e490612580565b6001600160a01b038216611f6d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108e4565b6001600160a01b0383165f9081526020819052604090205481811015611fe45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108e4565b6001600160a01b038085165f9081526020819052604080822085850390559185168152908120805484929061201a9084906124fb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161206691815260200190565b60405180910390a350505050565b5f61207e30610cb7565b90505f815f0361208c575050565b600a5482111561209c57600a5491505b816120a681611ce4565b60065460405147916001600160a01b03169082905f81818185875af1925050503d805f8114611c8a576040519150601f19603f3d011682016040523d82523d5f602084013e611c8a565b5f6120fb82846124c5565b9392505050565b5f6120fb82846124dc565b5f6020808352835180828501525f5b818110156121385785810183015185820160400152820161211c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e0a575f80fd5b803561217781612158565b919050565b5f806040838503121561218d575f80fd5b823561219881612158565b946020939093013593505050565b5f602082840312156121b6575f80fd5b81356120fb81612158565b5f602082840312156121d1575f80fd5b5035919050565b5f805f606084860312156121ea575f80fd5b83356121f581612158565b9250602084013561220581612158565b929592945050506040919091013590565b5f8060408385031215612227575f80fd5b50508035926020909101359150565b5f8083601f840112612246575f80fd5b50813567ffffffffffffffff81111561225d575f80fd5b6020830191508360208260051b8501011115612277575f80fd5b9250929050565b5f805f8060408587031215612291575f80fd5b843567ffffffffffffffff808211156122a8575f80fd5b6122b488838901612236565b909650945060208701359150808211156122cc575f80fd5b506122d987828801612236565b95989497509550505050565b8015158114610e0a575f80fd5b5f8060408385031215612303575f80fd5b823561230e81612158565b9150602083013561231e816122e5565b809150509250929050565b5f60208284031215612339575f80fd5b81356120fb816122e5565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215612369575f80fd5b823567ffffffffffffffff80821115612380575f80fd5b818501915085601f830112612393575f80fd5b8135818111156123a5576123a5612344565b8060051b604051601f19603f830116810181811085821117156123ca576123ca612344565b6040529182528482019250838101850191888311156123e7575f80fd5b938501935b8285101561240c576123fd8561216c565b845293850193928501926123ec565b98975050505050505050565b5f8060408385031215612429575f80fd5b823561243481612158565b9150602083013561231e81612158565b600181811c9082168061245857607f821691505b60208210810361247657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108b4576108b46124b1565b5f826124f657634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156108b4576108b46124b1565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612533576125336124b1565b5060010190565b5f805f6060848603121561254c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215612575575f80fd5b81516120fb816122e5565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b818103818111156108b4576108b46124b1565b5f602082840312156125e8575f80fd5b81516120fb81612158565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126415784516001600160a01b03168352938301939183019160010161261c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220886e7158817909f1efeb7fae3ea2c693d5b4021610a47aee028913e146754d4164736f6c63430008150033

Deployed Bytecode Sourcemap

11807:11420:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7315:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8229:169;;;;;;;;;;-1:-1:-1;8229:169:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;8229:169:0;1162:187:1;12618:63:0;;;;;;;;;;-1:-1:-1;12618:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15591:118;;;;;;;;;;-1:-1:-1;15591:118:0;;;;;:::i;:::-;;:::i;:::-;;11883:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1981:32:1;;;1963:51;;1951:2;1936:18;11883:51:0;1791:229:1;7636:108:0;;;;;;;;;;-1:-1:-1;7724:12:0;;7636:108;;;2171:25:1;;;2159:2;2144:18;7636:108:0;2025:177:1;15717:240:0;;;;;;;;;;-1:-1:-1;15717:240:0;;;;;:::i;:::-;;:::i;8406:458::-;;;;;;;;;;-1:-1:-1;8406:458:0;;;;;:::i;:::-;;:::i;11986:53::-;;;;;;;;;;;;12032:6;11986:53;;15130:219;;;;;;;;;;;;;:::i;7535:93::-;;;;;;;;;;-1:-1:-1;7535:93:0;;7618:2;3018:36:1;;3006:2;2991:18;7535:93:0;2876:184:1;8872:215:0;;;;;;;;;;-1:-1:-1;8872:215:0;;;;;:::i;:::-;;:::i;11941:38::-;;;;;;;;;;;;;;;12268:33;;;;;;;;;;-1:-1:-1;12268:33:0;;;;;;;;12522:28;;;;;;;;;;;;;;;;18031:237;;;;;;;;;;-1:-1:-1;18031:237:0;;;;;:::i;:::-;;:::i;12348:31::-;;;;;;;;;;-1:-1:-1;12348:31:0;;;;;;;;;;;17166:149;;;;;;;;;;;;;:::i;18492:352::-;;;;;;;;;;-1:-1:-1;18492:352:0;;;;;:::i;:::-;;:::i;7752:127::-;;;;;;;;;;-1:-1:-1;7752:127:0;;;;;:::i;:::-;;:::i;6361:103::-;;;;;;;;;;;;;:::i;15357:84::-;;;;;;;;;;;;;:::i;16397:144::-;;;;;;;;;;-1:-1:-1;16397:144:0;;;;;:::i;:::-;;:::i;16935:223::-;;;;;;;;;;-1:-1:-1;16935:223:0;;;;;:::i;:::-;;:::i;6138:87::-;;;;;;;;;;-1:-1:-1;6211:6:0;;-1:-1:-1;;;;;6211:6:0;6138:87;;16637:100;;;;;;;;;;-1:-1:-1;16637:100:0;;;;;:::i;:::-;;:::i;7423:104::-;;;;;;;;;;;;;:::i;12456:21::-;;;;;;;;;;;;;;;;17323:244;;;;;;;;;;-1:-1:-1;17323:244:0;;;;;:::i;:::-;;:::i;9095:413::-;;;;;;;;;;-1:-1:-1;9095:413:0;;;;;:::i;:::-;;:::i;16194:195::-;;;;;;;;;;-1:-1:-1;16194:195:0;;;;;:::i;:::-;;:::i;7887:175::-;;;;;;;;;;-1:-1:-1;7887:175:0;;;;;:::i;:::-;;:::i;18276:208::-;;;;;;;;;;-1:-1:-1;18276:208:0;;;;;:::i;:::-;;:::i;12690:57::-;;;;;;;;;;-1:-1:-1;12690:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12308:33;;;;;;;;;;-1:-1:-1;12308:33:0;;;;;;;;;;;16745:182;;;;;;;;;;-1:-1:-1;16745:182:0;;;;;:::i;:::-;;:::i;15965:221::-;;;;;;;;;;-1:-1:-1;15965:221:0;;;;;:::i;:::-;;:::i;14629:493::-;;;;;;:::i;:::-;;:::i;12118:35::-;;;;;;;;;;;;;;;;12231:28;;;;;;;;;;;;;;;;15449:134;;;;;;;;;;-1:-1:-1;15449:134:0;;;;;:::i;:::-;;:::i;12486:27::-;;;;;;;;;;;;;;;;8070:151;;;;;;;;;;-1:-1:-1;8070:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;8186:18:0;;;8159:7;8186:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8070:151;12160:33;;;;;;;;;;;;;;;;6472:201;;;;;;;;;;-1:-1:-1;6472:201:0;;;;;:::i;:::-;;:::i;12200:24::-;;;;;;;;;;;;;;;;7315:100;7369:13;7402:5;7395:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7315:100;:::o;8229:169::-;8312:4;8329:39;5734:10;8352:7;8361:6;8329:8;:39::i;:::-;-1:-1:-1;8386:4:0;8229:169;;;;;:::o;15591:118::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;;;;;;;;;15679:22:::1;:9:::0;15692:8:::1;15679:22;:::i;:::-;15663:13;:38:::0;-1:-1:-1;15591:118:0:o;15717:240::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;15840:4:::1;15832;15811:13;7724:12:::0;;;7636:108;15811:13:::1;:17;::::0;15827:1:::1;15811:17;:::i;:::-;15810:26;;;;:::i;:::-;15809:35;;;;:::i;:::-;15799:6;:45;;15791:105;;;::::0;-1:-1:-1;;;15791:105:0;;8350:2:1;15791:105:0::1;::::0;::::1;8332:21:1::0;8389:2;8369:18;;;8362:30;8428:34;8408:18;;;8401:62;-1:-1:-1;;;8479:18:1;;;8472:45;8534:19;;15791:105:0::1;8148:411:1::0;15791:105:0::1;15930:19;:6:::0;15940:8:::1;15930:19;:::i;:::-;15907:20;:42:::0;-1:-1:-1;15717:240:0:o;8406:458::-;8512:4;8529:36;8539:6;8547:9;8558:6;8529:9;:36::i;:::-;-1:-1:-1;;;;;8605:19:0;;8578:24;8605:19;;;:11;:19;;;;;;;;5734:10;8605:33;;;;;;;;8657:26;;;;8649:79;;;;-1:-1:-1;;;8649:79:0;;8766:2:1;8649:79:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:38;8943:19;;8649:79:0;8564:404:1;8649:79:0;8764:57;8773:6;5734:10;8814:6;8795:16;:25;8764:8;:57::i;:::-;-1:-1:-1;8852:4:0;;8406:458;-1:-1:-1;;;;8406:458:0:o;15130:219::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;15203:1:::1;15194:6;:10:::0;15215:13:::1;:20:::0;;-1:-1:-1;;15246:18:0;;;;;15288:12:::1;15275:10;:25:::0;15326:15:::1;15311:12;:30:::0;15130:219::o;8872:215::-;5734:10;8960:4;9009:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9009:34:0;;;;;;;;;;8960:4;;8977:80;;9000:7;;9009:47;;9046:10;;9009:47;:::i;:::-;8977:8;:80::i;18031:237::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;18126:1:::1;18118:4;:9;;18110:38;;;::::0;-1:-1:-1;;;18110:38:0;;9305:2:1;18110:38:0::1;::::0;::::1;9287:21:1::0;9344:2;9324:18;;;9317:30;-1:-1:-1;;;9363:18:1;;;9356:46;9419:18;;18110:38:0::1;9103:340:1::0;18110:38:0::1;18176:1;18167:5;:10;;18159:39;;;::::0;-1:-1:-1;;;18159:39:0;;9305:2:1;18159:39:0::1;::::0;::::1;9287:21:1::0;9344:2;9324:18;;;9317:30;-1:-1:-1;;;9363:18:1;;;9356:46;9419:18;;18159:39:0::1;9103:340:1::0;18159:39:0::1;18209:12;:19:::0;;;;18239:13:::1;:21:::0;18031:237::o;17166:149::-;17252:15;;17244:63;;17208:12;;-1:-1:-1;;;;;17252:15:0;;17281:21;;17208:12;17244:63;17208:12;17244:63;17281:21;17252:15;17244:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;17166:149:0:o;18492:352::-;18601:20;;;;;:58;;-1:-1:-1;18625:34:0;;;18601:58;18593:67;;;;;;18686:10;18671:12;18709:128;18729:20;;;18709:128;;;18771:54;18781:4;18787:9;;18797:1;18787:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18801:7;;18809:1;18801:10;;;;;;;:::i;:::-;;;;;;;18815:8;18801:23;;;;:::i;:::-;18771:9;:54::i;:::-;18751:3;;;;:::i;:::-;;;;18709:128;;;;18582:262;18492:352;;;;:::o;7752:127::-;-1:-1:-1;;;;;7853:18:0;7826:7;7853:18;;;;;;;;;;;;7752:127::o;6361:103::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;6426:30:::1;6453:1;6426:18;:30::i;:::-;6361:103::o:0;15357:84::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;15411:14:::1;:22:::0;;-1:-1:-1;;15411:22:0::1;::::0;;15357:84::o;16397:144::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16487:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;16487:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16397:144::o;16935:223::-;17015:15;;-1:-1:-1;;;;;17015:15:0;5734:10;-1:-1:-1;;;;;16999:31:0;;16991:40;;;;;;17060:24;17078:4;17060:9;:24::i;:::-;17050:6;:34;;:48;;;;;17097:1;17088:6;:10;17050:48;17042:73;;;;-1:-1:-1;;;17042:73:0;;10132:2:1;17042:73:0;;;10114:21:1;10171:2;10151:18;;;10144:30;-1:-1:-1;;;10190:18:1;;;10183:42;10242:18;;17042:73:0;9930:336:1;17042:73:0;17126:24;17143:6;17126:16;:24::i;:::-;16935:223;:::o;16637:100::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;16708:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;16708:21:0;;::::1;::::0;;;::::1;::::0;;16637:100::o;7423:104::-;7479:13;7512:7;7505:14;;;;;:::i;17323:244::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;17430:13:::1;-1:-1:-1::0;;;;;17422:21:0::1;:4;-1:-1:-1::0;;;;;17422:21:0::1;::::0;17414:91:::1;;;::::0;-1:-1:-1;;;17414:91:0;;10473:2:1;17414:91:0::1;::::0;::::1;10455:21:1::0;10512:2;10492:18;;;10485:30;10551:34;10531:18;;;10524:62;10622:27;10602:18;;;10595:55;10667:19;;17414:91:0::1;10271:421:1::0;17414:91:0::1;17518:41;17547:4;17553:5;17518:28;:41::i;:::-;17323:244:::0;;:::o;9095:413::-;5734:10;9188:4;9232:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9232:34:0;;;;;;;;;;9285:35;;;;9277:85;;;;-1:-1:-1;;;9277:85:0;;10899:2:1;9277:85:0;;;10881:21:1;10938:2;10918:18;;;10911:30;10977:34;10957:18;;;10950:62;-1:-1:-1;;;11028:18:1;;;11021:35;11073:19;;9277:85:0;10697:401:1;9277:85:0;9398:67;5734:10;9421:7;9449:15;9430:16;:34;9398:8;:67::i;:::-;-1:-1:-1;9496:4:0;;9095:413;-1:-1:-1;;;9095:413:0:o;16194:195::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16280:43:0;;::::1;;::::0;;;:31:::1;:43;::::0;;;;;;;:50;;;::::1;;-1:-1:-1::0;;16280:50:0;;::::1;::::0;::::1;::::0;;;16343:19:::1;:31:::0;;;;;;:38;;;;::::1;;::::0;;16194:195::o;7887:175::-;7973:4;7990:42;5734:10;8014:9;8025:6;7990:9;:42::i;18276:208::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;18413:15:::1;::::0;18370:59:::1;::::0;-1:-1:-1;;;;;18413:15:0;;::::1;::::0;18370:59;::::1;::::0;::::1;::::0;18413:15:::1;::::0;18370:59:::1;18440:15;:36:::0;;-1:-1:-1;;;;;;18440:36:0::1;-1:-1:-1::0;;;;;18440:36:0;;;::::1;::::0;;;::::1;::::0;;18276:208::o;16745:182::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16830:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;16830:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16885:34;;1302:41:1;;;16885:34:0::1;::::0;1275:18:1;16885:34:0::1;;;;;;;16745:182:::0;;:::o;15965:221::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;16091:4:::1;16083;16062:13;7724:12:::0;;;7636:108;16062:13:::1;:17;::::0;16078:1:::1;16062:17;:::i;:::-;16061:26;;;;:::i;:::-;16060:35;;;;:::i;:::-;16050:6;:45;;16042:94;;;::::0;-1:-1:-1;;;16042:94:0;;11305:2:1;16042:94:0::1;::::0;::::1;11287:21:1::0;11344:2;11324:18;;;11317:30;11383:34;11363:18;;;11356:62;-1:-1:-1;;;11434:18:1;;;11427:34;11478:19;;16042:94:0::1;11103:400:1::0;16042:94:0::1;16159:19;:6:::0;16169:8:::1;16159:19;:::i;:::-;16147:9;:31:::0;-1:-1:-1;15965:221:0:o;14629:493::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;14711:64:::1;14728:4;14743:15;14761:13;7724:12:::0;;;7636:108;14711:64:::1;14786:15;-1:-1:-1::0;;;;;14786:31:0::1;;14825:21;14856:4;14862:24;14880:4;14862:9;:24::i;:::-;14887:1;14889::::0;14891:7:::1;6211:6:::0;;-1:-1:-1;;;;;6211:6:0;;6138:87;14891:7:::1;14786:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14786:129:0;;;-1:-1:-1;;;;;11867:15:1;;;14786:129:0::1;::::0;::::1;11849:34:1::0;11899:18;;;11892:34;;;;11942:18;;;11935:34;;;;11985:18;;;11978:34;12049:15;;;12028:19;;;12021:44;14899:15:0::1;12081:19:1::0;;;12074:35;11783:19;;14786:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14926:71:0::1;::::0;-1:-1:-1;;;14926:71:0;;-1:-1:-1;;;;;14964:15:0::1;12623:32:1::0;;14926:71:0::1;::::0;::::1;12605:51:1::0;-1:-1:-1;;12672:18:1;;;12665:34;14933:13:0::1;14926:29;::::0;-1:-1:-1;14926:29:0::1;::::0;12578:18:1;;14926:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15012:9;15008:107;15027:10;:17;15023:1;:21;15008:107;;;15065:38;15083:10;15094:1;15083:13;;;;;;;;:::i;:::-;;;;;;;15098:4;15065:17;:38::i;:::-;15046:3;::::0;::::1;:::i;:::-;;;15008:107;;15449:134:::0;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;15553:22:::1;:9:::0;15566:8:::1;15553:22;:::i;:::-;15532:18;:43:::0;-1:-1:-1;15449:134:0:o;6472:201::-;6211:6;;-1:-1:-1;;;;;6211:6:0;5734:10;6273:23;6265:68;;;;-1:-1:-1;;;6265:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6561:22:0;::::1;6553:73;;;::::0;-1:-1:-1;;;6553:73:0;;13162:2:1;6553:73:0::1;::::0;::::1;13144:21:1::0;13201:2;13181:18;;;13174:30;13240:34;13220:18;;;13213:62;-1:-1:-1;;;13291:18:1;;;13284:36;13337:19;;6553:73:0::1;12960:402:1::0;6553:73:0::1;6637:28;6656:8;6637:18;:28::i;11229:346::-:0;-1:-1:-1;;;;;11331:19:0;;11323:68;;;;-1:-1:-1;;;11323:68:0;;13569:2:1;11323:68:0;;;13551:21:1;13608:2;13588:18;;;13581:30;13647:34;13627:18;;;13620:62;-1:-1:-1;;;13698:18:1;;;13691:34;13742:19;;11323:68:0;13367:400:1;11323:68:0;-1:-1:-1;;;;;11410:21:0;;11402:68;;;;-1:-1:-1;;;11402:68:0;;13974:2:1;11402:68:0;;;13956:21:1;14013:2;13993:18;;;13986:30;14052:34;14032:18;;;14025:62;-1:-1:-1;;;14103:18:1;;;14096:32;14145:19;;11402:68:0;13772:398:1;11402:68:0;-1:-1:-1;;;;;11483:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11535:32;;2171:25:1;;;11535:32:0;;2144:18:1;11535:32:0;;;;;;;11229:346;;;:::o;18852:3183::-;-1:-1:-1;;;;;18950:18:0;;18942:68;;;;-1:-1:-1;;;18942:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19029:16:0;;19021:61;;;;-1:-1:-1;;;19021:61:0;;14783:2:1;19021:61:0;;;14765:21:1;;;14802:18;;;14795:30;14861:34;14841:18;;;14834:62;14913:18;;19021:61:0;14581:356:1;19021:61:0;19099:6;19109:1;19099:11;19095:93;;19127:28;19143:4;19149:2;19153:1;19127:15;:28::i;:::-;18852:3183;;;:::o;19095:93::-;19204:14;;;;19200:1310;;;6211:6;;-1:-1:-1;;;;;19239:15:0;;;6211:6;;19239:15;;;;:32;;-1:-1:-1;6211:6:0;;-1:-1:-1;;;;;19258:13:0;;;6211:6;;19258:13;;19239:32;:52;;;;-1:-1:-1;;;;;;19275:16:0;;;;19239:52;:77;;;;-1:-1:-1;;;;;;19295:21:0;;19309:6;19295:21;;19239:77;:90;;;;-1:-1:-1;19321:8:0;;-1:-1:-1;;;19321:8:0;;;;19320:9;19239:90;19235:1264;;;19379:12;19368:6;;19355:10;;:19;;;;:::i;:::-;19354:37;19350:183;;19471:2;19455:13;:18;;;19496:12;:17;19350:183;19558:13;;;;;;;19553:150;;-1:-1:-1;;;;;19604:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19633:23:0;;;;;;:19;:23;;;;;;;;19604:52;19596:87;;;;-1:-1:-1;;;19596:87:0;;15144:2:1;19596:87:0;;;15126:21:1;15183:2;15163:18;;;15156:30;-1:-1:-1;;;15202:18:1;;;15195:52;15264:18;;19596:87:0;14942:346:1;19596:87:0;-1:-1:-1;;;;;19755:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19791:35:0;;;;;;:31;:35;;;;;;;;19790:36;19755:71;19751:733;;;19869:20;;19859:6;:30;;19851:96;;;;-1:-1:-1;;;19851:96:0;;15495:2:1;19851:96:0;;;15477:21:1;15534:2;15514:18;;;15507:30;15573:34;15553:18;;;15546:62;-1:-1:-1;;;15624:18:1;;;15617:51;15685:19;;19851:96:0;15293:417:1;19851:96:0;20004:9;;19987:13;19997:2;19987:9;:13::i;:::-;19978:22;;:6;:22;:::i;:::-;:35;;19970:67;;;;-1:-1:-1;;;19970:67:0;;15917:2:1;19970:67:0;;;15899:21:1;15956:2;15936:18;;;15929:30;-1:-1:-1;;;15975:18:1;;;15968:49;16034:18;;19970:67:0;15715:343:1;19970:67:0;19751:733;;;-1:-1:-1;;;;;20113:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;20147:37:0;;;;;;:31;:37;;;;;;;;20146:38;20113:71;20109:375;;;20227:20;;20217:6;:30;;20209:97;;;;-1:-1:-1;;;20209:97:0;;16265:2:1;20209:97:0;;;16247:21:1;16304:2;16284:18;;;16277:30;16343:34;16323:18;;;16316:62;-1:-1:-1;;;16394:18:1;;;16387:52;16456:19;;20209:97:0;16063:418:1;20109:375:0;-1:-1:-1;;;;;20337:35:0;;;;;;:31;:35;;;;;;;;20332:152;;20431:9;;20414:13;20424:2;20414:9;:13::i;:::-;20405:22;;:6;:22;:::i;:::-;:35;;20397:67;;;;-1:-1:-1;;;20397:67:0;;15917:2:1;20397:67:0;;;15899:21:1;15956:2;15936:18;;;15929:30;-1:-1:-1;;;15975:18:1;;;15968:49;16034:18;;20397:67:0;15715:343:1;20397:67:0;20522:28;20553:24;20571:4;20553:9;:24::i;:::-;20629:18;;20522:55;;-1:-1:-1;20605:42:0;;;;;;;20678:22;;-1:-1:-1;20689:11:0;;;;;;;20678:22;:35;;;;-1:-1:-1;20705:8:0;;-1:-1:-1;;;20705:8:0;;;;20704:9;20678:35;:71;;;;-1:-1:-1;;;;;;20718:31:0;;;;;;:25;:31;;;;;;;;20717:32;20678:71;:101;;;;-1:-1:-1;;;;;;20754:25:0;;;;;;:19;:25;;;;;;;;20753:26;20678:101;:146;;;;-1:-1:-1;;;;;;20801:23:0;;;;;;:19;:23;;;;;;;;20800:24;20678:146;20660:468;;;20904:12;20893:24;;;;:10;:24;;;;;;20920:1;-1:-1:-1;20889:228:0;;;20942:8;:15;;-1:-1:-1;;;;20942:15:0;-1:-1:-1;;;20942:15:0;;;20978:10;:8;:10::i;:::-;21009:8;:16;;-1:-1:-1;;;;21009:16:0;;;21084:12;21020:5;21073:24;;;21009:8;21073:24;;;;;;:28;;21009:16;21073:28;:::i;:::-;21057:12;21046:24;;;;:10;:24;;;;;:55;20889:228;21156:8;;-1:-1:-1;;;;;21266:25:0;;21140:12;21266:25;;;:19;:25;;;;;;21156:8;-1:-1:-1;;;21156:8:0;;;;;21155:9;;21266:25;;:52;;-1:-1:-1;;;;;;21295:23:0;;;;;;:19;:23;;;;;;;;21266:52;21262:100;;;-1:-1:-1;21345:5:0;21262:100;21374:12;21479:7;21475:507;;;-1:-1:-1;;;;;21531:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;21580:1;21564:13;;:17;21531:50;21527:306;;;21609:34;21639:3;21609:25;21620:13;;21609:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;21602:41;;21527:306;;;-1:-1:-1;;;;;21705:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;21755:1;21740:12;;:16;21705:51;21701:132;;;21784:33;21813:3;21784:24;21795:12;;21784:6;:10;;:24;;;;:::i;:33::-;21777:40;;21701:132;21853:8;;21849:91;;21882:42;21898:4;21912;21919;21882:15;:42::i;:::-;21956:14;21966:4;21956:14;;:::i;:::-;;;21475:507;21994:33;22010:4;22016:2;22020:6;21994:15;:33::i;:::-;18931:3104;;;;18852:3183;;;:::o;6681:191::-;6774:6;;;-1:-1:-1;;;;;6791:17:0;;;-1:-1:-1;;;;;;6791:17:0;;;;;;;6824:40;;6774:6;;;6791:17;6774:6;;6824:40;;6755:16;;6824:40;6744:128;6681:191;:::o;22043:589::-;22193:16;;;22207:1;22193:16;;;;;;;;22169:21;;22193:16;;;;;;;;;;-1:-1:-1;22193:16:0;22169:40;;22238:4;22220;22225:1;22220:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22220:23:0;;;-1:-1:-1;;;;;22220:23:0;;;;;22264:15;-1:-1:-1;;;;;22264:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22254:4;22259:1;22254:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;22254:32:0;;;-1:-1:-1;;;;;22254:32:0;;;;;22299:62;22316:4;22331:15;22349:11;22299:8;:62::i;:::-;22400:224;;-1:-1:-1;;;22400:224:0;;-1:-1:-1;;;;;22400:15:0;:66;;;;:224;;22481:11;;22507:1;;22551:4;;22578;;22598:15;;22400:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17575:188;-1:-1:-1;;;;;17658:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;17658:39:0;;;;;;;;;;17715:40;;17658:39;;:31;17715:40;;;17575:188;;:::o;9516:699::-;-1:-1:-1;;;;;9622:20:0;;9614:70;;;;-1:-1:-1;;;9614:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9703:23:0;;9695:71;;;;-1:-1:-1;;;9695:71:0;;18062:2:1;9695:71:0;;;18044:21:1;18101:2;18081:18;;;18074:30;18140:34;18120:18;;;18113:62;-1:-1:-1;;;18191:18:1;;;18184:33;18234:19;;9695:71:0;17860:399:1;9695:71:0;-1:-1:-1;;;;;9863:17:0;;9839:21;9863:17;;;;;;;;;;;9899:23;;;;9891:74;;;;-1:-1:-1;;;9891:74:0;;18466:2:1;9891:74:0;;;18448:21:1;18505:2;18485:18;;;18478:30;18544:34;18524:18;;;18517:62;-1:-1:-1;;;18595:18:1;;;18588:36;18641:19;;9891:74:0;18264:402:1;9891:74:0;-1:-1:-1;;;;;10001:17:0;;;:9;:17;;;;;;;;;;;10021:22;;;10001:42;;10065:20;;;;;;;;:30;;10037:6;;10001:9;10065:30;;10037:6;;10065:30;:::i;:::-;;;;;;;;10130:9;-1:-1:-1;;;;;10113:35:0;10122:6;-1:-1:-1;;;;;10113:35:0;;10141:6;10113:35;;;;2171:25:1;;2159:2;2144:18;;2025:177;10113:35:0;;;;;;;;9603:612;9516:699;;;:::o;22640:584::-;22679:23;22705:24;22723:4;22705:9;:24::i;:::-;22679:50;;22740:12;22769:15;22788:1;22769:20;22765:59;;22806:7;;22640:584::o;22765:59::-;22858:13;;22840:15;:31;22836:95;;;22906:13;;22888:31;;22836:95;23023:15;23051:36;23023:15;23051:16;:36::i;:::-;23174:15;;23166:50;;23119:21;;-1:-1:-1;;;;;23174:15:0;;23119:21;;23166:50;;;;23119:21;23174:15;23166:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3659:98;3717:7;3744:5;3748:1;3744;:5;:::i;:::-;3737:12;3659:98;-1:-1:-1;;;3659:98:0:o;3765:::-;3823:7;3850:5;3854:1;3850;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:247::-;1413:6;1466:2;1454:9;1445:7;1441:23;1437:32;1434:52;;;1482:1;1479;1472:12;1434:52;1521:9;1508:23;1540:31;1565:5;1540:31;:::i;1606:180::-;1665:6;1718:2;1706:9;1697:7;1693:23;1689:32;1686:52;;;1734:1;1731;1724:12;1686:52;-1:-1:-1;1757:23:1;;1606:180;-1:-1:-1;1606:180:1:o;2207:456::-;2284:6;2292;2300;2353:2;2341:9;2332:7;2328:23;2324:32;2321:52;;;2369:1;2366;2359:12;2321:52;2408:9;2395:23;2427:31;2452:5;2427:31;:::i;:::-;2477:5;-1:-1:-1;2534:2:1;2519:18;;2506:32;2547:33;2506:32;2547:33;:::i;:::-;2207:456;;2599:7;;-1:-1:-1;;;2653:2:1;2638:18;;;;2625:32;;2207:456::o;3065:248::-;3133:6;3141;3194:2;3182:9;3173:7;3169:23;3165:32;3162:52;;;3210:1;3207;3200:12;3162:52;-1:-1:-1;;3233:23:1;;;3303:2;3288:18;;;3275:32;;-1:-1:-1;3065:248:1:o;3318:367::-;3381:8;3391:6;3445:3;3438:4;3430:6;3426:17;3422:27;3412:55;;3463:1;3460;3453:12;3412:55;-1:-1:-1;3486:20:1;;3529:18;3518:30;;3515:50;;;3561:1;3558;3551:12;3515:50;3598:4;3590:6;3586:17;3574:29;;3658:3;3651:4;3641:6;3638:1;3634:14;3626:6;3622:27;3618:38;3615:47;3612:67;;;3675:1;3672;3665:12;3612:67;3318:367;;;;;:::o;3690:773::-;3812:6;3820;3828;3836;3889:2;3877:9;3868:7;3864:23;3860:32;3857:52;;;3905:1;3902;3895:12;3857:52;3945:9;3932:23;3974:18;4015:2;4007:6;4004:14;4001:34;;;4031:1;4028;4021:12;4001:34;4070:70;4132:7;4123:6;4112:9;4108:22;4070:70;:::i;:::-;4159:8;;-1:-1:-1;4044:96:1;-1:-1:-1;4247:2:1;4232:18;;4219:32;;-1:-1:-1;4263:16:1;;;4260:36;;;4292:1;4289;4282:12;4260:36;;4331:72;4395:7;4384:8;4373:9;4369:24;4331:72;:::i;:::-;3690:773;;;;-1:-1:-1;4422:8:1;-1:-1:-1;;;;3690:773:1:o;4468:118::-;4554:5;4547:13;4540:21;4533:5;4530:32;4520:60;;4576:1;4573;4566:12;4591:382;4656:6;4664;4717:2;4705:9;4696:7;4692:23;4688:32;4685:52;;;4733:1;4730;4723:12;4685:52;4772:9;4759:23;4791:31;4816:5;4791:31;:::i;:::-;4841:5;-1:-1:-1;4898:2:1;4883:18;;4870:32;4911:30;4870:32;4911:30;:::i;:::-;4960:7;4950:17;;;4591:382;;;;;:::o;4978:241::-;5034:6;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5142:9;5129:23;5161:28;5183:5;5161:28;:::i;5224:127::-;5285:10;5280:3;5276:20;5273:1;5266:31;5316:4;5313:1;5306:15;5340:4;5337:1;5330:15;5356:1121;5440:6;5471:2;5514;5502:9;5493:7;5489:23;5485:32;5482:52;;;5530:1;5527;5520:12;5482:52;5570:9;5557:23;5599:18;5640:2;5632:6;5629:14;5626:34;;;5656:1;5653;5646:12;5626:34;5694:6;5683:9;5679:22;5669:32;;5739:7;5732:4;5728:2;5724:13;5720:27;5710:55;;5761:1;5758;5751:12;5710:55;5797:2;5784:16;5819:2;5815;5812:10;5809:36;;;5825:18;;:::i;:::-;5871:2;5868:1;5864:10;5903:2;5897:9;5966:2;5962:7;5957:2;5953;5949:11;5945:25;5937:6;5933:38;6021:6;6009:10;6006:22;6001:2;5989:10;5986:18;5983:46;5980:72;;;6032:18;;:::i;:::-;6068:2;6061:22;6118:18;;;6152:15;;;;-1:-1:-1;6194:11:1;;;6190:20;;;6222:19;;;6219:39;;;6254:1;6251;6244:12;6219:39;6278:11;;;;6298:148;6314:6;6309:3;6306:15;6298:148;;;6380:23;6399:3;6380:23;:::i;:::-;6368:36;;6331:12;;;;6424;;;;6298:148;;;6465:6;5356:1121;-1:-1:-1;;;;;;;;5356:1121:1:o;6482:388::-;6550:6;6558;6611:2;6599:9;6590:7;6586:23;6582:32;6579:52;;;6627:1;6624;6617:12;6579:52;6666:9;6653:23;6685:31;6710:5;6685:31;:::i;:::-;6735:5;-1:-1:-1;6792:2:1;6777:18;;6764:32;6805:33;6764:32;6805:33;:::i;6875:380::-;6954:1;6950:12;;;;6997;;;7018:61;;7072:4;7064:6;7060:17;7050:27;;7018:61;7125:2;7117:6;7114:14;7094:18;7091:38;7088:161;;7171:10;7166:3;7162:20;7159:1;7152:31;7206:4;7203:1;7196:15;7234:4;7231:1;7224:15;7088:161;;6875:380;;;:::o;7260:356::-;7462:2;7444:21;;;7481:18;;;7474:30;7540:34;7535:2;7520:18;;7513:62;7607:2;7592:18;;7260:356::o;7621:127::-;7682:10;7677:3;7673:20;7670:1;7663:31;7713:4;7710:1;7703:15;7737:4;7734:1;7727:15;7753:168;7826:9;;;7857;;7874:15;;;7868:22;;7854:37;7844:71;;7895:18;;:::i;7926:217::-;7966:1;7992;7982:132;;8036:10;8031:3;8027:20;8024:1;8017:31;8071:4;8068:1;8061:15;8099:4;8096:1;8089:15;7982:132;-1:-1:-1;8128:9:1;;7926:217::o;8973:125::-;9038:9;;;9059:10;;;9056:36;;;9072:18;;:::i;9658:127::-;9719:10;9714:3;9710:20;9707:1;9700:31;9750:4;9747:1;9740:15;9774:4;9771:1;9764:15;9790:135;9829:3;9850:17;;;9847:43;;9870:18;;:::i;:::-;-1:-1:-1;9917:1:1;9906:13;;9790:135::o;12120:306::-;12208:6;12216;12224;12277:2;12265:9;12256:7;12252:23;12248:32;12245:52;;;12293:1;12290;12283:12;12245:52;12322:9;12316:16;12306:26;;12372:2;12361:9;12357:18;12351:25;12341:35;;12416:2;12405:9;12401:18;12395:25;12385:35;;12120:306;;;;;:::o;12710:245::-;12777:6;12830:2;12818:9;12809:7;12805:23;12801:32;12798:52;;;12846:1;12843;12836:12;12798:52;12878:9;12872:16;12897:28;12919:5;12897:28;:::i;14175:401::-;14377:2;14359:21;;;14416:2;14396:18;;;14389:30;14455:34;14450:2;14435:18;;14428:62;-1:-1:-1;;;14521:2:1;14506:18;;14499:35;14566:3;14551:19;;14175:401::o;16486:128::-;16553:9;;;16574:11;;;16571:37;;;16588:18;;:::i;16619:251::-;16689:6;16742:2;16730:9;16721:7;16717:23;16713:32;16710:52;;;16758:1;16755;16748:12;16710:52;16790:9;16784:16;16809:31;16834:5;16809:31;:::i;16875:980::-;17137:4;17185:3;17174:9;17170:19;17216:6;17205:9;17198:25;17242:2;17280:6;17275:2;17264:9;17260:18;17253:34;17323:3;17318:2;17307:9;17303:18;17296:31;17347:6;17382;17376:13;17413:6;17405;17398:22;17451:3;17440:9;17436:19;17429:26;;17490:2;17482:6;17478:15;17464:29;;17511:1;17521:195;17535:6;17532:1;17529:13;17521:195;;;17600:13;;-1:-1:-1;;;;;17596:39:1;17584:52;;17691:15;;;;17656:12;;;;17632:1;17550:9;17521:195;;;-1:-1:-1;;;;;;;17772:32:1;;;;17767:2;17752:18;;17745:60;-1:-1:-1;;;17836:3:1;17821:19;17814:35;17733:3;16875:980;-1:-1:-1;;;16875:980:1:o

Swarm Source

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