ETH Price: $2,603.29 (-0.29%)

Token

KongZilla (KZILLA)
 

Overview

Max Total Supply

500,000,000,000 KZILLA

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.69748181 KZILLA

Value
$0.00
0xDc2A050B9Aba3ed858748946A66eA0cD1137ad8B
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:
KongZilla

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-12
*/

/* 

https://t.me/KongZilla_ETH  ******* https://twitter.com/KongZilla_ETH  ******  https://kongzilla-eth.com/ ******

*/


// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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

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



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 KongZilla is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "KongZilla";
    string constant _symbol = "KZILLA";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 500000000000 * 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 kongZillaDevelopmentFee  = 3;
    uint256 private teamFee                  = 0;
    uint256 private fundFee                  = 1; 
    uint256 private stakingFee               = 0;
    uint256 public totalFee                  = fundFee + kongZillaDevelopmentFee + liquidityFee + teamFee + stakingFee;
    uint256 private feeDenominator           = 100;

    uint256 sellmultiplier = 900;
    uint256 buymultiplier = 600;
    uint256 transfertax = 800; 

    address private autoLiquidityReceiver;
    address private kongZillaDevelopmentFeeReceiver;
    address private teamFeeReceiver;
    address private fundFeeReceiver;
    address private stakingFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

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


    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 50 / 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[teamFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[teamFeeReceiver] = true;
        isTxLimitexempt[kongZillaDevelopmentFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        kongZillaDevelopmentFeeReceiver = 0xA1fBD65D2B449F059E5315dB045A630d0A7bA667;
        teamFeeReceiver = msg.sender;
        fundFeeReceiver = 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 editAllLimitsDisabled() 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 (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != stakingFeeReceiver && recipient != kongZillaDevelopmentFeeReceiver && !isTxLimitexempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
      
        _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 = transfertax;

        if(recipient == pair) {
            percent = sellmultiplier;
        } else if(sender == pair) {
            percent = buymultiplier;
        }

        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 manualSend() external { 
    payable(autoLiquidityReceiver).transfer(address(this).balance);
        
    }
  
    function removeForeignERC20(address tokenAddress, uint256 tokens) public returns (bool) {
               if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function editAllocation(uint256 _isbuy, uint256 _issell, uint256 _wallet) external onlyOwner {
        buymultiplier = _isbuy;
        sellmultiplier = _issell;
        transfertax = _wallet;    
          
    }

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

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

    function openTrading() public onlyOwner {
        TradingOpen = true;     
        
    }

     function editBacking(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    
               
    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 amountETHkongZillaDevelopment = amountETH.mul(kongZillaDevelopmentFee).div(totalETHFee);
        uint256 amountETHfund = amountETH.mul(fundFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(teamFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(kongZillaDevelopmentFeeReceiver).call{value: amountETHkongZillaDevelopment}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(fundFeeReceiver).call{value: amountETHfund}("");
        
        tmpSuccess = false;

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

    
    function editOverallFee(uint256 _liquidityFee, uint256 _fundFee, uint256 _kongZillaDevelopmentFee, uint256 _teamFee, uint256 _stakingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        fundFee = _fundFee;
        kongZillaDevelopmentFee = _kongZillaDevelopmentFee;
        teamFee = _teamFee;
        stakingFee = _stakingFee;
        totalFee = _liquidityFee.add(_fundFee).add(_kongZillaDevelopmentFee).add(_teamFee).add(_stakingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function editReceivers(address _autoLiquidityReceiver, address _kongZillaDevelopmentFeeReceiver, address _teamFeeReceiver, address _stakingFeeReceiver, address _fundFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        kongZillaDevelopmentFeeReceiver = _kongZillaDevelopmentFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
        stakingFeeReceiver = _stakingFeeReceiver;
        fundFeeReceiver = _fundFeeReceiver;
    }

    function setNumTokensToSwapAt(uint256 _amount) external onlyOwner {
        swapThreshold = _amount;
    }

     function disableContractSells(bool _enabled) external onlyOwner {
        swapEnabled = _enabled;
        
    }
       
    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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"disableContractSells","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"editAllLimitsDisabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_isbuy","type":"uint256"},{"internalType":"uint256","name":"_issell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"editAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"editBacking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"editMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"editMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_fundFee","type":"uint256"},{"internalType":"uint256","name":"_kongZillaDevelopmentFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"editOverallFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_kongZillaDevelopmentFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_stakingFeeReceiver","type":"address"},{"internalType":"address","name":"_fundFeeReceiver","type":"address"}],"name":"editReceivers","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":[{"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":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeForeignERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"_amount","type":"uint256"}],"name":"setNumTokensToSwapAt","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"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006bd565b620000439064746a528800620006ce565b600581905562000064906064906200005d9060016200048d565b9062000524565b6006556005546200007f906064906200005d9060016200048d565b6007556001600c556003600d556000600e556001600f556000601055601054600e54600c54600d54600f54620000b69190620006e8565b620000c29190620006e8565b620000ce9190620006e8565b620000da9190620006e8565b60115560646012819055610384601355610258601455610320601555601e601b55601c55601f805461ffff60a01b1916600160a81b1790556005546103e89062000126906032620006ce565b620001329190620006fe565b6020553480156200014257600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000202573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000228919062000721565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad919062000721565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000325919062000721565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673a1fbd65d2b449f059e5315db045a630d0a7ba6671790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200079c565b600082600003620004a1575060006200051e565b6000620004af8385620006ce565b905082620004be8583620006fe565b146200051b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200051b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056e60201b60201c565b60008183620005925760405162461bcd60e51b81526004016200051291906200074c565b506000620005a18486620006fe565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000601578160001904821115620005e557620005e5620005aa565b80851615620005f357918102915b93841c9390800290620005c5565b509250929050565b6000826200061a575060016200051e565b8162000629575060006200051e565b81600181146200064257600281146200064d576200066d565b60019150506200051e565b60ff841115620006615762000661620005aa565b50506001821b6200051e565b5060208310610133831016604e8410600b841016171562000692575081810a6200051e565b6200069e8383620005c0565b8060001904821115620006b557620006b5620005aa565b029392505050565b60006200051b60ff84168362000609565b80820281158282048414176200051e576200051e620005aa565b808201808211156200051e576200051e620005aa565b6000826200071c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200073457600080fd5b81516001600160a01b03811681146200051b57600080fd5b600060208083528351808285015260005b818110156200077b578581018301518582016040015282016200075d565b506000604082860101526040601f19601f8301168501019250505092915050565b611f8880620007ac6000396000f3fe6080604052600436106102295760003560e01c8063893d20e811610123578063b11f0f03116100ab578063dd62ed3e1161006f578063dd62ed3e14610674578063ed85192c146106ba578063f2fde38b146106cf578063f4293890146106ef578063f887ea401461070457600080fd5b8063b11f0f03146105df578063b2bdfa7b146105ff578063c9567bf91461061f578063d51ed1c814610634578063d61d4e831461065457600080fd5b806395d89b41116100f257806395d89b4114610530578063a8aa1b311461055f578063a9059cbb1461057f578063aa0c68081461059f578063afcd17a6146105bf57600080fd5b8063893d20e8146104a05780638afe5fcb146104d25780638da5cb5b146104f257806390a053351461051057600080fd5b80632b112e49116101b15780636ddd1713116101755780636ddd17131461040857806370a0823114610429578063715018a61461045f57806378109e54146104745780637d1db4a51461048a57600080fd5b80632b112e4914610377578063313ce5671461038c57806340b0ba06146103a857806342b2a4ef146103c8578063571ac8b0146103e857600080fd5b8063095ea7b3116101f8578063095ea7b3146102ec5780631161ae391461030c57806318160ddd1461032c5780631df4ccfc1461034157806323b872dd1461035757600080fd5b80630445b66714610235578063051274a51461025e57806306fdde031461028057806308fd3d05146102bb57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60205481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b5061027e610279366004611b45565b610724565b005b34801561028c57600080fd5b506040805180820190915260098152684b6f6e675a696c6c6160b81b60208201525b6040516102559190611b5e565b3480156102c757600080fd5b50601f546102dc90600160a01b900460ff1681565b6040519015158152602001610255565b3480156102f857600080fd5b506102dc610307366004611bc8565b610786565b34801561031857600080fd5b506102dc610327366004611bf2565b6107f3565b34801561033857600080fd5b5060055461024b565b34801561034d57600080fd5b5061024b60115481565b34801561036357600080fd5b506102dc610372366004611c14565b610807565b34801561038357600080fd5b5061024b6108c9565b34801561039857600080fd5b5060405160098152602001610255565b3480156103b457600080fd5b5061027e6103c3366004611b45565b61091b565b3480156103d457600080fd5b5061027e6103e3366004611b45565b61094a565b3480156103f457600080fd5b506102dc610403366004611c50565b6109a3565b34801561041457600080fd5b50601f546102dc90600160a81b900460ff1681565b34801561043557600080fd5b5061024b610444366004611c50565b6001600160a01b031660009081526008602052604090205490565b34801561046b57600080fd5b5061027e6109b1565b34801561048057600080fd5b5061024b60075481565b34801561049657600080fd5b5061024b60065481565b3480156104ac57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610255565b3480156104de57600080fd5b506102dc6104ed366004611bc8565b610a25565b3480156104fe57600080fd5b506000546001600160a01b03166104ba565b34801561051c57600080fd5b5061027e61052b366004611c6b565b610b11565b34801561053c57600080fd5b506040805180820190915260068152654b5a494c4c4160d01b60208201526102ae565b34801561056b57600080fd5b50601f546104ba906001600160a01b031681565b34801561058b57600080fd5b506102dc61059a366004611bc8565b610b9a565b3480156105ab57600080fd5b5061027e6105ba366004611cde565b610ba7565b3480156105cb57600080fd5b5061027e6105da366004611bf2565b610bef565b3480156105eb57600080fd5b5061027e6105fa366004611cfb565b610c24565b34801561060b57600080fd5b506000546104ba906001600160a01b031681565b34801561062b57600080fd5b5061027e610cea565b34801561064057600080fd5b5061024b61064f366004611b45565b610d29565b34801561066057600080fd5b5061027e61066f366004611d3e565b610d70565b34801561068057600080fd5b5061024b61068f366004611d6a565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106c657600080fd5b5061027e610da8565b3480156106db57600080fd5b5061027e6106ea366004611c50565b610ddf565b3480156106fb57600080fd5b5061027e610ec9565b34801561071057600080fd5b50601d546104ba906001600160a01b031681565b6000546001600160a01b031633146107575760405162461bcd60e51b815260040161074e90611d9d565b60405180910390fd5b600181101561076557600080fd5b6103e8816005546107769190611de8565b6107809190611dff565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107e19086815260200190565b60405180910390a35060015b92915050565b6000826107ff83610d29565b119392505050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108b4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461088f918490610f05565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108bf848484610f3f565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610916906003546001600160a01b031660009081526008602052604090205461091090600554906112a5565b906112a5565b905090565b6000546001600160a01b031633146109455760405162461bcd60e51b815260040161074e90611d9d565b602055565b6000546001600160a01b031633146109745760405162461bcd60e51b815260040161074e90611d9d565b600181101561098257600080fd5b6103e8816005546109939190611de8565b61099d9190611dff565b60065550565b60006107ed82600019610786565b6000546001600160a01b031633146109db5760405162461bcd60e51b815260040161074e90611d9d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610a9a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a979190611e21565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610aed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c29190611e3a565b6000546001600160a01b03163314610b3b5760405162461bcd60e51b815260040161074e90611d9d565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b60006108c2338484610f3f565b6000546001600160a01b03163314610bd15760405162461bcd60e51b815260040161074e90611d9d565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610c195760405162461bcd60e51b815260040161074e90611d9d565b601b91909155601c55565b6000546001600160a01b03163314610c4e5760405162461bcd60e51b815260040161074e90611d9d565b600c869055600f859055600d849055600e8390556010829055610c7f82610c79858188818c8c6112e7565b906112e7565b6011556012819055610c92600582611dff565b60115410610ce25760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161074e565b505050505050565b6000546001600160a01b03163314610d145760405162461bcd60e51b815260040161074e90611d9d565b601f805460ff60a01b1916600160a01b179055565b60006107ed610d366108c9565b601f546001600160a01b0316600090815260086020526040902054610d6a90610d63906002905b90611346565b8590611346565b906113c8565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b815260040161074e90611d9d565b601492909255601355601555565b6000546001600160a01b03163314610dd25760405162461bcd60e51b815260040161074e90611d9d565b6005546006819055600755565b6000546001600160a01b03163314610e095760405162461bcd60e51b815260040161074e90611d9d565b6001600160a01b038116610e6e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610f02573d6000803e3d6000fd5b50565b60008184841115610f295760405162461bcd60e51b815260040161074e9190611b5e565b506000610f368486611e57565b95945050505050565b60215460009060ff1615610f5f57610f5884848461140a565b90506108c2565b6001600160a01b03841660009081526001602052604090205460ff16158015610fa157506001600160a01b03831660009081526001602052604090205460ff16155b15610ff657601f54600160a01b900460ff16610ff65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161074e565b6001600160a01b03841660009081526001602052604090205460ff1615801561102857506001600160a01b0383163014155b801561104257506003546001600160a01b03848116911614155b801561105c5750601f546001600160a01b03848116911614155b80156110765750601a546001600160a01b03848116911614155b801561109057506017546001600160a01b03848116911614155b80156110b557506001600160a01b0383166000908152600b602052604090205460ff16155b15611156576001600160a01b0383166000908152600860205260409020546007546110e08483611e6a565b11156111545760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161074e565b505b61116084836114de565b61116861154b565b15611175576111756115a3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546111c7918490610f05565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061121457506001600160a01b0384166000908152600a602052604090205460ff165b6112285761122385848661198a565b61122a565b825b6001600160a01b03851660009081526008602052604090205490915061125090826112e7565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020611f33833981519152906112929085815260200190565b60405180910390a3506001949350505050565b60006108c283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f05565b6000806112f48385611e6a565b9050838110156108c25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074e565b600082600003611358575060006107ed565b60006113648385611de8565b9050826113718583611dff565b146108c25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074e565b60006108c283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b17565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461145b918490610f05565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461148a90836112e7565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020611f33833981519152906114cc9086815260200190565b60405180910390a35060019392505050565b6006548111158061150757506001600160a01b0382166000908152600b602052604090205460ff165b6115475760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161074e565b5050565b601f546000906001600160a01b0316331480159061156c575060215460ff16155b80156115815750601f54600160a81b900460ff165b8015610916575050602080543060009081526008909252604090912054101590565b6021805460ff19166001179055601b54601c546000916115c2916107f3565b6115ce57600c546115d1565b60005b905060006115f56002610d6a601154610d6a8660205461134690919063ffffffff16565b9050600061160e826020546112a590919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061164857611648611e7d565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061167957611679611e7d565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116c3908690600090879030904290600401611e93565b600060405180830381600087803b1580156116dd57600080fd5b505af11580156116f1573d6000803e3d6000fd5b50505050600061170a82476112a590919063ffffffff16565b9050600061172561171c8860026113c8565b601154906112a5565b9050600061173a6002610d6a8481878d611346565b9050600061175783610d6a600d548761134690919063ffffffff16565b9050600061177484610d6a600f548861134690919063ffffffff16565b9050600061179185610d6a600e548961134690919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146117e3576040519150601f19603f3d011682016040523d82523d6000602084013e6117e8565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611838576040519150601f19603f3d011682016040523d82523d6000602084013e61183d565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461188d576040519150601f19603f3d011682016040523d82523d6000602084013e611892565b606091505b5060009250508b15905061197257601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611910573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119359190611f04565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f54600091906001600160a01b03908116908416036119b057506013546119cb565b601f546001600160a01b03908116908616036119cb57506014545b60006119f860125460646119df9190611de8565b610d6a84610d5d6011548a61134690919063ffffffff16565b90506000611a17601154610d6a6010548561134690919063ffffffff16565b90506000611a2583836112a5565b30600090815260086020526040902054909150611a4290826112e7565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611a7090836112e7565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020611f33833981519152910160405180910390a38115611b0157600554611aca90836112a5565b6005556004546040518381526001600160a01b03918216918a1690600080516020611f338339815191529060200160405180910390a35b611b0b87846112a5565b98975050505050505050565b60008183611b385760405162461bcd60e51b815260040161074e9190611b5e565b506000610f368486611dff565b600060208284031215611b5757600080fd5b5035919050565b600060208083528351808285015260005b81811015611b8b57858101830151858201604001528201611b6f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611bc357600080fd5b919050565b60008060408385031215611bdb57600080fd5b611be483611bac565b946020939093013593505050565b60008060408385031215611c0557600080fd5b50508035926020909101359150565b600080600060608486031215611c2957600080fd5b611c3284611bac565b9250611c4060208501611bac565b9150604084013590509250925092565b600060208284031215611c6257600080fd5b6108c282611bac565b600080600080600060a08688031215611c8357600080fd5b611c8c86611bac565b9450611c9a60208701611bac565b9350611ca860408701611bac565b9250611cb660608701611bac565b9150611cc460808701611bac565b90509295509295909350565b8015158114610f0257600080fd5b600060208284031215611cf057600080fd5b81356108c281611cd0565b60008060008060008060c08789031215611d1457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060608486031215611d5357600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d7d57600080fd5b611d8683611bac565b9150611d9460208401611bac565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107ed576107ed611dd2565b600082611e1c57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e3357600080fd5b5051919050565b600060208284031215611e4c57600080fd5b81516108c281611cd0565b818103818111156107ed576107ed611dd2565b808201808211156107ed576107ed611dd2565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ee35784516001600160a01b031683529383019391830191600101611ebe565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611f1957600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220781ce85aba8654bd9970cfaae2c227cdd7e3ff9a24f83e807727f5841bd43e5064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063893d20e811610123578063b11f0f03116100ab578063dd62ed3e1161006f578063dd62ed3e14610674578063ed85192c146106ba578063f2fde38b146106cf578063f4293890146106ef578063f887ea401461070457600080fd5b8063b11f0f03146105df578063b2bdfa7b146105ff578063c9567bf91461061f578063d51ed1c814610634578063d61d4e831461065457600080fd5b806395d89b41116100f257806395d89b4114610530578063a8aa1b311461055f578063a9059cbb1461057f578063aa0c68081461059f578063afcd17a6146105bf57600080fd5b8063893d20e8146104a05780638afe5fcb146104d25780638da5cb5b146104f257806390a053351461051057600080fd5b80632b112e49116101b15780636ddd1713116101755780636ddd17131461040857806370a0823114610429578063715018a61461045f57806378109e54146104745780637d1db4a51461048a57600080fd5b80632b112e4914610377578063313ce5671461038c57806340b0ba06146103a857806342b2a4ef146103c8578063571ac8b0146103e857600080fd5b8063095ea7b3116101f8578063095ea7b3146102ec5780631161ae391461030c57806318160ddd1461032c5780631df4ccfc1461034157806323b872dd1461035757600080fd5b80630445b66714610235578063051274a51461025e57806306fdde031461028057806308fd3d05146102bb57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60205481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b5061027e610279366004611b45565b610724565b005b34801561028c57600080fd5b506040805180820190915260098152684b6f6e675a696c6c6160b81b60208201525b6040516102559190611b5e565b3480156102c757600080fd5b50601f546102dc90600160a01b900460ff1681565b6040519015158152602001610255565b3480156102f857600080fd5b506102dc610307366004611bc8565b610786565b34801561031857600080fd5b506102dc610327366004611bf2565b6107f3565b34801561033857600080fd5b5060055461024b565b34801561034d57600080fd5b5061024b60115481565b34801561036357600080fd5b506102dc610372366004611c14565b610807565b34801561038357600080fd5b5061024b6108c9565b34801561039857600080fd5b5060405160098152602001610255565b3480156103b457600080fd5b5061027e6103c3366004611b45565b61091b565b3480156103d457600080fd5b5061027e6103e3366004611b45565b61094a565b3480156103f457600080fd5b506102dc610403366004611c50565b6109a3565b34801561041457600080fd5b50601f546102dc90600160a81b900460ff1681565b34801561043557600080fd5b5061024b610444366004611c50565b6001600160a01b031660009081526008602052604090205490565b34801561046b57600080fd5b5061027e6109b1565b34801561048057600080fd5b5061024b60075481565b34801561049657600080fd5b5061024b60065481565b3480156104ac57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610255565b3480156104de57600080fd5b506102dc6104ed366004611bc8565b610a25565b3480156104fe57600080fd5b506000546001600160a01b03166104ba565b34801561051c57600080fd5b5061027e61052b366004611c6b565b610b11565b34801561053c57600080fd5b506040805180820190915260068152654b5a494c4c4160d01b60208201526102ae565b34801561056b57600080fd5b50601f546104ba906001600160a01b031681565b34801561058b57600080fd5b506102dc61059a366004611bc8565b610b9a565b3480156105ab57600080fd5b5061027e6105ba366004611cde565b610ba7565b3480156105cb57600080fd5b5061027e6105da366004611bf2565b610bef565b3480156105eb57600080fd5b5061027e6105fa366004611cfb565b610c24565b34801561060b57600080fd5b506000546104ba906001600160a01b031681565b34801561062b57600080fd5b5061027e610cea565b34801561064057600080fd5b5061024b61064f366004611b45565b610d29565b34801561066057600080fd5b5061027e61066f366004611d3e565b610d70565b34801561068057600080fd5b5061024b61068f366004611d6a565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106c657600080fd5b5061027e610da8565b3480156106db57600080fd5b5061027e6106ea366004611c50565b610ddf565b3480156106fb57600080fd5b5061027e610ec9565b34801561071057600080fd5b50601d546104ba906001600160a01b031681565b6000546001600160a01b031633146107575760405162461bcd60e51b815260040161074e90611d9d565b60405180910390fd5b600181101561076557600080fd5b6103e8816005546107769190611de8565b6107809190611dff565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107e19086815260200190565b60405180910390a35060015b92915050565b6000826107ff83610d29565b119392505050565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108b4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461088f918490610f05565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6108bf848484610f3f565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610916906003546001600160a01b031660009081526008602052604090205461091090600554906112a5565b906112a5565b905090565b6000546001600160a01b031633146109455760405162461bcd60e51b815260040161074e90611d9d565b602055565b6000546001600160a01b031633146109745760405162461bcd60e51b815260040161074e90611d9d565b600181101561098257600080fd5b6103e8816005546109939190611de8565b61099d9190611dff565b60065550565b60006107ed82600019610786565b6000546001600160a01b031633146109db5760405162461bcd60e51b815260040161074e90611d9d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610a9a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a979190611e21565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610aed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c29190611e3a565b6000546001600160a01b03163314610b3b5760405162461bcd60e51b815260040161074e90611d9d565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b60006108c2338484610f3f565b6000546001600160a01b03163314610bd15760405162461bcd60e51b815260040161074e90611d9d565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610c195760405162461bcd60e51b815260040161074e90611d9d565b601b91909155601c55565b6000546001600160a01b03163314610c4e5760405162461bcd60e51b815260040161074e90611d9d565b600c869055600f859055600d849055600e8390556010829055610c7f82610c79858188818c8c6112e7565b906112e7565b6011556012819055610c92600582611dff565b60115410610ce25760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161074e565b505050505050565b6000546001600160a01b03163314610d145760405162461bcd60e51b815260040161074e90611d9d565b601f805460ff60a01b1916600160a01b179055565b60006107ed610d366108c9565b601f546001600160a01b0316600090815260086020526040902054610d6a90610d63906002905b90611346565b8590611346565b906113c8565b6000546001600160a01b03163314610d9a5760405162461bcd60e51b815260040161074e90611d9d565b601492909255601355601555565b6000546001600160a01b03163314610dd25760405162461bcd60e51b815260040161074e90611d9d565b6005546006819055600755565b6000546001600160a01b03163314610e095760405162461bcd60e51b815260040161074e90611d9d565b6001600160a01b038116610e6e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610f02573d6000803e3d6000fd5b50565b60008184841115610f295760405162461bcd60e51b815260040161074e9190611b5e565b506000610f368486611e57565b95945050505050565b60215460009060ff1615610f5f57610f5884848461140a565b90506108c2565b6001600160a01b03841660009081526001602052604090205460ff16158015610fa157506001600160a01b03831660009081526001602052604090205460ff16155b15610ff657601f54600160a01b900460ff16610ff65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161074e565b6001600160a01b03841660009081526001602052604090205460ff1615801561102857506001600160a01b0383163014155b801561104257506003546001600160a01b03848116911614155b801561105c5750601f546001600160a01b03848116911614155b80156110765750601a546001600160a01b03848116911614155b801561109057506017546001600160a01b03848116911614155b80156110b557506001600160a01b0383166000908152600b602052604090205460ff16155b15611156576001600160a01b0383166000908152600860205260409020546007546110e08483611e6a565b11156111545760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161074e565b505b61116084836114de565b61116861154b565b15611175576111756115a3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546111c7918490610f05565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061121457506001600160a01b0384166000908152600a602052604090205460ff165b6112285761122385848661198a565b61122a565b825b6001600160a01b03851660009081526008602052604090205490915061125090826112e7565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020611f33833981519152906112929085815260200190565b60405180910390a3506001949350505050565b60006108c283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f05565b6000806112f48385611e6a565b9050838110156108c25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074e565b600082600003611358575060006107ed565b60006113648385611de8565b9050826113718583611dff565b146108c25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074e565b60006108c283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b17565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461145b918490610f05565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461148a90836112e7565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020611f33833981519152906114cc9086815260200190565b60405180910390a35060019392505050565b6006548111158061150757506001600160a01b0382166000908152600b602052604090205460ff165b6115475760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161074e565b5050565b601f546000906001600160a01b0316331480159061156c575060215460ff16155b80156115815750601f54600160a81b900460ff165b8015610916575050602080543060009081526008909252604090912054101590565b6021805460ff19166001179055601b54601c546000916115c2916107f3565b6115ce57600c546115d1565b60005b905060006115f56002610d6a601154610d6a8660205461134690919063ffffffff16565b9050600061160e826020546112a590919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061164857611648611e7d565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061167957611679611e7d565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116c3908690600090879030904290600401611e93565b600060405180830381600087803b1580156116dd57600080fd5b505af11580156116f1573d6000803e3d6000fd5b50505050600061170a82476112a590919063ffffffff16565b9050600061172561171c8860026113c8565b601154906112a5565b9050600061173a6002610d6a8481878d611346565b9050600061175783610d6a600d548761134690919063ffffffff16565b9050600061177484610d6a600f548861134690919063ffffffff16565b9050600061179185610d6a600e548961134690919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146117e3576040519150601f19603f3d011682016040523d82523d6000602084013e6117e8565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611838576040519150601f19603f3d011682016040523d82523d6000602084013e61183d565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d806000811461188d576040519150601f19603f3d011682016040523d82523d6000602084013e611892565b606091505b5060009250508b15905061197257601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611910573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119359190611f04565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f54600091906001600160a01b03908116908416036119b057506013546119cb565b601f546001600160a01b03908116908616036119cb57506014545b60006119f860125460646119df9190611de8565b610d6a84610d5d6011548a61134690919063ffffffff16565b90506000611a17601154610d6a6010548561134690919063ffffffff16565b90506000611a2583836112a5565b30600090815260086020526040902054909150611a4290826112e7565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611a7090836112e7565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020611f33833981519152910160405180910390a38115611b0157600554611aca90836112a5565b6005556004546040518381526001600160a01b03918216918a1690600080516020611f338339815191529060200160405180910390a35b611b0b87846112a5565b98975050505050505050565b60008183611b385760405162461bcd60e51b815260040161074e9190611b5e565b506000610f368486611dff565b600060208284031215611b5757600080fd5b5035919050565b600060208083528351808285015260005b81811015611b8b57858101830151858201604001528201611b6f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611bc357600080fd5b919050565b60008060408385031215611bdb57600080fd5b611be483611bac565b946020939093013593505050565b60008060408385031215611c0557600080fd5b50508035926020909101359150565b600080600060608486031215611c2957600080fd5b611c3284611bac565b9250611c4060208501611bac565b9150604084013590509250925092565b600060208284031215611c6257600080fd5b6108c282611bac565b600080600080600060a08688031215611c8357600080fd5b611c8c86611bac565b9450611c9a60208701611bac565b9350611ca860408701611bac565b9250611cb660608701611bac565b9150611cc460808701611bac565b90509295509295909350565b8015158114610f0257600080fd5b600060208284031215611cf057600080fd5b81356108c281611cd0565b60008060008060008060c08789031215611d1457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060608486031215611d5357600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d7d57600080fd5b611d8683611bac565b9150611d9460208401611bac565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107ed576107ed611dd2565b600082611e1c57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e3357600080fd5b5051919050565b600060208284031215611e4c57600080fd5b81516108c281611cd0565b818103818111156107ed576107ed611dd2565b808201808211156107ed576107ed611dd2565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ee35784516001600160a01b031683529383019391830191600101611ebe565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611f1957600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220781ce85aba8654bd9970cfaae2c227cdd7e3ff9a24f83e807727f5841bd43e5064736f6c63430008130033

Deployed Bytecode Sourcemap

5108:13139:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6900:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6900:55:0;;;;;;;;13696:207;;;;;;;;;;-1:-1:-1;13696:207:0;;;;;:::i;:::-;;:::i;:::-;;8430:80;;;;;;;;;;-1:-1:-1;8502:5:0;;;;;;;;;;;;-1:-1:-1;;;8502:5:0;;;;8430:80;;;;;;;:::i;6820:31::-;;;;;;;;;;-1:-1:-1;6820:31:0;;;;-1:-1:-1;;;6820:31:0;;;;;;;;;1099:14:1;;1092:22;1074:41;;1062:2;1047:18;6820:31:0;934:187:1;8852:216:0;;;;;;;;;;-1:-1:-1;8852:216:0;;;;;:::i;:::-;;:::i;18023:150::-;;;;;;;;;;-1:-1:-1;18023:150:0;;;;;:::i;:::-;;:::i;8160:88::-;;;;;;;;;;-1:-1:-1;8233:12:0;;8160:88;;6133:114;;;;;;;;;;;;;;;;9370:370;;;;;;;;;;-1:-1:-1;9370:370:0;;;;;:::i;:::-;;:::i;17698:142::-;;;;;;;;;;;;;:::i;8254:80::-;;;;;;;;;;-1:-1:-1;8254:80:0;;5452:1;2291:36:1;;2279:2;2264:18;8254:80:0;2149:184:1;17451:108:0;;;;;;;;;;-1:-1:-1;17451:108:0;;;;;:::i;:::-;;:::i;13911:185::-;;;;;;;;;;-1:-1:-1;13911:185:0;;;;;:::i;:::-;;:::i;9076:122::-;;;;;;;;;;-1:-1:-1;9076:122:0;;;;;:::i;:::-;;:::i;6863:30::-;;;;;;;;;;-1:-1:-1;6863:30:0;;;;-1:-1:-1;;;6863:30:0;;;;;;8600:105;;;;;;;;;;-1:-1:-1;8600:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8684:18:0;8666:7;8684:18;;;:9;:18;;;;;;;8600:105;3165:148;;;;;;;;;;;;;:::i;5592:61::-;;;;;;;;;;;;;;;;5527:58;;;;;;;;;;;;;;;;8516:78;;;;;;;;;;-1:-1:-1;8568:7:0;3016:6;-1:-1:-1;;;;;3016:6:0;8516:78;;;-1:-1:-1;;;;;2693:32:1;;;2675:51;;2663:2;2648:18;8516:78:0;2529:203:1;13177:285:0;;;;;;;;;;-1:-1:-1;13177:285:0;;;;;:::i;:::-;;:::i;2951:79::-;;;;;;;;;;-1:-1:-1;2989:7:0;3016:6;-1:-1:-1;;;;;3016:6:0;2951:79;;16963:480;;;;;;;;;;-1:-1:-1;16963:480:0;;;;;:::i;:::-;;:::i;8340:84::-;;;;;;;;;;-1:-1:-1;8414:7:0;;;;;;;;;;;;-1:-1:-1;;;8414:7:0;;;;8340:84;;6788:19;;;;;;;;;;-1:-1:-1;6788:19:0;;;;-1:-1:-1;;;;;6788:19:0;;;9206:156;;;;;;;;;;-1:-1:-1;9206:156:0;;;;;:::i;:::-;;:::i;17568:115::-;;;;;;;;;;-1:-1:-1;17568:115:0;;;;;:::i;:::-;;:::i;14205:175::-;;;;;;;;;;-1:-1:-1;14205:175:0;;;;;:::i;:::-;;:::i;16336:619::-;;;;;;;;;;-1:-1:-1;16336:619:0;;;;;:::i;:::-;;:::i;2571:21::-;;;;;;;;;;-1:-1:-1;2571:21:0;;;;-1:-1:-1;;;;;2571:21:0;;;14104:92;;;;;;;;;;;;;:::i;17848:167::-;;;;;;;;;;-1:-1:-1;17848:167:0;;;;;:::i;:::-;;:::i;13470:217::-;;;;;;;;;;-1:-1:-1;13470:217:0;;;;;:::i;:::-;;:::i;8711:133::-;;;;;;;;;;-1:-1:-1;8711:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8813:19:0;;;8795:7;8813:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8711:133;9752:147;;;;;;;;;;;;;:::i;3321:244::-;;;;;;;;;;-1:-1:-1;3321:244:0;;;;;:::i;:::-;;:::i;13048:119::-;;;;;;;;;;;;;:::i;6718:24::-;;;;;;;;;;-1:-1:-1;6718:24:0;;;;-1:-1:-1;;;;;6718:24:0;;;13696:207;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;;;;;;;;;13806:1:::1;13788:14;:19;;13780:28;;;::::0;::::1;;13873:4;13854:14;13839:12;;:29;;;;:::i;:::-;13838:39;;;;:::i;:::-;13820:15;:57:::0;-1:-1:-1;13696:207:0:o;8852:216::-;8956:10;8927:4;8944:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8944:32:0;;;;;;;;;;:41;;;9001:37;8927:4;;8944:32;;9001:37;;;;8979:6;160:25:1;;148:2;133:18;;14:177;9001:37:0;;;;;;;;-1:-1:-1;9056:4:0;8852:216;;;;;:::o;18023:150::-;18103:4;18159:6;18127:29;18147:8;18127:19;:29::i;:::-;:38;;18023:150;-1:-1:-1;;;18023:150:0:o;9370:370::-;-1:-1:-1;;;;;9490:19:0;;9470:4;9490:19;;;:11;:19;;;;;;;;9510:10;9490:31;;;;;;;;-1:-1:-1;;9490:52:0;9487:186;;9592:69;;;;;;;;;;;-1:-1:-1;;;9592:69:0;;;;;;;;-1:-1:-1;;;;;9592:19:0;;-1:-1:-1;9592:19:0;;;:11;:19;;;;;9612:10;9592:31;;;;;;;;;;:69;;9628:6;;9592:35;:69::i;:::-;-1:-1:-1;;;;;9558:19:0;;;;;;:11;:19;;;;;;;;9578:10;9558:31;;;;;;;:103;9487:186;9692:40;9706:6;9714:9;9725:6;9692:13;:40::i;:::-;9685:47;;9370:370;;;;;;:::o;17698:142::-;17826:4;;-1:-1:-1;;;;;17826:4:0;17751:7;8684:18;;;:9;:18;;;;;;17778:54;;17805:4;;-1:-1:-1;;;;;17805:4:0;8666:7;8684:18;;;:9;:18;;;;;;17778:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17771:61;;17698:142;:::o;17451:108::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;17528:13:::1;:23:::0;17451:108::o;13911:185::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;14022:1:::1;14006:12;:17;;13998:26;;;::::0;::::1;;14084:4;14067:12;14052;;:27;;;;:::i;:::-;14051:37;;;;:::i;:::-;14036:12;:52:::0;-1:-1:-1;13911:185:0:o;9076:122::-;9131:4;9155:35;9163:7;-1:-1:-1;;9155:7:0;:35::i;3165:148::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;3272:1:::1;3256:6:::0;;3235:40:::1;::::0;-1:-1:-1;;;;;3256:6:0;;::::1;::::0;3235:40:::1;::::0;3272:1;;3235:40:::1;3303:1;3286:19:::0;;-1:-1:-1;;;;;;3286:19:0::1;::::0;;3165:148::o;13177:285::-;13259:4;13286:6;13296:1;13286:11;13283:95;;13322:44;;-1:-1:-1;;;13322:44:0;;13360:4;13322:44;;;2675:51:1;-1:-1:-1;;;;;13322:29:0;;;;;2648:18:1;;13322:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13313:53;;13283:95;13424:21;;13395:59;;-1:-1:-1;;;13395:59:0;;-1:-1:-1;;;;;13424:21:0;;;13395:59;;;6186:51:1;6253:18;;;6246:34;;;13395:28:0;;;;;;6159:18:1;;13395:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16963:480::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;17171:21:::1;:46:::0;;-1:-1:-1;;;;;;17171:46:0;;::::1;-1:-1:-1::0;;;;;17171:46:0;;::::1;;::::0;;;17228:31:::1;:66:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17305:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17350:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17401:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;16963:480::o;9206:156::-;9286:4;9310:44;9324:10;9336:9;9347:6;9310:13;:44::i;17568:115::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;17643:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17643:22:0::1;-1:-1:-1::0;;;;17643:22:0;;::::1;::::0;;;::::1;::::0;;17568:115::o;14205:175::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;14295:15:::1;:25:::0;;;;14331:26:::1;:41:::0;14205:175::o;16336:619::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;16529:12:::1;:28:::0;;;16568:7:::1;:18:::0;;;16597:23:::1;:50:::0;;;16658:7:::1;:18:::0;;;16687:10:::1;:24:::0;;;16733:88:::1;16700:11:::0;16733:71:::1;16668:8:::0;16733:71;16623:24;16733:71;16544:13;16578:8;16733:17:::1;:27::i;:::-;:31:::0;::::1;:57::i;:88::-;16722:8;:99:::0;16832:14:::1;:32:::0;;;16894:18:::1;16911:1;16849:15:::0;16894:18:::1;:::i;:::-;16883:8;;:29;16875:71;;;::::0;-1:-1:-1;;;16875:71:0;;6743:2:1;16875:71:0::1;::::0;::::1;6725:21:1::0;6782:2;6762:18;;;6755:30;6821:31;6801:18;;;6794:59;6870:18;;16875:71:0::1;6541:353:1::0;16875:71:0::1;16336:619:::0;;;;;;:::o;14104:92::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;14155:11:::1;:18:::0;;-1:-1:-1;;;;14155:18:0::1;-1:-1:-1::0;;;14155:18:0::1;::::0;;14104:92::o;17848:167::-;17916:7;17943:64;17984:22;:20;:22::i;:::-;17966:4;;-1:-1:-1;;;;;17966:4:0;8666:7;8684:18;;;:9;:18;;;;;;17943:36;;17956:22;;17976:1;;17956:15;:19;;:22::i;:::-;17943:8;;:12;:36::i;:::-;:40;;:64::i;13470:217::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;13574:13:::1;:22:::0;;;;13607:14:::1;:24:::0;13642:11:::1;:21:::0;13470:217::o;9752:147::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;9834:12:::1;::::0;9819::::1;:27:::0;;;9861:15:::1;:30:::0;9752:147::o;3321:244::-;3078:6;;-1:-1:-1;;;;;3078:6:0;2388:10;3078:22;3070:67;;;;-1:-1:-1;;;3070:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3410:22:0;::::1;3402:73;;;::::0;-1:-1:-1;;;3402:73:0;;7101:2:1;3402:73:0::1;::::0;::::1;7083:21:1::0;7140:2;7120:18;;;7113:30;7179:34;7159:18;;;7152:62;-1:-1:-1;;;7230:18:1;;;7223:36;7276:19;;3402:73:0::1;6899:402:1::0;3402:73:0::1;3512:6;::::0;;3491:38:::1;::::0;-1:-1:-1;;;;;3491:38:0;;::::1;::::0;3512:6;::::1;::::0;3491:38:::1;::::0;::::1;3540:6;:17:::0;;-1:-1:-1;;;;;;3540:17:0::1;-1:-1:-1::0;;;;;3540:17:0;;;::::1;::::0;;;::::1;::::0;;3321:244::o;13048:119::-;13095:21;;13087:62;;-1:-1:-1;;;;;13095:21:0;;;;13127;13087:62;;;;;13095:21;13087:62;13095:21;13087:62;13127:21;13095;13087:62;;;;;;;;;;;;;;;;;;;;;13048:119::o;1461:192::-;1547:7;1583:12;1575:6;;;;1567:29;;;;-1:-1:-1;;;1567:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1607:9:0;1619:5;1623:1;1619;:5;:::i;:::-;1607:17;1461:192;-1:-1:-1;;;;;1461:192:0:o;9913:1257::-;10025:6;;10005:4;;10025:6;;10022:63;;;10041:41;10056:6;10064:9;10075:6;10041:14;:41::i;:::-;10034:48;;;;10022:63;-1:-1:-1;;;;;10101:22:0;;;;;;:14;:22;;;;;;;;10100:23;:53;;;;-1:-1:-1;;;;;;10128:25:0;;;;;;:14;:25;;;;;;;;10127:26;10100:53;10097:139;;;10177:11;;-1:-1:-1;;;10177:11:0;;;;10169:43;;;;-1:-1:-1;;;10169:43:0;;7641:2:1;10169:43:0;;;7623:21:1;7680:2;7660:18;;;7653:30;-1:-1:-1;;;7699:18:1;;;7692:50;7759:18;;10169:43:0;7439:344:1;10169:43:0;-1:-1:-1;;;;;10278:22:0;;;;;;:14;:22;;;;;;;;10277:23;:53;;;;-1:-1:-1;;;;;;10304:26:0;;10325:4;10304:26;;10277:53;:84;;;;-1:-1:-1;10356:4:0;;-1:-1:-1;;;;;10335:26:0;;;10356:4;;10335:26;;10277:84;:105;;;;-1:-1:-1;10378:4:0;;-1:-1:-1;;;;;10365:17:0;;;10378:4;;10365:17;;10277:105;:140;;;;-1:-1:-1;10399:18:0;;-1:-1:-1;;;;;10386:31:0;;;10399:18;;10386:31;;10277:140;:188;;;;-1:-1:-1;10434:31:0;;-1:-1:-1;;;;;10421:44:0;;;10434:31;;10421:44;;10277:188;:219;;;;-1:-1:-1;;;;;;10470:26:0;;;;;;:15;:26;;;;;;;;10469:27;10277:219;10273:411;;;-1:-1:-1;;;;;8684:18:0;;10512;8684;;;:9;:18;;;;;;10601:15;;10577:19;10590:6;8684:18;10577:19;:::i;:::-;10576:40;;10568:114;;;;-1:-1:-1;;;10568:114:0;;8120:2:1;10568:114:0;;;8102:21:1;8159:2;8139:18;;;8132:30;8198:34;8178:18;;;8171:62;8269:32;8249:18;;;8242:60;8319:19;;10568:114:0;7918:426:1;10568:114:0;10497:187;10273:411;10706:28;10719:6;10727;10706:12;:28::i;:::-;10751:16;:14;:16::i;:::-;10748:35;;;10770:10;:8;:10::i;:::-;10821:53;;;;;;;;;;;-1:-1:-1;;;10821:53:0;;;;;;;;-1:-1:-1;;;;;10821:17:0;;-1:-1:-1;10821:17:0;;;:9;:17;;;;;;;;:53;;10843:6;;10821:21;:53::i;:::-;-1:-1:-1;;;;;10801:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10913:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10936:22:0;;;;;;:11;:22;;;;;;;;10913:45;10912:93;;10971:34;10979:6;10987;10995:9;10971:7;:34::i;:::-;10912:93;;;10962:6;10912:93;-1:-1:-1;;;;;11039:20:0;;;;;;:9;:20;;;;;;10887:118;;-1:-1:-1;11039:40:0;;10887:118;11039:24;:40::i;:::-;-1:-1:-1;;;;;11016:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11097:43;;;;;;-1:-1:-1;;;;;;;;;;;11097:43:0;;;11125:14;160:25:1;;148:2;133:18;;14:177;11097:43:0;;;;;;;;-1:-1:-1;11158:4:0;;9913:1257;-1:-1:-1;;;;9913:1257:0:o;1319:136::-;1377:7;1404:43;1408:1;1411;1404:43;;;;;;;;;;;;;;;;;:3;:43::i;1132:181::-;1190:7;;1222:5;1226:1;1222;:5;:::i;:::-;1210:17;;1251:1;1246;:6;;1238:46;;;;-1:-1:-1;;;1238:46:0;;8551:2:1;1238:46:0;;;8533:21:1;8590:2;8570:18;;;8563:30;8629:29;8609:18;;;8602:57;8676:18;;1238:46:0;8349:351:1;1659:250:0;1717:7;1741:1;1746;1741:6;1737:47;;-1:-1:-1;1771:1:0;1764:8;;1737:47;1796:9;1808:5;1812:1;1808;:5;:::i;:::-;1796:17;-1:-1:-1;1841:1:0;1832:5;1836:1;1796:17;1832:5;:::i;:::-;:10;1824:56;;;;-1:-1:-1;;;1824:56:0;;8907:2:1;1824:56:0;;;8889:21:1;8946:2;8926:18;;;8919:30;8985:34;8965:18;;;8958:62;-1:-1:-1;;;9036:18:1;;;9029:31;9077:19;;1824:56:0;8705:397:1;1915:132:0;1973:7;2000:39;2004:1;2007;2000:39;;;;;;;;;;;;;;;;;:3;:39::i;11182:330::-;11312:53;;;;;;;;;;;-1:-1:-1;;;11312:53:0;;;;;;;;-1:-1:-1;;;;;11312:17:0;;11275:4;11312:17;;;:9;:17;;;;;;;:53;;11334:6;;11312:21;:53::i;:::-;-1:-1:-1;;;;;11292:17:0;;;;;;;:9;:17;;;;;;:73;;;;11399:20;;;;;;;:32;;11424:6;11399:24;:32::i;:::-;-1:-1:-1;;;;;11376:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11447:35;;;;;;-1:-1:-1;;;;;;;;;;;11447:35:0;;;11475:6;160:25:1;;148:2;133:18;;14:177;11447:35:0;;;;;;;;-1:-1:-1;11500:4:0;11182:330;;;;;:::o;11520:166::-;11617:12;;11607:6;:22;;:49;;;-1:-1:-1;;;;;;11633:23:0;;;;;;:15;:23;;;;;;;;11607:49;11599:79;;;;-1:-1:-1;;;11599:79:0;;9309:2:1;11599:79:0;;;9291:21:1;9348:2;9328:18;;;9321:30;-1:-1:-1;;;9367:18:1;;;9360:47;9424:18;;11599:79:0;9107:341:1;11599:79:0;11520:166;;:::o;12839:197::-;12926:4;;12888;;-1:-1:-1;;;;;12926:4:0;12912:10;:18;;;;:38;;-1:-1:-1;12944:6:0;;;;12943:7;12912:38;:62;;;;-1:-1:-1;12963:11:0;;-1:-1:-1;;;12963:11:0;;;;12912:62;:116;;;;-1:-1:-1;;13015:13:0;;;13005:4;12987:24;;;;:9;:24;;;;;;;;:41;;;12839:197::o;14415:1907::-;7003:6;:13;;-1:-1:-1;;7003:13:0;7012:4;7003:13;;;14510:15:::1;::::0;14527:26:::1;::::0;7003:6;;14494:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14561:12;;14494:79;;;14557:1;14494:79;14464:109;;14584:23;14610:59;14667:1;14610:52;14653:8;;14610:38;14628:19;14610:13;;:17;;:38;;;;:::i;:59::-;14584:85;;14680:20;14703:34;14721:15;14703:13;;:17;;:34;;;;:::i;:::-;14774:16;::::0;;14788:1:::1;14774:16:::0;;;;;::::1;::::0;;14680:57;;-1:-1:-1;14750:21:0::1;::::0;14774:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14774:16:0::1;14750:40;;14819:4;14801;14806:1;14801:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14801:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14845:4:::1;::::0;14835:7;;14845:4;::::1;::::0;14835;;14845;;14835:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14835:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14920:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14920:188:0;;14886:21:::1;::::0;14920:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14992:12;;14862:21:::1;::::0;15035:4;;15062::::1;::::0;15082:15:::1;::::0;14920:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15121:17;15141:40;15167:13;15141:21;:25;;:40;;;;:::i;:::-;15121:60:::0;-1:-1:-1;15194:19:0::1;15216:40;15229:26;:19:::0;15253:1:::1;15229:23;:26::i;:::-;15216:8;::::0;;:12:::1;:40::i;:::-;15194:62:::0;-1:-1:-1;15277:26:0::1;15306:58;15362:1;15306:51;15194:62:::0;15306:51;:9;15320:19;15306:13:::1;:34::i;:58::-;15277:87;;15375:37;15415:55;15458:11;15415:38;15429:23;;15415:9;:13;;:38;;;;:::i;:55::-;15375:95;;15481:21;15505:39;15532:11;15505:22;15519:7;;15505:9;:13;;:22;;;;:::i;:39::-;15481:63;;15555:20;15578:39;15605:11;15578:22;15592:7;;15578:9;:13;;:22;;;;:::i;:39::-;15659:31;::::0;15651:87:::1;::::0;15555:62;;-1:-1:-1;15631:15:0::1;::::0;-1:-1:-1;;;;;15659:31:0;;::::1;::::0;15704:29;;15631:15;15651:87;15631:15;15651:87;15704:29;15659:31;15651:87:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15773:15:0::1;::::0;15765:54:::1;::::0;15630:108;;-1:-1:-1;;;;;;15773:15:0::1;::::0;15802:12;;15765:54:::1;::::0;;;15802:12;15773:15;15765:54:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15854:15:0::1;::::0;15846:55:::1;::::0;15749:70;;-1:-1:-1;;;;;;15854:15:0::1;::::0;15883:13;;15846:55:::1;::::0;;;15883:13;15854:15;15846:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15935:5:0::1;::::0;-1:-1:-1;;15956:19:0;;;-1:-1:-1;15953:362:0::1;;15991:6;::::0;16165:21:::1;::::0;15991:244:::1;::::0;-1:-1:-1;;;15991:244:0;;16067:4:::1;15991:244;::::0;::::1;11253:34:1::0;11303:18;;;11296:34;;;15991:6:0::1;11346:18:1::0;;;11339:34;;;11389:18;;;11382:34;-1:-1:-1;;;;;16165:21:0;;::::1;11432:19:1::0;;;11425:44;16205:15:0::1;11485:19:1::0;;;11478:35;15991:6:0;::::1;::::0;:22:::1;::::0;16021:18;;11187:19:1;;15991:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16255:48:0::1;::::0;;12009:25:1;;;12065:2;12050:18;;12043:34;;;16255:48:0::1;::::0;-1:-1:-1;11982:18:1;16255:48:0::1;;;;;;;15953:362;-1:-1:-1::0;;7021:6:0;:14;;-1:-1:-1;;7021:14:0;;;-1:-1:-1;;;;;;;;;;14415:1907:0:o;11816:1015::-;11950:11;;11990:4;;11902:7;;11950:11;-1:-1:-1;;;;;11990:4:0;;;11977:17;;;;11974:148;;-1:-1:-1;12021:14:0;;11974:148;;;12066:4;;-1:-1:-1;;;;;12066:4:0;;;12056:14;;;;12053:69;;-1:-1:-1;12097:13:0;;12053:69;12134:17;12154:59;12192:14;;12209:3;12192:20;;;;:::i;:::-;12154:33;12179:7;12154:20;12165:8;;12154:6;:10;;:20;;;;:::i;:59::-;12134:79;;12224:21;12248:39;12278:8;;12248:25;12262:10;;12248:9;:13;;:25;;;;:::i;:39::-;12224:63;-1:-1:-1;12298:22:0;12323:28;:9;12224:63;12323:13;:28::i;:::-;12409:4;12391:24;;;;:9;:24;;;;;;12298:53;;-1:-1:-1;12391:44:0;;12298:53;12391:28;:44::i;:::-;12382:4;12364:24;;;;:9;:24;;;;;;:71;;;;12488:18;;-1:-1:-1;;;;;12488:18:0;12478:29;;;;:48;;12512:13;12478:33;:48::i;:::-;12456:18;;-1:-1:-1;;;;;12456:18:0;;;12446:29;;;;:9;:29;;;;;;;;;:80;;;;12542:47;160:25:1;;;12567:4:0;;12542:47;;;;-1:-1:-1;;;;;;;;;;;12542:47:0;133:18:1;12542:47:0;;;;;;;12623:17;;12620:163;;12671:12;;:31;;12688:13;12671:16;:31::i;:::-;12656:12;:46;12739:4;;12722:37;;160:25:1;;;-1:-1:-1;;;;;12739:4:0;;;;12722:37;;;-1:-1:-1;;;;;;;;;;;12722:37:0;148:2:1;133:18;12722:37:0;;;;;;;12620:163;12802:21;:6;12813:9;12802:10;:21::i;:::-;12795:28;11816:1015;-1:-1:-1;;;;;;;;11816:1015:0:o;2053:189::-;2139:7;2174:12;2167:5;2159:28;;;;-1:-1:-1;;;2159:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2198:9:0;2210:5;2214:1;2210;:5;:::i;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;381:548::-;493:4;522:2;551;540:9;533:21;583:6;577:13;626:6;621:2;610:9;606:18;599:34;651:1;661:140;675:6;672:1;669:13;661:140;;;770:14;;;766:23;;760:30;736:17;;;755:2;732:26;725:66;690:10;;661:140;;;665:3;850:1;845:2;836:6;825:9;821:22;817:31;810:42;920:2;913;909:7;904:2;896:6;892:15;888:29;877:9;873:45;869:54;861:62;;;;381:548;;;;:::o;1126:173::-;1194:20;;-1:-1:-1;;;;;1243:31:1;;1233:42;;1223:70;;1289:1;1286;1279:12;1223:70;1126:173;;;:::o;1304:254::-;1372:6;1380;1433:2;1421:9;1412:7;1408:23;1404:32;1401:52;;;1449:1;1446;1439:12;1401:52;1472:29;1491:9;1472:29;:::i;:::-;1462:39;1548:2;1533:18;;;;1520:32;;-1:-1:-1;;;1304:254:1:o;1563:248::-;1631:6;1639;1692:2;1680:9;1671:7;1667:23;1663:32;1660:52;;;1708:1;1705;1698:12;1660:52;-1:-1:-1;;1731:23:1;;;1801:2;1786:18;;;1773:32;;-1:-1:-1;1563:248:1:o;1816:328::-;1893:6;1901;1909;1962:2;1950:9;1941:7;1937:23;1933:32;1930:52;;;1978:1;1975;1968:12;1930:52;2001:29;2020:9;2001:29;:::i;:::-;1991:39;;2049:38;2083:2;2072:9;2068:18;2049:38;:::i;:::-;2039:48;;2134:2;2123:9;2119:18;2106:32;2096:42;;1816:328;;;;;:::o;2338:186::-;2397:6;2450:2;2438:9;2429:7;2425:23;2421:32;2418:52;;;2466:1;2463;2456:12;2418:52;2489:29;2508:9;2489:29;:::i;2737:484::-;2832:6;2840;2848;2856;2864;2917:3;2905:9;2896:7;2892:23;2888:33;2885:53;;;2934:1;2931;2924:12;2885:53;2957:29;2976:9;2957:29;:::i;:::-;2947:39;;3005:38;3039:2;3028:9;3024:18;3005:38;:::i;:::-;2995:48;;3062:38;3096:2;3085:9;3081:18;3062:38;:::i;:::-;3052:48;;3119:38;3153:2;3142:9;3138:18;3119:38;:::i;:::-;3109:48;;3176:39;3210:3;3199:9;3195:19;3176:39;:::i;:::-;3166:49;;2737:484;;;;;;;;:::o;3226:118::-;3312:5;3305:13;3298:21;3291:5;3288:32;3278:60;;3334:1;3331;3324:12;3349:241;3405:6;3458:2;3446:9;3437:7;3433:23;3429:32;3426:52;;;3474:1;3471;3464:12;3426:52;3513:9;3500:23;3532:28;3554:5;3532:28;:::i;3595:523::-;3699:6;3707;3715;3723;3731;3739;3792:3;3780:9;3771:7;3767:23;3763:33;3760:53;;;3809:1;3806;3799:12;3760:53;-1:-1:-1;;3832:23:1;;;3902:2;3887:18;;3874:32;;-1:-1:-1;3953:2:1;3938:18;;3925:32;;4004:2;3989:18;;3976:32;;-1:-1:-1;4055:3:1;4040:19;;4027:33;;-1:-1:-1;4107:3:1;4092:19;4079:33;;-1:-1:-1;3595:523:1;-1:-1:-1;3595:523:1:o;4123:316::-;4200:6;4208;4216;4269:2;4257:9;4248:7;4244:23;4240:32;4237:52;;;4285:1;4282;4275:12;4237:52;-1:-1:-1;;4308:23:1;;;4378:2;4363:18;;4350:32;;-1:-1:-1;4429:2:1;4414:18;;;4401:32;;4123:316;-1:-1:-1;4123:316:1:o;4444:260::-;4512:6;4520;4573:2;4561:9;4552:7;4548:23;4544:32;4541:52;;;4589:1;4586;4579:12;4541:52;4612:29;4631:9;4612:29;:::i;:::-;4602:39;;4660:38;4694:2;4683:9;4679:18;4660:38;:::i;:::-;4650:48;;4444:260;;;;;:::o;4935:356::-;5137:2;5119:21;;;5156:18;;;5149:30;5215:34;5210:2;5195:18;;5188:62;5282:2;5267:18;;4935:356::o;5296:127::-;5357:10;5352:3;5348:20;5345:1;5338:31;5388:4;5385:1;5378:15;5412:4;5409:1;5402:15;5428:168;5501:9;;;5532;;5549:15;;;5543:22;;5529:37;5519:71;;5570:18;;:::i;5601:217::-;5641:1;5667;5657:132;;5711:10;5706:3;5702:20;5699:1;5692:31;5746:4;5743:1;5736:15;5774:4;5771:1;5764:15;5657:132;-1:-1:-1;5803:9:1;;5601:217::o;5823:184::-;5893:6;5946:2;5934:9;5925:7;5921:23;5917:32;5914:52;;;5962:1;5959;5952:12;5914:52;-1:-1:-1;5985:16:1;;5823:184;-1:-1:-1;5823:184:1:o;6291:245::-;6358:6;6411:2;6399:9;6390:7;6386:23;6382:32;6379:52;;;6427:1;6424;6417:12;6379:52;6459:9;6453:16;6478:28;6500:5;6478:28;:::i;7306:128::-;7373:9;;;7394:11;;;7391:37;;;7408:18;;:::i;7788:125::-;7853:9;;;7874:10;;;7871:36;;;7887:18;;:::i;9585:127::-;9646:10;9641:3;9637:20;9634:1;9627:31;9677:4;9674:1;9667:15;9701:4;9698:1;9691:15;9717:980;9979:4;10027:3;10016:9;10012:19;10058:6;10047:9;10040:25;10084:2;10122:6;10117:2;10106:9;10102:18;10095:34;10165:3;10160:2;10149:9;10145:18;10138:31;10189:6;10224;10218:13;10255:6;10247;10240:22;10293:3;10282:9;10278:19;10271:26;;10332:2;10324:6;10320:15;10306:29;;10353:1;10363:195;10377:6;10374:1;10371:13;10363:195;;;10442:13;;-1:-1:-1;;;;;10438:39:1;10426:52;;10533:15;;;;10498:12;;;;10474:1;10392:9;10363:195;;;-1:-1:-1;;;;;;;10614:32:1;;;;10609:2;10594:18;;10587:60;-1:-1:-1;;;10678:3:1;10663:19;10656:35;10575:3;9717:980;-1:-1:-1;;;9717:980:1:o;11524:306::-;11612:6;11620;11628;11681:2;11669:9;11660:7;11656:23;11652:32;11649:52;;;11697:1;11694;11687:12;11649:52;11726:9;11720:16;11710:26;;11776:2;11765:9;11761:18;11755:25;11745:35;;11820:2;11809:9;11805:18;11799:25;11789:35;;11524:306;;;;;:::o

Swarm Source

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