ETH Price: $3,298.15 (-0.43%)
Gas: 9 Gwei

Token

SKELETAMA (SKELZ)
 

Overview

Max Total Supply

100,000,000,000 SKELZ

Holders

157

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,294,258,119.186610095 SKELZ

Value
$0.00
0x719aE4f6ed9220caDfE869Fa44dF189053DE7b8D
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:
SKELETAMA

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-04
*/

// WEBSITE : https://www.skeletama.com
// TELEGRAM : https://t.me/skeletamaerc20
// TWITTER : https://twitter.com/skeletamaerc20

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

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

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
  /**
   * @dev Returns the amount of tokens in existence.
   */
  function totalSupply() external view returns (uint256);

  /**
   * @dev Returns the token decimals.
   */
  function decimals() external view returns (uint8);

  /**
   * @dev Returns the token symbol.
   */
  function symbol() external view returns (string memory);

  /**
  * @dev Returns the token name.
  */
  function name() external view returns (string memory);

  /**
   * @dev Returns the bep token owner.
   */
  function getOwner() external view returns (address);

  /**
   * @dev Returns the amount of tokens owned by `account`.
   */
  function balanceOf(address account) external view returns (uint256);

  /**
   * @dev Moves `amount` tokens from the caller's account to `recipient`.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transfer(address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Returns the remaining number of tokens that `spender` will be
   * allowed to spend on behalf of `owner` through {transferFrom}. This is
   * zero by default.
   *
   * This value changes when {approve} or {transferFrom} are called.
   */
  function allowance(address _owner, address spender) external view returns (uint256);

  /**
   * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * IMPORTANT: Beware that changing an allowance with this method brings the risk
   * that someone may use both the old and the new allowance by unfortunate
   * transaction ordering. One possible solution to mitigate this race
   * condition is to first reduce the spender's allowance to 0 and set the
   * desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   * Emits an {Approval} event.
   */
  function approve(address spender, uint256 amount) external returns (bool);

  /**
   * @dev Moves `amount` tokens from `sender` to `recipient` using the
   * allowance mechanism. `amount` is then deducted from the caller's
   * allowance.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Emitted when `value` tokens are moved from one account (`from`) to
   * another (`to`).
   *
   * Note that `value` may be zero.
   */
  event Transfer(address indexed from, address indexed to, uint256 value);

  /**
   * @dev Emitted when the allowance of a `spender` for an `owner` is set by
   * a call to {approve}. `value` is the new allowance.
   */
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function factory() external view returns (address);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract SKELETAMA is Context, IERC20 {
    // Ownership moved to in-contract for customizability.
    address private _owner;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private _isSniperOrBlacklisted;
    mapping (address => bool) private _liquidityHolders;

    uint256 private startingSupply = 100_000_000_000;

    string private _name = "SKELETAMA";
    string private _symbol = "SKELZ";

    uint256 public _buyFee = 1200;
    uint256 public _sellFee = 2000;
    uint256 public _transferFee = 2000;

    uint256 constant public maxBuyTaxes = 2000;
    uint256 constant public maxSellTaxes = 2000;
    uint256 constant public maxTransferTaxes = 2000;

    uint256 public _liquidityRatio = 300;
    uint256 public _marketingRatio = 500;
    uint256 public _devRatio = 400;

    uint256 private constant masterTaxDivisor = 10000;

    uint256 private constant MAX = ~uint256(0);
    uint8 constant private _decimals = 9;
    uint256 constant private _decimalsMul = _decimals;
    uint256 private _tTotal = startingSupply * 10**_decimalsMul;
    uint256 private _tFeeTotal;

    IUniswapV2Router02 public dexRouter;
    address public lpPair;

    // UNI ROUTER
    address private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable private _marketingWallet = payable(0xAE8502Ef4B6f1EeD0834C78DD06B5855690aD6D4);
    address payable private _teamWallet = payable(0xf10d0b89Fd86960Dc96D8b2A142B2923911a6f7d);
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    
    uint256 private maxTxPercent = 1;
    uint256 private maxTxDivisor = 100;
    uint256 private _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor;
    uint256 public maxTxAmountUI = (startingSupply * maxTxPercent) / maxTxDivisor;

    uint256 private maxWalletPercent = 2;
    uint256 private maxWalletDivisor = 100;
    uint256 private _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor;
    uint256 public maxWalletSizeUI = (startingSupply * maxWalletPercent) / maxWalletDivisor;

    uint256 private swapThreshold = (_tTotal * 5) / 10000;
    uint256 private swapAmount = (_tTotal * 5) / 1000;

    bool private sniperProtection = true;
    bool public _hasLiqBeenAdded = false;
    uint256 private _liqAddStatus = 0;
    uint256 private _liqAddBlock = 0;
    uint256 private _liqAddStamp = 0;
    uint256 private _initialLiquidityAmount = 0;
    uint256 private snipeBlockAmt = 0;
    uint256 public snipersCaught = 0;
    bool private sameBlockActive = true;
    mapping (address => uint256) private lastTrade;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event SniperCaught(address sniperAddress);
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Caller =/= owner.");
        _;
    }
    
    constructor () payable {
        _tOwned[_msgSender()] = _tTotal;

        // Set the owner.
        _owner = msg.sender;

        dexRouter = IUniswapV2Router02(_routerAddress);
        lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;
        _allowances[address(this)][address(dexRouter)] = type(uint256).max;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[owner()] = true;

        // Approve the owner for PancakeSwap, timesaver.
        _approve(_msgSender(), _routerAddress, _tTotal);

        // Ever-growing sniper/tool blacklist


        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    receive() external payable {}

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and recnouncements.
    // This allows for removal of ownership privelages from the owner once renounced or transferred.
    function owner() public view returns (address) {
        return _owner;
    }

    function transferOwner(address newOwner) external onlyOwner() {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        
        if (_marketingWallet == payable(_owner))
            _marketingWallet = payable(newOwner);
        
        _allowances[_owner][newOwner] = balanceOf(_owner);
        if(balanceOf(_owner) > 0) {
            _transfer(_owner, newOwner, balanceOf(_owner));
        }
        
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
        
    }

    function renounceOwnership() public virtual onlyOwner() {
        setExcludedFromFees(_owner, false);
        _owner = address(0);
        emit OwnershipTransferred(_owner, address(0));
    }
//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    function totalSupply() external view override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external view override returns (string memory) { return _symbol; }
    function name() external view override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

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

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

    function _approve(address sender, address spender, uint256 amount) private {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

    function approveMax(address spender) public 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] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function setNewRouter(address newRouter) public onlyOwner() {
        IUniswapV2Router02 _newRouter = IUniswapV2Router02(newRouter);
        address get_pair = IUniswapV2Factory(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        if (get_pair == address(0)) {
            lpPair = IUniswapV2Factory(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (enabled == false) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 1 weeks, "One week cooldown.");
            }
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function isSniperOrBlacklisted(address account) public view returns (bool) {
        return _isSniperOrBlacklisted[account];
    }

    function isProtected(uint256 rInitializer) external onlyOwner {
        require (_liqAddStatus == 0, "Error.");
        _liqAddStatus = rInitializer;
        snipeBlockAmt = 4;
    }

    function setBlacklistEnabled(address account, bool enabled) external onlyOwner() {
        _isSniperOrBlacklisted[account] = enabled;
    }

    function setProtectionSettings(bool antiSnipe, bool antiBlock) external onlyOwner() {
        sniperProtection = antiSnipe;
        sameBlockActive = antiBlock;
    }

    function setTaxes(uint256 buyFee, uint256 sellFee, uint256 transferFee) external onlyOwner {
        require(buyFee <= maxBuyTaxes
                && sellFee <= maxSellTaxes
                && transferFee <= maxTransferTaxes,
                "Cannot exceed maximums.");
        _buyFee = buyFee;
        _sellFee = sellFee;
        _transferFee = transferFee;
    }

    function setRatios(uint256 liquidity, uint256 marketing, uint256 dev) external onlyOwner {
        require (liquidity + marketing + dev == 1200, "Must add up to 1200");
        _liquidityRatio = liquidity;
        _marketingRatio = marketing;
        _devRatio = dev;
    }

    function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner {
        uint256 check = (_tTotal * percent) / divisor;
        require(check >= (_tTotal / 1000), "Must be above 0.1% of total supply.");
        _maxTxAmount = check;
        maxTxAmountUI = (startingSupply * percent) / divisor;
    }

    function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner {
        uint256 check = (_tTotal * percent) / divisor;
        require(check >= (_tTotal / 1000), "Must be above 0.1% of total supply.");
        _maxWalletSize = check;
        maxWalletSizeUI = (startingSupply * percent) / divisor;
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
    }

    function setWallets(address payable marketingWallet, address payable teamWallet) external onlyOwner {
        _marketingWallet = payable(marketingWallet);
        _teamWallet = payable(teamWallet);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function _hasLimits(address from, address to) private view returns (bool) {
        return from != owner()
            && to != owner()
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: Zero address.");
        require(to != address(0), "ERC20: Zero address.");
        require(amount > 0, "Must >0.");
        if(_hasLimits(from, to)) {
            if (sameBlockActive) {
                if (lpPairs[from]){
                    require(lastTrade[to] != block.number);
                    lastTrade[to] = block.number;
                } else {
                    require(lastTrade[from] != block.number);
                    lastTrade[from] = block.number;
                }
            }
            if(lpPairs[from] || lpPairs[to]){
                require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
            }
            if(to != _routerAddress && !lpPairs[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }
        }

        bool takeFee = true;
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }

        if (lpPairs[to]) {
            if (!inSwapAndLiquify
                && swapAndLiquifyEnabled
            ) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= swapThreshold) {
                    if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; }
                    swapAndLiquify(contractTokenBalance);
                }
            }      
        } 
        return _finalizeTransfer(from, to, amount, takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        if (_liquidityRatio + _marketingRatio + _devRatio == 0)
            return;
        uint256 toLiquify = ((contractTokenBalance * _liquidityRatio) / (_liquidityRatio + _marketingRatio + _devRatio)) / 2;

        uint256 toSwapForEth = contractTokenBalance - toLiquify;
        swapTokensForEth(toSwapForEth);

        uint256 currentBalance = address(this).balance;
        uint256 liquidityBalance = ((currentBalance * _liquidityRatio) / (_liquidityRatio + _marketingRatio + _devRatio)) / 2;

        if (toLiquify > 0) {
            addLiquidity(toLiquify, liquidityBalance);
            emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify);
        }
        if (contractTokenBalance - toLiquify > 0) {
            _marketingWallet.transfer(((currentBalance - liquidityBalance) * _marketingRatio) / (_marketingRatio + _devRatio));
            _teamWallet.transfer(address(this).balance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            DEAD,
            block.timestamp
        );
    }

    function _checkLiquidityAdd(address from, address to) private {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            if (snipeBlockAmt != 4) {
                _liqAddBlock = block.number + 5000;
            } else {
                _liqAddBlock = block.number;
            }

            _liquidityHolders[from] = true;
            _hasLiqBeenAdded = true;
            _liqAddStamp = block.timestamp;

            swapAndLiquifyEnabled = true;
            emit SwapAndLiquifyEnabledUpdated(true);
        }
    }

    function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) {
        if (sniperProtection){
            if (isSniperOrBlacklisted(from) || isSniperOrBlacklisted(to)) {
                revert("Sniper rejected.");
            }

            if (!_hasLiqBeenAdded) {
                _checkLiquidityAdd(from, to);
                if (!_hasLiqBeenAdded && _hasLimits(from, to)) {
                    revert("Only owner can transfer at this time.");
                }
            } else {
                if (_liqAddBlock > 0 
                    && lpPairs[from] 
                    && _hasLimits(from, to)
                ) {
                    if (block.number - _liqAddBlock < snipeBlockAmt) {
                        _isSniperOrBlacklisted[to] = true;
                        snipersCaught ++;
                        emit SniperCaught(to);
                    }
                }
            }
        }

        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount;
        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 currentFee;
        if (from == lpPair) {
            currentFee = _buyFee;
        } else if (to == lpPair) {
            currentFee = _sellFee;
        } else {
            currentFee = _transferFee;
        }

        if (_hasLimits(from, to)){
            if (_liqAddStatus == 0 || _liqAddStatus != 69) {
                revert();
            }
        }

        uint256 feeAmount = amount * currentFee / masterTaxDivisor;

        _tOwned[address(this)] += feeAmount;
        emit Transfer(from, address(this), feeAmount);

        return amount - feeAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniperAddress","type":"address"}],"name":"SniperCaught","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":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rInitializer","type":"uint256"}],"name":"isProtected","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isSniperOrBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmountUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSizeUI","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"antiSnipe","type":"bool"},{"internalType":"bool","name":"antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWallet","type":"address"},{"internalType":"address payable","name":"teamWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600060035564174876e80060085560c06040526009608081905268534b454c4554414d4160b81b60a09081526200003891908162000617565b506040805180820190915260058082526429a5a2a62d60d91b60209092019182526200006791600a9162000617565b506104b0600b556107d0600c819055600d5561012c600e556101f4600f55610190601055600854633b9aca0081026011819055601580546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d1790915560168054821673ae8502ef4b6f1eed0834c78dd06b5855690ad6d41790556017805460ff60a81b19921673f10d0b89fd86960dc96d8b2a142b2923911a6f7d1791909116905560016018556064601981905590819004601a55808204601b556002601c55601d8190559063773594000204601e55601d54601c5460085402816200014957fe5b04601f55612710601154600502816200015e57fe5b046020556103e8601154600502816200017357fe5b0460215560228054600160ff19918216811761ff00191690925560006023819055602481905560258190556026819055602781905560288190556029805490921683179091556011549190620001c8620004fe565b6001600160a01b039081168252602080830193909352604091820160009081209490945583546001600160a01b03199081163317909455601554601380549095169082161793849055815163c45a015560e01b8152915193169263c45a015592600480840193919291829003018186803b1580156200024657600080fd5b505afa1580156200025b573d6000803e3d6000fd5b505050506040513d60208110156200027257600080fd5b5051601354604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b158015620002c157600080fd5b505afa158015620002d6573d6000803e3d6000fd5b505050506040513d6020811015620002ed57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200033d57600080fd5b505af115801562000352573d6000803e3d6000fd5b505050506040513d60208110156200036957600080fd5b5051601480546001600160a01b0319166001600160a01b03928316179081905581166000908152600260209081526040808320805460ff191660019081179091553084526004835281842060135490951684529390915281206000199055600590620003d462000502565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526005909252812080548316600190811790915561dead82527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805490931681179092556007906200045362000502565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620004a162000489620004fe565b6015546011546001600160a01b039091169062000511565b620004ab620004fe565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6011546040518082815260200191505060405180910390a3620006c3565b3390565b6000546001600160a01b031690565b6001600160a01b03831662000563576040805162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015290519081900360640190fd5b6001600160a01b038216620005b5576040805162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015290519081900360640190fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200064f57600085556200069a565b82601f106200066a57805160ff19168380011785556200069a565b828001600101855582156200069a579182015b828111156200069a5782518255916020019190600101906200067d565b50620006a8929150620006ac565b5090565b5b80821115620006a85760008155600101620006ad565b612a9580620006d36000396000f3fe6080604052600436106102975760003560e01c8063640384091161015a578063b1b08f71116100c1578063e79d41601161007a578063e79d416014610948578063e9dae5ed1461095d578063eafb5a3c14610993578063eec2744e146109c6578063f6540ec714610a01578063fb78680d14610a165761029e565b8063b1b08f7114610490578063b3d514fb14610490578063c49b9a8014610870578063cdfdb7dc1461089c578063d3f6a157146108d2578063dd62ed3e1461090d5761029e565b806389fd9bc11161011357806389fd9bc11461078c5780638da5cb5b146107bf57806395d89b41146107d4578063a457c2d7146107e9578063a8edc79714610822578063a9059cbb146108375761029e565b806364038409146106b557806370a08231146106ca578063715018a6146106fd57806380c581d11461071257806381c6f11b1461074d578063893d20e8146107775761029e565b80633df9a8d2116101fe5780634fb2e45d116101b75780634fb2e45d146105b75780634fbee193146105ea57806350a8e0161461061d578063571ac8b014610632578063590f897e14610665578063590ffdce1461067a5761029e565b80633df9a8d21461051e5780633f3cf56c1461053357806340b9a54b14610563578063452ed4f1146105785780634a74bb021461058d5780634ef3cce5146105a25761029e565b806323b872dd1161025057806323b872dd1461041d57806326003957146104605780632b28fc7a14610490578063313ce567146104a5578063384f6b51146104d057806339509351146104e55761029e565b806303fd2a45146102a3578063044df726146102d457806306fdde031461030a5780630758d92414610394578063095ea7b3146103a957806318160ddd146103f65761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610a52565b604080516001600160a01b039092168252519081900360200190f35b3480156102e057600080fd5b50610308600480360360408110156102f757600080fd5b508035151590602001351515610a58565b005b34801561031657600080fd5b5061031f610ad0565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610359578181015183820152602001610341565b50505050905090810190601f1680156103865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a057600080fd5b506102b8610b66565b3480156103b557600080fd5b506103e2600480360360408110156103cc57600080fd5b506001600160a01b038135169060200135610b75565b604080519115158252519081900360200190f35b34801561040257600080fd5b5061040b610b92565b60408051918252519081900360200190f35b34801561042957600080fd5b506103e26004803603606081101561044057600080fd5b506001600160a01b03813581169160208101359091169060400135610b98565b34801561046c57600080fd5b506103086004803603604081101561048357600080fd5b5080359060200135610c02565b34801561049c57600080fd5b5061040b610cd4565b3480156104b157600080fd5b506104ba610cda565b6040805160ff9092168252519081900360200190f35b3480156104dc57600080fd5b5061040b610cdf565b3480156104f157600080fd5b506103e26004803603604081101561050857600080fd5b506001600160a01b038135169060200135610ce5565b34801561052a57600080fd5b5061040b610d30565b34801561053f57600080fd5b506103086004803603604081101561055657600080fd5b5080359060200135610d36565b34801561056f57600080fd5b5061040b610e08565b34801561058457600080fd5b506102b8610e0e565b34801561059957600080fd5b506103e2610e1d565b3480156105ae57600080fd5b5061040b610e2d565b3480156105c357600080fd5b50610308600480360360208110156105da57600080fd5b50356001600160a01b0316610e33565b3480156105f657600080fd5b506103e26004803603602081101561060d57600080fd5b50356001600160a01b0316611036565b34801561062957600080fd5b506103e2611054565b34801561063e57600080fd5b506103e26004803603602081101561065557600080fd5b50356001600160a01b0316611062565b34801561067157600080fd5b5061040b611076565b34801561068657600080fd5b506103086004803603604081101561069d57600080fd5b506001600160a01b038135169060200135151561107c565b3480156106c157600080fd5b5061040b6110ff565b3480156106d657600080fd5b5061040b600480360360208110156106ed57600080fd5b50356001600160a01b0316611105565b34801561070957600080fd5b50610308611120565b34801561071e57600080fd5b506103086004803603604081101561073557600080fd5b506001600160a01b03813516906020013515156111cd565b34801561075957600080fd5b506103086004803603602081101561077057600080fd5b50356112d3565b34801561078357600080fd5b506102b8611373565b34801561079857600080fd5b506103e2600480360360208110156107af57600080fd5b50356001600160a01b0316611382565b3480156107cb57600080fd5b506102b86113a0565b3480156107e057600080fd5b5061031f6113af565b3480156107f557600080fd5b506103e26004803603604081101561080c57600080fd5b506001600160a01b038135169060200135611410565b34801561082e57600080fd5b5061040b61145b565b34801561084357600080fd5b506103e26004803603604081101561085a57600080fd5b506001600160a01b038135169060200135611461565b34801561087c57600080fd5b506103086004803603602081101561089357600080fd5b5035151561147f565b3480156108a857600080fd5b50610308600480360360608110156108bf57600080fd5b508035906020810135906040013561152a565b3480156108de57600080fd5b50610308600480360360408110156108f557600080fd5b506001600160a01b03813581169160200135166115e0565b34801561091957600080fd5b5061040b6004803603604081101561093057600080fd5b506001600160a01b0381358116916020013516611666565b34801561095457600080fd5b5061040b611691565b34801561096957600080fd5b506103086004803603606081101561098057600080fd5b5080359060208101359060400135611697565b34801561099f57600080fd5b50610308600480360360208110156109b657600080fd5b50356001600160a01b0316611770565b3480156109d257600080fd5b50610308600480360360408110156109e957600080fd5b506001600160a01b0381351690602001351515611af7565b348015610a0d57600080fd5b5061040b611b7a565b348015610a2257600080fd5b5061030860048036036080811015610a3957600080fd5b5080359060208101359060408101359060600135611b80565b61dead81565b610a60611c01565b6000546001600160a01b03908116911614610ab0576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6022805492151560ff199384161790556029805491151591909216179055565b60098054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b5c5780601f10610b3157610100808354040283529160200191610b5c565b820191906000526020600020905b815481529060010190602001808311610b3f57829003601f168201915b5050505050905090565b6013546001600160a01b031681565b6000610b89610b82611c01565b8484611c05565b50600192915050565b60115490565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610bef576001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b610bfa848484611d09565b949350505050565b610c0a611c01565b6000546001600160a01b03908116911614610c5a576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b600081836011540281610c6957fe5b0490506103e860115481610c7957fe5b04811015610cb85760405162461bcd60e51b81526004018080602001828103825260238152602001806129e06023913960400191505060405180910390fd5b601e8190556008548290840281610ccb57fe5b04601f55505050565b6107d081565b600990565b600e5481565b6000610b89610cf2611c01565b848460046000610d00611c01565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205401611c05565b600d5481565b610d3e611c01565b6000546001600160a01b03908116911614610d8e576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b600081836011540281610d9d57fe5b0490506103e860115481610dad57fe5b04811015610dec5760405162461bcd60e51b81526004018080602001828103825260238152602001806129e06023913960400191505060405180910390fd5b601a8190556008548290840281610dff57fe5b04601b55505050565b600b5481565b6014546001600160a01b031681565b601754600160a81b900460ff1681565b600f5481565b610e3b611c01565b6000546001600160a01b03908116911614610e8b576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6001600160a01b038116610ed05760405162461bcd60e51b815260040180806020018281038252603d815260200180612a23603d913960400191505060405180910390fd5b6001600160a01b03811661dead1415610f1a5760405162461bcd60e51b815260040180806020018281038252603d815260200180612a23603d913960400191505060405180910390fd5b60008054610f33916001600160a01b039091169061107c565b610f3e81600161107c565b6000546016546001600160a01b0390811691161415610f7357601680546001600160a01b0319166001600160a01b0383161790555b600054610f88906001600160a01b0316611105565b600080546001600160a01b039081168252600460209081526040808420868416855290915282209290925580549091610fc19116611105565b1115610fe857600054610fe6906001600160a01b031682610fe182611105565b611d09565b505b600080546001600160a01b0319166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b031660009081526005602052604090205460ff1690565b602254610100900460ff1681565b600061107082600019610b75565b92915050565b600c5481565b611084611c01565b6000546001600160a01b039081169116146110d4576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b601b5481565b6001600160a01b031660009081526001602052604090205490565b611128611c01565b6000546001600160a01b03908116911614611178576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b60008054611191916001600160a01b039091169061107c565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6111d5611c01565b6000546001600160a01b03908116911614611225576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b8061124f576001600160a01b0382166000908152600260205260409020805460ff191690556112cf565b600354156112a75762093a806003544203116112a7576040805162461bcd60e51b815260206004820152601260248201527127b732903bb2b2b59031b7b7b63237bbb71760711b604482015290519081900360640190fd5b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b6112db611c01565b6000546001600160a01b0390811691161461132b576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b60235415611369576040805162461bcd60e51b815260206004820152600660248201526522b93937b91760d11b604482015290519081900360640190fd5b6023556004602755565b600061137d6113a0565b905090565b6001600160a01b031660009081526006602052604090205460ff1690565b6000546001600160a01b031690565b600a8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b5c5780601f10610b3157610100808354040283529160200191610b5c565b6000610b8961141d611c01565b84846004600061142b611c01565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205403611c05565b60105481565b600061147561146e611c01565b8484611d09565b5060019392505050565b611487611c01565b6000546001600160a01b039081169116146114d7576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b60178054821515600160a81b810260ff60a81b199092169190911790915560408051918252517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599181900360200190a150565b611532611c01565b6000546001600160a01b03908116911614611582576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b80828401016104b0146115d2576040805162461bcd60e51b815260206004820152601360248201527204d7573742061646420757020746f203132303606c1b604482015290519081900360640190fd5b600e92909255600f55601055565b6115e8611c01565b6000546001600160a01b03908116911614611638576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b601680546001600160a01b039384166001600160a01b03199182161790915560178054929093169116179055565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60285481565b61169f611c01565b6000546001600160a01b039081169116146116ef576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6107d0831115801561170357506107d08211155b801561171157506107d08111155b611762576040805162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000604482015290519081900360640190fd5b600b92909255600c55600d55565b611778611c01565b6000546001600160a01b039081169116146117c8576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561180857600080fd5b505afa15801561181c573d6000803e3d6000fd5b505050506040513d602081101561183257600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263e6a439059230929187169163ad5c464891600480820192602092909190829003018186803b15801561188257600080fd5b505afa158015611896573d6000803e3d6000fd5b505050506040513d60208110156118ac57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152516044808301926020929190829003018186803b1580156118fc57600080fd5b505afa158015611910573d6000803e3d6000fd5b505050506040513d602081101561192657600080fd5b505190506001600160a01b038116611ab757816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561197157600080fd5b505afa158015611985573d6000803e3d6000fd5b505050506040513d602081101561199b57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929187169163ad5c464891600480820192602092909190829003018186803b1580156119eb57600080fd5b505afa1580156119ff573d6000803e3d6000fd5b505050506040513d6020811015611a1557600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015611a6757600080fd5b505af1158015611a7b573d6000803e3d6000fd5b505050506040513d6020811015611a9157600080fd5b5051601480546001600160a01b0319166001600160a01b03909216919091179055611ad3565b601480546001600160a01b0319166001600160a01b0383161790555b50601380546001600160a01b0319166001600160a01b039290921691909117905550565b611aff611c01565b6000546001600160a01b03908116911614611b4f576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b601f5481565b611b88611c01565b6000546001600160a01b03908116911614611bd8576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b82846011540281611be557fe5b046020556011548190830281611bf757fe5b0460215550505050565b3390565b6001600160a01b038316611c56576040805162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015290519081900360640190fd5b6001600160a01b038216611ca7576040805162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015290519081900360640190fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60006001600160a01b038416611d5d576040805162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b604482015290519081900360640190fd5b6001600160a01b038316611daf576040805162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b604482015290519081900360640190fd5b60008211611def576040805162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b604482015290519081900360640190fd5b611df984846120c0565b15611fe85760295460ff1615611eb0576001600160a01b03841660009081526002602052604090205460ff1615611e6f576001600160a01b0383166000908152602a6020526040902054431415611e4f57600080fd5b6001600160a01b0383166000908152602a60205260409020439055611eb0565b6001600160a01b0384166000908152602a6020526040902054431415611e9457600080fd5b6001600160a01b0384166000908152602a602052604090204390555b6001600160a01b03841660009081526002602052604090205460ff1680611eef57506001600160a01b03831660009081526002602052604090205460ff165b15611f4b57601a54821115611f4b576040805162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015290519081900360640190fd5b6015546001600160a01b03848116911614801590611f8257506001600160a01b03831660009081526002602052604090205460ff16155b15611fe857601e5482611f9485611105565b011115611fe8576040805162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526005602052604090205460019060ff168061202a57506001600160a01b03841660009081526005602052604090205460ff165b15612033575060005b6001600160a01b03841660009081526002602052604090205460ff16156120ab57601754600160a01b900460ff161580156120775750601754600160a81b900460ff165b156120ab57600061208730611105565b905060205481106120a95760215481106120a057506021545b6120a981612195565b505b6120b785858584612316565b95945050505050565b60006120ca6113a0565b6001600160a01b0316836001600160a01b03161415801561210457506120ee6113a0565b6001600160a01b0316826001600160a01b031614155b801561212957506001600160a01b03821660009081526007602052604090205460ff16155b801561214e57506001600160a01b03831660009081526007602052604090205460ff16155b801561216557506001600160a01b03821661dead14155b801561217957506001600160a01b03821615155b801561218e57506001600160a01b0383163014155b9392505050565b6017805460ff60a01b1916600160a01b179055601054600f54600e5401016121bc57612306565b60006002601054600f54600e540101600e548402816121d757fe5b04816121df57fe5b0490508082036121ee8161254a565b600047905060006002601054600f54600e540101600e5484028161220e57fe5b048161221657fe5b049050831561226a576122298482612707565b604080518581526020810183905280820186905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b8385031561230157601654601054600f546001600160a01b03909216916108fc91810190848603028161229957fe5b049081150290604051600060405180830381858888f193505050501580156122c5573d6000803e3d6000fd5b506017546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156122ff573d6000803e3d6000fd5b505b505050505b506017805460ff60a01b19169055565b60225460009060ff16156124ab5761232d85611382565b8061233c575061233c84611382565b15612381576040805162461bcd60e51b815260206004820152601060248201526f29b734b832b9103932b532b1ba32b21760811b604482015290519081900360640190fd5b602254610100900460ff166123f85761239a85856127a8565b602254610100900460ff161580156123b757506123b785856120c0565b156123f35760405162461bcd60e51b81526004018080602001828103825260258152602001806129bb6025913960400191505060405180910390fd5b6124ab565b600060245411801561242257506001600160a01b03851660009081526002602052604090205460ff165b8015612433575061243385856120c0565b156124ab57602754602454430310156124ab576001600160a01b038416600081815260066020908152604091829020805460ff19166001908117909155602880549091019055815192835290517f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e59281900390910190a15b6001600160a01b038516600090815260016020526040812080548590039055826124d557836124e0565b6124e08686866128b9565b6001600160a01b03808716600081815260016020908152604091829020805486019055815185815291519495509193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600195945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061257957fe5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156125cd57600080fd5b505afa1580156125e1573d6000803e3d6000fd5b505050506040513d60208110156125f757600080fd5b505181518290600190811061260857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601360009054906101000a90046001600160a01b03166001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156126c25781810151838201526020016126aa565b505050509050019650505050505050600060405180830381600087803b1580156126eb57600080fd5b505af11580156126ff573d6000803e3d6000fd5b505050505050565b6013546040805163f305d71960e01b815230600482015260248101859052600060448201819052606482015261dead60848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b15801561277757600080fd5b505af115801561278b573d6000803e3d6000fd5b50505050506040513d60608110156127a257600080fd5b50505050565b602254610100900460ff16156127ef5760405162461bcd60e51b81526004018080602001828103825260238152602001806129986023913960400191505060405180910390fd5b6127f982826120c0565b15801561281357506014546001600160a01b038281169116145b156112cf5760275460041461282f576113884301602455612834565b436024555b6001600160a01b038216600090815260076020908152604091829020805460ff191660019081179091556022805461ff001916610100179055426025556017805460ff60a81b1916600160a81b179055825190815291517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599281900390910190a15050565b60145460009081906001600160a01b03868116911614156128dd5750600b54612901565b6014546001600160a01b03858116911614156128fc5750600c54612901565b50600d545b61290b85856120c0565b1561292c5760235415806129225750602354604514155b1561292c57600080fd5b30600081815260016020908152604091829020805461271086890204908101909155825181815292519093926001600160a01b038a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a390920394935050505056fe4c697175696469747920616c726561647920616464656420616e64206d61726b65642e4f6e6c79206f776e65722063616e207472616e7366657220617420746869732074696d652e4d7573742062652061626f766520302e3125206f6620746f74616c20737570706c792e43616c6c6572203d2f3d206f776e65722e00000000000000000000000000000043616c6c2072656e6f756e63654f776e65727368697020746f207472616e73666572206f776e657220746f20746865207a65726f20616464726573732ea2646970667358221220fddcc8206f4b8c7cccee9f57327c8f432cc5f761f4aca6f26deffdab9157052b64736f6c63430007060033

