ETH Price: $3,406.66 (-1.11%)
Gas: 4 Gwei

Token

X CORP (X)
 

Overview

Max Total Supply

1,000,000,000 X

Holders

153

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.044260381 X

Value
$0.00
0xf21f6acd67cb797c2ba40e540097225f992a6d84
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:
XCorp

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 10 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/* 


*/


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.17;

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

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

    string constant _name = "X CORP";
    string constant _symbol = "X";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**9 * 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    = 2;
    uint256 private devFee          = 1;
    uint256 private utilityFee      = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = utilityFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellpercent = 900;
    uint256 buypercent = 1600;
    uint256 transferpercent = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private utilityFeeReceiver;
    address private burnFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

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

    bool public whitelistMode = false;
    mapping (address => bool) public iswhitelisted;   

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 22 / 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 = 0x960da572289f017f90B7F2A61F4c82404dA1a244;
        devFeeReceiver = msg.sender;
        utilityFeeReceiver = msg.sender;
        burnFeeReceiver = 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 editMaxHolding(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxSell(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _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(whitelistMode){
                require(iswhitelisted[recipient],"Not whitelisted"); 
          }
        }
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && 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 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

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

        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(utilityFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

     function manualSend() 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 updateTaxAmount(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellpercent = _sell;
        buypercent = _buy;
        transferpercent = _trans;    
          
    }

     function enableWhitelist(bool _status) public onlyOwner {
        whitelistMode = _status;
    }

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

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

     function dogeToTheMoon() public onlyOwner {
        buypercent = 550;
        sellpercent = 1000;
        transferpercent = 1500;
    }
        
           
    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 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

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

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

    function setInternalAddress(address holder, bool exempt) external onlyOwner {
        isFeeexempt[holder] = exempt;
        isTxLimitexempt[holder] = exempt;
    }

    
    function updateFees(uint256 _liquidityFee, uint256 _utilityFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        utilityFee = _utilityFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_utilityFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _utilityFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
    }

    function setSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    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":[],"name":"dogeToTheMoon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"editMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWhitelist","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":[{"internalType":"address","name":"","type":"address"}],"name":"iswhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualUnclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","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":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removelimits","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":"setInternalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setIsWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","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"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"}],"name":"updateFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateFees","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":"updateTaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006e6565b6200004290633b9aca00620006f7565b6005556200007c6064620000686001600554620004b660201b6200117a1790919060201c565b6200054d60201b620011fc1790919060201c565b600655620000a26064620000686001600554620004b660201b6200117a1790919060201c565b6007556001600c556002600d556001600e556001600f556000601055601054600e54600c54600d54600f54620000d9919062000711565b620000e5919062000711565b620000f1919062000711565b620000fd919062000711565b601155606460128190556103846013556106406014556015819055601e601b55601c55601f805461ffff60a01b191690556021805460ff191660011790556005546103e8906200014f906016620006f7565b6200015b919062000727565b6022553480156200016b57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200022b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025191906200074a565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d691906200074a565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e91906200074a565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b168752848720805483168417905596865283862080549091169091179055601680548716821790558454861673960da572289f017f90b7f2a61f4c82404da1a2441790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007c5565b600082600003620004ca5750600062000547565b6000620004d88385620006f7565b905082620004e7858362000727565b14620005445760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059760201b60201c565b60008183620005bb5760405162461bcd60e51b81526004016200053b919062000775565b506000620005ca848662000727565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200062a5781600019048211156200060e576200060e620005d3565b808516156200061c57918102915b93841c9390800290620005ee565b509250929050565b600082620006435750600162000547565b81620006525750600062000547565b81600181146200066b5760028114620006765762000696565b600191505062000547565b60ff8411156200068a576200068a620005d3565b50506001821b62000547565b5060208310610133831016604e8410600b8410161715620006bb575081810a62000547565b620006c78383620005e9565b8060001904821115620006de57620006de620005d3565b029392505050565b60006200054460ff84168362000632565b8082028115828204841417620005475762000547620005d3565b80820180821115620005475762000547620005d3565b6000826200074557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200075d57600080fd5b81516001600160a01b03811681146200054457600080fd5b600060208083528351808285015260005b81811015620007a45785810183015185820160400152820162000786565b506000604082860101526040601f19601f8301168501019250505092915050565b61237680620007d56000396000f3fe6080604052600436106102065760003560e01c8063040b6583146102125780630445b6671461023457806306fdde031461025d57806308fd3d0514610295578063095ea7b3146102c6578063115db610146102e65780631161ae391461031557806318160ddd146103355780631df4ccfc1461034a578063201e7991146103605780632219e91d1461038057806323b872dd146103a05780632ad75672146103c05780632b112e49146103e0578063313ce567146103f557806338347fa414610411578063571ac8b0146104265780635e4ae81b1461044657806360c898871461045b5780636ddd17131461047b57806370a082311461049557806370c757ec146104b5578063715018a6146104d657806378109e54146104eb5780637d1db4a5146105015780637fa4a5bb146105175780638821004f14610537578063893d20e8146105575780638da5cb5b1461057e57806395d89b411461059c578063992c58e4146105c6578063a8aa1b31146105e6578063a9059cbb14610606578063aba1193d14610626578063b2bdfa7b14610646578063d17b71f914610666578063d51ed1c814610686578063dd62ed3e146106a6578063ef998cf0146106ec578063f0a9e3651461070c578063f28202291461072c578063f2fde38b14610741578063f429389014610761578063f887ea4014610776578063fb201b1d1461079657600080fd5b3661020d57005b600080fd5b34801561021e57600080fd5b5061023261022d366004611e1a565b6107ab565b005b34801561024057600080fd5b5061024a60225481565b6040519081526020015b60405180910390f35b34801561026957600080fd5b5060408051808201909152600681526505820434f52560d41b60208201525b6040516102549190611e37565b3480156102a157600080fd5b50601f546102b690600160a01b900460ff1681565b6040519015158152602001610254565b3480156102d257600080fd5b506102b66102e1366004611ea1565b6107fc565b3480156102f257600080fd5b506102b6610301366004611ecb565b602080526000908152604090205460ff1681565b34801561032157600080fd5b506102b6610330366004611ee6565b610869565b34801561034157600080fd5b5060055461024a565b34801561035657600080fd5b5061024a60115481565b34801561036c57600080fd5b5061023261037b366004611ee6565b61087d565b34801561038c57600080fd5b5061023261039b366004611f08565b6108b2565b3480156103ac57600080fd5b506102b66103bb366004611f34565b6108ed565b3480156103cc57600080fd5b506102326103db366004611f70565b6109af565b3480156103ec57600080fd5b5061024a610a38565b34801561040157600080fd5b5060405160098152602001610254565b34801561041d57600080fd5b50610232610a81565b34801561043257600080fd5b506102b6610441366004611ecb565b610ab5565b34801561045257600080fd5b50610232610ac3565b34801561046757600080fd5b50610232610476366004611fd5565b610afa565b34801561048757600080fd5b506021546102b69060ff1681565b3480156104a157600080fd5b5061024a6104b0366004611ecb565b610b99565b3480156104c157600080fd5b50601f546102b690600160a81b900460ff1681565b3480156104e257600080fd5b50610232610bb4565b3480156104f757600080fd5b5061024a60075481565b34801561050d57600080fd5b5061024a60065481565b34801561052357600080fd5b5061023261053236600461205a565b610c16565b34801561054357600080fd5b50610232610552366004612091565b610c7e565b34801561056357600080fd5b506000546001600160a01b03165b60405161025491906120aa565b34801561058a57600080fd5b506000546001600160a01b0316610571565b3480156105a857600080fd5b506040805180820190915260018152600b60fb1b6020820152610288565b3480156105d257600080fd5b506102326105e13660046120be565b610cd2565b3480156105f257600080fd5b50601f54610571906001600160a01b031681565b34801561061257600080fd5b506102b6610621366004611ea1565b610d98565b34801561063257600080fd5b50610232610641366004612101565b610da5565b34801561065257600080fd5b50600054610571906001600160a01b031681565b34801561067257600080fd5b50610232610681366004612091565b610de6565b34801561069257600080fd5b5061024a6106a1366004612091565b610e4f565b3480156106b257600080fd5b5061024a6106c136600461211f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106f857600080fd5b50610232610707366004612091565b610e8f565b34801561071857600080fd5b506102b6610727366004611ea1565b610ef8565b34801561073857600080fd5b50610232610fe9565b34801561074d57600080fd5b5061023261075c366004611ecb565b611027565b34801561076d57600080fd5b506102326110ff565b34801561078257600080fd5b50601d54610571906001600160a01b031681565b3480156107a257600080fd5b5061023261113b565b6000546001600160a01b031633146107de5760405162461bcd60e51b81526004016107d590612152565b60405180910390fd5b601f8054911515600160a81b0260ff60a81b19909216919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108579086815260200190565b60405180910390a35060015b92915050565b60008261087583610e4f565b119392505050565b6000546001600160a01b031633146108a75760405162461bcd60e51b81526004016107d590612152565b601b91909155601c55565b6000546001600160a01b031633146108dc5760405162461bcd60e51b81526004016107d590612152565b601391909155601491909155601555565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461099a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461097591849061123b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109a5848484611275565b90505b9392505050565b6000546001600160a01b031633146109d95760405162461bcd60e51b81526004016107d590612152565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610a7c90610a54906001600160a01b0316610b99565b600354610a7690610a6d906001600160a01b0316610b99565b6005549061163b565b9061163b565b905090565b6000546001600160a01b03163314610aab5760405162461bcd60e51b81526004016107d590612152565b610ab361167d565b565b6000610863826000196107fc565b6000546001600160a01b03163314610aed5760405162461bcd60e51b81526004016107d590612152565b6005546006819055600755565b6000546001600160a01b03163314610b245760405162461bcd60e51b81526004016107d590612152565b60005b82811015610b93578160206000868685818110610b4657610b46612187565b9050602002016020810190610b5b9190611ecb565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b8c816121b3565b9050610b27565b50505050565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610bde5760405162461bcd60e51b81526004016107d590612152565b600080546040516001600160a01b0390911690600080516020612301833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c405760405162461bcd60e51b81526004016107d590612152565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b60195447906001600160a01b03166108fc6064610c9b85856121cc565b610ca591906121e3565b6040518115909202916000818181858888f19350505050158015610ccd573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610cfc5760405162461bcd60e51b81526004016107d590612152565b600c869055600f859055600d849055600e8390556010829055610d2d82610d27858188818c8c611a64565b90611a64565b6011556012819055610d406005826121e3565b60115410610d905760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107d5565b505050505050565b60006109a8338484611275565b6000546001600160a01b03163314610dcf5760405162461bcd60e51b81526004016107d590612152565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610e105760405162461bcd60e51b81526004016107d590612152565b6103e8600554610e2091906121e3565b6007541015610e2e57600080fd5b6103e881600554610e3f91906121cc565b610e4991906121e3565b60075550565b6000610863610e5c610a38565b601f54610e8990610e8290600290610e7c906001600160a01b0316610b99565b9061117a565b859061117a565b906111fc565b6000546001600160a01b03163314610eb95760405162461bcd60e51b81526004016107d590612152565b6103e8600554610ec991906121e3565b6006541015610ed757600080fd5b6103e881600554610ee891906121cc565b610ef291906121e3565b60065550565b600081600003610f72576040516370a0823160e01b81526001600160a01b038416906370a0823190610f2e9030906004016120aa565b602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190612205565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a8919061221e565b6000546001600160a01b031633146110135760405162461bcd60e51b81526004016107d590612152565b6102266014556103e86013556105dc601555565b6000546001600160a01b031633146110515760405162461bcd60e51b81526004016107d590612152565b6001600160a01b0381166110b65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d5565b600080546040516001600160a01b038085169392169160008051602061230183398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611138573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111655760405162461bcd60e51b81526004016107d590612152565b601f805460ff60a01b1916600160a01b179055565b60008260000361118c57506000610863565b600061119883856121cc565b9050826111a585836121e3565b146109a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d5565b60006109a883836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611ac1565b6000818484111561125f5760405162461bcd60e51b81526004016107d59190611e37565b50600061126c848661223b565b95945050505050565b60235460009060ff16156112955761128e848484611aef565b90506109a8565b6001600160a01b03841660009081526001602052604090205460ff161580156112d757506001600160a01b03831660009081526001602052604090205460ff16155b1561139757601f54600160a01b900460ff1661132c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d5565b601f54600160a81b900460ff1615611397576001600160a01b038316600090815260208052604090205460ff166113975760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064016107d5565b6001600160a01b03841660009081526001602052604090205460ff161580156113c957506001600160a01b0383163014155b80156113e357506003546001600160a01b03848116911614155b80156113fd5750601f546001600160a01b03848116911614155b80156114175750601a546001600160a01b03848116911614155b801561143157506017546001600160a01b03848116911614155b801561145657506001600160a01b0383166000908152600b602052604090205460ff16155b156114ec57600061146684610b99565b600754909150611476848361224e565b11156114ea5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d5565b505b6114f68483611bc3565b6114fe611c30565b1561150b5761150b61167d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461155d91849061123b565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806115aa57506001600160a01b0384166000908152600a602052604090205460ff165b6115be576115b9858486611c7f565b6115c0565b825b6001600160a01b0385166000908152600860205260409020549091506115e69082611a64565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612321833981519152906116289085815260200190565b60405180910390a3506001949350505050565b60006109a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061123b565b6023805460ff19166001179055601b54601c5460009161169c91610869565b6116a857600c546116ab565b60005b905060006116cf6002610e89601154610e898660225461117a90919063ffffffff16565b905060006116e88260225461163b90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061172257611722612187565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061175357611753612187565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac9479061179d908690600090879030904290600401612261565b600060405180830381600087803b1580156117b757600080fd5b505af11580156117cb573d6000803e3d6000fd5b5050505060006117e4824761163b90919063ffffffff16565b905060006117ff6117f68860026111fc565b6011549061163b565b905060006118146002610e898481878d61117a565b9050600061183183610e89600d548761117a90919063ffffffff16565b9050600061184e84610e89600f548861117a90919063ffffffff16565b9050600061186b85610e89600e548961117a90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146118bd576040519150601f19603f3d011682016040523d82523d6000602084013e6118c2565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611912576040519150601f19603f3d011682016040523d82523d6000602084013e611917565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611967576040519150601f19603f3d011682016040523d82523d6000602084013e61196c565b606091505b5060009250508b159050611a4c57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156119ea573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a0f91906122d2565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611a71838561224e565b9050838110156109a85760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107d5565b60008183611ae25760405162461bcd60e51b81526004016107d59190611e37565b50600061126c84866121e3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b4091849061123b565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b6f9083611a64565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061232183398151915290611bb19086815260200190565b60405180910390a35060019392505050565b60065481111580611bec57506001600160a01b0382166000908152600b602052604090205460ff165b611c2c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d5565b5050565b601f546000906001600160a01b03163314801590611c51575060235460ff16155b8015611c5f575060215460ff165b8015610a7c57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611ca55750601354611cc0565b601f546001600160a01b0390811690861603611cc057506014545b6000611ced6012546064611cd491906121cc565b610e8984610e7c6011548a61117a90919063ffffffff16565b90506000611d0c601154610e896010548561117a90919063ffffffff16565b90506000611d1a838361163b565b30600090815260086020526040902054909150611d379082611a64565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d659083611a64565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612321833981519152910160405180910390a38115611df657600554611dbf908361163b565b6005556004546040518381526001600160a01b03918216918a16906000805160206123218339815191529060200160405180910390a35b611e00878461163b565b98975050505050505050565b801515811461113857600080fd5b600060208284031215611e2c57600080fd5b81356109a881611e0c565b600060208083528351808285015260005b81811015611e6457858101830151858201604001528201611e48565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e9c57600080fd5b919050565b60008060408385031215611eb457600080fd5b611ebd83611e85565b946020939093013593505050565b600060208284031215611edd57600080fd5b6109a882611e85565b60008060408385031215611ef957600080fd5b50508035926020909101359150565b600080600060608486031215611f1d57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611f4957600080fd5b611f5284611e85565b9250611f6060208501611e85565b9150604084013590509250925092565b600080600080600060a08688031215611f8857600080fd5b611f9186611e85565b9450611f9f60208701611e85565b9350611fad60408701611e85565b9250611fbb60608701611e85565b9150611fc960808701611e85565b90509295509295909350565b600080600060408486031215611fea57600080fd5b83356001600160401b038082111561200157600080fd5b818601915086601f83011261201557600080fd5b81358181111561202457600080fd5b8760208260051b850101111561203957600080fd5b6020928301955093505084013561204f81611e0c565b809150509250925092565b6000806040838503121561206d57600080fd5b61207683611e85565b9150602083013561208681611e0c565b809150509250929050565b6000602082840312156120a357600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60008060008060008060c087890312156120d757600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561211457600080fd5b8235611ebd81611e0c565b6000806040838503121561213257600080fd5b61213b83611e85565b915061214960208401611e85565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121c5576121c561219d565b5060010190565b80820281158282048414176108635761086361219d565b60008261220057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561221757600080fd5b5051919050565b60006020828403121561223057600080fd5b81516109a881611e0c565b818103818111156108635761086361219d565b808201808211156108635761086361219d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122b15784516001600160a01b03168352938301939183019160010161228c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122e757600080fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220207bc226f6d27dd7ffe6c23b00c88ce6763084dbf7cc0feaac6deb4f2712b20b64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102065760003560e01c8063040b6583146102125780630445b6671461023457806306fdde031461025d57806308fd3d0514610295578063095ea7b3146102c6578063115db610146102e65780631161ae391461031557806318160ddd146103355780631df4ccfc1461034a578063201e7991146103605780632219e91d1461038057806323b872dd146103a05780632ad75672146103c05780632b112e49146103e0578063313ce567146103f557806338347fa414610411578063571ac8b0146104265780635e4ae81b1461044657806360c898871461045b5780636ddd17131461047b57806370a082311461049557806370c757ec146104b5578063715018a6146104d657806378109e54146104eb5780637d1db4a5146105015780637fa4a5bb146105175780638821004f14610537578063893d20e8146105575780638da5cb5b1461057e57806395d89b411461059c578063992c58e4146105c6578063a8aa1b31146105e6578063a9059cbb14610606578063aba1193d14610626578063b2bdfa7b14610646578063d17b71f914610666578063d51ed1c814610686578063dd62ed3e146106a6578063ef998cf0146106ec578063f0a9e3651461070c578063f28202291461072c578063f2fde38b14610741578063f429389014610761578063f887ea4014610776578063fb201b1d1461079657600080fd5b3661020d57005b600080fd5b34801561021e57600080fd5b5061023261022d366004611e1a565b6107ab565b005b34801561024057600080fd5b5061024a60225481565b6040519081526020015b60405180910390f35b34801561026957600080fd5b5060408051808201909152600681526505820434f52560d41b60208201525b6040516102549190611e37565b3480156102a157600080fd5b50601f546102b690600160a01b900460ff1681565b6040519015158152602001610254565b3480156102d257600080fd5b506102b66102e1366004611ea1565b6107fc565b3480156102f257600080fd5b506102b6610301366004611ecb565b602080526000908152604090205460ff1681565b34801561032157600080fd5b506102b6610330366004611ee6565b610869565b34801561034157600080fd5b5060055461024a565b34801561035657600080fd5b5061024a60115481565b34801561036c57600080fd5b5061023261037b366004611ee6565b61087d565b34801561038c57600080fd5b5061023261039b366004611f08565b6108b2565b3480156103ac57600080fd5b506102b66103bb366004611f34565b6108ed565b3480156103cc57600080fd5b506102326103db366004611f70565b6109af565b3480156103ec57600080fd5b5061024a610a38565b34801561040157600080fd5b5060405160098152602001610254565b34801561041d57600080fd5b50610232610a81565b34801561043257600080fd5b506102b6610441366004611ecb565b610ab5565b34801561045257600080fd5b50610232610ac3565b34801561046757600080fd5b50610232610476366004611fd5565b610afa565b34801561048757600080fd5b506021546102b69060ff1681565b3480156104a157600080fd5b5061024a6104b0366004611ecb565b610b99565b3480156104c157600080fd5b50601f546102b690600160a81b900460ff1681565b3480156104e257600080fd5b50610232610bb4565b3480156104f757600080fd5b5061024a60075481565b34801561050d57600080fd5b5061024a60065481565b34801561052357600080fd5b5061023261053236600461205a565b610c16565b34801561054357600080fd5b50610232610552366004612091565b610c7e565b34801561056357600080fd5b506000546001600160a01b03165b60405161025491906120aa565b34801561058a57600080fd5b506000546001600160a01b0316610571565b3480156105a857600080fd5b506040805180820190915260018152600b60fb1b6020820152610288565b3480156105d257600080fd5b506102326105e13660046120be565b610cd2565b3480156105f257600080fd5b50601f54610571906001600160a01b031681565b34801561061257600080fd5b506102b6610621366004611ea1565b610d98565b34801561063257600080fd5b50610232610641366004612101565b610da5565b34801561065257600080fd5b50600054610571906001600160a01b031681565b34801561067257600080fd5b50610232610681366004612091565b610de6565b34801561069257600080fd5b5061024a6106a1366004612091565b610e4f565b3480156106b257600080fd5b5061024a6106c136600461211f565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106f857600080fd5b50610232610707366004612091565b610e8f565b34801561071857600080fd5b506102b6610727366004611ea1565b610ef8565b34801561073857600080fd5b50610232610fe9565b34801561074d57600080fd5b5061023261075c366004611ecb565b611027565b34801561076d57600080fd5b506102326110ff565b34801561078257600080fd5b50601d54610571906001600160a01b031681565b3480156107a257600080fd5b5061023261113b565b6000546001600160a01b031633146107de5760405162461bcd60e51b81526004016107d590612152565b60405180910390fd5b601f8054911515600160a81b0260ff60a81b19909216919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108579086815260200190565b60405180910390a35060015b92915050565b60008261087583610e4f565b119392505050565b6000546001600160a01b031633146108a75760405162461bcd60e51b81526004016107d590612152565b601b91909155601c55565b6000546001600160a01b031633146108dc5760405162461bcd60e51b81526004016107d590612152565b601391909155601491909155601555565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461099a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461097591849061123b565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109a5848484611275565b90505b9392505050565b6000546001600160a01b031633146109d95760405162461bcd60e51b81526004016107d590612152565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610a7c90610a54906001600160a01b0316610b99565b600354610a7690610a6d906001600160a01b0316610b99565b6005549061163b565b9061163b565b905090565b6000546001600160a01b03163314610aab5760405162461bcd60e51b81526004016107d590612152565b610ab361167d565b565b6000610863826000196107fc565b6000546001600160a01b03163314610aed5760405162461bcd60e51b81526004016107d590612152565b6005546006819055600755565b6000546001600160a01b03163314610b245760405162461bcd60e51b81526004016107d590612152565b60005b82811015610b93578160206000868685818110610b4657610b46612187565b9050602002016020810190610b5b9190611ecb565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b8c816121b3565b9050610b27565b50505050565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610bde5760405162461bcd60e51b81526004016107d590612152565b600080546040516001600160a01b0390911690600080516020612301833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c405760405162461bcd60e51b81526004016107d590612152565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b60195447906001600160a01b03166108fc6064610c9b85856121cc565b610ca591906121e3565b6040518115909202916000818181858888f19350505050158015610ccd573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610cfc5760405162461bcd60e51b81526004016107d590612152565b600c869055600f859055600d849055600e8390556010829055610d2d82610d27858188818c8c611a64565b90611a64565b6011556012819055610d406005826121e3565b60115410610d905760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107d5565b505050505050565b60006109a8338484611275565b6000546001600160a01b03163314610dcf5760405162461bcd60e51b81526004016107d590612152565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610e105760405162461bcd60e51b81526004016107d590612152565b6103e8600554610e2091906121e3565b6007541015610e2e57600080fd5b6103e881600554610e3f91906121cc565b610e4991906121e3565b60075550565b6000610863610e5c610a38565b601f54610e8990610e8290600290610e7c906001600160a01b0316610b99565b9061117a565b859061117a565b906111fc565b6000546001600160a01b03163314610eb95760405162461bcd60e51b81526004016107d590612152565b6103e8600554610ec991906121e3565b6006541015610ed757600080fd5b6103e881600554610ee891906121cc565b610ef291906121e3565b60065550565b600081600003610f72576040516370a0823160e01b81526001600160a01b038416906370a0823190610f2e9030906004016120aa565b602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190612205565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a8919061221e565b6000546001600160a01b031633146110135760405162461bcd60e51b81526004016107d590612152565b6102266014556103e86013556105dc601555565b6000546001600160a01b031633146110515760405162461bcd60e51b81526004016107d590612152565b6001600160a01b0381166110b65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d5565b600080546040516001600160a01b038085169392169160008051602061230183398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611138573d6000803e3d6000fd5b50565b6000546001600160a01b031633146111655760405162461bcd60e51b81526004016107d590612152565b601f805460ff60a01b1916600160a01b179055565b60008260000361118c57506000610863565b600061119883856121cc565b9050826111a585836121e3565b146109a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107d5565b60006109a883836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611ac1565b6000818484111561125f5760405162461bcd60e51b81526004016107d59190611e37565b50600061126c848661223b565b95945050505050565b60235460009060ff16156112955761128e848484611aef565b90506109a8565b6001600160a01b03841660009081526001602052604090205460ff161580156112d757506001600160a01b03831660009081526001602052604090205460ff16155b1561139757601f54600160a01b900460ff1661132c5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107d5565b601f54600160a81b900460ff1615611397576001600160a01b038316600090815260208052604090205460ff166113975760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064016107d5565b6001600160a01b03841660009081526001602052604090205460ff161580156113c957506001600160a01b0383163014155b80156113e357506003546001600160a01b03848116911614155b80156113fd5750601f546001600160a01b03848116911614155b80156114175750601a546001600160a01b03848116911614155b801561143157506017546001600160a01b03848116911614155b801561145657506001600160a01b0383166000908152600b602052604090205460ff16155b156114ec57600061146684610b99565b600754909150611476848361224e565b11156114ea5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107d5565b505b6114f68483611bc3565b6114fe611c30565b1561150b5761150b61167d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461155d91849061123b565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806115aa57506001600160a01b0384166000908152600a602052604090205460ff165b6115be576115b9858486611c7f565b6115c0565b825b6001600160a01b0385166000908152600860205260409020549091506115e69082611a64565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612321833981519152906116289085815260200190565b60405180910390a3506001949350505050565b60006109a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061123b565b6023805460ff19166001179055601b54601c5460009161169c91610869565b6116a857600c546116ab565b60005b905060006116cf6002610e89601154610e898660225461117a90919063ffffffff16565b905060006116e88260225461163b90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061172257611722612187565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061175357611753612187565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac9479061179d908690600090879030904290600401612261565b600060405180830381600087803b1580156117b757600080fd5b505af11580156117cb573d6000803e3d6000fd5b5050505060006117e4824761163b90919063ffffffff16565b905060006117ff6117f68860026111fc565b6011549061163b565b905060006118146002610e898481878d61117a565b9050600061183183610e89600d548761117a90919063ffffffff16565b9050600061184e84610e89600f548861117a90919063ffffffff16565b9050600061186b85610e89600e548961117a90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146118bd576040519150601f19603f3d011682016040523d82523d6000602084013e6118c2565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611912576040519150601f19603f3d011682016040523d82523d6000602084013e611917565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611967576040519150601f19603f3d011682016040523d82523d6000602084013e61196c565b606091505b5060009250508b159050611a4c57601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156119ea573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a0f91906122d2565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b600080611a71838561224e565b9050838110156109a85760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016107d5565b60008183611ae25760405162461bcd60e51b81526004016107d59190611e37565b50600061126c84866121e3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611b4091849061123b565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611b6f9083611a64565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061232183398151915290611bb19086815260200190565b60405180910390a35060019392505050565b60065481111580611bec57506001600160a01b0382166000908152600b602052604090205460ff165b611c2c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107d5565b5050565b601f546000906001600160a01b03163314801590611c51575060235460ff16155b8015611c5f575060215460ff165b8015610a7c57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611ca55750601354611cc0565b601f546001600160a01b0390811690861603611cc057506014545b6000611ced6012546064611cd491906121cc565b610e8984610e7c6011548a61117a90919063ffffffff16565b90506000611d0c601154610e896010548561117a90919063ffffffff16565b90506000611d1a838361163b565b30600090815260086020526040902054909150611d379082611a64565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611d659083611a64565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612321833981519152910160405180910390a38115611df657600554611dbf908361163b565b6005556004546040518381526001600160a01b03918216918a16906000805160206123218339815191529060200160405180910390a35b611e00878461163b565b98975050505050505050565b801515811461113857600080fd5b600060208284031215611e2c57600080fd5b81356109a881611e0c565b600060208083528351808285015260005b81811015611e6457858101830151858201604001528201611e48565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e9c57600080fd5b919050565b60008060408385031215611eb457600080fd5b611ebd83611e85565b946020939093013593505050565b600060208284031215611edd57600080fd5b6109a882611e85565b60008060408385031215611ef957600080fd5b50508035926020909101359150565b600080600060608486031215611f1d57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611f4957600080fd5b611f5284611e85565b9250611f6060208501611e85565b9150604084013590509250925092565b600080600080600060a08688031215611f8857600080fd5b611f9186611e85565b9450611f9f60208701611e85565b9350611fad60408701611e85565b9250611fbb60608701611e85565b9150611fc960808701611e85565b90509295509295909350565b600080600060408486031215611fea57600080fd5b83356001600160401b038082111561200157600080fd5b818601915086601f83011261201557600080fd5b81358181111561202457600080fd5b8760208260051b850101111561203957600080fd5b6020928301955093505084013561204f81611e0c565b809150509250925092565b6000806040838503121561206d57600080fd5b61207683611e85565b9150602083013561208681611e0c565b809150509250929050565b6000602082840312156120a357600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60008060008060008060c087890312156120d757600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561211457600080fd5b8235611ebd81611e0c565b6000806040838503121561213257600080fd5b61213b83611e85565b915061214960208401611e85565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121c5576121c561219d565b5060010190565b80820281158282048414176108635761086361219d565b60008261220057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561221757600080fd5b5051919050565b60006020828403121561223057600080fd5b81516109a881611e0c565b818103818111156108635761086361219d565b808201808211156108635761086361219d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122b15784516001600160a01b03168352938301939183019160010161228c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122e757600080fd5b835192506020840151915060408401519050925092509256fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220207bc226f6d27dd7ffe6c23b00c88ce6763084dbf7cc0feaac6deb4f2712b20b64736f6c63430008110033

