ETH Price: $2,977.15 (-2.43%)
Gas: 4 Gwei

Token

FOMO (FOMO)
 

Overview

Max Total Supply

1,000,000,000,000 FOMO

Holders

255

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,640,744,784.044544859288799528 FOMO

Value
$0.00
0x190252fb88b391b43668bd3d16f761d07d6a2209
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:
FOMO

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-09
*/

// SPDX-License-Identifier: UNLICENSED


pragma solidity ^0.8.14;

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

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

    string constant _name = "FOMO";
    string constant _symbol = "FOMO";
    uint8 constant _decimals = 18; 

    uint256 _totalSupply = 1 * 10**12 * 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;

    bool public blacklistMode = true;
    mapping (address => bool) public isblacklisted;


    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private devFee          = 0;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 2000;
    uint256 buyMultiplier = 2600;
    uint256 transferMultiplier = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 20 / 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 = 0x946E0f217349F53962b1a19A2B0369E29Ccdd3F9;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = 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 setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTx(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    function setTxLimitAbsolute(uint256 amount) external onlyOwner {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    
    }

    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(blacklistMode){
            require(!isblacklisted[sender],"blacklisted");    
        }

        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 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).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){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner { // to marketing
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function manualSwap(uint256 amountPercentage) external onlyOwner {
        uint256 tokensInContract = balanceOf(address(this));
        uint256 tokenstosell = tokensInContract.mul(amountPercentage).div(100);
        _basicTransfer(address(this),msg.sender,tokenstosell);
    
    }

    function removeLimits() external onlyOwner { 
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;

    }

    function manualSend() external onlyOwner { 
        require(isTxLimitExempt[msg.sender]);
        payable(msg.sender).transfer(address(this).balance);

    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isTxLimitExempt[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setPercents(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

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

        
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

    function enable_blacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

   
    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isblacklisted[addresses[i]] = status;
        }
    }
    
    function feeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setBuyTax(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); //antihoneypot
    }

    function setTaxWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setTarget(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":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"feeExempt","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":"isblacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","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":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapandLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTarget","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":"_teamFeeReceiver","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimitAbsolute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a620006e7565b620000439064e8d4a51000620006f8565b6005556200007d6064620000696001600554620004b760201b6200131b1790919060201c565b6200054e60201b6200139d1790919060201c565b600655620000a36064620000696001600554620004b760201b6200131b1790919060201c565b600755600a805460ff19166001908117909155600e8190556002600f8190556000601081905560118190556012819055918291620000e290836200071a565b620000ee91906200071a565b620000fa91906200071a565b6200010691906200071a565b601355606460148181556107d0601555610a286016556017829055601d819055601e919091556021805461ffff60a01b1916600160a81b1790556005546103e891620001539190620006f8565b6200015f919062000735565b6022553480156200016f57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200022f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000255919062000758565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da919062000758565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200032c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000352919062000758565b602180546001600160a01b039283166001600160a01b0319918216811783556020805483169091178155306000818152600983526040808220601f54881683528452808220600019905533808352600c8552818320805460ff199081166001908117909255601a80548b1686528486208054831684179055838652600d8852848620805483168417905598548a168552838520805482168317905588548a1685528385208054821683179055601980548b168652848620805483168417905595855283852080549091169091179055601880548716821790558354861673946e0f217349f53962b1a19a2b0369e29ccdd3f917909355855485168317909555601b8054851683179055600354601c80549095169616959095179092556005548285526008825283852081905592519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007db565b600082600003620004cb5750600062000548565b6000620004d98385620006f8565b905082620004e8858362000735565b14620005455760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059860201b60201c565b60008183620005bc5760405162461bcd60e51b81526004016200053c919062000783565b506000620005cb848662000735565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200062b5781600019048211156200060f576200060f620005d4565b808516156200061d57918102915b93841c9390800290620005ef565b509250929050565b600082620006445750600162000548565b81620006535750600062000548565b81600181146200066c5760028114620006775762000697565b600191505062000548565b60ff8411156200068b576200068b620005d4565b50506001821b62000548565b5060208310610133831016604e8410600b8410161715620006bc575081810a62000548565b620006c88383620005ea565b8060001904821115620006df57620006df620005d4565b029392505050565b60006200054560ff84168362000633565b6000816000190483118215151615620007155762000715620005d4565b500290565b60008219821115620007305762000730620005d4565b500190565b6000826200075357634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076b57600080fd5b81516001600160a01b03811681146200054557600080fd5b600060208083528351808285015260005b81811015620007b25785810183015185820160400152820162000794565b81811115620007c5576000604083870101525b50601f01601f1916929092016040019392505050565b6124fa80620007eb6000396000f3fe6080604052600436106102815760003560e01c80637d1db4a51161014f578063b70143c9116100c1578063ed6a59651161007a578063ed6a59651461078a578063efe8a45e146107ba578063f2fde38b146107da578063f4293890146107fa578063f84ba65d1461080f578063f887ea401461082f57600080fd5b8063b70143c9146106a4578063bc337182146106c4578063be7c81ad146106e4578063d405ae8f14610704578063d51ed1c814610724578063dd62ed3e1461074457600080fd5b80638da5cb5b116101135780638da5cb5b146106065780638e2eee841461062457806395d89b41146102b6578063a8aa1b3114610644578063a9059cbb14610664578063b2bdfa7b1461068457600080fd5b80637d1db4a51461056f57806383f9d9fa14610585578063893d20e8146105a5578063896648c1146105d75780638a8c523c146105f157600080fd5b80632b112e49116101f35780636ddd1713116101ac5780636ddd1713146104b857806370a08231146104d9578063715018a61461050f578063751039fc1461052457806377b54bad1461053957806378109e541461055957600080fd5b80632b112e4914610407578063313ce5671461041c5780634363c48614610438578063571ac8b0146104585780635d0044ca146104785780635e562f3b1461049857600080fd5b80631161ae39116102455780631161ae391461035c57806318160ddd1461037c5780631d0f2c99146103915780631da1db5e146103b15780631df4ccfc146103d157806323b872dd146103e757600080fd5b80630445b6671461028d57806306fdde03146102b657806308fd3d05146102e9578063095ea7b31461031a578063100882dc1461033a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a360225481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506040805180820182526004815263464f4d4f60e01b602082015290516102ad9190611fab565b3480156102f557600080fd5b5060215461030a90600160a01b900460ff1681565b60405190151581526020016102ad565b34801561032657600080fd5b5061030a61033536600461201c565b61084f565b34801561034657600080fd5b5061035a610355366004612046565b6108bc565b005b34801561036857600080fd5b5061030a610377366004612089565b61098b565b34801561038857600080fd5b506005546102a3565b34801561039d57600080fd5b5061035a6103ac366004612089565b61099f565b3480156103bd57600080fd5b5061035a6103cc3660046120ab565b6109d4565b3480156103dd57600080fd5b506102a360135481565b3480156103f357600080fd5b5061030a6104023660046120c4565b610a52565b34801561041357600080fd5b506102a3610b14565b34801561042857600080fd5b50604051601281526020016102ad565b34801561044457600080fd5b5061035a61045336600461210e565b610b66565b34801561046457600080fd5b5061030a610473366004612145565b610bbb565b34801561048457600080fd5b5061035a6104933660046120ab565b610bc9565b3480156104a457600080fd5b5061035a6104b3366004612160565b610c32565b3480156104c457600080fd5b5060215461030a90600160a81b900460ff1681565b3480156104e557600080fd5b506102a36104f4366004612145565b6001600160a01b031660009081526008602052604090205490565b34801561051b57600080fd5b5061035a610c6f565b34801561053057600080fd5b5061035a610ce3565b34801561054557600080fd5b5061030a61055436600461201c565b610d1a565b34801561056557600080fd5b506102a360075481565b34801561057b57600080fd5b506102a360065481565b34801561059157600080fd5b5061035a6105a03660046120ab565b610e1a565b3480156105b157600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ad565b3480156105e357600080fd5b50600a5461030a9060ff1681565b3480156105fd57600080fd5b5061035a610e65565b34801561061257600080fd5b506000546001600160a01b03166105bf565b34801561063057600080fd5b5061035a61063f36600461217d565b610ea4565b34801561065057600080fd5b506021546105bf906001600160a01b031681565b34801561067057600080fd5b5061030a61067f36600461201c565b610f43565b34801561069057600080fd5b506000546105bf906001600160a01b031681565b3480156106b057600080fd5b5061035a6106bf3660046120ab565b610f50565b3480156106d057600080fd5b5061035a6106df3660046120ab565b610fad565b3480156106f057600080fd5b5061035a6106ff366004612203565b611016565b34801561071057600080fd5b5061035a61071f366004612268565b61109f565b34801561073057600080fd5b506102a361073f3660046120ab565b6110eb565b34801561075057600080fd5b506102a361075f366004612286565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561079657600080fd5b5061030a6107a5366004612145565b600b6020526000908152604090205460ff1681565b3480156107c657600080fd5b5061035a6107d53660046122b9565b61112c565b3480156107e657600080fd5b5061035a6107f5366004612145565b611167565b34801561080657600080fd5b5061035a611251565b34801561081b57600080fd5b5061035a61082a36600461210e565b6112c6565b34801561083b57600080fd5b50601f546105bf906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108aa9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108ef5760405162461bcd60e51b81526004016108e6906122e5565b60405180910390fd5b600e8690556011859055600f849055601083905560128290556109208261091a858188818c8c6113df565b906113df565b6013556014819055610933600282612330565b601354106109835760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016108e6565b505050505050565b600082610997836110eb565b119392505050565b6000546001600160a01b031633146109c95760405162461bcd60e51b81526004016108e6906122e5565b601d91909155601e55565b6000546001600160a01b031633146109fe5760405162461bcd60e51b81526004016108e6906122e5565b60195447906001600160a01b03166108fc6064610a1b8585612352565b610a259190612330565b6040518115909202916000818181858888f19350505050158015610a4d573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610aff576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ada91849061143e565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b0a848484611478565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610b61906003546001600160a01b0316600090815260086020526040902054610b5b9060055490611840565b90611840565b905090565b6000546001600160a01b03163314610b905760405162461bcd60e51b81526004016108e6906122e5565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006108b68260001961084f565b6000546001600160a01b03163314610bf35760405162461bcd60e51b81526004016108e6906122e5565b6103e8600554610c039190612330565b6007541015610c1157600080fd5b6103e881600554610c229190612352565b610c2c9190612330565b60075550565b6000546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016108e6906122e5565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610c995760405162461bcd60e51b81526004016108e6906122e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016108e6906122e5565b6005546007819055600655565b336000908152600d602052604081205460ff16610d3657600080fd5b81600003610da9576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da69190612371565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d919061238a565b6000546001600160a01b03163314610e445760405162461bcd60e51b81526004016108e6906122e5565b6103e8600554610e549190612330565b811015610e6057600080fd5b600655565b6000546001600160a01b03163314610e8f5760405162461bcd60e51b81526004016108e6906122e5565b6021805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610ece5760405162461bcd60e51b81526004016108e6906122e5565b60005b82811015610f3d5781600b6000868685818110610ef057610ef06123a7565b9050602002016020810190610f059190612145565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f36816123bd565b9050610ed1565b50505050565b6000610b0d338484611478565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016108e6906122e5565b3060009081526008602052604081205490610fa06064610f9a848661131b565b9061139d565b9050610f3d303383611882565b6000546001600160a01b03163314610fd75760405162461bcd60e51b81526004016108e6906122e5565b6103e8600554610fe79190612330565b6006541015610ff557600080fd5b6103e8816005546110069190612352565b6110109190612330565b60065550565b6000546001600160a01b031633146110405760405162461bcd60e51b81526004016108e6906122e5565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b031633146110c95760405162461bcd60e51b81526004016108e6906122e5565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b60006108b66110f8610b14565b6021546001600160a01b0316600090815260086020526040902054610f9a90611125906002905b9061131b565b859061131b565b6000546001600160a01b031633146111565760405162461bcd60e51b81526004016108e6906122e5565b601591909155601691909155601755565b6000546001600160a01b031633146111915760405162461bcd60e51b81526004016108e6906122e5565b6001600160a01b0381166111f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461127b5760405162461bcd60e51b81526004016108e6906122e5565b336000908152600d602052604090205460ff1661129757600080fd5b60405133904780156108fc02916000818181858888f193505050501580156112c3573d6000803e3d6000fd5b50565b6000546001600160a01b031633146112f05760405162461bcd60e51b81526004016108e6906122e5565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b60008260000361132d575060006108b6565b60006113398385612352565b9050826113468583612330565b14610b0d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108e6565b6000610b0d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611956565b6000806113ec83856123d6565b905083811015610b0d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108e6565b600081848411156114625760405162461bcd60e51b81526004016108e69190611fab565b50600061146f84866123ee565b95945050505050565b60235460009060ff161561149857611491848484611882565b9050610b0d565b6001600160a01b03841660009081526001602052604090205460ff161580156114da57506001600160a01b03831660009081526001602052604090205460ff16155b1561152f57602154600160a01b900460ff1661152f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108e6565b600a5460ff1615611591576001600160a01b0384166000908152600b602052604090205460ff16156115915760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016108e6565b6001600160a01b03841660009081526001602052604090205460ff161580156115c357506001600160a01b0383163014155b80156115dd57506003546001600160a01b03848116911614155b80156115f757506021546001600160a01b03848116911614155b80156116115750601c546001600160a01b03848116911614155b801561162b57506019546001600160a01b03848116911614155b801561165057506001600160a01b0383166000908152600d602052604090205460ff16155b156116f1576001600160a01b03831660009081526008602052604090205460075461167b84836123d6565b11156116ef5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108e6565b505b6116fb8483611984565b6117036119f1565b1561171057611710611a47565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461176291849061143e565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806117af57506001600160a01b0384166000908152600c602052604090205460ff165b6117c3576117be858486611e2e565b6117c5565b825b6001600160a01b0385166000908152600860205260409020549091506117eb90826113df565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206124a58339815191529061182d9085815260200190565b60405180910390a3506001949350505050565b6000610b0d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546118d391849061143e565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461190290836113df565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206124a5833981519152906119449086815260200190565b60405180910390a35060019392505050565b600081836119775760405162461bcd60e51b81526004016108e69190611fab565b50600061146f8486612330565b600654811115806119ad57506001600160a01b0382166000908152600d602052604090205460ff165b6119ed5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108e6565b5050565b6021546000906001600160a01b03163314801590611a12575060235460ff16155b8015611a275750602154600160a81b900460ff165b8015610b6157505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e54600091611a669161098b565b611a7257600e54611a75565b60005b90506000611a996002610f9a601354610f9a8660225461131b90919063ffffffff16565b90506000611ab28260225461184090919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aec57611aec6123a7565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b1d57611b1d6123a7565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac94790611b67908690600090879030904290600401612405565b600060405180830381600087803b158015611b8157600080fd5b505af1158015611b95573d6000803e3d6000fd5b505050506000611bae824761184090919063ffffffff16565b90506000611bc9611bc088600261139d565b60135490611840565b90506000611bde6002610f9a8481878d61131b565b90506000611bfb83610f9a600f548761131b90919063ffffffff16565b90506000611c1884610f9a6011548861131b90919063ffffffff16565b90506000611c3585610f9a6010548961131b90919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611c87576040519150601f19603f3d011682016040523d82523d6000602084013e611c8c565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611cdc576040519150601f19603f3d011682016040523d82523d6000602084013e611ce1565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611d31576040519150601f19603f3d011682016040523d82523d6000602084013e611d36565b606091505b5060009250508b159050611e1657601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611db4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dd99190612476565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b601754602154600091906001600160a01b0390811690841603611e545750601554611e6f565b6021546001600160a01b0390811690861603611e6f57506016545b6000611e9c6014546064611e839190612352565b610f9a8461111f6013548a61131b90919063ffffffff16565b90506000611ebb601354610f9a6012548561131b90919063ffffffff16565b90506000611ec98383611840565b30600090815260086020526040902054909150611ee690826113df565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611f1490836113df565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206124a5833981519152910160405180910390a38115611f9557601c546040518381526001600160a01b03918216918a16906000805160206124a58339815191529060200160405180910390a35b611f9f8784611840565b98975050505050505050565b600060208083528351808285015260005b81811015611fd857858101830151858201604001528201611fbc565b81811115611fea576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461201757600080fd5b919050565b6000806040838503121561202f57600080fd5b61203883612000565b946020939093013593505050565b60008060008060008060c0878903121561205f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561209c57600080fd5b50508035926020909101359150565b6000602082840312156120bd57600080fd5b5035919050565b6000806000606084860312156120d957600080fd5b6120e284612000565b92506120f060208501612000565b9150604084013590509250925092565b80151581146112c357600080fd5b6000806040838503121561212157600080fd5b61212a83612000565b9150602083013561213a81612100565b809150509250929050565b60006020828403121561215757600080fd5b610b0d82612000565b60006020828403121561217257600080fd5b8135610b0d81612100565b60008060006040848603121561219257600080fd5b833567ffffffffffffffff808211156121aa57600080fd5b818601915086601f8301126121be57600080fd5b8135818111156121cd57600080fd5b8760208260051b85010111156121e257600080fd5b602092830195509350508401356121f881612100565b809150509250925092565b600080600080600060a0868803121561221b57600080fd5b61222486612000565b945061223260208701612000565b935061224060408701612000565b925061224e60608701612000565b915061225c60808701612000565b90509295509295909350565b6000806040838503121561227b57600080fd5b823561203881612100565b6000806040838503121561229957600080fd5b6122a283612000565b91506122b060208401612000565b90509250929050565b6000806000606084860312156122ce57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261234d57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561236c5761236c61231a565b500290565b60006020828403121561238357600080fd5b5051919050565b60006020828403121561239c57600080fd5b8151610b0d81612100565b634e487b7160e01b600052603260045260246000fd5b6000600182016123cf576123cf61231a565b5060010190565b600082198211156123e9576123e961231a565b500190565b6000828210156124005761240061231a565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124555784516001600160a01b031683529383019391830191600101612430565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561248b57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220924722b3603ab20fd73c25d6e7e8d937969f1ec34e98a61eb6ebe62657ac47c864736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c80637d1db4a51161014f578063b70143c9116100c1578063ed6a59651161007a578063ed6a59651461078a578063efe8a45e146107ba578063f2fde38b146107da578063f4293890146107fa578063f84ba65d1461080f578063f887ea401461082f57600080fd5b8063b70143c9146106a4578063bc337182146106c4578063be7c81ad146106e4578063d405ae8f14610704578063d51ed1c814610724578063dd62ed3e1461074457600080fd5b80638da5cb5b116101135780638da5cb5b146106065780638e2eee841461062457806395d89b41146102b6578063a8aa1b3114610644578063a9059cbb14610664578063b2bdfa7b1461068457600080fd5b80637d1db4a51461056f57806383f9d9fa14610585578063893d20e8146105a5578063896648c1146105d75780638a8c523c146105f157600080fd5b80632b112e49116101f35780636ddd1713116101ac5780636ddd1713146104b857806370a08231146104d9578063715018a61461050f578063751039fc1461052457806377b54bad1461053957806378109e541461055957600080fd5b80632b112e4914610407578063313ce5671461041c5780634363c48614610438578063571ac8b0146104585780635d0044ca146104785780635e562f3b1461049857600080fd5b80631161ae39116102455780631161ae391461035c57806318160ddd1461037c5780631d0f2c99146103915780631da1db5e146103b15780631df4ccfc146103d157806323b872dd146103e757600080fd5b80630445b6671461028d57806306fdde03146102b657806308fd3d05146102e9578063095ea7b31461031a578063100882dc1461033a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a360225481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506040805180820182526004815263464f4d4f60e01b602082015290516102ad9190611fab565b3480156102f557600080fd5b5060215461030a90600160a01b900460ff1681565b60405190151581526020016102ad565b34801561032657600080fd5b5061030a61033536600461201c565b61084f565b34801561034657600080fd5b5061035a610355366004612046565b6108bc565b005b34801561036857600080fd5b5061030a610377366004612089565b61098b565b34801561038857600080fd5b506005546102a3565b34801561039d57600080fd5b5061035a6103ac366004612089565b61099f565b3480156103bd57600080fd5b5061035a6103cc3660046120ab565b6109d4565b3480156103dd57600080fd5b506102a360135481565b3480156103f357600080fd5b5061030a6104023660046120c4565b610a52565b34801561041357600080fd5b506102a3610b14565b34801561042857600080fd5b50604051601281526020016102ad565b34801561044457600080fd5b5061035a61045336600461210e565b610b66565b34801561046457600080fd5b5061030a610473366004612145565b610bbb565b34801561048457600080fd5b5061035a6104933660046120ab565b610bc9565b3480156104a457600080fd5b5061035a6104b3366004612160565b610c32565b3480156104c457600080fd5b5060215461030a90600160a81b900460ff1681565b3480156104e557600080fd5b506102a36104f4366004612145565b6001600160a01b031660009081526008602052604090205490565b34801561051b57600080fd5b5061035a610c6f565b34801561053057600080fd5b5061035a610ce3565b34801561054557600080fd5b5061030a61055436600461201c565b610d1a565b34801561056557600080fd5b506102a360075481565b34801561057b57600080fd5b506102a360065481565b34801561059157600080fd5b5061035a6105a03660046120ab565b610e1a565b3480156105b157600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ad565b3480156105e357600080fd5b50600a5461030a9060ff1681565b3480156105fd57600080fd5b5061035a610e65565b34801561061257600080fd5b506000546001600160a01b03166105bf565b34801561063057600080fd5b5061035a61063f36600461217d565b610ea4565b34801561065057600080fd5b506021546105bf906001600160a01b031681565b34801561067057600080fd5b5061030a61067f36600461201c565b610f43565b34801561069057600080fd5b506000546105bf906001600160a01b031681565b3480156106b057600080fd5b5061035a6106bf3660046120ab565b610f50565b3480156106d057600080fd5b5061035a6106df3660046120ab565b610fad565b3480156106f057600080fd5b5061035a6106ff366004612203565b611016565b34801561071057600080fd5b5061035a61071f366004612268565b61109f565b34801561073057600080fd5b506102a361073f3660046120ab565b6110eb565b34801561075057600080fd5b506102a361075f366004612286565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561079657600080fd5b5061030a6107a5366004612145565b600b6020526000908152604090205460ff1681565b3480156107c657600080fd5b5061035a6107d53660046122b9565b61112c565b3480156107e657600080fd5b5061035a6107f5366004612145565b611167565b34801561080657600080fd5b5061035a611251565b34801561081b57600080fd5b5061035a61082a36600461210e565b6112c6565b34801561083b57600080fd5b50601f546105bf906001600160a01b031681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108aa9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108ef5760405162461bcd60e51b81526004016108e6906122e5565b60405180910390fd5b600e8690556011859055600f849055601083905560128290556109208261091a858188818c8c6113df565b906113df565b6013556014819055610933600282612330565b601354106109835760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016108e6565b505050505050565b600082610997836110eb565b119392505050565b6000546001600160a01b031633146109c95760405162461bcd60e51b81526004016108e6906122e5565b601d91909155601e55565b6000546001600160a01b031633146109fe5760405162461bcd60e51b81526004016108e6906122e5565b60195447906001600160a01b03166108fc6064610a1b8585612352565b610a259190612330565b6040518115909202916000818181858888f19350505050158015610a4d573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610aff576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ada91849061143e565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b0a848484611478565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610b61906003546001600160a01b0316600090815260086020526040902054610b5b9060055490611840565b90611840565b905090565b6000546001600160a01b03163314610b905760405162461bcd60e51b81526004016108e6906122e5565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006108b68260001961084f565b6000546001600160a01b03163314610bf35760405162461bcd60e51b81526004016108e6906122e5565b6103e8600554610c039190612330565b6007541015610c1157600080fd5b6103e881600554610c229190612352565b610c2c9190612330565b60075550565b6000546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016108e6906122e5565b600a805460ff1916911515919091179055565b6000546001600160a01b03163314610c995760405162461bcd60e51b81526004016108e6906122e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016108e6906122e5565b6005546007819055600655565b336000908152600d602052604081205460ff16610d3657600080fd5b81600003610da9576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da69190612371565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0d919061238a565b6000546001600160a01b03163314610e445760405162461bcd60e51b81526004016108e6906122e5565b6103e8600554610e549190612330565b811015610e6057600080fd5b600655565b6000546001600160a01b03163314610e8f5760405162461bcd60e51b81526004016108e6906122e5565b6021805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610ece5760405162461bcd60e51b81526004016108e6906122e5565b60005b82811015610f3d5781600b6000868685818110610ef057610ef06123a7565b9050602002016020810190610f059190612145565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610f36816123bd565b9050610ed1565b50505050565b6000610b0d338484611478565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016108e6906122e5565b3060009081526008602052604081205490610fa06064610f9a848661131b565b9061139d565b9050610f3d303383611882565b6000546001600160a01b03163314610fd75760405162461bcd60e51b81526004016108e6906122e5565b6103e8600554610fe79190612330565b6006541015610ff557600080fd5b6103e8816005546110069190612352565b6110109190612330565b60065550565b6000546001600160a01b031633146110405760405162461bcd60e51b81526004016108e6906122e5565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b6000546001600160a01b031633146110c95760405162461bcd60e51b81526004016108e6906122e5565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b60006108b66110f8610b14565b6021546001600160a01b0316600090815260086020526040902054610f9a90611125906002905b9061131b565b859061131b565b6000546001600160a01b031633146111565760405162461bcd60e51b81526004016108e6906122e5565b601591909155601691909155601755565b6000546001600160a01b031633146111915760405162461bcd60e51b81526004016108e6906122e5565b6001600160a01b0381166111f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461127b5760405162461bcd60e51b81526004016108e6906122e5565b336000908152600d602052604090205460ff1661129757600080fd5b60405133904780156108fc02916000818181858888f193505050501580156112c3573d6000803e3d6000fd5b50565b6000546001600160a01b031633146112f05760405162461bcd60e51b81526004016108e6906122e5565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b60008260000361132d575060006108b6565b60006113398385612352565b9050826113468583612330565b14610b0d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108e6565b6000610b0d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611956565b6000806113ec83856123d6565b905083811015610b0d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108e6565b600081848411156114625760405162461bcd60e51b81526004016108e69190611fab565b50600061146f84866123ee565b95945050505050565b60235460009060ff161561149857611491848484611882565b9050610b0d565b6001600160a01b03841660009081526001602052604090205460ff161580156114da57506001600160a01b03831660009081526001602052604090205460ff16155b1561152f57602154600160a01b900460ff1661152f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108e6565b600a5460ff1615611591576001600160a01b0384166000908152600b602052604090205460ff16156115915760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016108e6565b6001600160a01b03841660009081526001602052604090205460ff161580156115c357506001600160a01b0383163014155b80156115dd57506003546001600160a01b03848116911614155b80156115f757506021546001600160a01b03848116911614155b80156116115750601c546001600160a01b03848116911614155b801561162b57506019546001600160a01b03848116911614155b801561165057506001600160a01b0383166000908152600d602052604090205460ff16155b156116f1576001600160a01b03831660009081526008602052604090205460075461167b84836123d6565b11156116ef5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108e6565b505b6116fb8483611984565b6117036119f1565b1561171057611710611a47565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461176291849061143e565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16806117af57506001600160a01b0384166000908152600c602052604090205460ff165b6117c3576117be858486611e2e565b6117c5565b825b6001600160a01b0385166000908152600860205260409020549091506117eb90826113df565b6001600160a01b0380861660008181526008602052604090819020939093559151908716906000805160206124a58339815191529061182d9085815260200190565b60405180910390a3506001949350505050565b6000610b0d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546118d391849061143e565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461190290836113df565b6001600160a01b0380851660008181526008602052604090819020939093559151908616906000805160206124a5833981519152906119449086815260200190565b60405180910390a35060019392505050565b600081836119775760405162461bcd60e51b81526004016108e69190611fab565b50600061146f8486612330565b600654811115806119ad57506001600160a01b0382166000908152600d602052604090205460ff165b6119ed5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108e6565b5050565b6021546000906001600160a01b03163314801590611a12575060235460ff16155b8015611a275750602154600160a81b900460ff165b8015610b6157505060225430600090815260086020526040902054101590565b6023805460ff19166001179055601d54601e54600091611a669161098b565b611a7257600e54611a75565b60005b90506000611a996002610f9a601354610f9a8660225461131b90919063ffffffff16565b90506000611ab28260225461184090919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aec57611aec6123a7565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611b1d57611b1d6123a7565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac94790611b67908690600090879030904290600401612405565b600060405180830381600087803b158015611b8157600080fd5b505af1158015611b95573d6000803e3d6000fd5b505050506000611bae824761184090919063ffffffff16565b90506000611bc9611bc088600261139d565b60135490611840565b90506000611bde6002610f9a8481878d61131b565b90506000611bfb83610f9a600f548761131b90919063ffffffff16565b90506000611c1884610f9a6011548861131b90919063ffffffff16565b90506000611c3585610f9a6010548961131b90919063ffffffff16565b6019546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611c87576040519150601f19603f3d011682016040523d82523d6000602084013e611c8c565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611cdc576040519150601f19603f3d011682016040523d82523d6000602084013e611ce1565b606091505b5050601b546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611d31576040519150601f19603f3d011682016040523d82523d6000602084013e611d36565b606091505b5060009250508b159050611e1657601f5460185460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611db4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dd99190612476565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b601754602154600091906001600160a01b0390811690841603611e545750601554611e6f565b6021546001600160a01b0390811690861603611e6f57506016545b6000611e9c6014546064611e839190612352565b610f9a8461111f6013548a61131b90919063ffffffff16565b90506000611ebb601354610f9a6012548561131b90919063ffffffff16565b90506000611ec98383611840565b30600090815260086020526040902054909150611ee690826113df565b3060009081526008602052604080822092909255601c546001600160a01b031681522054611f1490836113df565b601c546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b16916000805160206124a5833981519152910160405180910390a38115611f9557601c546040518381526001600160a01b03918216918a16906000805160206124a58339815191529060200160405180910390a35b611f9f8784611840565b98975050505050505050565b600060208083528351808285015260005b81811015611fd857858101830151858201604001528201611fbc565b81811115611fea576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461201757600080fd5b919050565b6000806040838503121561202f57600080fd5b61203883612000565b946020939093013593505050565b60008060008060008060c0878903121561205f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561209c57600080fd5b50508035926020909101359150565b6000602082840312156120bd57600080fd5b5035919050565b6000806000606084860312156120d957600080fd5b6120e284612000565b92506120f060208501612000565b9150604084013590509250925092565b80151581146112c357600080fd5b6000806040838503121561212157600080fd5b61212a83612000565b9150602083013561213a81612100565b809150509250929050565b60006020828403121561215757600080fd5b610b0d82612000565b60006020828403121561217257600080fd5b8135610b0d81612100565b60008060006040848603121561219257600080fd5b833567ffffffffffffffff808211156121aa57600080fd5b818601915086601f8301126121be57600080fd5b8135818111156121cd57600080fd5b8760208260051b85010111156121e257600080fd5b602092830195509350508401356121f881612100565b809150509250925092565b600080600080600060a0868803121561221b57600080fd5b61222486612000565b945061223260208701612000565b935061224060408701612000565b925061224e60608701612000565b915061225c60808701612000565b90509295509295909350565b6000806040838503121561227b57600080fd5b823561203881612100565b6000806040838503121561229957600080fd5b6122a283612000565b91506122b060208401612000565b90509250929050565b6000806000606084860312156122ce57600080fd5b505081359360208301359350604090920135919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261234d57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561236c5761236c61231a565b500290565b60006020828403121561238357600080fd5b5051919050565b60006020828403121561239c57600080fd5b8151610b0d81612100565b634e487b7160e01b600052603260045260246000fd5b6000600182016123cf576123cf61231a565b5060010190565b600082198211156123e9576123e961231a565b500190565b6000828210156124005761240061231a565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124555784516001600160a01b031683529383019391830191600101612430565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561248b57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220924722b3603ab20fd73c25d6e7e8d937969f1ec34e98a61eb6ebe62657ac47c864736f6c634300080e0033

Deployed Bytecode Sourcemap

4981:14307:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6758:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6758:55:0;;;;;;;;8249:80;;;;;;;;;;-1:-1:-1;8321:5:0;;;;;;;;;;;-1:-1:-1;;;8321:5:0;;;;8249:80;;;;8321:5;8249:80;:::i;6677:31::-;;;;;;;;;;-1:-1:-1;6677:31:0;;;;-1:-1:-1;;;6677:31:0;;;;;;;;;963:14:1;;956:22;938:41;;926:2;911:18;6677:31:0;798:187:1;8671:216:0;;;;;;;;;;-1:-1:-1;8671:216:0;;;;;:::i;:::-;;:::i;17377:565::-;;;;;;;;;;-1:-1:-1;17377:565:0;;;;;:::i;:::-;;:::i;:::-;;19064:150;;;;;;;;;;-1:-1:-1;19064:150:0;;;;;:::i;:::-;;:::i;7979:88::-;;;;;;;;;;-1:-1:-1;8052:12:0;;7979:88;;18554:173;;;;;;;;;;-1:-1:-1;18554:173:0;;;;;:::i;:::-;;:::i;13439:233::-;;;;;;;;;;-1:-1:-1;13439:233:0;;;;;:::i;:::-;;:::i;6034:89::-;;;;;;;;;;;;;;;;9189:370;;;;;;;;;;-1:-1:-1;9189:370:0;;;;;:::i;:::-;;:::i;18739:142::-;;;;;;;;;;;;;:::i;8073:80::-;;;;;;;;;;-1:-1:-1;8073:80:0;;5313:2;2868:36:1;;2856:2;2841:18;8073:80:0;2726:184:1;17120:114:0;;;;;;;;;;-1:-1:-1;17120:114:0;;;;;:::i;:::-;;:::i;8895:122::-;;;;;;;;;;-1:-1:-1;8895:122:0;;;;;:::i;:::-;;:::i;9571:237::-;;;;;;;;;;-1:-1:-1;9571:237:0;;;;;:::i;:::-;;:::i;16786:99::-;;;;;;;;;;-1:-1:-1;16786:99:0;;;;;:::i;:::-;;:::i;6721:30::-;;;;;;;;;;-1:-1:-1;6721:30:0;;;;-1:-1:-1;;;6721:30:0;;;;;;8419:105;;;;;;;;;;-1:-1:-1;8419:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8503:18:0;8485:7;8503:18;;;:9;:18;;;;;;;8419:105;3038:148;;;;;;;;;;;;;:::i;13975:133::-;;;;;;;;;;;;;:::i;14285:308::-;;;;;;;;;;-1:-1:-1;14285:308:0;;;;;:::i;:::-;;:::i;5448:61::-;;;;;;;;;;;;;;;;5383:58;;;;;;;;;;;;;;;;10043:158;;;;;;;;;;-1:-1:-1;10043:158:0;;;;;:::i;:::-;;:::i;8335:78::-;;;;;;;;;;-1:-1:-1;8387:7:0;2889:6;-1:-1:-1;;;;;2889:6:0;8335:78;;;-1:-1:-1;;;;;3959:32:1;;;3941:51;;3929:2;3914:18;8335:78:0;3795:203:1;5633:32:0;;;;;;;;;;-1:-1:-1;5633:32:0;;;;;;;;14820:79;;;;;;;;;;;;;:::i;2824:::-;;;;;;;;;;-1:-1:-1;2862:7:0;2889:6;-1:-1:-1;;;;;2889:6:0;2824:79;;16898:210;;;;;;;;;;-1:-1:-1;16898:210:0;;;;;:::i;:::-;;:::i;6645:19::-;;;;;;;;;;-1:-1:-1;6645:19:0;;;;-1:-1:-1;;;;;6645:19:0;;;9025:156;;;;;;;;;;-1:-1:-1;9025:156:0;;;;;:::i;:::-;;:::i;2444:21::-;;;;;;;;;;-1:-1:-1;2444:21:0;;;;-1:-1:-1;;;;;2444:21:0;;;13681:286;;;;;;;;;;-1:-1:-1;13681:286:0;;;;;:::i;:::-;;:::i;9816:219::-;;;;;;;;;;-1:-1:-1;9816:219:0;;;;;:::i;:::-;;:::i;17950:435::-;;;;;;;;;;-1:-1:-1;17950:435:0;;;;;:::i;:::-;;:::i;18393:153::-;;;;;;;;;;-1:-1:-1;18393:153:0;;;;;:::i;:::-;;:::i;18889:167::-;;;;;;;;;;-1:-1:-1;18889:167:0;;;;;:::i;:::-;;:::i;8530:133::-;;;;;;;;;;-1:-1:-1;8530:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8632:19:0;;;8614:7;8632:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8530:133;5672:46;;;;;;;;;;-1:-1:-1;5672:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14601:211;;;;;;;;;;-1:-1:-1;14601:211:0;;;;;:::i;:::-;;:::i;3194:244::-;;;;;;;;;;-1:-1:-1;3194:244:0;;;;;:::i;:::-;;:::i;14116:161::-;;;;;;;;;;;;;:::i;17242:127::-;;;;;;;;;;-1:-1:-1;17242:127:0;;;;;:::i;:::-;;:::i;6575:24::-;;;;;;;;;;-1:-1:-1;6575:24:0;;;;-1:-1:-1;;;;;6575:24:0;;;8671:216;8775:10;8746:4;8763:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8763:32:0;;;;;;;;;;:41;;;8820:37;8746:4;;8763:32;;8820:37;;;;8798:6;160:25:1;;148:2;133:18;;14:177;8820:37:0;;;;;;;;-1:-1:-1;8875:4:0;8671:216;;;;;:::o;17377:565::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;;;;;;;;;17550:12:::1;:28:::0;;;17589:7:::1;:18:::0;;;17618:12:::1;:28:::0;;;17657:6:::1;:16:::0;;;17684:7:::1;:18:::0;;;17724:73:::1;17694:8:::0;17724:59:::1;17666:7:::0;17724:59;17633:13;17724:59;17565:13;17599:8;17724:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17713:8;:84:::0;17808:14:::1;:32:::0;;;17870:16:::1;17885:1;17825:15:::0;17870:16:::1;:::i;:::-;17859:8;;:27;17851:68;;;::::0;-1:-1:-1;;;17851:68:0;;7290:2:1;17851:68:0::1;::::0;::::1;7272:21:1::0;7329:2;7309:18;;;7302:30;7368;7348:18;;;7341:58;7416:18;;17851:68:0::1;7088:352:1::0;17851:68:0::1;17377:565:::0;;;;;;:::o;19064:150::-;19144:4;19200:6;19168:29;19188:8;19168:19;:29::i;:::-;:38;;19064:150;-1:-1:-1;;;19064:150:0:o;18554:173::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;18642:15:::1;:25:::0;;;;18678:26:::1;:41:::0;18554:173::o;13439:233::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;13598:20:::1;::::0;13558:21:::1;::::0;-1:-1:-1;;;;;13598:20:0::1;13590:74;13660:3;13629:28;13641:16:::0;13558:21;13629:28:::1;:::i;:::-;:34;;;;:::i;:::-;13590:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13511:161;13439:233:::0;:::o;9189:370::-;-1:-1:-1;;;;;9309:19:0;;9289:4;9309:19;;;:11;:19;;;;;;;;9329:10;9309:31;;;;;;;;-1:-1:-1;;9309:52:0;9306:186;;9411:69;;;;;;;;;;;-1:-1:-1;;;9411:69:0;;;;;;;;-1:-1:-1;;;;;9411:19:0;;-1:-1:-1;9411:19:0;;;:11;:19;;;;;9431:10;9411:31;;;;;;;;;;:69;;9447:6;;9411:35;:69::i;:::-;-1:-1:-1;;;;;9377:19:0;;;;;;:11;:19;;;;;;;;9397:10;9377:31;;;;;;;:103;9306:186;9511:40;9525:6;9533:9;9544:6;9511:13;:40::i;:::-;9504:47;;9189:370;;;;;;:::o;18739:142::-;18867:4;;-1:-1:-1;;;;;18867:4:0;18792:7;8503:18;;;:9;:18;;;;;;18819:54;;18846:4;;-1:-1:-1;;;;;18846:4:0;8485:7;8503:18;;;:9;:18;;;;;;18819:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18812:61;;18739:142;:::o;17120:114::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17198:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17198:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17120:114::o;8895:122::-;8950:4;8974:35;8982:7;-1:-1:-1;;8974:7:0;:35::i;9571:237::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;9690:4:::1;9675:12;;:19;;;;:::i;:::-;9656:15;;:38;;9648:47;;;::::0;::::1;;9778:4;9759:14;9744:12;;:29;;;;:::i;:::-;9743:39;;;;:::i;:::-;9725:15;:57:::0;-1:-1:-1;9571:237:0:o;16786:99::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;16854:13:::1;:23:::0;;-1:-1:-1;;16854:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16786:99::o;3038:148::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;3145:1:::1;3129:6:::0;;3108:40:::1;::::0;-1:-1:-1;;;;;3129:6:0;;::::1;::::0;3108:40:::1;::::0;3145:1;;3108:40:::1;3176:1;3159:19:::0;;-1:-1:-1;;;;;;3159:19:0::1;::::0;;3038:148::o;13975:133::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;14048:12:::1;::::0;14030:15:::1;:30:::0;;;14071:12:::1;:27:::0;13975:133::o;14285:308::-;14405:10;14364:4;14389:27;;;:15;:27;;;;;;;;14381:36;;;;;;14428:6;14438:1;14428:11;14425:95;;14464:44;;-1:-1:-1;;;14464:44:0;;14502:4;14464:44;;;3941:51:1;-1:-1:-1;;;;;14464:29:0;;;;;3914:18:1;;14464:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14455:53;;14425:95;14537:48;;-1:-1:-1;;;14537:48:0;;14566:10;14537:48;;;7981:51:1;8048:18;;;8041:34;;;-1:-1:-1;;;;;14537:28:0;;;;;7954:18:1;;14537:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10043:158::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;10150:4:::1;10135:12;;:19;;;;:::i;:::-;10125:6;:29;;10117:38;;;::::0;::::1;;10166:12;:21:::0;10043:158::o;14820:79::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;14873:11:::1;:18:::0;;-1:-1:-1;;;;14873:18:0::1;-1:-1:-1::0;;;14873:18:0::1;::::0;;14820:79::o;16898:210::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;17000:9:::1;16995:106;17011:20:::0;;::::1;16995:106;;;17083:6;17053:13;:27;17067:9;;17077:1;17067:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17053:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17053:27:0;:36;;-1:-1:-1;;17053:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17033:3:::1;::::0;::::1;:::i;:::-;;;16995:106;;;;16898:210:::0;;;:::o;9025:156::-;9105:4;9129:44;9143:10;9155:9;9166:6;9129:13;:44::i;13681:286::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;13802:4:::1;13757:24;8503:18:::0;;;:9;:18;;;;;;;13842:47:::1;13885:3;13842:38;8503:18:::0;13863:16;13842:20:::1;:38::i;:::-;:42:::0;::::1;:47::i;:::-;13819:70;;13900:53;13923:4;13929:10;13940:12;13900:14;:53::i;9816:219::-:0;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;9926:4:::1;9911:12;;:19;;;;:::i;:::-;9895:12;;:35;;9887:44;;;::::0;::::1;;10023:4;10006:12;9991;;:27;;;;:::i;:::-;9990:37;;;;:::i;:::-;9975:12;:52:::0;-1:-1:-1;9816:219:0:o;17950:435::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;18143:21:::1;:46:::0;;-1:-1:-1;;;;;;18143:46:0;;::::1;-1:-1:-1::0;;;;;18143:46:0;;::::1;;::::0;;;18200:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18255:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18298:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18343:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17950:435::o;18393:153::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;18482:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18482:22:0::1;-1:-1:-1::0;;;;18482:22:0;;::::1;::::0;;;::::1;::::0;;;18515:13:::1;:23:::0;18393:153::o;18889:167::-;18957:7;18984:64;19025:22;:20;:22::i;:::-;19007:4;;-1:-1:-1;;;;;19007:4:0;8485:7;8503:18;;;:9;:18;;;;;;18984:36;;18997:22;;19017:1;;18997:15;:19;;:22::i;:::-;18984:8;;:12;:36::i;14601:211::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;14697:14:::1;:22:::0;;;;14730:13:::1;:20:::0;;;;14761:18:::1;:27:::0;14601:211::o;3194:244::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3283:22:0;::::1;3275:73;;;::::0;-1:-1:-1;;;3275:73:0;;8810:2:1;3275:73:0::1;::::0;::::1;8792:21:1::0;8849:2;8829:18;;;8822:30;8888:34;8868:18;;;8861:62;-1:-1:-1;;;8939:18:1;;;8932:36;8985:19;;3275:73:0::1;8608:402:1::0;3275:73:0::1;3385:6;::::0;;3364:38:::1;::::0;-1:-1:-1;;;;;3364:38:0;;::::1;::::0;3385:6;::::1;::::0;3364:38:::1;::::0;::::1;3413:6;:17:::0;;-1:-1:-1;;;;;;3413:17:0::1;-1:-1:-1::0;;;;;3413:17:0;;;::::1;::::0;;;::::1;::::0;;3194:244::o;14116:161::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;14193:10:::1;14177:27;::::0;;;:15:::1;:27;::::0;;;;;::::1;;14169:36;;;::::0;::::1;;14216:51;::::0;14224:10:::1;::::0;14245:21:::1;14216:51:::0;::::1;;;::::0;::::1;::::0;;;14245:21;14224:10;14216:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14116:161::o:0;17242:127::-;2951:6;;-1:-1:-1;;;;;2951:6:0;2261:10;2951:22;2943:67;;;;-1:-1:-1;;;2943:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17329:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17329:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17242:127::o;623:250::-;681:7;705:1;710;705:6;701:47;;-1:-1:-1;735:1:0;728:8;;701:47;760:9;772:5;776:1;772;:5;:::i;:::-;760:17;-1:-1:-1;805:1:0;796:5;800:1;760:17;796:5;:::i;:::-;:10;788:56;;;;-1:-1:-1;;;788:56:0;;9217:2:1;788:56:0;;;9199:21:1;9256:2;9236:18;;;9229:30;9295:34;9275:18;;;9268:62;-1:-1:-1;;;9346:18:1;;;9339:31;9387:19;;788:56:0;9015:397:1;879:132:0;937:7;964:39;968:1;971;964:39;;;;;;;;;;;;;;;;;:3;:39::i;96:181::-;154:7;;186:5;190:1;186;:5;:::i;:::-;174:17;;215:1;210;:6;;202:46;;;;-1:-1:-1;;;202:46:0;;9752:2:1;202:46:0;;;9734:21:1;9791:2;9771:18;;;9764:30;9830:29;9810:18;;;9803:57;9877:18;;202:46:0;9550:351:1;425:192:0;511:7;547:12;539:6;;;;531:29;;;;-1:-1:-1;;;531:29:0;;;;;;;;:::i;:::-;-1:-1:-1;571:9:0;583:5;587:1;583;:5;:::i;:::-;571:17;425:192;-1:-1:-1;;;;;425:192:0:o;10209:1429::-;10321:6;;10301:4;;10321:6;;10318:63;;;10337:41;10352:6;10360:9;10371:6;10337:14;:41::i;:::-;10330:48;;;;10318:63;-1:-1:-1;;;;;10397:22:0;;;;;;:14;:22;;;;;;;;10396:23;:53;;;;-1:-1:-1;;;;;;10424:25:0;;;;;;:14;:25;;;;;;;;10423:26;10396:53;10393:140;;;10473:11;;-1:-1:-1;;;10473:11:0;;;;10465:43;;;;-1:-1:-1;;;10465:43:0;;10238:2:1;10465:43:0;;;10220:21:1;10277:2;10257:18;;;10250:30;-1:-1:-1;;;10296:18:1;;;10289:50;10356:18;;10465:43:0;10036:344:1;10465:43:0;10580:13;;;;10577:93;;;-1:-1:-1;;;;;10618:21:0;;;;;;:13;:21;;;;;;;;10617:22;10609:45;;;;-1:-1:-1;;;10609:45:0;;10587:2:1;10609:45:0;;;10569:21:1;10626:2;10606:18;;;10599:30;-1:-1:-1;;;10645:18:1;;;10638:41;10696:18;;10609:45:0;10385:335:1;10609:45:0;-1:-1:-1;;;;;10687:22:0;;;;;;:14;:22;;;;;;;;10686:23;:53;;;;-1:-1:-1;;;;;;10713:26:0;;10734:4;10713:26;;10686:53;:84;;;;-1:-1:-1;10765:4:0;;-1:-1:-1;;;;;10744:26:0;;;10765:4;;10744:26;;10686:84;:105;;;;-1:-1:-1;10787:4:0;;-1:-1:-1;;;;;10774:17:0;;;10787:4;;10774:17;;10686:105;:137;;;;-1:-1:-1;10808:15:0;;-1:-1:-1;;;;;10795:28:0;;;10808:15;;10795:28;;10686:137;:174;;;;-1:-1:-1;10840:20:0;;-1:-1:-1;;;;;10827:33:0;;;10840:20;;10827:33;;10686:174;:205;;;;-1:-1:-1;;;;;;10865:26:0;;;;;;:15;:26;;;;;;;;10864:27;10686:205;10682:397;;;-1:-1:-1;;;;;8503:18:0;;10907;8503;;;:9;:18;;;;;;10996:15;;10972:19;10985:6;8503:18;10972:19;:::i;:::-;10971:40;;10963:114;;;;-1:-1:-1;;;10963:114:0;;10927:2:1;10963:114:0;;;10909:21:1;10966:2;10946:18;;;10939:30;11005:34;10985:18;;;10978:62;11076:32;11056:18;;;11049:60;11126:19;;10963:114:0;10725:426:1;10963:114:0;10892:187;10682:397;11132:28;11145:6;11153;11132:12;:28::i;:::-;11177:16;:14;:16::i;:::-;11174:35;;;11196:10;:8;:10::i;:::-;11289:53;;;;;;;;;;;-1:-1:-1;;;11289:53:0;;;;;;;;-1:-1:-1;;;;;11289:17:0;;-1:-1:-1;11289:17:0;;;:9;:17;;;;;;;;:53;;11311:6;;11289:21;:53::i;:::-;-1:-1:-1;;;;;11269:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11381:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11404:22:0;;;;;;:11;:22;;;;;;;;11381:45;11380:93;;11439:34;11447:6;11455;11463:9;11439:7;:34::i;:::-;11380:93;;;11430:6;11380:93;-1:-1:-1;;;;;11507:20:0;;;;;;:9;:20;;;;;;11355:118;;-1:-1:-1;11507:40:0;;11355:118;11507:24;:40::i;:::-;-1:-1:-1;;;;;11484:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11565:43;;;;;;-1:-1:-1;;;;;;;;;;;11565:43:0;;;11593:14;160:25:1;;148:2;133:18;;14:177;11565:43:0;;;;;;;;-1:-1:-1;11626:4:0;;10209:1429;-1:-1:-1;;;;10209:1429:0:o;283:136::-;341:7;368:43;372:1;375;368:43;;;;;;;;;;;;;;;;;:3;:43::i;11650:330::-;11780:53;;;;;;;;;;;-1:-1:-1;;;11780:53:0;;;;;;;;-1:-1:-1;;;;;11780:17:0;;11743:4;11780:17;;;:9;:17;;;;;;;:53;;11802:6;;11780:21;:53::i;:::-;-1:-1:-1;;;;;11760:17:0;;;;;;;:9;:17;;;;;;:73;;;;11867:20;;;;;;;:32;;11892:6;11867:24;:32::i;:::-;-1:-1:-1;;;;;11844:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11915:35;;;;;;-1:-1:-1;;;;;;;;;;;11915:35:0;;;11943:6;160:25:1;;148:2;133:18;;14:177;11915:35:0;;;;;;;;-1:-1:-1;11968:4:0;11650:330;;;;;:::o;1017:189::-;1103:7;1138:12;1131:5;1123:28;;;;-1:-1:-1;;;1123:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1162:9:0;1174:5;1178:1;1174;:5;:::i;11988:166::-;12085:12;;12075:6;:22;;:49;;;-1:-1:-1;;;;;;12101:23:0;;;;;;:15;:23;;;;;;;;12075:49;12067:79;;;;-1:-1:-1;;;12067:79:0;;11358:2:1;12067:79:0;;;11340:21:1;11397:2;11377:18;;;11370:30;-1:-1:-1;;;11416:18:1;;;11409:47;11473:18;;12067:79:0;11156:341:1;12067:79:0;11988:166;;:::o;13234:197::-;13321:4;;13283;;-1:-1:-1;;;;;13321:4:0;13307:10;:18;;;;:38;;-1:-1:-1;13339:6:0;;;;13338:7;13307:38;:62;;;;-1:-1:-1;13358:11:0;;-1:-1:-1;;;13358:11:0;;;;13307:62;:116;;;;-1:-1:-1;;13410:13:0;;13400:4;13382:24;;;;:9;:24;;;;;;:41;;;13234:197::o;14917:1861::-;6861:6;:13;;-1:-1:-1;;6861:13:0;6870:4;6861:13;;;15012:15:::1;::::0;15029:26:::1;::::0;6861:6;;14996:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15063:12;;14996:79;;;15059:1;14996:79;14966:109;;15086:23;15112:59;15169:1;15112:52;15155:8;;15112:38;15130:19;15112:13;;:17;;:38;;;;:::i;:59::-;15086:85;;15182:20;15205:34;15223:15;15205:13;;:17;;:34;;;;:::i;:::-;15276:16;::::0;;15290:1:::1;15276:16:::0;;;;;::::1;::::0;;15182:57;;-1:-1:-1;15252:21:0::1;::::0;15276:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15276:16:0::1;15252:40;;15321:4;15303;15308:1;15303:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15303:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15347:4:::1;::::0;15337:7;;15347:4;::::1;::::0;15337;;15347;;15337:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15337:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15422:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15422:188:0;;15388:21:::1;::::0;15422:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15494:12;;15364:21:::1;::::0;15537:4;;15564::::1;::::0;15584:15:::1;::::0;15422:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15623:17;15643:40;15669:13;15643:21;:25;;:40;;;;:::i;:::-;15623:60:::0;-1:-1:-1;15696:19:0::1;15718:40;15731:26;:19:::0;15755:1:::1;15731:23;:26::i;:::-;15718:8;::::0;;:12:::1;:40::i;:::-;15696:62:::0;-1:-1:-1;15779:26:0::1;15808:58;15864:1;15808:51;15696:62:::0;15808:51;:9;15822:19;15808:13:::1;:34::i;:58::-;15779:87;;15877:26;15906:44;15938:11;15906:27;15920:12;;15906:9;:13;;:27;;;;:::i;:44::-;15877:73;;15961:21;15985:39;16012:11;15985:22;15999:7;;15985:9;:13;;:22;;;;:::i;:39::-;15961:63;;16035:20;16058:38;16084:11;16058:21;16072:6;;16058:9;:13;;:21;;;;:::i;:38::-;16138:20;::::0;16130:65:::1;::::0;16035:61;;-1:-1:-1;16110:15:0::1;::::0;-1:-1:-1;;;;;16138:20:0;;::::1;::::0;16172:18;;16110:15;16130:65;16110:15;16130:65;16172:18;16138:20;16130:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16230:14:0::1;::::0;16222:53:::1;::::0;16109:86;;-1:-1:-1;;;;;;16230:14:0::1;::::0;16258:12;;16222:53:::1;::::0;;;16258:12;16230:14;16222:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16310:15:0::1;::::0;16302:55:::1;::::0;16206:69;;-1:-1:-1;;;;;;16310:15:0::1;::::0;16339:13;;16302:55:::1;::::0;;;16339:13;16310:15;16302:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16391:5:0::1;::::0;-1:-1:-1;;16412:19:0;;;-1:-1:-1;16409:362:0::1;;16447:6;::::0;16621:21:::1;::::0;16447:244:::1;::::0;-1:-1:-1;;;16447:244:0;;16523:4:::1;16447:244;::::0;::::1;13170:34:1::0;13220:18;;;13213:34;;;16447:6:0::1;13263:18:1::0;;;13256:34;;;13306:18;;;13299:34;-1:-1:-1;;;;;16621:21:0;;::::1;13349:19:1::0;;;13342:44;16661:15:0::1;13402:19:1::0;;;13395:35;16447:6:0;::::1;::::0;:22:::1;::::0;16477:18;;13104:19:1;;16447:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16711:48:0::1;::::0;;13926:25:1;;;13982:2;13967:18;;13960:34;;;16711:48:0::1;::::0;-1:-1:-1;13899:18:1;16711:48:0::1;;;;;;;16409:362;-1:-1:-1::0;;6879:6:0;:14;;-1:-1:-1;;6879:14:0;;;-1:-1:-1;;;;;;;;;;14917:1861:0:o;12284:942::-;12421:18;;12468:4;;12370:7;;12421:18;-1:-1:-1;;;;;12468:4:0;;;12455:17;;;;12452:154;;-1:-1:-1;12502:14:0;;12452:154;;;12547:4;;-1:-1:-1;;;;;12547:4:0;;;12537:14;;;;12534:72;;-1:-1:-1;12581:13:0;;12534:72;12618:17;12638:62;12679:14;;12696:3;12679:20;;;;:::i;:::-;12638:36;12663:10;12638:20;12649:8;;12638:6;:10;;:20;;;;:::i;:62::-;12618:82;;12711:18;12732:36;12759:8;;12732:22;12746:7;;12732:9;:13;;:22;;;;:::i;:36::-;12711:57;-1:-1:-1;12779:22:0;12804:25;:9;12711:57;12804:13;:25::i;:::-;12887:4;12869:24;;;;:9;:24;;;;;;12779:50;;-1:-1:-1;12869:44:0;;12779:50;12869:28;:44::i;:::-;12860:4;12842:24;;;;:9;:24;;;;;;:71;;;;12963:15;;-1:-1:-1;;;;;12963:15:0;12953:26;;;;:42;;12984:10;12953:30;:42::i;:::-;12934:15;;-1:-1:-1;;;;;12934:15:0;;;12924:26;;;;:9;:26;;;;;;;;;:71;;;;13011:47;160:25:1;;;13036:4:0;;13011:47;;;;-1:-1:-1;;;;;;;;;;;13011:47:0;133:18:1;13011:47:0;;;;;;;13082:14;;13079:99;;13134:15;;13117:45;;160:25:1;;;-1:-1:-1;;;;;13134:15:0;;;;13117:45;;;-1:-1:-1;;;;;;;;;;;13117:45:0;148:2:1;133:18;13117:45:0;;;;;;;13079:99;13197:21;:6;13208:9;13197:10;:21::i;:::-;13190:28;12284:942;-1:-1:-1;;;;;;;;12284:942:0:o;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;990:173::-;1058:20;;-1:-1:-1;;;;;1107:31:1;;1097:42;;1087:70;;1153:1;1150;1143:12;1087:70;990:173;;;:::o;1168:254::-;1236:6;1244;1297:2;1285:9;1276:7;1272:23;1268:32;1265:52;;;1313:1;1310;1303:12;1265:52;1336:29;1355:9;1336:29;:::i;:::-;1326:39;1412:2;1397:18;;;;1384:32;;-1:-1:-1;;;1168:254:1:o;1427:523::-;1531:6;1539;1547;1555;1563;1571;1624:3;1612:9;1603:7;1599:23;1595:33;1592:53;;;1641:1;1638;1631:12;1592:53;-1:-1:-1;;1664:23:1;;;1734:2;1719:18;;1706:32;;-1:-1:-1;1785:2:1;1770:18;;1757:32;;1836:2;1821:18;;1808:32;;-1:-1:-1;1887:3:1;1872:19;;1859:33;;-1:-1:-1;1939:3:1;1924:19;1911:33;;-1:-1:-1;1427:523:1;-1:-1:-1;1427:523:1:o;1955:248::-;2023:6;2031;2084:2;2072:9;2063:7;2059:23;2055:32;2052:52;;;2100:1;2097;2090:12;2052:52;-1:-1:-1;;2123:23:1;;;2193:2;2178:18;;;2165:32;;-1:-1:-1;1955:248:1:o;2208:180::-;2267:6;2320:2;2308:9;2299:7;2295:23;2291:32;2288:52;;;2336:1;2333;2326:12;2288:52;-1:-1:-1;2359:23:1;;2208:180;-1:-1:-1;2208:180:1:o;2393:328::-;2470:6;2478;2486;2539:2;2527:9;2518:7;2514:23;2510:32;2507:52;;;2555:1;2552;2545:12;2507:52;2578:29;2597:9;2578:29;:::i;:::-;2568:39;;2626:38;2660:2;2649:9;2645:18;2626:38;:::i;:::-;2616:48;;2711:2;2700:9;2696:18;2683:32;2673:42;;2393:328;;;;;:::o;2915:118::-;3001:5;2994:13;2987:21;2980:5;2977:32;2967:60;;3023:1;3020;3013:12;3038:315;3103:6;3111;3164:2;3152:9;3143:7;3139:23;3135:32;3132:52;;;3180:1;3177;3170:12;3132:52;3203:29;3222:9;3203:29;:::i;:::-;3193:39;;3282:2;3271:9;3267:18;3254:32;3295:28;3317:5;3295:28;:::i;:::-;3342:5;3332:15;;;3038:315;;;;;:::o;3358:186::-;3417:6;3470:2;3458:9;3449:7;3445:23;3441:32;3438:52;;;3486:1;3483;3476:12;3438:52;3509:29;3528:9;3509:29;:::i;3549:241::-;3605:6;3658:2;3646:9;3637:7;3633:23;3629:32;3626:52;;;3674:1;3671;3664:12;3626:52;3713:9;3700:23;3732:28;3754:5;3732:28;:::i;4003:750::-;4095:6;4103;4111;4164:2;4152:9;4143:7;4139:23;4135:32;4132:52;;;4180:1;4177;4170:12;4132:52;4220:9;4207:23;4249:18;4290:2;4282:6;4279:14;4276:34;;;4306:1;4303;4296:12;4276:34;4344:6;4333:9;4329:22;4319:32;;4389:7;4382:4;4378:2;4374:13;4370:27;4360:55;;4411:1;4408;4401:12;4360:55;4451:2;4438:16;4477:2;4469:6;4466:14;4463:34;;;4493:1;4490;4483:12;4463:34;4548:7;4541:4;4531:6;4528:1;4524:14;4520:2;4516:23;4512:34;4509:47;4506:67;;;4569:1;4566;4559:12;4506:67;4600:4;4592:13;;;;-1:-1:-1;4624:6:1;-1:-1:-1;;4665:20:1;;4652:34;4695:28;4652:34;4695:28;:::i;:::-;4742:5;4732:15;;;4003:750;;;;;:::o;4758:484::-;4853:6;4861;4869;4877;4885;4938:3;4926:9;4917:7;4913:23;4909:33;4906:53;;;4955:1;4952;4945:12;4906:53;4978:29;4997:9;4978:29;:::i;:::-;4968:39;;5026:38;5060:2;5049:9;5045:18;5026:38;:::i;:::-;5016:48;;5083:38;5117:2;5106:9;5102:18;5083:38;:::i;:::-;5073:48;;5140:38;5174:2;5163:9;5159:18;5140:38;:::i;:::-;5130:48;;5197:39;5231:3;5220:9;5216:19;5197:39;:::i;:::-;5187:49;;4758:484;;;;;;;;:::o;5247:309::-;5312:6;5320;5373:2;5361:9;5352:7;5348:23;5344:32;5341:52;;;5389:1;5386;5379:12;5341:52;5428:9;5415:23;5447:28;5469:5;5447:28;:::i;5561:260::-;5629:6;5637;5690:2;5678:9;5669:7;5665:23;5661:32;5658:52;;;5706:1;5703;5696:12;5658:52;5729:29;5748:9;5729:29;:::i;:::-;5719:39;;5777:38;5811:2;5800:9;5796:18;5777:38;:::i;:::-;5767:48;;5561:260;;;;;:::o;5826:316::-;5903:6;5911;5919;5972:2;5960:9;5951:7;5947:23;5943:32;5940:52;;;5988:1;5985;5978:12;5940:52;-1:-1:-1;;6011:23:1;;;6081:2;6066:18;;6053:32;;-1:-1:-1;6132:2:1;6117:18;;;6104:32;;5826:316;-1:-1:-1;5826:316:1:o;6373:356::-;6575:2;6557:21;;;6594:18;;;6587:30;6653:34;6648:2;6633:18;;6626:62;6720:2;6705:18;;6373:356::o;6734:127::-;6795:10;6790:3;6786:20;6783:1;6776:31;6826:4;6823:1;6816:15;6850:4;6847:1;6840:15;6866:217;6906:1;6932;6922:132;;6976:10;6971:3;6967:20;6964:1;6957:31;7011:4;7008:1;7001:15;7039:4;7036:1;7029:15;6922:132;-1:-1:-1;7068:9:1;;6866:217::o;7445:168::-;7485:7;7551:1;7547;7543:6;7539:14;7536:1;7533:21;7528:1;7521:9;7514:17;7510:45;7507:71;;;7558:18;;:::i;:::-;-1:-1:-1;7598:9:1;;7445:168::o;7618:184::-;7688:6;7741:2;7729:9;7720:7;7716:23;7712:32;7709:52;;;7757:1;7754;7747:12;7709:52;-1:-1:-1;7780:16:1;;7618:184;-1:-1:-1;7618:184:1:o;8086:245::-;8153:6;8206:2;8194:9;8185:7;8181:23;8177:32;8174:52;;;8222:1;8219;8212:12;8174:52;8254:9;8248:16;8273:28;8295:5;8273:28;:::i;8336:127::-;8397:10;8392:3;8388:20;8385:1;8378:31;8428:4;8425:1;8418:15;8452:4;8449:1;8442:15;8468:135;8507:3;8528:17;;;8525:43;;8548:18;;:::i;:::-;-1:-1:-1;8595:1:1;8584:13;;8468:135::o;9417:128::-;9457:3;9488:1;9484:6;9481:1;9478:13;9475:39;;;9494:18;;:::i;:::-;-1:-1:-1;9530:9:1;;9417:128::o;9906:125::-;9946:4;9974:1;9971;9968:8;9965:34;;;9979:18;;:::i;:::-;-1:-1:-1;10016:9:1;;9906:125::o;11634:980::-;11896:4;11944:3;11933:9;11929:19;11975:6;11964:9;11957:25;12001:2;12039:6;12034:2;12023:9;12019:18;12012:34;12082:3;12077:2;12066:9;12062:18;12055:31;12106:6;12141;12135:13;12172:6;12164;12157:22;12210:3;12199:9;12195:19;12188:26;;12249:2;12241:6;12237:15;12223:29;;12270:1;12280:195;12294:6;12291:1;12288:13;12280:195;;;12359:13;;-1:-1:-1;;;;;12355:39:1;12343:52;;12450:15;;;;12415:12;;;;12391:1;12309:9;12280:195;;;-1:-1:-1;;;;;;;12531:32:1;;;;12526:2;12511:18;;12504:60;-1:-1:-1;;;12595:3:1;12580:19;12573:35;12492:3;11634:980;-1:-1:-1;;;11634:980:1:o;13441:306::-;13529:6;13537;13545;13598:2;13586:9;13577:7;13573:23;13569:32;13566:52;;;13614:1;13611;13604:12;13566:52;13643:9;13637:16;13627:26;;13693:2;13682:9;13678:18;13672:25;13662:35;;13737:2;13726:9;13722:18;13716:25;13706:35;;13441:306;;;;;:::o

Swarm Source

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