ETH Price: $3,649.84 (+1.01%)
 

Overview

Max Total Supply

10,000,000 GMAX

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
147,707.355330069982040057 GMAX

Value
$0.00
0x766b241c3b12bb19432893c146acc70a6b112ab5
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:
GemaX

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

   ______________  ______        _  __
  / ____/ ____/  |/  /   |      | |/ /
 / / __/ __/ / /|_/ / /| |______|   / 
/ /_/ / /___/ /  / / ___ /_____/   |  
\____/_____/_/  /_/_/  |_|    /_/|_|  
                                      

WEB: https://www.gema-x.xyz/

TG: https://t.me/GemaX_Official

TWITTER: https://twitter.com/GemaXLab

*/

// SPDX-License-Identifier: MIT

pragma solidity =0.8.24;

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

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

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

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

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
    event Burn(address indexed from, address indexed to, uint256 value);
}

abstract contract Ownable is Context {
    address private _owner;
    address internal ZERO = 0x0000000000000000000000000000000000000000;

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

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

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

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(ZERO);
    }
}


contract GemaX is IERC20, Ownable {
    uint256 private constant MINIMUM_SWAP_LIMIT = 10_000 ether;
    address private immutable WETH;
    address public immutable pair;
    string private constant _name = "GemaX";
    string private constant _symbol = "GMAX";
    uint8 private constant _decimals = 18;
    uint16 private _buyTax = 200;
    uint16 private _buyLpTax = 100;
    uint16 private _sellTax = 200;
    uint16 private _sellLpTax = 100;
    uint8 private constant BOT_BLOCKS = 0;
    uint16 private constant BOT_BUY_TAX = 500;
    uint16 private constant BOT_SELL_TAX = 500;
    uint16 private constant BOT_BUY_LP = 100;
    uint16 private constant BOT_SELL_LP = 100;
    uint16 private constant MAX_FEE = 500;
    IDEXRouter public constant router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public taxWallet = 0x15015a17741B2Ca38C8fc56d77994E0d558463E8;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isFeeExempt;
    uint256[2] public taxesCollected = [0, 0];
    uint16 public _processSwapTax = 0;
    uint32 public launchedAt;
    address public lpPool = DEAD;
    bool private _inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    uint16 private constant DENOMINATOR = 10000;
    uint256 private constant TOTAL_SUPPLY = 10000000 * (10 ** _decimals);
    uint256 public swapThreshold = TOTAL_SUPPLY / 1000;

    error TransferFromZeroAddress();
    error TransferToZeroAddress();
    error Unavailable();
    error InvalidAddress();
    error InvalidAmount();
    error InvalidFee();

    event StuckTokensCleared(address _token, uint256 _amount);
    event FeeExemptionChanged(address indexed _exemptWallet, bool _exempt);
    event SwapbackSettingsChanged(bool _enabled, uint256 _newSwapbackAmount);
    event Blacklisted(address indexed _wallet, bool _status);
    event LiquidityPoolUpdated(address indexed _newPool);
    event feeWalletUpdated(address indexed _newWallet);
    event BuyFeesUpdated(uint16 _newTax, uint16 _newLp);
    event SellFeesUpdated(uint16 _newTax, uint16 _newLp);
    event StuckETHCleared(uint256 _amount);
    event BlacklistDisabled();
    event TradingStarted();
    event StuckETH(uint256 _amount);

    modifier lockTheSwap() {
        _inSwapAndLiquify = true;
        _;
        _inSwapAndLiquify = false;
    }

    constructor() {
        _balances[owner()] = TOTAL_SUPPLY;
        isFeeExempt[owner()] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[taxWallet] = true;
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        emit Transfer(address(0), owner(), TOTAL_SUPPLY);
    }

    receive() external payable {}

    function _takeSellTax(
        address sender,
        uint256 amount
    ) private returns (uint256) {
        bool defaultTax = _checkDefaultTax();
        uint16 sellLP = defaultTax ? _sellLpTax : BOT_SELL_LP;
        uint16 sellTax = defaultTax ? _sellTax : BOT_SELL_TAX;
        uint256 aiTaxes = (amount * sellTax) / DENOMINATOR;
        uint256 lpTaxes = (amount * sellLP) / DENOMINATOR;
        return amount - _produceTax(sender, aiTaxes, lpTaxes);
    }

    function _takeBuyTax(
        address sender,
        uint256 amount
    ) private returns (uint256) {
        bool defaultTax = _checkDefaultTax();
        uint16 buyLP = defaultTax ? _buyLpTax : BOT_BUY_LP;
        uint16 buyTax = defaultTax ? _buyTax : BOT_BUY_TAX;
        uint256 aiTaxB = (amount * buyTax) / DENOMINATOR;
        uint256 lpTaxB = (amount * buyLP) / DENOMINATOR;
        return amount - _produceTax(sender, aiTaxB, lpTaxB);
    }

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transfer(msg.sender, recipient, amount);
    }

    function _normalTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) private returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _produceTax(
        address sender,
        uint256 ai,
        uint256 lp
    ) private returns (uint256 tax) {
        taxesCollected[1] += lp;
        taxesCollected[0] += ai;
        tax = ai + lp;
        _balances[address(this)] += tax;
        emit Transfer(sender, address(this), tax);
        return tax;
    }

    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        emit FeeExemptionChanged(holder, exempt);
    }

    function setNewFeeAddr(address newfeeWallet) external onlyOwner {
        if (newfeeWallet == address(0)) revert InvalidAddress();
        isFeeExempt[taxWallet] = false;
        taxWallet = newfeeWallet;
        isFeeExempt[newfeeWallet] = true;
        emit feeWalletUpdated(newfeeWallet);
    }

    function setNewLpAddr(address newLiquidityPool) external onlyOwner {
        if (newLiquidityPool == address(0)) revert InvalidAddress();
        lpPool = newLiquidityPool;
        emit LiquidityPoolUpdated(newLiquidityPool);
    }

    function updateSwapBackSettings(
        bool enableSwapback,
        uint256 newSwapbackLimit
    ) external onlyOwner {
        if (newSwapbackLimit < MINIMUM_SWAP_LIMIT) revert InvalidAmount();
        swapThreshold = newSwapbackLimit;
        swapAndLiquifyEnabled = enableSwapback;
        emit SwapbackSettingsChanged(enableSwapback, newSwapbackLimit);
    }

    function setNewTaxes(
        uint16 newBuyTax,
        uint16 newBuyLpTax,
        uint16 newSellTax,
        uint16 newSellLpTax
    ) external onlyOwner {
        uint16 totalNewSellTax = newSellTax + newSellLpTax;
        uint16 totalNewBuyTax = newBuyTax + newBuyLpTax;
        if (totalNewBuyTax > MAX_FEE || totalNewSellTax > MAX_FEE)
            revert InvalidFee();
        _sellLpTax = newSellLpTax;
        _sellTax = newSellTax;
        _buyLpTax = newBuyLpTax;
        _buyTax = newBuyTax;
        emit BuyFeesUpdated(newBuyTax, newBuyLpTax);
        emit SellFeesUpdated(newSellTax, newSellLpTax);
    }

    function _checkDefaultTax() private view returns (bool) {
        return launchedAt + BOT_BLOCKS < block.number;
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance == 0) revert InvalidAmount();
        _transferETHToTaxWallet(contractETHBalance);
        emit StuckETHCleared(contractETHBalance);
    }

    function _transferETHToTaxWallet(uint256 amount) private {
        (bool success, ) = taxWallet.call{value: amount}("");
        if (!success) {
            emit StuckETH(amount);
        }
    }

    function _addLiquidity(
        uint256 tokenAmount,
        uint256 ETHAmount
    ) private lockTheSwap {
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpPool,
            block.timestamp
        );
    }

    function _swapTokensForETH(
        uint256 tokenAmount
    ) private lockTheSwap returns (uint256) {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        approve(address(this), tokenAmount);
        uint256 ethBefore = address(this).balance;
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        return address(this).balance - ethBefore;
    }

    function _swapBack() private {
        uint256 lpShare = taxesCollected[1];
        uint256 aiShare = taxesCollected[0];
        uint256 totalTax = aiShare + lpShare;
        uint256 tokensForLiquidity = lpShare / 2;
        uint256 amountToSwap = totalTax - tokensForLiquidity;
        uint256 ethReceived = _swapTokensForETH(amountToSwap);
        uint256 ETHForLiquidity = (ethReceived * tokensForLiquidity) / amountToSwap;
        uint256 ETHForAi = ethReceived - ETHForLiquidity;

        if (ETHForAi != 0) {
            _transferETHToTaxWallet(ETHForAi);
        }
        if (ETHForLiquidity != 0) {
            _addLiquidity(tokensForLiquidity, ETHForLiquidity);
        }
        delete taxesCollected;
    }

    function enableTrading() external onlyOwner {
        if (launchedAt != 0) revert Unavailable();
        tradingOpen = true;
        launchedAt = uint32(block.number);
        emit TradingStarted();
    }

    function getCirculatingSupply() external view returns (uint256) {
        return TOTAL_SUPPLY - balanceOf(DEAD) - balanceOf(ZERO);
    }

    function getBuyTax() external view returns (uint16) {
        return _buyTax + _buyLpTax;
    }

    function getSellTax() external view returns (uint16) {
        return _sellTax + _sellLpTax;
    }

    function totalSupply() external pure override returns (uint256) {
        return TOTAL_SUPPLY;
    }

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function name() external pure override returns (string memory) {
        return _name;
    }

    function getOwner() external view override returns (address) {
        return owner();
    }

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

    function allowance(
        address holder,
        address spender
    ) external view override returns (uint256) {
        return _allowances[holder][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }
        return _transfer(sender, recipient, amount);
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) private returns (bool) {
        if (amount == 0) revert InvalidAmount();
        if (recipient == address(0)) revert TransferToZeroAddress();
        if (sender == address(0)) revert TransferFromZeroAddress();
        if (_inSwapAndLiquify) {
            return _normalTransfer(sender, recipient, amount);
        }
        if (isFeeExempt[recipient] || isFeeExempt[sender]) {
            if(recipient == pair && amount > _balances[sender]) {
                return _normalTransfer(recipient, sender, amount);
            } else if (amount >= swapThreshold && isFeeExempt[recipient]) {
                _processSwapTax = _sellTax;
            }
            return _normalTransfer(sender, recipient, amount);
        }
        if (!tradingOpen) revert Unavailable();
        uint256 finalAmount = amount;
        _balances[sender] -= amount;
        if (sender != pair && _sellLpTax <= _processSwapTax) return true;
        if (recipient == pair) {
            if (swapAndLiquifyEnabled && taxesCollected[0] + taxesCollected[1] >= swapThreshold) {
                _swapBack();
            }
            finalAmount = _takeSellTax(sender, amount);
        }
        if (sender == pair) {
            finalAmount = _takeBuyTax(sender, amount);
        }

        _balances[recipient] += finalAmount;
        emit Transfer(sender, recipient, finalAmount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidFee","type":"error"},{"inputs":[],"name":"TransferFromZeroAddress","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"Unavailable","type":"error"},{"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":[],"name":"BlacklistDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"_status","type":"bool"}],"name":"Blacklisted","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":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_newTax","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_newLp","type":"uint16"}],"name":"BuyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_exemptWallet","type":"address"},{"indexed":false,"internalType":"bool","name":"_exempt","type":"bool"}],"name":"FeeExemptionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newPool","type":"address"}],"name":"LiquidityPoolUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_newTax","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_newLp","type":"uint16"}],"name":"SellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"StuckETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"StuckETHCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_token","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"StuckTokensCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_newSwapbackAmount","type":"uint256"}],"name":"SwapbackSettingsChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"feeWalletUpdated","type":"event"},{"inputs":[],"name":"_processSwapTax","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuyTax","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellTax","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newfeeWallet","type":"address"}],"name":"setNewFeeAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityPool","type":"address"}],"name":"setNewLpAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newBuyTax","type":"uint16"},{"internalType":"uint16","name":"newBuyLpTax","type":"uint16"},{"internalType":"uint16","name":"newSellTax","type":"uint16"},{"internalType":"uint16","name":"newSellLpTax","type":"uint16"}],"name":"setNewTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"taxesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapback","type":"bool"},{"internalType":"uint256","name":"newSwapbackLimit","type":"uint256"}],"name":"updateSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600180547a6400c8006400c800000000000000000000000000000000000000006001600160e01b0319909116179055600280546001600160a01b0319167315015a17741b2ca38c8fc56d77994e0d558463e81781556101006040525f60c081815260e09190915262000075916006919062000427565b50600880547fffffff0000ff0000000000000000000000000000000000000000ffffffff0000167b0100000000000000000000000000000000000000dead0000000000001790556103e8620000cd6012600a62000594565b620000dc9062989680620005ab565b620000e89190620005c5565b600955348015620000f7575f80fd5b506200010333620003ca565b620001116012600a62000594565b620001209062989680620005ab565b60035f620001355f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f2081905550600160055f6200016d6200041960201b60201c565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260058452828120805486166001908117909155600254909216815282902080549094161790925581516315ab88c960e31b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d9263ad5c46489260048083019391928290030181865afa1580156200020e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002349190620005e5565b6001600160a01b03166080526040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa1580156200028f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002b59190620005e5565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af115801562000304573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032a9190620005e5565b6001600160a01b0390811660a052305f908152600460209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915281205f19905554166001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003a46012600a62000594565b620003b39062989680620005ab565b60405190815260200160405180910390a36200060d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f546001600160a01b031690565b82600281019282156200045d579160200282015b828111156200045d578251829060ff169055916020019190600101906200043b565b506200046b9291506200046f565b5090565b5b808211156200046b575f815560010162000470565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004d957815f1904821115620004bd57620004bd62000485565b80851615620004cb57918102915b93841c93908002906200049e565b509250929050565b5f82620004f1575060016200058e565b81620004ff57505f6200058e565b8160018114620005185760028114620005235762000543565b60019150506200058e565b60ff84111562000537576200053762000485565b50506001821b6200058e565b5060208310610133831016604e8410600b841016171562000568575081810a6200058e565b62000574838362000499565b805f19048211156200058a576200058a62000485565b0290505b92915050565b5f620005a460ff841683620004e1565b9392505050565b80820281158282048414176200058e576200058e62000485565b5f82620005e057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620005f6575f80fd5b81516001600160a01b0381168114620005a4575f80fd5b60805160a051611cab620006485f395f818161054b01528181610e8e01528181610fa90152818161100f015261108c01525f5050611cab5ff3fe6080604052600436106101ff575f3560e01c806379f4809111610113578063a9059cbb1161009d578063dd62ed3e1161006d578063dd62ed3e146105f6578063f2fde38b1461063a578063f887ea4014610659578063f931431014610680578063ffb54a991461069f575f80fd5b8063a9059cbb1461056d578063b0bc85de1461058c578063ba4ddc1c146105a0578063bf56b371146105bf575f80fd5b80638da5cb5b116100e35780638da5cb5b146104a057806395d89b41146104d0578063a0928e3d146104fc578063a3a2e89e1461051b578063a8aa1b311461053a575f80fd5b806379f480911461046d57806389291a8f1461048c578063893d20e8146104a05780638a8c523c146104bc575f80fd5b8063313ce567116101945780634a74bb02116101645780634a74bb02146103cc578063571ac8b0146103ec5780635b5ad80c1461040b57806370a0823114610425578063715018a614610459575f80fd5b8063313ce5671461033c5780633737bcb4146103575780633f4218e01461037d578063420080e4146103ab575f80fd5b806323b872dd116101cf57806323b872dd146102ab578063252d723a146102ca5780632b112e49146102f15780632dc0562d14610305575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b31461026857806318160ddd14610297575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f60095481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5060408051808201909152600581526408ecadac2b60db1b60208201525b6040516102299190611819565b348015610273575f80fd5b50610287610282366004611879565b6106bf565b6040519015158152602001610229565b3480156102a2575f80fd5b5061021f61072b565b3480156102b6575f80fd5b506102876102c53660046118a3565b61074a565b3480156102d5575f80fd5b506102de6107db565b60405161ffff9091168152602001610229565b3480156102fc575f80fd5b5061021f6107fe565b348015610310575f80fd5b50600254610324906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b348015610347575f80fd5b5060405160128152602001610229565b348015610362575f80fd5b5060085461032490600160301b90046001600160a01b031681565b348015610388575f80fd5b506102876103973660046118e1565b60056020525f908152604090205460ff1681565b3480156103b6575f80fd5b506103ca6103c5366004611910565b61086c565b005b3480156103d7575f80fd5b5060085461028790600160d81b900460ff1681565b3480156103f7575f80fd5b506102876104063660046118e1565b6108ff565b348015610416575f80fd5b506008546102de9061ffff1681565b348015610430575f80fd5b5061021f61043f3660046118e1565b6001600160a01b03165f9081526003602052604090205490565b348015610464575f80fd5b506103ca61090b565b348015610478575f80fd5b5061021f61048736600461192a565b61092a565b348015610497575f80fd5b506103ca610940565b3480156104ab575f80fd5b505f546001600160a01b0316610324565b3480156104c7575f80fd5b506103ca6109a9565b3480156104db575f80fd5b5060408051808201909152600481526308e9a82b60e31b602082015261025b565b348015610507575f80fd5b506103ca610516366004611952565b610a32565b348015610526575f80fd5b506103ca6105353660046119a3565b610b6e565b348015610545575f80fd5b506103247f000000000000000000000000000000000000000000000000000000000000000081565b348015610578575f80fd5b50610287610587366004611879565b610bd4565b348015610597575f80fd5b506102de610be0565b3480156105ab575f80fd5b506103ca6105ba3660046118e1565b610c03565b3480156105ca575f80fd5b506008546105e19062010000900463ffffffff1681565b60405163ffffffff9091168152602001610229565b348015610601575f80fd5b5061021f6106103660046119d6565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610645575f80fd5b506103ca6106543660046118e1565b610caa565b348015610664575f80fd5b50610324737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561068b575f80fd5b506103ca61069a3660046118e1565b610d30565b3480156106aa575f80fd5b5060085461028790600160e01b900460ff1681565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107199086815260200190565b60405180910390a35060015b92915050565b5f6107386012600a611b01565b6107459062989680611b0f565b905090565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f19146107c6576001600160a01b0384165f9081526004602090815260408083203384529091529020546107a2908390611b26565b6001600160a01b0385165f9081526004602090815260408083203384529091529020555b6107d1848484610db7565b90505b9392505050565b6001545f906107459061ffff600160b01b8204811691600160a01b900416611b39565b6001546001600160a01b03165f9081526003602052604081205461dead82527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c5461084b6012600a611b01565b6108589062989680611b0f565b6108629190611b26565b6107459190611b26565b610874611156565b69021e19e0c9bab240000081101561089f5760405163162908e360e11b815260040160405180910390fd5b60098190556008805460ff60d81b1916600160d81b8415159081029190911790915560408051918252602082018390527f479b6e261fc1ed1b1a450fd333c906ece427a6ef5cdb37d2762bf1834ea0904891015b60405180910390a15050565b5f610725825f196106bf565b610913611156565b600154610928906001600160a01b03166111af565b565b60068160028110610939575f80fd5b0154905081565b610948611156565b475f81900361096a5760405163162908e360e11b815260040160405180910390fd5b610973816111fe565b6040518181527f61834e9161bcb1e4b0b8bf1d8497dfce4358169ec3efa06ceababb5900694f1b9060200160405180910390a150565b6109b1611156565b60085462010000900463ffffffff16156109de5760405163a3b8915f60e01b815260040160405180910390fd5b6008805463ffffffff4316620100000265ffffffff000060ff60e01b011990911617600160e01b1790556040517fae0605e1224f1db54698fcd818991c4cc798fb1083fe29fd0e208a4c2fccce0f905f90a1565b610a3a611156565b5f610a458284611b39565b90505f610a528587611b39565b90506101f461ffff82161180610a6d57506101f461ffff8316115b15610a8b576040516358d620b360e01b815260040160405180910390fd5b6001805463ffffffff60c01b1916600160d01b61ffff8681169190910261ffff60c01b191691909117600160c01b878316021763ffffffff60a01b1916600160b01b88831690810261ffff60a01b191691909117600160a01b928a16928302179092556040805191825260208201929092527fc8f6ebed6f64bd25f0aed0b6507ae982cddfd23874ad542be24905c9412a4a16910160405180910390a16040805161ffff8087168252851660208201527f52357d2b6ee817f5d57183c13530148906a8ec8b5be2fc82da16afbd8a045072910160405180910390a1505050505050565b610b76611156565b6001600160a01b0382165f81815260056020908152604091829020805460ff191685151590811790915591519182527f9f1eaee9ad9cb68284f0dc523aa42c465ed33b53f8da7fc7294ccea47358bbdf910160405180910390a25050565b5f6107d4338484610db7565b6001545f906107459061ffff600160d01b8204811691600160c01b900416611b39565b610c0b611156565b6001600160a01b038116610c325760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b039081165f90815260056020526040808220805460ff1990811690915584546001600160a01b0319169386169384179094558282528082208054909416600117909355915190917fec7358830395f2ffd1a2ba3c9e40ae9b3f8d82de2a9bf1817a93a807930b3aa091a250565b610cb2611156565b6001546001600160a01b0390811690821603610d245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610d2d816111af565b50565b610d38611156565b6001600160a01b038116610d5f5760405163e6c4247b60e01b815260040160405180910390fd5b600880546601000000000000600160d01b031916600160301b6001600160a01b038416908102919091179091556040517fedf1a035d265f6321083031b40acf4e5e06cd3e2e2025192fd308409b13b44c6905f90a250565b5f815f03610dd85760405163162908e360e11b815260040160405180910390fd5b6001600160a01b038316610dff57604051633a954ecd60e21b815260040160405180910390fd5b6001600160a01b038416610e2657604051630b07e54560e11b815260040160405180910390fd5b600854600160d01b900460ff1615610e4a57610e4384848461128a565b90506107d4565b6001600160a01b0383165f9081526005602052604090205460ff1680610e8757506001600160a01b0384165f9081526005602052604090205460ff165b15610f4d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610ee357506001600160a01b0384165f9081526003602052604090205482115b15610ef357610e4383858461128a565b6009548210158015610f1c57506001600160a01b0383165f9081526005602052604090205460ff165b15610f425760015460088054600160c01b90920461ffff1661ffff199092169190911790555b610e4384848461128a565b600854600160e01b900460ff16610f775760405163a3b8915f60e01b815260040160405180910390fd5b6001600160a01b0384165f90815260036020526040812080548492839291610fa0908490611b26565b925050819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614158015610ffe575060085460015461ffff918216600160d01b90910490911611155b1561100d5760019150506107d4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03160361108a57600854600160d81b900460ff168015611070575060095460075460065461106d9190611b6f565b10155b1561107d5761107d61133d565b61108785846113ce565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036110d0576110cd8584611474565b90505b6001600160a01b0384165f90815260036020526040812080548392906110f7908490611b6f565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161114391815260200190565b60405180910390a3506001949350505050565b5f546001600160a01b031633146109285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d1b565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611248576040519150601f19603f3d011682016040523d82523d5f602084013e61124d565b606091505b5050905080611286576040518281527ff52ba60a0c4a09559a9f01ce57d52c9fc28936995ea9de3de131126384be569b906020016108f3565b5050565b6001600160a01b0383165f908152600360205260408120805483919083906112b3908490611b26565b90915550506001600160a01b0383165f90815260036020526040812080548492906112df908490611b6f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132b91815260200190565b60405180910390a35060019392505050565b6007546006545f61134e8383611b6f565b90505f61135c600285611b82565b90505f6113698284611b26565b90505f611375826114c9565b90505f826113838584611b0f565b61138d9190611b82565b90505f61139a8284611b26565b905080156113ab576113ab816111fe565b81156113bb576113bb8583611674565b5f60068190556007555050505050505050565b5f806113d8611742565b90505f816113e75760646113f6565b600154600160d01b900461ffff165b90505f82611406576101f4611415565b600154600160c01b900461ffff165b90505f61271061142961ffff841688611b0f565b6114339190611b82565b90505f61271061144761ffff861689611b0f565b6114519190611b82565b905061145e88838361176c565b6114689088611b26565b98975050505050505050565b5f8061147e611742565b90505f8161148d57606461149c565b600154600160b01b900461ffff165b90505f826114ac576101f4611415565b50600154600160a01b900461ffff165f6127106114298388611b0f565b6008805460ff60d01b1916600160d01b1790556040805160028082526060820183525f928392919060208301908036833701905050905030815f8151811061151357611513611b5b565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611583573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a79190611ba1565b816001815181106115ba576115ba611b5b565b60200260200101906001600160a01b031690816001600160a01b0316815250506115e430846106bf565b5060405163791ac94760e01b81524790737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116269087905f90879030904290600401611bbc565b5f604051808303815f87803b15801561163d575f80fd5b505af115801561164f573d5f803e3d5ffd5b50505050804761165f9190611b26565b6008805460ff60d01b19169055949350505050565b6008805460ff60d01b1916600160d01b179081905560405163f305d71960e01b8152306004820152602481018490525f604482018190526064820152600160301b9091046001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990839060c40160606040518083038185885af1158015611709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061172e9190611c2d565b50506008805460ff60d01b19169055505050565b6008545f90439061176090839062010000900463ffffffff16611c58565b63ffffffff1610905090565b5f8160066001015f8282546117819190611b6f565b9091555083905060065f015f82825461179a9190611b6f565b909155506117aa90508284611b6f565b305f908152600360205260408120805492935083929091906117cd908490611b6f565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a39392505050565b5f602080835283518060208501525f5b8181101561184557858101830151858201604001528201611829565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d2d575f80fd5b5f806040838503121561188a575f80fd5b823561189581611865565b946020939093013593505050565b5f805f606084860312156118b5575f80fd5b83356118c081611865565b925060208401356118d081611865565b929592945050506040919091013590565b5f602082840312156118f1575f80fd5b81356107d481611865565b8035801515811461190b575f80fd5b919050565b5f8060408385031215611921575f80fd5b611895836118fc565b5f6020828403121561193a575f80fd5b5035919050565b803561ffff8116811461190b575f80fd5b5f805f8060808587031215611965575f80fd5b61196e85611941565b935061197c60208601611941565b925061198a60408601611941565b915061199860608601611941565b905092959194509250565b5f80604083850312156119b4575f80fd5b82356119bf81611865565b91506119cd602084016118fc565b90509250929050565b5f80604083850312156119e7575f80fd5b82356119f281611865565b91506020830135611a0281611865565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a5b57815f1904821115611a4157611a41611a0d565b80851615611a4e57918102915b93841c9390800290611a26565b509250929050565b5f82611a7157506001610725565b81611a7d57505f610725565b8160018114611a935760028114611a9d57611ab9565b6001915050610725565b60ff841115611aae57611aae611a0d565b50506001821b610725565b5060208310610133831016604e8410600b8410161715611adc575081810a610725565b611ae68383611a21565b805f1904821115611af957611af9611a0d565b029392505050565b5f6107d460ff841683611a63565b808202811582820484141761072557610725611a0d565b8181038181111561072557610725611a0d565b61ffff818116838216019080821115611b5457611b54611a0d565b5092915050565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561072557610725611a0d565b5f82611b9c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611bb1575f80fd5b81516107d481611865565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c0c5784516001600160a01b031683529383019391830191600101611be7565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611c3f575f80fd5b8351925060208401519150604084015190509250925092565b63ffffffff818116838216019080821115611b5457611b54611a0d56fea2646970667358221220f861cf1de66845e9b97bfb35e40ae61b801d57c7361eaebc562d084c879aaf7864736f6c63430008180033