Deployed Bytecode Sourcemap

4997:13988:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14402:98;;;;;;;;;;-1:-1:-1;14402:98:0;;;;;:::i;:::-;;:::i;:::-;;6782:55;;;;;;;;;;;;;;;;;;;529:25:1;;;517:2;502:18;6782:55:0;;;;;;;;8287:80;;;;;;;;;;-1:-1:-1;8359:5:0;;;;;;;;;;;;-1:-1:-1;;;8359:5:0;;;;8287:80;;;;;;;:::i;6606:31::-;;;;;;;;;;-1:-1:-1;6606:31:0;;;;-1:-1:-1;;;6606:31:0;;;;;;;;;1283:14:1;;1276:22;1258:41;;1246:2;1231:18;6606:31:0;1118:187:1;8709:216:0;;;;;;;;;;-1:-1:-1;8709:216:0;;;;;:::i;:::-;;:::i;6687:46::-;;;;;;;;;;-1:-1:-1;6687:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18763:150;;;;;;;;;;-1:-1:-1;18763:150:0;;;;;:::i;:::-;;:::i;8017:88::-;;;;;;;;;;-1:-1:-1;8090:12:0;;8017:88;;5962:93;;;;;;;;;;;;;;;;18244:182;;;;;;;;;;-1:-1:-1;18244:182:0;;;;;:::i;:::-;;:::i;14187:206::-;;;;;;;;;;-1:-1:-1;14187:206:0;;;;;:::i;:::-;;:::i;9227:370::-;;;;;;;;;;-1:-1:-1;9227:370:0;;;;;:::i;:::-;;:::i;17624:449::-;;;;;;;;;;-1:-1:-1;17624:449:0;;;;;:::i;:::-;;:::i;18438:142::-;;;;;;;;;;;;;:::i;8111:80::-;;;;;;;;;;-1:-1:-1;8111:80:0;;5329:1;3476:36:1;;3464:2;3449:18;8111:80:0;3334:184:1;13677:81:0;;;;;;;;;;;;;:::i;8933:122::-;;;;;;;;;;-1:-1:-1;8933:122:0;;;;;:::i;:::-;;:::i;10035:139::-;;;;;;;;;;;;;:::i;14508:210::-;;;;;;;;;;-1:-1:-1;14508:210:0;;;;;:::i;:::-;;:::i;6745:30::-;;;;;;;;;;-1:-1:-1;6745:30:0;;;;;;;;8457:105;;;;;;;;;;-1:-1:-1;8457:105:0;;;;;:::i;:::-;;:::i;6647:33::-;;;;;;;;;;-1:-1:-1;6647:33:0;;;;-1:-1:-1;;;6647:33:0;;;;;;3054:148;;;;;;;;;;;;;:::i;5466:61::-;;;;;;;;;;;;;;;;5401:58;;;;;;;;;;;;;;;;16869:166;;;;;;;;;;-1:-1:-1;16869:166:0;;;;;:::i;:::-;;:::i;13466:202::-;;;;;;;;;;-1:-1:-1;13466:202:0;;;;;:::i;:::-;;:::i;8373:78::-;;;;;;;;;;-1:-1:-1;8425:7:0;2905:6;-1:-1:-1;;;;;2905:6:0;8373:78;;;;;;;:::i;2840:79::-;;;;;;;;;;-1:-1:-1;2878:7:0;2905:6;-1:-1:-1;;;;;2905:6:0;2840:79;;8197:84;;;;;;;;;;-1:-1:-1;8271:7:0;;;;;;;;;;;;-1:-1:-1;;;8271:7:0;;;;8197:84;;17049:567;;;;;;;;;;-1:-1:-1;17049:567:0;;;;;:::i;:::-;;:::i;6574:19::-;;;;;;;;;;-1:-1:-1;6574:19:0;;;;-1:-1:-1;;;;;6574:19:0;;;9063:156;;;;;;;;;;-1:-1:-1;9063:156:0;;;;;:::i;:::-;;:::i;18081:155::-;;;;;;;;;;-1:-1:-1;18081:155:0;;;;;:::i;:::-;;:::i;2460:21::-;;;;;;;;;;-1:-1:-1;2460:21:0;;;;-1:-1:-1;;;;;2460:21:0;;;9609:221;;;;;;;;;;-1:-1:-1;9609:221:0;;;;;:::i;:::-;;:::i;18588:167::-;;;;;;;;;;-1:-1:-1;18588:167:0;;;;;:::i;:::-;;:::i;8568:133::-;;;;;;;;;;-1:-1:-1;8568:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8670:19:0;;;8652:7;8670:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8568:133;9838:189;;;;;;;;;;-1:-1:-1;9838:189:0;;;;;:::i;:::-;;:::i;13895:284::-;;;;;;;;;;-1:-1:-1;13895:284:0;;;;;:::i;:::-;;:::i;14820:139::-;;;;;;;;;;;;;:::i;3210:244::-;;;;;;;;;;-1:-1:-1;3210:244:0;;;;;:::i;:::-;;:::i;13767:120::-;;;;;;;;;;;;;:::i;6504:24::-;;;;;;;;;;-1:-1:-1;6504:24:0;;;;-1:-1:-1;;;;;6504:24:0;;;14726:85;;;;;;;;;;;;;:::i;14402:98::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;;;;;;;;;14469:13:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;14469:23:0::1;-1:-1:-1::0;;;;14469:23:0;;::::1;::::0;;;::::1;::::0;;14402:98::o;8709:216::-;8813:10;8784:4;8801:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8801:32:0;;;;;;;;;;:41;;;8858:37;8784:4;;8801:32;;8858:37;;;;8836:6;529:25:1;;517:2;502:18;;383:177;8858:37:0;;;;;;;;-1:-1:-1;8913:4:0;8709:216;;;;;:::o;18763:150::-;18843:4;18899:6;18867:29;18887:8;18867:19;:29::i;:::-;:38;;18763:150;-1:-1:-1;;;18763:150:0:o;18244:182::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;18341:15:::1;:25:::0;;;;18377:26:::1;:41:::0;18244:182::o;14187:206::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;14287:11:::1;:19:::0;;;;14317:10:::1;:17:::0;;;;14345:15:::1;:24:::0;14187:206::o;9227:370::-;-1:-1:-1;;;;;9347:19:0;;9327:4;9347:19;;;:11;:19;;;;;;;;9367:10;9347:31;;;;;;;;-1:-1:-1;;9347:52:0;9344:186;;9449:69;;;;;;;;;;;-1:-1:-1;;;9449:69:0;;;;;;;;-1:-1:-1;;;;;9449:19:0;;-1:-1:-1;9449:19:0;;;:11;:19;;;;;9469:10;9449:31;;;;;;;;;;:69;;9485:6;;9449:35;:69::i;:::-;-1:-1:-1;;;;;9415:19:0;;;;;;:11;:19;;;;;;;;9435:10;9415:31;;;;;;;:103;9344:186;9549:40;9563:6;9571:9;9582:6;9549:13;:40::i;:::-;9542:47;;9227:370;;;;;;:::o;17624:449::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;17825:21:::1;:46:::0;;-1:-1:-1;;;;;;17825:46:0;;::::1;-1:-1:-1::0;;;;;17825:46:0;;::::1;;::::0;;;17882:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17937:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17980:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18025:18:::1;:40:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17624:449::o;18438:142::-;18566:4;;18491:7;;18518:54;;18556:15;;-1:-1:-1;;;;;18566:4:0;18556:9;:15::i;:::-;18545:4;;18518:33;;18535:15;;-1:-1:-1;;;;;18545:4:0;18535:9;:15::i;:::-;18518:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18511:61;;18438:142;:::o;13677:81::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;13734:10:::1;:8;:10::i;:::-;13677:81::o:0;8933:122::-;8988:4;9012:35;9020:7;-1:-1:-1;;9012:7:0;:35::i;10035:139::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;10109:12:::1;::::0;10094::::1;:27:::0;;;10136:15:::1;:30:::0;10035:139::o;14508:210::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;14610:9:::1;14605:106;14621:20:::0;;::::1;14605:106;;;14693:6;14663:13;:27;14677:9;;14687:1;14677:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14663:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14663:27:0;:36;;-1:-1:-1;;14663:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14643:3:::1;::::0;::::1;:::i;:::-;;;14605:106;;;;14508:210:::0;;;:::o;8457:105::-;-1:-1:-1;;;;;8541:18:0;8523:7;8541:18;;;:9;:18;;;;;;;8457:105::o;3054:148::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;3161:1:::1;3145:6:::0;;3124:40:::1;::::0;-1:-1:-1;;;;;3145:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;3124:40:0;3161:1;;3124:40:::1;3192:1;3175:19:::0;;-1:-1:-1;;;;;;3175:19:0::1;::::0;;3054:148::o;16869:166::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16956:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16956:28:0;;::::1;::::0;::::1;::::0;;;16995:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16869:166::o;13466:202::-;13596:18;;13556:21;;-1:-1:-1;;;;;13596:18:0;13588:72;13656:3;13625:28;13637:16;13556:21;13625:28;:::i;:::-;:34;;;;:::i;:::-;13588:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13525:143;13466:202;:::o;17049:567::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;17226:12:::1;:28:::0;;;17265:10:::1;:24:::0;;;17300:12:::1;:28:::0;;;17339:6:::1;:16:::0;;;17366:7:::1;:18:::0;;;17406:76:::1;17376:8:::0;17406:62:::1;17348:7:::0;17406:62;17315:13;17406:62;17241:13;17278:11;17406:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;17395:8;:87:::0;17493:14:::1;:32:::0;;;17555:18:::1;17572:1;17510:15:::0;17555:18:::1;:::i;:::-;17544:8;;:29;17536:71;;;::::0;-1:-1:-1;;;17536:71:0;;7686:2:1;17536:71:0::1;::::0;::::1;7668:21:1::0;7725:2;7705:18;;;7698:30;7764:31;7744:18;;;7737:59;7813:18;;17536:71:0::1;7484:353:1::0;17536:71:0::1;17049:567:::0;;;;;;:::o;9063:156::-;9143:4;9167:44;9181:10;9193:9;9204:6;9167:13;:44::i;18081:155::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;18172:11:::1;:22:::0;;-1:-1:-1;;18172:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18205:13:::1;:23:::0;18081:155::o;9609:221::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;9730:4:::1;9715:12;;:19;;;;:::i;:::-;9696:15;;:38;;9688:47;;;::::0;::::1;;9800:4;9781:14;9766:12;;:29;;;;:::i;:::-;9765:39;;;;:::i;:::-;9747:15;:57:::0;-1:-1:-1;9609:221:0:o;18588:167::-;18656:7;18683:64;18724:22;:20;:22::i;:::-;18706:4;;18683:36;;18696:22;;18716:1;;18696:15;;-1:-1:-1;;;;;18706:4:0;18696:9;:15::i;:::-;:19;;:22::i;:::-;18683:8;;:12;:36::i;:::-;:40;;:64::i;9838:189::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;9950:4:::1;9935:12;;:19;;;;:::i;:::-;9919:12;;:35;;9911:44;;;::::0;::::1;;10015:4;9998:12;9983;;:27;;;;:::i;:::-;9982:37;;;;:::i;:::-;9967:12;:52:::0;-1:-1:-1;9838:189:0:o;13895:284::-;13976:4;14003:6;14013:1;14003:11;14000:95;;14039:44;;-1:-1:-1;;;14039:44:0;;-1:-1:-1;;;;;14039:29:0;;;;;:44;;14077:4;;14039:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14030:53;;14000:95;14141:21;;14112:59;;-1:-1:-1;;;14112:59:0;;-1:-1:-1;;;;;14141:21:0;;;14112:59;;;8205:51:1;8272:18;;;8265:34;;;14112:28:0;;;;;;8178:18:1;;14112:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14820:139::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;14886:3:::1;14873:10;:16:::0;14914:4:::1;14900:11;:18:::0;14947:4:::1;14929:15;:22:::0;14820:139::o;3210:244::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3299:22:0;::::1;3291:73;;;::::0;-1:-1:-1;;;3291:73:0;;8762:2:1;3291: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;;3291:73:0::1;8560:402:1::0;3291:73:0::1;3401:6;::::0;;3380:38:::1;::::0;-1:-1:-1;;;;;3380:38:0;;::::1;::::0;3401:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;3380:38:0;::::1;3429:6;:17:::0;;-1:-1:-1;;;;;;3429:17:0::1;-1:-1:-1::0;;;;;3429:17:0;;;::::1;::::0;;;::::1;::::0;;3210:244::o;13767:120::-;13823:21;;13815:62;;-1:-1:-1;;;;;13823:21:0;;;;13855;13815:62;;;;;13823:21;13815:62;13823:21;13815:62;13855:21;13823;13815:62;;;;;;;;;;;;;;;;;;;;;13767:120::o;14726:85::-;2967:6;;-1:-1:-1;;;;;2967:6:0;2277:10;2967:22;2959:67;;;;-1:-1:-1;;;2959:67:0;;;;;;;:::i;:::-;14775:11:::1;:18:::0;;-1:-1:-1;;;;14775:18:0::1;-1:-1:-1::0;;;14775:18:0::1;::::0;;14726:85::o;639:250::-;697:7;721:1;726;721:6;717:47;;-1:-1:-1;751:1:0;744:8;;717:47;776:9;788:5;792:1;788;:5;:::i;:::-;776:17;-1:-1:-1;821:1:0;812:5;816:1;776:17;812:5;:::i;:::-;:10;804:56;;;;-1:-1:-1;;;804:56:0;;9169:2:1;804: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;;804:56:0;8967:397:1;895:132:0;953:7;980:39;984:1;987;980:39;;;;;;;;;;;;;-1:-1:-1;;;980:39:0;;;:3;:39::i;441:192::-;527:7;563:12;555:6;;;;547:29;;;;-1:-1:-1;;;547:29:0;;;;;;;;:::i;:::-;-1:-1:-1;587:9:0;599:5;603:1;599;:5;:::i;:::-;587:17;441:192;-1:-1:-1;;;;;441:192:0:o;10188:1433::-;10300:6;;10280:4;;10300:6;;10297:63;;;10316:41;10331:6;10339:9;10350:6;10316:14;:41::i;:::-;10309:48;;;;10297:63;-1:-1:-1;;;;;10376:22:0;;;;;;:14;:22;;;;;;;;10375:23;:53;;;;-1:-1:-1;;;;;;10403:25:0;;;;;;:14;:25;;;;;;;;10402:26;10375:53;10372:254;;;10452:11;;-1:-1:-1;;;10452:11:0;;;;10444:43;;;;-1:-1:-1;;;10444:43:0;;9704:2:1;10444:43:0;;;9686:21:1;9743:2;9723:18;;;9716:30;-1:-1:-1;;;9762:18:1;;;9755:50;9822:18;;10444:43:0;9502:344:1;10444:43:0;10516:13;;-1:-1:-1;;;10516:13:0;;;;10513:102;;;-1:-1:-1;;;;;10557:24:0;;;;;;:13;:24;;;;;;;;10549:51;;;;-1:-1:-1;;;10549:51:0;;10053:2:1;10549:51:0;;;10035:21:1;10092:2;10072:18;;;10065:30;-1:-1:-1;;;10111:18:1;;;10104:45;10166:18;;10549:51:0;9851:339:1;10549:51:0;-1:-1:-1;;;;;10658:22:0;;;;;;:14;:22;;;;;;;;10657:23;:53;;;;-1:-1:-1;;;;;;10684:26:0;;10705:4;10684:26;;10657:53;:84;;;;-1:-1:-1;10736:4:0;;-1:-1:-1;;;;;10715:26:0;;;10736:4;;10715:26;;10657:84;:105;;;;-1:-1:-1;10758:4:0;;-1:-1:-1;;;;;10745:17:0;;;10758:4;;10745:17;;10657:105;:137;;;;-1:-1:-1;10779:15:0;;-1:-1:-1;;;;;10766:28:0;;;10779:15;;10766:28;;10657:137;:174;;;;-1:-1:-1;10811:20:0;;-1:-1:-1;;;;;10798:33:0;;;10811:20;;10798:33;;10657:174;:205;;;;-1:-1:-1;;;;;;10836:26:0;;;;;;:15;:26;;;;;;;;10835:27;10657:205;10653:397;;;10878:18;10899:20;10909:9;10899;:20::i;:::-;10967:15;;10878:41;;-1:-1:-1;10943:19:0;10956:6;10878:41;10943:19;:::i;:::-;10942:40;;10934:114;;;;-1:-1:-1;;;10934:114:0;;10527:2:1;10934:114:0;;;10509:21:1;10566:2;10546:18;;;10539:30;10605:34;10585:18;;;10578:62;10676:32;10656:18;;;10649:60;10726:19;;10934:114:0;10325:426:1;10934:114:0;10863:187;10653:397;11115:28;11128:6;11136;11115:12;:28::i;:::-;11160:16;:14;:16::i;:::-;11157:35;;;11179:10;:8;:10::i;:::-;11272:53;;;;;;;;;;;-1:-1:-1;;;11272:53:0;;;;;;;;-1:-1:-1;;;;;11272:17:0;;-1:-1:-1;11272:17:0;;;:9;:17;;;;;;;;:53;;11294:6;;11272:21;:53::i;:::-;-1:-1:-1;;;;;11252:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11364:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11387:22:0;;;;;;:11;:22;;;;;;;;11364:45;11363:93;;11422:34;11430:6;11438;11446:9;11422:7;:34::i;:::-;11363:93;;;11413:6;11363:93;-1:-1:-1;;;;;11490:20:0;;;;;;:9;:20;;;;;;11338:118;;-1:-1:-1;11490:40:0;;11338:118;11490:24;:40::i;:::-;-1:-1:-1;;;;;11467:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11548:43;;;;;;-1:-1:-1;;;;;;;;;;;11548:43:0;;;11576:14;529:25:1;;517:2;502:18;;383:177;11548:43:0;;;;;;;;-1:-1:-1;11609:4:0;;10188:1433;-1:-1:-1;;;;10188:1433:0:o;299:136::-;357:7;384:43;388:1;391;384:43;;;;;;;;;;;;;;;;;:3;:43::i;14988:1873::-;6885:6;:13;;-1:-1:-1;;6885:13:0;6894:4;6885:13;;;15083:15:::1;::::0;15100:26:::1;::::0;6885:6;;15067:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15134:12;;15067:79;;;15130:1;15067:79;15037:109;;15157:23;15183:59;15240:1;15183:52;15226:8;;15183:38;15201:19;15183:13;;:17;;:38;;;;:::i;:59::-;15157:85;;15253:20;15276:34;15294:15;15276:13;;:17;;:34;;;;:::i;:::-;15347:16;::::0;;15361:1:::1;15347:16:::0;;;;;::::1;::::0;;15253:57;;-1:-1:-1;15323:21:0::1;::::0;15347:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15347:16:0::1;15323:40;;15392:4;15374;15379:1;15374:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15374:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15418:4:::1;::::0;15408:7;;15418:4;::::1;::::0;15408;;15418;;15408:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15408:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15493:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15493:188:0;;15459:21:::1;::::0;15493:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15565:12;;15435:21:::1;::::0;15608:4;;15635::::1;::::0;15655:15:::1;::::0;15493:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15694:17;15714:40;15740:13;15714:21;:25;;:40;;;;:::i;:::-;15694:60:::0;-1:-1:-1;15767:19:0::1;15789:40;15802:26;:19:::0;15826:1:::1;15802:23;:26::i;:::-;15789:8;::::0;;:12:::1;:40::i;:::-;15767:62:::0;-1:-1:-1;15850:26:0::1;15879:58;15935:1;15879:51;15767:62:::0;15879:51;:9;15893:19;15879:13:::1;:34::i;:58::-;15850:87;;15948:26;15977:44;16009:11;15977:27;15991:12;;15977:9;:13;;:27;;;;:::i;:44::-;15948:73;;16032:24;16059:42;16089:11;16059:25;16073:10;;16059:9;:13;;:25;;;;:::i;:42::-;16032:69;;16112:20;16135:38;16161:11;16135:21;16149:6;;16135:9;:13;;:21;;;;:::i;:38::-;16215:20;::::0;16207:65:::1;::::0;16112:61;;-1:-1:-1;16187:15:0::1;::::0;-1:-1:-1;;;;;16215:20:0;;::::1;::::0;16249:18;;16187:15;16207:65;16187:15;16207:65;16249:18;16215:20;16207:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16307:14:0::1;::::0;16299:53:::1;::::0;16186:86;;-1:-1:-1;;;;;;16307:14:0::1;::::0;16335:12;;16299:53:::1;::::0;;;16335:12;16307:14;16299:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16387:18:0::1;::::0;16379:61:::1;::::0;16283:69;;-1:-1:-1;;;;;;16387:18:0::1;::::0;16419:16;;16379:61:::1;::::0;;;16419:16;16387:18;16379:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16474:5:0::1;::::0;-1:-1:-1;;16495:19:0;;;-1:-1:-1;16492:362:0::1;;16530:6;::::0;16704:21:::1;::::0;16530:244:::1;::::0;-1:-1:-1;;;16530:244:0;;16606:4:::1;16530:244;::::0;::::1;12424:34:1::0;12474:18;;;12467:34;;;16530:6:0::1;12517:18:1::0;;;12510:34;;;12560:18;;;12553:34;-1:-1:-1;;;;;16704:21:0;;::::1;12603:19:1::0;;;12596:44;16744:15:0::1;12656:19:1::0;;;12649:35;16530:6:0;::::1;::::0;:22:::1;::::0;16560:18;;12358:19:1;;16530:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16794:48:0::1;::::0;;13180:25:1;;;13236:2;13221:18;;13214:34;;;16794:48:0::1;::::0;-1:-1:-1;13153:18:1;16794:48:0::1;;;;;;;16492:362;-1:-1:-1::0;;6903:6:0;:14;;-1:-1:-1;;6903:14:0;;;-1:-1:-1;;;;;;;;;;14988:1873:0:o;112:181::-;170:7;;202:5;206:1;202;:5;:::i;:::-;190:17;;231:1;226;:6;;218:46;;;;-1:-1:-1;;;218:46:0;;13461:2:1;218:46:0;;;13443:21:1;13500:2;13480:18;;;13473:30;-1:-1:-1;;;13519:18:1;;;13512:57;13586:18;;218:46:0;13259:351:1;1033:189:0;1119:7;1154:12;1147:5;1139:28;;;;-1:-1:-1;;;1139:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1178:9:0;1190:5;1194:1;1190;:5;:::i;11633:330::-;11763:53;;;;;;;;;;;-1:-1:-1;;;11763:53:0;;;;;;;;-1:-1:-1;;;;;11763:17:0;;11726:4;11763:17;;;:9;:17;;;;;;;:53;;11785:6;;11763:21;:53::i;:::-;-1:-1:-1;;;;;11743:17:0;;;;;;;:9;:17;;;;;;:73;;;;11850:20;;;;;;;:32;;11875:6;11850:24;:32::i;:::-;-1:-1:-1;;;;;11827:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11898:35;;;;;;-1:-1:-1;;;;;;;;;;;11898:35:0;;;11926:6;529:25:1;;517:2;502:18;;383:177;11898:35:0;;;;;;;;-1:-1:-1;11951:4:0;11633:330;;;;;:::o;11971:166::-;12068:12;;12058:6;:22;;:49;;;-1:-1:-1;;;;;;12084:23:0;;;;;;:15;:23;;;;;;;;12058:49;12050:79;;;;-1:-1:-1;;;12050:79:0;;13817:2:1;12050:79:0;;;13799:21:1;13856:2;13836:18;;;13829:30;-1:-1:-1;;;13875:18:1;;;13868:47;13932:18;;12050:79:0;13615:341:1;12050:79:0;11971:166;;:::o;13261:197::-;13348:4;;13310;;-1:-1:-1;;;;;13348:4:0;13334:10;:18;;;;:38;;-1:-1:-1;13366:6:0;;;;13365:7;13334:38;:62;;;;-1:-1:-1;13385:11:0;;;;13334:62;:116;;;;-1:-1:-1;;13437:13:0;;13427:4;13409:24;;;;:9;:24;;;;;;:41;;;13261:197::o;12267:986::-;12401:15;;12445:4;;12353:7;;12401:15;-1:-1:-1;;;;;12445:4:0;;;12432:17;;;;12429:142;;-1:-1:-1;12476:11:0;;12429:142;;;12518:4;;-1:-1:-1;;;;;12518:4:0;;;12508:14;;;;12505:66;;-1:-1:-1;12549:10:0;;12505:66;12583:17;12603:59;12641:14;;12658:3;12641:20;;;;:::i;:::-;12603:33;12628:7;12603:20;12614:8;;12603:6;:10;;:20;;;;:::i;:59::-;12583:79;;12673:18;12694:36;12721:8;;12694:22;12708:7;;12694:9;:13;;:22;;;;:::i;:36::-;12673:57;-1:-1:-1;12741:22:0;12766:25;:9;12673:57;12766:13;:25::i;:::-;12849:4;12831:24;;;;:9;:24;;;;;;12741:50;;-1:-1:-1;12831:44:0;;12741:50;12831:28;:44::i;:::-;12822:4;12804:24;;;;:9;:24;;;;;;:71;;;;12925:15;;-1:-1:-1;;;;;12925:15:0;12915:26;;;;:42;;12946:10;12915:30;:42::i;:::-;12896:15;;-1:-1:-1;;;;;12896:15:0;;;12886:26;;;;:9;:26;;;;;;;;;:71;;;;12973:47;529:25:1;;;12998:4:0;;12973:47;;;;-1:-1:-1;;;;;;;;;;;12973:47:0;502:18:1;12973:47:0;;;;;;;13054:14;;13051:154;;13099:12;;:28;;13116:10;13099:16;:28::i;:::-;13084:12;:43;13164:4;;13147:34;;529:25:1;;;-1:-1:-1;;;;;13164:4:0;;;;13147:34;;;-1:-1:-1;;;;;;;;;;;13147:34:0;517:2:1;502:18;13147:34:0;;;;;;;13051:154;13224:21;:6;13235:9;13224:10;:21::i;:::-;13217:28;12267:986;-1:-1:-1;;;;;;;;12267:986:0:o;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:241;193:6;246:2;234:9;225:7;221:23;217:32;214:52;;;262:1;259;252:12;214:52;301:9;288:23;320:28;342:5;320:28;:::i;565:548::-;677:4;706:2;735;724:9;717:21;767:6;761:13;810:6;805:2;794:9;790:18;783:34;835:1;845:140;859:6;856:1;853:13;845:140;;;954:14;;;950:23;;944:30;920:17;;;939:2;916:26;909:66;874:10;;845:140;;;849:3;1034:1;1029:2;1020:6;1009:9;1005:22;1001:31;994:42;1104:2;1097;1093:7;1088:2;1080:6;1076:15;1072:29;1061:9;1057:45;1053:54;1045:62;;;;565:548;;;;:::o;1310:173::-;1378:20;;-1:-1:-1;;;;;1427:31:1;;1417:42;;1407:70;;1473:1;1470;1463:12;1407:70;1310:173;;;:::o;1488:254::-;1556:6;1564;1617:2;1605:9;1596:7;1592:23;1588:32;1585:52;;;1633:1;1630;1623:12;1585:52;1656:29;1675:9;1656:29;:::i;:::-;1646:39;1732:2;1717:18;;;;1704:32;;-1:-1:-1;;;1488:254:1:o;1747:186::-;1806:6;1859:2;1847:9;1838:7;1834:23;1830:32;1827:52;;;1875:1;1872;1865:12;1827:52;1898:29;1917:9;1898:29;:::i;1938:248::-;2006:6;2014;2067:2;2055:9;2046:7;2042:23;2038:32;2035:52;;;2083:1;2080;2073:12;2035:52;-1:-1:-1;;2106:23:1;;;2176:2;2161:18;;;2148:32;;-1:-1:-1;1938:248:1:o;2191:316::-;2268:6;2276;2284;2337:2;2325:9;2316:7;2312:23;2308:32;2305:52;;;2353:1;2350;2343:12;2305:52;-1:-1:-1;;2376:23:1;;;2446:2;2431:18;;2418:32;;-1:-1:-1;2497:2:1;2482:18;;;2469:32;;2191:316;-1:-1:-1;2191:316:1:o;2512:328::-;2589:6;2597;2605;2658:2;2646:9;2637:7;2633:23;2629:32;2626:52;;;2674:1;2671;2664:12;2626:52;2697:29;2716:9;2697:29;:::i;:::-;2687:39;;2745:38;2779:2;2768:9;2764:18;2745:38;:::i;:::-;2735:48;;2830:2;2819:9;2815:18;2802:32;2792:42;;2512:328;;;;;:::o;2845:484::-;2940:6;2948;2956;2964;2972;3025:3;3013:9;3004:7;3000:23;2996:33;2993:53;;;3042:1;3039;3032:12;2993:53;3065:29;3084:9;3065:29;:::i;:::-;3055:39;;3113:38;3147:2;3136:9;3132:18;3113:38;:::i;:::-;3103:48;;3170:38;3204:2;3193:9;3189:18;3170:38;:::i;:::-;3160:48;;3227:38;3261:2;3250:9;3246:18;3227:38;:::i;:::-;3217:48;;3284:39;3318:3;3307:9;3303:19;3284:39;:::i;:::-;3274:49;;2845:484;;;;;;;;:::o;3523:750::-;3615:6;3623;3631;3684:2;3672:9;3663:7;3659:23;3655:32;3652:52;;;3700:1;3697;3690:12;3652:52;3727:23;;-1:-1:-1;;;;;3799:14:1;;;3796:34;;;3826:1;3823;3816:12;3796:34;3864:6;3853:9;3849:22;3839:32;;3909:7;3902:4;3898:2;3894:13;3890:27;3880:55;;3931:1;3928;3921:12;3880:55;3971:2;3958:16;3997:2;3989:6;3986:14;3983:34;;;4013:1;4010;4003:12;3983:34;4068:7;4061:4;4051:6;4048:1;4044:14;4040:2;4036:23;4032:34;4029:47;4026:67;;;4089:1;4086;4079:12;4026:67;4120:4;4112:13;;;;-1:-1:-1;4144:6:1;-1:-1:-1;;4185:20:1;;4172:34;4215:28;4172:34;4215:28;:::i;:::-;4262:5;4252:15;;;3523:750;;;;;:::o;4278:315::-;4343:6;4351;4404:2;4392:9;4383:7;4379:23;4375:32;4372:52;;;4420:1;4417;4410:12;4372:52;4443:29;4462:9;4443:29;:::i;:::-;4433:39;;4522:2;4511:9;4507:18;4494:32;4535:28;4557:5;4535:28;:::i;:::-;4582:5;4572:15;;;4278:315;;;;;:::o;4598:180::-;4657:6;4710:2;4698:9;4689:7;4685:23;4681:32;4678:52;;;4726:1;4723;4716:12;4678:52;-1:-1:-1;4749:23:1;;4598:180;-1:-1:-1;4598:180:1:o;4783:203::-;-1:-1:-1;;;;;4947:32:1;;;;4929:51;;4917:2;4902:18;;4783:203::o;4991:523::-;5095:6;5103;5111;5119;5127;5135;5188:3;5176:9;5167:7;5163:23;5159:33;5156:53;;;5205:1;5202;5195:12;5156:53;-1:-1:-1;;5228:23:1;;;5298:2;5283:18;;5270:32;;-1:-1:-1;5349:2:1;5334:18;;5321:32;;5400:2;5385:18;;5372:32;;-1:-1:-1;5451:3:1;5436:19;;5423:33;;-1:-1:-1;5503:3:1;5488:19;5475:33;;-1:-1:-1;4991:523:1;-1:-1:-1;4991:523:1:o;5519:309::-;5584:6;5592;5645:2;5633:9;5624:7;5620:23;5616:32;5613:52;;;5661:1;5658;5651:12;5613:52;5700:9;5687:23;5719:28;5741:5;5719:28;:::i;5833:260::-;5901:6;5909;5962:2;5950:9;5941:7;5937:23;5933:32;5930:52;;;5978:1;5975;5968:12;5930:52;6001:29;6020:9;6001:29;:::i;:::-;5991:39;;6049:38;6083:2;6072:9;6068:18;6049:38;:::i;:::-;6039:48;;5833:260;;;;;:::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:127;6878:10;6873:3;6869:20;6866:1;6859:31;6909:4;6906:1;6899:15;6933:4;6930:1;6923:15;6949:135;6988:3;7009:17;;;7006:43;;7029:18;;:::i;:::-;-1:-1:-1;7076:1:1;7065:13;;6949:135::o;7089:168::-;7162:9;;;7193;;7210:15;;;7204:22;;7190:37;7180:71;;7231:18;;:::i;7262:217::-;7302:1;7328;7318:132;;7372:10;7367:3;7363:20;7360:1;7353:31;7407:4;7404:1;7397:15;7435:4;7432:1;7425:15;7318:132;-1:-1:-1;7464:9:1;;7262:217::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;10195:125::-;10260:9;;;10281:10;;;10278:36;;;10294:18;;:::i;10888:980::-;11150:4;11198:3;11187:9;11183:19;11229:6;11218:9;11211:25;11255:2;11293:6;11288:2;11277:9;11273:18;11266:34;11336:3;11331:2;11320:9;11316:18;11309:31;11360:6;11395;11389:13;11426:6;11418;11411:22;11464:3;11453:9;11449:19;11442:26;;11503:2;11495:6;11491:15;11477:29;;11524:1;11534:195;11548:6;11545:1;11542:13;11534:195;;;11613:13;;-1:-1:-1;;;;;11609:39:1;11597:52;;11704:15;;;;11669:12;;;;11645:1;11563:9;11534:195;;;-1:-1:-1;;;;;;;11785:32:1;;;;11780:2;11765:18;;11758:60;-1:-1:-1;;;11849:3:1;11834:19;11827:35;11746:3;10888:980;-1:-1:-1;;;10888:980:1:o;12695:306::-;12783:6;12791;12799;12852:2;12840:9;12831:7;12827:23;12823:32;12820:52;;;12868:1;12865;12858:12;12820:52;12897:9;12891:16;12881:26;;12947:2;12936:9;12932:18;12926:25;12916:35;;12991:2;12980:9;12976:18;12970:25;12960:35;;12695:306;;;;;:::o

Swarm Source

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