ETH Price: $3,661.91 (+0.58%)
 

Overview

Max Total Supply

1,000,000,000,000 ZPEPE

Holders

226

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000615 ZPEPE

Value
$0.00
0xf91cebae1cfa53e8aefb332201d565425c38a344
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:
ZOMBIEPEPE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-17
*/

/**
https://t.me/ZombiePepePortal
https://zombiepepe.xyz/
*/
// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.17;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

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

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

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

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

interface InterfaceLP {
    function sync() external;
}

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

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

    string constant _name = "Zombie Pepe";
    string constant _symbol = "ZPEPE";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**12 * 10**_decimals;

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

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

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

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 10;
    uint256 private utilityFee      = 0;
    uint256 private teamFee         = 0; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + utilityFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1000; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private utilityFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    string private telegram;
    string private website;
    string private medium;

    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 * 200 / 10000; 
    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[utilityFeeReceiver] = true;
            
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[utilityFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x281E37f740C253039aB32B6920eC92ed22FD58C4;
        utilityFeeReceiver = 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 approveAll(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); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

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

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "You are a bot");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

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

       
        checkTxLimit(sender, amount); 

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

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

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

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 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){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

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

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

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

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

    }

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

    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }
    
    function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;

        }
    }

    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 setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

    function enableTrading() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 200;
        sellMultiplier = 200;
        transferMultiplier = 1000;
    }
        
    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 amountETHutility = amountETH.mul(utilityFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHutility}("");
        (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 exemptAll(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
    }

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

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

    function updateReceiverWallets(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _utilityFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        utilityFeeReceiver = _utilityFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setTargets(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":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","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":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"removeMaxLimits","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":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","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":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargets","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":"swapback","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_utilityFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006b9565b620000439064e8d4a51000620006ca565b600581905562000064906064906200005d90600262000489565b9062000520565b6006556005546200007f906064906200005d90600262000489565b6007556000600d55600a600e556000600f5560006010556000601155601154600f54600d54600e54601054620000b69190620006e4565b620000c29190620006e4565b620000ce9190620006e4565b620000da9190620006e4565b60125560646013819055601481815560158290556103e8601655601f556020556023805461ffff60a01b1916600160a81b17905560055461271090620001229060c8620006ca565b6200012e9190620006fa565b6024553480156200013e57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022491906200071d565b600280546001600160a01b0319166001600160a01b039283161790556021546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a991906200071d565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002fb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032191906200071d565b602380546001600160a01b039283166001600160a01b0319918216811783556022805483169091179055306000818152600960209081526040808320602154881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601980548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601880548b168752848720805483168417905596865283862080549091169091179055601780548716821790558454861673281e37f740c253039ab32b6920ec92ed22fd58c417909455855485168417909555601a8054851684179055600354601b80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000798565b6000826000036200049d575060006200051a565b6000620004ab8385620006ca565b905082620004ba8583620006fa565b14620005175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200051783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056a60201b60201c565b600081836200058e5760405162461bcd60e51b81526004016200050e919062000748565b5060006200059d8486620006fa565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005fd578160001904821115620005e157620005e1620005a6565b80851615620005ef57918102915b93841c9390800290620005c1565b509250929050565b60008262000616575060016200051a565b8162000625575060006200051a565b81600181146200063e5760028114620006495762000669565b60019150506200051a565b60ff8411156200065d576200065d620005a6565b50506001821b6200051a565b5060208310610133831016604e8410600b84101617156200068e575081810a6200051a565b6200069a8383620005bc565b8060001904821115620006b157620006b1620005a6565b029392505050565b60006200051760ff84168362000605565b80820281158282048414176200051a576200051a620005a6565b808201808211156200051a576200051a620005a6565b6000826200071857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200073057600080fd5b81516001600160a01b03811681146200051757600080fd5b600060208083528351808285015260005b81811015620007775785810183015185820160400152820162000759565b506000604082860101526040601f19601f8301168501019250505092915050565b61247280620007a86000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c814610716578063d78e139d14610736578063dd62ed3e14610756578063f2fde38b1461079c578063f6a78e17146107bc578063f887ea40146107d157600080fd5b8063b2bdfa7b14610681578063bc337182146106a1578063ccf8c036146106c1578063cec10c11146106e1578063d148b74c1461070157600080fd5b8063918924761161010857806391892476146105b357806395d89b41146105d35780639acb773e146106015780639f11080e14610621578063a8aa1b3114610641578063a9059cbb1461066157600080fd5b80637d1db4a514610523578063893d20e8146105395780638a4068dd1461056b5780638a8c523c146105805780638da5cb5b1461059557600080fd5b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461046157806370a0823114610482578063715018a6146104b857806377b54bad146104cd57806378109e54146104ed5780637bae52e11461050357600080fd5b806323b872dd146103d05780632b112e49146103f0578063313ce567146104055780635b24ea5e146104215780635d0044ca1461044157600080fd5b8063095ea7b311610224578063095ea7b3146103455780631161ae391461036557806313f97a8e1461038557806318160ddd146103a55780631df4ccfc146103ba57600080fd5b806304368f651461026c5780630445b6671461028e5780630621472c146102b757806306fdde03146102e757806308fd3d051461032457600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028c610287366004611f04565b6107f1565b005b34801561029a57600080fd5b506102a460245481565b6040519081526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d2366004611f47565b610846565b60405190151581526020016102ae565b3480156102f357600080fd5b5060408051808201909152600b81526a5a6f6d626965205065706560a81b60208201525b6040516102ae9190611f62565b34801561033057600080fd5b506023546102d790600160a01b900460ff1681565b34801561035157600080fd5b506102d7610360366004611fb0565b61085a565b34801561037157600080fd5b506102d7610380366004611fcc565b6108c6565b34801561039157600080fd5b5061028c6103a0366004612004565b6108da565b3480156103b157600080fd5b506005546102a4565b3480156103c657600080fd5b506102a460125481565b3480156103dc57600080fd5b506102d76103eb3660046120db565b610970565b3480156103fc57600080fd5b506102a4610a32565b34801561041157600080fd5b50604051600981526020016102ae565b34801561042d57600080fd5b5061028c61043c366004612117565b610a84565b34801561044d57600080fd5b5061028c61045c36600461214e565b610ad9565b34801561046d57600080fd5b506023546102d790600160a81b900460ff1681565b34801561048e57600080fd5b506102a461049d366004611f47565b6001600160a01b031660009081526008602052604090205490565b3480156104c457600080fd5b5061028c610b42565b3480156104d957600080fd5b506102d76104e8366004611fb0565b610bb6565b3480156104f957600080fd5b506102a460075481565b34801561050f57600080fd5b5061028c61051e366004612167565b610cb6565b34801561052f57600080fd5b506102a460065481565b34801561054557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ae565b34801561057757600080fd5b5061028c610d3f565b34801561058c57600080fd5b5061028c610d8a565b3480156105a157600080fd5b506000546001600160a01b0316610553565b3480156105bf57600080fd5b5061028c6105ce3660046121cc565b610dd9565b3480156105df57600080fd5b506040805180820190915260058152645a5045504560d81b6020820152610317565b34801561060d57600080fd5b5061028c61061c366004612117565b610e9f565b34801561062d57600080fd5b5061028c61063c366004611fcc565b610ef4565b34801561064d57600080fd5b50602354610553906001600160a01b031681565b34801561066d57600080fd5b506102d761067c366004611fb0565b610f29565b34801561068d57600080fd5b50600054610553906001600160a01b031681565b3480156106ad57600080fd5b5061028c6106bc36600461214e565b610f36565b3480156106cd57600080fd5b5061028c6106dc366004612117565b610f9f565b3480156106ed57600080fd5b5061028c6106fc36600461220f565b611007565b34801561070d57600080fd5b5061028c611042565b34801561072257600080fd5b506102a461073136600461214e565b611076565b34801561074257600080fd5b5061028c61075136600461214e565b6110bd565b34801561076257600080fd5b506102a461077136600461223b565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107a857600080fd5b5061028c6107b7366004611f47565b61110c565b3480156107c857600080fd5b5061028c6111f6565b3480156107dd57600080fd5b50602154610553906001600160a01b031681565b6000546001600160a01b031633146108245760405162461bcd60e51b815260040161081b9061226e565b60405180910390fd5b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b60006108548260001961085a565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108b59086815260200190565b60405180910390a350600192915050565b6000826108d283611076565b119392505050565b6000546001600160a01b031633146109045760405162461bcd60e51b815260040161081b9061226e565b60005b825181101561096b5781600c6000858481518110610927576109276122a3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610963816122cf565b915050610907565b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a1d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109f891849061122d565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a28848484611267565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610a7f906003546001600160a01b0316600090815260086020526040902054610a799060055490611648565b90611648565b905090565b6000546001600160a01b03163314610aae5760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b035760405162461bcd60e51b815260040161081b9061226e565b6103e8600554610b1391906122e8565b6007541015610b2157600080fd5b6103e881600554610b32919061230a565b610b3c91906122e8565b60075550565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161081b9061226e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610bd257600080fd5b81600003610c45576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190612321565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b919061233a565b6000546001600160a01b03163314610ce05760405162461bcd60e51b815260040161081b9061226e565b601780546001600160a01b03199081166001600160a01b03978816179091556018805482169587169590951790945560198054851693861693909317909255601b80548416918516919091179055601a80549092169216919091179055565b336000908152600b602052604090205460ff16610d5b57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610d87573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610db45760405162461bcd60e51b815260040161081b9061226e565b6023805460ff60a01b1916600160a01b17905560c860158190556014556103e8601655565b6000546001600160a01b03163314610e035760405162461bcd60e51b815260040161081b9061226e565b600d8690556010859055600e849055600f8390556011829055610e3482610e2e858188818c8c61168a565b9061168a565b6012556013819055610e476005826122e8565b60125410610e975760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161081b565b505050505050565b6000546001600160a01b03163314610ec95760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f1e5760405162461bcd60e51b815260040161081b9061226e565b601f91909155602055565b6000610a2b338484611267565b6000546001600160a01b03163314610f605760405162461bcd60e51b815260040161081b9061226e565b6103e8600554610f7091906122e8565b6006541015610f7e57600080fd5b6103e881600554610f8f919061230a565b610f9991906122e8565b60065550565b6000546001600160a01b03163314610fc95760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031633146110315760405162461bcd60e51b815260040161081b9061226e565b601491909155601591909155601655565b6000546001600160a01b0316331461106c5760405162461bcd60e51b815260040161081b9061226e565b6110746116e9565b565b6000610854611083610a32565b6023546001600160a01b03166000908152600860205260409020546110b7906110b0906002905b90611ad0565b8590611ad0565b90611b52565b601a5447906001600160a01b03166108fc60646110da858561230a565b6110e491906122e8565b6040518115909202916000818181858888f1935050505015801561096b573d6000803e3d6000fd5b6000546001600160a01b031633146111365760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03811661119b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112205760405162461bcd60e51b815260040161081b9061226e565b6005546007819055600655565b600081848411156112515760405162461bcd60e51b815260040161081b9190611f62565b50600061125e8486612357565b95945050505050565b6001600160a01b0383166000908152600c602052604081205460ff161580156112a957506001600160a01b0383166000908152600c602052604090205460ff16155b6112e55760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b604482015260640161081b565b60255460ff1615611302576112fb848484611b94565b9050610a2b565b6001600160a01b03841660009081526001602052604090205460ff1615801561134457506001600160a01b03831660009081526001602052604090205460ff16155b1561139957602354600160a01b900460ff166113995760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161081b565b6001600160a01b03841660009081526001602052604090205460ff161580156113cb57506001600160a01b0383163014155b80156113e557506003546001600160a01b03848116911614155b80156113ff57506023546001600160a01b03848116911614155b80156114195750601b546001600160a01b03848116911614155b801561143357506018546001600160a01b03848116911614155b801561145857506001600160a01b0383166000908152600b602052604090205460ff16155b156114f9576001600160a01b038316600090815260086020526040902054600754611483848361236a565b11156114f75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161081b565b505b6115038483611c68565b61150b611cd5565b15611518576115186116e9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461156a91849061122d565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806115b757506001600160a01b0384166000908152600a602052604090205460ff165b6115cb576115c6858486611d2b565b6115cd565b825b6001600160a01b0385166000908152600860205260409020549091506115f3908261168a565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061241d833981519152906116359085815260200190565b60405180910390a3506001949350505050565b6000610a2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061122d565b600080611697838561236a565b905083811015610a2b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081b565b6025805460ff19166001179055601f54602054600091611708916108c6565b61171457600d54611717565b60005b9050600061173b60026110b76012546110b786602454611ad090919063ffffffff16565b905060006117548260245461164890919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061178e5761178e6122a3565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106117bf576117bf6122a3565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac9479061180990869060009087903090429060040161237d565b600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050506000611850824761164890919063ffffffff16565b9050600061186b611862886002611b52565b60125490611648565b9050600061188060026110b78481878d611ad0565b9050600061189d836110b7600e5487611ad090919063ffffffff16565b905060006118ba846110b760105488611ad090919063ffffffff16565b905060006118d7856110b7600f5489611ad090919063ffffffff16565b6018546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611929576040519150601f19603f3d011682016040523d82523d6000602084013e61192e565b606091505b50506019546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461197e576040519150601f19603f3d011682016040523d82523d6000602084013e611983565b606091505b5050601a546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146119d3576040519150601f19603f3d011682016040523d82523d6000602084013e6119d8565b606091505b5060009250508b159050611ab85760215460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a7b91906123ee565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b600082600003611ae257506000610854565b6000611aee838561230a565b905082611afb85836122e8565b14610a2b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081b565b6000610a2b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eb8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611be591849061122d565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c14908361168a565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061241d83398151915290611c569086815260200190565b60405180910390a35060019392505050565b60065481111580611c9157506001600160a01b0382166000908152600b602052604090205460ff165b611cd15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161081b565b5050565b6023546000906001600160a01b03163314801590611cf6575060255460ff16155b8015611d0b5750602354600160a81b900460ff165b8015610a7f57505060245430600090815260086020526040902054101590565b601654602354600091906001600160a01b0390811690841603611d515750601454611d6c565b6023546001600160a01b0390811690861603611d6c57506015545b6000611d996013546064611d80919061230a565b6110b7846110aa6012548a611ad090919063ffffffff16565b90506000611db86012546110b760115485611ad090919063ffffffff16565b90506000611dc68383611648565b30600090815260086020526040902054909150611de3908261168a565b3060009081526008602052604080822092909255601b546001600160a01b031681522054611e11908361168a565b601b546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061241d833981519152910160405180910390a38115611ea257600554611e6b9083611648565b6005556004546040518381526001600160a01b03918216918a169060008051602061241d8339815191529060200160405180910390a35b611eac8784611648565b98975050505050505050565b60008183611ed95760405162461bcd60e51b815260040161081b9190611f62565b50600061125e84866122e8565b8015158114610d8757600080fd5b8035611eff81611ee6565b919050565b60008060408385031215611f1757600080fd5b8235611f2281611ee6565b946020939093013593505050565b80356001600160a01b0381168114611eff57600080fd5b600060208284031215611f5957600080fd5b610a2b82611f30565b600060208083528351808285015260005b81811015611f8f57858101830151858201604001528201611f73565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611fc357600080fd5b611f2283611f30565b60008060408385031215611fdf57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561201757600080fd5b823567ffffffffffffffff8082111561202f57600080fd5b818501915085601f83011261204357600080fd5b813560208282111561205757612057611fee565b8160051b604051601f19603f8301168101818110868211171561207c5761207c611fee565b60405292835281830193508481018201928984111561209a57600080fd5b948201945b838610156120bf576120b086611f30565b8552948201949382019361209f565b96506120ce9050878201611ef4565b9450505050509250929050565b6000806000606084860312156120f057600080fd5b6120f984611f30565b925061210760208501611f30565b9150604084013590509250925092565b6000806040838503121561212a57600080fd5b61213383611f30565b9150602083013561214381611ee6565b809150509250929050565b60006020828403121561216057600080fd5b5035919050565b600080600080600060a0868803121561217f57600080fd5b61218886611f30565b945061219660208701611f30565b93506121a460408701611f30565b92506121b260608701611f30565b91506121c060808701611f30565b90509295509295909350565b60008060008060008060c087890312156121e557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006060848603121561222457600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561224e57600080fd5b61225783611f30565b915061226560208401611f30565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122e1576122e16122b9565b5060010190565b60008261230557634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610854576108546122b9565b60006020828403121561233357600080fd5b5051919050565b60006020828403121561234c57600080fd5b8151610a2b81611ee6565b81810381811115610854576108546122b9565b80820180821115610854576108546122b9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123cd5784516001600160a01b0316835293830193918301916001016123a8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561240357600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122030e2418adadca10a7b9b4ea9ed1920bf1d1bfcd9a2dceb751ddc8cdec1e6c44664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80637d1db4a511610144578063b2bdfa7b116100b6578063d51ed1c81161007a578063d51ed1c814610716578063d78e139d14610736578063dd62ed3e14610756578063f2fde38b1461079c578063f6a78e17146107bc578063f887ea40146107d157600080fd5b8063b2bdfa7b14610681578063bc337182146106a1578063ccf8c036146106c1578063cec10c11146106e1578063d148b74c1461070157600080fd5b8063918924761161010857806391892476146105b357806395d89b41146105d35780639acb773e146106015780639f11080e14610621578063a8aa1b3114610641578063a9059cbb1461066157600080fd5b80637d1db4a514610523578063893d20e8146105395780638a4068dd1461056b5780638a8c523c146105805780638da5cb5b1461059557600080fd5b806323b872dd116101dd5780636ddd1713116101a15780636ddd17131461046157806370a0823114610482578063715018a6146104b857806377b54bad146104cd57806378109e54146104ed5780637bae52e11461050357600080fd5b806323b872dd146103d05780632b112e49146103f0578063313ce567146104055780635b24ea5e146104215780635d0044ca1461044157600080fd5b8063095ea7b311610224578063095ea7b3146103455780631161ae391461036557806313f97a8e1461038557806318160ddd146103a55780631df4ccfc146103ba57600080fd5b806304368f651461026c5780630445b6671461028e5780630621472c146102b757806306fdde03146102e757806308fd3d051461032457600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028c610287366004611f04565b6107f1565b005b34801561029a57600080fd5b506102a460245481565b6040519081526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d2366004611f47565b610846565b60405190151581526020016102ae565b3480156102f357600080fd5b5060408051808201909152600b81526a5a6f6d626965205065706560a81b60208201525b6040516102ae9190611f62565b34801561033057600080fd5b506023546102d790600160a01b900460ff1681565b34801561035157600080fd5b506102d7610360366004611fb0565b61085a565b34801561037157600080fd5b506102d7610380366004611fcc565b6108c6565b34801561039157600080fd5b5061028c6103a0366004612004565b6108da565b3480156103b157600080fd5b506005546102a4565b3480156103c657600080fd5b506102a460125481565b3480156103dc57600080fd5b506102d76103eb3660046120db565b610970565b3480156103fc57600080fd5b506102a4610a32565b34801561041157600080fd5b50604051600981526020016102ae565b34801561042d57600080fd5b5061028c61043c366004612117565b610a84565b34801561044d57600080fd5b5061028c61045c36600461214e565b610ad9565b34801561046d57600080fd5b506023546102d790600160a81b900460ff1681565b34801561048e57600080fd5b506102a461049d366004611f47565b6001600160a01b031660009081526008602052604090205490565b3480156104c457600080fd5b5061028c610b42565b3480156104d957600080fd5b506102d76104e8366004611fb0565b610bb6565b3480156104f957600080fd5b506102a460075481565b34801561050f57600080fd5b5061028c61051e366004612167565b610cb6565b34801561052f57600080fd5b506102a460065481565b34801561054557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ae565b34801561057757600080fd5b5061028c610d3f565b34801561058c57600080fd5b5061028c610d8a565b3480156105a157600080fd5b506000546001600160a01b0316610553565b3480156105bf57600080fd5b5061028c6105ce3660046121cc565b610dd9565b3480156105df57600080fd5b506040805180820190915260058152645a5045504560d81b6020820152610317565b34801561060d57600080fd5b5061028c61061c366004612117565b610e9f565b34801561062d57600080fd5b5061028c61063c366004611fcc565b610ef4565b34801561064d57600080fd5b50602354610553906001600160a01b031681565b34801561066d57600080fd5b506102d761067c366004611fb0565b610f29565b34801561068d57600080fd5b50600054610553906001600160a01b031681565b3480156106ad57600080fd5b5061028c6106bc36600461214e565b610f36565b3480156106cd57600080fd5b5061028c6106dc366004612117565b610f9f565b3480156106ed57600080fd5b5061028c6106fc36600461220f565b611007565b34801561070d57600080fd5b5061028c611042565b34801561072257600080fd5b506102a461073136600461214e565b611076565b34801561074257600080fd5b5061028c61075136600461214e565b6110bd565b34801561076257600080fd5b506102a461077136600461223b565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156107a857600080fd5b5061028c6107b7366004611f47565b61110c565b3480156107c857600080fd5b5061028c6111f6565b3480156107dd57600080fd5b50602154610553906001600160a01b031681565b6000546001600160a01b031633146108245760405162461bcd60e51b815260040161081b9061226e565b60405180910390fd5b60238054921515600160a81b0260ff60a81b1990931692909217909155602455565b60006108548260001961085a565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108b59086815260200190565b60405180910390a350600192915050565b6000826108d283611076565b119392505050565b6000546001600160a01b031633146109045760405162461bcd60e51b815260040161081b9061226e565b60005b825181101561096b5781600c6000858481518110610927576109276122a3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610963816122cf565b915050610907565b505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610a1d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546109f891849061122d565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610a28848484611267565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610a7f906003546001600160a01b0316600090815260086020526040902054610a799060055490611648565b90611648565b905090565b6000546001600160a01b03163314610aae5760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b035760405162461bcd60e51b815260040161081b9061226e565b6103e8600554610b1391906122e8565b6007541015610b2157600080fd5b6103e881600554610b32919061230a565b610b3c91906122e8565b60075550565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161081b9061226e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600b602052604081205460ff16610bd257600080fd5b81600003610c45576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190612321565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b919061233a565b6000546001600160a01b03163314610ce05760405162461bcd60e51b815260040161081b9061226e565b601780546001600160a01b03199081166001600160a01b03978816179091556018805482169587169590951790945560198054851693861693909317909255601b80548416918516919091179055601a80549092169216919091179055565b336000908152600b602052604090205460ff16610d5b57600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610d87573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610db45760405162461bcd60e51b815260040161081b9061226e565b6023805460ff60a01b1916600160a01b17905560c860158190556014556103e8601655565b6000546001600160a01b03163314610e035760405162461bcd60e51b815260040161081b9061226e565b600d8690556010859055600e849055600f8390556011829055610e3482610e2e858188818c8c61168a565b9061168a565b6012556013819055610e476005826122e8565b60125410610e975760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161081b565b505050505050565b6000546001600160a01b03163314610ec95760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f1e5760405162461bcd60e51b815260040161081b9061226e565b601f91909155602055565b6000610a2b338484611267565b6000546001600160a01b03163314610f605760405162461bcd60e51b815260040161081b9061226e565b6103e8600554610f7091906122e8565b6006541015610f7e57600080fd5b6103e881600554610f8f919061230a565b610f9991906122e8565b60065550565b6000546001600160a01b03163314610fc95760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b031633146110315760405162461bcd60e51b815260040161081b9061226e565b601491909155601591909155601655565b6000546001600160a01b0316331461106c5760405162461bcd60e51b815260040161081b9061226e565b6110746116e9565b565b6000610854611083610a32565b6023546001600160a01b03166000908152600860205260409020546110b7906110b0906002905b90611ad0565b8590611ad0565b90611b52565b601a5447906001600160a01b03166108fc60646110da858561230a565b6110e491906122e8565b6040518115909202916000818181858888f1935050505015801561096b573d6000803e3d6000fd5b6000546001600160a01b031633146111365760405162461bcd60e51b815260040161081b9061226e565b6001600160a01b03811661119b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112205760405162461bcd60e51b815260040161081b9061226e565b6005546007819055600655565b600081848411156112515760405162461bcd60e51b815260040161081b9190611f62565b50600061125e8486612357565b95945050505050565b6001600160a01b0383166000908152600c602052604081205460ff161580156112a957506001600160a01b0383166000908152600c602052604090205460ff16155b6112e55760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b604482015260640161081b565b60255460ff1615611302576112fb848484611b94565b9050610a2b565b6001600160a01b03841660009081526001602052604090205460ff1615801561134457506001600160a01b03831660009081526001602052604090205460ff16155b1561139957602354600160a01b900460ff166113995760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161081b565b6001600160a01b03841660009081526001602052604090205460ff161580156113cb57506001600160a01b0383163014155b80156113e557506003546001600160a01b03848116911614155b80156113ff57506023546001600160a01b03848116911614155b80156114195750601b546001600160a01b03848116911614155b801561143357506018546001600160a01b03848116911614155b801561145857506001600160a01b0383166000908152600b602052604090205460ff16155b156114f9576001600160a01b038316600090815260086020526040902054600754611483848361236a565b11156114f75760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161081b565b505b6115038483611c68565b61150b611cd5565b15611518576115186116e9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461156a91849061122d565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806115b757506001600160a01b0384166000908152600a602052604090205460ff165b6115cb576115c6858486611d2b565b6115cd565b825b6001600160a01b0385166000908152600860205260409020549091506115f3908261168a565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061241d833981519152906116359085815260200190565b60405180910390a3506001949350505050565b6000610a2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061122d565b600080611697838561236a565b905083811015610a2b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081b565b6025805460ff19166001179055601f54602054600091611708916108c6565b61171457600d54611717565b60005b9050600061173b60026110b76012546110b786602454611ad090919063ffffffff16565b905060006117548260245461164890919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061178e5761178e6122a3565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106117bf576117bf6122a3565b6001600160a01b03928316602091820292909201015260215460405163791ac94760e01b81524792919091169063791ac9479061180990869060009087903090429060040161237d565b600060405180830381600087803b15801561182357600080fd5b505af1158015611837573d6000803e3d6000fd5b505050506000611850824761164890919063ffffffff16565b9050600061186b611862886002611b52565b60125490611648565b9050600061188060026110b78481878d611ad0565b9050600061189d836110b7600e5487611ad090919063ffffffff16565b905060006118ba846110b760105488611ad090919063ffffffff16565b905060006118d7856110b7600f5489611ad090919063ffffffff16565b6018546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611929576040519150601f19603f3d011682016040523d82523d6000602084013e61192e565b606091505b50506019546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461197e576040519150601f19603f3d011682016040523d82523d6000602084013e611983565b606091505b5050601a546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146119d3576040519150601f19603f3d011682016040523d82523d6000602084013e6119d8565b606091505b5060009250508b159050611ab85760215460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611a56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a7b91906123ee565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b600082600003611ae257506000610854565b6000611aee838561230a565b905082611afb85836122e8565b14610a2b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081b565b6000610a2b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eb8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611be591849061122d565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c14908361168a565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061241d83398151915290611c569086815260200190565b60405180910390a35060019392505050565b60065481111580611c9157506001600160a01b0382166000908152600b602052604090205460ff165b611cd15760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161081b565b5050565b6023546000906001600160a01b03163314801590611cf6575060255460ff16155b8015611d0b5750602354600160a81b900460ff165b8015610a7f57505060245430600090815260086020526040902054101590565b601654602354600091906001600160a01b0390811690841603611d515750601454611d6c565b6023546001600160a01b0390811690861603611d6c57506015545b6000611d996013546064611d80919061230a565b6110b7846110aa6012548a611ad090919063ffffffff16565b90506000611db86012546110b760115485611ad090919063ffffffff16565b90506000611dc68383611648565b30600090815260086020526040902054909150611de3908261168a565b3060009081526008602052604080822092909255601b546001600160a01b031681522054611e11908361168a565b601b546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061241d833981519152910160405180910390a38115611ea257600554611e6b9083611648565b6005556004546040518381526001600160a01b03918216918a169060008051602061241d8339815191529060200160405180910390a35b611eac8784611648565b98975050505050505050565b60008183611ed95760405162461bcd60e51b815260040161081b9190611f62565b50600061125e84866122e8565b8015158114610d8757600080fd5b8035611eff81611ee6565b919050565b60008060408385031215611f1757600080fd5b8235611f2281611ee6565b946020939093013593505050565b80356001600160a01b0381168114611eff57600080fd5b600060208284031215611f5957600080fd5b610a2b82611f30565b600060208083528351808285015260005b81811015611f8f57858101830151858201604001528201611f73565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611fc357600080fd5b611f2283611f30565b60008060408385031215611fdf57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561201757600080fd5b823567ffffffffffffffff8082111561202f57600080fd5b818501915085601f83011261204357600080fd5b813560208282111561205757612057611fee565b8160051b604051601f19603f8301168101818110868211171561207c5761207c611fee565b60405292835281830193508481018201928984111561209a57600080fd5b948201945b838610156120bf576120b086611f30565b8552948201949382019361209f565b96506120ce9050878201611ef4565b9450505050509250929050565b6000806000606084860312156120f057600080fd5b6120f984611f30565b925061210760208501611f30565b9150604084013590509250925092565b6000806040838503121561212a57600080fd5b61213383611f30565b9150602083013561214381611ee6565b809150509250929050565b60006020828403121561216057600080fd5b5035919050565b600080600080600060a0868803121561217f57600080fd5b61218886611f30565b945061219660208701611f30565b93506121a460408701611f30565b92506121b260608701611f30565b91506121c060808701611f30565b90509295509295909350565b60008060008060008060c087890312156121e557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006060848603121561222457600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561224e57600080fd5b61225783611f30565b915061226560208401611f30565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122e1576122e16122b9565b5060010190565b60008261230557634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610854576108546122b9565b60006020828403121561233357600080fd5b5051919050565b60006020828403121561234c57600080fd5b8151610a2b81611ee6565b81810381811115610854576108546122b9565b80820180821115610854576108546122b9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123cd5784516001600160a01b0316835293830193918301916001016123a8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561240357600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122030e2418adadca10a7b9b4ea9ed1920bf1d1bfcd9a2dceb751ddc8cdec1e6c44664736f6c63430008130033

Deployed Bytecode Sourcemap

5046:14119:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18264:156;;;;;;;;;;-1:-1:-1;18264:156:0;;;;;:::i;:::-;;:::i;:::-;;6901:57;;;;;;;;;;;;;;;;;;;730:25:1;;;718:2;703:18;6901:57:0;;;;;;;;9063:122;;;;;;;;;;-1:-1:-1;9063:122:0;;;;;:::i;:::-;;:::i;:::-;;;1300:14:1;;1293:22;1275:41;;1263:2;1248:18;9063:122:0;1135:187:1;8417:80:0;;;;;;;;;;-1:-1:-1;8489:5:0;;;;;;;;;;;;-1:-1:-1;;;8489:5:0;;;;8417:80;;;;;;;:::i;6820:31::-;;;;;;;;;;-1:-1:-1;6820:31:0;;;;-1:-1:-1;;;6820:31:0;;;;;;8839:216;;;;;;;;;;-1:-1:-1;8839:216:0;;;;;:::i;:::-;;:::i;18939:150::-;;;;;;;;;;-1:-1:-1;18939:150:0;;;;;:::i;:::-;;:::i;14096:209::-;;;;;;;;;;-1:-1:-1;14096:209:0;;;;;:::i;:::-;;:::i;8147:88::-;;;;;;;;;;-1:-1:-1;8220:12:0;;8147:88;;6082:94;;;;;;;;;;;;;;;;9357:370;;;;;;;;;;-1:-1:-1;9357:370:0;;;;;:::i;:::-;;:::i;18614:142::-;;;;;;;;;;;;;:::i;8241:80::-;;;;;;;;;;-1:-1:-1;8241:80:0;;5392:1;4195:36:1;;4183:2;4168:18;8241:80:0;4053:184:1;13958:126:0;;;;;;;;;;-1:-1:-1;13958:126:0;;;;;:::i;:::-;;:::i;9739:219::-;;;;;;;;;;-1:-1:-1;9739:219:0;;;;;:::i;:::-;;:::i;6864:30::-;;;;;;;;;;-1:-1:-1;6864:30:0;;;;-1:-1:-1;;;6864:30:0;;;;;;8587:105;;;;;;;;;;-1:-1:-1;8587:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8671:18:0;8653:7;8671:18;;;:9;:18;;;;;;;8587:105;3103:148;;;;;;;;;;;;;:::i;14313:308::-;;;;;;;;;;-1:-1:-1;14313:308:0;;;;;:::i;:::-;;:::i;5530:61::-;;;;;;;;;;;;;;;;17801:455;;;;;;;;;;-1:-1:-1;17801:455:0;;;;;:::i;:::-;;:::i;5465:58::-;;;;;;;;;;;;;;;;8503:78;;;;;;;;;;-1:-1:-1;8555:7:0;2954:6;-1:-1:-1;;;;;2954:6:0;8503:78;;;-1:-1:-1;;;;;5400:32:1;;;5382:51;;5370:2;5355:18;8503:78:0;5236:203:1;13801:149:0;;;;;;;;;;;;;:::i;14844:176::-;;;;;;;;;;;;;:::i;2889:79::-;;;;;;;;;;-1:-1:-1;2927:7:0;2954:6;-1:-1:-1;;;;;2954:6:0;2889:79;;17214:579;;;;;;;;;;-1:-1:-1;17214:579:0;;;;;:::i;:::-;;:::i;8327:84::-;;;;;;;;;;-1:-1:-1;8401:7:0;;;;;;;;;;;;-1:-1:-1;;;8401:7:0;;;;8327:84;;17086:120;;;;;;;;;;-1:-1:-1;17086:120:0;;;;;:::i;:::-;;:::i;18428:174::-;;;;;;;;;;-1:-1:-1;18428:174:0;;;;;:::i;:::-;;:::i;6788:19::-;;;;;;;;;;-1:-1:-1;6788:19:0;;;;-1:-1:-1;;;;;6788:19:0;;;9193:156;;;;;;;;;;-1:-1:-1;9193:156:0;;;;;:::i;:::-;;:::i;2509:21::-;;;;;;;;;;-1:-1:-1;2509:21:0;;;;-1:-1:-1;;;;;2509:21:0;;;9966:187;;;;;;;;;;-1:-1:-1;9966:187:0;;;;;:::i;:::-;;:::i;16921:157::-;;;;;;;;;;-1:-1:-1;16921:157:0;;;;;:::i;:::-;;:::i;14629:207::-;;;;;;;;;;-1:-1:-1;14629:207:0;;;;;:::i;:::-;;:::i;13572:77::-;;;;;;;;;;;;;:::i;18764:167::-;;;;;;;;;;-1:-1:-1;18764:167:0;;;;;:::i;:::-;;:::i;13365:198::-;;;;;;;;;;-1:-1:-1;13365:198:0;;;;;:::i;:::-;;:::i;8698:133::-;;;;;;;;;;-1:-1:-1;8698:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8800:19:0;;;8782:7;8800:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8698:133;3259:244;;;;;;;;;;-1:-1:-1;3259:244:0;;;;;:::i;:::-;;:::i;13657:136::-;;;;;;;;;;;;;:::i;6718:24::-;;;;;;;;;;-1:-1:-1;6718:24:0;;;;-1:-1:-1;;;;;6718:24:0;;;18264:156;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;;;;;;;;;18356:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18356:22:0::1;-1:-1:-1::0;;;;18356:22:0;;::::1;::::0;;;::::1;::::0;;;18389:13:::1;:23:::0;18264:156::o;9063:122::-;9118:4;9142:35;9150:7;-1:-1:-1;;9142:7:0;:35::i;:::-;9135:42;9063:122;-1:-1:-1;;9063:122:0:o;8839:216::-;8943:10;8914:4;8931:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8931:32:0;;;;;;;;;;:41;;;8988:37;8914:4;;8931:32;;8988:37;;;;8966:6;730:25:1;;718:2;703:18;;584:177;8988:37:0;;;;;;;;-1:-1:-1;9043:4:0;8839:216;;;;:::o;18939:150::-;19019:4;19075:6;19043:29;19063:8;19043:19;:29::i;:::-;:38;;18939:150;-1:-1:-1;;;18939:150:0:o;14096:209::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;14195:9:::1;14191:107;14213:8;:15;14209:1;:19;14191:107;;;14279:5;14249:14;:27;14264:8;14273:1;14264:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14249:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14249:27:0;:35;;-1:-1:-1;;14249:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14230:3;::::1;::::0;::::1;:::i;:::-;;;;14191:107;;;;14096:209:::0;;:::o;9357:370::-;-1:-1:-1;;;;;9477:19:0;;9457:4;9477:19;;;:11;:19;;;;;;;;9497:10;9477:31;;;;;;;;-1:-1:-1;;9477:52:0;9474:186;;9579:69;;;;;;;;;;;-1:-1:-1;;;9579:69:0;;;;;;;;-1:-1:-1;;;;;9579:19:0;;-1:-1:-1;9579:19:0;;;:11;:19;;;;;9599:10;9579:31;;;;;;;;;;:69;;9615:6;;9579:35;:69::i;:::-;-1:-1:-1;;;;;9545:19:0;;;;;;:11;:19;;;;;;;;9565:10;9545:31;;;;;;;:103;9474:186;9679:40;9693:6;9701:9;9712:6;9679:13;:40::i;:::-;9672:47;;9357:370;;;;;;:::o;18614:142::-;18742:4;;-1:-1:-1;;;;;18742:4:0;18667:7;8671:18;;;:9;:18;;;;;;18694:54;;18721:4;;-1:-1:-1;;;;;18721:4:0;8653:7;8671:18;;;:9;:18;;;;;;18694:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18687:61;;18614:142;:::o;13958:126::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14045:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;14045:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13958:126::o;9739:219::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;9858:4:::1;9843:12;;:19;;;;:::i;:::-;9824:15;;:38;;9816:47;;;::::0;::::1;;9928:4;9909:14;9894:12;;:29;;;;:::i;:::-;9893:39;;;;:::i;:::-;9875:15;:57:::0;-1:-1:-1;9739:219:0:o;3103:148::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;3210:1:::1;3194:6:::0;;3173:40:::1;::::0;-1:-1:-1;;;;;3194:6:0;;::::1;::::0;3173:40:::1;::::0;3210:1;;3173:40:::1;3241:1;3224:19:::0;;-1:-1:-1;;;;;;3224:19:0::1;::::0;;3103:148::o;14313:308::-;14433:10;14392:4;14417:27;;;:15;:27;;;;;;;;14409:36;;;;;;14456:6;14466:1;14456:11;14453:95;;14492:44;;-1:-1:-1;;;14492:44:0;;14530:4;14492:44;;;5382:51:1;-1:-1:-1;;;;;14492:29:0;;;;;5355:18:1;;14492:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14483:53;;14453:95;14565:48;;-1:-1:-1;;;14565:48:0;;14594:10;14565:48;;;8307:51:1;8374:18;;;8367:34;;;-1:-1:-1;;;;;14565:28:0;;;;;8280:18:1;;14565:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17801:455::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;18006:21:::1;:46:::0;;-1:-1:-1;;;;;;18006:46:0;;::::1;-1:-1:-1::0;;;;;18006:46:0;;::::1;;::::0;;;18063:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18118:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18169:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18214:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17801:455::o;13801:149::-;13866:10;13850:27;;;;:15;:27;;;;;;;;13842:36;;;;;;13889:51;;13897:10;;13918:21;13889:51;;;;;;;;;13918:21;13897:10;13889:51;;;;;;;;;;;;;;;;;;;;;13801:149::o;14844:176::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;14897:11:::1;:18:::0;;-1:-1:-1;;;;14897:18:0::1;-1:-1:-1::0;;;14897:18:0::1;::::0;;14942:3:::1;14926:13;:19:::0;;;14897:11:::1;14956:20:::0;15008:4:::1;14987:18;:25:::0;14844:176::o;17214:579::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;17400:12:::1;:28:::0;;;17439:7:::1;:18:::0;;;17468:12:::1;:28:::0;;;17507:10:::1;:24:::0;;;17542:7:::1;:18:::0;;;17582:77:::1;17552:8:::0;17582:63:::1;17520:11:::0;17582:63;17483:13;17582:63;17415:13;17449:8;17582:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;17571:8;:88:::0;17670:14:::1;:32:::0;;;17732:18:::1;17749:1;17687:15:::0;17732:18:::1;:::i;:::-;17721:8;;:29;17713:71;;;::::0;-1:-1:-1;;;17713:71:0;;8864:2:1;17713:71:0::1;::::0;::::1;8846:21:1::0;8903:2;8883:18;;;8876:30;8942:31;8922:18;;;8915:59;8991:18;;17713:71:0::1;8662:353:1::0;17713:71:0::1;17214:579:::0;;;;;;:::o;17086:120::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17166:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17166:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17086:120::o;18428:174::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;18517:15:::1;:25:::0;;;;18553:26:::1;:41:::0;18428:174::o;9193:156::-;9273:4;9297:44;9311:10;9323:9;9334:6;9297:13;:44::i;9966:187::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;10076:4:::1;10061:12;;:19;;;;:::i;:::-;10045:12;;:35;;10037:44;;;::::0;::::1;;10141:4;10124:12;10109;;:27;;;;:::i;:::-;10108:37;;;;:::i;:::-;10093:12;:52:::0;-1:-1:-1;9966:187:0:o;16921:157::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16999:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16999:28:0;;::::1;::::0;::::1;::::0;;;17038:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16921:157::o;14629:207::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;14721:14:::1;:22:::0;;;;14754:13:::1;:20:::0;;;;14785:18:::1;:27:::0;14629:207::o;13572:77::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;13625:10:::1;:8;:10::i;:::-;13572:77::o:0;18764:167::-;18832:7;18859:64;18900:22;:20;:22::i;:::-;18882:4;;-1:-1:-1;;;;;18882:4:0;8653:7;8671:18;;;:9;:18;;;;;;18859:36;;18872:22;;18892:1;;18872:15;:19;;:22::i;:::-;18859:8;;:12;:36::i;:::-;:40;;:64::i;13365:198::-;13494:15;;13454:21;;-1:-1:-1;;;;;13494:15:0;13486:69;13551:3;13520:28;13532:16;13454:21;13520:28;:::i;:::-;:34;;;;:::i;:::-;13486:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3259:244;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3348:22:0;::::1;3340:73;;;::::0;-1:-1:-1;;;3340:73:0;;9222:2:1;3340:73:0::1;::::0;::::1;9204:21:1::0;9261:2;9241:18;;;9234:30;9300:34;9280:18;;;9273:62;-1:-1:-1;;;9351:18:1;;;9344:36;9397:19;;3340:73:0::1;9020:402:1::0;3340:73:0::1;3450:6;::::0;;3429:38:::1;::::0;-1:-1:-1;;;;;3429:38:0;;::::1;::::0;3450:6;::::1;::::0;3429:38:::1;::::0;::::1;3478:6;:17:::0;;-1:-1:-1;;;;;;3478:17:0::1;-1:-1:-1::0;;;;;3478:17:0;;;::::1;::::0;;;::::1;::::0;;3259:244::o;13657:136::-;3016:6;;-1:-1:-1;;;;;3016:6:0;2326:10;3016:22;3008:67;;;;-1:-1:-1;;;3008:67:0;;;;;;;:::i;:::-;13733:12:::1;::::0;13715:15:::1;:30:::0;;;13756:12:::1;:27:::0;13657:136::o;490:192::-;576:7;612:12;604:6;;;;596:29;;;;-1:-1:-1;;;596:29:0;;;;;;;;:::i;:::-;-1:-1:-1;636:9:0;648:5;652:1;648;:5;:::i;:::-;636:17;490:192;-1:-1:-1;;;;;490:192:0:o;10170:1329::-;-1:-1:-1;;;;;10288:22:0;;10262:4;10288:22;;;:14;:22;;;;;;;;10287:23;:53;;;;-1:-1:-1;;;;;;10315:25:0;;;;;;:14;:25;;;;;;;;10314:26;10287:53;10279:79;;;;-1:-1:-1;;;10279:79:0;;9762:2:1;10279:79:0;;;9744:21:1;9801:2;9781:18;;;9774:30;-1:-1:-1;;;9820:18:1;;;9813:43;9873:18;;10279:79:0;9560:337:1;10279:79:0;10374:6;;;;10371:63;;;10390:41;10405:6;10413:9;10424:6;10390:14;:41::i;:::-;10383:48;;;;10371:63;-1:-1:-1;;;;;10450:22:0;;;;;;:14;:22;;;;;;;;10449:23;:53;;;;-1:-1:-1;;;;;;10477:25:0;;;;;;:14;:25;;;;;;;;10476:26;10449:53;10446:140;;;10526:11;;-1:-1:-1;;;10526:11:0;;;;10518:43;;;;-1:-1:-1;;;10518:43:0;;10104:2:1;10518:43:0;;;10086:21:1;10143:2;10123:18;;;10116:30;-1:-1:-1;;;10162:18:1;;;10155:50;10222:18;;10518:43:0;9902:344:1;10518:43:0;-1:-1:-1;;;;;10620:22:0;;;;;;:14;:22;;;;;;;;10619:23;:53;;;;-1:-1:-1;;;;;;10646:26:0;;10667:4;10646:26;;10619:53;:84;;;;-1:-1:-1;10698:4:0;;-1:-1:-1;;;;;10677:26:0;;;10698:4;;10677:26;;10619:84;:105;;;;-1:-1:-1;10720:4:0;;-1:-1:-1;;;;;10707:17:0;;;10720:4;;10707:17;;10619:105;:137;;;;-1:-1:-1;10741:15:0;;-1:-1:-1;;;;;10728:28:0;;;10741:15;;10728:28;;10619:137;:174;;;;-1:-1:-1;10773:20:0;;-1:-1:-1;;;;;10760:33:0;;;10773:20;;10760:33;;10619:174;:205;;;;-1:-1:-1;;;;;;10798:26:0;;;;;;:15;:26;;;;;;;;10797:27;10619:205;10615:397;;;-1:-1:-1;;;;;8671:18:0;;10840;8671;;;:9;:18;;;;;;10929:15;;10905:19;10918:6;8671:18;10905:19;:::i;:::-;10904:40;;10896:114;;;;-1:-1:-1;;;10896:114:0;;10583:2:1;10896:114:0;;;10565:21:1;10622:2;10602:18;;;10595:30;10661:34;10641:18;;;10634:62;10732:32;10712:18;;;10705:60;10782:19;;10896:114:0;10381:426:1;10896:114:0;10825:187;10615:397;11033:28;11046:6;11054;11033:12;:28::i;:::-;11078:16;:14;:16::i;:::-;11075:35;;;11097:10;:8;:10::i;:::-;11150:53;;;;;;;;;;;-1:-1:-1;;;11150:53:0;;;;;;;;-1:-1:-1;;;;;11150:17:0;;-1:-1:-1;11150:17:0;;;:9;:17;;;;;;;;:53;;11172:6;;11150:21;:53::i;:::-;-1:-1:-1;;;;;11130:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11242:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11265:22:0;;;;;;:11;:22;;;;;;;;11242:45;11241:93;;11300:34;11308:6;11316;11324:9;11300:7;:34::i;:::-;11241:93;;;11291:6;11241:93;-1:-1:-1;;;;;11368:20:0;;;;;;:9;:20;;;;;;11216:118;;-1:-1:-1;11368:40:0;;11216:118;11368:24;:40::i;:::-;-1:-1:-1;;;;;11345:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11426:43;;;;;;-1:-1:-1;;;;;;;;;;;11426:43:0;;;11454:14;730:25:1;;718:2;703:18;;584:177;11426:43:0;;;;;;;;-1:-1:-1;11487:4:0;;10170:1329;-1:-1:-1;;;;10170:1329:0:o;348:136::-;406:7;433:43;437:1;440;433:43;;;;;;;;;;;;;;;;;:3;:43::i;161:181::-;219:7;;251:5;255:1;251;:5;:::i;:::-;239:17;;280:1;275;:6;;267:46;;;;-1:-1:-1;;;267:46:0;;11014:2:1;267:46:0;;;10996:21:1;11053:2;11033:18;;;11026:30;11092:29;11072:18;;;11065:57;11139:18;;267:46:0;10812:351:1;15036:1877:0;7006:6;:13;;-1:-1:-1;;7006:13:0;7015:4;7006:13;;;15131:15:::1;::::0;15148:26:::1;::::0;7006:6;;15115:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15182:12;;15115:79;;;15178:1;15115:79;15085:109;;15205:23;15231:59;15288:1;15231:52;15274:8;;15231:38;15249:19;15231:13;;:17;;:38;;;;:::i;:59::-;15205:85;;15301:20;15324:34;15342:15;15324:13;;:17;;:34;;;;:::i;:::-;15395:16;::::0;;15409:1:::1;15395:16:::0;;;;;::::1;::::0;;15301:57;;-1:-1:-1;15371:21:0::1;::::0;15395:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15395:16:0::1;15371:40;;15440:4;15422;15427:1;15422:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15422:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15466:4:::1;::::0;15456:7;;15466:4;::::1;::::0;15456;;15466;;15456:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15456:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15541:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15541:188:0;;15507:21:::1;::::0;15541:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15613:12;;15483:21:::1;::::0;15656:4;;15683::::1;::::0;15703:15:::1;::::0;15541:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15742:17;15762:40;15788:13;15762:21;:25;;:40;;;;:::i;:::-;15742:60:::0;-1:-1:-1;15815:19:0::1;15837:40;15850:26;:19:::0;15874:1:::1;15850:23;:26::i;:::-;15837:8;::::0;;:12:::1;:40::i;:::-;15815:62:::0;-1:-1:-1;15898:26:0::1;15927:58;15983:1;15927:51;15815:62:::0;15927:51;:9;15941:19;15927:13:::1;:34::i;:58::-;15898:87;;15996:26;16025:44;16057:11;16025:27;16039:12;;16025:9;:13;;:27;;;;:::i;:44::-;15996:73;;16080:21;16104:39;16131:11;16104:22;16118:7;;16104:9;:13;;:22;;;;:::i;:39::-;16080:63;;16154:24;16181:42;16211:11;16181:25;16195:10;;16181:9;:13;;:25;;;;:::i;:42::-;16265:20;::::0;16257:65:::1;::::0;16154:69;;-1:-1:-1;16237:15:0::1;::::0;-1:-1:-1;;;;;16265:20:0;;::::1;::::0;16299:18;;16237:15;16257:65;16237:15;16257:65;16299:18;16265:20;16257:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16357:18:0::1;::::0;16349:61:::1;::::0;16236:86;;-1:-1:-1;;;;;;16357:18:0::1;::::0;16389:16;;16349:61:::1;::::0;;;16389:16;16357:18;16349:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16445:15:0::1;::::0;16437:55:::1;::::0;16333:77;;-1:-1:-1;;;;;;16445:15:0::1;::::0;16474:13;;16437:55:::1;::::0;;;16474:13;16445:15;16437:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16526:5:0::1;::::0;-1:-1:-1;;16547:19:0;;;-1:-1:-1;16544:362:0::1;;16582:6;::::0;16756:21:::1;::::0;16582:244:::1;::::0;-1:-1:-1;;;16582:244:0;;16658:4:::1;16582:244;::::0;::::1;12704:34:1::0;12754:18;;;12747:34;;;16582:6:0::1;12797:18:1::0;;;12790:34;;;12840:18;;;12833:34;-1:-1:-1;;;;;16756:21:0;;::::1;12883:19:1::0;;;12876:44;16796:15:0::1;12936:19:1::0;;;12929:35;16582:6:0;::::1;::::0;:22:::1;::::0;16612:18;;12638:19:1;;16582:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16846:48:0::1;::::0;;13460:25:1;;;13516:2;13501:18;;13494:34;;;16846:48:0::1;::::0;-1:-1:-1;13433:18:1;16846:48:0::1;;;;;;;16544:362;-1:-1:-1::0;;7024:6:0;:14;;-1:-1:-1;;7024:14:0;;;-1:-1:-1;;;;;;;;;;15036:1877:0:o;688:250::-;746:7;770:1;775;770:6;766:47;;-1:-1:-1;800:1:0;793:8;;766:47;825:9;837:5;841:1;837;:5;:::i;:::-;825:17;-1:-1:-1;870:1:0;861:5;865:1;825:17;861:5;:::i;:::-;:10;853:56;;;;-1:-1:-1;;;853:56:0;;13741:2:1;853:56:0;;;13723:21:1;13780:2;13760:18;;;13753:30;13819:34;13799:18;;;13792:62;-1:-1:-1;;;13870:18:1;;;13863:31;13911:19;;853:56:0;13539:397:1;944:132:0;1002:7;1029:39;1033:1;1036;1029:39;;;;;;;;;;;;;;;;;:3;:39::i;11511:330::-;11641:53;;;;;;;;;;;-1:-1:-1;;;11641:53:0;;;;;;;;-1:-1:-1;;;;;11641:17:0;;11604:4;11641:17;;;:9;:17;;;;;;;:53;;11663:6;;11641:21;:53::i;:::-;-1:-1:-1;;;;;11621:17:0;;;;;;;:9;:17;;;;;;:73;;;;11728:20;;;;;;;:32;;11753:6;11728:24;:32::i;:::-;-1:-1:-1;;;;;11705:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11776:35;;;;;;-1:-1:-1;;;;;;;;;;;11776:35:0;;;11804:6;730:25:1;;718:2;703:18;;584:177;11776:35:0;;;;;;;;-1:-1:-1;11829:4:0;11511:330;;;;;:::o;11849:166::-;11946:12;;11936:6;:22;;:49;;;-1:-1:-1;;;;;;11962:23:0;;;;;;:15;:23;;;;;;;;11936:49;11928:79;;;;-1:-1:-1;;;11928:79:0;;14143:2:1;11928:79:0;;;14125:21:1;14182:2;14162:18;;;14155:30;-1:-1:-1;;;14201:18:1;;;14194:47;14258:18;;11928:79:0;13941:341:1;11928:79:0;11849:166;;:::o;13160:197::-;13247:4;;13209;;-1:-1:-1;;;;;13247:4:0;13233:10;:18;;;;:38;;-1:-1:-1;13265:6:0;;;;13264:7;13233:38;:62;;;;-1:-1:-1;13284:11:0;;-1:-1:-1;;;13284:11:0;;;;13233:62;:116;;;;-1:-1:-1;;13336:13:0;;13326:4;13308:24;;;;:9;:24;;;;;;:41;;;13160:197::o;12145:1007::-;12282:18;;12329:4;;12231:7;;12282:18;-1:-1:-1;;;;;12329:4:0;;;12316:17;;;;12313:154;;-1:-1:-1;12363:14:0;;12313:154;;;12408:4;;-1:-1:-1;;;;;12408:4:0;;;12398:14;;;;12395:72;;-1:-1:-1;12442:13:0;;12395:72;12479:17;12499:62;12540:14;;12557:3;12540:20;;;;:::i;:::-;12499:36;12524:10;12499:20;12510:8;;12499:6;:10;;:20;;;;:::i;:62::-;12479:82;;12572:18;12593:36;12620:8;;12593:22;12607:7;;12593:9;:13;;:22;;;;:::i;:36::-;12572:57;-1:-1:-1;12640:22:0;12665:25;:9;12572:57;12665:13;:25::i;:::-;12748:4;12730:24;;;;:9;:24;;;;;;12640:50;;-1:-1:-1;12730:44:0;;12640:50;12730:28;:44::i;:::-;12721:4;12703:24;;;;:9;:24;;;;;;:71;;;;12824:15;;-1:-1:-1;;;;;12824:15:0;12814:26;;;;:42;;12845:10;12814:30;:42::i;:::-;12795:15;;-1:-1:-1;;;;;12795:15:0;;;12785:26;;;;:9;:26;;;;;;;;;:71;;;;12872:47;730:25:1;;;12897:4:0;;12872:47;;;;-1:-1:-1;;;;;;;;;;;12872:47:0;703:18:1;12872:47:0;;;;;;;12953:14;;12950:154;;12998:12;;:28;;13015:10;12998:16;:28::i;:::-;12983:12;:43;13063:4;;13046:34;;730:25:1;;;-1:-1:-1;;;;;13063:4:0;;;;13046:34;;;-1:-1:-1;;;;;;;;;;;13046:34:0;718:2:1;703:18;13046:34:0;;;;;;;12950:154;13123:21;:6;13134:9;13123:10;:21::i;:::-;13116:28;12145:1007;-1:-1:-1;;;;;;;;12145:1007:0:o;1082:189::-;1168:7;1203:12;1196:5;1188:28;;;;-1:-1:-1;;;1188:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1227:9:0;1239:5;1243:1;1239;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:128;202:20;;231:28;202:20;231:28;:::i;:::-;137:128;;;:::o;270:309::-;335:6;343;396:2;384:9;375:7;371:23;367:32;364:52;;;412:1;409;402:12;364:52;451:9;438:23;470:28;492:5;470:28;:::i;:::-;517:5;569:2;554:18;;;;541:32;;-1:-1:-1;;;270:309:1:o;766:173::-;834:20;;-1:-1:-1;;;;;883:31:1;;873:42;;863:70;;929:1;926;919:12;944:186;1003:6;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;1327:548::-;1439:4;1468:2;1497;1486:9;1479:21;1529:6;1523:13;1572:6;1567:2;1556:9;1552:18;1545:34;1597:1;1607:140;1621:6;1618:1;1615:13;1607:140;;;1716:14;;;1712:23;;1706:30;1682:17;;;1701:2;1678:26;1671:66;1636:10;;1607:140;;;1611:3;1796:1;1791:2;1782:6;1771:9;1767:22;1763:31;1756:42;1866:2;1859;1855:7;1850:2;1842:6;1838:15;1834:29;1823:9;1819:45;1815:54;1807:62;;;;1327:548;;;;:::o;1880:254::-;1948:6;1956;2009:2;1997:9;1988:7;1984:23;1980:32;1977:52;;;2025:1;2022;2015:12;1977:52;2048:29;2067:9;2048:29;:::i;2139:248::-;2207:6;2215;2268:2;2256:9;2247:7;2243:23;2239:32;2236:52;;;2284:1;2281;2274:12;2236:52;-1:-1:-1;;2307:23:1;;;2377:2;2362:18;;;2349:32;;-1:-1:-1;2139:248:1:o;2392:127::-;2453:10;2448:3;2444:20;2441:1;2434:31;2484:4;2481:1;2474:15;2508:4;2505:1;2498:15;2524:1191;2614:6;2622;2675:2;2663:9;2654:7;2650:23;2646:32;2643:52;;;2691:1;2688;2681:12;2643:52;2731:9;2718:23;2760:18;2801:2;2793:6;2790:14;2787:34;;;2817:1;2814;2807:12;2787:34;2855:6;2844:9;2840:22;2830:32;;2900:7;2893:4;2889:2;2885:13;2881:27;2871:55;;2922:1;2919;2912:12;2871:55;2958:2;2945:16;2980:4;3003:2;2999;2996:10;2993:36;;;3009:18;;:::i;:::-;3055:2;3052:1;3048:10;3087:2;3081:9;3150:2;3146:7;3141:2;3137;3133:11;3129:25;3121:6;3117:38;3205:6;3193:10;3190:22;3185:2;3173:10;3170:18;3167:46;3164:72;;;3216:18;;:::i;:::-;3252:2;3245:22;3302:18;;;3336:15;;;;-1:-1:-1;3378:11:1;;;3374:20;;;3406:19;;;3403:39;;;3438:1;3435;3428:12;3403:39;3462:11;;;;3482:148;3498:6;3493:3;3490:15;3482:148;;;3564:23;3583:3;3564:23;:::i;:::-;3552:36;;3515:12;;;;3608;;;;3482:148;;;3649:6;-1:-1:-1;3674:35:1;;-1:-1:-1;3690:18:1;;;3674:35;:::i;:::-;3664:45;;;;;;2524:1191;;;;;:::o;3720:328::-;3797:6;3805;3813;3866:2;3854:9;3845:7;3841:23;3837:32;3834:52;;;3882:1;3879;3872:12;3834:52;3905:29;3924:9;3905:29;:::i;:::-;3895:39;;3953:38;3987:2;3976:9;3972:18;3953:38;:::i;:::-;3943:48;;4038:2;4027:9;4023:18;4010:32;4000:42;;3720:328;;;;;:::o;4242:315::-;4307:6;4315;4368:2;4356:9;4347:7;4343:23;4339:32;4336:52;;;4384:1;4381;4374:12;4336:52;4407:29;4426:9;4407:29;:::i;:::-;4397:39;;4486:2;4475:9;4471:18;4458:32;4499:28;4521:5;4499:28;:::i;:::-;4546:5;4536:15;;;4242:315;;;;;:::o;4562:180::-;4621:6;4674:2;4662:9;4653:7;4649:23;4645:32;4642:52;;;4690:1;4687;4680:12;4642:52;-1:-1:-1;4713:23:1;;4562:180;-1:-1:-1;4562:180:1:o;4747:484::-;4842:6;4850;4858;4866;4874;4927:3;4915:9;4906:7;4902:23;4898:33;4895:53;;;4944:1;4941;4934:12;4895:53;4967:29;4986:9;4967:29;:::i;:::-;4957:39;;5015:38;5049:2;5038:9;5034:18;5015:38;:::i;:::-;5005:48;;5072:38;5106:2;5095:9;5091:18;5072:38;:::i;:::-;5062:48;;5129:38;5163:2;5152:9;5148:18;5129:38;:::i;:::-;5119:48;;5186:39;5220:3;5209:9;5205:19;5186:39;:::i;:::-;5176:49;;4747:484;;;;;;;;:::o;5444:523::-;5548:6;5556;5564;5572;5580;5588;5641:3;5629:9;5620:7;5616:23;5612:33;5609:53;;;5658:1;5655;5648:12;5609:53;-1:-1:-1;;5681:23:1;;;5751:2;5736:18;;5723:32;;-1:-1:-1;5802:2:1;5787:18;;5774:32;;5853:2;5838:18;;5825:32;;-1:-1:-1;5904:3:1;5889:19;;5876:33;;-1:-1:-1;5956:3:1;5941:19;5928:33;;-1:-1:-1;5444:523:1;-1:-1:-1;5444:523:1:o;5972:316::-;6049:6;6057;6065;6118:2;6106:9;6097:7;6093:23;6089:32;6086:52;;;6134:1;6131;6124:12;6086:52;-1:-1:-1;;6157:23:1;;;6227:2;6212:18;;6199:32;;-1:-1:-1;6278:2:1;6263:18;;;6250:32;;5972:316;-1:-1:-1;5972:316:1:o;6293:260::-;6361:6;6369;6422:2;6410:9;6401:7;6397:23;6393:32;6390:52;;;6438:1;6435;6428:12;6390:52;6461:29;6480:9;6461:29;:::i;:::-;6451:39;;6509:38;6543:2;6532:9;6528:18;6509:38;:::i;:::-;6499:48;;6293:260;;;;;:::o;6784:356::-;6986:2;6968:21;;;7005:18;;;6998:30;7064:34;7059:2;7044:18;;7037:62;7131:2;7116:18;;6784:356::o;7145:127::-;7206:10;7201:3;7197:20;7194:1;7187:31;7237:4;7234:1;7227:15;7261:4;7258:1;7251:15;7277:127;7338:10;7333:3;7329:20;7326:1;7319:31;7369:4;7366:1;7359:15;7393:4;7390:1;7383:15;7409:135;7448:3;7469:17;;;7466:43;;7489:18;;:::i;:::-;-1:-1:-1;7536:1:1;7525:13;;7409:135::o;7549:217::-;7589:1;7615;7605:132;;7659:10;7654:3;7650:20;7647:1;7640:31;7694:4;7691:1;7684:15;7722:4;7719:1;7712:15;7605:132;-1:-1:-1;7751:9:1;;7549:217::o;7771:168::-;7844:9;;;7875;;7892:15;;;7886:22;;7872:37;7862:71;;7913:18;;:::i;7944:184::-;8014:6;8067:2;8055:9;8046:7;8042:23;8038:32;8035:52;;;8083:1;8080;8073:12;8035:52;-1:-1:-1;8106:16:1;;7944:184;-1:-1:-1;7944:184:1:o;8412:245::-;8479:6;8532:2;8520:9;8511:7;8507:23;8503:32;8500:52;;;8548:1;8545;8538:12;8500:52;8580:9;8574:16;8599:28;8621:5;8599:28;:::i;9427:128::-;9494:9;;;9515:11;;;9512:37;;;9529:18;;:::i;10251:125::-;10316:9;;;10337:10;;;10334:36;;;10350:18;;:::i;11168:980::-;11430:4;11478:3;11467:9;11463:19;11509:6;11498:9;11491:25;11535:2;11573:6;11568:2;11557:9;11553:18;11546:34;11616:3;11611:2;11600:9;11596:18;11589:31;11640:6;11675;11669:13;11706:6;11698;11691:22;11744:3;11733:9;11729:19;11722:26;;11783:2;11775:6;11771:15;11757:29;;11804:1;11814:195;11828:6;11825:1;11822:13;11814:195;;;11893:13;;-1:-1:-1;;;;;11889:39:1;11877:52;;11984:15;;;;11949:12;;;;11925:1;11843:9;11814:195;;;-1:-1:-1;;;;;;;12065:32:1;;;;12060:2;12045:18;;12038:60;-1:-1:-1;;;12129:3:1;12114:19;12107:35;12026:3;11168:980;-1:-1:-1;;;11168:980:1:o;12975:306::-;13063:6;13071;13079;13132:2;13120:9;13111:7;13107:23;13103:32;13100:52;;;13148:1;13145;13138:12;13100:52;13177:9;13171:16;13161:26;;13227:2;13216:9;13212:18;13206:25;13196:35;;13271:2;13260:9;13256:18;13250:25;13240:35;;12975:306;;;;;:::o

Swarm Source

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