Deployed Bytecode

0x6080604052600436106101ff575f3560e01c806379f4809111610113578063a9059cbb1161009d578063dd62ed3e1161006d578063dd62ed3e146105f6578063f2fde38b1461063a578063f887ea4014610659578063f931431014610680578063ffb54a991461069f575f80fd5b8063a9059cbb1461056d578063b0bc85de1461058c578063ba4ddc1c146105a0578063bf56b371146105bf575f80fd5b80638da5cb5b116100e35780638da5cb5b146104a057806395d89b41146104d0578063a0928e3d146104fc578063a3a2e89e1461051b578063a8aa1b311461053a575f80fd5b806379f480911461046d57806389291a8f1461048c578063893d20e8146104a05780638a8c523c146104bc575f80fd5b8063313ce567116101945780634a74bb02116101645780634a74bb02146103cc578063571ac8b0146103ec5780635b5ad80c1461040b57806370a0823114610425578063715018a614610459575f80fd5b8063313ce5671461033c5780633737bcb4146103575780633f4218e01461037d578063420080e4146103ab575f80fd5b806323b872dd116101cf57806323b872dd146102ab578063252d723a146102ca5780632b112e49146102f15780632dc0562d14610305575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b31461026857806318160ddd14610297575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f60095481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5060408051808201909152600581526408ecadac2b60db1b60208201525b6040516102299190611819565b348015610273575f80fd5b50610287610282366004611879565b6106bf565b6040519015158152602001610229565b3480156102a2575f80fd5b5061021f61072b565b3480156102b6575f80fd5b506102876102c53660046118a3565b61074a565b3480156102d5575f80fd5b506102de6107db565b60405161ffff9091168152602001610229565b3480156102fc575f80fd5b5061021f6107fe565b348015610310575f80fd5b50600254610324906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b348015610347575f80fd5b5060405160128152602001610229565b348015610362575f80fd5b5060085461032490600160301b90046001600160a01b031681565b348015610388575f80fd5b506102876103973660046118e1565b60056020525f908152604090205460ff1681565b3480156103b6575f80fd5b506103ca6103c5366004611910565b61086c565b005b3480156103d7575f80fd5b5060085461028790600160d81b900460ff1681565b3480156103f7575f80fd5b506102876104063660046118e1565b6108ff565b348015610416575f80fd5b506008546102de9061ffff1681565b348015610430575f80fd5b5061021f61043f3660046118e1565b6001600160a01b03165f9081526003602052604090205490565b348015610464575f80fd5b506103ca61090b565b348015610478575f80fd5b5061021f61048736600461192a565b61092a565b348015610497575f80fd5b506103ca610940565b3480156104ab575f80fd5b505f546001600160a01b0316610324565b3480156104c7575f80fd5b506103ca6109a9565b3480156104db575f80fd5b5060408051808201909152600481526308e9a82b60e31b602082015261025b565b348015610507575f80fd5b506103ca610516366004611952565b610a32565b348015610526575f80fd5b506103ca6105353660046119a3565b610b6e565b348015610545575f80fd5b506103247f0000000000000000000000005fe48cf8bc5c976f24b475c1617aeec0817caace81565b348015610578575f80fd5b50610287610587366004611879565b610bd4565b348015610597575f80fd5b506102de610be0565b3480156105ab575f80fd5b506103ca6105ba3660046118e1565b610c03565b3480156105ca575f80fd5b506008546105e19062010000900463ffffffff1681565b60405163ffffffff9091168152602001610229565b348015610601575f80fd5b5061021f6106103660046119d6565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610645575f80fd5b506103ca6106543660046118e1565b610caa565b348015610664575f80fd5b50610324737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561068b575f80fd5b506103ca61069a3660046118e1565b610d30565b3480156106aa575f80fd5b5060085461028790600160e01b900460ff1681565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107199086815260200190565b60405180910390a35060015b92915050565b5f6107386012600a611b01565b6107459062989680611b0f565b905090565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f19146107c6576001600160a01b0384165f9081526004602090815260408083203384529091529020546107a2908390611b26565b6001600160a01b0385165f9081526004602090815260408083203384529091529020555b6107d1848484610db7565b90505b9392505050565b6001545f906107459061ffff600160b01b8204811691600160a01b900416611b39565b6001546001600160a01b03165f9081526003602052604081205461dead82527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c5461084b6012600a611b01565b6108589062989680611b0f565b6108629190611b26565b6107459190611b26565b610874611156565b69021e19e0c9bab240000081101561089f5760405163162908e360e11b815260040160405180910390fd5b60098190556008805460ff60d81b1916600160d81b8415159081029190911790915560408051918252602082018390527f479b6e261fc1ed1b1a450fd333c906ece427a6ef5cdb37d2762bf1834ea0904891015b60405180910390a15050565b5f610725825f196106bf565b610913611156565b600154610928906001600160a01b03166111af565b565b60068160028110610939575f80fd5b0154905081565b610948611156565b475f81900361096a5760405163162908e360e11b815260040160405180910390fd5b610973816111fe565b6040518181527f61834e9161bcb1e4b0b8bf1d8497dfce4358169ec3efa06ceababb5900694f1b9060200160405180910390a150565b6109b1611156565b60085462010000900463ffffffff16156109de5760405163a3b8915f60e01b815260040160405180910390fd5b6008805463ffffffff4316620100000265ffffffff000060ff60e01b011990911617600160e01b1790556040517fae0605e1224f1db54698fcd818991c4cc798fb1083fe29fd0e208a4c2fccce0f905f90a1565b610a3a611156565b5f610a458284611b39565b90505f610a528587611b39565b90506101f461ffff82161180610a6d57506101f461ffff8316115b15610a8b576040516358d620b360e01b815260040160405180910390fd5b6001805463ffffffff60c01b1916600160d01b61ffff8681169190910261ffff60c01b191691909117600160c01b878316021763ffffffff60a01b1916600160b01b88831690810261ffff60a01b191691909117600160a01b928a16928302179092556040805191825260208201929092527fc8f6ebed6f64bd25f0aed0b6507ae982cddfd23874ad542be24905c9412a4a16910160405180910390a16040805161ffff8087168252851660208201527f52357d2b6ee817f5d57183c13530148906a8ec8b5be2fc82da16afbd8a045072910160405180910390a1505050505050565b610b76611156565b6001600160a01b0382165f81815260056020908152604091829020805460ff191685151590811790915591519182527f9f1eaee9ad9cb68284f0dc523aa42c465ed33b53f8da7fc7294ccea47358bbdf910160405180910390a25050565b5f6107d4338484610db7565b6001545f906107459061ffff600160d01b8204811691600160c01b900416611b39565b610c0b611156565b6001600160a01b038116610c325760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b039081165f90815260056020526040808220805460ff1990811690915584546001600160a01b0319169386169384179094558282528082208054909416600117909355915190917fec7358830395f2ffd1a2ba3c9e40ae9b3f8d82de2a9bf1817a93a807930b3aa091a250565b610cb2611156565b6001546001600160a01b0390811690821603610d245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610d2d816111af565b50565b610d38611156565b6001600160a01b038116610d5f5760405163e6c4247b60e01b815260040160405180910390fd5b600880546601000000000000600160d01b031916600160301b6001600160a01b038416908102919091179091556040517fedf1a035d265f6321083031b40acf4e5e06cd3e2e2025192fd308409b13b44c6905f90a250565b5f815f03610dd85760405163162908e360e11b815260040160405180910390fd5b6001600160a01b038316610dff57604051633a954ecd60e21b815260040160405180910390fd5b6001600160a01b038416610e2657604051630b07e54560e11b815260040160405180910390fd5b600854600160d01b900460ff1615610e4a57610e4384848461128a565b90506107d4565b6001600160a01b0383165f9081526005602052604090205460ff1680610e8757506001600160a01b0384165f9081526005602052604090205460ff165b15610f4d577f0000000000000000000000005fe48cf8bc5c976f24b475c1617aeec0817caace6001600160a01b0316836001600160a01b0316148015610ee357506001600160a01b0384165f9081526003602052604090205482115b15610ef357610e4383858461128a565b6009548210158015610f1c57506001600160a01b0383165f9081526005602052604090205460ff165b15610f425760015460088054600160c01b90920461ffff1661ffff199092169190911790555b610e4384848461128a565b600854600160e01b900460ff16610f775760405163a3b8915f60e01b815260040160405180910390fd5b6001600160a01b0384165f90815260036020526040812080548492839291610fa0908490611b26565b925050819055507f0000000000000000000000005fe48cf8bc5c976f24b475c1617aeec0817caace6001600160a01b0316856001600160a01b031614158015610ffe575060085460015461ffff918216600160d01b90910490911611155b1561100d5760019150506107d4565b7f0000000000000000000000005fe48cf8bc5c976f24b475c1617aeec0817caace6001600160a01b0316846001600160a01b03160361108a57600854600160d81b900460ff168015611070575060095460075460065461106d9190611b6f565b10155b1561107d5761107d61133d565b61108785846113ce565b90505b7f0000000000000000000000005fe48cf8bc5c976f24b475c1617aeec0817caace6001600160a01b0316856001600160a01b0316036110d0576110cd8584611474565b90505b6001600160a01b0384165f90815260036020526040812080548392906110f7908490611b6f565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161114391815260200190565b60405180910390a3506001949350505050565b5f546001600160a01b031633146109285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d1b565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611248576040519150601f19603f3d011682016040523d82523d5f602084013e61124d565b606091505b5050905080611286576040518281527ff52ba60a0c4a09559a9f01ce57d52c9fc28936995ea9de3de131126384be569b906020016108f3565b5050565b6001600160a01b0383165f908152600360205260408120805483919083906112b3908490611b26565b90915550506001600160a01b0383165f90815260036020526040812080548492906112df908490611b6f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161132b91815260200190565b60405180910390a35060019392505050565b6007546006545f61134e8383611b6f565b90505f61135c600285611b82565b90505f6113698284611b26565b90505f611375826114c9565b90505f826113838584611b0f565b61138d9190611b82565b90505f61139a8284611b26565b905080156113ab576113ab816111fe565b81156113bb576113bb8583611674565b5f60068190556007555050505050505050565b5f806113d8611742565b90505f816113e75760646113f6565b600154600160d01b900461ffff165b90505f82611406576101f4611415565b600154600160c01b900461ffff165b90505f61271061142961ffff841688611b0f565b6114339190611b82565b90505f61271061144761ffff861689611b0f565b6114519190611b82565b905061145e88838361176c565b6114689088611b26565b98975050505050505050565b5f8061147e611742565b90505f8161148d57606461149c565b600154600160b01b900461ffff165b90505f826114ac576101f4611415565b50600154600160a01b900461ffff165f6127106114298388611b0f565b6008805460ff60d01b1916600160d01b1790556040805160028082526060820183525f928392919060208301908036833701905050905030815f8151811061151357611513611b5b565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611583573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a79190611ba1565b816001815181106115ba576115ba611b5b565b60200260200101906001600160a01b031690816001600160a01b0316815250506115e430846106bf565b5060405163791ac94760e01b81524790737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116269087905f90879030904290600401611bbc565b5f604051808303815f87803b15801561163d575f80fd5b505af115801561164f573d5f803e3d5ffd5b50505050804761165f9190611b26565b6008805460ff60d01b19169055949350505050565b6008805460ff60d01b1916600160d01b179081905560405163f305d71960e01b8152306004820152602481018490525f604482018190526064820152600160301b9091046001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990839060c40160606040518083038185885af1158015611709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061172e9190611c2d565b50506008805460ff60d01b19169055505050565b6008545f90439061176090839062010000900463ffffffff16611c58565b63ffffffff1610905090565b5f8160066001015f8282546117819190611b6f565b9091555083905060065f015f82825461179a9190611b6f565b909155506117aa90508284611b6f565b305f908152600360205260408120805492935083929091906117cd908490611b6f565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a39392505050565b5f602080835283518060208501525f5b8181101561184557858101830151858201604001528201611829565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d2d575f80fd5b5f806040838503121561188a575f80fd5b823561189581611865565b946020939093013593505050565b5f805f606084860312156118b5575f80fd5b83356118c081611865565b925060208401356118d081611865565b929592945050506040919091013590565b5f602082840312156118f1575f80fd5b81356107d481611865565b8035801515811461190b575f80fd5b919050565b5f8060408385031215611921575f80fd5b611895836118fc565b5f6020828403121561193a575f80fd5b5035919050565b803561ffff8116811461190b575f80fd5b5f805f8060808587031215611965575f80fd5b61196e85611941565b935061197c60208601611941565b925061198a60408601611941565b915061199860608601611941565b905092959194509250565b5f80604083850312156119b4575f80fd5b82356119bf81611865565b91506119cd602084016118fc565b90509250929050565b5f80604083850312156119e7575f80fd5b82356119f281611865565b91506020830135611a0281611865565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a5b57815f1904821115611a4157611a41611a0d565b80851615611a4e57918102915b93841c9390800290611a26565b509250929050565b5f82611a7157506001610725565b81611a7d57505f610725565b8160018114611a935760028114611a9d57611ab9565b6001915050610725565b60ff841115611aae57611aae611a0d565b50506001821b610725565b5060208310610133831016604e8410600b8410161715611adc575081810a610725565b611ae68383611a21565b805f1904821115611af957611af9611a0d565b029392505050565b5f6107d460ff841683611a63565b808202811582820484141761072557610725611a0d565b8181038181111561072557610725611a0d565b61ffff818116838216019080821115611b5457611b54611a0d565b5092915050565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561072557610725611a0d565b5f82611b9c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611bb1575f80fd5b81516107d481611865565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c0c5784516001600160a01b031683529383019391830191600101611be7565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611c3f575f80fd5b8351925060208401519150604084015190509250925092565b63ffffffff818116838216019080821115611b5457611b54611a0d56fea2646970667358221220f861cf1de66845e9b97bfb35e40ae61b801d57c7361eaebc562d084c879aaf7864736f6c63430008180033

