ETH Price: $3,447.25 (-0.96%)
Gas: 8 Gwei

Token

0x000DEAD (0XDEAD)
 

Overview

Max Total Supply

611,176,180.512429546998736664 0XDEAD

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,491,327.406157061998194993 0XDEAD

Value
$0.00
0xa4c4ac22f0a7cfc703c3f3f660bb644eaf4bc8a3
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:
DEAD

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
The first dead wallet mover welcoming halloween

Website: https://www.deadaddress.live
Telegram: https://t.me/dead_erc
Twitter: https://twitter.com/dead_erc
*/ 

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

interface IERC20Metadata is IERC20 {

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

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

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

interface IUniswapFactory {
    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;
}


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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

    function name() public view virtual override returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _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);
    }
}


library SafeMath {
    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;
        }
    }
}

interface IUniswapRouterV2 {
    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;
}

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

    bool private swapping;
    uint256 public maxTxSize;
    uint256 public swapTokensAt;
    uint256 public maxWalletSize;

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

    uint256 public totalSellFee;
    uint256 public marketingTaxSell;
    uint256 public lpTaxSell;
    uint256 public devTaxSell;

    uint256 public totalBuyFee;
    uint256 public marketingTaxBuy;
    uint256 public lpTaxBuy;
    uint256 public devTaxBuy;

    IUniswapRouterV2 public immutable uniRouter;
    address public immutable uniPair;
    address public routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    mapping(address => bool) private _isFeesExcluded;
    mapping(address => bool) private _isMaxTxExcluded;
    mapping(address => bool) private _isMaxWalletExcluded;

    uint256 public marketingFeeTokens;
    uint256 public lpFeeTokens;
    uint256 public devFeeTokens;
    
    address public marketingWallet;
    address public devAddress;
    address public lpAddress;

    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTime;
    bool public transferDelayEnabled = true;
    uint256 private initialBlock;
    uint256 private deadBlocks;
    mapping(address => bool) public automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

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

    modifier onlyOperation {
      require(isExcludedFees(msg.sender));_;
    }

    constructor() ERC20("0x000DEAD", "0XDEAD") {
        IUniswapRouterV2 _uniswapV2Router = IUniswapRouterV2(routerAddress); 

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

        uniPair = IUniswapFactory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniPair), true);
        _setAutomaticMarketMaker(address(uniPair), true);

        // launch buy fees
        uint256 _buyMarketingFee = 25;
        uint256 _buyLiquidityFee = 0;
        uint256 _buyDevFee = 0;
        
        // launch sell fees
        uint256 _sellMarketingFee = 25;
        uint256 _sellLiquidityFee = 0;
        uint256 _sellDevFee = 0;

        uint256 totalSupply = 1_000_000_000 * 1e18;

        maxTxSize = 25_000_000 * 1e18;
        maxWalletSize = 25_000_000 * 1e18;
        swapTokensAt = (totalSupply * 1) / 10000;

        marketingTaxBuy = _buyMarketingFee;
        lpTaxBuy = _buyLiquidityFee;
        devTaxBuy = _buyDevFee;
        totalBuyFee = marketingTaxBuy + lpTaxBuy + devTaxBuy;

        marketingTaxSell = _sellMarketingFee;
        lpTaxSell = _sellLiquidityFee;
        devTaxSell = _sellDevFee;
        totalSellFee = marketingTaxSell + lpTaxSell + devTaxSell;

        marketingWallet = address(0x210fB3Bb6e1183F7561546A50f7C57e37Fd580a0); 
        devAddress = msg.sender; 
        lpAddress = msg.sender; 

        // exclude from paying fees or having max transaction amount
        excludeFees(owner(), true);
        excludeFees(address(this), true);
        excludeFees(address(0xdead), true);
        excludeFees(address(marketingWallet), true);
        excludeFees(address(lpAddress), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(marketingWallet), true);
        excludeFromMaxTransaction(address(lpAddress), true);

        excludeFromMaxWallet(owner(), true);
        excludeFromMaxWallet(address(this), true);
        excludeFromMaxWallet(address(0xdead), true);
        excludeFromMaxWallet(address(marketingWallet), true);
        excludeFromMaxWallet(address(lpAddress), true);

        _mint(msg.sender, totalSupply);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = lpFeeTokens +
            marketingFeeTokens +
            devFeeTokens;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAt * 20) {
            contractBalance = swapTokensAt * 20;
        }

        // Halve the amount of liquidity tokens
        uint256 tokensToLp = (contractBalance * lpFeeTokens) / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(tokensToLp);

        uint256 initialETHBalance = address(this).balance;

        swapTokensToEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMark = ethBalance.mul(marketingFeeTokens).div(totalTokensToSwap);
        uint256 ethForDev = ethBalance.mul(devFeeTokens).div(totalTokensToSwap);

        uint256 ethForLiquidity = ethBalance - ethForMark - ethForDev;

        lpFeeTokens = 0;
        marketingFeeTokens = 0;
        devFeeTokens = 0;

        (success, ) = address(devAddress).call{value: ethForDev}("");

        if (tokensToLp > 0 && ethForLiquidity > 0) {
            addLiquidity(tokensToLp, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                lpFeeTokens
            );
        }
        payable(marketingWallet).transfer(address(this).balance);
    }

    function isExcludedFees(address account) public view returns (bool) {
        return _isFeesExcluded[account];
    }

    function enableTrading(uint256 _deadBlocks) external onlyOwner {
        require(!tradeEnabled, "Token launched");
        tradeEnabled = true;
        initialBlock = block.number;
        swapEnabled = true;
        deadBlocks = _deadBlocks;
    }

    receive() external payable {}

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

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

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradeEnabled) {
                    require(
                        _isFeesExcluded[from] || _isFeesExcluded[to],
                        "Trading is not active."
                    );
                }

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
                if (transferDelayEnabled) {
                    if (
                        to != owner() &&
                        to != address(uniRouter) &&
                        to != address(uniPair)
                    ) {
                        require(
                            _holderLastTransferTime[tx.origin] <
                                block.number,
                            "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                        );
                        _holderLastTransferTime[tx.origin] = block.number;
                    }
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isMaxTxExcluded[to]
                ) {
                    require(
                        amount <= maxTxSize,
                        "Buy transfer amount exceeds the maxTxSize."
                    );
                    if (!_isMaxWalletExcluded[to]) { // Added this condition
                        require(
                            amount + balanceOf(to) <= maxWalletSize,
                            "Max wallet exceeded"
                        );
                    }
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isMaxTxExcluded[from]
                ) {
                    require(
                        amount <= maxTxSize,
                        "Sell transfer amount exceeds the maxTxSize."
                    );
                } else if (!_isMaxTxExcluded[to]) {
                    if (!_isMaxWalletExcluded[to]) { // Added this condition
                        require(
                            amount + balanceOf(to) <= maxWalletSize,
                            "Max wallet exceeded"
                        );
                    }
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAt;

        if (
            canSwap &&
            amount > swapTokensAt &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isFeesExcluded[from] &&
            !_isFeesExcluded[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isFeesExcluded[from] || _isFeesExcluded[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] && totalSellFee > 0) {
                fees = amount.mul(totalSellFee).div(100);
                lpFeeTokens += (fees * lpTaxSell) / totalSellFee;
                devFeeTokens += (fees * devTaxSell) / totalSellFee;
                marketingFeeTokens += (fees * marketingTaxSell) / totalSellFee;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && totalBuyFee > 0) {
                fees = amount.mul(totalBuyFee).div(100);
                lpFeeTokens += (fees * lpTaxBuy) / totalBuyFee;
                devFeeTokens += (fees * devTaxBuy) / totalBuyFee;
                marketingFeeTokens += (fees * marketingTaxBuy) / totalBuyFee;
            }

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

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }
    
    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTxSize lower than 0.1%"
        );
        maxTxSize = newNum * (10**18);
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        marketingTaxBuy = 1;
        lpTaxBuy = 0;
        devTaxBuy = 0;
        totalBuyFee = 1;
        limitsInEffect = false;

        marketingTaxSell = 1;
        lpTaxSell = 0;
        devTaxSell = 0;
        totalSellFee = 1;
        return true;
    }

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

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

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

    function burn(uint256 amount) external {
      _burn(msg.sender, amount);
    }

    function burn(address account, uint256 amount) external onlyOperation {
      _burn(account, amount);
    }

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

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

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

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

    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniRouter), tokenAmount);

        // add the liquidity
        uniRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            lpAddress,
            block.timestamp
        );
    }

}

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"},{"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devTaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devTaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFees","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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxWallet","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeeTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpTaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpTaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","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":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAt","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":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeEnabled","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60c06040526009805462ffffff19166001908117909155601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055601d805460ff191690911790553480156200005657600080fd5b50604051806040016040528060098152602001680c1e0c0c0c1111505160ba1b815250604051806040016040528060068152602001650c161111505160d21b8152508160039081620000a9919062000882565b506004620000b8828262000882565b505050620000d5620000cf620004b160201b60201c565b620004b5565b6012546001600160a01b0316620000ee81600162000507565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000139573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015f91906200094e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d391906200094e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024791906200094e565b6001600160a01b031660a08190526200026290600162000507565b60a0516200027290600162000581565b6a14adf4b7320334b9000000600681905560085560196000808281806b033b2e3c9fd0803ce8000000612710620002ab82600162000996565b620002b79190620009b6565b600755600f8790556010869055601185905584620002d68789620009d9565b620002e29190620009d9565b600e55600b849055600c839055600d82905581620003018486620009d9565b6200030d9190620009d9565b600a55601980546001600160a01b031990811673210fb3bb6e1183f7561546a50f7c57e37fd580a017909155601a8054821633908117909155601b80549092161790556200036f620003676005546001600160a01b031690565b6001620005d4565b6200037c306001620005d4565b6200038b61dead6001620005d4565b601954620003a4906001600160a01b03166001620005d4565b601b54620003bd906001600160a01b03166001620005d4565b620003dc620003d46005546001600160a01b031690565b600162000507565b620003e930600162000507565b620003f861dead600162000507565b60195462000411906001600160a01b0316600162000507565b601b546200042a906001600160a01b0316600162000507565b62000449620004416005546001600160a01b031690565b60016200067e565b620004563060016200067e565b6200046561dead60016200067e565b6019546200047e906001600160a01b031660016200067e565b601b5462000497906001600160a01b031660016200067e565b620004a33382620006f4565b5050505050505050620009ef565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620005565760405162461bcd60e51b8152602060048201819052602482015260008051602062002fba83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152602080526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031633146200061f5760405162461bcd60e51b8152602060048201819052602482015260008051602062002fba83398151915260448201526064016200054d565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314620006c95760405162461bcd60e51b8152602060048201819052602482015260008051602062002fba83398151915260448201526064016200054d565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6001600160a01b0382166200074c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200054d565b8060026000828254620007609190620009d9565b90915550506001600160a01b038216600090815260208190526040812080548392906200078f908490620009d9565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200080957607f821691505b6020821081036200082a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007d957600081815260208120601f850160051c81016020861015620008595750805b601f850160051c820191505b818110156200087a5782815560010162000865565b505050505050565b81516001600160401b038111156200089e576200089e620007de565b620008b681620008af8454620007f4565b8462000830565b602080601f831160018114620008ee5760008415620008d55750858301515b600019600386901b1c1916600185901b1785556200087a565b600085815260208120601f198616915b828110156200091f57888601518255948401946001909101908401620008fe565b50858210156200093e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200096157600080fd5b81516001600160a01b03811681146200097957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620009b057620009b062000980565b92915050565b600082620009d457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009b057620009b062000980565b60805160a05161257462000a466000396000818161040001526112f9015260008181610716015281816112bb01528181611f3f01528181611ff801528181612034015281816120ae015261211601526125746000f3fe6080604052600436106102b25760003560e01c806375f0a87411610175578063a457c2d7116100dc578063c876d0b911610095578063d621e8131161006f578063d621e81314610843578063dd62ed3e14610862578063ee1510a3146108a8578063f2fde38b146108be57600080fd5b8063c876d0b9146107f3578063d2fcc0011461080d578063d36e82391461082d57600080fd5b8063a457c2d714610738578063a9059cbb14610758578063b62496f514610778578063bfb0f8fb146107a7578063c18bc195146107bd578063c2db0760146107dd57600080fd5b80638f3fa8601161012e5780638f3fa8601461068357806395d89b41146106995780639b4dc8cc146106ae5780639d9241ec146106ce5780639dc29fac146106e4578063a0e47bf61461070457600080fd5b806375f0a874146105e35780637cf1fb39146106035780637e150d661461061957806381669e2f1461062f57806382aa7c68146106455780638da5cb5b1461066557600080fd5b806342d0b0bc116102195780636ddd1713116101d25780636ddd17131461052d57806370a082311461054d578063715018a614610583578063721e623314610598578063751039fc146105ae5780637571336a146105c357600080fd5b806342d0b0bc146104825780634a5bf273146104985780634a62bb65146104ae5780634e221c27146104c857806355a7b6771461050157806359b107b91461051757600080fd5b8063313ce5671161026b578063313ce5671461039a5780633268cc56146103b657806332972e46146103ee57806339509351146104225780633ad10ef61461044257806342966c681461046257600080fd5b806306fdde03146102be578063095ea7b3146102e95780631714bf1b1461031957806318160ddd1461033b578063203e727e1461035a57806323b872dd1461037a57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d36108de565b6040516102e0919061218e565b60405180910390f35b3480156102f557600080fd5b506103096103043660046121f1565b610970565b60405190151581526020016102e0565b34801561032557600080fd5b5061033961033436600461221d565b610987565b005b34801561034757600080fd5b506002545b6040519081526020016102e0565b34801561036657600080fd5b5061033961037536600461225b565b610a19565b34801561038657600080fd5b50610309610395366004612274565b610aea565b3480156103a657600080fd5b50604051601281526020016102e0565b3480156103c257600080fd5b506012546103d6906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b3480156103fa57600080fd5b506103d67f000000000000000000000000000000000000000000000000000000000000000081565b34801561042e57600080fd5b5061030961043d3660046121f1565b610b94565b34801561044e57600080fd5b50601a546103d6906001600160a01b031681565b34801561046e57600080fd5b5061033961047d36600461225b565b610bd0565b34801561048e57600080fd5b5061034c600b5481565b3480156104a457600080fd5b5061034c60115481565b3480156104ba57600080fd5b506009546103099060ff1681565b3480156104d457600080fd5b506103096104e33660046122b5565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561050d57600080fd5b5061034c600d5481565b34801561052357600080fd5b5061034c600e5481565b34801561053957600080fd5b506009546103099062010000900460ff1681565b34801561055957600080fd5b5061034c6105683660046122b5565b6001600160a01b031660009081526020819052604090205490565b34801561058f57600080fd5b50610339610bdd565b3480156105a457600080fd5b5061034c600f5481565b3480156105ba57600080fd5b50610309610c13565b3480156105cf57600080fd5b506103396105de36600461221d565b610c78565b3480156105ef57600080fd5b506019546103d6906001600160a01b031681565b34801561060f57600080fd5b5061034c60105481565b34801561062557600080fd5b5061034c60065481565b34801561063b57600080fd5b5061034c600c5481565b34801561065157600080fd5b5061033961066036600461225b565b610ccd565b34801561067157600080fd5b506005546001600160a01b03166103d6565b34801561068f57600080fd5b5061034c60085481565b3480156106a557600080fd5b506102d3610d5a565b3480156106ba57600080fd5b50601b546103d6906001600160a01b031681565b3480156106da57600080fd5b5061034c600a5481565b3480156106f057600080fd5b506103396106ff3660046121f1565b610d69565b34801561071057600080fd5b506103d67f000000000000000000000000000000000000000000000000000000000000000081565b34801561074457600080fd5b506103096107533660046121f1565b610d93565b34801561076457600080fd5b506103096107733660046121f1565b610e2c565b34801561078457600080fd5b506103096107933660046122b5565b602080526000908152604090205460ff1681565b3480156107b357600080fd5b5061034c60185481565b3480156107c957600080fd5b506103396107d836600461225b565b610e39565b3480156107e957600080fd5b5061034c60175481565b3480156107ff57600080fd5b50601d546103099060ff1681565b34801561081957600080fd5b5061033961082836600461221d565b610f0f565b34801561083957600080fd5b5061034c60075481565b34801561084f57600080fd5b5060095461030990610100900460ff1681565b34801561086e57600080fd5b5061034c61087d3660046122d2565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108b457600080fd5b5061034c60165481565b3480156108ca57600080fd5b506103396108d93660046122b5565b610f64565b6060600380546108ed90612300565b80601f016020809104026020016040519081016040528092919081815260200182805461091990612300565b80156109665780601f1061093b57610100808354040283529160200191610966565b820191906000526020600020905b81548152906001019060200180831161094957829003601f168201915b5050505050905090565b600061097d338484610ffc565b5060015b92915050565b6005546001600160a01b031633146109ba5760405162461bcd60e51b81526004016109b19061233a565b60405180910390fd5b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610a435760405162461bcd60e51b81526004016109b19061233a565b670de0b6b3a76400006103e8610a5860025490565b610a63906001612385565b610a6d919061239c565b610a77919061239c565b811015610ad25760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d6178547853697a65206c6f776572207468616e20604482015263302e312560e01b60648201526084016109b1565b610ae481670de0b6b3a7640000612385565b60065550565b6000610af7848484611120565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b7c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109b1565b610b898533858403610ffc565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161097d918590610bcb9086906123be565b610ffc565b610bda33826119a9565b50565b6005546001600160a01b03163314610c075760405162461bcd60e51b81526004016109b19061233a565b610c116000611af7565b565b6005546000906001600160a01b03163314610c405760405162461bcd60e51b81526004016109b19061233a565b506001600f819055600060108190556011819055600e8290556009805460ff19169055600b829055600c819055600d55600a81905590565b6005546001600160a01b03163314610ca25760405162461bcd60e51b81526004016109b19061233a565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610cf75760405162461bcd60e51b81526004016109b19061233a565b600954610100900460ff1615610d405760405162461bcd60e51b815260206004820152600e60248201526d151bdad95b881b185d5b98da195960921b60448201526064016109b1565b6009805443601e5562ffff00191662010100179055601f55565b6060600480546108ed90612300565b3360009081526013602052604090205460ff16610d8557600080fd5b610d8f82826119a9565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e155760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109b1565b610e223385858403610ffc565b5060019392505050565b600061097d338484611120565b6005546001600160a01b03163314610e635760405162461bcd60e51b81526004016109b19061233a565b670de0b6b3a76400006103e8610e7860025490565b610e83906005612385565b610e8d919061239c565b610e97919061239c565b811015610ef75760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460448201526768616e20302e352560c01b60648201526084016109b1565b610f0981670de0b6b3a7640000612385565b60085550565b6005546001600160a01b03163314610f395760405162461bcd60e51b81526004016109b19061233a565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f8e5760405162461bcd60e51b81526004016109b19061233a565b6001600160a01b038116610ff35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b1565b610bda81611af7565b6001600160a01b03831661105e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109b1565b6001600160a01b0382166110bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111465760405162461bcd60e51b81526004016109b1906123d1565b6001600160a01b03821661116c5760405162461bcd60e51b81526004016109b190612416565b806000036111855761118083836000611b49565b505050565b60095460ff161561166a576005546001600160a01b038481169116148015906111bc57506005546001600160a01b03838116911614155b80156111d057506001600160a01b03821615155b80156111e757506001600160a01b03821661dead14155b80156111fd5750600554600160a01b900460ff16155b1561166a57600954610100900460ff16611295576001600160a01b03831660009081526013602052604090205460ff168061125057506001600160a01b03821660009081526013602052604090205460ff165b6112955760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109b1565b601d5460ff16156113dc576005546001600160a01b038381169116148015906112f057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561132e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b156113dc57326000908152601c602052604090205443116113c95760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016109b1565b326000908152601c602052604090204390555b6001600160a01b038316600090815260208052604090205460ff16801561141c57506001600160a01b03821660009081526014602052604090205460ff16155b15611515576006548111156114865760405162461bcd60e51b815260206004820152602a60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526936b0bc2a3c29b4bd329760b11b60648201526084016109b1565b6001600160a01b03821660009081526015602052604090205460ff16611510576008546001600160a01b0383166000908152602081905260409020546114cc90836123be565b11156115105760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b1565b61166a565b6001600160a01b038216600090815260208052604090205460ff16801561155557506001600160a01b03831660009081526014602052604090205460ff16155b156115c0576006548111156115105760405162461bcd60e51b815260206004820152602b60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526a1036b0bc2a3c29b4bd329760a91b60648201526084016109b1565b6001600160a01b03821660009081526014602052604090205460ff1661166a576001600160a01b03821660009081526015602052604090205460ff1661166a576008546001600160a01b03831660009081526020819052604090205461162690836123be565b111561166a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b1565b306000908152602081905260409020546007548110801590819061168f575060075483115b80156116a3575060095462010000900460ff165b80156116b95750600554600160a01b900460ff16155b80156116dd57506001600160a01b038516600090815260208052604090205460ff16155b801561170257506001600160a01b03851660009081526013602052604090205460ff16155b801561172757506001600160a01b03841660009081526013602052604090205460ff16155b15611755576005805460ff60a01b1916600160a01b179055611747611c9e565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526013602052604090205460ff600160a01b9092048216159116806117a357506001600160a01b03851660009081526013602052604090205460ff165b156117ac575060005b60008115611995576001600160a01b038616600090815260208052604090205460ff1680156117dd57506000600a54115b1561189b5761180260646117fc600a5488611ebd90919063ffffffff16565b90611ed0565b9050600a54600c54826118159190612385565b61181f919061239c565b6017600082825461183091906123be565b9091555050600a54600d546118459083612385565b61184f919061239c565b6018600082825461186091906123be565b9091555050600a54600b546118759083612385565b61187f919061239c565b6016600082825461189091906123be565b909155506119779050565b6001600160a01b038716600090815260208052604090205460ff1680156118c457506000600e54115b15611977576118e360646117fc600e5488611ebd90919063ffffffff16565b9050600e54601054826118f69190612385565b611900919061239c565b6017600082825461191191906123be565b9091555050600e546011546119269083612385565b611930919061239c565b6018600082825461194191906123be565b9091555050600e54600f546119569083612385565b611960919061239c565b6016600082825461197191906123be565b90915550505b801561198857611988873083611b49565b6119928186612459565b94505b6119a0878787611b49565b50505050505050565b6001600160a01b038216611a095760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109b1565b6001600160a01b03821660009081526020819052604090205481811015611a7d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109b1565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611aac908490612459565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611b6f5760405162461bcd60e51b81526004016109b1906123d1565b6001600160a01b038216611b955760405162461bcd60e51b81526004016109b190612416565b6001600160a01b03831660009081526020819052604090205481811015611c0d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109b1565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611c449084906123be565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c9091815260200190565b60405180910390a350505050565b3060009081526020819052604081205490506000601854601654601754611cc591906123be565b611ccf91906123be565b90506000821580611cde575081155b15611ce857505050565b600754611cf6906014612385565b831115611d0e57600754611d0b906014612385565b92505b600060028360175486611d219190612385565b611d2b919061239c565b611d35919061239c565b90506000611d438583611edc565b905047611d4f82611ee8565b6000611d5b4783611edc565b90506000611d78876117fc60165485611ebd90919063ffffffff16565b90506000611d95886117fc60185486611ebd90919063ffffffff16565b9050600081611da48486612459565b611dae9190612459565b6000601781905560168190556018819055601a546040519293506001600160a01b031691849181818185875af1925050503d8060008114611e0b576040519150601f19603f3d011682016040523d82523d6000602084013e611e10565b606091505b50909850508615801590611e245750600081115b15611e7757611e3387826120a8565b601754604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6019546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611eb0573d6000803e3d6000fd5b5050505050505050505050565b6000611ec98284612385565b9392505050565b6000611ec9828461239c565b6000611ec98284612459565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f1d57611f1d61246c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbf9190612482565b81600181518110611fd257611fd261246c565b60200260200101906001600160a01b031690816001600160a01b03168152505061201d307f000000000000000000000000000000000000000000000000000000000000000084610ffc565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061207290859060009086903090429060040161249f565b600060405180830381600087803b15801561208c57600080fd5b505af11580156120a0573d6000803e3d6000fd5b505050505050565b6120d3307f000000000000000000000000000000000000000000000000000000000000000084610ffc565b601b5460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c40160606040518083038185885af1158015612162573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121879190612510565b5050505050565b600060208083528351808285015260005b818110156121bb5785810183015185820160400152820161219f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bda57600080fd5b6000806040838503121561220457600080fd5b823561220f816121dc565b946020939093013593505050565b6000806040838503121561223057600080fd5b823561223b816121dc565b91506020830135801515811461225057600080fd5b809150509250929050565b60006020828403121561226d57600080fd5b5035919050565b60008060006060848603121561228957600080fd5b8335612294816121dc565b925060208401356122a4816121dc565b929592945050506040919091013590565b6000602082840312156122c757600080fd5b8135611ec9816121dc565b600080604083850312156122e557600080fd5b82356122f0816121dc565b91506020830135612250816121dc565b600181811c9082168061231457607f821691505b60208210810361233457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176109815761098161236f565b6000826123b957634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156109815761098161236f565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109815761098161236f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561249457600080fd5b8151611ec9816121dc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124ef5784516001600160a01b0316835293830193918301916001016124ca565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561252557600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220fd05c1d151d51f905acde26cb308f8c57e7327573f87565de823ed881898fe0164736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x6080604052600436106102b25760003560e01c806375f0a87411610175578063a457c2d7116100dc578063c876d0b911610095578063d621e8131161006f578063d621e81314610843578063dd62ed3e14610862578063ee1510a3146108a8578063f2fde38b146108be57600080fd5b8063c876d0b9146107f3578063d2fcc0011461080d578063d36e82391461082d57600080fd5b8063a457c2d714610738578063a9059cbb14610758578063b62496f514610778578063bfb0f8fb146107a7578063c18bc195146107bd578063c2db0760146107dd57600080fd5b80638f3fa8601161012e5780638f3fa8601461068357806395d89b41146106995780639b4dc8cc146106ae5780639d9241ec146106ce5780639dc29fac146106e4578063a0e47bf61461070457600080fd5b806375f0a874146105e35780637cf1fb39146106035780637e150d661461061957806381669e2f1461062f57806382aa7c68146106455780638da5cb5b1461066557600080fd5b806342d0b0bc116102195780636ddd1713116101d25780636ddd17131461052d57806370a082311461054d578063715018a614610583578063721e623314610598578063751039fc146105ae5780637571336a146105c357600080fd5b806342d0b0bc146104825780634a5bf273146104985780634a62bb65146104ae5780634e221c27146104c857806355a7b6771461050157806359b107b91461051757600080fd5b8063313ce5671161026b578063313ce5671461039a5780633268cc56146103b657806332972e46146103ee57806339509351146104225780633ad10ef61461044257806342966c681461046257600080fd5b806306fdde03146102be578063095ea7b3146102e95780631714bf1b1461031957806318160ddd1461033b578063203e727e1461035a57806323b872dd1461037a57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d36108de565b6040516102e0919061218e565b60405180910390f35b3480156102f557600080fd5b506103096103043660046121f1565b610970565b60405190151581526020016102e0565b34801561032557600080fd5b5061033961033436600461221d565b610987565b005b34801561034757600080fd5b506002545b6040519081526020016102e0565b34801561036657600080fd5b5061033961037536600461225b565b610a19565b34801561038657600080fd5b50610309610395366004612274565b610aea565b3480156103a657600080fd5b50604051601281526020016102e0565b3480156103c257600080fd5b506012546103d6906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b3480156103fa57600080fd5b506103d67f00000000000000000000000013693c2929777ef5a10e2ff2b4b4ae53848ba54a81565b34801561042e57600080fd5b5061030961043d3660046121f1565b610b94565b34801561044e57600080fd5b50601a546103d6906001600160a01b031681565b34801561046e57600080fd5b5061033961047d36600461225b565b610bd0565b34801561048e57600080fd5b5061034c600b5481565b3480156104a457600080fd5b5061034c60115481565b3480156104ba57600080fd5b506009546103099060ff1681565b3480156104d457600080fd5b506103096104e33660046122b5565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561050d57600080fd5b5061034c600d5481565b34801561052357600080fd5b5061034c600e5481565b34801561053957600080fd5b506009546103099062010000900460ff1681565b34801561055957600080fd5b5061034c6105683660046122b5565b6001600160a01b031660009081526020819052604090205490565b34801561058f57600080fd5b50610339610bdd565b3480156105a457600080fd5b5061034c600f5481565b3480156105ba57600080fd5b50610309610c13565b3480156105cf57600080fd5b506103396105de36600461221d565b610c78565b3480156105ef57600080fd5b506019546103d6906001600160a01b031681565b34801561060f57600080fd5b5061034c60105481565b34801561062557600080fd5b5061034c60065481565b34801561063b57600080fd5b5061034c600c5481565b34801561065157600080fd5b5061033961066036600461225b565b610ccd565b34801561067157600080fd5b506005546001600160a01b03166103d6565b34801561068f57600080fd5b5061034c60085481565b3480156106a557600080fd5b506102d3610d5a565b3480156106ba57600080fd5b50601b546103d6906001600160a01b031681565b3480156106da57600080fd5b5061034c600a5481565b3480156106f057600080fd5b506103396106ff3660046121f1565b610d69565b34801561071057600080fd5b506103d67f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561074457600080fd5b506103096107533660046121f1565b610d93565b34801561076457600080fd5b506103096107733660046121f1565b610e2c565b34801561078457600080fd5b506103096107933660046122b5565b602080526000908152604090205460ff1681565b3480156107b357600080fd5b5061034c60185481565b3480156107c957600080fd5b506103396107d836600461225b565b610e39565b3480156107e957600080fd5b5061034c60175481565b3480156107ff57600080fd5b50601d546103099060ff1681565b34801561081957600080fd5b5061033961082836600461221d565b610f0f565b34801561083957600080fd5b5061034c60075481565b34801561084f57600080fd5b5060095461030990610100900460ff1681565b34801561086e57600080fd5b5061034c61087d3660046122d2565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108b457600080fd5b5061034c60165481565b3480156108ca57600080fd5b506103396108d93660046122b5565b610f64565b6060600380546108ed90612300565b80601f016020809104026020016040519081016040528092919081815260200182805461091990612300565b80156109665780601f1061093b57610100808354040283529160200191610966565b820191906000526020600020905b81548152906001019060200180831161094957829003601f168201915b5050505050905090565b600061097d338484610ffc565b5060015b92915050565b6005546001600160a01b031633146109ba5760405162461bcd60e51b81526004016109b19061233a565b60405180910390fd5b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610a435760405162461bcd60e51b81526004016109b19061233a565b670de0b6b3a76400006103e8610a5860025490565b610a63906001612385565b610a6d919061239c565b610a77919061239c565b811015610ad25760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d6178547853697a65206c6f776572207468616e20604482015263302e312560e01b60648201526084016109b1565b610ae481670de0b6b3a7640000612385565b60065550565b6000610af7848484611120565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b7c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109b1565b610b898533858403610ffc565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161097d918590610bcb9086906123be565b610ffc565b610bda33826119a9565b50565b6005546001600160a01b03163314610c075760405162461bcd60e51b81526004016109b19061233a565b610c116000611af7565b565b6005546000906001600160a01b03163314610c405760405162461bcd60e51b81526004016109b19061233a565b506001600f819055600060108190556011819055600e8290556009805460ff19169055600b829055600c819055600d55600a81905590565b6005546001600160a01b03163314610ca25760405162461bcd60e51b81526004016109b19061233a565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610cf75760405162461bcd60e51b81526004016109b19061233a565b600954610100900460ff1615610d405760405162461bcd60e51b815260206004820152600e60248201526d151bdad95b881b185d5b98da195960921b60448201526064016109b1565b6009805443601e5562ffff00191662010100179055601f55565b6060600480546108ed90612300565b3360009081526013602052604090205460ff16610d8557600080fd5b610d8f82826119a9565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e155760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109b1565b610e223385858403610ffc565b5060019392505050565b600061097d338484611120565b6005546001600160a01b03163314610e635760405162461bcd60e51b81526004016109b19061233a565b670de0b6b3a76400006103e8610e7860025490565b610e83906005612385565b610e8d919061239c565b610e97919061239c565b811015610ef75760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460448201526768616e20302e352560c01b60648201526084016109b1565b610f0981670de0b6b3a7640000612385565b60085550565b6005546001600160a01b03163314610f395760405162461bcd60e51b81526004016109b19061233a565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f8e5760405162461bcd60e51b81526004016109b19061233a565b6001600160a01b038116610ff35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b1565b610bda81611af7565b6001600160a01b03831661105e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109b1565b6001600160a01b0382166110bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111465760405162461bcd60e51b81526004016109b1906123d1565b6001600160a01b03821661116c5760405162461bcd60e51b81526004016109b190612416565b806000036111855761118083836000611b49565b505050565b60095460ff161561166a576005546001600160a01b038481169116148015906111bc57506005546001600160a01b03838116911614155b80156111d057506001600160a01b03821615155b80156111e757506001600160a01b03821661dead14155b80156111fd5750600554600160a01b900460ff16155b1561166a57600954610100900460ff16611295576001600160a01b03831660009081526013602052604090205460ff168061125057506001600160a01b03821660009081526013602052604090205460ff165b6112955760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109b1565b601d5460ff16156113dc576005546001600160a01b038381169116148015906112f057507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b801561132e57507f00000000000000000000000013693c2929777ef5a10e2ff2b4b4ae53848ba54a6001600160a01b0316826001600160a01b031614155b156113dc57326000908152601c602052604090205443116113c95760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016109b1565b326000908152601c602052604090204390555b6001600160a01b038316600090815260208052604090205460ff16801561141c57506001600160a01b03821660009081526014602052604090205460ff16155b15611515576006548111156114865760405162461bcd60e51b815260206004820152602a60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526936b0bc2a3c29b4bd329760b11b60648201526084016109b1565b6001600160a01b03821660009081526015602052604090205460ff16611510576008546001600160a01b0383166000908152602081905260409020546114cc90836123be565b11156115105760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b1565b61166a565b6001600160a01b038216600090815260208052604090205460ff16801561155557506001600160a01b03831660009081526014602052604090205460ff16155b156115c0576006548111156115105760405162461bcd60e51b815260206004820152602b60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526a1036b0bc2a3c29b4bd329760a91b60648201526084016109b1565b6001600160a01b03821660009081526014602052604090205460ff1661166a576001600160a01b03821660009081526015602052604090205460ff1661166a576008546001600160a01b03831660009081526020819052604090205461162690836123be565b111561166a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109b1565b306000908152602081905260409020546007548110801590819061168f575060075483115b80156116a3575060095462010000900460ff165b80156116b95750600554600160a01b900460ff16155b80156116dd57506001600160a01b038516600090815260208052604090205460ff16155b801561170257506001600160a01b03851660009081526013602052604090205460ff16155b801561172757506001600160a01b03841660009081526013602052604090205460ff16155b15611755576005805460ff60a01b1916600160a01b179055611747611c9e565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526013602052604090205460ff600160a01b9092048216159116806117a357506001600160a01b03851660009081526013602052604090205460ff165b156117ac575060005b60008115611995576001600160a01b038616600090815260208052604090205460ff1680156117dd57506000600a54115b1561189b5761180260646117fc600a5488611ebd90919063ffffffff16565b90611ed0565b9050600a54600c54826118159190612385565b61181f919061239c565b6017600082825461183091906123be565b9091555050600a54600d546118459083612385565b61184f919061239c565b6018600082825461186091906123be565b9091555050600a54600b546118759083612385565b61187f919061239c565b6016600082825461189091906123be565b909155506119779050565b6001600160a01b038716600090815260208052604090205460ff1680156118c457506000600e54115b15611977576118e360646117fc600e5488611ebd90919063ffffffff16565b9050600e54601054826118f69190612385565b611900919061239c565b6017600082825461191191906123be565b9091555050600e546011546119269083612385565b611930919061239c565b6018600082825461194191906123be565b9091555050600e54600f546119569083612385565b611960919061239c565b6016600082825461197191906123be565b90915550505b801561198857611988873083611b49565b6119928186612459565b94505b6119a0878787611b49565b50505050505050565b6001600160a01b038216611a095760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109b1565b6001600160a01b03821660009081526020819052604090205481811015611a7d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109b1565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611aac908490612459565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611b6f5760405162461bcd60e51b81526004016109b1906123d1565b6001600160a01b038216611b955760405162461bcd60e51b81526004016109b190612416565b6001600160a01b03831660009081526020819052604090205481811015611c0d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109b1565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611c449084906123be565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c9091815260200190565b60405180910390a350505050565b3060009081526020819052604081205490506000601854601654601754611cc591906123be565b611ccf91906123be565b90506000821580611cde575081155b15611ce857505050565b600754611cf6906014612385565b831115611d0e57600754611d0b906014612385565b92505b600060028360175486611d219190612385565b611d2b919061239c565b611d35919061239c565b90506000611d438583611edc565b905047611d4f82611ee8565b6000611d5b4783611edc565b90506000611d78876117fc60165485611ebd90919063ffffffff16565b90506000611d95886117fc60185486611ebd90919063ffffffff16565b9050600081611da48486612459565b611dae9190612459565b6000601781905560168190556018819055601a546040519293506001600160a01b031691849181818185875af1925050503d8060008114611e0b576040519150601f19603f3d011682016040523d82523d6000602084013e611e10565b606091505b50909850508615801590611e245750600081115b15611e7757611e3387826120a8565b601754604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6019546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611eb0573d6000803e3d6000fd5b5050505050505050505050565b6000611ec98284612385565b9392505050565b6000611ec9828461239c565b6000611ec98284612459565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f1d57611f1d61246c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbf9190612482565b81600181518110611fd257611fd261246c565b60200260200101906001600160a01b031690816001600160a01b03168152505061201d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610ffc565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061207290859060009086903090429060040161249f565b600060405180830381600087803b15801561208c57600080fd5b505af11580156120a0573d6000803e3d6000fd5b505050505050565b6120d3307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610ffc565b601b5460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063f305d71990839060c40160606040518083038185885af1158015612162573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121879190612510565b5050505050565b600060208083528351808285015260005b818110156121bb5785810183015185820160400152820161219f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bda57600080fd5b6000806040838503121561220457600080fd5b823561220f816121dc565b946020939093013593505050565b6000806040838503121561223057600080fd5b823561223b816121dc565b91506020830135801515811461225057600080fd5b809150509250929050565b60006020828403121561226d57600080fd5b5035919050565b60008060006060848603121561228957600080fd5b8335612294816121dc565b925060208401356122a4816121dc565b929592945050506040919091013590565b6000602082840312156122c757600080fd5b8135611ec9816121dc565b600080604083850312156122e557600080fd5b82356122f0816121dc565b91506020830135612250816121dc565b600181811c9082168061231457607f821691505b60208210810361233457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176109815761098161236f565b6000826123b957634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156109815761098161236f565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109815761098161236f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561249457600080fd5b8151611ec9816121dc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124ef5784516001600160a01b0316835293830193918301916001016124ca565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561252557600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220fd05c1d151d51f905acde26cb308f8c57e7327573f87565de823ed881898fe0164736f6c63430008130033