Deployed Bytecode

0x6080604052600436106102975760003560e01c8063640384091161015a578063b1b08f71116100c1578063e79d41601161007a578063e79d416014610948578063e9dae5ed1461095d578063eafb5a3c14610993578063eec2744e146109c6578063f6540ec714610a01578063fb78680d14610a165761029e565b8063b1b08f7114610490578063b3d514fb14610490578063c49b9a8014610870578063cdfdb7dc1461089c578063d3f6a157146108d2578063dd62ed3e1461090d5761029e565b806389fd9bc11161011357806389fd9bc11461078c5780638da5cb5b146107bf57806395d89b41146107d4578063a457c2d7146107e9578063a8edc79714610822578063a9059cbb146108375761029e565b806364038409146106b557806370a08231146106ca578063715018a6146106fd57806380c581d11461071257806381c6f11b1461074d578063893d20e8146107775761029e565b80633df9a8d2116101fe5780634fb2e45d116101b75780634fb2e45d146105b75780634fbee193146105ea57806350a8e0161461061d578063571ac8b014610632578063590f897e14610665578063590ffdce1461067a5761029e565b80633df9a8d21461051e5780633f3cf56c1461053357806340b9a54b14610563578063452ed4f1146105785780634a74bb021461058d5780634ef3cce5146105a25761029e565b806323b872dd1161025057806323b872dd1461041d57806326003957146104605780632b28fc7a14610490578063313ce567146104a5578063384f6b51146104d057806339509351146104e55761029e565b806303fd2a45146102a3578063044df726146102d457806306fdde031461030a5780630758d92414610394578063095ea7b3146103a957806318160ddd146103f65761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610a52565b604080516001600160a01b039092168252519081900360200190f35b3480156102e057600080fd5b50610308600480360360408110156102f757600080fd5b508035151590602001351515610a58565b005b34801561031657600080fd5b5061031f610ad0565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610359578181015183820152602001610341565b50505050905090810190601f1680156103865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a057600080fd5b506102b8610b66565b3480156103b557600080fd5b506103e2600480360360408110156103cc57600080fd5b506001600160a01b038135169060200135610b75565b604080519115158252519081900360200190f35b34801561040257600080fd5b5061040b610b92565b60408051918252519081900360200190f35b34801561042957600080fd5b506103e26004803603606081101561044057600080fd5b506001600160a01b03813581169160208101359091169060400135610b98565b34801561046c57600080fd5b506103086004803603604081101561048357600080fd5b5080359060200135610c02565b34801561049c57600080fd5b5061040b610cd4565b3480156104b157600080fd5b506104ba610cda565b6040805160ff9092168252519081900360200190f35b3480156104dc57600080fd5b5061040b610cdf565b3480156104f157600080fd5b506103e26004803603604081101561050857600080fd5b506001600160a01b038135169060200135610ce5565b34801561052a57600080fd5b5061040b610d30565b34801561053f57600080fd5b506103086004803603604081101561055657600080fd5b5080359060200135610d36565b34801561056f57600080fd5b5061040b610e08565b34801561058457600080fd5b506102b8610e0e565b34801561059957600080fd5b506103e2610e1d565b3480156105ae57600080fd5b5061040b610e2d565b3480156105c357600080fd5b50610308600480360360208110156105da57600080fd5b50356001600160a01b0316610e33565b3480156105f657600080fd5b506103e26004803603602081101561060d57600080fd5b50356001600160a01b0316611036565b34801561062957600080fd5b506103e2611054565b34801561063e57600080fd5b506103e26004803603602081101561065557600080fd5b50356001600160a01b0316611062565b34801561067157600080fd5b5061040b611076565b34801561068657600080fd5b506103086004803603604081101561069d57600080fd5b506001600160a01b038135169060200135151561107c565b3480156106c157600080fd5b5061040b6110ff565b3480156106d657600080fd5b5061040b600480360360208110156106ed57600080fd5b50356001600160a01b0316611105565b34801561070957600080fd5b50610308611120565b34801561071e57600080fd5b506103086004803603604081101561073557600080fd5b506001600160a01b03813516906020013515156111cd565b34801561075957600080fd5b506103086004803603602081101561077057600080fd5b50356112d3565b34801561078357600080fd5b506102b8611373565b34801561079857600080fd5b506103e2600480360360208110156107af57600080fd5b50356001600160a01b0316611382565b3480156107cb57600080fd5b506102b86113a0565b3480156107e057600080fd5b5061031f6113af565b3480156107f557600080fd5b506103e26004803603604081101561080c57600080fd5b506001600160a01b038135169060200135611410565b34801561082e57600080fd5b5061040b61145b565b34801561084357600080fd5b506103e26004803603604081101561085a57600080fd5b506001600160a01b038135169060200135611461565b34801561087c57600080fd5b506103086004803603602081101561089357600080fd5b5035151561147f565b3480156108a857600080fd5b50610308600480360360608110156108bf57600080fd5b508035906020810135906040013561152a565b3480156108de57600080fd5b50610308600480360360408110156108f557600080fd5b506001600160a01b03813581169160200135166115e0565b34801561091957600080fd5b5061040b6004803603604081101561093057600080fd5b506001600160a01b0381358116916020013516611666565b34801561095457600080fd5b5061040b611691565b34801561096957600080fd5b506103086004803603606081101561098057600080fd5b5080359060208101359060400135611697565b34801561099f57600080fd5b50610308600480360360208110156109b657600080fd5b50356001600160a01b0316611770565b3480156109d257600080fd5b50610308600480360360408110156109e957600080fd5b506001600160a01b0381351690602001351515611af7565b348015610a0d57600080fd5b5061040b611b7a565b348015610a2257600080fd5b5061030860048036036080811015610a3957600080fd5b5080359060208101359060408101359060600135611b80565b61dead81565b610a60611c01565b6000546001600160a01b03908116911614610ab0576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6022805492151560ff199384161790556029805491151591909216179055565b60098054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b5c5780601f10610b3157610100808354040283529160200191610b5c565b820191906000526020600020905b815481529060010190602001808311610b3f57829003601f168201915b5050505050905090565b6013546001600160a01b031681565b6000610b89610b82611c01565b8484611c05565b50600192915050565b60115490565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610bef576001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b610bfa848484611d09565b949350505050565b610c0a611c01565b6000546001600160a01b03908116911614610c5a576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b600081836011540281610c6957fe5b0490506103e860115481610c7957fe5b04811015610cb85760405162461bcd60e51b81526004018080602001828103825260238152602001806129e06023913960400191505060405180910390fd5b601e8190556008548290840281610ccb57fe5b04601f55505050565b6107d081565b600990565b600e5481565b6000610b89610cf2611c01565b848460046000610d00611c01565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205401611c05565b600d5481565b610d3e611c01565b6000546001600160a01b03908116911614610d8e576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b600081836011540281610d9d57fe5b0490506103e860115481610dad57fe5b04811015610dec5760405162461bcd60e51b81526004018080602001828103825260238152602001806129e06023913960400191505060405180910390fd5b601a8190556008548290840281610dff57fe5b04601b55505050565b600b5481565b6014546001600160a01b031681565b601754600160a81b900460ff1681565b600f5481565b610e3b611c01565b6000546001600160a01b03908116911614610e8b576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6001600160a01b038116610ed05760405162461bcd60e51b815260040180806020018281038252603d815260200180612a23603d913960400191505060405180910390fd5b6001600160a01b03811661dead1415610f1a5760405162461bcd60e51b815260040180806020018281038252603d815260200180612a23603d913960400191505060405180910390fd5b60008054610f33916001600160a01b039091169061107c565b610f3e81600161107c565b6000546016546001600160a01b0390811691161415610f7357601680546001600160a01b0319166001600160a01b0383161790555b600054610f88906001600160a01b0316611105565b600080546001600160a01b039081168252600460209081526040808420868416855290915282209290925580549091610fc19116611105565b1115610fe857600054610fe6906001600160a01b031682610fe182611105565b611d09565b505b600080546001600160a01b0319166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b031660009081526005602052604090205460ff1690565b602254610100900460ff1681565b600061107082600019610b75565b92915050565b600c5481565b611084611c01565b6000546001600160a01b039081169116146110d4576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b601b5481565b6001600160a01b031660009081526001602052604090205490565b611128611c01565b6000546001600160a01b03908116911614611178576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b60008054611191916001600160a01b039091169061107c565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6111d5611c01565b6000546001600160a01b03908116911614611225576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b8061124f576001600160a01b0382166000908152600260205260409020805460ff191690556112cf565b600354156112a75762093a806003544203116112a7576040805162461bcd60e51b815260206004820152601260248201527127b732903bb2b2b59031b7b7b63237bbb71760711b604482015290519081900360640190fd5b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b6112db611c01565b6000546001600160a01b0390811691161461132b576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b60235415611369576040805162461bcd60e51b815260206004820152600660248201526522b93937b91760d11b604482015290519081900360640190fd5b6023556004602755565b600061137d6113a0565b905090565b6001600160a01b031660009081526006602052604090205460ff1690565b6000546001600160a01b031690565b600a8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b5c5780601f10610b3157610100808354040283529160200191610b5c565b6000610b8961141d611c01565b84846004600061142b611c01565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205403611c05565b60105481565b600061147561146e611c01565b8484611d09565b5060019392505050565b611487611c01565b6000546001600160a01b039081169116146114d7576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b60178054821515600160a81b810260ff60a81b199092169190911790915560408051918252517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599181900360200190a150565b611532611c01565b6000546001600160a01b03908116911614611582576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b80828401016104b0146115d2576040805162461bcd60e51b815260206004820152601360248201527204d7573742061646420757020746f203132303606c1b604482015290519081900360640190fd5b600e92909255600f55601055565b6115e8611c01565b6000546001600160a01b03908116911614611638576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b601680546001600160a01b039384166001600160a01b03199182161790915560178054929093169116179055565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60285481565b61169f611c01565b6000546001600160a01b039081169116146116ef576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6107d0831115801561170357506107d08211155b801561171157506107d08111155b611762576040805162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000604482015290519081900360640190fd5b600b92909255600c55600d55565b611778611c01565b6000546001600160a01b039081169116146117c8576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561180857600080fd5b505afa15801561181c573d6000803e3d6000fd5b505050506040513d602081101561183257600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263e6a439059230929187169163ad5c464891600480820192602092909190829003018186803b15801561188257600080fd5b505afa158015611896573d6000803e3d6000fd5b505050506040513d60208110156118ac57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152516044808301926020929190829003018186803b1580156118fc57600080fd5b505afa158015611910573d6000803e3d6000fd5b505050506040513d602081101561192657600080fd5b505190506001600160a01b038116611ab757816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561197157600080fd5b505afa158015611985573d6000803e3d6000fd5b505050506040513d602081101561199b57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929187169163ad5c464891600480820192602092909190829003018186803b1580156119eb57600080fd5b505afa1580156119ff573d6000803e3d6000fd5b505050506040513d6020811015611a1557600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015611a6757600080fd5b505af1158015611a7b573d6000803e3d6000fd5b505050506040513d6020811015611a9157600080fd5b5051601480546001600160a01b0319166001600160a01b03909216919091179055611ad3565b601480546001600160a01b0319166001600160a01b0383161790555b50601380546001600160a01b0319166001600160a01b039290921691909117905550565b611aff611c01565b6000546001600160a01b03908116911614611b4f576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b601f5481565b611b88611c01565b6000546001600160a01b03908116911614611bd8576040805162461bcd60e51b81526020600482015260116024820152600080516020612a03833981519152604482015290519081900360640190fd5b82846011540281611be557fe5b046020556011548190830281611bf757fe5b0460215550505050565b3390565b6001600160a01b038316611c56576040805162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015290519081900360640190fd5b6001600160a01b038216611ca7576040805162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015290519081900360640190fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60006001600160a01b038416611d5d576040805162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b604482015290519081900360640190fd5b6001600160a01b038316611daf576040805162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b604482015290519081900360640190fd5b60008211611def576040805162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b604482015290519081900360640190fd5b611df984846120c0565b15611fe85760295460ff1615611eb0576001600160a01b03841660009081526002602052604090205460ff1615611e6f576001600160a01b0383166000908152602a6020526040902054431415611e4f57600080fd5b6001600160a01b0383166000908152602a60205260409020439055611eb0565b6001600160a01b0384166000908152602a6020526040902054431415611e9457600080fd5b6001600160a01b0384166000908152602a602052604090204390555b6001600160a01b03841660009081526002602052604090205460ff1680611eef57506001600160a01b03831660009081526002602052604090205460ff165b15611f4b57601a54821115611f4b576040805162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015290519081900360640190fd5b6015546001600160a01b03848116911614801590611f8257506001600160a01b03831660009081526002602052604090205460ff16155b15611fe857601e5482611f9485611105565b011115611fe8576040805162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526005602052604090205460019060ff168061202a57506001600160a01b03841660009081526005602052604090205460ff165b15612033575060005b6001600160a01b03841660009081526002602052604090205460ff16156120ab57601754600160a01b900460ff161580156120775750601754600160a81b900460ff165b156120ab57600061208730611105565b905060205481106120a95760215481106120a057506021545b6120a981612195565b505b6120b785858584612316565b95945050505050565b60006120ca6113a0565b6001600160a01b0316836001600160a01b03161415801561210457506120ee6113a0565b6001600160a01b0316826001600160a01b031614155b801561212957506001600160a01b03821660009081526007602052604090205460ff16155b801561214e57506001600160a01b03831660009081526007602052604090205460ff16155b801561216557506001600160a01b03821661dead14155b801561217957506001600160a01b03821615155b801561218e57506001600160a01b0383163014155b9392505050565b6017805460ff60a01b1916600160a01b179055601054600f54600e5401016121bc57612306565b60006002601054600f54600e540101600e548402816121d757fe5b04816121df57fe5b0490508082036121ee8161254a565b600047905060006002601054600f54600e540101600e5484028161220e57fe5b048161221657fe5b049050831561226a576122298482612707565b604080518581526020810183905280820186905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b8385031561230157601654601054600f546001600160a01b03909216916108fc91810190848603028161229957fe5b049081150290604051600060405180830381858888f193505050501580156122c5573d6000803e3d6000fd5b506017546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156122ff573d6000803e3d6000fd5b505b505050505b506017805460ff60a01b19169055565b60225460009060ff16156124ab5761232d85611382565b8061233c575061233c84611382565b15612381576040805162461bcd60e51b815260206004820152601060248201526f29b734b832b9103932b532b1ba32b21760811b604482015290519081900360640190fd5b602254610100900460ff166123f85761239a85856127a8565b602254610100900460ff161580156123b757506123b785856120c0565b156123f35760405162461bcd60e51b81526004018080602001828103825260258152602001806129bb6025913960400191505060405180910390fd5b6124ab565b600060245411801561242257506001600160a01b03851660009081526002602052604090205460ff165b8015612433575061243385856120c0565b156124ab57602754602454430310156124ab576001600160a01b038416600081815260066020908152604091829020805460ff19166001908117909155602880549091019055815192835290517f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e59281900390910190a15b6001600160a01b038516600090815260016020526040812080548590039055826124d557836124e0565b6124e08686866128b9565b6001600160a01b03808716600081815260016020908152604091829020805486019055815185815291519495509193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600195945050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061257957fe5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156125cd57600080fd5b505afa1580156125e1573d6000803e3d6000fd5b505050506040513d60208110156125f757600080fd5b505181518290600190811061260857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601360009054906101000a90046001600160a01b03166001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156126c25781810151838201526020016126aa565b505050509050019650505050505050600060405180830381600087803b1580156126eb57600080fd5b505af11580156126ff573d6000803e3d6000fd5b505050505050565b6013546040805163f305d71960e01b815230600482015260248101859052600060448201819052606482015261dead60848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b15801561277757600080fd5b505af115801561278b573d6000803e3d6000fd5b50505050506040513d60608110156127a257600080fd5b50505050565b602254610100900460ff16156127ef5760405162461bcd60e51b81526004018080602001828103825260238152602001806129986023913960400191505060405180910390fd5b6127f982826120c0565b15801561281357506014546001600160a01b038281169116145b156112cf5760275460041461282f576113884301602455612834565b436024555b6001600160a01b038216600090815260076020908152604091829020805460ff191660019081179091556022805461ff001916610100179055426025556017805460ff60a81b1916600160a81b179055825190815291517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599281900390910190a15050565b60145460009081906001600160a01b03868116911614156128dd5750600b54612901565b6014546001600160a01b03858116911614156128fc5750600c54612901565b50600d545b61290b85856120c0565b1561292c5760235415806129225750602354604514155b1561292c57600080fd5b30600081815260016020908152604091829020805461271086890204908101909155825181815292519093926001600160a01b038a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a390920394935050505056fe4c697175696469747920616c726561647920616464656420616e64206d61726b65642e4f6e6c79206f776e65722063616e207472616e7366657220617420746869732074696d652e4d7573742062652061626f766520302e3125206f6620746f74616c20737570706c792e43616c6c6572203d2f3d206f776e65722e00000000000000000000000000000043616c6c2072656e6f756e63654f776e65727368697020746f207472616e73666572206f776e657220746f20746865207a65726f20616464726573732ea2646970667358221220fddcc8206f4b8c7cccee9f57327c8f432cc5f761f4aca6f26deffdab9157052b64736f6c63430007060033