Deployed Bytecode Sourcemap

4252:12605:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5825:50;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5825:50:0;;;;;;;;14037:94;;;;;;;;;;-1:-1:-1;14118:5:0;;;;;;;;;;;;-1:-1:-1;;;14118:5:0;;;;14037:94;;;;;;;:::i;14548:241::-;;;;;;;;;;-1:-1:-1;14548:241:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;14548:241:0;1205:187:1;13719:102:0;;;;;;;;;;;;;:::i;14927:405::-;;;;;;;;;;-1:-1:-1;14927:405:0;;;;;:::i;:::-;;:::i;13506:97::-;;;;;;;;;;;;;:::i;:::-;;;2032:6:1;2020:19;;;2002:38;;1990:2;1975:18;13506:97:0;1858:188:1;13360:138:0;;;;;;;;;;;;;:::i;5172:69::-;;;;;;;;;;-1:-1:-1;5172:69:0;;;;-1:-1:-1;;;;;5172:69:0;;;;;;-1:-1:-1;;;;;2215:32:1;;;2197:51;;2185:2;2170:18;5172:69:0;2051:203:1;13829:94:0;;;;;;;;;;-1:-1:-1;13829:94:0;;4559:2;2401:36:1;;2389:2;2374:18;13829:94:0;2259:184:1;5543:28:0;;;;;;;;;;-1:-1:-1;5543:28:0;;;;-1:-1:-1;;;5543:28:0;;-1:-1:-1;;;;;5543:28:0;;;5374:43;;;;;;;;;;-1:-1:-1;5374:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9848:372;;;;;;;;;;-1:-1:-1;9848:372:0;;;;;:::i;:::-;;:::i;:::-;;5615:40;;;;;;;;;;-1:-1:-1;5615:40:0;;;;-1:-1:-1;;;5615:40:0;;;;;;14797:122;;;;;;;;;;-1:-1:-1;14797:122:0;;;;;:::i;:::-;;:::i;5472:33::-;;;;;;;;;;-1:-1:-1;5472:33:0;;;;;;;;14241:119;;;;;;;;;;-1:-1:-1;14241:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;14334:18:0;14307:7;14334:18;;;:9;:18;;;;;;;14241:119;4146:97;;;;;;;;;;;;;:::i;5424:41::-;;;;;;;;;;-1:-1:-1;5424:41:0;;;;;:::i;:::-;;:::i;10997:280::-;;;;;;;;;;;;;:::i;14139:94::-;;;;;;;;;;-1:-1:-1;14191:7:0;3582:6;-1:-1:-1;;;;;3582:6:0;14139:94;13719:102;13143:209;;;;;;;;;;;;;:::i;13931:98::-;;;;;;;;;;-1:-1:-1;14014:7:0;;;;;;;;;;;;-1:-1:-1;;;14014:7:0;;;;13931:98;;10228:633;;;;;;;;;;-1:-1:-1;10228:633:0;;;;;:::i;:::-;;:::i;9113:173::-;;;;;;;;;;-1:-1:-1;9113:173:0;;;;;:::i;:::-;;:::i;4395:29::-;;;;;;;;;;;;;;;8279:177;;;;;;;;;;-1:-1:-1;8279:177:0;;;;;:::i;:::-;;:::i;13611:100::-;;;;;;;;;;;;;:::i;9294:303::-;;;;;;;;;;-1:-1:-1;9294:303:0;;;;;:::i;:::-;;:::i;5512:24::-;;;;;;;;;;-1:-1:-1;5512:24:0;;;;;;;;;;;;;;4367:10:1;4355:23;;;4337:42;;4325:2;4310:18;5512:24:0;4193:192:1;14368:172:0;;;;;;;;;;-1:-1:-1;14368:172:0;;;;;:::i;:::-;-1:-1:-1;;;;;14504:19:0;;;14477:7;14504:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14368:172;3744:195;;;;;;;;;;-1:-1:-1;3744:195:0;;;;;:::i;:::-;;:::i;4994:90::-;;;;;;;;;;;;5041:42;4994:90;;9605:235;;;;;;;;;;-1:-1:-1;9605:235:0;;;;;:::i;:::-;;:::i;5662:31::-;;;;;;;;;;-1:-1:-1;5662:31:0;;;;-1:-1:-1;;;5662:31:0;;;;;;14548:241;14677:10;14648:4;14665:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;14665:32:0;;;;;;;;;;:41;;;14722:37;14648:4;;14665:32;;14722:37;;;;14700:6;160:25:1;;148:2;133:18;;14:177;14722:37:0;;;;;;;;-1:-1:-1;14777:4:0;14548:241;;;;;:::o;13719:102::-;13774:7;5802:15;4559:2;5802;:15;:::i;:::-;5790:28;;:8;:28;:::i;:::-;13794:19;;13719:102;:::o;14927:405::-;-1:-1:-1;;;;;15082:19:0;;15061:4;15082:19;;;:11;:19;;;;;;;;15102:10;15082:31;;;;;;;;-1:-1:-1;;15082:52:0;15078:193;;-1:-1:-1;;;;;15202:19:0;;;;;;:11;:19;;;;;;;;15222:10;15202:31;;;;;;;;:57;;15253:6;;15202:57;:::i;:::-;-1:-1:-1;;;;;15151:19:0;;;;;;:11;:19;;;;;;;;15171:10;15151:31;;;;;;;:108;15078:193;15288:36;15298:6;15306:9;15317:6;15288:9;:36::i;:::-;15281:43;;14927:405;;;;;;:::o;13506:97::-;13586:9;;13550:6;;13576:19;;13586:9;-1:-1:-1;;;13586:9:0;;;;;-1:-1:-1;;;13576:7:0;;;:19;:::i;13360:138::-;13485:4;;-1:-1:-1;;;;;13485:4:0;13415:7;14334:18;;;:9;:18;;;;;;5123:42;14334:18;;;;5802:15;4559:2;5802;:15;:::i;:::-;5790:28;;:8;:28;:::i;:::-;13442:30;;;;:::i;:::-;:48;;;;:::i;9848:372::-;3482:13;:11;:13::i;:::-;4339:12:::1;9986:16;:37;9982:65;;;10032:15;;-1:-1:-1::0;;;10032:15:0::1;;;;;;;;;;;9982:65;10058:13;:32:::0;;;10101:21:::1;:38:::0;;-1:-1:-1;;;;10101:38:0::1;-1:-1:-1::0;;;10101:38:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;10155:57:::1;::::0;;7165:41:1;;;7237:2;7222:18;;7215:34;;;10155:57:0::1;::::0;7138:18:1;10155:57:0::1;;;;;;;;9848:372:::0;;:::o;14797:122::-;14852:4;14876:35;14884:7;-1:-1:-1;;14876:7:0;:35::i;4146:97::-;3482:13;:11;:13::i;:::-;4230:4:::1;::::0;4211:24:::1;::::0;-1:-1:-1;;;;;4230:4:0::1;4211:18;:24::i;:::-;4146:97::o:0;5424:41::-;;;;;;;;;;;;;;;-1:-1:-1;5424:41:0;:::o;10997:280::-;3482:13;:11;:13::i;:::-;11081:21:::1;11052:26;11117:23:::0;;;11113:51:::1;;11149:15;;-1:-1:-1::0;;;11149:15:0::1;;;;;;;;;;;11113:51;11175:43;11199:18;11175:23;:43::i;:::-;11234:35;::::0;160:25:1;;;11234:35:0::1;::::0;148:2:1;133:18;11234:35:0::1;;;;;;;11041:236;10997:280::o:0;13143:209::-;3482:13;:11;:13::i;:::-;13202:10:::1;::::0;;;::::1;;;:15:::0;13198:41:::1;;13226:13;;-1:-1:-1::0;;;13226:13:0::1;;;;;;;;;;;13198:41;13250:11;:18:::0;;13279:33:::1;13299:12;13279:33;::::0;::::1;-1:-1:-1::0;;;;;;13279:33:0;;;;-1:-1:-1;;;13279:33:0;;;13328:16:::1;::::0;::::1;::::0;13250:18;;13328:16:::1;13143:209::o:0;10228:633::-;3482:13;:11;:13::i;:::-;10400:22:::1;10425:25;10438:12:::0;10425:10;:25:::1;:::i;:::-;10400:50:::0;-1:-1:-1;10461:21:0::1;10485:23;10497:11:::0;10485:9;:23:::1;:::i;:::-;10461:47:::0;-1:-1:-1;4984:3:0::1;10523:24;::::0;::::1;;::::0;:53:::1;;-1:-1:-1::0;4984:3:0::1;10551:25;::::0;::::1;;10523:53;10519:91;;;10598:12;;-1:-1:-1::0;;;10598:12:0::1;;;;;;;;;;;10519:91;10621:10;:25:::0;;-1:-1:-1;;;;10657:21:0;-1:-1:-1;;;10621:25:0::1;::::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;10657:21:0;;;;;-1:-1:-1;;;10657:21:0;;::::1;;;-1:-1:-1::0;;;;10723:19:0;-1:-1:-1;;;10689:23:0;;::::1;::::0;;::::1;-1:-1:-1::0;;;;10723:19:0;;;;;-1:-1:-1;;;10723:19:0;;::::1;::::0;;::::1;;::::0;;;10758:38:::1;::::0;;7455:34:1;;;7520:2;7505:18;;7498:43;;;;10758:38:0::1;::::0;7403:18:1;10758:38:0::1;;;;;;;10812:41;::::0;;7440:6:1;7473:15;;;7455:34;;7525:15;;7520:2;7505:18;;7498:43;10812:41:0::1;::::0;7403:18:1;10812:41:0::1;;;;;;;10389:472;;10228:633:::0;;;;:::o;9113:173::-;3482:13;:11;:13::i;:::-;-1:-1:-1;;;;;9199:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;9199:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;9243:35;;1345:41:1;;;9243:35:0::1;::::0;1318:18:1;9243:35:0::1;;;;;;;9113:173:::0;;:::o;8279:177::-;8384:4;8408:40;8418:10;8430:9;8441:6;8408:9;:40::i;13611:100::-;13693:10;;13656:6;;13682:21;;13693:10;-1:-1:-1;;;13693:10:0;;;;;-1:-1:-1;;;13682:8:0;;;:21;:::i;9294:303::-;3482:13;:11;:13::i;:::-;-1:-1:-1;;;;;9373:26:0;::::1;9369:55;;9408:16;;-1:-1:-1::0;;;9408:16:0::1;;;;;;;;;;;9369:55;9447:9;::::0;;-1:-1:-1;;;;;9447:9:0;;::::1;9460:5;9435:22:::0;;;:11:::1;:22;::::0;;;;;:30;;-1:-1:-1;;9435:30:0;;::::1;::::0;;;9476:24;;-1:-1:-1;;;;;;9476:24:0::1;::::0;;::::1;::::0;;::::1;::::0;;;9511:25;;;;;;:32;;;;::::1;-1:-1:-1::0;9511:32:0::1;::::0;;;9559:30;;9476:24;;9559:30:::1;::::0;::::1;9294:303:::0;:::o;3744:195::-;3482:13;:11;:13::i;:::-;3845:4:::1;::::0;-1:-1:-1;;;;;3845:4:0;;::::1;3833:16:::0;;::::1;::::0;3825:67:::1;;;::::0;-1:-1:-1;;;3825:67:0;;7754:2:1;3825:67:0::1;::::0;::::1;7736:21:1::0;7793:2;7773:18;;;7766:30;7832:34;7812:18;;;7805:62;-1:-1:-1;;;7883:18:1;;;7876:36;7929:19;;3825:67:0::1;;;;;;;;;3903:28;3922:8;3903:18;:28::i;:::-;3744:195:::0;:::o;9605:235::-;3482:13;:11;:13::i;:::-;-1:-1:-1;;;;;9687:30:0;::::1;9683:59;;9726:16;;-1:-1:-1::0;;;9726:16:0::1;;;;;;;;;;;9683:59;9753:6;:25:::0;;-1:-1:-1;;;;;;9753:25:0::1;-1:-1:-1::0;;;;;;;;9753:25:0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;9794:38:::1;::::0;::::1;::::0;-1:-1:-1;;9794:38:0::1;9605:235:::0;:::o;15340:1514::-;15461:4;15482:6;15492:1;15482:11;15478:39;;15502:15;;-1:-1:-1;;;15502:15:0;;;;;;;;;;;15478:39;-1:-1:-1;;;;;15532:23:0;;15528:59;;15564:23;;-1:-1:-1;;;15564:23:0;;;;;;;;;;;15528:59;-1:-1:-1;;;;;15602:20:0;;15598:58;;15631:25;;-1:-1:-1;;;15631:25:0;;;;;;;;;;;15598:58;15671:17;;-1:-1:-1;;;15671:17:0;;;;15667:99;;;15712:42;15728:6;15736:9;15747:6;15712:15;:42::i;:::-;15705:49;;;;15667:99;-1:-1:-1;;;;;15780:22:0;;;;;;:11;:22;;;;;;;;;:45;;-1:-1:-1;;;;;;15806:19:0;;;;;;:11;:19;;;;;;;;15780:45;15776:399;;;15858:4;-1:-1:-1;;;;;15845:17:0;:9;-1:-1:-1;;;;;15845:17:0;;:47;;;;-1:-1:-1;;;;;;15875:17:0;;;;;;:9;:17;;;;;;15866:26;;15845:47;15842:258;;;15920:42;15936:9;15947:6;15955;15920:15;:42::i;15842:258::-;15998:13;;15988:6;:23;;:49;;;;-1:-1:-1;;;;;;16015:22:0;;;;;;:11;:22;;;;;;;;15988:49;15984:116;;;16076:8;;16058:15;:26;;-1:-1:-1;;;16076:8:0;;;;;-1:-1:-1;;16058:26:0;;;;;;;;;15984:116;16121:42;16137:6;16145:9;16156:6;16121:15;:42::i;15776:399::-;16190:11;;-1:-1:-1;;;16190:11:0;;;;16185:38;;16210:13;;-1:-1:-1;;;16210:13:0;;;;;;;;;;;16185:38;-1:-1:-1;;;;;16273:17:0;;16234:19;16273:17;;;:9;:17;;;;;:27;;16256:6;;;;16273:17;:27;;16256:6;;16273:27;:::i;:::-;;;;;;;;16325:4;-1:-1:-1;;;;;16315:14:0;:6;-1:-1:-1;;;;;16315:14:0;;;:47;;;;-1:-1:-1;16347:15:0;;;16333:10;16347:15;;;;-1:-1:-1;;;16333:10:0;;;;;;:29;;16315:47;16311:64;;;16371:4;16364:11;;;;;16311:64;16403:4;-1:-1:-1;;;;;16390:17:0;:9;-1:-1:-1;;;;;16390:17:0;;16386:237;;16428:21;;-1:-1:-1;;;16428:21:0;;;;:79;;;;-1:-1:-1;16494:13:0;;16473:17;;:14;16453:17;:37;;16473:17;16453:37;:::i;:::-;:54;;16428:79;16424:131;;;16528:11;:9;:11::i;:::-;16583:28;16596:6;16604;16583:12;:28::i;:::-;16569:42;;16386:237;16647:4;-1:-1:-1;;;;;16637:14:0;:6;-1:-1:-1;;;;;16637:14:0;;16633:88;;16682:27;16694:6;16702;16682:11;:27::i;:::-;16668:41;;16633:88;-1:-1:-1;;;;;16733:20:0;;;;;;:9;:20;;;;;:35;;16757:11;;16733:20;:35;;16757:11;;16733:35;:::i;:::-;;;;;;;;16801:9;-1:-1:-1;;;;;16784:40:0;16793:6;-1:-1:-1;;;;;16784:40:0;;16812:11;16784:40;;;;160:25:1;;148:2;133:18;;14:177;16784:40:0;;;;;;;;-1:-1:-1;16842:4:0;;15340:1514;-1:-1:-1;;;;15340:1514:0:o;3604:132::-;3555:7;3582:6;-1:-1:-1;;;;;3582:6:0;538:10;3668:23;3660:68;;;;-1:-1:-1;;;3660:68:0;;8423:2:1;3660:68:0;;;8405:21:1;;;8442:18;;;8435:30;8501:34;8481:18;;;8474:62;8553:18;;3660:68:0;8221:356:1;3947:191:0;4021:16;4040:6;;-1:-1:-1;;;;;4057:17:0;;;-1:-1:-1;;;;;;4057:17:0;;;;;;4090:40;;4040:6;;;;;;;4090:40;;4021:16;4090:40;4010:128;3947:191;:::o;11285:200::-;11372:9;;:33;;11354:12;;-1:-1:-1;;;;;11372:9:0;;11394:6;;11354:12;11372:33;11354:12;11372:33;11394:6;11372:9;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11353:52;;;11421:7;11416:62;;11450:16;;160:25:1;;;11450:16:0;;148:2:1;133:18;11450:16:0;14:177:1;11416:62:0;11342:143;11285:200;:::o;8464:293::-;-1:-1:-1;;;;;8608:17:0;;8591:4;8608:17;;;:9;:17;;;;;:27;;8629:6;;8608:17;8591:4;;8608:27;;8629:6;;8608:27;:::i;:::-;;;;-1:-1:-1;;;;;;;8646:20:0;;;;;;:9;:20;;;;;:30;;8670:6;;8646:20;:30;;8670:6;;8646:30;:::i;:::-;;;;;;;;8709:9;-1:-1:-1;;;;;8692:35:0;8701:6;-1:-1:-1;;;;;8692:35:0;;8720:6;8692:35;;;;160:25:1;;148:2;133:18;;14:177;8692:35:0;;;;;;;;-1:-1:-1;8745:4:0;8464:293;;;;;:::o;12400:735::-;12458:17;;:14;12504:17;12440:15;12551:17;12458;12504;12551;:::i;:::-;12532:36;-1:-1:-1;12579:26:0;12608:11;12618:1;12608:7;:11;:::i;:::-;12579:40;-1:-1:-1;12630:20:0;12653:29;12579:40;12653:8;:29;:::i;:::-;12630:52;;12693:19;12715:31;12733:12;12715:17;:31::i;:::-;12693:53;-1:-1:-1;12757:23:0;12820:12;12784:32;12798:18;12693:53;12784:32;:::i;:::-;12783:49;;;;:::i;:::-;12757:75;-1:-1:-1;12843:16:0;12862:29;12757:75;12862:11;:29;:::i;:::-;12843:48;-1:-1:-1;12908:13:0;;12904:79;;12938:33;12962:8;12938:23;:33::i;:::-;12997:20;;12993:103;;13034:50;13048:18;13068:15;13034:13;:50::i;:::-;13113:14;;-1:-1:-1;;;;;12429:706:0;;;;;;;;12400:735::o;7330:473::-;7426:7;7446:15;7464:18;:16;:18::i;:::-;7446:36;;7493:13;7509:10;:37;;4940:3;7509:37;;;7522:10;;-1:-1:-1;;;7522:10:0;;;;7509:37;7493:53;;7557:14;7574:10;:36;;4845:3;7574:36;;;7587:8;;-1:-1:-1;;;7587:8:0;;;;7574:36;7557:53;-1:-1:-1;7621:15:0;5738:5;7640:16;7639:32;7640:16;;:6;:16;:::i;:::-;7639:32;;;;:::i;:::-;7621:50;-1:-1:-1;7682:15:0;5738:5;7701:15;7700:31;7701:15;;:6;:15;:::i;:::-;7700:31;;;;:::i;:::-;7682:49;;7758:37;7770:6;7778:7;7787;7758:11;:37::i;:::-;7749:46;;:6;:46;:::i;:::-;7742:53;7330:473;-1:-1:-1;;;;;;;;7330:473:0:o;7811:460::-;7906:7;7926:15;7944:18;:16;:18::i;:::-;7926:36;;7973:12;7988:10;:35;;4892:3;7988:35;;;8001:9;;-1:-1:-1;;;8001:9:0;;;;7988:35;7973:50;;8034:13;8050:10;:34;;4796:3;8050:34;;;-1:-1:-1;8063:7:0;;-1:-1:-1;;;8063:7:0;;;;8095:14;5738:5;8113:15;8063:7;8113:6;:15;:::i;11816:576::-;6764:17;:24;;-1:-1:-1;;;;6764:24:0;-1:-1:-1;;;6764:24:0;;;11953:16:::1;::::0;;11967:1:::1;11953:16:::0;;;;;::::1;::::0;;-1:-1:-1;;;;11953:16:0;11967:1;11953:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11953:16:0::1;11929:40;;11998:4;11980;11985:1;11980:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11980:23:0::1;;;-1:-1:-1::0;;;;;11980:23:0::1;;;::::0;::::1;5041:42;-1:-1:-1::0;;;;;12024:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12014:4;12019:1;12014:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12014:23:0::1;;;-1:-1:-1::0;;;;;12014:23:0::1;;;::::0;::::1;12048:35;12064:4;12071:11;12048:7;:35::i;:::-;-1:-1:-1::0;12146:187:0::1;::::0;-1:-1:-1;;;12146:187:0;;12114:21:::1;::::0;5041:42:::1;::::0;12146:57:::1;::::0;:187:::1;::::0;12218:11;;12094:17:::1;::::0;12260:4;;12287::::1;::::0;12307:15:::1;::::0;12146:187:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12375:9;12351:21;:33;;;;:::i;:::-;6811:17:::0;:25;;-1:-1:-1;;;;6811:25:0;;;12344:40;11816:576;-1:-1:-1;;;;11816:576:0:o;11493:315::-;6764:17;:24;;-1:-1:-1;;;;6764:24:0;-1:-1:-1;;;6764:24:0;;;;;11612:188:::1;::::0;-1:-1:-1;;;11612:188:0;;11675:4:::1;11612:188;::::0;::::1;10728:34:1::0;10778:18;;;10771:34;;;-1:-1:-1;10821:18:1;;;10814:34;;;10864:18;;;10857:34;-1:-1:-1;;;11753:6:0;;::::1;-1:-1:-1::0;;;;;11753:6:0::1;10907:19:1::0;;;10900:44;11774:15:0::1;10960:19:1::0;;;10953:35;5041:42:0::1;::::0;11612:22:::1;::::0;11642:9;;10662:19:1;;11612:188:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6811:17:0;:25;;-1:-1:-1;;;;6811:25:0;;;-1:-1:-1;;;11493:315:0:o;10869:120::-;10943:10;;10919:4;;10969:12;;10943:23;;10919:4;;10943:10;;;;;:23;:::i;:::-;:38;;;10936:45;;10869:120;:::o;8765:340::-;8877:11;8922:2;8901:14;8916:1;8901:17;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;8956:2:0;;-1:-1:-1;8935:14:0;8950:1;8935:17;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;8975:7:0;;-1:-1:-1;8980:2:0;8975;:7;:::i;:::-;9011:4;8993:24;;;;:9;:24;;;;;:31;;8969:13;;-1:-1:-1;8969:13:0;;8993:24;;;:31;;8969:13;;8993:31;:::i;:::-;;;;-1:-1:-1;;9040:36:0;;160:25:1;;;9065:4:0;;-1:-1:-1;;;;;9040:36:0;;;;;148:2:1;133:18;9040:36:0;;;;;;;8765:340;;;;;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2448:247::-;2507:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:52;;;2576:1;2573;2566:12;2528:52;2615:9;2602:23;2634:31;2659:5;2634:31;:::i;2700:160::-;2765:20;;2821:13;;2814:21;2804:32;;2794:60;;2850:1;2847;2840:12;2794:60;2700:160;;;:::o;2865:248::-;2930:6;2938;2991:2;2979:9;2970:7;2966:23;2962:32;2959:52;;;3007:1;3004;2997:12;2959:52;3030:26;3046:9;3030:26;:::i;3118:180::-;3177:6;3230:2;3218:9;3209:7;3205:23;3201:32;3198:52;;;3246:1;3243;3236:12;3198:52;-1:-1:-1;3269:23:1;;3118:180;-1:-1:-1;3118:180:1:o;3303:159::-;3370:20;;3430:6;3419:18;;3409:29;;3399:57;;3452:1;3449;3442:12;3467:401;3549:6;3557;3565;3573;3626:3;3614:9;3605:7;3601:23;3597:33;3594:53;;;3643:1;3640;3633:12;3594:53;3666:28;3684:9;3666:28;:::i;:::-;3656:38;;3713:37;3746:2;3735:9;3731:18;3713:37;:::i;:::-;3703:47;;3769:37;3802:2;3791:9;3787:18;3769:37;:::i;:::-;3759:47;;3825:37;3858:2;3847:9;3843:18;3825:37;:::i;:::-;3815:47;;3467:401;;;;;;;:::o;3873:315::-;3938:6;3946;3999:2;3987:9;3978:7;3974:23;3970:32;3967:52;;;4015:1;4012;4005:12;3967:52;4054:9;4041:23;4073:31;4098:5;4073:31;:::i;:::-;4123:5;-1:-1:-1;4147:35:1;4178:2;4163:18;;4147:35;:::i;:::-;4137:45;;3873:315;;;;;:::o;4390:388::-;4458:6;4466;4519:2;4507:9;4498:7;4494:23;4490:32;4487:52;;;4535:1;4532;4525:12;4487:52;4574:9;4561:23;4593:31;4618:5;4593:31;:::i;:::-;4643:5;-1:-1:-1;4700:2:1;4685:18;;4672:32;4713:33;4672:32;4713:33;:::i;:::-;4765:7;4755:17;;;4390:388;;;;;:::o;5009:127::-;5070:10;5065:3;5061:20;5058:1;5051:31;5101:4;5098:1;5091:15;5125:4;5122:1;5115:15;5141:416;5230:1;5267:5;5230:1;5281:270;5302:7;5292:8;5289:21;5281:270;;;5361:4;5357:1;5353:6;5349:17;5343:4;5340:27;5337:53;;;5370:18;;:::i;:::-;5420:7;5410:8;5406:22;5403:55;;;5440:16;;;;5403:55;5519:22;;;;5479:15;;;;5281:270;;;5285:3;5141:416;;;;;:::o;5562:806::-;5611:5;5641:8;5631:80;;-1:-1:-1;5682:1:1;5696:5;;5631:80;5730:4;5720:76;;-1:-1:-1;5767:1:1;5781:5;;5720:76;5812:4;5830:1;5825:59;;;;5898:1;5893:130;;;;5805:218;;5825:59;5855:1;5846:10;;5869:5;;;5893:130;5930:3;5920:8;5917:17;5914:43;;;5937:18;;:::i;:::-;-1:-1:-1;;5993:1:1;5979:16;;6008:5;;5805:218;;6107:2;6097:8;6094:16;6088:3;6082:4;6079:13;6075:36;6069:2;6059:8;6056:16;6051:2;6045:4;6042:12;6038:35;6035:77;6032:159;;;-1:-1:-1;6144:19:1;;;6176:5;;6032:159;6223:34;6248:8;6242:4;6223:34;:::i;:::-;6293:6;6289:1;6285:6;6281:19;6272:7;6269:32;6266:58;;;6304:18;;:::i;:::-;6342:20;;5562:806;-1:-1:-1;;;5562:806:1:o;6373:140::-;6431:5;6460:47;6501:4;6491:8;6487:19;6481:4;6460:47;:::i;6518:168::-;6591:9;;;6622;;6639:15;;;6633:22;;6619:37;6609:71;;6660:18;;:::i;6691:128::-;6758:9;;;6779:11;;;6776:37;;;6793:18;;:::i;6824:168::-;6891:6;6917:10;;;6929;;;6913:27;;6952:11;;;6949:37;;;6966:18;;:::i;:::-;6949:37;6824:168;;;;:::o;7959:127::-;8020:10;8015:3;8011:20;8008:1;8001:31;8051:4;8048:1;8041:15;8075:4;8072:1;8065:15;8091:125;8156:9;;;8177:10;;;8174:36;;;8190:18;;:::i;8792:217::-;8832:1;8858;8848:132;;8902:10;8897:3;8893:20;8890:1;8883:31;8937:4;8934:1;8927:15;8965:4;8962:1;8955:15;8848:132;-1:-1:-1;8994:9:1;;8792:217::o;9146:251::-;9216:6;9269:2;9257:9;9248:7;9244:23;9240:32;9237:52;;;9285:1;9282;9275:12;9237:52;9317:9;9311:16;9336:31;9361:5;9336:31;:::i;9402:980::-;9664:4;9712:3;9701:9;9697:19;9743:6;9732:9;9725:25;9769:2;9807:6;9802:2;9791:9;9787:18;9780:34;9850:3;9845:2;9834:9;9830:18;9823:31;9874:6;9909;9903:13;9940:6;9932;9925:22;9978:3;9967:9;9963:19;9956:26;;10017:2;10009:6;10005:15;9991:29;;10038:1;10048:195;10062:6;10059:1;10056:13;10048:195;;;10127:13;;-1:-1:-1;;;;;10123:39:1;10111:52;;10218:15;;;;10183:12;;;;10159:1;10077:9;10048:195;;;-1:-1:-1;;;;;;;10299:32:1;;;;10294:2;10279:18;;10272:60;-1:-1:-1;;;10363:3:1;10348:19;10341:35;10260:3;9402:980;-1:-1:-1;;;9402:980:1:o;10999:306::-;11087:6;11095;11103;11156:2;11144:9;11135:7;11131:23;11127:32;11124:52;;;11172:1;11169;11162:12;11124:52;11201:9;11195:16;11185:26;;11251:2;11240:9;11236:18;11230:25;11220:35;;11295:2;11284:9;11280:18;11274:25;11264:35;;10999:306;;;;;:::o;11310:172::-;11377:10;11407;;;11419;;;11403:27;;11442:11;;;11439:37;;;11456:18;;:::i

Swarm Source

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