ETH Price: $2,346.45 (+2.43%)

Token

Pepe Shib (PEPES)
 

Overview

Max Total Supply

420,690,000,000 PEPES

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 2 Decimals)

Filtered by Token Holder
Uniswap V2: PEPES 12
Balance
6,179,761,024.78 PEPES

Value
$0.00
0x012ee6c03c689c37e6b9c3ad1502627c0713415b
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:
PepeShib

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 100 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-20
*/

/* 

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⡶⠶⠿⠿⠶⢶⣤⣄⠀⠀⠀⠀⢀⣀⣠⣤⣤⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣾⠟⠉⠀⠀⠀⠀⠀⠀⠀⠈⠛⢿⣦⣶⠿⠛⠉⠉⠁⠀⠈⠙⠻⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡿⠋⠀⠀⠀⣀⣠⣤⣤⣤⣤⣤⣤⣀⡀⠹⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡿⠁⠀⠀⣶⡿⠛⠉⠀⠀⠀⠀⠀⠈⠉⠻⢷⣿⣧⣶⣶⠶⠿⠿⠿⠿⠷⣶⣾⣷⣄⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡿⠀⠀⠀⠀⠁⠀⠀⠀⠀⢀⣠⣤⣶⠶⢾⣿⣿⡿⠿⣶⣄⠀⠀⢴⡶⠶⡶⣷⣾⢿⠿⠿⠷⣦⣄⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⡟⠀⠀⠀⠀⠀⠀⣀⣤⣶⠾⣻⣭⣷⠾⠛⠛⠋⠛⠛⠛⠻⢿⣷⣤⣶⣷⠶⠿⡛⣛⢛⠛⠛⠿⣶⣿⡆⠀
⠀⠀⠀⠀⠀⢀⣴⡾⠛⠁⠀⠀⠀⠀⠀⢠⣴⣿⣭⡶⠟⠋⠉⠀⣀⣠⣤⣶⣶⠾⠿⠛⠻⢿⣧⣤⣴⡶⠿⢿⣿⣿⣿⣟⠛⠷⠿⣿⡆
⠀⠀⠀⠀⠀⣼⠟⠀⠀⠀⠀⠀⠀⠀⠀⠙⠷⠾⣷⣶⣶⡶⠾⠛⢻⣿⣏⣻⡿⠻⣦⡀⢀⣼⠏⠁⠀⠀⢠⣿⣧⣼⠛⣿⣷⠀⢀⣼⡇
⠀⠀⠀⢀⣾⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣯⣛⡷⣦⣤⣾⣿⣯⣽⣷⣴⣿⡷⣟⣿⠷⠶⣶⣤⣾⣿⣦⣿⣶⣿⣿⣿⣿⠏⠀
⠀⠀⣠⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠛⠻⠶⠿⠿⠿⠷⢾⣿⣿⠟⠋⠁⣤⡀⠀⠀⠀⠀⠀⠀⢀⣠⣼⠟⠀⠀⠀
⠀⢠⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⡶⠿⠋⠁⠀⠀⠀⠛⠻⢶⣶⡶⠶⠶⠿⣿⡏⠁⠀⠀⠀⠀
⢠⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⠀⠀⠀⠈⢿⣦⠀⠀⠀⠀
⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣧⠀⠀⠀
⠸⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⠶⡿⠛⠛⠻⠿⠶⢶⣦⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣤⣤⣶⠶⠟⠻⣧⠀⠀
⠀⢻⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⡟⠀⠰⡶⢶⣶⣶⣤⣤⣤⣀⣀⠉⠙⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠉⠉⠀⠀⢀⣀⣴⡟⠀⠀
⠀⠈⢿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠘⢿⣤⣀⣥⣤⣴⣦⣤⣬⣉⣉⣛⠛⠛⠿⠷⠶⠶⠶⠶⠶⠶⠶⠶⠶⠾⠟⠛⢻⣿⠁⠀⠀⠀
⠀⠀⠈⠻⣧⣄⠀⠀⠀⠀⠀⠀⠀⠻⣷⣤⣉⡉⠁⠀⠀⠀⠀⠈⠉⠛⠛⠻⠿⠿⠶⢶⣶⣶⣶⣦⣤⣤⣤⣄⣠⣤⣴⡾⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠘⢿⣷⣦⣤⣀⡀⠀⠀⠀⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣈⣽⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⡷⣶⣦⣤⣄⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣠⣤⣴⣶⡾⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠛⠷⠾⢯⣭⣭⣭⣭⣉⣉⣉⣉⣉⣉⣉⣩⣭⣽⡿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/

//TG: https://t.me/PepeShib_ETH
//Twitter: http://twitter.com/PepeShib_ERC
//Web: http://pepeshiberc.com






// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.18;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

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

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "Pepe Shib";
    string constant _symbol = "PEPES";
    uint8 constant _decimals = 2; 
  

    uint256 _totalSupply = 420690000000 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(1).div(100);

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

    
    mapping (address => bool) isFeeexempt;
    mapping (address => bool) isTxLimitexempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 3;
    uint256 private devFee          = 0;
    uint256 private teamFee         = 1; 
    uint256 private stakingFee      = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + devFee + stakingFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 100;
    uint256 buypercent = 100;
    uint256 transferpercent = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private stakingFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

    bool public launchMode = false;
    mapping (address => bool) public islaunched;   

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 30 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeexempt[msg.sender] = true;
        isFeeexempt[devFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[devFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xB5B8811A2014eE25D9A67A65cD9D8cd6bea6D40D;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        stakingFeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

    }

    receive() external payable { }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(maxWallPercent >= 1); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTransacion(uint256 maxTXPercent) external onlyOwner {
         require(maxTXPercent >= 1); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    function removeLimits () external onlyOwner {
            _maxTxAmount = _totalSupply;
            _maxWalletToken = _totalSupply;
    }
      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
             if(launchMode){
                require(islaunched[recipient],"Not launched"); 
          }
        }
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != stakingFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitexempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        

        // Checks max transaction limit
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeexempt[sender] || isFeeexempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitexempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeexempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 percent = transferpercent;

        if(recipient == pair) {
            percent = sellpercent;
        } else if(sender == pair) {
            percent = buypercent;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100);
        uint256 stakingTokens = feeAmount.mul(stakingFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(stakingTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[stakingFeeReceiver] = _balances[stakingFeeReceiver].add(stakingTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(stakingTokens > 0){
            _totalSupply = _totalSupply.sub(stakingTokens);
            emit Transfer(sender, ZERO, stakingTokens);  
        
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function removeStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function engageSwapback() external onlyOwner {
           swapBack();
    
    }

     function manualTransfer() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);

    }

    function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
               if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setPercents(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellpercent = _sell;
        buypercent = _buy;
        transferpercent = _trans;    
          
    }

     function enableLaunch(bool _status) public onlyOwner {
        launchMode = _status;
    }

    function setIsLaunch(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            islaunched[addresses[i]] = status;
        }
    }

  
    
    function goLive() public onlyOwner {
        TradingOpen = true;
        sellpercent = 1000;
        buypercent = 600;
        transferpercent = 0;
         
                 
    }
             
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function setExemptAll(address holder, bool exempt) external onlyOwner {
        isFeeexempt[holder] = exempt;
        isTxLimitexempt[holder] = exempt;
    }
    
    function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _stakingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        stakingFee = _stakingFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_stakingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); 
    }

    function setWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _stakingFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        stakingFeeReceiver = _stakingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapAndLiquifyStatus(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }



event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"engageSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"islaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setExemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setIsLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTransacion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapAndLiquifyStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_stakingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326002600a620006e9565b62000043906461f313f880620006fa565b6005556200007d6064620000696001600554620004b960201b6200114e1790919060201c565b6200055060201b620011d01790919060201c565b600655620000a36064620000696001600554620004b960201b6200114e1790919060201c565b6007556001600c556003600d556000600e556001600f556000601055601054600e54600c54600d54600f54620000da919062000714565b620000e6919062000714565b620000f2919062000714565b620000fe919062000714565b60115560646012819055601381905560148190556015819055601e601b819055601c91909155601f805461ffff60a01b191690556021805460ff191660011790556005546103e891620001529190620006fa565b6200015e91906200072a565b6022553480156200016e57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025491906200074d565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d991906200074d565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200032b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035191906200074d565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673b5b8811a2014ee25d9a67a65cd9d8cd6bea6d40d1790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007c8565b600082600003620004cd575060006200054a565b6000620004db8385620006fa565b905082620004ea85836200072a565b14620005475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059a60201b60201c565b60008183620005be5760405162461bcd60e51b81526004016200053e919062000778565b506000620005cd84866200072a565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200062d578160001904821115620006115762000611620005d6565b808516156200061f57918102915b93841c9390800290620005f1565b509250929050565b60008262000646575060016200054a565b8162000655575060006200054a565b81600181146200066e5760028114620006795762000699565b60019150506200054a565b60ff8411156200068d576200068d620005d6565b50506001821b6200054a565b5060208310610133831016604e8410600b8410161715620006be575081810a6200054a565b620006ca8383620005ec565b8060001904821115620006e157620006e1620005d6565b029392505050565b60006200054760ff84168362000635565b80820281158282048414176200054a576200054a620005d6565b808201808211156200054a576200054a620005d6565b6000826200074857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076057600080fd5b81516001600160a01b03811681146200054757600080fd5b600060208083528351808285015260005b81811015620007a75785810183015185820160400152820162000789565b506000604082860101526040601f19601f8301168501019250505092915050565b61231980620007d86000396000f3fe6080604052600436106102605760003560e01c8063751039fc11610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146106fc578063dd62ed3e1461071c578063efe8a45e14610762578063f0a9e36514610782578063f2fde38b146107a2578063f887ea40146107c257600080fd5b8063b2bdfa7b1461065b578063b37dd6901461067b578063bccdd1f51461069c578063bf5e2ec2146106bc578063c20b49a3146106dc57600080fd5b80638821004f116101085780638821004f1461057d578063893d20e81461059d5780638da5cb5b146105cf57806395d89b41146105ed578063a8aa1b311461061b578063a9059cbb1461063b57600080fd5b8063751039fc146104fc57806378109e54146105115780637d1db4a514610527578063825287911461053d57806386f6c3c11461055d57600080fd5b80632b112e49116101dd57806359cc7556116101a157806359cc7556146104495780635d0044ca1461045e5780636ddd17131461047e5780637007546b1461049857806370a08231146104c7578063715018a6146104e757600080fd5b80632b112e49146103ce5780632c28f579146103e3578063313ce567146103f857806349dfa3c214610414578063571ac8b01461042957600080fd5b80631161ae39116102245780631161ae391461034357806318160ddd146103635780631df4ccfc1461037857806322c5f95c1461038e57806323b872dd146103ae57600080fd5b80630445b6671461026c57806306fdde031461029557806308fd3d05146102d0578063095ea7b31461030157806311107c681461032157600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260225481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506040805180820190915260098152682832b8329029b434b160b91b60208201525b60405161028c9190611de2565b3480156102dc57600080fd5b50601f546102f190600160a01b900460ff1681565b604051901515815260200161028c565b34801561030d57600080fd5b506102f161031c366004611e4c565b6107e2565b34801561032d57600080fd5b5061034161033c366004611e84565b61084f565b005b34801561034f57600080fd5b506102f161035e366004611ea1565b6108a0565b34801561036f57600080fd5b50600554610282565b34801561038457600080fd5b5061028260115481565b34801561039a57600080fd5b506103416103a9366004611ec3565b6108b4565b3480156103ba57600080fd5b506102f16103c9366004611ee1565b6108f5565b3480156103da57600080fd5b506102826109b7565b3480156103ef57600080fd5b50610341610a00565b34801561040457600080fd5b506040516002815260200161028c565b34801561042057600080fd5b50610341610a50565b34801561043557600080fd5b506102f1610444366004611f1d565b610a8c565b34801561045557600080fd5b50610341610a9a565b34801561046a57600080fd5b50610341610479366004611f38565b610ace565b34801561048a57600080fd5b506021546102f19060ff1681565b3480156104a457600080fd5b506102f16104b3366004611f1d565b602080526000908152604090205460ff1681565b3480156104d357600080fd5b506102826104e2366004611f1d565b610b27565b3480156104f357600080fd5b50610341610b42565b34801561050857600080fd5b50610341610bb6565b34801561051d57600080fd5b5061028260075481565b34801561053357600080fd5b5061028260065481565b34801561054957600080fd5b50610341610558366004611f51565b610bed565b34801561056957600080fd5b50610341610578366004611fb6565b610c76565b34801561058957600080fd5b50610341610598366004611f38565b610d3c565b3480156105a957600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161028c565b3480156105db57600080fd5b506000546001600160a01b03166105b7565b3480156105f957600080fd5b50604080518082019091526005815264504550455360d81b60208201526102c3565b34801561062757600080fd5b50601f546105b7906001600160a01b031681565b34801561064757600080fd5b506102f1610656366004611e4c565b610d90565b34801561066757600080fd5b506000546105b7906001600160a01b031681565b34801561068757600080fd5b50601f546102f190600160a81b900460ff1681565b3480156106a857600080fd5b506103416106b7366004611ff9565b610d9d565b3480156106c857600080fd5b506103416106d736600461207f565b610e3c565b3480156106e857600080fd5b506103416106f7366004611f38565b610ea4565b34801561070857600080fd5b50610282610717366004611f38565b610efd565b34801561072857600080fd5b506102826107373660046120b6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561076e57600080fd5b5061034161077d3660046120e9565b610f3d565b34801561078e57600080fd5b506102f161079d366004611e4c565b610f78565b3480156107ae57600080fd5b506103416107bd366004611f1d565b611064565b3480156107ce57600080fd5b50601d546105b7906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061083d9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108825760405162461bcd60e51b815260040161087990612115565b60405180910390fd5b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000826108ac83610efd565b119392505050565b6000546001600160a01b031633146108de5760405162461bcd60e51b815260040161087990612115565b6021805460ff191692151592909217909155602255565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109a2576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461097d918490611212565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109ad84848461124c565b90505b9392505050565b6004546000906109fb906109d3906001600160a01b0316610b27565b6003546109f5906109ec906001600160a01b0316610b27565b6005549061160f565b9061160f565b905090565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b815260040161087990612115565b601f805460ff60a01b1916600160a01b1790556103e86013556102586014556000601555565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a89573d6000803e3d6000fd5b50565b6000610849826000196107e2565b6000546001600160a01b03163314610ac45760405162461bcd60e51b815260040161087990612115565b610acc611651565b565b6000546001600160a01b03163314610af85760405162461bcd60e51b815260040161087990612115565b6001811015610b0657600080fd5b6103e881600554610b179190612160565b610b219190612177565b60075550565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161087990612115565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610be05760405162461bcd60e51b815260040161087990612115565b6005546006819055600755565b6000546001600160a01b03163314610c175760405162461bcd60e51b815260040161087990612115565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b03163314610ca05760405162461bcd60e51b815260040161087990612115565b600c869055600f859055600d849055600e8390556010829055610cd182610ccb858188818c8c611a38565b90611a38565b6011556012819055610ce4600282612177565b60115410610d345760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203530250000006044820152606401610879565b505050505050565b60195447906001600160a01b03166108fc6064610d598585612160565b610d639190612177565b6040518115909202916000818181858888f19350505050158015610d8b573d6000803e3d6000fd5b505050565b60006109b033848461124c565b6000546001600160a01b03163314610dc75760405162461bcd60e51b815260040161087990612115565b60005b82811015610e36578160206000868685818110610de957610de9612199565b9050602002016020810190610dfe9190611f1d565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e2f816121af565b9050610dca565b50505050565b6000546001600160a01b03163314610e665760405162461bcd60e51b815260040161087990612115565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610ece5760405162461bcd60e51b815260040161087990612115565b6001811015610edc57600080fd5b6103e881600554610eed9190612160565b610ef79190612177565b60065550565b6000610849610f0a6109b7565b601f54610f3790610f3090600290610f2a906001600160a01b0316610b27565b9061114e565b859061114e565b906111d0565b6000546001600160a01b03163314610f675760405162461bcd60e51b815260040161087990612115565b601391909155601491909155601555565b600081600003610fed576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea91906121c8565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015611040573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b091906121e1565b6000546001600160a01b0316331461108e5760405162461bcd60e51b815260040161087990612115565b6001600160a01b0381166110f35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610879565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008260000361116057506000610849565b600061116c8385612160565b9050826111798583612177565b146109b05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610879565b60006109b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a97565b600081848411156112365760405162461bcd60e51b81526004016108799190611de2565b50600061124384866121fe565b95945050505050565b60235460009060ff161561126c57611265848484611ac5565b90506109b0565b6001600160a01b03841660009081526001602052604090205460ff161580156112ae57506001600160a01b03831660009081526001602052604090205460ff16155b1561136b57601f54600160a01b900460ff166113035760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610879565b601f54600160a81b900460ff161561136b576001600160a01b038316600090815260208052604090205460ff1661136b5760405162461bcd60e51b815260206004820152600c60248201526b139bdd081b185d5b98da195960a21b6044820152606401610879565b6001600160a01b03841660009081526001602052604090205460ff1615801561139d57506001600160a01b0383163014155b80156113b757506003546001600160a01b03848116911614155b80156113d15750601f546001600160a01b03848116911614155b80156113eb5750601a546001600160a01b03848116911614155b801561140557506017546001600160a01b03848116911614155b801561142a57506001600160a01b0383166000908152600b602052604090205460ff16155b156114c057600061143a84610b27565b60075490915061144a8483612211565b11156114be5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610879565b505b6114ca8483611b99565b6114d2611c06565b156114df576114df611651565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611531918490611212565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061157e57506001600160a01b0384166000908152600a602052604090205460ff165b6115925761158d858486611c55565b611594565b825b6001600160a01b0385166000908152600860205260409020549091506115ba9082611a38565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206122c4833981519152906115fc9085815260200190565b60405180910390a3506001949350505050565b60006109b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611212565b6023805460ff19166001179055601b54601c54600091611670916108a0565b61167c57600c5461167f565b60005b905060006116a36002610f37601154610f378660225461114e90919063ffffffff16565b905060006116bc8260225461160f90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106116f6576116f6612199565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061172757611727612199565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611771908690600090879030904290600401612224565b600060405180830381600087803b15801561178b57600080fd5b505af115801561179f573d6000803e3d6000fd5b5050505060006117b8824761160f90919063ffffffff16565b905060006117d36117ca8860026111d0565b6011549061160f565b905060006117e86002610f378481878d61114e565b9050600061180583610f37600d548761114e90919063ffffffff16565b9050600061182284610f37600f548861114e90919063ffffffff16565b9050600061183f85610f37600e548961114e90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611891576040519150601f19603f3d011682016040523d82523d6000602084013e611896565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146118e6576040519150601f19603f3d011682016040523d82523d6000602084013e6118eb565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461193b576040519150601f19603f3d011682016040523d82523d6000602084013e611940565b606091505b5060009250508b159050611a2057601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156119be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119e39190612295565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611a458385612211565b9050838110156109b05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610879565b60008183611ab85760405162461bcd60e51b81526004016108799190611de2565b5060006112438486612177565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b16918490611212565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b459083611a38565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206122c483398151915290611b879086815260200190565b60405180910390a35060019392505050565b60065481111580611bc257506001600160a01b0382166000908152600b602052604090205460ff165b611c025760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610879565b5050565b601f546000906001600160a01b03163314801590611c27575060235460ff16155b8015611c35575060215460ff165b80156109fb57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c7b5750601354611c96565b601f546001600160a01b0390811690861603611c9657506014545b6000611cc36012546064611caa9190612160565b610f3784610f2a6011548a61114e90919063ffffffff16565b90506000611ce2601154610f376010548561114e90919063ffffffff16565b90506000611cf0838361160f565b30600090815260086020526040902054909150611d0d9082611a38565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d3b9083611a38565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206122c4833981519152910160405180910390a38115611dcc57600554611d95908361160f565b6005556004546040518381526001600160a01b03918216918a16906000805160206122c48339815191529060200160405180910390a35b611dd6878461160f565b98975050505050505050565b600060208083528351808285015260005b81811015611e0f57858101830151858201604001528201611df3565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e4757600080fd5b919050565b60008060408385031215611e5f57600080fd5b611e6883611e30565b946020939093013593505050565b8015158114610a8957600080fd5b600060208284031215611e9657600080fd5b81356109b081611e76565b60008060408385031215611eb457600080fd5b50508035926020909101359150565b60008060408385031215611ed657600080fd5b8235611e6881611e76565b600080600060608486031215611ef657600080fd5b611eff84611e30565b9250611f0d60208501611e30565b9150604084013590509250925092565b600060208284031215611f2f57600080fd5b6109b082611e30565b600060208284031215611f4a57600080fd5b5035919050565b600080600080600060a08688031215611f6957600080fd5b611f7286611e30565b9450611f8060208701611e30565b9350611f8e60408701611e30565b9250611f9c60608701611e30565b9150611faa60808701611e30565b90509295509295909350565b60008060008060008060c08789031215611fcf57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561200e57600080fd5b833567ffffffffffffffff8082111561202657600080fd5b818601915086601f83011261203a57600080fd5b81358181111561204957600080fd5b8760208260051b850101111561205e57600080fd5b6020928301955093505084013561207481611e76565b809150509250925092565b6000806040838503121561209257600080fd5b61209b83611e30565b915060208301356120ab81611e76565b809150509250929050565b600080604083850312156120c957600080fd5b6120d283611e30565b91506120e060208401611e30565b90509250929050565b6000806000606084860312156120fe57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108495761084961214a565b60008261219457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016121c1576121c161214a565b5060010190565b6000602082840312156121da57600080fd5b5051919050565b6000602082840312156121f357600080fd5b81516109b081611e76565b818103818111156108495761084961214a565b808201808211156108495761084961214a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122745784516001600160a01b03168352938301939183019160010161224f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122aa57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122032ff1d96e58039e808ef95fb914de1be85ee96ba3b449e46a9c833be58416f9064736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102605760003560e01c8063751039fc11610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c8146106fc578063dd62ed3e1461071c578063efe8a45e14610762578063f0a9e36514610782578063f2fde38b146107a2578063f887ea40146107c257600080fd5b8063b2bdfa7b1461065b578063b37dd6901461067b578063bccdd1f51461069c578063bf5e2ec2146106bc578063c20b49a3146106dc57600080fd5b80638821004f116101085780638821004f1461057d578063893d20e81461059d5780638da5cb5b146105cf57806395d89b41146105ed578063a8aa1b311461061b578063a9059cbb1461063b57600080fd5b8063751039fc146104fc57806378109e54146105115780637d1db4a514610527578063825287911461053d57806386f6c3c11461055d57600080fd5b80632b112e49116101dd57806359cc7556116101a157806359cc7556146104495780635d0044ca1461045e5780636ddd17131461047e5780637007546b1461049857806370a08231146104c7578063715018a6146104e757600080fd5b80632b112e49146103ce5780632c28f579146103e3578063313ce567146103f857806349dfa3c214610414578063571ac8b01461042957600080fd5b80631161ae39116102245780631161ae391461034357806318160ddd146103635780631df4ccfc1461037857806322c5f95c1461038e57806323b872dd146103ae57600080fd5b80630445b6671461026c57806306fdde031461029557806308fd3d05146102d0578063095ea7b31461030157806311107c681461032157600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260225481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506040805180820190915260098152682832b8329029b434b160b91b60208201525b60405161028c9190611de2565b3480156102dc57600080fd5b50601f546102f190600160a01b900460ff1681565b604051901515815260200161028c565b34801561030d57600080fd5b506102f161031c366004611e4c565b6107e2565b34801561032d57600080fd5b5061034161033c366004611e84565b61084f565b005b34801561034f57600080fd5b506102f161035e366004611ea1565b6108a0565b34801561036f57600080fd5b50600554610282565b34801561038457600080fd5b5061028260115481565b34801561039a57600080fd5b506103416103a9366004611ec3565b6108b4565b3480156103ba57600080fd5b506102f16103c9366004611ee1565b6108f5565b3480156103da57600080fd5b506102826109b7565b3480156103ef57600080fd5b50610341610a00565b34801561040457600080fd5b506040516002815260200161028c565b34801561042057600080fd5b50610341610a50565b34801561043557600080fd5b506102f1610444366004611f1d565b610a8c565b34801561045557600080fd5b50610341610a9a565b34801561046a57600080fd5b50610341610479366004611f38565b610ace565b34801561048a57600080fd5b506021546102f19060ff1681565b3480156104a457600080fd5b506102f16104b3366004611f1d565b602080526000908152604090205460ff1681565b3480156104d357600080fd5b506102826104e2366004611f1d565b610b27565b3480156104f357600080fd5b50610341610b42565b34801561050857600080fd5b50610341610bb6565b34801561051d57600080fd5b5061028260075481565b34801561053357600080fd5b5061028260065481565b34801561054957600080fd5b50610341610558366004611f51565b610bed565b34801561056957600080fd5b50610341610578366004611fb6565b610c76565b34801561058957600080fd5b50610341610598366004611f38565b610d3c565b3480156105a957600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161028c565b3480156105db57600080fd5b506000546001600160a01b03166105b7565b3480156105f957600080fd5b50604080518082019091526005815264504550455360d81b60208201526102c3565b34801561062757600080fd5b50601f546105b7906001600160a01b031681565b34801561064757600080fd5b506102f1610656366004611e4c565b610d90565b34801561066757600080fd5b506000546105b7906001600160a01b031681565b34801561068757600080fd5b50601f546102f190600160a81b900460ff1681565b3480156106a857600080fd5b506103416106b7366004611ff9565b610d9d565b3480156106c857600080fd5b506103416106d736600461207f565b610e3c565b3480156106e857600080fd5b506103416106f7366004611f38565b610ea4565b34801561070857600080fd5b50610282610717366004611f38565b610efd565b34801561072857600080fd5b506102826107373660046120b6565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561076e57600080fd5b5061034161077d3660046120e9565b610f3d565b34801561078e57600080fd5b506102f161079d366004611e4c565b610f78565b3480156107ae57600080fd5b506103416107bd366004611f1d565b611064565b3480156107ce57600080fd5b50601d546105b7906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061083d9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108825760405162461bcd60e51b815260040161087990612115565b60405180910390fd5b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000826108ac83610efd565b119392505050565b6000546001600160a01b031633146108de5760405162461bcd60e51b815260040161087990612115565b6021805460ff191692151592909217909155602255565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109a2576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461097d918490611212565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109ad84848461124c565b90505b9392505050565b6004546000906109fb906109d3906001600160a01b0316610b27565b6003546109f5906109ec906001600160a01b0316610b27565b6005549061160f565b9061160f565b905090565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b815260040161087990612115565b601f805460ff60a01b1916600160a01b1790556103e86013556102586014556000601555565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a89573d6000803e3d6000fd5b50565b6000610849826000196107e2565b6000546001600160a01b03163314610ac45760405162461bcd60e51b815260040161087990612115565b610acc611651565b565b6000546001600160a01b03163314610af85760405162461bcd60e51b815260040161087990612115565b6001811015610b0657600080fd5b6103e881600554610b179190612160565b610b219190612177565b60075550565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161087990612115565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610be05760405162461bcd60e51b815260040161087990612115565b6005546006819055600755565b6000546001600160a01b03163314610c175760405162461bcd60e51b815260040161087990612115565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b03163314610ca05760405162461bcd60e51b815260040161087990612115565b600c869055600f859055600d849055600e8390556010829055610cd182610ccb858188818c8c611a38565b90611a38565b6011556012819055610ce4600282612177565b60115410610d345760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e203530250000006044820152606401610879565b505050505050565b60195447906001600160a01b03166108fc6064610d598585612160565b610d639190612177565b6040518115909202916000818181858888f19350505050158015610d8b573d6000803e3d6000fd5b505050565b60006109b033848461124c565b6000546001600160a01b03163314610dc75760405162461bcd60e51b815260040161087990612115565b60005b82811015610e36578160206000868685818110610de957610de9612199565b9050602002016020810190610dfe9190611f1d565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e2f816121af565b9050610dca565b50505050565b6000546001600160a01b03163314610e665760405162461bcd60e51b815260040161087990612115565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610ece5760405162461bcd60e51b815260040161087990612115565b6001811015610edc57600080fd5b6103e881600554610eed9190612160565b610ef79190612177565b60065550565b6000610849610f0a6109b7565b601f54610f3790610f3090600290610f2a906001600160a01b0316610b27565b9061114e565b859061114e565b906111d0565b6000546001600160a01b03163314610f675760405162461bcd60e51b815260040161087990612115565b601391909155601491909155601555565b600081600003610fed576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea91906121c8565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015611040573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b091906121e1565b6000546001600160a01b0316331461108e5760405162461bcd60e51b815260040161087990612115565b6001600160a01b0381166110f35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610879565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008260000361116057506000610849565b600061116c8385612160565b9050826111798583612177565b146109b05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610879565b60006109b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a97565b600081848411156112365760405162461bcd60e51b81526004016108799190611de2565b50600061124384866121fe565b95945050505050565b60235460009060ff161561126c57611265848484611ac5565b90506109b0565b6001600160a01b03841660009081526001602052604090205460ff161580156112ae57506001600160a01b03831660009081526001602052604090205460ff16155b1561136b57601f54600160a01b900460ff166113035760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610879565b601f54600160a81b900460ff161561136b576001600160a01b038316600090815260208052604090205460ff1661136b5760405162461bcd60e51b815260206004820152600c60248201526b139bdd081b185d5b98da195960a21b6044820152606401610879565b6001600160a01b03841660009081526001602052604090205460ff1615801561139d57506001600160a01b0383163014155b80156113b757506003546001600160a01b03848116911614155b80156113d15750601f546001600160a01b03848116911614155b80156113eb5750601a546001600160a01b03848116911614155b801561140557506017546001600160a01b03848116911614155b801561142a57506001600160a01b0383166000908152600b602052604090205460ff16155b156114c057600061143a84610b27565b60075490915061144a8483612211565b11156114be5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610879565b505b6114ca8483611b99565b6114d2611c06565b156114df576114df611651565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611531918490611212565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061157e57506001600160a01b0384166000908152600a602052604090205460ff165b6115925761158d858486611c55565b611594565b825b6001600160a01b0385166000908152600860205260409020549091506115ba9082611a38565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206122c4833981519152906115fc9085815260200190565b60405180910390a3506001949350505050565b60006109b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611212565b6023805460ff19166001179055601b54601c54600091611670916108a0565b61167c57600c5461167f565b60005b905060006116a36002610f37601154610f378660225461114e90919063ffffffff16565b905060006116bc8260225461160f90919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106116f6576116f6612199565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061172757611727612199565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611771908690600090879030904290600401612224565b600060405180830381600087803b15801561178b57600080fd5b505af115801561179f573d6000803e3d6000fd5b5050505060006117b8824761160f90919063ffffffff16565b905060006117d36117ca8860026111d0565b6011549061160f565b905060006117e86002610f378481878d61114e565b9050600061180583610f37600d548761114e90919063ffffffff16565b9050600061182284610f37600f548861114e90919063ffffffff16565b9050600061183f85610f37600e548961114e90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611891576040519150601f19603f3d011682016040523d82523d6000602084013e611896565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146118e6576040519150601f19603f3d011682016040523d82523d6000602084013e6118eb565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461193b576040519150601f19603f3d011682016040523d82523d6000602084013e611940565b606091505b5060009250508b159050611a2057601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156119be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119e39190612295565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611a458385612211565b9050838110156109b05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610879565b60008183611ab85760405162461bcd60e51b81526004016108799190611de2565b5060006112438486612177565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b16918490611212565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b459083611a38565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206122c483398151915290611b879086815260200190565b60405180910390a35060019392505050565b60065481111580611bc257506001600160a01b0382166000908152600b602052604090205460ff165b611c025760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610879565b5050565b601f546000906001600160a01b03163314801590611c27575060235460ff16155b8015611c35575060215460ff165b80156109fb57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611c7b5750601354611c96565b601f546001600160a01b0390811690861603611c9657506014545b6000611cc36012546064611caa9190612160565b610f3784610f2a6011548a61114e90919063ffffffff16565b90506000611ce2601154610f376010548561114e90919063ffffffff16565b90506000611cf0838361160f565b30600090815260086020526040902054909150611d0d9082611a38565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d3b9083611a38565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206122c4833981519152910160405180910390a38115611dcc57600554611d95908361160f565b6005556004546040518381526001600160a01b03918216918a16906000805160206122c48339815191529060200160405180910390a35b611dd6878461160f565b98975050505050505050565b600060208083528351808285015260005b81811015611e0f57858101830151858201604001528201611df3565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e4757600080fd5b919050565b60008060408385031215611e5f57600080fd5b611e6883611e30565b946020939093013593505050565b8015158114610a8957600080fd5b600060208284031215611e9657600080fd5b81356109b081611e76565b60008060408385031215611eb457600080fd5b50508035926020909101359150565b60008060408385031215611ed657600080fd5b8235611e6881611e76565b600080600060608486031215611ef657600080fd5b611eff84611e30565b9250611f0d60208501611e30565b9150604084013590509250925092565b600060208284031215611f2f57600080fd5b6109b082611e30565b600060208284031215611f4a57600080fd5b5035919050565b600080600080600060a08688031215611f6957600080fd5b611f7286611e30565b9450611f8060208701611e30565b9350611f8e60408701611e30565b9250611f9c60608701611e30565b9150611faa60808701611e30565b90509295509295909350565b60008060008060008060c08789031215611fcf57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561200e57600080fd5b833567ffffffffffffffff8082111561202657600080fd5b818601915086601f83011261203a57600080fd5b81358181111561204957600080fd5b8760208260051b850101111561205e57600080fd5b6020928301955093505084013561207481611e76565b809150509250925092565b6000806040838503121561209257600080fd5b61209b83611e30565b915060208301356120ab81611e76565b809150509250929050565b600080604083850312156120c957600080fd5b6120d283611e30565b91506120e060208401611e30565b90509250929050565b6000806000606084860312156120fe57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108495761084961214a565b60008261219457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016121c1576121c161214a565b5060010190565b6000602082840312156121da57600080fd5b5051919050565b6000602082840312156121f357600080fd5b81516109b081611e76565b818103818111156108495761084961214a565b808201808211156108495761084961214a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122745784516001600160a01b03168352938301939183019160010161224f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122aa57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122032ff1d96e58039e808ef95fb914de1be85ee96ba3b449e46a9c833be58416f9064736f6c63430008120033

Deployed Bytecode Sourcemap

8236:13707:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10027:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;10027:55:0;;;;;;;;11532:80;;;;;;;;;;-1:-1:-1;11604:5:0;;;;;;;;;;;;-1:-1:-1;;;11604:5:0;;;;11532:80;;;;;;;:::i;9857:31::-;;;;;;;;;;-1:-1:-1;9857:31:0;;;;-1:-1:-1;;;9857:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;9857:31:0;749:187:1;11954:216:0;;;;;;;;;;-1:-1:-1;11954:216:0;;;;;:::i;:::-;;:::i;17634:92::-;;;;;;;;;;-1:-1:-1;17634:92:0;;;;;:::i;:::-;;:::i;:::-;;21721:150;;;;;;;;;;-1:-1:-1;21721:150:0;;;;;:::i;:::-;;:::i;11262:88::-;;;;;;;;;;-1:-1:-1;11335:12:0;;11262:88;;9214:93;;;;;;;;;;;;;;;;21225:159;;;;;;;;;;-1:-1:-1;21225:159:0;;;;;:::i;:::-;;:::i;12472:370::-;;;;;;;;;;-1:-1:-1;12472:370:0;;;;;:::i;:::-;;:::i;21396:142::-;;;;;;;;;;;;;:::i;17954:188::-;;;;;;;;;;;;;:::i;11356:80::-;;;;;;;;;;-1:-1:-1;11356:80:0;;8578:1;2789:36:1;;2777:2;2762:18;11356:80:0;2647:184:1;16999:124:0;;;;;;;;;;;;;:::i;12178:122::-;;;;;;;;;;-1:-1:-1;12178:122:0;;;;;:::i;:::-;;:::i;16907:83::-;;;;;;;;;;;;;:::i;12854:200::-;;;;;;;;;;-1:-1:-1;12854:200:0;;;;;:::i;:::-;;:::i;9990:30::-;;;;;;;;;;-1:-1:-1;9990:30:0;;;;;;;;9935:43;;;;;;;;;;-1:-1:-1;9935:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11702:105;;;;;;;;;;-1:-1:-1;11702:105:0;;;;;:::i;:::-;;:::i;6293:148::-;;;;;;;;;;;;;:::i;13247:139::-;;;;;;;;;;;;;:::i;8718:61::-;;;;;;;;;;;;;;;;8653:58;;;;;;;;;;;;;;;;20776:441;;;;;;;;;;-1:-1:-1;20776:441:0;;;;;:::i;:::-;;:::i;20204:564::-;;;;;;;;;;-1:-1:-1;20204:564:0;;;;;:::i;:::-;;:::i;16699:199::-;;;;;;;;;;-1:-1:-1;16699:199:0;;;;;:::i;:::-;;:::i;11618:78::-;;;;;;;;;;-1:-1:-1;11670:7:0;6144:6;-1:-1:-1;;;;;6144:6:0;11618:78;;;-1:-1:-1;;;;;4393:32:1;;;4375:51;;4363:2;4348:18;11618:78:0;4229:203:1;6079:79:0;;;;;;;;;;-1:-1:-1;6117:7:0;6144:6;-1:-1:-1;;;;;6144:6:0;6079:79;;11442:84;;;;;;;;;;-1:-1:-1;11516:7:0;;;;;;;;;;;;-1:-1:-1;;;11516:7:0;;;;11442:84;;9825:19;;;;;;;;;;-1:-1:-1;9825:19:0;;;;-1:-1:-1;;;;;9825:19:0;;;12308:156;;;;;;;;;;-1:-1:-1;12308:156:0;;;;;:::i;:::-;;:::i;5699:21::-;;;;;;;;;;-1:-1:-1;5699:21:0;;;;-1:-1:-1;;;;;5699:21:0;;;9898:30;;;;;;;;;;-1:-1:-1;9898:30:0;;;;-1:-1:-1;;;9898:30:0;;;;;;17734:202;;;;;;;;;;-1:-1:-1;17734:202:0;;;;;:::i;:::-;;:::i;20032:160::-;;;;;;;;;;-1:-1:-1;20032:160:0;;;;;:::i;:::-;;:::i;13062:177::-;;;;;;;;;;-1:-1:-1;13062:177:0;;;;;:::i;:::-;;:::i;21546:167::-;;;;;;;;;;-1:-1:-1;21546:167:0;;;;;:::i;:::-;;:::i;11813:133::-;;;;;;;;;;-1:-1:-1;11813:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;11915:19:0;;;11897:7;11915:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11813:133;17423:202;;;;;;;;;;-1:-1:-1;17423:202:0;;;;;:::i;:::-;;:::i;17131:284::-;;;;;;;;;;-1:-1:-1;17131:284:0;;;;;:::i;:::-;;:::i;6449:244::-;;;;;;;;;;-1:-1:-1;6449:244:0;;;;;:::i;:::-;;:::i;9755:24::-;;;;;;;;;;-1:-1:-1;9755:24:0;;;;-1:-1:-1;;;;;9755:24:0;;;11954:216;12058:10;12029:4;12046:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12046:32:0;;;;;;;;;;:41;;;12103:37;12029:4;;12046:32;;12103:37;;;;12081:6;160:25:1;;148:2;133:18;;14:177;12103:37:0;;;;;;;;-1:-1:-1;12158:4:0;11954:216;;;;;:::o;17634:92::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;;;;;;;;;17698:10:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;17698:20:0::1;-1:-1:-1::0;;;;17698:20:0;;::::1;::::0;;;::::1;::::0;;17634:92::o;21721:150::-;21801:4;21857:6;21825:29;21845:8;21825:19;:29::i;:::-;:38;;21721:150;-1:-1:-1;;;21721:150:0:o;21225:159::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;21320:11:::1;:22:::0;;-1:-1:-1;;21320:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;21353:13:::1;:23:::0;21225:159::o;12472:370::-;-1:-1:-1;;;;;12592:19:0;;12572:4;12592:19;;;:11;:19;;;;;;;;12612:10;12592:31;;;;;;;;-1:-1:-1;;12592:52:0;12589:186;;12694:69;;;;;;;;;;;-1:-1:-1;;;12694:69:0;;;;;;;;-1:-1:-1;;;;;12694:19:0;;-1:-1:-1;12694:19:0;;;:11;:19;;;;;12714:10;12694:31;;;;;;;;;;:69;;12730:6;;12694:35;:69::i;:::-;-1:-1:-1;;;;;12660:19:0;;;;;;:11;:19;;;;;;;;12680:10;12660:31;;;;;;;:103;12589:186;12794:40;12808:6;12816:9;12827:6;12794:13;:40::i;:::-;12787:47;;12472:370;;;;;;:::o;21396:142::-;21524:4;;21449:7;;21476:54;;21514:15;;-1:-1:-1;;;;;21524:4:0;21514:9;:15::i;:::-;21503:4;;21476:33;;21493:15;;-1:-1:-1;;;;;21503:4:0;21493:9;:15::i;:::-;21476:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;21469:61;;21396:142;:::o;17954:188::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;18000:11:::1;:18:::0;;-1:-1:-1;;;;18000:18:0::1;-1:-1:-1::0;;;18000:18:0::1;::::0;;18043:4:::1;18029:11;:18:::0;18071:3:::1;18000:11;18058:16:::0;18000:18;18085:15:::1;:19:::0;17954:188::o;16999:124::-;17059:21;;17051:62;;-1:-1:-1;;;;;17059:21:0;;;;17091;17051:62;;;;;17059:21;17051:62;17059:21;17051:62;17091:21;17059;17051:62;;;;;;;;;;;;;;;;;;;;;16999:124::o;12178:122::-;12233:4;12257:35;12265:7;-1:-1:-1;;12257:7:0;:35::i;16907:83::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;16966:10:::1;:8;:10::i;:::-;16907:83::o:0;12854:200::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;12957:1:::1;12939:14;:19;;12931:28;;;::::0;::::1;;13024:4;13005:14;12990:12;;:29;;;;:::i;:::-;12989:39;;;;:::i;:::-;12971:15;:57:::0;-1:-1:-1;12854:200:0:o;11702:105::-;-1:-1:-1;;;;;11786:18:0;11768:7;11786:18;;;:9;:18;;;;;;;11702:105::o;6293:148::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;6400:1:::1;6384:6:::0;;6363:40:::1;::::0;-1:-1:-1;;;;;6384:6:0;;::::1;::::0;6363:40:::1;::::0;6400:1;;6363:40:::1;6431:1;6414:19:::0;;-1:-1:-1;;;;;;6414:19:0::1;::::0;;6293:148::o;13247:139::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;13321:12:::1;::::0;13306::::1;:27:::0;;;13348:15:::1;:30:::0;13247:139::o;20776:441::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;20969:21:::1;:46:::0;;-1:-1:-1;;;;;;20969:46:0;;::::1;-1:-1:-1::0;;;;;20969:46:0;;::::1;;::::0;;;21026:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21081:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21124:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;21175:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;20776:441::o;20204:564::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;20378:12:::1;:28:::0;;;20417:7:::1;:18:::0;;;20446:12:::1;:28:::0;;;20485:6:::1;:16:::0;;;20512:10:::1;:24:::0;;;20558:76:::1;20525:11:::0;20558:59:::1;20494:7:::0;20558:59;20461:13;20558:59;20393:13;20427:8;20558:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:76::-;20547:8;:87:::0;20645:14:::1;:32:::0;;;20707:18:::1;20724:1;20662:15:::0;20707:18:::1;:::i;:::-;20696:8;;:29;20688:71;;;::::0;-1:-1:-1;;;20688:71:0;;7414:2:1;20688:71:0::1;::::0;::::1;7396:21:1::0;7453:2;7433:18;;;7426:30;7492:31;7472:18;;;7465:59;7541:18;;20688:71:0::1;7212:353:1::0;20688:71:0::1;20204:564:::0;;;;;;:::o;16699:199::-;16829:15;;16789:21;;-1:-1:-1;;;;;16829:15:0;16821:69;16886:3;16855:28;16867:16;16789:21;16855:28;:::i;:::-;:34;;;;:::i;:::-;16821:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16758:140;16699:199;:::o;12308:156::-;12388:4;12412:44;12426:10;12438:9;12449:6;12412:13;:44::i;17734:202::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;17831:9:::1;17826:103;17842:20:::0;;::::1;17826:103;;;17911:6;17884:10;:24;17895:9;;17905:1;17895:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17884:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17884:24:0;:33;;-1:-1:-1;;17884:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17864:3:::1;::::0;::::1;:::i;:::-;;;17826:103;;;;17734:202:::0;;;:::o;20032:160::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20113:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;20113:28:0;;::::1;::::0;::::1;::::0;;;20152:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;20032:160::o;13062:177::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;13165:1:::1;13149:12;:17;;13141:26;;;::::0;::::1;;13227:4;13210:12;13195;;:27;;;;:::i;:::-;13194:37;;;;:::i;:::-;13179:12;:52:::0;-1:-1:-1;13062:177:0:o;21546:167::-;21614:7;21641:64;21682:22;:20;:22::i;:::-;21664:4;;21641:36;;21654:22;;21674:1;;21654:15;;-1:-1:-1;;;;;21664:4:0;21654:9;:15::i;:::-;:19;;:22::i;:::-;21641:8;;:12;:36::i;:::-;:40;;:64::i;17423:202::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;17519:11:::1;:19:::0;;;;17549:10:::1;:17:::0;;;;17577:15:::1;:24:::0;17423:202::o;17131:284::-;17212:4;17239:6;17249:1;17239:11;17236:95;;17275:44;;-1:-1:-1;;;17275:44:0;;17313:4;17275:44;;;4375:51:1;-1:-1:-1;;;;;17275:29:0;;;;;4348:18:1;;17275:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17266:53;;17236:95;17377:21;;17348:59;;-1:-1:-1;;;17348:59:0;;-1:-1:-1;;;;;17377:21:0;;;17348:59;;;8205:51:1;8272:18;;;8265:34;;;17348:28:0;;;;;;8178:18:1;;17348:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6449:244::-;6206:6;;-1:-1:-1;;;;;6206:6:0;5516:10;6206:22;6198:67;;;;-1:-1:-1;;;6198:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6538:22:0;::::1;6530:73;;;::::0;-1:-1:-1;;;6530:73:0;;8762:2:1;6530:73:0::1;::::0;::::1;8744:21:1::0;8801:2;8781:18;;;8774:30;8840:34;8820:18;;;8813:62;-1:-1:-1;;;8891:18:1;;;8884:36;8937:19;;6530:73:0::1;8560:402:1::0;6530:73:0::1;6640:6;::::0;;6619:38:::1;::::0;-1:-1:-1;;;;;6619:38:0;;::::1;::::0;6640:6;::::1;::::0;6619:38:::1;::::0;::::1;6668:6;:17:::0;;-1:-1:-1;;;;;;6668:17:0::1;-1:-1:-1::0;;;;;6668:17:0;;;::::1;::::0;;;::::1;::::0;;6449:244::o;3878:250::-;3936:7;3960:1;3965;3960:6;3956:47;;-1:-1:-1;3990:1:0;3983:8;;3956:47;4015:9;4027:5;4031:1;4027;:5;:::i;:::-;4015:17;-1:-1:-1;4060:1:0;4051:5;4055:1;4015:17;4051:5;:::i;:::-;:10;4043:56;;;;-1:-1:-1;;;4043:56:0;;9169:2:1;4043:56:0;;;9151:21:1;9208:2;9188:18;;;9181:30;9247:34;9227:18;;;9220:62;-1:-1:-1;;;9298:18:1;;;9291:31;9339:19;;4043:56:0;8967:397:1;4134:132:0;4192:7;4219:39;4223:1;4226;4219:39;;;;;;;;;;;;;;;;;:3;:39::i;3680:192::-;3766:7;3802:12;3794:6;;;;3786:29;;;;-1:-1:-1;;;3786:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3826:9:0;3838:5;3842:1;3838;:5;:::i;:::-;3826:17;3680:192;-1:-1:-1;;;;;3680:192:0:o;13400:1427::-;13512:6;;13492:4;;13512:6;;13509:63;;;13528:41;13543:6;13551:9;13562:6;13528:14;:41::i;:::-;13521:48;;;;13509:63;-1:-1:-1;;;;;13588:22:0;;;;;;:14;:22;;;;;;;;13587:23;:53;;;;-1:-1:-1;;;;;;13615:25:0;;;;;;:14;:25;;;;;;;;13614:26;13587:53;13584:245;;;13664:11;;-1:-1:-1;;;13664:11:0;;;;13656:43;;;;-1:-1:-1;;;13656:43:0;;9704:2:1;13656:43:0;;;9686:21:1;9743:2;9723:18;;;9716:30;-1:-1:-1;;;9762:18:1;;;9755:50;9822:18;;13656:43:0;9502:344:1;13656:43:0;13728:10;;-1:-1:-1;;;13728:10:0;;;;13725:93;;;-1:-1:-1;;;;;13766:21:0;;;;;;:10;:21;;;;;;;;13758:45;;;;-1:-1:-1;;;13758:45:0;;10053:2:1;13758:45:0;;;10035:21:1;10092:2;10072:18;;;10065:30;-1:-1:-1;;;10111:18:1;;;10104:42;10163:18;;13758:45:0;9851:336:1;13758:45:0;-1:-1:-1;;;;;13861:22:0;;;;;;:14;:22;;;;;;;;13860:23;:53;;;;-1:-1:-1;;;;;;13887:26:0;;13908:4;13887:26;;13860:53;:84;;;;-1:-1:-1;13939:4:0;;-1:-1:-1;;;;;13918:26:0;;;13939:4;;13918:26;;13860:84;:105;;;;-1:-1:-1;13961:4:0;;-1:-1:-1;;;;;13948:17:0;;;13961:4;;13948:17;;13860:105;:140;;;;-1:-1:-1;13982:18:0;;-1:-1:-1;;;;;13969:31:0;;;13982:18;;13969:31;;13860:140;:177;;;;-1:-1:-1;14017:20:0;;-1:-1:-1;;;;;14004:33:0;;;14017:20;;14004:33;;13860:177;:208;;;;-1:-1:-1;;;;;;14042:26:0;;;;;;:15;:26;;;;;;;;14041:27;13860:208;13856:400;;;14084:18;14105:20;14115:9;14105;:20::i;:::-;14173:15;;14084:41;;-1:-1:-1;14149:19:0;14162:6;14084:41;14149:19;:::i;:::-;14148:40;;14140:114;;;;-1:-1:-1;;;14140:114:0;;10524:2:1;14140:114:0;;;10506:21:1;10563:2;10543:18;;;10536:30;10602:34;10582:18;;;10575:62;10673:32;10653:18;;;10646:60;10723:19;;14140:114:0;10322:426:1;14140:114:0;14069:187;13856:400;14321:28;14334:6;14342;14321:12;:28::i;:::-;14366:16;:14;:16::i;:::-;14363:35;;;14385:10;:8;:10::i;:::-;14478:53;;;;;;;;;;;-1:-1:-1;;;14478:53:0;;;;;;;;-1:-1:-1;;;;;14478:17:0;;-1:-1:-1;14478:17:0;;;:9;:17;;;;;;;;:53;;14500:6;;14478:21;:53::i;:::-;-1:-1:-1;;;;;14458:17:0;;;;;;:9;:17;;;;;;;;:73;;;;14570:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;14593:22:0;;;;;;:11;:22;;;;;;;;14570:45;14569:93;;14628:34;14636:6;14644;14652:9;14628:7;:34::i;:::-;14569:93;;;14619:6;14569:93;-1:-1:-1;;;;;14696:20:0;;;;;;:9;:20;;;;;;14544:118;;-1:-1:-1;14696:40:0;;14544:118;14696:24;:40::i;:::-;-1:-1:-1;;;;;14673:20:0;;;;;;;:9;:20;;;;;;;:63;;;;14754:43;;;;;;-1:-1:-1;;;;;;;;;;;14754:43:0;;;14782:14;160:25:1;;148:2;133:18;;14:177;14754:43:0;;;;;;;;-1:-1:-1;14815:4:0;;13400:1427;-1:-1:-1;;;;13400:1427:0:o;3538:136::-;3596:7;3623:43;3627:1;3630;3623:43;;;;;;;;;;;;;;;;;:3;:43::i;18163:1861::-;10130:6;:13;;-1:-1:-1;;10130:13:0;10139:4;10130:13;;;18258:15:::1;::::0;18275:26:::1;::::0;10130:6;;18242:60:::1;::::0;:15:::1;:60::i;:::-;:79;;18309:12;;18242:79;;;18305:1;18242:79;18212:109;;18332:23;18358:59;18415:1;18358:52;18401:8;;18358:38;18376:19;18358:13;;:17;;:38;;;;:::i;:59::-;18332:85;;18428:20;18451:34;18469:15;18451:13;;:17;;:34;;;;:::i;:::-;18522:16;::::0;;18536:1:::1;18522:16:::0;;;;;::::1;::::0;;18428:57;;-1:-1:-1;18498:21:0::1;::::0;18522:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18522:16:0::1;18498:40;;18567:4;18549;18554:1;18549:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18549:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;18593:4:::1;::::0;18583:7;;18593:4;::::1;::::0;18583;;18593;;18583:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;18583:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;18668:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;18668:188:0;;18634:21:::1;::::0;18668:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;18740:12;;18610:21:::1;::::0;18783:4;;18810::::1;::::0;18830:15:::1;::::0;18668:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18869:17;18889:40;18915:13;18889:21;:25;;:40;;;;:::i;:::-;18869:60:::0;-1:-1:-1;18942:19:0::1;18964:40;18977:26;:19:::0;19001:1:::1;18977:23;:26::i;:::-;18964:8;::::0;;:12:::1;:40::i;:::-;18942:62:::0;-1:-1:-1;19025:26:0::1;19054:58;19110:1;19054:51;18942:62:::0;19054:51;:9;19068:19;19054:13:::1;:34::i;:58::-;19025:87;;19123:26;19152:44;19184:11;19152:27;19166:12;;19152:9;:13;;:27;;;;:::i;:44::-;19123:73;;19207:21;19231:39;19258:11;19231:22;19245:7;;19231:9;:13;;:22;;;;:::i;:39::-;19207:63;;19281:20;19304:38;19330:11;19304:21;19318:6;;19304:9;:13;;:21;;;;:::i;:38::-;19384:20;::::0;19376:65:::1;::::0;19281:61;;-1:-1:-1;19356:15:0::1;::::0;-1:-1:-1;;;;;19384:20:0;;::::1;::::0;19418:18;;19356:15;19376:65;19356:15;19376:65;19418:18;19384:20;19376:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;19476:14:0::1;::::0;19468:53:::1;::::0;19355:86;;-1:-1:-1;;;;;;19476:14:0::1;::::0;19504:12;;19468:53:::1;::::0;;;19504:12;19476:14;19468:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;19556:15:0::1;::::0;19548:55:::1;::::0;19452:69;;-1:-1:-1;;;;;;19556:15:0::1;::::0;19585:13;;19548:55:::1;::::0;;;19585:13;19556:15;19548:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;19637:5:0::1;::::0;-1:-1:-1;;19658:19:0;;;-1:-1:-1;19655:362:0::1;;19693:6;::::0;19867:21:::1;::::0;19693:244:::1;::::0;-1:-1:-1;;;19693:244:0;;19769:4:::1;19693:244;::::0;::::1;12421:34:1::0;12471:18;;;12464:34;;;19693:6:0::1;12514:18:1::0;;;12507:34;;;12557:18;;;12550:34;-1:-1:-1;;;;;19867:21:0;;::::1;12600:19:1::0;;;12593:44;19907:15:0::1;12653:19:1::0;;;12646:35;19693:6:0;::::1;::::0;:22:::1;::::0;19723:18;;12355:19:1;;19693:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19957:48:0::1;::::0;;13177:25:1;;;13233:2;13218:18;;13211:34;;;19957:48:0::1;::::0;-1:-1:-1;13150:18:1;19957:48:0::1;;;;;;;19655:362;-1:-1:-1::0;;10148:6:0;:14;;-1:-1:-1;;10148:14:0;;;-1:-1:-1;;;;;;;;;;18163:1861:0:o;3351:181::-;3409:7;;3441:5;3445:1;3441;:5;:::i;:::-;3429:17;;3470:1;3465;:6;;3457:46;;;;-1:-1:-1;;;3457:46:0;;13458:2:1;3457:46:0;;;13440:21:1;13497:2;13477:18;;;13470:30;13536:29;13516:18;;;13509:57;13583:18;;3457:46:0;13256:351:1;4272:189:0;4358:7;4393:12;4386:5;4378:28;;;;-1:-1:-1;;;4378:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4417:9:0;4429:5;4433:1;4429;:5;:::i;14839:330::-;14969:53;;;;;;;;;;;-1:-1:-1;;;14969:53:0;;;;;;;;-1:-1:-1;;;;;14969:17:0;;14932:4;14969:17;;;:9;:17;;;;;;;:53;;14991:6;;14969:21;:53::i;:::-;-1:-1:-1;;;;;14949:17:0;;;;;;;:9;:17;;;;;;:73;;;;15056:20;;;;;;;:32;;15081:6;15056:24;:32::i;:::-;-1:-1:-1;;;;;15033:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15104:35;;;;;;-1:-1:-1;;;;;;;;;;;15104:35:0;;;15132:6;160:25:1;;148:2;133:18;;14:177;15104:35:0;;;;;;;;-1:-1:-1;15157:4:0;14839:330;;;;;:::o;15177:166::-;15274:12;;15264:6;:22;;:49;;;-1:-1:-1;;;;;;15290:23:0;;;;;;:15;:23;;;;;;;;15264:49;15256:79;;;;-1:-1:-1;;;15256:79:0;;13814:2:1;15256:79:0;;;13796:21:1;13853:2;13833:18;;;13826:30;-1:-1:-1;;;13872:18:1;;;13865:47;13929:18;;15256:79:0;13612:341:1;15256:79:0;15177:166;;:::o;16494:197::-;16581:4;;16543;;-1:-1:-1;;;;;16581:4:0;16567:10;:18;;;;:38;;-1:-1:-1;16599:6:0;;;;16598:7;16567:38;:62;;;;-1:-1:-1;16618:11:0;;;;16567:62;:116;;;;-1:-1:-1;;16670:13:0;;16660:4;16642:24;;;;:9;:24;;;;;;:41;;;16494:197::o;15473:1013::-;15607:15;;15651:4;;15559:7;;15607:15;-1:-1:-1;;;;;15651:4:0;;;15638:17;;;;15635:142;;-1:-1:-1;15682:11:0;;15635:142;;;15724:4;;-1:-1:-1;;;;;15724:4:0;;;15714:14;;;;15711:66;;-1:-1:-1;15755:10:0;;15711:66;15789:17;15809:59;15847:14;;15864:3;15847:20;;;;:::i;:::-;15809:33;15834:7;15809:20;15820:8;;15809:6;:10;;:20;;;;:::i;:59::-;15789:79;;15879:21;15903:39;15933:8;;15903:25;15917:10;;15903:9;:13;;:25;;;;:::i;:39::-;15879:63;-1:-1:-1;15953:22:0;15978:28;:9;15879:63;15978:13;:28::i;:::-;16064:4;16046:24;;;;:9;:24;;;;;;15953:53;;-1:-1:-1;16046:44:0;;15953:53;16046:28;:44::i;:::-;16037:4;16019:24;;;;:9;:24;;;;;;:71;;;;16143:18;;-1:-1:-1;;;;;16143:18:0;16133:29;;;;:48;;16167:13;16133:33;:48::i;:::-;16111:18;;-1:-1:-1;;;;;16111:18:0;;;16101:29;;;;:9;:29;;;;;;;;;:80;;;;16197:47;160:25:1;;;16222:4:0;;16197:47;;;;-1:-1:-1;;;;;;;;;;;16197:47:0;133:18:1;16197:47:0;;;;;;;16278:17;;16275:163;;16326:12;;:31;;16343:13;16326:16;:31::i;:::-;16311:12;:46;16394:4;;16377:37;;160:25:1;;;-1:-1:-1;;;;;16394:4:0;;;;16377:37;;;-1:-1:-1;;;;;;;;;;;16377:37:0;148:2:1;133:18;16377:37:0;;;;;;;16275:163;16457:21;:6;16468:9;16457:10;:21::i;:::-;16450:28;15473:1013;-1:-1:-1;;;;;;;;15473:1013:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:118::-;1464:5;1457:13;1450:21;1443:5;1440:32;1430:60;;1486:1;1483;1476:12;1501:241;1557:6;1610:2;1598:9;1589:7;1585:23;1581:32;1578:52;;;1626:1;1623;1616:12;1578:52;1665:9;1652:23;1684:28;1706:5;1684:28;:::i;1747:248::-;1815:6;1823;1876:2;1864:9;1855:7;1851:23;1847:32;1844:52;;;1892:1;1889;1882:12;1844:52;-1:-1:-1;;1915:23:1;;;1985:2;1970:18;;;1957:32;;-1:-1:-1;1747:248:1:o;2000:309::-;2065:6;2073;2126:2;2114:9;2105:7;2101:23;2097:32;2094:52;;;2142:1;2139;2132:12;2094:52;2181:9;2168:23;2200:28;2222:5;2200:28;:::i;2314:328::-;2391:6;2399;2407;2460:2;2448:9;2439:7;2435:23;2431:32;2428:52;;;2476:1;2473;2466:12;2428:52;2499:29;2518:9;2499:29;:::i;:::-;2489:39;;2547:38;2581:2;2570:9;2566:18;2547:38;:::i;:::-;2537:48;;2632:2;2621:9;2617:18;2604:32;2594:42;;2314:328;;;;;:::o;2836:186::-;2895:6;2948:2;2936:9;2927:7;2923:23;2919:32;2916:52;;;2964:1;2961;2954:12;2916:52;2987:29;3006:9;2987:29;:::i;3027:180::-;3086:6;3139:2;3127:9;3118:7;3114:23;3110:32;3107:52;;;3155:1;3152;3145:12;3107:52;-1:-1:-1;3178:23:1;;3027:180;-1:-1:-1;3027:180:1:o;3212:484::-;3307:6;3315;3323;3331;3339;3392:3;3380:9;3371:7;3367:23;3363:33;3360:53;;;3409:1;3406;3399:12;3360:53;3432:29;3451:9;3432:29;:::i;:::-;3422:39;;3480:38;3514:2;3503:9;3499:18;3480:38;:::i;:::-;3470:48;;3537:38;3571:2;3560:9;3556:18;3537:38;:::i;:::-;3527:48;;3594:38;3628:2;3617:9;3613:18;3594:38;:::i;:::-;3584:48;;3651:39;3685:3;3674:9;3670:19;3651:39;:::i;:::-;3641:49;;3212:484;;;;;;;;:::o;3701:523::-;3805:6;3813;3821;3829;3837;3845;3898:3;3886:9;3877:7;3873:23;3869:33;3866:53;;;3915:1;3912;3905:12;3866:53;-1:-1:-1;;3938:23:1;;;4008:2;3993:18;;3980:32;;-1:-1:-1;4059:2:1;4044:18;;4031:32;;4110:2;4095:18;;4082:32;;-1:-1:-1;4161:3:1;4146:19;;4133:33;;-1:-1:-1;4213:3:1;4198:19;4185:33;;-1:-1:-1;3701:523:1;-1:-1:-1;3701:523:1:o;4437:750::-;4529:6;4537;4545;4598:2;4586:9;4577:7;4573:23;4569:32;4566:52;;;4614:1;4611;4604:12;4566:52;4654:9;4641:23;4683:18;4724:2;4716:6;4713:14;4710:34;;;4740:1;4737;4730:12;4710:34;4778:6;4767:9;4763:22;4753:32;;4823:7;4816:4;4812:2;4808:13;4804:27;4794:55;;4845:1;4842;4835:12;4794:55;4885:2;4872:16;4911:2;4903:6;4900:14;4897:34;;;4927:1;4924;4917:12;4897:34;4982:7;4975:4;4965:6;4962:1;4958:14;4954:2;4950:23;4946:34;4943:47;4940:67;;;5003:1;5000;4993:12;4940:67;5034:4;5026:13;;;;-1:-1:-1;5058:6:1;-1:-1:-1;;5099:20:1;;5086:34;5129:28;5086:34;5129:28;:::i;:::-;5176:5;5166:15;;;4437:750;;;;;:::o;5192:315::-;5257:6;5265;5318:2;5306:9;5297:7;5293:23;5289:32;5286:52;;;5334:1;5331;5324:12;5286:52;5357:29;5376:9;5357:29;:::i;:::-;5347:39;;5436:2;5425:9;5421:18;5408:32;5449:28;5471:5;5449:28;:::i;:::-;5496:5;5486:15;;;5192:315;;;;;:::o;5512:260::-;5580:6;5588;5641:2;5629:9;5620:7;5616:23;5612:32;5609:52;;;5657:1;5654;5647:12;5609:52;5680:29;5699:9;5680:29;:::i;:::-;5670:39;;5728:38;5762:2;5751:9;5747:18;5728:38;:::i;:::-;5718:48;;5512:260;;;;;:::o;5777:316::-;5854:6;5862;5870;5923:2;5911:9;5902:7;5898:23;5894:32;5891:52;;;5939:1;5936;5929:12;5891:52;-1:-1:-1;;5962:23:1;;;6032:2;6017:18;;6004:32;;-1:-1:-1;6083:2:1;6068:18;;;6055:32;;5777:316;-1:-1:-1;5777:316:1:o;6324:356::-;6526:2;6508:21;;;6545:18;;;6538:30;6604:34;6599:2;6584:18;;6577:62;6671:2;6656:18;;6324:356::o;6685:127::-;6746:10;6741:3;6737:20;6734:1;6727:31;6777:4;6774:1;6767:15;6801:4;6798:1;6791:15;6817:168;6890:9;;;6921;;6938:15;;;6932:22;;6918:37;6908:71;;6959:18;;:::i;6990:217::-;7030:1;7056;7046:132;;7100:10;7095:3;7091:20;7088:1;7081:31;7135:4;7132:1;7125:15;7163:4;7160:1;7153:15;7046:132;-1:-1:-1;7192:9:1;;6990:217::o;7570:127::-;7631:10;7626:3;7622:20;7619:1;7612:31;7662:4;7659:1;7652:15;7686:4;7683:1;7676:15;7702:135;7741:3;7762:17;;;7759:43;;7782:18;;:::i;:::-;-1:-1:-1;7829:1:1;7818:13;;7702:135::o;7842:184::-;7912:6;7965:2;7953:9;7944:7;7940:23;7936:32;7933:52;;;7981:1;7978;7971:12;7933:52;-1:-1:-1;8004:16:1;;7842:184;-1:-1:-1;7842:184:1:o;8310:245::-;8377:6;8430:2;8418:9;8409:7;8405:23;8401:32;8398:52;;;8446:1;8443;8436:12;8398:52;8478:9;8472:16;8497:28;8519:5;8497:28;:::i;9369:128::-;9436:9;;;9457:11;;;9454:37;;;9471:18;;:::i;10192:125::-;10257:9;;;10278:10;;;10275:36;;;10291:18;;:::i;10885:980::-;11147:4;11195:3;11184:9;11180:19;11226:6;11215:9;11208:25;11252:2;11290:6;11285:2;11274:9;11270:18;11263:34;11333:3;11328:2;11317:9;11313:18;11306:31;11357:6;11392;11386:13;11423:6;11415;11408:22;11461:3;11450:9;11446:19;11439:26;;11500:2;11492:6;11488:15;11474:29;;11521:1;11531:195;11545:6;11542:1;11539:13;11531:195;;;11610:13;;-1:-1:-1;;;;;11606:39:1;11594:52;;11701:15;;;;11666:12;;;;11642:1;11560:9;11531:195;;;-1:-1:-1;;;;;;;11782:32:1;;;;11777:2;11762:18;;11755:60;-1:-1:-1;;;11846:3:1;11831:19;11824:35;11743:3;10885:980;-1:-1:-1;;;10885:980:1:o;12692:306::-;12780:6;12788;12796;12849:2;12837:9;12828:7;12824:23;12820:32;12817:52;;;12865:1;12862;12855:12;12817:52;12894:9;12888:16;12878:26;;12944:2;12933:9;12929:18;12923:25;12913:35;;12988:2;12977:9;12973:18;12967:25;12957:35;;12692:306;;;;;:::o

Swarm Source

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