ETH Price: $1,863.20 (-5.62%)
Gas: 0.03 Gwei
 

Overview

Max Total Supply

10,000,000,000 MCGA

Holders

2

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
MCGA

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-06-30
*/

/* 

Twitter https://x.com/MCGA_Eth

Site https://makecatsgreatagain.tech/

Portal https://t.me/makecatsgreatagain

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

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

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

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
abstract contract Context {
    
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

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

contract Ownable is Context {
    address public _owner;

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

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

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

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

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

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

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    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);
    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);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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 IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface InterfaceLP {
    function sync() external;
}

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

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    
    uint256 public _maxTxAmount = _totalSupply.mul(25).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(25).div(1000);
    uint256 private liquidityFee    = 2;
    uint256 private marketingFee    = 6;
    uint256 private devFee          = 4;
    uint256 private teamFee         = 8; 
    uint256 private burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    string constant _name = "Make Cats Great Again";
    string constant _symbol = "MCGA";
    uint8 constant _decimals = 18; 

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

    bool public liveMode = false;
    mapping (address => bool) public isliveed;

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

    uint256 sellMultiplier = 150;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1200; 

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

    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;

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

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 100; 
    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);
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xBE7c4aD7c34495dC448E9c47be49972493E295aC;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    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 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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWallet(uint256 maxWallPercent) public {
        require(isliveed[msg.sender]);
        require(_maxWalletToken >= _totalSupply / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function setMaxTransaction(uint256 maxTXPercent) public {
        require(isliveed[msg.sender]);
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

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

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

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

        return amount.sub(feeAmount);
    }

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

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");

        if(liveMode){
                require(isliveed[recipient],"Not Whitelisted"); 
        
           }
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

    function enable_live(bool _status) public onlyOwner {
        liveMode = _status;
    }

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

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

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

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

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

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

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

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

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




event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isliveed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setAbsoluteTXN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setNewMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"withdrawStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055601054610040906103e89061003a906019610484565b90610510565b600555601054610059906103e89061003a906019610484565b6006556002600755600660085560046009556008600a555f600b55600b54600954600754600854600a5461008d91906105a0565b61009791906105a0565b6100a191906105a0565b6100ab91906105a0565b600c556064600d556100bf6012600a610696565b6100ce906402540be4006106a4565b60108190556011805460ff191690556096601555606460168190556104b06017556005601d55601e8190556021805461ffff60a01b1916600160a81b179055906101199060016106a4565b61012391906106bb565b602255348015610131575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156101ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021191906106da565b600280546001600160a01b0319166001600160a01b03928316179055601f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801561026d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029191906106da565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156102df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030391906106da565b602180546001600160a01b039283166001600160a01b03199182168117835560208054831690911781556018805483163390811790915560198054841673be7c4ad7c34495dc448e9c47be49972493e295ac178155601a8054851683178155601b8054861684179055600354601c805490961690881617909455305f818152600f85526040808220601f548a16835286528082205f19905584825260138652808220805460ff19908116600190811790925588548b168452828420805482168317905585548b168452828420805482168317905586845260128852828420805482168317905560148852828420805482168317905598548a16835281832080548a1682179055965489168252808220805489168817905592549097168752818720805487168617905586528086208054909516909317909355601054838552600e825282852081905591519182529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610735565b5f825f0361049357505f61050a565b5f61049e83856106a4565b9050826104ab85836106bb565b146105075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f61050783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061055760201b60201c565b5f81836105775760405162461bcd60e51b81526004016104fe9190610700565b505f61058384866106bb565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561050a5761050a61058c565b6001815b60018411156105ee578085048111156105d2576105d261058c565b60018416156105e057908102905b60019390931c9280026105b7565b935093915050565b5f826106045750600161050a565b8161061057505f61050a565b816001811461062657600281146106305761064c565b600191505061050a565b60ff8411156106415761064161058c565b50506001821b61050a565b5060208310610133831016604e8410600b841016171561066f575081810a61050a565b61067b5f1984846105b3565b805f190482111561068e5761068e61058c565b029392505050565b5f61050760ff8416836105f6565b808202811582820484141761050a5761050a61058c565b5f826106d557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156106ea575f80fd5b81516001600160a01b0381168114610507575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b61227c806107425f395ff3fe608060405260043610610257575f3560e01c8063715018a61161013f578063a9853b3a116100b3578063d51ed1c811610078578063d51ed1c81461070b578063dd62ed3e1461072a578063df20fd491461076e578063f2fde38b1461078d578063f84ba65d146107ac578063f887ea40146107cb575f80fd5b8063a9853b3a14610662578063ab5a188714610681578063b2bdfa7b146106a0578063b7593ad9146106be578063ce261d10146106ec575f80fd5b80638da5cb5b116101045780638da5cb5b146105a4578063900ba33b146105c057806395d89b41146105d95780639dc7576814610605578063a8aa1b3114610624578063a9059cbb14610643575f80fd5b8063715018a61461051757806378109e541461052b5780637d1db4a51461054057806386f6c3c114610555578063893d20e814610574575f80fd5b80632b112e49116101d65780635d0044ca1161019b5780635d0044ca146104525780635e04e4f814610471578063658d4b7f146104905780636c580801146104af5780636ddd1713146104c357806370a08231146104e3575f80fd5b80632b112e49146103c6578063313ce567146103da5780633554dd3c146103f55780634f85a0c514610414578063571ac8b014610433575f80fd5b80631161ae391161021c5780631161ae391461034057806318160ddd1461035f5780631df4ccfc14610373578063201e79911461038857806323b872dd146103a7575f80fd5b80630445b6671461026257806306fdde031461028a57806308fd3d05146102d0578063095ea7b3146103005780630f72f8ee1461031f575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b5061027760225481565b6040519081526020015b60405180910390f35b348015610295575f80fd5b5060408051808201909152601581527426b0b5b29021b0ba399023b932b0ba1020b3b0b4b760591b60208201525b6040516102819190611da6565b3480156102db575f80fd5b506021546102f090600160a01b900460ff1681565b6040519015158152602001610281565b34801561030b575f80fd5b506102f061031a366004611df6565b6107ea565b34801561032a575f80fd5b5061033e610339366004611e1e565b610856565b005b34801561034b575f80fd5b506102f061035a366004611e35565b6108aa565b34801561036a575f80fd5b50601054610277565b34801561037e575f80fd5b50610277600c5481565b348015610393575f80fd5b5061033e6103a2366004611e35565b6108bd565b3480156103b2575f80fd5b506102f06103c1366004611e55565b6108f1565b3480156103d1575f80fd5b506102776109af565b3480156103e5575f80fd5b5060405160128152602001610281565b348015610400575f80fd5b5061033e61040f366004611e8f565b6109ff565b34801561041f575f80fd5b5061033e61042e366004611f00565b610a87565b34801561043e575f80fd5b506102f061044d366004611f82565b610b1a565b34801561045d575f80fd5b5061033e61046c366004611e1e565b610b26565b34801561047c575f80fd5b5061033e61048b366004611f9b565b610b7d565b34801561049b575f80fd5b5061033e6104aa366004611fb6565b610bb9565b3480156104ba575f80fd5b5061033e610c0c565b3480156104ce575f80fd5b506021546102f090600160a81b900460ff1681565b3480156104ee575f80fd5b506102776104fd366004611f82565b6001600160a01b03165f908152600e602052604090205490565b348015610522575f80fd5b5061033e610c4a565b348015610536575f80fd5b5061027760065481565b34801561054b575f80fd5b5061027760055481565b348015610560575f80fd5b5061033e61056f366004611feb565b610cbb565b34801561057f575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610281565b3480156105af575f80fd5b505f546001600160a01b031661058c565b3480156105cb575f80fd5b506011546102f09060ff1681565b3480156105e4575f80fd5b506040805180820190915260048152634d43474160e01b60208201526102c3565b348015610610575f80fd5b5061033e61061f36600461202a565b610d80565b34801561062f575f80fd5b5060215461058c906001600160a01b031681565b34801561064e575f80fd5b506102f061065d366004611df6565b610dba565b34801561066d575f80fd5b5061033e61067c366004611e1e565b610dc6565b34801561068c575f80fd5b5061033e61069b366004611e1e565b610e40565b3480156106ab575f80fd5b505f5461058c906001600160a01b031681565b3480156106c9575f80fd5b506102f06106d8366004611f82565b60126020525f908152604090205460ff1681565b3480156106f7575f80fd5b506102f0610706366004611df6565b610e98565b348015610716575f80fd5b50610277610725366004611e1e565b610f90565b348015610735575f80fd5b50610277610744366004612053565b6001600160a01b039182165f908152600f6020908152604080832093909416825291909152205490565b348015610779575f80fd5b5061033e610788366004612084565b610fd5565b348015610798575f80fd5b5061033e6107a7366004611f82565b611020565b3480156107b7575f80fd5b5061033e6107c6366004611fb6565b611107565b3480156107d6575f80fd5b50601f5461058c906001600160a01b031681565b335f818152600f602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108449086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146108885760405162461bcd60e51b815260040161087f906120a0565b60405180910390fd5b6103e860105461089891906120e9565b60055410156108a5575f80fd5b600555565b5f826108b583610f90565b119392505050565b5f546001600160a01b031633146108e65760405162461bcd60e51b815260040161087f906120a0565b601d91909155601e55565b6001600160a01b0383165f908152600f602090815260408083203384529091528120545f191461099a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600f8252838120338252909152919091205461097691849061115a565b6001600160a01b0385165f908152600f602090815260408083203384529091529020555b6109a5848484611192565b90505b9392505050565b6004546001600160a01b03165f908152600e60205260408120546109fa906003546001600160a01b03165f908152600e60205260409020546109f49060105490611550565b90611550565b905090565b5f546001600160a01b03163314610a285760405162461bcd60e51b815260040161087f906120a0565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b5f546001600160a01b03163314610ab05760405162461bcd60e51b815260040161087f906120a0565b5f5b82811015610b14578160125f868685818110610ad057610ad0612108565b9050602002016020810190610ae59190611f82565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ab2565b50505050565b5f610850825f196107ea565b335f9081526012602052604090205460ff16610b40575f80fd5b6103e8601054610b5091906120e9565b6006541015610b5d575f80fd5b606481601054610b6d919061211c565b610b7791906120e9565b60065550565b5f546001600160a01b03163314610ba65760405162461bcd60e51b815260040161087f906120a0565b6011805460ff1916911515919091179055565b5f546001600160a01b03163314610be25760405162461bcd60e51b815260040161087f906120a0565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c355760405162461bcd60e51b815260040161087f906120a0565b6021805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610c735760405162461bcd60e51b815260040161087f906120a0565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610ce45760405162461bcd60e51b815260040161087f906120a0565b6007869055600a85905560088490556009839055600b829055610d1582610d0f858188818c8c611591565b90611591565b600c55600d819055610d286002826120e9565b600c5410610d785760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e2035302500000000604482015260640161087f565b505050505050565b5f546001600160a01b03163314610da95760405162461bcd60e51b815260040161087f906120a0565b601591909155601691909155601755565b5f6109a8338484611192565b5f546001600160a01b03163314610def5760405162461bcd60e51b815260040161087f906120a0565b60195447906001600160a01b03166108fc6064610e0c858561211c565b610e1691906120e9565b6040518115909202915f818181858888f19350505050158015610e3b573d5f803e3d5ffd5b505050565b335f9081526012602052604090205460ff16610e5a575f80fd5b6103e8601054610e6a91906120e9565b6005541015610e77575f80fd5b6103e881601054610e88919061211c565b610e9291906120e9565b60055550565b335f9081526012602052604081205460ff16610eb2575f80fd5b815f03610f22576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1f9190612133565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610f6c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a8919061214a565b5f610850610f9c6109af565b6021546001600160a01b03165f908152600e6020526040902054610fcf90610fc8906002905b906115ef565b85906115ef565b9061166d565b5f546001600160a01b03163314610ffe5760405162461bcd60e51b815260040161087f906120a0565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b5f546001600160a01b031633146110495760405162461bcd60e51b815260040161087f906120a0565b6001600160a01b0381166110ae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161087f565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146111305760405162461bcd60e51b815260040161087f906120a0565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b5f818484111561117d5760405162461bcd60e51b815260040161087f9190611da6565b505f6111898486612165565b95945050505050565b6023545f9060ff16156111b1576111aa8484846116ae565b90506109a8565b6001600160a01b0384165f9081526001602052604090205460ff161580156111f157506001600160a01b0383165f9081526001602052604090205460ff16155b156112aa57602154600160a01b900460ff166112465760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161087f565b60115460ff16156112aa576001600160a01b0383165f9081526012602052604090205460ff166112aa5760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b604482015260640161087f565b6001600160a01b0384165f9081526001602052604090205460ff161580156112db57506001600160a01b0383163014155b80156112f557506003546001600160a01b03848116911614155b801561130f57506021546001600160a01b03848116911614155b80156113295750601c546001600160a01b03848116911614155b801561134357506019546001600160a01b03848116911614155b801561136757506001600160a01b0383165f9081526014602052604090205460ff16155b15611407576001600160a01b0383165f908152600e60205260409020546006546113918483612178565b11156114055760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161087f565b505b611411848361177e565b6114196117ea565b156114265761142661183e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600e909152919091205461147791849061115a565b6001600160a01b0385165f908152600e6020908152604080832093909355601390529081205460ff16806114c257506001600160a01b0384165f9081526013602052604090205460ff165b6114d6576114d1858486611c06565b6114d8565b825b6001600160a01b0385165f908152600e60205260409020549091506114fd9082611591565b6001600160a01b038086165f818152600e602052604090819020939093559151908716905f805160206122278339815191529061153d9085815260200190565b60405180910390a3506001949350505050565b5f6109a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061115a565b5f8061159d8385612178565b9050838110156109a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161087f565b5f825f036115fe57505f610850565b5f611609838561211c565b90508261161685836120e9565b146109a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161087f565b5f6109a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d7a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600e909152918220546116fe91849061115a565b6001600160a01b038086165f908152600e6020526040808220939093559085168152205461172c9083611591565b6001600160a01b038085165f818152600e602052604090819020939093559151908616905f805160206122278339815191529061176c9086815260200190565b60405180910390a35060019392505050565b600554811115806117a657506001600160a01b0382165f9081526014602052604090205460ff165b6117e65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161087f565b5050565b6021545f906001600160a01b0316331480159061180a575060235460ff16155b801561181f5750602154600160a81b900460ff165b80156109fa575050602254305f908152600e6020526040902054101590565b6023805460ff19166001179055601d54601e545f9161185c916108aa565b6118685760075461186a565b5f5b90505f61188d6002610fcf600c54610fcf866022546115ef90919063ffffffff16565b90505f6118a58260225461155090919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106118dd576118dd612108565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061190e5761190e612108565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac947906119579086905f9087903090429060040161218b565b5f604051808303815f87803b15801561196e575f80fd5b505af1158015611980573d5f803e3d5ffd5b505050505f611998824761155090919063ffffffff16565b90505f6119b26119a988600261166d565b600c5490611550565b90505f6119c66002610fcf8481878d6115ef565b90505f6119e283610fcf600854876115ef90919063ffffffff16565b90505f6119fe84610fcf600a54886115ef90919063ffffffff16565b90505f611a1a85610fcf600954896115ef90919063ffffffff16565b6019546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611a69576040519150601f19603f3d011682016040523d82523d5f602084013e611a6e565b606091505b5050601a546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611abb576040519150601f19603f3d011682016040523d82523d5f602084013e611ac0565b606091505b5050601b546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611b0d576040519150601f19603f3d011682016040523d82523d5f602084013e611b12565b606091505b505f9250508b159050611bee57601f5460185460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b8c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611bb191906121fb565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b6017546021545f91906001600160a01b0390811690841603611c2b5750601554611c46565b6021546001600160a01b0390811690861603611c4657506016545b5f611c72600d546064611c59919061211c565b610fcf84610fc2600c548a6115ef90919063ffffffff16565b90505f611c90600c54610fcf600b54856115ef90919063ffffffff16565b90505f611c9d8383611550565b305f908152600e6020526040902054909150611cb99082611591565b305f908152600e602052604080822092909255601c546001600160a01b031681522054611ce69083611591565b601c546001600160a01b039081165f908152600e602090815260409182902093909355518381523092918b16915f80516020612227833981519152910160405180910390a38115611d6457601c546040518381526001600160a01b03918216918a16905f805160206122278339815191529060200160405180910390a35b611d6e8784611550565b98975050505050505050565b5f8183611d9a5760405162461bcd60e51b815260040161087f9190611da6565b505f61118984866120e9565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611df1575f80fd5b919050565b5f8060408385031215611e07575f80fd5b611e1083611ddb565b946020939093013593505050565b5f60208284031215611e2e575f80fd5b5035919050565b5f8060408385031215611e46575f80fd5b50508035926020909101359150565b5f805f60608486031215611e67575f80fd5b611e7084611ddb565b9250611e7e60208501611ddb565b929592945050506040919091013590565b5f805f805f60a08688031215611ea3575f80fd5b611eac86611ddb565b9450611eba60208701611ddb565b9350611ec860408701611ddb565b9250611ed660608701611ddb565b9150611ee460808701611ddb565b90509295509295909350565b8015158114611efd575f80fd5b50565b5f805f60408486031215611f12575f80fd5b833567ffffffffffffffff811115611f28575f80fd5b8401601f81018613611f38575f80fd5b803567ffffffffffffffff811115611f4e575f80fd5b8660208260051b8401011115611f62575f80fd5b602091820194509250840135611f7781611ef0565b809150509250925092565b5f60208284031215611f92575f80fd5b6109a882611ddb565b5f60208284031215611fab575f80fd5b81356109a881611ef0565b5f8060408385031215611fc7575f80fd5b611fd083611ddb565b91506020830135611fe081611ef0565b809150509250929050565b5f805f805f8060c08789031215612000575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f6060848603121561203c575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612064575f80fd5b61206d83611ddb565b915061207b60208401611ddb565b90509250929050565b5f8060408385031215612095575f80fd5b8235611e1081611ef0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261210357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610850576108506120d5565b5f60208284031215612143575f80fd5b5051919050565b5f6020828403121561215a575f80fd5b81516109a881611ef0565b81810381811115610850576108506120d5565b80820180821115610850576108506120d5565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156121db5783516001600160a01b03168352602093840193909201916001016121b4565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f6060848603121561220d575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220fe35a492862233a61e6bbbe8c7c62f1d45f739365b544394dc17f5518f08d2c064736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610257575f3560e01c8063715018a61161013f578063a9853b3a116100b3578063d51ed1c811610078578063d51ed1c81461070b578063dd62ed3e1461072a578063df20fd491461076e578063f2fde38b1461078d578063f84ba65d146107ac578063f887ea40146107cb575f80fd5b8063a9853b3a14610662578063ab5a188714610681578063b2bdfa7b146106a0578063b7593ad9146106be578063ce261d10146106ec575f80fd5b80638da5cb5b116101045780638da5cb5b146105a4578063900ba33b146105c057806395d89b41146105d95780639dc7576814610605578063a8aa1b3114610624578063a9059cbb14610643575f80fd5b8063715018a61461051757806378109e541461052b5780637d1db4a51461054057806386f6c3c114610555578063893d20e814610574575f80fd5b80632b112e49116101d65780635d0044ca1161019b5780635d0044ca146104525780635e04e4f814610471578063658d4b7f146104905780636c580801146104af5780636ddd1713146104c357806370a08231146104e3575f80fd5b80632b112e49146103c6578063313ce567146103da5780633554dd3c146103f55780634f85a0c514610414578063571ac8b014610433575f80fd5b80631161ae391161021c5780631161ae391461034057806318160ddd1461035f5780631df4ccfc14610373578063201e79911461038857806323b872dd146103a7575f80fd5b80630445b6671461026257806306fdde031461028a57806308fd3d05146102d0578063095ea7b3146103005780630f72f8ee1461031f575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b5061027760225481565b6040519081526020015b60405180910390f35b348015610295575f80fd5b5060408051808201909152601581527426b0b5b29021b0ba399023b932b0ba1020b3b0b4b760591b60208201525b6040516102819190611da6565b3480156102db575f80fd5b506021546102f090600160a01b900460ff1681565b6040519015158152602001610281565b34801561030b575f80fd5b506102f061031a366004611df6565b6107ea565b34801561032a575f80fd5b5061033e610339366004611e1e565b610856565b005b34801561034b575f80fd5b506102f061035a366004611e35565b6108aa565b34801561036a575f80fd5b50601054610277565b34801561037e575f80fd5b50610277600c5481565b348015610393575f80fd5b5061033e6103a2366004611e35565b6108bd565b3480156103b2575f80fd5b506102f06103c1366004611e55565b6108f1565b3480156103d1575f80fd5b506102776109af565b3480156103e5575f80fd5b5060405160128152602001610281565b348015610400575f80fd5b5061033e61040f366004611e8f565b6109ff565b34801561041f575f80fd5b5061033e61042e366004611f00565b610a87565b34801561043e575f80fd5b506102f061044d366004611f82565b610b1a565b34801561045d575f80fd5b5061033e61046c366004611e1e565b610b26565b34801561047c575f80fd5b5061033e61048b366004611f9b565b610b7d565b34801561049b575f80fd5b5061033e6104aa366004611fb6565b610bb9565b3480156104ba575f80fd5b5061033e610c0c565b3480156104ce575f80fd5b506021546102f090600160a81b900460ff1681565b3480156104ee575f80fd5b506102776104fd366004611f82565b6001600160a01b03165f908152600e602052604090205490565b348015610522575f80fd5b5061033e610c4a565b348015610536575f80fd5b5061027760065481565b34801561054b575f80fd5b5061027760055481565b348015610560575f80fd5b5061033e61056f366004611feb565b610cbb565b34801561057f575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610281565b3480156105af575f80fd5b505f546001600160a01b031661058c565b3480156105cb575f80fd5b506011546102f09060ff1681565b3480156105e4575f80fd5b506040805180820190915260048152634d43474160e01b60208201526102c3565b348015610610575f80fd5b5061033e61061f36600461202a565b610d80565b34801561062f575f80fd5b5060215461058c906001600160a01b031681565b34801561064e575f80fd5b506102f061065d366004611df6565b610dba565b34801561066d575f80fd5b5061033e61067c366004611e1e565b610dc6565b34801561068c575f80fd5b5061033e61069b366004611e1e565b610e40565b3480156106ab575f80fd5b505f5461058c906001600160a01b031681565b3480156106c9575f80fd5b506102f06106d8366004611f82565b60126020525f908152604090205460ff1681565b3480156106f7575f80fd5b506102f0610706366004611df6565b610e98565b348015610716575f80fd5b50610277610725366004611e1e565b610f90565b348015610735575f80fd5b50610277610744366004612053565b6001600160a01b039182165f908152600f6020908152604080832093909416825291909152205490565b348015610779575f80fd5b5061033e610788366004612084565b610fd5565b348015610798575f80fd5b5061033e6107a7366004611f82565b611020565b3480156107b7575f80fd5b5061033e6107c6366004611fb6565b611107565b3480156107d6575f80fd5b50601f5461058c906001600160a01b031681565b335f818152600f602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108449086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146108885760405162461bcd60e51b815260040161087f906120a0565b60405180910390fd5b6103e860105461089891906120e9565b60055410156108a5575f80fd5b600555565b5f826108b583610f90565b119392505050565b5f546001600160a01b031633146108e65760405162461bcd60e51b815260040161087f906120a0565b601d91909155601e55565b6001600160a01b0383165f908152600f602090815260408083203384529091528120545f191461099a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600f8252838120338252909152919091205461097691849061115a565b6001600160a01b0385165f908152600f602090815260408083203384529091529020555b6109a5848484611192565b90505b9392505050565b6004546001600160a01b03165f908152600e60205260408120546109fa906003546001600160a01b03165f908152600e60205260409020546109f49060105490611550565b90611550565b905090565b5f546001600160a01b03163314610a285760405162461bcd60e51b815260040161087f906120a0565b601880546001600160a01b03199081166001600160a01b039788161790915560198054821695871695909517909455601a8054851693861693909317909255601c80548416918516919091179055601b80549092169216919091179055565b5f546001600160a01b03163314610ab05760405162461bcd60e51b815260040161087f906120a0565b5f5b82811015610b14578160125f868685818110610ad057610ad0612108565b9050602002016020810190610ae59190611f82565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ab2565b50505050565b5f610850825f196107ea565b335f9081526012602052604090205460ff16610b40575f80fd5b6103e8601054610b5091906120e9565b6006541015610b5d575f80fd5b606481601054610b6d919061211c565b610b7791906120e9565b60065550565b5f546001600160a01b03163314610ba65760405162461bcd60e51b815260040161087f906120a0565b6011805460ff1916911515919091179055565b5f546001600160a01b03163314610be25760405162461bcd60e51b815260040161087f906120a0565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c355760405162461bcd60e51b815260040161087f906120a0565b6021805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610c735760405162461bcd60e51b815260040161087f906120a0565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610ce45760405162461bcd60e51b815260040161087f906120a0565b6007869055600a85905560088490556009839055600b829055610d1582610d0f858188818c8c611591565b90611591565b600c55600d819055610d286002826120e9565b600c5410610d785760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e2035302500000000604482015260640161087f565b505050505050565b5f546001600160a01b03163314610da95760405162461bcd60e51b815260040161087f906120a0565b601591909155601691909155601755565b5f6109a8338484611192565b5f546001600160a01b03163314610def5760405162461bcd60e51b815260040161087f906120a0565b60195447906001600160a01b03166108fc6064610e0c858561211c565b610e1691906120e9565b6040518115909202915f818181858888f19350505050158015610e3b573d5f803e3d5ffd5b505050565b335f9081526012602052604090205460ff16610e5a575f80fd5b6103e8601054610e6a91906120e9565b6005541015610e77575f80fd5b6103e881601054610e88919061211c565b610e9291906120e9565b60055550565b335f9081526012602052604081205460ff16610eb2575f80fd5b815f03610f22576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610efb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1f9190612133565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610f6c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a8919061214a565b5f610850610f9c6109af565b6021546001600160a01b03165f908152600e6020526040902054610fcf90610fc8906002905b906115ef565b85906115ef565b9061166d565b5f546001600160a01b03163314610ffe5760405162461bcd60e51b815260040161087f906120a0565b60218054921515600160a81b0260ff60a81b1990931692909217909155602255565b5f546001600160a01b031633146110495760405162461bcd60e51b815260040161087f906120a0565b6001600160a01b0381166110ae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161087f565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146111305760405162461bcd60e51b815260040161087f906120a0565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b5f818484111561117d5760405162461bcd60e51b815260040161087f9190611da6565b505f6111898486612165565b95945050505050565b6023545f9060ff16156111b1576111aa8484846116ae565b90506109a8565b6001600160a01b0384165f9081526001602052604090205460ff161580156111f157506001600160a01b0383165f9081526001602052604090205460ff16155b156112aa57602154600160a01b900460ff166112465760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161087f565b60115460ff16156112aa576001600160a01b0383165f9081526012602052604090205460ff166112aa5760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b604482015260640161087f565b6001600160a01b0384165f9081526001602052604090205460ff161580156112db57506001600160a01b0383163014155b80156112f557506003546001600160a01b03848116911614155b801561130f57506021546001600160a01b03848116911614155b80156113295750601c546001600160a01b03848116911614155b801561134357506019546001600160a01b03848116911614155b801561136757506001600160a01b0383165f9081526014602052604090205460ff16155b15611407576001600160a01b0383165f908152600e60205260409020546006546113918483612178565b11156114055760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161087f565b505b611411848361177e565b6114196117ea565b156114265761142661183e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600e909152919091205461147791849061115a565b6001600160a01b0385165f908152600e6020908152604080832093909355601390529081205460ff16806114c257506001600160a01b0384165f9081526013602052604090205460ff165b6114d6576114d1858486611c06565b6114d8565b825b6001600160a01b0385165f908152600e60205260409020549091506114fd9082611591565b6001600160a01b038086165f818152600e602052604090819020939093559151908716905f805160206122278339815191529061153d9085815260200190565b60405180910390a3506001949350505050565b5f6109a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061115a565b5f8061159d8385612178565b9050838110156109a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161087f565b5f825f036115fe57505f610850565b5f611609838561211c565b90508261161685836120e9565b146109a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161087f565b5f6109a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d7a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600e909152918220546116fe91849061115a565b6001600160a01b038086165f908152600e6020526040808220939093559085168152205461172c9083611591565b6001600160a01b038085165f818152600e602052604090819020939093559151908616905f805160206122278339815191529061176c9086815260200190565b60405180910390a35060019392505050565b600554811115806117a657506001600160a01b0382165f9081526014602052604090205460ff165b6117e65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161087f565b5050565b6021545f906001600160a01b0316331480159061180a575060235460ff16155b801561181f5750602154600160a81b900460ff165b80156109fa575050602254305f908152600e6020526040902054101590565b6023805460ff19166001179055601d54601e545f9161185c916108aa565b6118685760075461186a565b5f5b90505f61188d6002610fcf600c54610fcf866022546115ef90919063ffffffff16565b90505f6118a58260225461155090919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106118dd576118dd612108565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061190e5761190e612108565b6001600160a01b039283166020918202929092010152601f5460405163791ac94760e01b81524792919091169063791ac947906119579086905f9087903090429060040161218b565b5f604051808303815f87803b15801561196e575f80fd5b505af1158015611980573d5f803e3d5ffd5b505050505f611998824761155090919063ffffffff16565b90505f6119b26119a988600261166d565b600c5490611550565b90505f6119c66002610fcf8481878d6115ef565b90505f6119e283610fcf600854876115ef90919063ffffffff16565b90505f6119fe84610fcf600a54886115ef90919063ffffffff16565b90505f611a1a85610fcf600954896115ef90919063ffffffff16565b6019546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611a69576040519150601f19603f3d011682016040523d82523d5f602084013e611a6e565b606091505b5050601a546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611abb576040519150601f19603f3d011682016040523d82523d5f602084013e611ac0565b606091505b5050601b546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611b0d576040519150601f19603f3d011682016040523d82523d5f602084013e611b12565b606091505b505f9250508b159050611bee57601f5460185460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611b8c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611bb191906121fb565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b6017546021545f91906001600160a01b0390811690841603611c2b5750601554611c46565b6021546001600160a01b0390811690861603611c4657506016545b5f611c72600d546064611c59919061211c565b610fcf84610fc2600c548a6115ef90919063ffffffff16565b90505f611c90600c54610fcf600b54856115ef90919063ffffffff16565b90505f611c9d8383611550565b305f908152600e6020526040902054909150611cb99082611591565b305f908152600e602052604080822092909255601c546001600160a01b031681522054611ce69083611591565b601c546001600160a01b039081165f908152600e602090815260409182902093909355518381523092918b16915f80516020612227833981519152910160405180910390a38115611d6457601c546040518381526001600160a01b03918216918a16905f805160206122278339815191529060200160405180910390a35b611d6e8784611550565b98975050505050505050565b5f8183611d9a5760405162461bcd60e51b815260040161087f9190611da6565b505f61118984866120e9565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611df1575f80fd5b919050565b5f8060408385031215611e07575f80fd5b611e1083611ddb565b946020939093013593505050565b5f60208284031215611e2e575f80fd5b5035919050565b5f8060408385031215611e46575f80fd5b50508035926020909101359150565b5f805f60608486031215611e67575f80fd5b611e7084611ddb565b9250611e7e60208501611ddb565b929592945050506040919091013590565b5f805f805f60a08688031215611ea3575f80fd5b611eac86611ddb565b9450611eba60208701611ddb565b9350611ec860408701611ddb565b9250611ed660608701611ddb565b9150611ee460808701611ddb565b90509295509295909350565b8015158114611efd575f80fd5b50565b5f805f60408486031215611f12575f80fd5b833567ffffffffffffffff811115611f28575f80fd5b8401601f81018613611f38575f80fd5b803567ffffffffffffffff811115611f4e575f80fd5b8660208260051b8401011115611f62575f80fd5b602091820194509250840135611f7781611ef0565b809150509250925092565b5f60208284031215611f92575f80fd5b6109a882611ddb565b5f60208284031215611fab575f80fd5b81356109a881611ef0565b5f8060408385031215611fc7575f80fd5b611fd083611ddb565b91506020830135611fe081611ef0565b809150509250929050565b5f805f805f8060c08789031215612000575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f805f6060848603121561203c575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215612064575f80fd5b61206d83611ddb565b915061207b60208401611ddb565b90509250929050565b5f8060408385031215612095575f80fd5b8235611e1081611ef0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261210357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610850576108506120d5565b5f60208284031215612143575f80fd5b5051919050565b5f6020828403121561215a575f80fd5b81516109a881611ef0565b81810381811115610850576108506120d5565b80820180821115610850576108506120d5565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156121db5783516001600160a01b03168352602093840193909201916001016121b4565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f6060848603121561220d575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220fe35a492862233a61e6bbbe8c7c62f1d45f739365b544394dc17f5518f08d2c064736f6c634300081a0033

Deployed Bytecode Sourcemap

5102:13743:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6879:53;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6879:53:0;;;;;;;;8767:80;;;;;;;;;;-1:-1:-1;8839:5:0;;;;;;;;;;;;-1:-1:-1;;;8839:5:0;;;;8767:80;;;;;;;:::i;6798:31::-;;;;;;;;;;-1:-1:-1;6798:31:0;;;;-1:-1:-1;;;6798:31:0;;;;;;;;;784:14:1;;777:22;759:41;;747:2;732:18;6798:31:0;619:187:1;8857:216:0;;;;;;;;;;-1:-1:-1;8857:216:0;;;;;:::i;:::-;;:::i;11237:154::-;;;;;;;;;;-1:-1:-1;11237:154:0;;;;;:::i;:::-;;:::i;:::-;;18621:150;;;;;;;;;;-1:-1:-1;18621:150:0;;;;;:::i;:::-;;:::i;8163:88::-;;;;;;;;;;-1:-1:-1;8236:12:0;;8163:88;;5677:89;;;;;;;;;;;;;;;;18102:182;;;;;;;;;;-1:-1:-1;18102:182:0;;;;;:::i;:::-;;:::i;9375:370::-;;;;;;;;;;-1:-1:-1;9375:370:0;;;;;:::i;:::-;;:::i;18296:142::-;;;;;;;;;;;;;:::i;8591:80::-;;;;;;;;;;-1:-1:-1;8591:80:0;;6050:2;2397:36:1;;2385:2;2370:18;8591:80:0;2255:184:1;17497:434:0;;;;;;;;;;-1:-1:-1;17497:434:0;;;;;:::i;:::-;;:::i;16456:200::-;;;;;;;;;;-1:-1:-1;16456:200:0;;;;;:::i;:::-;;:::i;9081:122::-;;;;;;;;;;-1:-1:-1;9081:122:0;;;;;:::i;:::-;;:::i;9753:263::-;;;;;;;;;;-1:-1:-1;9753:263:0;;;;;:::i;:::-;;:::i;16359:89::-;;;;;;;;;;-1:-1:-1;16359:89:0;;;;;:::i;:::-;;:::i;16664:119::-;;;;;;;;;;-1:-1:-1;16664:119:0;;;;;:::i;:::-;;:::i;14406:76::-;;;;;;;;;;;;;:::i;6842:30::-;;;;;;;;;;-1:-1:-1;6842:30:0;;;;-1:-1:-1;;;6842:30:0;;;;;;8341:105;;;;;;;;;;-1:-1:-1;8341:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8425:18:0;8407:7;8425:18;;;:9;:18;;;;;;;8341:105;2244:148;;;;;;;;;;;;;:::i;5396:63::-;;;;;;;;;;;;;;;;5329:60;;;;;;;;;;;;;;;;16926:563;;;;;;;;;;-1:-1:-1;16926:563:0;;;;;:::i;:::-;;:::i;8257:78::-;;;;;;;;;;-1:-1:-1;8309:7:0;2095:6;-1:-1:-1;;;;;2095:6:0;8257:78;;;-1:-1:-1;;;;;5561:32:1;;;5543:51;;5531:2;5516:18;8257:78:0;5397:203:1;2030:79:0;;;;;;;;;;-1:-1:-1;2068:7:0;2095:6;-1:-1:-1;;;;;2095:6:0;2030:79;;6120:28;;;;;;;;;;-1:-1:-1;6120:28:0;;;;;;;;8677:84;;;;;;;;;;-1:-1:-1;8751:7:0;;;;;;;;;;;;-1:-1:-1;;;8751:7:0;;;;8677:84;;14194:204;;;;;;;;;;-1:-1:-1;14194:204:0;;;;;:::i;:::-;;:::i;6766:19::-;;;;;;;;;;-1:-1:-1;6766:19:0;;;;-1:-1:-1;;;;;6766:19:0;;;9211:156;;;;;;;;;;-1:-1:-1;9211:156:0;;;;;:::i;:::-;;:::i;13644:232::-;;;;;;;;;;-1:-1:-1;13644:232:0;;;;;:::i;:::-;;:::i;10024:255::-;;;;;;;;;;-1:-1:-1;10024:255:0;;;;;:::i;:::-;;:::i;1650:21::-;;;;;;;;;;-1:-1:-1;1650:21:0;;;;-1:-1:-1;;;;;1650:21:0;;;6155:41;;;;;;;;;;-1:-1:-1;6155:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13884:302;;;;;;;;;;-1:-1:-1;13884:302:0;;;;;:::i;:::-;;:::i;18446:167::-;;;;;;;;;;-1:-1:-1;18446:167:0;;;;;:::i;:::-;;:::i;8452:133::-;;;;;;;;;;-1:-1:-1;8452:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8554:19:0;;;8536:7;8554:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8452:133;17939:155;;;;;;;;;;-1:-1:-1;17939:155:0;;;;;:::i;:::-;;:::i;2400:244::-;;;;;;;;;;-1:-1:-1;2400:244:0;;;;;:::i;:::-;;:::i;16791:127::-;;;;;;;;;;-1:-1:-1;16791:127:0;;;;;:::i;:::-;;:::i;6696:24::-;;;;;;;;;;-1:-1:-1;6696:24:0;;;;-1:-1:-1;;;;;6696:24:0;;;8857:216;8961:10;8932:4;8949:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8949:32:0;;;;;;;;;;:41;;;9006:37;8932:4;;8949:32;;9006:37;;;;8984:6;160:25:1;;148:2;133:18;;14:177;9006:37:0;;;;;;;;-1:-1:-1;9061:4:0;8857:216;;;;;:::o;11237:154::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;;;;;;;;;11346:4:::1;11331:12;;:19;;;;:::i;:::-;11315:12;;:35;;11307:44;;;::::0;::::1;;11362:12;:21:::0;11237:154::o;18621:150::-;18701:4;18757:6;18725:29;18745:8;18725:19;:29::i;:::-;:38;;18621:150;-1:-1:-1;;;18621:150:0:o;18102:182::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;18199:15:::1;:25:::0;;;;18235:26:::1;:41:::0;18102:182::o;9375:370::-;-1:-1:-1;;;;;9495:19:0;;9475:4;9495:19;;;:11;:19;;;;;;;;9515:10;9495:31;;;;;;;;-1:-1:-1;;9495:52:0;9492:186;;9597:69;;;;;;;;;;;-1:-1:-1;;;9597:69:0;;;;;;;;-1:-1:-1;;;;;9597:19:0;;-1:-1:-1;9597:19:0;;;:11;:19;;;;;9617:10;9597:31;;;;;;;;;;:69;;9633:6;;9597:35;:69::i;:::-;-1:-1:-1;;;;;9563:19:0;;;;;;:11;:19;;;;;;;;9583:10;9563:31;;;;;;;:103;9492:186;9697:40;9711:6;9719:9;9730:6;9697:13;:40::i;:::-;9690:47;;9375:370;;;;;;:::o;18296:142::-;18424:4;;-1:-1:-1;;;;;18424:4:0;18349:7;8425:18;;;:9;:18;;;;;;18376:54;;18403:4;;-1:-1:-1;;;;;18403:4:0;8407:7;8425:18;;;:9;:18;;;;;;18376:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18369:61;;18296:142;:::o;17497:434::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;17689:21:::1;:46:::0;;-1:-1:-1;;;;;;17689:46:0;;::::1;-1:-1:-1::0;;;;;17689:46:0;;::::1;;::::0;;;17746:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17801:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17844:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17889:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17497:434::o;16456:200::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;16553:9:::1;16548:101;16564:20:::0;;::::1;16548:101;;;16631:6;16606:8;:22;16615:9;;16625:1;16615:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16606:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16606:22:0;:31;;-1:-1:-1;;16606:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16586:3:0::1;16548:101;;;;16456:200:::0;;;:::o;9081:122::-;9136:4;9160:35;9168:7;-1:-1:-1;;9160:7:0;:35::i;9753:263::-;9834:10;9825:20;;;;:8;:20;;;;;;;;9817:29;;;;;;9899:4;9884:12;;:19;;;;:::i;:::-;9865:15;;:38;;9857:47;;;;;;9987:3;9968:14;9953:12;;:29;;;;:::i;:::-;9952:38;;;;:::i;:::-;9934:15;:56;-1:-1:-1;9753:263:0:o;16359:89::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;16422:8:::1;:18:::0;;-1:-1:-1;;16422:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16359:89::o;16664:119::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16747:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16747:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16664:119::o;14406:76::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;14456:11:::1;:18:::0;;-1:-1:-1;;;;14456:18:0::1;-1:-1:-1::0;;;14456:18:0::1;::::0;;14406:76::o;2244:148::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;2351:1:::1;2335:6:::0;;2314:40:::1;::::0;-1:-1:-1;;;;;2335:6:0;;::::1;::::0;2314:40:::1;::::0;2351:1;;2314:40:::1;2382:1;2365:19:::0;;-1:-1:-1;;;;;;2365:19:0::1;::::0;;2244:148::o;16926:563::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;17097:12:::1;:28:::0;;;17136:7:::1;:18:::0;;;17165:12:::1;:28:::0;;;17204:6:::1;:16:::0;;;17231:7:::1;:18:::0;;;17271:73:::1;17241:8:::0;17271:59:::1;17213:7:::0;17271:59;17180:13;17271:59;17112:13;17146:8;17271:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17260:8;:84:::0;17355:14:::1;:32:::0;;;17417:16:::1;17432:1;17372:15:::0;17417:16:::1;:::i;:::-;17406:8;;:27;17398:68;;;::::0;-1:-1:-1;;;17398:68:0;;8155:2:1;17398:68:0::1;::::0;::::1;8137:21:1::0;8194:2;8174:18;;;8167:30;8233;8213:18;;;8206:58;8281:18;;17398:68:0::1;7953:352:1::0;17398:68:0::1;16926:563:::0;;;;;;:::o;14194:204::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;14295:14:::1;:22:::0;;;;14328:13:::1;:20:::0;;;;14359:18:::1;:27:::0;14194:204::o;9211:156::-;9291:4;9315:44;9329:10;9341:9;9352:6;9315:13;:44::i;13644:232::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;13802:20:::1;::::0;13762:21:::1;::::0;-1:-1:-1;;;;;13802:20:0::1;13794:74;13864:3;13833:28;13845:16:::0;13762:21;13833:28:::1;:::i;:::-;:34;;;;:::i;:::-;13794:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13715:161;13644:232:::0;:::o;10024:255::-;10108:10;10099:20;;;;:8;:20;;;;;;;;10091:29;;;;;;10170:4;10155:12;;:19;;;;:::i;:::-;10139:12;;:35;;10131:44;;;;;;10267:4;10250:12;10235;;:27;;;;:::i;:::-;10234:37;;;;:::i;:::-;10219:12;:52;-1:-1:-1;10024:255:0:o;13884:302::-;13998:10;13964:4;13989:20;;;:8;:20;;;;;;;;13981:29;;;;;;14021:6;14031:1;14021:11;14018:95;;14057:44;;-1:-1:-1;;;14057:44:0;;14095:4;14057:44;;;5543:51:1;-1:-1:-1;;;;;14057:29:0;;;;;5516:18:1;;14057:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14048:53;;14018:95;14130:48;;-1:-1:-1;;;14130:48:0;;14159:10;14130:48;;;8719:51:1;8786:18;;;8779:34;;;-1:-1:-1;;;;;14130:28:0;;;;;8692:18:1;;14130:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18446:167::-;18514:7;18541:64;18582:22;:20;:22::i;:::-;18564:4;;-1:-1:-1;;;;;18564:4:0;8407:7;8425:18;;;:9;:18;;;;;;18541:36;;18554:22;;18574:1;;18554:15;:19;;:22::i;:::-;18541:8;;:12;:36::i;:::-;:40;;:64::i;17939:155::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;18030:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;18030:22:0::1;-1:-1:-1::0;;;;18030:22:0;;::::1;::::0;;;::::1;::::0;;;18063:13:::1;:23:::0;17939:155::o;2400:244::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2489:22:0;::::1;2481:73;;;::::0;-1:-1:-1;;;2481:73:0;;9276:2:1;2481:73:0::1;::::0;::::1;9258:21:1::0;9315:2;9295:18;;;9288:30;9354:34;9334:18;;;9327:62;-1:-1:-1;;;9405:18:1;;;9398:36;9451:19;;2481:73:0::1;9074:402:1::0;2481:73:0::1;2591:6;::::0;;2570:38:::1;::::0;-1:-1:-1;;;;;2570:38:0;;::::1;::::0;2591:6;::::1;::::0;2570:38:::1;::::0;::::1;2619:6;:17:::0;;-1:-1:-1;;;;;;2619:17:0::1;-1:-1:-1::0;;;;;2619:17:0;;;::::1;::::0;;;::::1;::::0;;2400:244::o;16791:127::-;2157:6;;-1:-1:-1;;;;;2157:6:0;1467:10;2157:22;2149:67;;;;-1:-1:-1;;;2149:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16878:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16878:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16791:127::o;546:192::-;632:7;668:12;660:6;;;;652:29;;;;-1:-1:-1;;;652:29:0;;;;;;;;:::i;:::-;-1:-1:-1;692:9:0;704:5;708:1;704;:5;:::i;:::-;692:17;546:192;-1:-1:-1;;;;;546:192:0:o;11399:1394::-;11511:6;;11491:4;;11511:6;;11508:63;;;11527:41;11542:6;11550:9;11561:6;11527:14;:41::i;:::-;11520:48;;;;11508:63;-1:-1:-1;;;;;11587:22:0;;;;;;:14;:22;;;;;;;;11586:23;:53;;;;-1:-1:-1;;;;;;11614:25:0;;;;;;:14;:25;;;;;;;;11613:26;11586:53;11583:242;;;11663:11;;-1:-1:-1;;;11663:11:0;;;;11655:43;;;;-1:-1:-1;;;11655:43:0;;9816:2:1;11655:43:0;;;9798:21:1;9855:2;9835:18;;;9828:30;-1:-1:-1;;;9874:18:1;;;9867:50;9934:18;;11655:43:0;9614:344:1;11655:43:0;11714:8;;;;11711:103;;;-1:-1:-1;;;;;11750:19:0;;;;;;:8;:19;;;;;;;;11742:46;;;;-1:-1:-1;;;11742:46:0;;10165:2:1;11742:46:0;;;10147:21:1;10204:2;10184:18;;;10177:30;-1:-1:-1;;;10223:18:1;;;10216:45;10278:18;;11742:46:0;9963:339:1;11742:46:0;-1:-1:-1;;;;;11842:22:0;;;;;;:14;:22;;;;;;;;11841:23;:53;;;;-1:-1:-1;;;;;;11868:26:0;;11889:4;11868:26;;11841:53;:84;;;;-1:-1:-1;11920:4:0;;-1:-1:-1;;;;;11899:26:0;;;11920:4;;11899:26;;11841:84;:105;;;;-1:-1:-1;11942:4:0;;-1:-1:-1;;;;;11929:17:0;;;11942:4;;11929:17;;11841:105;:137;;;;-1:-1:-1;11963:15:0;;-1:-1:-1;;;;;11950:28:0;;;11963:15;;11950:28;;11841:137;:174;;;;-1:-1:-1;11995:20:0;;-1:-1:-1;;;;;11982:33:0;;;11995:20;;11982:33;;11841:174;:205;;;;-1:-1:-1;;;;;;12020:26:0;;;;;;:15;:26;;;;;;;;12019:27;11841:205;11837:397;;;-1:-1:-1;;;;;8425:18:0;;12062;8425;;;:9;:18;;;;;;12151:15;;12127:19;12140:6;8425:18;12127:19;:::i;:::-;12126:40;;12118:114;;;;-1:-1:-1;;;12118:114:0;;10639:2:1;12118:114:0;;;10621:21:1;10678:2;10658:18;;;10651:30;10717:34;10697:18;;;10690:62;10788:32;10768:18;;;10761:60;10838:19;;12118:114:0;10437:426:1;12118:114:0;12047:187;11837:397;12287:28;12300:6;12308;12287:12;:28::i;:::-;12332:16;:14;:16::i;:::-;12329:35;;;12351:10;:8;:10::i;:::-;12444:53;;;;;;;;;;;-1:-1:-1;;;12444:53:0;;;;;;;;-1:-1:-1;;;;;12444:17:0;;-1:-1:-1;12444:17:0;;;:9;:17;;;;;;;;:53;;12466:6;;12444:21;:53::i;:::-;-1:-1:-1;;;;;12424:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12536:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12559:22:0;;;;;;:11;:22;;;;;;;;12536:45;12535:93;;12594:34;12602:6;12610;12618:9;12594:7;:34::i;:::-;12535:93;;;12585:6;12535:93;-1:-1:-1;;;;;12662:20:0;;;;;;:9;:20;;;;;;12510:118;;-1:-1:-1;12662:40:0;;12510:118;12662:24;:40::i;:::-;-1:-1:-1;;;;;12639:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12720:43;;;;;;-1:-1:-1;;;;;;;;;;;12720:43:0;;;12748:14;160:25:1;;148:2;133:18;;14:177;12720:43:0;;;;;;;;-1:-1:-1;12781:4:0;;11399:1394;-1:-1:-1;;;;11399:1394:0:o;404:136::-;462:7;489:43;493:1;496;489:43;;;;;;;;;;;;;;;;;:3;:43::i;217:181::-;275:7;;307:5;311:1;307;:5;:::i;:::-;295:17;;336:1;331;:6;;323:46;;;;-1:-1:-1;;;323:46:0;;11070:2:1;323:46:0;;;11052:21:1;11109:2;11089:18;;;11082:30;11148:29;11128:18;;;11121:57;11195:18;;323:46:0;10868:351:1;744:250:0;802:7;826:1;831;826:6;822:47;;-1:-1:-1;856:1:0;849:8;;822:47;881:9;893:5;897:1;893;:5;:::i;:::-;881:17;-1:-1:-1;926:1:0;917:5;921:1;881:17;917:5;:::i;:::-;:10;909:56;;;;-1:-1:-1;;;909:56:0;;11426:2:1;909:56:0;;;11408:21:1;11465:2;11445:18;;;11438:30;11504:34;11484:18;;;11477:62;-1:-1:-1;;;11555:18:1;;;11548:31;11596:19;;909:56:0;11224:397:1;1000:132:0;1058:7;1085:39;1089:1;1092;1085:39;;;;;;;;;;;;;;;;;:3;:39::i;12805:330::-;12935:53;;;;;;;;;;;-1:-1:-1;;;12935:53:0;;;;;;;;-1:-1:-1;;;;;12935:17:0;;12898:4;12935:17;;;:9;:17;;;;;;;:53;;12957:6;;12935:21;:53::i;:::-;-1:-1:-1;;;;;12915:17:0;;;;;;;:9;:17;;;;;;:73;;;;13022:20;;;;;;;:32;;13047:6;13022:24;:32::i;:::-;-1:-1:-1;;;;;12999:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13070:35;;;;;;-1:-1:-1;;;;;;;;;;;13070:35:0;;;13098:6;160:25:1;;148:2;133:18;;14:177;13070:35:0;;;;;;;;-1:-1:-1;13123:4:0;12805:330;;;;;:::o;13143:166::-;13240:12;;13230:6;:22;;:49;;;-1:-1:-1;;;;;;13256:23:0;;;;;;:15;:23;;;;;;;;13230:49;13222:79;;;;-1:-1:-1;;;13222:79:0;;11828:2:1;13222:79:0;;;11810:21:1;11867:2;11847:18;;;11840:30;-1:-1:-1;;;11886:18:1;;;11879:47;11943:18;;13222:79:0;11626:341:1;13222:79:0;13143:166;;:::o;13439:197::-;13526:4;;13488;;-1:-1:-1;;;;;13526:4:0;13512:10;:18;;;;:38;;-1:-1:-1;13544:6:0;;;;13543:7;13512:38;:62;;;;-1:-1:-1;13563:11:0;;-1:-1:-1;;;13563:11:0;;;;13512:62;:116;;;;-1:-1:-1;;13615:13:0;;13605:4;13587:24;;;;:9;:24;;;;;;:41;;;13439:197::o;14490:1861::-;6980:6;:13;;-1:-1:-1;;6980:13:0;6989:4;6980:13;;;14585:15:::1;::::0;14602:26:::1;::::0;6980:6;;14569:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14636:12;;14569:79;;;14632:1;14569:79;14539:109;;14659:23;14685:59;14742:1;14685:52;14728:8;;14685:38;14703:19;14685:13;;:17;;:38;;;;:::i;:59::-;14659:85;;14755:20;14778:34;14796:15;14778:13;;:17;;:34;;;;:::i;:::-;14849:16;::::0;;14863:1:::1;14849:16:::0;;;;;::::1;::::0;;14755:57;;-1:-1:-1;14825:21:0::1;::::0;14849:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14849:16:0::1;14825:40;;14894:4;14876;14881:1;14876:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14876:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14920:4:::1;::::0;14910:7;;14920:4;::::1;::::0;14910;;14920;;14910:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14910:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14995:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14995:188:0;;14961:21:::1;::::0;14995:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15067:12;;14937:21:::1;::::0;15110:4;;15137::::1;::::0;15157:15:::1;::::0;14995:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15196:17;15216:40;15242:13;15216:21;:25;;:40;;;;:::i;:::-;15196:60:::0;-1:-1:-1;15269:19:0::1;15291:40;15304:26;:19:::0;15328:1:::1;15304:23;:26::i;:::-;15291:8;::::0;;:12:::1;:40::i;:::-;15269:62:::0;-1:-1:-1;15352:26:0::1;15381:58;15437:1;15381:51;15269:62:::0;15381:51;:9;15395:19;15381:13:::1;:34::i;:58::-;15352:87;;15450:26;15479:44;15511:11;15479:27;15493:12;;15479:9;:13;;:27;;;;:::i;:44::-;15450:73;;15534:21;15558:39;15585:11;15558:22;15572:7;;15558:9;:13;;:22;;;;:::i;:39::-;15534:63;;15608:20;15631:38;15657:11;15631:21;15645:6;;15631:9;:13;;:21;;;;:::i;:38::-;15711:20;::::0;15703:65:::1;::::0;15608:61;;-1:-1:-1;15683:15:0::1;::::0;-1:-1:-1;;;;;15711:20:0;;::::1;::::0;15745:18;;15683:15;15703:65;15683:15;15703:65;15745:18;15711:20;15703:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15803:14:0::1;::::0;15795:53:::1;::::0;15682:86;;-1:-1:-1;;;;;;15803:14:0::1;::::0;15831:12;;15795:53:::1;::::0;;;15831:12;15803:14;15795:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15883:15:0::1;::::0;15875:55:::1;::::0;15779:69;;-1:-1:-1;;;;;;15883:15:0::1;::::0;15912:13;;15875:55:::1;::::0;;;15912:13;15883:15;15875:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15964:5:0::1;::::0;-1:-1:-1;;15985:19:0;;;-1:-1:-1;15982:362:0::1;;16020:6;::::0;16194:21:::1;::::0;16020:244:::1;::::0;-1:-1:-1;;;16020:244:0;;16096:4:::1;16020:244;::::0;::::1;13581:51:1::0;13648:18;;;13641:34;;;16020:6:0::1;13691:18:1::0;;;13684:34;;;13734:18;;;13727:34;-1:-1:-1;;;;;16194:21:0;;::::1;13777:19:1::0;;;13770:61;16234:15:0::1;13847:19:1::0;;;13840:35;16020:6:0;::::1;::::0;:22:::1;::::0;16050:18;;13553:19:1;;16020:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16284:48:0::1;::::0;;14521:25:1;;;14577:2;14562:18;;14555:34;;;16284:48:0::1;::::0;-1:-1:-1;14494:18:1;16284:48:0::1;;;;;;;15982:362;-1:-1:-1::0;;6998:6:0;:14;;-1:-1:-1;;6998:14:0;;;-1:-1:-1;;;;;;;;;;14490:1861:0:o;10287:942::-;10424:18;;10471:4;;10373:7;;10424:18;-1:-1:-1;;;;;10471:4:0;;;10458:17;;;;10455:154;;-1:-1:-1;10505:14:0;;10455:154;;;10550:4;;-1:-1:-1;;;;;10550:4:0;;;10540:14;;;;10537:72;;-1:-1:-1;10584:13:0;;10537:72;10621:17;10641:62;10682:14;;10699:3;10682:20;;;;:::i;:::-;10641:36;10666:10;10641:20;10652:8;;10641:6;:10;;:20;;;;:::i;:62::-;10621:82;;10714:18;10735:36;10762:8;;10735:22;10749:7;;10735:9;:13;;:22;;;;:::i;:36::-;10714:57;-1:-1:-1;10782:22:0;10807:25;:9;10714:57;10807:13;:25::i;:::-;10890:4;10872:24;;;;:9;:24;;;;;;10782:50;;-1:-1:-1;10872:44:0;;10782:50;10872:28;:44::i;:::-;10863:4;10845:24;;;;:9;:24;;;;;;:71;;;;10966:15;;-1:-1:-1;;;;;10966:15:0;10956:26;;;;:42;;10987:10;10956:30;:42::i;:::-;10937:15;;-1:-1:-1;;;;;10937:15:0;;;10927:26;;;;:9;:26;;;;;;;;;:71;;;;11014:47;160:25:1;;;11039:4:0;;11014:47;;;;-1:-1:-1;;;;;;;;;;;11014:47:0;133:18:1;11014:47:0;;;;;;;11085:14;;11082:99;;11137:15;;11120:45;;160:25:1;;;-1:-1:-1;;;;;11137:15:0;;;;11120:45;;;-1:-1:-1;;;;;;;;;;;11120:45:0;148:2:1;133:18;11120:45:0;;;;;;;11082:99;11200:21;:6;11211:9;11200:10;:21::i;:::-;11193:28;10287:942;-1:-1:-1;;;;;;;;10287:942:0:o;1138:189::-;1224:7;1259:12;1252:5;1244:28;;;;-1:-1:-1;;;1244:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1283:9:0;1295:5;1299:1;1295;:5;:::i;196:418:1:-;345:2;334:9;327:21;308:4;377:6;371:13;420:6;415:2;404:9;400:18;393:34;479:6;474:2;466:6;462:15;457:2;446:9;442:18;436:50;535:1;530:2;521:6;510:9;506:22;502:31;495:42;605:2;598;594:7;589:2;581:6;577:15;573:29;562:9;558:45;554:54;546:62;;;196:418;;;;:::o;811:173::-;879:20;;-1:-1:-1;;;;;928:31:1;;918:42;;908:70;;974:1;971;964:12;908:70;811:173;;;:::o;989:300::-;1057:6;1065;1118:2;1106:9;1097:7;1093:23;1089:32;1086:52;;;1134:1;1131;1124:12;1086:52;1157:29;1176:9;1157:29;:::i;:::-;1147:39;1255:2;1240:18;;;;1227:32;;-1:-1:-1;;;989:300:1:o;1294:226::-;1353:6;1406:2;1394:9;1385:7;1381:23;1377:32;1374:52;;;1422:1;1419;1412:12;1374:52;-1:-1:-1;1467:23:1;;1294:226;-1:-1:-1;1294:226:1:o;1525:346::-;1593:6;1601;1654:2;1642:9;1633:7;1629:23;1625:32;1622:52;;;1670:1;1667;1660:12;1622:52;-1:-1:-1;;1715:23:1;;;1835:2;1820:18;;;1807:32;;-1:-1:-1;1525:346:1:o;1876:374::-;1953:6;1961;1969;2022:2;2010:9;2001:7;1997:23;1993:32;1990:52;;;2038:1;2035;2028:12;1990:52;2061:29;2080:9;2061:29;:::i;:::-;2051:39;;2109:38;2143:2;2132:9;2128:18;2109:38;:::i;:::-;1876:374;;2099:48;;-1:-1:-1;;;2216:2:1;2201:18;;;;2188:32;;1876:374::o;2444:484::-;2539:6;2547;2555;2563;2571;2624:3;2612:9;2603:7;2599:23;2595:33;2592:53;;;2641:1;2638;2631:12;2592:53;2664:29;2683:9;2664:29;:::i;:::-;2654:39;;2712:38;2746:2;2735:9;2731:18;2712:38;:::i;:::-;2702:48;;2769:38;2803:2;2792:9;2788:18;2769:38;:::i;:::-;2759:48;;2826:38;2860:2;2849:9;2845:18;2826:38;:::i;:::-;2816:48;;2883:39;2917:3;2906:9;2902:19;2883:39;:::i;:::-;2873:49;;2444:484;;;;;;;;:::o;2933:118::-;3019:5;3012:13;3005:21;2998:5;2995:32;2985:60;;3041:1;3038;3031:12;2985:60;2933:118;:::o;3056:745::-;3148:6;3156;3164;3217:2;3205:9;3196:7;3192:23;3188:32;3185:52;;;3233:1;3230;3223:12;3185:52;3273:9;3260:23;3306:18;3298:6;3295:30;3292:50;;;3338:1;3335;3328:12;3292:50;3361:22;;3414:4;3406:13;;3402:27;-1:-1:-1;3392:55:1;;3443:1;3440;3433:12;3392:55;3483:2;3470:16;3509:18;3501:6;3498:30;3495:50;;;3541:1;3538;3531:12;3495:50;3596:7;3589:4;3579:6;3576:1;3572:14;3568:2;3564:23;3560:34;3557:47;3554:67;;;3617:1;3614;3607:12;3554:67;3648:4;3640:13;;;;-1:-1:-1;3672:6:1;-1:-1:-1;3713:20:1;;3700:34;3743:28;3700:34;3743:28;:::i;:::-;3790:5;3780:15;;;3056:745;;;;;:::o;3806:186::-;3865:6;3918:2;3906:9;3897:7;3893:23;3889:32;3886:52;;;3934:1;3931;3924:12;3886:52;3957:29;3976:9;3957:29;:::i;3997:241::-;4053:6;4106:2;4094:9;4085:7;4081:23;4077:32;4074:52;;;4122:1;4119;4112:12;4074:52;4161:9;4148:23;4180:28;4202:5;4180:28;:::i;4243:315::-;4308:6;4316;4369:2;4357:9;4348:7;4344:23;4340:32;4337:52;;;4385:1;4382;4375:12;4337:52;4408:29;4427:9;4408:29;:::i;:::-;4398:39;;4487:2;4476:9;4472:18;4459:32;4500:28;4522:5;4500:28;:::i;:::-;4547:5;4537:15;;;4243:315;;;;;:::o;4563:829::-;4667:6;4675;4683;4691;4699;4707;4760:3;4748:9;4739:7;4735:23;4731:33;4728:53;;;4777:1;4774;4767:12;4728:53;-1:-1:-1;;4822:23:1;;;4942:2;4927:18;;4914:32;;-1:-1:-1;5045:2:1;5030:18;;5017:32;;5148:2;5133:18;;5120:32;;-1:-1:-1;5251:3:1;5236:19;;5223:33;;-1:-1:-1;5355:3:1;5340:19;5327:33;;-1:-1:-1;4563:829:1;-1:-1:-1;4563:829:1:o;5605:466::-;5682:6;5690;5698;5751:2;5739:9;5730:7;5726:23;5722:32;5719:52;;;5767:1;5764;5757:12;5719:52;-1:-1:-1;;5812:23:1;;;5932:2;5917:18;;5904:32;;-1:-1:-1;6035:2:1;6020:18;;;6007:32;;5605:466;-1:-1:-1;5605:466:1:o;6076:260::-;6144:6;6152;6205:2;6193:9;6184:7;6180:23;6176:32;6173:52;;;6221:1;6218;6211:12;6173:52;6244:29;6263:9;6244:29;:::i;:::-;6234:39;;6292:38;6326:2;6315:9;6311:18;6292:38;:::i;:::-;6282:48;;6076:260;;;;;:::o;6341:361::-;6406:6;6414;6467:2;6455:9;6446:7;6442:23;6438:32;6435:52;;;6483:1;6480;6473:12;6435:52;6522:9;6509:23;6541:28;6563:5;6541:28;:::i;6933:356::-;7135:2;7117:21;;;7154:18;;;7147:30;7213:34;7208:2;7193:18;;7186:62;7280:2;7265:18;;6933:356::o;7294:127::-;7355:10;7350:3;7346:20;7343:1;7336:31;7386:4;7383:1;7376:15;7410:4;7407:1;7400:15;7426:217;7466:1;7492;7482:132;;7536:10;7531:3;7527:20;7524:1;7517:31;7571:4;7568:1;7561:15;7599:4;7596:1;7589:15;7482:132;-1:-1:-1;7628:9:1;;7426:217::o;7648:127::-;7709:10;7704:3;7700:20;7697:1;7690:31;7740:4;7737:1;7730:15;7764:4;7761:1;7754:15;7780:168;7853:9;;;7884;;7901:15;;;7895:22;;7881:37;7871:71;;7922:18;;:::i;8310:230::-;8380:6;8433:2;8421:9;8412:7;8408:23;8404:32;8401:52;;;8449:1;8446;8439:12;8401:52;-1:-1:-1;8494:16:1;;8310:230;-1:-1:-1;8310:230:1:o;8824:245::-;8891:6;8944:2;8932:9;8923:7;8919:23;8915:32;8912:52;;;8960:1;8957;8950:12;8912:52;8992:9;8986:16;9011:28;9033:5;9011:28;:::i;9481:128::-;9548:9;;;9569:11;;;9566:37;;;9583:18;;:::i;10307:125::-;10372:9;;;10393:10;;;10390:36;;;10406:18;;:::i;12104:959::-;12366:4;12414:3;12403:9;12399:19;12445:6;12434:9;12427:25;12488:6;12483:2;12472:9;12468:18;12461:34;12531:3;12526:2;12515:9;12511:18;12504:31;12555:6;12590;12584:13;12621:6;12613;12606:22;12659:3;12648:9;12644:19;12637:26;;12698:2;12690:6;12686:15;12672:29;;12719:1;12729:195;12743:6;12740:1;12737:13;12729:195;;;12808:13;;-1:-1:-1;;;;;12804:39:1;12792:52;;12873:2;12899:15;;;;12864:12;;;;12840:1;12758:9;12729:195;;;-1:-1:-1;;;;;;;12980:32:1;;;;12975:2;12960:18;;12953:60;-1:-1:-1;;13044:3:1;13029:19;13022:35;12941:3;12104:959;-1:-1:-1;;;12104:959:1:o;13886:456::-;13974:6;13982;13990;14043:2;14031:9;14022:7;14018:23;14014:32;14011:52;;;14059:1;14056;14049:12;14011:52;-1:-1:-1;;14104:16:1;;14210:2;14195:18;;14189:25;14306:2;14291:18;;;14285:25;14104:16;;14189:25;;-1:-1:-1;14285:25:1;13886:456;-1:-1:-1;13886:456:1:o

Swarm Source

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