Deployed Bytecode Sourcemap

10980:14015:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2491:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3405:169;;;;;;;;;;-1:-1:-1;3405:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3405:169:0;1023:187:1;23529:174:0;;;;;;;;;;-1:-1:-1;23529:174:0;;;;;:::i;:::-;;:::i;:::-;;2812:108;;;;;;;;;;-1:-1:-1;2900:12:0;;2812:108;;;1782:25:1;;;1770:2;1755:18;2812:108:0;1636:177:1;22086:253:0;;;;;;;;;;-1:-1:-1;22086:253:0;;;;;:::i;:::-;;:::i;3582:492::-;;;;;;;;;;-1:-1:-1;3582:492:0;;;;;:::i;:::-;;:::i;2711:93::-;;;;;;;;;;-1:-1:-1;2711:93:0;;2794:2;2606:36:1;;2594:2;2579:18;2711:93:0;2464:184:1;11662:73:0;;;;;;;;;;-1:-1:-1;11662:73:0;;;;-1:-1:-1;;;;;11662:73:0;;;;;;-1:-1:-1;;;;;2817:32:1;;;2799:51;;2787:2;2772:18;11662:73:0;2653:203:1;11623:32:0;;;;;;;;;;;;;;;4082:215;;;;;;;;;;-1:-1:-1;4082:215:0;;;;;:::i;:::-;;:::i;12067:25::-;;;;;;;;;;-1:-1:-1;12067:25:0;;;;-1:-1:-1;;;;;12067:25:0;;;23323:81;;;;;;;;;;-1:-1:-1;23323:81:0;;;;;:::i;:::-;;:::i;11337:31::-;;;;;;;;;;;;;;;;11540:24;;;;;;;;;;;;;;;;11184:33;;;;;;;;;;-1:-1:-1;11184:33:0;;;;;;;;16832:118;;;;;;;;;;-1:-1:-1;16832:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;16918:24:0;16894:4;16918:24;;;:15;:24;;;;;;;;;16832:118;11406:25;;;;;;;;;;;;;;;;11440:26;;;;;;;;;;;;;;;;11263:31;;;;;;;;;;-1:-1:-1;11263:31:0;;;;;;;;;;;2928:127;;;;;;;;;;-1:-1:-1;2928:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3029:18:0;3002:7;3029:18;;;;;;;;;;;;2928:127;7588:103;;;;;;;;;;;;;:::i;11473:30::-;;;;;;;;;;;;;;;;22391:333;;;;;;;;;;;;;:::i;23004:152::-;;;;;;;;;;-1:-1:-1;23004:152:0;;;;;:::i;:::-;;:::i;12030:30::-;;;;;;;;;;-1:-1:-1;12030:30:0;;;;-1:-1:-1;;;;;12030:30:0;;;11510:23;;;;;;;;;;;;;;;;11082:24;;;;;;;;;;;;;;;;11375;;;;;;;;;;;;;;;;16958:254;;;;;;;;;;-1:-1:-1;16958:254:0;;;;;:::i;:::-;;:::i;7365:87::-;;;;;;;;;;-1:-1:-1;7438:6:0;;-1:-1:-1;;;;;7438:6:0;7365:87;;11147:28;;;;;;;;;;;;;;;;2599:104;;;;;;;;;;;;;:::i;12099:24::-;;;;;;;;;;-1:-1:-1;12099:24:0;;;;-1:-1:-1;;;;;12099:24:0;;;11303:27;;;;;;;;;;;;;;;;23412:109;;;;;;;;;;-1:-1:-1;23412:109:0;;;;;:::i;:::-;;:::i;11573:43::-;;;;;;;;;;;;;;;4305:413;;;;;;;;;;-1:-1:-1;4305:413:0;;;;;:::i;:::-;;:::i;3063:175::-;;;;;;;;;;-1:-1:-1;3063:175:0;;;;;:::i;:::-;;:::i;12367:57::-;;;;;;;;;;-1:-1:-1;12367:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11990:27;;;;;;;;;;;;;;;;22732:264;;;;;;;;;;-1:-1:-1;22732:264:0;;;;;:::i;:::-;;:::i;11957:26::-;;;;;;;;;;;;;;;;12253:39;;;;;;;;;;-1:-1:-1;12253:39:0;;;;;;;;23164:151;;;;;;;;;;-1:-1:-1;23164:151:0;;;;;:::i;:::-;;:::i;11113:27::-;;;;;;;;;;;;;;;;11224:32;;;;;;;;;;-1:-1:-1;11224:32:0;;;;;;;;;;;3246:151;;;;;;;;;;-1:-1:-1;3246:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3362:18:0;;;3335:7;3362:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3246:151;11917:33;;;;;;;;;;;;;;;;7699:201;;;;;;;;;;-1:-1:-1;7699:201:0;;;;;:::i;:::-;;:::i;2491:100::-;2545:13;2578:5;2571:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2491:100;:::o;3405:169::-;3488:4;3505:39;2060:10;3528:7;3537:6;3505:8;:39::i;:::-;-1:-1:-1;3562:4:0;3405:169;;;;;:::o;23529:174::-;7438:6;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;23610:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;;;;;:35;;-1:-1:-1;;23610:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;23661:34;;1163:41:1;;;23661:34:0::1;::::0;1136:18:1;23661:34:0::1;;;;;;;23529:174:::0;;:::o;22086:253::-;7438:6;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;22223:4:::1;22215;22194:13;2900:12:::0;;;2812:108;22194:13:::1;:17;::::0;22210:1:::1;22194:17;:::i;:::-;22193:26;;;;:::i;:::-;22192:35;;;;:::i;:::-;22182:6;:45;;22160:131;;;::::0;-1:-1:-1;;;22160:131:0;;5214:2:1;22160:131:0::1;::::0;::::1;5196:21:1::0;5253:2;5233:18;;;5226:30;5292:34;5272:18;;;5265:62;-1:-1:-1;;;5343:18:1;;;5336:34;5387:19;;22160:131:0::1;5012:400:1::0;22160:131:0::1;22314:17;:6:::0;22324::::1;22314:17;:::i;:::-;22302:9;:29:::0;-1:-1:-1;22086:253:0:o;3582:492::-;3722:4;3739:36;3749:6;3757:9;3768:6;3739:9;:36::i;:::-;-1:-1:-1;;;;;3815:19:0;;3788:24;3815:19;;;:11;:19;;;;;;;;2060:10;3815:33;;;;;;;;3867:26;;;;3859:79;;;;-1:-1:-1;;;3859:79:0;;5619:2:1;3859:79:0;;;5601:21:1;5658:2;5638:18;;;5631:30;5697:34;5677:18;;;5670:62;-1:-1:-1;;;5748:18:1;;;5741:38;5796:19;;3859:79:0;5417:404:1;3859:79:0;3974:57;3983:6;2060:10;4024:6;4005:16;:25;3974:8;:57::i;:::-;-1:-1:-1;4062:4:0;;3582:492;-1:-1:-1;;;;3582:492:0:o;4082:215::-;2060:10;4170:4;4219:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4219:34:0;;;;;;;;;;4170:4;;4187:80;;4210:7;;4219:47;;4256:10;;4219:47;:::i;:::-;4187:8;:80::i;23323:81::-;23371:25;23377:10;23389:6;23371:5;:25::i;:::-;23323:81;:::o;7588:103::-;7438:6;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;7653:30:::1;7680:1;7653:18;:30::i;:::-;7588:103::o:0;22391:333::-;7438:6;;22443:4;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;-1:-1:-1;22478:1:0::1;22460:15;:19:::0;;;22501:1:::1;22490:8;:12:::0;;;22513:9:::1;:13:::0;;;22537:11:::1;:15:::0;;;22563:14:::1;:22:::0;;-1:-1:-1;;22563:22:0::1;::::0;;22598:16:::1;:20:::0;;;22629:9:::1;:13:::0;;;22653:10:::1;:14:::0;22678:12:::1;:16:::0;;;22391:333;:::o;23004:152::-;7438:6;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23117:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:31;;-1:-1:-1;;23117:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23004:152::o;16958:254::-;7438:6;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;17041:12:::1;::::0;::::1;::::0;::::1;;;17040:13;17032:40;;;::::0;-1:-1:-1;;;17032:40:0;;6158:2:1;17032:40:0::1;::::0;::::1;6140:21:1::0;6197:2;6177:18;;;6170:30;-1:-1:-1;;;6216:18:1;;;6209:44;6270:18;;17032:40:0::1;5956:338:1::0;17032:40:0::1;17083:12;:19:::0;;17128:12:::1;17113;:27:::0;-1:-1:-1;;17151:18:0;;;;;17180:10:::1;:24:::0;16958:254::o;2599:104::-;2655:13;2688:7;2681:14;;;;;:::i;23412:109::-;12780:10;16894:4;16918:24;;;:15;:24;;;;;;;;12757:35;;;;;;23491:22:::1;23497:7;23506:6;23491:5;:22::i;:::-;23412:109:::0;;:::o;4305:413::-;2060:10;4398:4;4442:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4442:34:0;;;;;;;;;;4495:35;;;;4487:85;;;;-1:-1:-1;;;4487:85:0;;6501:2:1;4487:85:0;;;6483:21:1;6540:2;6520:18;;;6513:30;6579:34;6559:18;;;6552:62;-1:-1:-1;;;6630:18:1;;;6623:35;6675:19;;4487:85:0;6299:401:1;4487:85:0;4608:67;2060:10;4631:7;4659:15;4640:16;:34;4608:8;:67::i;:::-;-1:-1:-1;4706:4:0;;4305:413;-1:-1:-1;;;4305:413:0:o;3063:175::-;3149:4;3166:42;2060:10;3190:9;3201:6;3166:9;:42::i;22732:264::-;7438:6;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;22872:4:::1;22864;22843:13;2900:12:::0;;;2812:108;22843:13:::1;:17;::::0;22859:1:::1;22843:17;:::i;:::-;22842:26;;;;:::i;:::-;22841:35;;;;:::i;:::-;22831:6;:45;;22809:135;;;::::0;-1:-1:-1;;;22809:135:0;;6907:2:1;22809:135:0::1;::::0;::::1;6889:21:1::0;6946:2;6926:18;;;6919:30;6985:34;6965:18;;;6958:62;-1:-1:-1;;;7036:18:1;;;7029:38;7084:19;;22809:135:0::1;6705:404:1::0;22809:135:0::1;22971:17;:6:::0;22981::::1;22971:17;:::i;:::-;22955:13;:33:::0;-1:-1:-1;22732:264:0:o;23164:151::-;7438:6;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23272:28:0;;;::::1;;::::0;;;:20:::1;:28;::::0;;;;:35;;-1:-1:-1;;23272:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23164:151::o;7699:201::-;7438:6;;-1:-1:-1;;;;;7438:6:0;2060:10;7500:23;7492:68;;;;-1:-1:-1;;;7492:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7788:22:0;::::1;7780:73;;;::::0;-1:-1:-1;;;7780:73:0;;7316:2:1;7780:73:0::1;::::0;::::1;7298:21:1::0;7355:2;7335:18;;;7328:30;7394:34;7374:18;;;7367:62;-1:-1:-1;;;7445:18:1;;;7438:36;7491:19;;7780:73:0::1;7114:402:1::0;7780:73:0::1;7864:28;7883:8;7864:18;:28::i;6473:380::-:0;-1:-1:-1;;;;;6609:19:0;;6601:68;;;;-1:-1:-1;;;6601:68:0;;7723:2:1;6601:68:0;;;7705:21:1;7762:2;7742:18;;;7735:30;7801:34;7781:18;;;7774:62;-1:-1:-1;;;7852:18:1;;;7845:34;7896:19;;6601:68:0;7521:400:1;6601:68:0;-1:-1:-1;;;;;6688:21:0;;6680:68;;;;-1:-1:-1;;;6680:68:0;;8128:2:1;6680:68:0;;;8110:21:1;8167:2;8147:18;;;8140:30;8206:34;8186:18;;;8179:62;-1:-1:-1;;;8257:18:1;;;8250:32;8299:19;;6680:68:0;7926:398:1;6680:68:0;-1:-1:-1;;;;;6761:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6813:32;;1782:25:1;;;6813:32:0;;1755:18:1;6813:32:0;;;;;;;6473:380;;;:::o;17257:4817::-;-1:-1:-1;;;;;17389:18:0;;17381:68;;;;-1:-1:-1;;;17381:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17468:16:0;;17460:64;;;;-1:-1:-1;;;17460:64:0;;;;;;;:::i;:::-;17541:6;17551:1;17541:11;17537:93;;17569:28;17585:4;17591:2;17595:1;17569:15;:28::i;:::-;17257:4817;;;:::o;17537:93::-;17646:14;;;;17642:2609;;;7438:6;;-1:-1:-1;;;;;17699:15:0;;;7438:6;;17699:15;;;;:49;;-1:-1:-1;7438:6:0;;-1:-1:-1;;;;;17735:13:0;;;7438:6;;17735:13;;17699:49;:86;;;;-1:-1:-1;;;;;;17769:16:0;;;;17699:86;:128;;;;-1:-1:-1;;;;;;17806:21:0;;17820:6;17806:21;;17699:128;:158;;;;-1:-1:-1;17849:8:0;;-1:-1:-1;;;17849:8:0;;;;17848:9;17699:158;17677:2563;;;17897:12;;;;;;;17892:214;;-1:-1:-1;;;;;17968:21:0;;;;;;:15;:21;;;;;;;;;:44;;-1:-1:-1;;;;;;17993:19:0;;;;;;:15;:19;;;;;;;;17968:44;17934:152;;;;-1:-1:-1;;;17934:152:0;;9341:2:1;17934:152:0;;;9323:21:1;9380:2;9360:18;;;9353:30;-1:-1:-1;;;9399:18:1;;;9392:52;9461:18;;17934:152:0;9139:346:1;17934:152:0;18262:20;;;;18258:619;;;7438:6;;-1:-1:-1;;;;;18337:13:0;;;7438:6;;18337:13;;;;:66;;;18393:9;-1:-1:-1;;;;;18379:24:0;:2;-1:-1:-1;;;;;18379:24:0;;;18337:66;:117;;;;;18446:7;-1:-1:-1;;;;;18432:22:0;:2;-1:-1:-1;;;;;18432:22:0;;;18337:117;18307:551;;;18567:9;18543:34;;;;:23;:34;;;;;;18613:12;-1:-1:-1;18505:253:0;;;;-1:-1:-1;;;18505:253:0;;9692:2:1;18505:253:0;;;9674:21:1;9731:2;9711:18;;;9704:30;9770:34;9750:18;;;9743:62;9841:34;9821:18;;;9814:62;-1:-1:-1;;;9892:19:1;;;9885:40;9942:19;;18505:253:0;9490:477:1;18505:253:0;18809:9;18785:34;;;;:23;:34;;;;;18822:12;18785:49;;18307:551;-1:-1:-1;;;;;18951:31:0;;;;;;:25;:31;;;;;;;;:77;;;;-1:-1:-1;;;;;;19008:20:0;;;;;;:16;:20;;;;;;;;19007:21;18951:77;18925:1300;;;19115:9;;19105:6;:19;;19071:147;;;;-1:-1:-1;;;19071:147:0;;10174:2:1;19071:147:0;;;10156:21:1;10213:2;10193:18;;;10186:30;10252:34;10232:18;;;10225:62;-1:-1:-1;;;10303:18:1;;;10296:40;10353:19;;19071:147:0;9972:406:1;19071:147:0;-1:-1:-1;;;;;19246:24:0;;;;;;:20;:24;;;;;;;;19241:262;;19387:13;;-1:-1:-1;;;;;3029:18:0;;3002:7;3029:18;;;;;;;;;;;19361:22;;:6;:22;:::i;:::-;:39;;19323:156;;;;-1:-1:-1;;;19323:156:0;;10585:2:1;19323:156:0;;;10567:21:1;10624:2;10604:18;;;10597:30;-1:-1:-1;;;10643:18:1;;;10636:49;10702:18;;19323:156:0;10383:343:1;19323:156:0;18925:1300;;;-1:-1:-1;;;;;19600:29:0;;;;;;:25;:29;;;;;;;;:77;;;;-1:-1:-1;;;;;;19655:22:0;;;;;;:16;:22;;;;;;;;19654:23;19600:77;19574:651;;;19764:9;;19754:6;:19;;19720:148;;;;-1:-1:-1;;;19720:148:0;;10933:2:1;19720:148:0;;;10915:21:1;10972:2;10952:18;;;10945:30;11011:34;10991:18;;;10984:62;-1:-1:-1;;;11062:18:1;;;11055:41;11113:19;;19720:148:0;10731:407:1;19574:651:0;-1:-1:-1;;;;;19899:20:0;;;;;;:16;:20;;;;;;;;19894:331;;-1:-1:-1;;;;;19949:24:0;;;;;;:20;:24;;;;;;;;19944:262;;20090:13;;-1:-1:-1;;;;;3029:18:0;;3002:7;3029:18;;;;;;;;;;;20064:22;;:6;:22;:::i;:::-;:39;;20026:156;;;;-1:-1:-1;;;20026:156:0;;10585:2:1;20026:156:0;;;10567:21:1;10624:2;10604:18;;;10597:30;-1:-1:-1;;;10643:18:1;;;10636:49;10702:18;;20026:156:0;10383:343:1;20026:156:0;20312:4;20263:28;3029:18;;;;;;;;;;;20370:12;;20346:36;;;;;;;20413:45;;;20446:12;;20437:6;:21;20413:45;:73;;;;-1:-1:-1;20475:11:0;;;;;;;20413:73;:99;;;;-1:-1:-1;20504:8:0;;-1:-1:-1;;;20504:8:0;;;;20503:9;20413:99;:148;;;;-1:-1:-1;;;;;;20530:31:0;;;;;;:25;:31;;;;;;;;20529:32;20413:148;:187;;;;-1:-1:-1;;;;;;20579:21:0;;;;;;:15;:21;;;;;;;;20578:22;20413:187;:224;;;;-1:-1:-1;;;;;;20618:19:0;;;;;;:15;:19;;;;;;;;20617:20;20413:224;20395:356;;;20664:8;:15;;-1:-1:-1;;;;20664:15:0;-1:-1:-1;;;20664:15:0;;;20696:10;:8;:10::i;:::-;20723:8;:16;;-1:-1:-1;;;;20723:16:0;;;20395:356;20779:8;;-1:-1:-1;;;;;20889:21:0;;20763:12;20889:21;;;:15;:21;;;;;;20779:8;-1:-1:-1;;;20779:8:0;;;;;20778:9;;20889:21;;:44;;-1:-1:-1;;;;;;20914:19:0;;;;;;:15;:19;;;;;;;;20889:44;20885:92;;;-1:-1:-1;20960:5:0;20885:92;20989:12;21094:7;21090:931;;;-1:-1:-1;;;;;21146:29:0;;;;;;:25;:29;;;;;;;;:49;;;;;21194:1;21179:12;;:16;21146:49;21142:730;;;21223:33;21252:3;21223:24;21234:12;;21223:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;21216:40;;21311:12;;21298:9;;21291:4;:16;;;;:::i;:::-;21290:33;;;;:::i;:::-;21275:11;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;21380:12:0;;21366:10;;21359:17;;:4;:17;:::i;:::-;21358:34;;;;:::i;:::-;21342:12;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;21461:12:0;;21441:16;;21434:23;;:4;:23;:::i;:::-;21433:40;;;;:::i;:::-;21411:18;;:62;;;;;;;:::i;:::-;;;;-1:-1:-1;21142:730:0;;-1:-1:-1;21142:730:0;;-1:-1:-1;;;;;21535:31:0;;;;;;:25;:31;;;;;;;;:50;;;;;21584:1;21570:11;;:15;21535:50;21531:341;;;21613:32;21641:3;21613:23;21624:11;;21613:6;:10;;:23;;;;:::i;:32::-;21606:39;;21699:11;;21687:8;;21680:4;:15;;;;:::i;:::-;21679:31;;;;:::i;:::-;21664:11;;:46;;;;;;;:::i;:::-;;;;-1:-1:-1;;21766:11:0;;21753:9;;21746:16;;:4;:16;:::i;:::-;21745:32;;;;:::i;:::-;21729:12;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;21845:11:0;;21826:15;;21819:22;;:4;:22;:::i;:::-;21818:38;;;;:::i;:::-;21796:18;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;21531:341:0;21892:8;;21888:91;;21921:42;21937:4;21951;21958;21921:15;:42::i;:::-;21995:14;22005:4;21995:14;;:::i;:::-;;;21090:931;22033:33;22049:4;22055:2;22059:6;22033:15;:33::i;:::-;17370:4704;;;;17257:4817;;;:::o;5874:591::-;-1:-1:-1;;;;;5958:21:0;;5950:67;;;;-1:-1:-1;;;5950:67:0;;11478:2:1;5950:67:0;;;11460:21:1;11517:2;11497:18;;;11490:30;11556:34;11536:18;;;11529:62;-1:-1:-1;;;11607:18:1;;;11600:31;11648:19;;5950:67:0;11276:397:1;5950:67:0;-1:-1:-1;;;;;6117:18:0;;6092:22;6117:18;;;;;;;;;;;6154:24;;;;6146:71;;;;-1:-1:-1;;;6146:71:0;;11880:2:1;6146:71:0;;;11862:21:1;11919:2;11899:18;;;11892:30;11958:34;11938:18;;;11931:62;-1:-1:-1;;;12009:18:1;;;12002:32;12051:19;;6146:71:0;11678:398:1;6146:71:0;-1:-1:-1;;;;;6253:18:0;;:9;:18;;;;;;;;;;6274:23;;;6253:44;;6319:12;:22;;6291:6;;6253:9;6319:22;;6291:6;;6319:22;:::i;:::-;;;;-1:-1:-1;;6359:37:0;;1782:25:1;;;6385:1:0;;-1:-1:-1;;;;;6359:37:0;;;;;1770:2:1;1755:18;6359:37:0;;;;;;;17257:4817;;;:::o;7908:191::-;8001:6;;;-1:-1:-1;;;;;8018:17:0;;;-1:-1:-1;;;;;;8018:17:0;;;;;;;8051:40;;8001:6;;;8018:17;8001:6;;8051:40;;7982:16;;8051:40;7971:128;7908:191;:::o;4726:733::-;-1:-1:-1;;;;;4866:20:0;;4858:70;;;;-1:-1:-1;;;4858:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4947:23:0;;4939:71;;;;-1:-1:-1;;;4939:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5107:17:0;;5083:21;5107:17;;;;;;;;;;;5143:23;;;;5135:74;;;;-1:-1:-1;;;5135:74:0;;12283:2:1;5135:74:0;;;12265:21:1;12322:2;12302:18;;;12295:30;12361:34;12341:18;;;12334:62;-1:-1:-1;;;12412:18:1;;;12405:36;12458:19;;5135:74:0;12081:402:1;5135:74:0;-1:-1:-1;;;;;5245:17:0;;;:9;:17;;;;;;;;;;;5265:22;;;5245:42;;5309:20;;;;;;;;:30;;5281:6;;5245:9;5309:30;;5281:6;;5309:30;:::i;:::-;;;;;;;;5374:9;-1:-1:-1;;;;;5357:35:0;5366:6;-1:-1:-1;;;;;5357:35:0;;5385:6;5357:35;;;;1782:25:1;;1770:2;1755:18;;1636:177;5357:35:0;;;;;;;;4847:612;4726:733;;;:::o;15235:1589::-;15318:4;15274:23;3029:18;;;;;;;;;;;15274:50;;15335:25;15424:12;;15390:18;;15363:11;;:45;;;;:::i;:::-;:73;;;;:::i;:::-;15335:101;-1:-1:-1;15447:12:0;15476:20;;;:46;;-1:-1:-1;15500:22:0;;15476:46;15472:85;;;15539:7;;;15235:1589::o;15472:85::-;15591:12;;:17;;15606:2;15591:17;:::i;:::-;15573:15;:35;15569:103;;;15643:12;;:17;;15658:2;15643:17;:::i;:::-;15625:35;;15569:103;15733:18;15808:1;15788:17;15773:11;;15755:15;:29;;;;:::i;:::-;15754:51;;;;:::i;:::-;:55;;;;:::i;:::-;15733:76;-1:-1:-1;15820:26:0;15849:31;:15;15733:76;15849:19;:31::i;:::-;15820:60;-1:-1:-1;15921:21:0;15955:35;15820:60;15955:15;:35::i;:::-;16003:18;16024:44;:21;16050:17;16024:25;:44::i;:::-;16003:65;;16081:18;16102:57;16141:17;16102:34;16117:18;;16102:10;:14;;:34;;;;:::i;:57::-;16081:78;;16170:17;16190:51;16223:17;16190:28;16205:12;;16190:10;:14;;:28;;;;:::i;:51::-;16170:71;-1:-1:-1;16254:23:0;16170:71;16280:23;16293:10;16280;:23;:::i;:::-;:35;;;;:::i;:::-;16342:1;16328:11;:15;;;16354:18;:22;;;16387:12;:16;;;16438:10;;16430:46;;16254:61;;-1:-1:-1;;;;;;16438:10:0;;16462:9;;16430:46;16342:1;16430:46;16462:9;16438:10;16430:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16416:60:0;;-1:-1:-1;;16493:14:0;;;;;:37;;;16529:1;16511:15;:19;16493:37;16489:261;;;16547:41;16560:10;16572:15;16547:12;:41::i;:::-;16712:11;;16608:130;;;12900:25:1;;;12956:2;12941:18;;12934:34;;;12984:18;;;12977:34;;;;16608:130:0;;;;;;12888:2:1;16608:130:0;;;16489:261;16768:15;;16760:56;;-1:-1:-1;;;;;16768:15:0;;;;16794:21;16760:56;;;;;16768:15;16760:56;16768:15;16760:56;16794:21;16768:15;16760:56;;;;;;;;;;;;;;;;;;;;;15263:1561;;;;;;;;;;15235:1589::o;8344:98::-;8402:7;8429:5;8433:1;8429;:5;:::i;:::-;8422:12;8344:98;-1:-1:-1;;;8344:98:0:o;8450:::-;8508:7;8535:5;8539:1;8535;:5;:::i;8238:98::-;8296:7;8323:5;8327:1;8323;:5;:::i;23903:570::-;24052:16;;;24066:1;24052:16;;;;;;;;24028:21;;24052:16;;;;;;;;;;-1:-1:-1;24052:16:0;24028:40;;24097:4;24079;24084:1;24079:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24079:23:0;;;-1:-1:-1;;;;;24079:23:0;;;;;24123:9;-1:-1:-1;;;;;24123:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24113:4;24118:1;24113:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1;;;;;24113:26:0;;;-1:-1:-1;;;;;24113:26:0;;;;;24152:56;24169:4;24184:9;24196:11;24152:8;:56::i;:::-;24247:218;;-1:-1:-1;;;24247:218:0;;-1:-1:-1;;;;;24247:9:0;:60;;;;:218;;24322:11;;24348:1;;24392:4;;24419;;24439:15;;24247:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23957:516;23903:570;:::o;24487:503::-;24635:56;24652:4;24667:9;24679:11;24635:8;:56::i;:::-;24932:9;;24734:248;;-1:-1:-1;;;24734:248:0;;24800:4;24734:248;;;14868:34:1;14918:18;;;14911:34;;;24846:1:0;14961:18:1;;;14954:34;;;15004:18;;;14997:34;-1:-1:-1;;;;;24932:9:0;;;15047:19:1;;;15040:44;24956:15:0;15100:19:1;;;15093:35;24734:9:0;:25;;;;;;24767:9;;14802:19:1;;24734:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24487:503;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:416::-;1280:6;1288;1341:2;1329:9;1320:7;1316:23;1312:32;1309:52;;;1357:1;1354;1347:12;1309:52;1396:9;1383:23;1415:31;1440:5;1415:31;:::i;:::-;1465:5;-1:-1:-1;1522:2:1;1507:18;;1494:32;1564:15;;1557:23;1545:36;;1535:64;;1595:1;1592;1585:12;1535:64;1618:7;1608:17;;;1215:416;;;;;:::o;1818:180::-;1877:6;1930:2;1918:9;1909:7;1905:23;1901:32;1898:52;;;1946:1;1943;1936:12;1898:52;-1:-1:-1;1969:23:1;;1818:180;-1:-1:-1;1818:180:1:o;2003:456::-;2080:6;2088;2096;2149:2;2137:9;2128:7;2124:23;2120:32;2117:52;;;2165:1;2162;2155:12;2117:52;2204:9;2191:23;2223:31;2248:5;2223:31;:::i;:::-;2273:5;-1:-1:-1;2330:2:1;2315:18;;2302:32;2343:33;2302:32;2343:33;:::i;:::-;2003:456;;2395:7;;-1:-1:-1;;;2449:2:1;2434:18;;;;2421:32;;2003:456::o;2861:247::-;2920:6;2973:2;2961:9;2952:7;2948:23;2944:32;2941:52;;;2989:1;2986;2979:12;2941:52;3028:9;3015:23;3047:31;3072:5;3047:31;:::i;3346:388::-;3414:6;3422;3475:2;3463:9;3454:7;3450:23;3446:32;3443:52;;;3491:1;3488;3481:12;3443:52;3530:9;3517:23;3549:31;3574:5;3549:31;:::i;:::-;3599:5;-1:-1:-1;3656:2:1;3641:18;;3628:32;3669:33;3628:32;3669:33;:::i;3739:380::-;3818:1;3814:12;;;;3861;;;3882:61;;3936:4;3928:6;3924:17;3914:27;;3882:61;3989:2;3981:6;3978:14;3958:18;3955:38;3952:161;;4035:10;4030:3;4026:20;4023:1;4016:31;4070:4;4067:1;4060:15;4098:4;4095:1;4088:15;3952:161;;3739:380;;;:::o;4124:356::-;4326:2;4308:21;;;4345:18;;;4338:30;4404:34;4399:2;4384:18;;4377:62;4471:2;4456:18;;4124:356::o;4485:127::-;4546:10;4541:3;4537:20;4534:1;4527:31;4577:4;4574:1;4567:15;4601:4;4598:1;4591:15;4617:168;4690:9;;;4721;;4738:15;;;4732:22;;4718:37;4708:71;;4759:18;;:::i;4790:217::-;4830:1;4856;4846:132;;4900:10;4895:3;4891:20;4888:1;4881:31;4935:4;4932:1;4925:15;4963:4;4960:1;4953:15;4846:132;-1:-1:-1;4992:9:1;;4790:217::o;5826:125::-;5891:9;;;5912:10;;;5909:36;;;5925:18;;:::i;8329:401::-;8531:2;8513:21;;;8570:2;8550:18;;;8543:30;8609:34;8604:2;8589:18;;8582:62;-1:-1:-1;;;8675:2:1;8660:18;;8653:35;8720:3;8705:19;;8329:401::o;8735:399::-;8937:2;8919:21;;;8976:2;8956:18;;;8949:30;9015:34;9010:2;8995:18;;8988:62;-1:-1:-1;;;9081:2:1;9066:18;;9059:33;9124:3;9109:19;;8735:399::o;11143:128::-;11210:9;;;11231:11;;;11228:37;;;11245:18;;:::i;13154:127::-;13215:10;13210:3;13206:20;13203:1;13196:31;13246:4;13243:1;13236:15;13270:4;13267:1;13260:15;13286:251;13356:6;13409:2;13397:9;13388:7;13384:23;13380:32;13377:52;;;13425:1;13422;13415:12;13377:52;13457:9;13451:16;13476:31;13501:5;13476:31;:::i;13542:980::-;13804:4;13852:3;13841:9;13837:19;13883:6;13872:9;13865:25;13909:2;13947:6;13942:2;13931:9;13927:18;13920:34;13990:3;13985:2;13974:9;13970:18;13963:31;14014:6;14049;14043:13;14080:6;14072;14065:22;14118:3;14107:9;14103:19;14096:26;;14157:2;14149:6;14145:15;14131:29;;14178:1;14188:195;14202:6;14199:1;14196:13;14188:195;;;14267:13;;-1:-1:-1;;;;;14263:39:1;14251:52;;14358:15;;;;14323:12;;;;14299:1;14217:9;14188:195;;;-1:-1:-1;;;;;;;14439:32:1;;;;14434:2;14419:18;;14412:60;-1:-1:-1;;;14503:3:1;14488:19;14481:35;14400:3;13542:980;-1:-1:-1;;;13542:980:1:o;15139:306::-;15227:6;15235;15243;15296:2;15284:9;15275:7;15271:23;15267:32;15264:52;;;15312:1;15309;15302:12;15264:52;15341:9;15335:16;15325:26;;15391:2;15380:9;15376:18;15370:25;15360:35;;15435:2;15424:9;15420:18;15414:25;15404:35;;15139:306;;;;;:::o

Swarm Source

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