Deployed Bytecode Sourcemap

5842:18885:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7389:73;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;7389:73:0;;;;;;;;;;;;;;16211:169;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16211:169:0;;;;;;;;;;;:::i;:::-;;12529:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7214:35;;;;;;;;;;;;;:::i;13142:161::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13142:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12264:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13756:306;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13756:306:0;;;;;;;;;;;;;;;;;:::i;17383:325::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17383:325:0;;;;;;;:::i;6627:42::-;;;;;;;;;;;;;:::i;12353:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6782:36;;;;;;;;;;;;;:::i;14070:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14070:215:0;;;;;;;;:::i;6584:34::-;;;;;;;;;;;;;:::i;17055:320::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17055:320:0;;;;;;;:::i;6511:29::-;;;;;;;;;;;;;:::i;7256:21::-;;;;;;;;;;;;;:::i;7700:41::-;;;;;;;;;;;;;:::i;6825:36::-;;;;;;;;;;;;;:::i;10947:761::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10947:761:0;-1:-1:-1;;;;;10947:761:0;;:::i;15453:125::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15453:125:0;-1:-1:-1;;;;;15453:125:0;;:::i;8429:36::-;;;;;;;;;;;;;:::i;13628:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13628:120:0;-1:-1:-1;;;;;13628:120:0;;:::i;6547:30::-;;;;;;;;;;;;;:::i;15586:134::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15586:134:0;;;;;;;;;;:::i;7911:77::-;;;;;;;;;;;;;:::i;12842:117::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12842:117:0;-1:-1:-1;;;;;12842:117:0;;:::i;11716:195::-;;;;;;;;;;;;;:::i;15035:410::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15035:410:0;;;;;;;;;;:::i;15868:186::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15868:186:0;;:::i;12615:80::-;;;;;;;;;;;;;:::i;15728:132::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15728:132:0;-1:-1:-1;;;;;15728:132:0;;:::i;10860:79::-;;;;;;;;;;;;;:::i;12439:84::-;;;;;;;;;;;;;:::i;14293:225::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14293:225:0;;;;;;;;:::i;6868:30::-;;;;;;;;;;;;;:::i;12967:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12967:167:0;;;;;;;;:::i;18227:171::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18227:171:0;;;;:::i;16769:278::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16769:278:0;;;;;;;;;;;;:::i;18013:206::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18013:206:0;;;;;;;;;;:::i;12701:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12701:133:0;;;;;;;;;;:::i;8680:32::-;;;;;;;;;;;;;:::i;16388:373::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16388:373:0;;;;;;;;;;;;:::i;14526:501::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14526:501:0;-1:-1:-1;;;;;14526:501:0;;:::i;16062:141::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16062:141:0;;;;;;;;;;:::i;8172:87::-;;;;;;;;;;;;;:::i;17716:289::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17716:289:0;;;;;;;;;;;;;;;;;:::i;7389:73::-;7420:42;7389:73;:::o;16211:169::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;16306:16:::1;:28:::0;;;::::1;;-1:-1:-1::0;;16306:28:0;;::::1;;::::0;;16345:15:::1;:27:::0;;;::::1;;::::0;;;::::1;;::::0;;16211:169::o;12529:80::-;12601:5;12594:12;;;;;;;;-1:-1:-1;;12594:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12577:13;;12594:12;;12601:5;;12594:12;;12601:5;12594:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12529:80;:::o;7214:35::-;;;-1:-1:-1;;;;;7214:35:0;;:::o;13142:161::-;13217:4;13234:39;13243:12;:10;:12::i;:::-;13257:7;13266:6;13234:8;:39::i;:::-;-1:-1:-1;13291:4:0;13142:161;;;;:::o;12264:83::-;12337:7;;12264:83;:::o;13756:306::-;-1:-1:-1;;;;;13877:19:0;;13856:4;13877:19;;;:11;:19;;;;;;;;13897:10;13877:31;;;;;;;;-1:-1:-1;;13877:52:0;13873:126;;-1:-1:-1;;;;;13946:19:0;;;;;;:11;:19;;;;;;;;13966:10;13946:31;;;;;;;:41;;;;;;;13873:126;14018:36;14028:6;14036:9;14047:6;14018:9;:36::i;:::-;14011:43;13756:306;-1:-1:-1;;;;13756:306:0:o;17383:325::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;17473:13:::1;17511:7;17500;17490;;:17;17489:29;;;;;;17473:45;;17557:4;17547:7;;:14;;;;;;17537:5;:25;;17529:73;;;;-1:-1:-1::0;;;17529:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17613:14;:22:::0;;;17665:14:::1;::::0;17693:7;;17665:24;::::1;17693:7:::0;17664:36:::1;;;;;17646:15;:54:::0;-1:-1:-1;;;17383:325:0:o;6627:42::-;6665:4;6627:42;:::o;12353:80::-;7049:1;12353:80;:::o;6782:36::-;;;;:::o;14070:215::-;14158:4;14175:80;14184:12;:10;:12::i;:::-;14198:7;14244:10;14207:11;:25;14219:12;:10;:12::i;:::-;-1:-1:-1;;;;;14207:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;14207:25:0;;;:34;;;;;;;;;;:47;14175:8;:80::i;6584:34::-;;;;:::o;17055:320::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;17144:13:::1;17182:7;17171;17161;;:17;17160:29;;;;;;17144:45;;17228:4;17218:7;;:14;;;;;;17208:5;:25;;17200:73;;;;-1:-1:-1::0;;;17200:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17284:12;:20:::0;;;17332:14:::1;::::0;17360:7;;17332:24;::::1;17360:7:::0;17331:36:::1;;;;;17315:13;:52:::0;-1:-1:-1;;;17055:320:0:o;6511:29::-;;;;:::o;7256:21::-;;;-1:-1:-1;;;;;7256:21:0;;:::o;7700:41::-;;;-1:-1:-1;;;7700:41:0;;;;;:::o;6825:36::-;;;;:::o;10947:761::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11028:22:0;::::1;11020:96;;;;-1:-1:-1::0;;;11020:96:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11135:16:0;::::1;7420:42;11135:16;;11127:90;;;;-1:-1:-1::0;;;11127:90:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11248:6;::::0;;11228:34:::1;::::0;-1:-1:-1;;;;;11248:6:0;;::::1;::::0;11228:19:::1;:34::i;:::-;11273:35;11293:8;11303:4;11273:19;:35::i;:::-;11361:6;::::0;11333:16:::1;::::0;-1:-1:-1;;;;;11333:16:0;;::::1;11361:6:::0;::::1;11333:35;11329:90;;;11383:16;:36:::0;;-1:-1:-1;;;;;;11383:36:0::1;-1:-1:-1::0;;;;;11383:36:0;::::1;;::::0;;11329:90:::1;11482:6;::::0;11472:17:::1;::::0;-1:-1:-1;;;;;11482:6:0::1;11472:9;:17::i;:::-;11440:19;11452:6:::0;;-1:-1:-1;;;;;11452:6:0;;::::1;11440:19:::0;;:11:::1;:19;::::0;;;;;;;:29;;::::1;::::0;;;;;;;:49;;;;11513:6;;11440:19;;11503:17:::1;::::0;11513:6:::1;11503:9;:17::i;:::-;:21;11500:99;;;11551:6;::::0;11541:46:::1;::::0;-1:-1:-1;;;;;11551:6:0::1;11559:8:::0;11569:17:::1;11551:6:::0;11569:9:::1;:17::i;:::-;11541:9;:46::i;:::-;;11500:99;11619:6;:17:::0;;-1:-1:-1;;;;;;11619:17:0::1;-1:-1:-1::0;;;;;11619:17:0;;::::1;::::0;;::::1;::::0;;;11652:38:::1;::::0;11619:17;;11673:6;::::1;::::0;11652:38:::1;::::0;11619:6;11652:38:::1;10947:761:::0;:::o;15453:125::-;-1:-1:-1;;;;;15542:28:0;15518:4;15542:28;;;:19;:28;;;;;;;;;15453:125::o;8429:36::-;;;;;;;;;:::o;13628:120::-;13681:4;13705:35;13713:7;-1:-1:-1;;13705:7:0;:35::i;:::-;13698:42;13628:120;-1:-1:-1;;13628:120:0:o;6547:30::-;;;;:::o;15586:134::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15674:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;15674:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15586:134::o;7911:77::-;;;;:::o;12842:117::-;-1:-1:-1;;;;;12935:16:0;12908:7;12935:16;;;:7;:16;;;;;;;12842:117::o;11716:195::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;11803:6:::1;::::0;;11783:34:::1;::::0;-1:-1:-1;;;;;11803:6:0;;::::1;::::0;11783:19:::1;:34::i;:::-;11845:1;11828:19:::0;;-1:-1:-1;;;;;;11828:19:0::1;::::0;;11863:40:::1;::::0;11845:1;;11863:40:::1;::::0;11845:1;;11863:40:::1;11716:195::o:0;15035:410::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;15116:16;15112:326:::1;;-1:-1:-1::0;;;;;15149:13:0;::::1;15165:5;15149:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;15149:21:0::1;::::0;;15112:326:::1;;;15207:17;::::0;:22;15203:139:::1;;15296:7;15276:17;;15258:15;:35;:45;15250:76;;;::::0;;-1:-1:-1;;;15250:76:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15250:76:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;15356:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;:20;;-1:-1:-1;;15356:20:0::1;15372:4;15356:20;::::0;;15411:15:::1;15391:17;:35:::0;15112:326:::1;15035:410:::0;;:::o;15868:186::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;15950:13:::1;::::0;:18;15941:38:::1;;;::::0;;-1:-1:-1;;;15941:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15941:38:0;;;;;;;;;;;;;::::1;;15990:13;:28:::0;16045:1:::1;16029:13;:17:::0;15868:186::o;12615:80::-;12667:7;12685;:5;:7::i;:::-;12678:14;;12615:80;:::o;15728:132::-;-1:-1:-1;;;;;15821:31:0;15797:4;15821:31;;;:22;:31;;;;;;;;;15728:132::o;10860:79::-;10898:7;10925:6;-1:-1:-1;;;;;10925:6:0;10860:79;:::o;12439:84::-;12513:7;12506:14;;;;;;;;-1:-1:-1;;12506:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12489:13;;12506:14;;12513:7;;12506:14;;12513:7;12506:14;;;;;;;;;;;;;;;;;;;;;;;;14293:225;14386:4;14403:85;14412:12;:10;:12::i;:::-;14426:7;14472:15;14435:11;:25;14447:12;:10;:12::i;:::-;-1:-1:-1;;;;;14435:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;14435:25:0;;;:34;;;;;;;;;;:52;14403:8;:85::i;6868:30::-;;;;:::o;12967:167::-;13045:4;13062:42;13072:12;:10;:12::i;:::-;13086:9;13097:6;13062:9;:42::i;:::-;-1:-1:-1;13122:4:0;;12967:167;-1:-1:-1;;;12967:167:0:o;18227:171::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;18304:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;18304:32:0;::::1;-1:-1:-1::0;;;;18304:32:0;;::::1;::::0;;;::::1;::::0;;;18352:38:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;18227:171:::0;:::o;16769:278::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;16902:3:::1;16890:9;16878;:21;:27;16909:4;16878:35;16869:68;;;::::0;;-1:-1:-1;;;16869:68:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;16869:68:0;;;;;;;;;;;;;::::1;;16948:15;:27:::0;;;;16986:15:::1;:27:::0;17024:9:::1;:15:::0;16769:278::o;18013:206::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;18124:16:::1;:43:::0;;-1:-1:-1;;;;;18124:43:0;;::::1;-1:-1:-1::0;;;;;;18124:43:0;;::::1;;::::0;;;18178:11:::1;:33:::0;;;;;::::1;::::0;::::1;;::::0;;18013:206::o;12701:133::-;-1:-1:-1;;;;;12803:19:0;;;12785:7;12803:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12701:133::o;8680:32::-;;;;:::o;16388:373::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;6665:4:::1;16498:6;:21;;:65;;;;;6715:4;16540:7;:23;;16498:65;:117;;;;;6769:4;16584:11;:31;;16498:117;16490:170;;;::::0;;-1:-1:-1;;;16490:170:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16671:7;:16:::0;;;;16698:8:::1;:18:::0;16727:12:::1;:26:::0;16388:373::o;14526:501::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;14597:29:::1;14648:9;14597:61;;14669:16;14706:10;-1:-1:-1::0;;;;;14706:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14706:20:0;14751:17:::1;::::0;;-1:-1:-1;;;14751:17:0;;;;-1:-1:-1;;;;;14688:47:0;;::::1;::::0;::::1;::::0;14744:4:::1;::::0;14751:15;;::::1;::::0;::::1;::::0;:17:::1;::::0;;::::1;::::0;14706:20:::1;::::0;14751:17;;;;;;;;:15;:17;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14751:17:0;14688:81:::1;::::0;;-1:-1:-1;;;;;;14688:81:0::1;::::0;;;;;;-1:-1:-1;;;;;14688:81:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;14751:17:::1;::::0;14688:81;;;;;;;;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14688:81:0;;-1:-1:-1;;;;;;14784:22:0;::::1;14780:207;;14850:10;-1:-1:-1::0;;;;;14850:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14850:20:0;14898:17:::1;::::0;;-1:-1:-1;;;14898:17:0;;;;-1:-1:-1;;;;;14832:50:0;;::::1;::::0;::::1;::::0;14891:4:::1;::::0;14898:15;;::::1;::::0;::::1;::::0;:17:::1;::::0;;::::1;::::0;14850:20:::1;::::0;14898:17;;;;;;;;:15;:17;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14898:17:0;14832:84:::1;::::0;;-1:-1:-1;;;;;;14832:84:0::1;::::0;;;;;;-1:-1:-1;;;;;14832:84:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;14898:17:::1;::::0;14832:84;;;;;;;-1:-1:-1;14832:84:0;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14832:84:0;14823:6:::1;:93:::0;;-1:-1:-1;;;;;;14823:93:0::1;-1:-1:-1::0;;;;;14823:93:0;;::::1;::::0;;;::::1;::::0;;14780:207:::1;;;14958:6;:17:::0;;-1:-1:-1;;;;;;14958:17:0::1;-1:-1:-1::0;;;;;14958:17:0;::::1;;::::0;;14780:207:::1;-1:-1:-1::0;14997:9:0::1;:22:::0;;-1:-1:-1;;;;;;14997:22:0::1;-1:-1:-1::0;;;;;14997:22:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;14526:501:0:o;16062:141::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16154:31:0;;;::::1;;::::0;;;:22:::1;:31;::::0;;;;:41;;-1:-1:-1;;16154:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16062:141::o;8172:87::-;;;;:::o;17716:289::-;9384:12;:10;:12::i;:::-;9374:6;;-1:-1:-1;;;;;9374:6:0;;;:22;;;9366:52;;;;;-1:-1:-1;;;9366:52:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9366:52:0;;;;;;;;;;;;;;;17916:16:::1;17896;17886:7;;:26;17885:47;;;;;;17869:13;:63:::0;17957:7:::1;::::0;17984:13;;17957:23;::::1;17984:13:::0;17956:41:::1;;;;;17943:10;:54:::0;-1:-1:-1;;;;17716:289:0:o;235:107::-;323:10;235:107;:::o;13311:309::-;-1:-1:-1;;;;;13405:20:0;;13397:52;;;;;-1:-1:-1;;;13397:52:0;;;;;;;;;;;;-1:-1:-1;;;13397:52:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13468:21:0;;13460:53;;;;;-1:-1:-1;;;13460:53:0;;;;;;;;;;;;-1:-1:-1;;;13460:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13526:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;13579:33;;;;;;;;;;;;;;;;;13311:309;;;:::o;18737:1646::-;18816:4;-1:-1:-1;;;;;18841:18:0;;18833:51;;;;;-1:-1:-1;;;18833:51:0;;;;;;;;;;;;-1:-1:-1;;;18833:51:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18903:16:0;;18895:49;;;;;-1:-1:-1;;;18895:49:0;;;;;;;;;;;;-1:-1:-1;;;18895:49:0;;;;;;;;;;;;;;;18972:1;18963:6;:10;18955:31;;;;;-1:-1:-1;;;18955:31:0;;;;;;;;;;;;-1:-1:-1;;;18955:31:0;;;;;;;;;;;;;;;19000:20;19011:4;19017:2;19000:10;:20::i;:::-;18997:707;;;19041:15;;;;19037:347;;;-1:-1:-1;;;;;19081:13:0;;;;;;:7;:13;;;;;;;;19077:292;;;-1:-1:-1;;;;;19126:13:0;;;;;;:9;:13;;;;;;19143:12;19126:29;;19118:38;;;;;;-1:-1:-1;;;;;19179:13:0;;;;;;:9;:13;;;;;19195:12;19179:28;;19077:292;;;-1:-1:-1;;;;;19264:15:0;;;;;;:9;:15;;;;;;19283:12;19264:31;;19256:40;;;;;;-1:-1:-1;;;;;19319:15:0;;;;;;:9;:15;;;;;19337:12;19319:30;;19077:292;-1:-1:-1;;;;;19401:13:0;;;;;;:7;:13;;;;;;;;;:28;;-1:-1:-1;;;;;;19418:11:0;;;;;;:7;:11;;;;;;;;19401:28;19398:126;;;19467:12;;19457:6;:22;;19449:59;;;;;-1:-1:-1;;;19449:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19547:14;;-1:-1:-1;;;;;19541:20:0;;;19547:14;;19541:20;;;;:36;;-1:-1:-1;;;;;;19566:11:0;;;;;;:7;:11;;;;;;;;19565:12;19541:36;19538:155;;;19632:14;;19622:6;19606:13;19616:2;19606:9;:13::i;:::-;:22;:40;;19598:79;;;;;-1:-1:-1;;;19598:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19749:25:0;;19716:12;19749:25;;;:19;:25;;;;;;19731:4;;19749:25;;;:52;;-1:-1:-1;;;;;;19778:23:0;;;;;;:19;:23;;;;;;;;19749:52;19746:98;;;-1:-1:-1;19827:5:0;19746:98;-1:-1:-1;;;;;19860:11:0;;;;;;:7;:11;;;;;;;;19856:457;;;19893:16;;-1:-1:-1;;;19893:16:0;;;;19892:17;:59;;;;-1:-1:-1;19930:21:0;;-1:-1:-1;;;19930:21:0;;;;19892:59;19888:408;;;19986:28;20017:24;20035:4;20017:9;:24::i;:::-;19986:55;;20088:13;;20064:20;:37;20060:221;;20153:10;;20129:20;:34;20126:77;;-1:-1:-1;20190:10:0;;20126:77;20225:36;20240:20;20225:14;:36::i;:::-;19888:408;;20331:44;20349:4;20355:2;20359:6;20367:7;20331:17;:44::i;:::-;20324:51;18737:1646;-1:-1:-1;;;;;18737:1646:0:o;18406:323::-;18474:4;18506:7;:5;:7::i;:::-;-1:-1:-1;;;;;18498:15:0;:4;-1:-1:-1;;;;;18498:15:0;;;:45;;;;;18536:7;:5;:7::i;:::-;-1:-1:-1;;;;;18530:13:0;:2;-1:-1:-1;;;;;18530:13:0;;;18498:45;:84;;;;-1:-1:-1;;;;;;18561:21:0;;;;;;:17;:21;;;;;;;;18560:22;18498:84;:125;;;;-1:-1:-1;;;;;;18600:23:0;;;;;;:17;:23;;;;;;;;18599:24;18498:125;:152;;;;-1:-1:-1;;;;;;18640:10:0;;7420:42;18640:10;;18498:152;:185;;;;-1:-1:-1;;;;;;18667:16:0;;;;18498:185;:223;;;;-1:-1:-1;;;;;;18700:21:0;;18716:4;18700:21;;18498:223;18491:230;18406:323;-1:-1:-1;;;18406:323:0:o;20391:1015::-;9248:16;:23;;-1:-1:-1;;;;9248:23:0;-1:-1:-1;;;9248:23:0;;;20516:9:::1;::::0;20498:15:::1;::::0;20480::::1;::::0;:33:::1;:45;20476:76;;20545:7;;20476:76;20562:17;20677:1;20663:9;;20645:15;;20627;;:33;:45;20607:15;;20584:20;:38;20583:90;;;;;;20582:96;;;;;;::::0;-1:-1:-1;20714:32:0;;::::1;20757:30;20714:32:::0;20757:16:::1;:30::i;:::-;20800:22;20825:21;20800:46;;20857:24;20973:1;20959:9;;20941:15;;20923;;:33;:45;20903:15;;20886:14;:32;20885:84;;;;;;20884:90;;;;;;::::0;-1:-1:-1;20991:13:0;;20987:161:::1;;21021:41;21034:9;21045:16;21021:12;:41::i;:::-;21082:54;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;20987:161;21162:32:::0;;::::1;:36:::0;21158:241:::1;;21215:16;::::0;21318:9:::1;::::0;21300:15:::1;::::0;-1:-1:-1;;;;;21215:16:0;;::::1;::::0;:114:::1;::::0;21300:27;::::1;::::0;21243:33;;::::1;21242:53;21300:27:::0;21241:87:::1;;;;;21215:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21344:11:0::1;::::0;:43:::1;::::0;-1:-1:-1;;;;;21344:11:0;;::::1;::::0;21365:21:::1;21344:43:::0;::::1;;;::::0;:11:::1;:43:::0;:11;:43;21365:21;21344:11;:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21158:241;9282:1;;;;;-1:-1:-1::0;9294:16:0;:24;;-1:-1:-1;;;;9294:24:0;;;20391:1015::o;22802:1216::-;22923:16;;22902:4;;22923:16;;22919:858;;;22959:27;22981:4;22959:21;:27::i;:::-;:56;;;;22990:25;23012:2;22990:21;:25::i;:::-;22955:123;;;23036:26;;;-1:-1:-1;;;23036:26:0;;;;;;;;;;;;-1:-1:-1;;;23036:26:0;;;;;;;;;;;;;;22955:123;23099:16;;;;;;;23094:672;;23136:28;23155:4;23161:2;23136:18;:28::i;:::-;23188:16;;;;;;;23187:17;:41;;;;;23208:20;23219:4;23225:2;23208:10;:20::i;:::-;23183:137;;;23253:47;;-1:-1:-1;;;23253:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23183:137;23094:672;;;23379:1;23364:12;;:16;:55;;;;-1:-1:-1;;;;;;23406:13:0;;;;;;:7;:13;;;;;;;;23364:55;:101;;;;;23445:20;23456:4;23462:2;23445:10;:20::i;:::-;23360:391;;;23542:13;;23527:12;;23512;:27;:43;23508:224;;;-1:-1:-1;;;;;23584:26:0;;;;;;:22;:26;;;;;;;;;:33;;-1:-1:-1;;23584:33:0;23613:4;23584:33;;;;;;23644:13;:16;;;;;;;23692;;;;;;;;;;;;;;;;;23508:224;-1:-1:-1;;;;;23789:13:0;;;;;;:7;:13;;;;;:23;;;;;;;23849:7;23848:48;;23890:6;23848:48;;;23860:27;23870:4;23876:2;23880:6;23860:9;:27::i;:::-;-1:-1:-1;;;;;23907:11:0;;;;;;;:7;:11;;;;;;;;;:29;;;;;;23954:34;;;;;;;23823:73;;-1:-1:-1;23907:11:0;;23954:34;;;;;;;;;;;;;;;-1:-1:-1;24006:4:0;;22802:1216;-1:-1:-1;;;;;22802:1216:0:o;21414:417::-;21505:16;;;21519:1;21505:16;;;;;;;;21481:21;;21505:16;;;;;;;;;;-1:-1:-1;21505:16:0;21481:40;;21550:4;21532;21537:1;21532:7;;;;;;;;-1:-1:-1;;;;;21532:23:0;;;:7;;;;;;;;;;:23;;;;21576:9;;:16;;;-1:-1:-1;;;21576:16:0;;;;:9;;;;;:14;;:16;;;;;21532:7;;21576:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21576:16:0;21566:7;;:4;;21571:1;;21566:7;;;;;;;;;;;:26;-1:-1:-1;;;;;21566:26:0;;;-1:-1:-1;;;;;21566:26:0;;;;;21605:9;;;;;;;;;-1:-1:-1;;;;;21605:9:0;-1:-1:-1;;;;;21605:60:0;;21680:11;21706:1;21750:4;21777;21797:15;21605:218;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21605:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21414:417;;:::o;21839:332::-;21920:9;;:243;;;-1:-1:-1;;;21920:243:0;;21986:4;21920:243;;;;;;;;;;:9;:243;;;;;;;;;;7420:42;21920:243;;;;22137:15;21920:243;;;;;;-1:-1:-1;;;;;21920:9:0;;;;:25;;21953:9;;21920:243;;;;;;;;;;;;;;21953:9;21920;:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;21839:332:0:o;22179:615::-;22261:16;;;;;;;22260:17;22252:65;;;;-1:-1:-1;;;22252:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22333:20;22344:4;22350:2;22333:10;:20::i;:::-;22332:21;:37;;;;-1:-1:-1;22363:6:0;;-1:-1:-1;;;;;22357:12:0;;;22363:6;;22357:12;22332:37;22328:459;;;22390:13;;22407:1;22390:18;22386:161;;22459:4;22444:12;:19;22429:12;:34;22386:161;;;22519:12;22504;:27;22386:161;-1:-1:-1;;;;;22563:23:0;;;;;;:17;:23;;;;;;;;;:30;;-1:-1:-1;;22563:30:0;22589:4;22563:30;;;;;;22608:16;:23;;-1:-1:-1;;22608:23:0;22563:30;22608:23;;;22661:15;22646:12;:30;22693:21;:28;;-1:-1:-1;;;;22693:28:0;-1:-1:-1;;;22693:28:0;;;22741:34;;;;;;;;;;;;;;;;;22179:615;;:::o;24026:698::-;24166:6;;24105:7;;;;-1:-1:-1;;;;;24158:14:0;;;24166:6;;24158:14;24154:197;;;-1:-1:-1;24202:7:0;;24154:197;;;24237:6;;-1:-1:-1;;;;;24231:12:0;;;24237:6;;24231:12;24227:124;;;-1:-1:-1;24273:8:0;;24227:124;;;-1:-1:-1;24327:12:0;;24227:124;24367:20;24378:4;24384:2;24367:10;:20::i;:::-;24363:141;;;24407:13;;:18;;:41;;;24429:13;;24446:2;24429:19;;24407:41;24403:90;;;24469:8;;;24403:90;24603:4;24516:17;24587:22;;;:7;:22;;;;;;;;;:35;;6951:5;24536:19;;;:38;24587:35;;;;;;24638:40;;;;;;;24536:38;;24603:4;-1:-1:-1;;;;;24638:40:0;;;;;;;;;;;;24698:18;;;;24026:698;-1:-1:-1;;;;24026:698:0:o

Swarm Source

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