ETH Price: $2,585.71 (-1.16%)

Token

MOONiNG ((_x_))
 

Overview

Max Total Supply

888,888,888 (_x_)

Holders

78

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
820,142.779800491955808711 (_x_)

Value
$0.00
0x5a118e4e854be805e2d4a6c57acea02e453429a2
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:
MOONiNG

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b <= a, errorMessage); return a - b;}}

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a / b;}}

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a % b;}}}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function circulatingSupply() 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 Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface AIVolumizer {
    function tokenVolumeTransaction(address _contract) external;
    function tokenManualVolumeTransaction(address _contract, uint256 maxAmount, uint256 volumePercentage) external;
    function setTokenMaxVolumeAmount(address _contract, uint256 maxAmount) external;
    function setTokenMaxVolumePercent(address _contract, uint256 volumePercentage, uint256 denominator) external;
    function viewProjectTokenParameters(address _contract) external view returns (uint256, uint256, uint256);
    function veiwVolumeStats(address _contract) external view returns (uint256 totalPurchased, 
        uint256 totalETH, uint256 totalVolume, uint256 lastTXAmount, uint256 lastTXTime);
    function viewLastVolumeBlock(address _contract) external view returns (uint256);
    function viewTotalTokenPurchased(address _contract) external view returns (uint256);
    function viewTotalETHPurchased(address _contract) external view returns (uint256);
    function viewLastETHPurchased(address _contract) external view returns (uint256);
    function viewLastTokensPurchased(address _contract) external view returns (uint256);
    function viewTotalTokenVolume(address _contract) external view returns (uint256);
    function viewLastTokenVolume(address _contract) external view returns (uint256);
    function viewLastVolumeTimestamp(address _contract) external view returns (uint256);
    function viewNumberTokenVolumeTxs(address _contract) external view returns (uint256);
    function viewNumberETHVolumeTxs(address _contract) external view returns (uint256);
}

interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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;
}

contract MOONiNG is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'MOONiNG';
    string private constant _symbol = '(_x_)';
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 888888888 * (10 ** _decimals);
    uint256 public _maxTxAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 200 ) / 10000;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => bool) public isFeeExempt;
	mapping (address => bool) public isBot;
	uint256 private _launchTime;
    IRouter router;
    address public pair;
    uint256 private liquidityFee = 300;
    uint256 private marketingFee = 750;
    uint256 private developmentFee = 750;
    uint256 private tairyoFee = 100;
    uint256 private volumeFee = 100;
    uint256 private totalFee = 2000;
    uint256 private sellFee = 2000;
    uint256 private fixedFee = 2000;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    bool private tradingAllowed = false;
    bool public volumeToken = true;
    bool private volumeTx;
    uint256 public txGas = 500000;
    uint256 private swapVolumeTimes;
    bool private swapping;
    uint256 private swapAmount = 15;
    uint256 private swapTimes = 0;
    uint256 private swapVolumeAmount = 1;
    bool private fixedTaxRequired = true;
    uint256 private fixedTaxMin = 2000;
    uint256 private swapThreshold = ( _totalSupply * 300 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    uint256 private minVolumeTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    mapping(address => bool) public isDevAllowed;
    mapping(address => bool) public fixedTax;
    bool public manualVolumeAllowed = false; AIVolumizer volumizer;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal tairyoDev = 0x063541d35981c74F72bE5bd3a0Fafe1b824A1cbb;
    address internal development_receiver; 
    address internal marketing_receiver;
    address internal liquidity_receiver;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D );
        volumizer = AIVolumizer(0xE818B4aFf32625ca4620623Ac4AEccf7CBccc260);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isDevAllowed[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[address(DEAD)] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(volumizer)] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function getOwner() external view override returns (address) { return owner; }
    function totalSupply() public view override returns (uint256) {return _totalSupply;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function preTxCheck(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"ERC20: below available balance threshold");	
		require(!isBot[sender], "Your address has been marked as a bot/sniper, you are unable to transfer or swap.");	
		if (block.number < _launchTime && !isFeeExempt[recipient] && recipient != pair){isBot[recipient] = true;}	
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkTxLimit(sender, recipient, amount);
        checkMaxWallet(sender, recipient, amount);
        swapbackCounters(sender, recipient, amount);
        swapBack(sender, recipient);
        swapVolume(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        fixedTaxCheck(sender, recipient);
    }

    function checkTradingAllowed(address sender, address recipient) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "ERC20: Trading is not allowed");}
    }

    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD) && !volumeTx){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "ERC20: exceeds maximum wallet amount.");}
    }

    function swapbackCounters(address sender, address recipient, uint256 amount) internal {
        if(sender == address(pair) && !isFeeExempt[recipient] && amount >= minTokenAmount && !swapping && !volumeTx){swapTimes += uint256(1);}
    }

    function fixedTaxCheck(address sender, address recipient) internal {
        if(fixedTax[sender] && balanceOf(sender) <= 1 * (10 ** _decimals)){fixedTax[sender] = false;}
        if(totalFee >= fixedTaxMin && !isFeeExempt[recipient] && sender == address(pair) && !swapping && !volumeTx &&
            fixedTaxRequired){fixedTax[recipient] = true;}
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(!volumeTx){require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "ERC20: tx limit exceeded");}
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = liquidityFee.add(developmentFee).add(marketingFee).add(tairyoFee).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith, liquidity_receiver); }
        uint256 marketingAmount = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmount > uint256(0)){payable(marketing_receiver).transfer(marketingAmount);}
        uint256 tairyoAmount = unitBalance.mul(2).mul(tairyoFee);
        if(tairyoAmount > uint256(0)){payable(address(tairyoDev)).transfer(tairyoAmount);}
        uint256 remainingAmount = address(this).balance;
        if(remainingAmount > uint256(0)){payable(development_receiver).transfer(remainingAmount);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount, address receiver) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(receiver),
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldSwapBack(address sender, address recipient) internal view returns (bool) {
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && !isFeeExempt[sender]
            && recipient == address(pair) && swapTimes >= swapAmount && aboveThreshold && !volumeTx;
    }

    function swapBack(address sender, address recipient) internal {
        if(shouldSwapBack(sender, recipient)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }
    
    function volumizing(bool setTrading, uint256 blocksToAdd) external onlyOwner {
        require(!tradingAllowed, "Cannot disable once trading is enabled");
		tradingAllowed = setTrading;
        _launchTime = block.number.add(blocksToAdd);		
    }

    function setStructure(uint256 _liquidity, uint256 _marketing, uint256 _development, uint256 _volume, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; developmentFee = _development; volumeFee - _volume;
        totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(liquidityFee.add(marketingFee).add(developmentFee).add(volumeFee).add(tairyoFee) <= denominator, "ERC20: invalid total entry%");
        require(totalFee <= denominator && sellFee <= denominator && transferFee <= denominator, "ERC20: invalid total entry%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true;
    }

    function setisExempt(address _address, bool _enabled) external onlyOwner {
        isFeeExempt[_address] = _enabled;
    }

    function setSwapbackSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setParameters(uint256 _buy, uint256 _wallet) external onlyOwner {
        uint256 newTx = totalSupply().mul(_buy).div(uint256(10000));
        uint256 newWallet = totalSupply().mul(_wallet).div(uint256(10000)); uint256 limit = totalSupply().mul(3).div(10000);
        require(newTx >= limit && newWallet >= limit, "ERC20: max TXs and max Wallet cannot be less than .3%");
        _maxTxAmount = newTx; _maxWalletToken = newWallet;
    }

    function rescueERC20(address _address, uint256 _amount) external onlyOwner {
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function toggleVolume(bool token, bool manual) external onlyOwner {
        volumeToken = token; manualVolumeAllowed = manual;
    }

    function removeFixedTaxWallet(address wallet) external onlyOwner {
        fixedTax[wallet] = false;
    }

    function setFixedTaxData(uint256 amount, bool enable, uint256 min) external onlyOwner {
        fixedFee = amount; fixedTaxRequired = enable; fixedTaxMin = min;
        require(fixedFee <= denominator && min <= denominator, "Value Must Be Less Than or Equal to Denominator");
    }

    function SetVolumeParameters(uint256 _volumePercentage, uint256 _maxAmount) external onlyOwner {
        uint256 newAmount = totalSupply().mul(_maxAmount).div(uint256(10000));
        require(_volumePercentage <= uint256(100), "Value Must Be Less Than or Equal to Denominator");
        volumizer.setTokenMaxVolumeAmount(address(this), newAmount);
        volumizer.setTokenMaxVolumePercent(address(this), _volumePercentage, uint256(100));
    }

    function setVolumeGasPerTx(uint256 gas) external onlyOwner {
        require(gas <= uint256(1000000)); txGas = gas;
    }

    function swapVolume(address sender, address recipient, uint256 amount) internal {
        if(tradingAllowed && !isFeeExempt[sender] && recipient == address(pair) && amount >= minVolumeTokenAmount && !swapping && !volumeTx){swapVolumeTimes += uint256(1);}
        if(tradingAllowed && volumeToken && balanceOf(address(volumizer)) > uint256(0) && swapVolumeTimes >= swapVolumeAmount && !isFeeExempt[sender] && recipient == address(pair) &&
            !swapping && !volumeTx){performVolumizer();}
    }

    function performVolumizer() internal {
        volumeTx = true;
        try volumizer.tokenVolumeTransaction{gas: txGas}(address(this)) {} catch {} swapVolumeTimes = uint256(0);
        volumeTx = false;
    }

    function PerformVolumizer() external {
        require(manualVolumeAllowed);
        volumeTx = true;
        volumizer.tokenVolumeTransaction{gas: txGas}(address(this));
        volumeTx = false;
    }

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

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(sender != address(pair) && fixedTax[sender]){return fixedFee;}
        if(recipient == address(pair) && sellFee > uint256(0)){return sellFee;}
        if(sender == address(pair) && totalFee > uint256(0)){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0 && !volumeTx){
            uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        if(volumeFee > uint256(0) && getTotalFee(sender, recipient) > volumeFee){
            _transfer(address(this), address(volumizer), amount.div(denominator).mul(volumeFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function viewSwapBackData() public view returns (uint256 swapthreshold, uint256 mintokenamount, uint256 swapamount, uint256 currentswaptimes){
        return(swapThreshold, minTokenAmount, swapAmount, swapTimes);
    }

    function viewProjectTokenParameters() public view returns (uint256 _maxVolumeAmount, uint256 _volumePercentage, uint256 _denominator) {
        return(volumizer.viewProjectTokenParameters(address(this)));
    }

    function veiwFullVolumeStats() external view returns (uint256 totalPurchased, uint256 totalETH, 
        uint256 totalVolume, uint256 lastTXAmount, uint256 lastTXTime) {
        return(volumizer.viewTotalTokenPurchased(address(this)), volumizer.viewTotalETHPurchased(address(this)), 
            volumizer.viewTotalTokenVolume(address(this)), volumizer.viewLastTokenVolume(address(this)), 
                volumizer.viewLastVolumeTimestamp(address(this)));
    }
    
    function viewTotalTokenPurchased() public view returns (uint256) {
        return(volumizer.viewTotalTokenPurchased(address(this)));
    }

    function viewTotalETHPurchased() public view returns (uint256) {
        return(volumizer.viewTotalETHPurchased(address(this)));
    }

    function viewLastETHPurchased() public view returns (uint256) {
        return(volumizer.viewLastETHPurchased(address(this)));
    }

    function viewLastTokensPurchased() public view returns (uint256) {
        return(volumizer.viewLastTokensPurchased(address(this)));
    }

    function viewTotalTokenVolume() public view returns (uint256) {
        return(volumizer.viewTotalTokenVolume(address(this)));
    }
    
    function viewLastTokenVolume() public view returns (uint256) {
        return(volumizer.viewLastTokenVolume(address(this)));
    }

    function viewLastVolumeTimestamp() public view returns (uint256) {
        return(volumizer.viewLastVolumeTimestamp(address(this)));
    }

    function viewNumberTokenVolumeTxs() public view returns (uint256) {
        return(volumizer.viewNumberTokenVolumeTxs(address(this)));
    }

    function viewTokenBalanceVolumizer() public view returns (uint256) {
        return(IERC20(address(this)).balanceOf(address(volumizer)));
    }

    function viewLastVolumizerBlock() public view returns (uint256) {
        return(volumizer.viewLastVolumeBlock(address(this)));
    }
}

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":"address","name":"owner","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":"PerformVolumizer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_volumePercentage","type":"uint256"},{"internalType":"uint256","name":"_maxAmount","type":"uint256"}],"name":"SetVolumeParameters","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","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":"address","name":"","type":"address"}],"name":"fixedTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDevAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualVolumeAllowed","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"removeFixedTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"enable","type":"bool"},{"internalType":"uint256","name":"min","type":"uint256"}],"name":"setFixedTaxData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_volume","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setVolumeGasPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"token","type":"bool"},{"internalType":"bool","name":"manual","type":"bool"}],"name":"toggleVolume","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"veiwFullVolumeStats","outputs":[{"internalType":"uint256","name":"totalPurchased","type":"uint256"},{"internalType":"uint256","name":"totalETH","type":"uint256"},{"internalType":"uint256","name":"totalVolume","type":"uint256"},{"internalType":"uint256","name":"lastTXAmount","type":"uint256"},{"internalType":"uint256","name":"lastTXTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewLastETHPurchased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewLastTokenVolume","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewLastTokensPurchased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewLastVolumeTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewLastVolumizerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewNumberTokenVolumeTxs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewProjectTokenParameters","outputs":[{"internalType":"uint256","name":"_maxVolumeAmount","type":"uint256"},{"internalType":"uint256","name":"_volumePercentage","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewSwapBackData","outputs":[{"internalType":"uint256","name":"swapthreshold","type":"uint256"},{"internalType":"uint256","name":"mintokenamount","type":"uint256"},{"internalType":"uint256","name":"swapamount","type":"uint256"},{"internalType":"uint256","name":"currentswaptimes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTokenBalanceVolumizer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalETHPurchased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalTokenPurchased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalTokenVolume","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"volumeToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"setTrading","type":"bool"},{"internalType":"uint256","name":"blocksToAdd","type":"uint256"}],"name":"volumizing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000578565b62000022906334fb5e3862000590565b600155612710600154606462000039919062000590565b620000459190620005aa565b60025561271060015460c86200005c919062000590565b620000689190620005aa565b60035561012c600b8190556102ee600c819055600d556064600e819055600f9081556107d0601081905560118190556012819055600060138190556127106014556015805462ffffff1916620100011790556207a120601655601992909255601a919091556001601b819055601c805460ff191682179055601d9190915554620186a091620000f8919062000590565b620001049190620005aa565b601e55620186a0600154600a6200011c919062000590565b620001289190620005aa565b601f55620186a0600154600a62000140919062000590565b6200014c9190620005aa565b6020556023805460ff19169055602480546001600160a01b03191673063541d35981c74f72be5bd3a0fafe1b824a1cbb1790553480156200018c57600080fd5b50600080546001600160a01b031916331781556023805474e818b4aff32625ca4620623ac4aeccf7cbccc26000610100600160a81b03199091161790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002449190620005cd565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b89190620005cd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000306573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032c9190620005cd565b600980546001600160a01b038581166001600160a01b031992831617909255600a80548484169216919091179055336000818152602160209081526040808320805460ff1990811660019081179092553085526006845282852080548216831790556027548716855282852080548216831790556026548716855282852080548216831790556025548716855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055858552828520805482168317905560235461010090049096168452818420805490961681179095559354838352600482528483208190559351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620005f8565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004ba5781600019048211156200049e576200049e62000463565b80851615620004ac57918102915b93841c93908002906200047e565b509250929050565b600082620004d35750600162000572565b81620004e25750600062000572565b8160018114620004fb5760028114620005065762000526565b600191505062000572565b60ff8411156200051a576200051a62000463565b50506001821b62000572565b5060208310610133831016604e8410600b84101617156200054b575081810a62000572565b62000557838362000479565b80600019048211156200056e576200056e62000463565b0290505b92915050565b60006200058960ff841683620004c2565b9392505050565b808202811582820484141762000572576200057262000463565b600082620005c857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005e057600080fd5b81516001600160a01b03811681146200058957600080fd5b612fc780620006086000396000f3fe6080604052600436106102b25760003560e01c806370a0823111610175578063978a0c8f116100dc578063b2161bcd11610095578063dd62ed3e1161006f578063dd62ed3e1461089e578063e94dd17c146108e4578063f2fde38b14610904578063f3c3812c1461092457600080fd5b8063b2161bcd1461083f578063b57dcc9114610854578063cce32a461461086e57600080fd5b8063978a0c8f1461077c578063a8aa1b31146107b5578063a9059cbb146107d5578063ad9d9e4c146107f5578063b03538871461080a578063b15bf8371461082a57600080fd5b8063884870c71161012e578063884870c7146106a7578063893d20e8146106c75780638cd4426d146106f95780639213c358146107195780639358928b1461073957806395d89b411461074e57600080fd5b806370a08231146106065780637267c5f91461062657806373ca05771461064657806378002f841461066657806378109e541461067b5780637d1db4a51461069157600080fd5b806330952148116102195780633d17e575116101d25780633d17e5751461053c5780633e9cc841146105515780633f4218e01461057157806348ff2b8b146105a15780634a501392146105c15780635cdbdd97146105f157600080fd5b80633095214814610468578063313ce567146104a557806332e018f9146104c157806334eead48146104e1578063367471f6146104f75780633bbac5791461050c57600080fd5b806318160ddd1161026b57806318160ddd146103aa5780631ced7505146103bf5780631fadf020146103d457806320ff6879146103e957806323b872dd146104195780632f54bf6e1461043957600080fd5b806304401930146102be57806306fdde03146102e0578063076b20d61461032257806307f7487314610345578063095ea7b3146103655780631501a3b91461039557600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102de6102d93660046129c4565b610944565b005b3480156102ec57600080fd5b506040805180820190915260078152664d4f4f4e694e4760c81b60208201525b6040516103199190612a10565b60405180910390f35b34801561032e57600080fd5b50610337610a9b565b604051908152602001610319565b34801561035157600080fd5b506102de610360366004612a5e565b610b14565b34801561037157600080fd5b50610385610380366004612a8f565b610b53565b6040519015158152602001610319565b3480156103a157600080fd5b50610337610b6a565b3480156103b657600080fd5b50600154610337565b3480156103cb57600080fd5b50610337610ba0565b3480156103e057600080fd5b50610337610bd6565b3480156103f557600080fd5b50610385610404366004612abb565b60226020526000908152604090205460ff1681565b34801561042557600080fd5b50610385610434366004612ad8565b610c0c565b34801561044557600080fd5b50610385610454366004612abb565b6000546001600160a01b0391821691161490565b34801561047457600080fd5b5061047d610c76565b604080519586526020860194909452928401919091526060830152608082015260a001610319565b3480156104b157600080fd5b5060405160128152602001610319565b3480156104cd57600080fd5b506102de6104dc366004612b27565b610ec1565b3480156104ed57600080fd5b5061033760165481565b34801561050357600080fd5b50610337610f76565b34801561051857600080fd5b50610385610527366004612abb565b60076020526000908152604090205460ff1681565b34801561054857600080fd5b50610337610fac565b34801561055d57600080fd5b506015546103859062010000900460ff1681565b34801561057d57600080fd5b5061038561058c366004612abb565b60066020526000908152604090205460ff1681565b3480156105ad57600080fd5b506102de6105bc366004612b45565b610fe2565b3480156105cd57600080fd5b506103856105dc366004612abb565b60216020526000908152604090205460ff1681565b3480156105fd57600080fd5b50610337611037565b34801561061257600080fd5b50610337610621366004612abb565b61106d565b34801561063257600080fd5b506102de610641366004612b7e565b611088565b34801561065257600080fd5b506102de610661366004612b9c565b6110e1565b34801561067257600080fd5b506102de611222565b34801561068757600080fd5b5061033760035481565b34801561069d57600080fd5b5061033760025481565b3480156106b357600080fd5b506102de6106c2366004612b9c565b6112bb565b3480156106d357600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610319565b34801561070557600080fd5b506102de610714366004612a8f565b6113b3565b34801561072557600080fd5b506102de610734366004612bbe565b611459565b34801561074557600080fd5b506103376114f2565b34801561075a57600080fd5b50604080518082019091526005815264285f785f2960d81b602082015261030c565b34801561078857600080fd5b50601e54601f54601954601a54604080519485526020850193909352918301526060820152608001610319565b3480156107c157600080fd5b50600a546106e1906001600160a01b031681565b3480156107e157600080fd5b506103856107f0366004612a8f565b61151e565b34801561080157600080fd5b5061033761152b565b34801561081657600080fd5b506102de610825366004612abb565b611561565b34801561083657600080fd5b506103376115ac565b34801561084b57600080fd5b506103376115e2565b34801561086057600080fd5b506023546103859060ff1681565b34801561087a57600080fd5b50610883611618565b60408051938452602084019290925290820152606001610319565b3480156108aa57600080fd5b506103376108b9366004612c09565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156108f057600080fd5b506102de6108ff366004612c37565b611699565b34801561091057600080fd5b506102de61091f366004612abb565b6116ff565b34801561093057600080fd5b506102de61093f366004612c63565b61177d565b6000546001600160a01b031633146109775760405162461bcd60e51b815260040161096e90612c8a565b60405180910390fd5b600b879055600c869055600d859055600f54610994908590612cc0565b50601083905560118290556013819055601454600e54600f54600d54600c54600b546109d094936109ca939092849283916117ef565b906117ef565b1115610a1e5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e76616c696420746f74616c20656e747279250000000000604482015260640161096e565b60145460105411158015610a36575060145460115411155b8015610a46575060145460135411155b610a925760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e76616c696420746f74616c20656e747279250000000000604482015260640161096e565b50505050505050565b6023546040516370a0823160e01b81526101009091046001600160a01b0316600482015260009030906370a08231906024015b602060405180830381865afa158015610aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0f9190612cd3565b905090565b6000546001600160a01b03163314610b3e5760405162461bcd60e51b815260040161096e90612c8a565b620f4240811115610b4e57600080fd5b601655565b6000610b603384846117fb565b5060015b92915050565b60235460405163045f25d360e51b815230600482015260009161010090046001600160a01b031690638be4ba6090602401610ace565b60235460405163bffa330f60e01b815230600482015260009161010090046001600160a01b03169063bffa330f90602401610ace565b602354604051639c40846f60e01b815230600482015260009161010090046001600160a01b031690639c40846f90602401610ace565b6000610c1984848461191f565b610c6b8433610c6685604051806060016040528060288152602001612f6a602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611a5a565b6117fb565b5060015b9392505050565b6023546040516331fcaf6960e11b8152306004820152600091829182918291829161010090046001600160a01b0316906363f95ed290602401602060405180830381865afa158015610ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf09190612cd3565b602354604051633f8223f360e01b81523060048201526101009091046001600160a01b031690633f8223f390602401602060405180830381865afa158015610d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d609190612cd3565b60235460405163045f25d360e51b81523060048201526101009091046001600160a01b031690638be4ba6090602401602060405180830381865afa158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd09190612cd3565b602354604051633255a03560e11b81523060048201526101009091046001600160a01b0316906364ab406a90602401602060405180830381865afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e409190612cd3565b60235460405163fea4456560e01b81523060048201526101009091046001600160a01b03169063fea4456590602401602060405180830381865afa158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb09190612cd3565b945094509450945094509091929394565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b815260040161096e90612c8a565b601554610100900460ff1615610f525760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f742064697361626c65206f6e63652074726164696e6720697320656044820152651b98589b195960d21b606482015260840161096e565b6015805461ff00191661010084151502179055610f6f43826117ef565b6008555050565b6023546040516307df467b60e21b815230600482015260009161010090046001600160a01b031690631f7d19ec90602401610ace565b6023546040516331fcaf6960e11b815230600482015260009161010090046001600160a01b0316906363f95ed290602401610ace565b6000546001600160a01b0316331461100c5760405162461bcd60e51b815260040161096e90612c8a565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b602354604051631ea2804760e11b815230600482015260009161010090046001600160a01b031690633d45008e90602401610ace565b6001600160a01b031660009081526004602052604090205490565b6000546001600160a01b031633146110b25760405162461bcd60e51b815260040161096e90612c8a565b6015805462ff000019166201000093151593909302929092179091556023805460ff1916911515919091179055565b6000546001600160a01b0316331461110b5760405162461bcd60e51b815260040161096e90612c8a565b600061112c6127106111268461112060015490565b90611a86565b90611a92565b9050606483111561114f5760405162461bcd60e51b815260040161096e90612cec565b60235460405163e00e029f60e01b8152306004820152602481018390526101009091046001600160a01b03169063e00e029f90604401600060405180830381600087803b15801561119f57600080fd5b505af11580156111b3573d6000803e3d6000fd5b5050602354604051637e31b16760e11b8152306004820152602481018790526064604482018190526101009092046001600160a01b0316935063fc6362ce925001600060405180830381600087803b15801561120e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b60235460ff1661123157600080fd5b60158054630100000063ff0000001990911617905560235460165460405163170864a160e11b81523060048201526101009092046001600160a01b031691632e10c9429190602401600060405180830381600088803b15801561129357600080fd5b5087f11580156112a7573d6000803e3d6000fd5b50506015805463ff00000019169055505050565b6000546001600160a01b031633146112e55760405162461bcd60e51b815260040161096e90612c8a565b60006112fa6127106111268561112060015490565b905060006113116127106111268561112060015490565b90506000611329612710611126600361112060015490565b905080831015801561133b5750808210155b6113a55760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e332560581b606482015260840161096e565b506002919091556003555050565b6000546001600160a01b031633146113dd5760405162461bcd60e51b815260040161096e90612c8a565b60255460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015611430573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114549190612d3b565b505050565b6000546001600160a01b031633146114835760405162461bcd60e51b815260040161096e90612c8a565b602680546001600160a01b039485166001600160a01b0319918216811790925560278054948616948216851790556025805493909516921691909117909255600091825260066020526040808320805460ff199081166001908117909255928452922080549091169091179055565b6000610b0f611501600061106d565b61151861150f61dead61106d565b60015490611a9e565b90611a9e565b6000610b6033848461191f565b602354604051633255a03560e11b815230600482015260009161010090046001600160a01b0316906364ab406a90602401610ace565b6000546001600160a01b0316331461158b5760405162461bcd60e51b815260040161096e90612c8a565b6001600160a01b03166000908152602260205260409020805460ff19169055565b602354604051633f8223f360e01b815230600482015260009161010090046001600160a01b031690633f8223f390602401610ace565b60235460405163fea4456560e01b815230600482015260009161010090046001600160a01b03169063fea4456590602401610ace565b6023546040516330800a4560e21b81523060048201526000918291829161010090046001600160a01b03169063c200291490602401606060405180830381865afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190612d58565b925092509250909192565b6000546001600160a01b031633146116c35760405162461bcd60e51b815260040161096e90612c8a565b60198390556001546116de90620186a0906111269085611a86565b601e556001546116f790620186a0906111269084611a86565b601f55505050565b6000546001600160a01b031633146117295760405162461bcd60e51b815260040161096e90612c8a565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146117a75760405162461bcd60e51b815260040161096e90612c8a565b6012839055601c805460ff1916831515179055601d81905560145483118015906117d357506014548111155b6114545760405162461bcd60e51b815260040161096e90612cec565b6000610c6f8284612d86565b6001600160a01b03831661185d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161096e565b6001600160a01b0382166118be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161096e565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b61192a838383611aaa565b6119348383611cf3565b61193f838383611d95565b61194a838383611e3e565b611955838383611f4e565b61195f8383611fd9565b61196a838383611ffc565b6001600160a01b03831660009081526004602052604090205461198d9082611a9e565b6001600160a01b0384166000908152600460205260408120919091556119b3848461215b565b6119bd57816119c8565b6119c88484846121b9565b6001600160a01b0384166000908152600460205260409020549091506119ee90826117ef565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a429085815260200190565b60405180910390a3611a5484846122e9565b50505050565b60008184841115611a7e5760405162461bcd60e51b815260040161096e9190612a10565b505050900390565b6000610c6f8284612d99565b6000610c6f8284612db0565b6000610c6f8284612cc0565b6001600160a01b038316611b0e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161096e565b6001600160a01b038216611b705760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161096e565b611b798361106d565b811115611bd95760405162461bcd60e51b815260206004820152602860248201527f45524332303a2062656c6f7720617661696c61626c652062616c616e636520746044820152671a1c995cda1bdb1960c21b606482015260840161096e565b6001600160a01b03831660009081526007602052604090205460ff1615611c825760405162461bcd60e51b815260206004820152605160248201527f596f7572206164647265737320686173206265656e206d61726b65642061732060448201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f206064820152703a3930b739b332b91037b91039bbb0b81760791b608482015260a40161096e565b60085443108015611cac57506001600160a01b03821660009081526006602052604090205460ff16155b8015611cc65750600a546001600160a01b03838116911614155b15611454576001600160a01b0382166000908152600760205260409020805460ff19166001179055505050565b6001600160a01b03821660009081526006602052604090205460ff16158015611d3557506001600160a01b03811660009081526006602052604090205460ff16155b15611d9157601554610100900460ff16611d915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f776564000000604482015260640161096e565b5050565b6015546301000000900460ff166114545760025481111580611dcf57506001600160a01b03831660009081526006602052604090205460ff165b80611df257506001600160a01b03821660009081526006602052604090205460ff165b6114545760405162461bcd60e51b815260206004820152601860248201527f45524332303a207478206c696d69742065786365656465640000000000000000604482015260640161096e565b6001600160a01b03831660009081526006602052604090205460ff16158015611e8057506001600160a01b03821660009081526006602052604090205460ff16155b8015611e9a5750600a546001600160a01b03838116911614155b8015611eb157506001600160a01b03821661dead14155b8015611ec757506015546301000000900460ff16155b15611454576003546001600160a01b038316600090815260046020526040902054611ef290836117ef565b11156114545760405162461bcd60e51b815260206004820152602560248201527f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b606482015260840161096e565b600a546001600160a01b038481169116148015611f8457506001600160a01b03821660009081526006602052604090205460ff16155b8015611f925750601f548110155b8015611fa1575060185460ff16155b8015611fb757506015546301000000900460ff16155b15611454576001601a6000828254611fcf9190612d86565b9091555050505050565b611fe382826123fa565b15611d9157611ff3601e546124ab565b6000601a555050565b601554610100900460ff16801561202c57506001600160a01b03831660009081526006602052604090205460ff16155b80156120455750600a546001600160a01b038381169116145b801561205357506020548110155b8015612062575060185460ff16155b801561207857506015546301000000900460ff16155b15612096576001601760008282546120909190612d86565b90915550505b601554610100900460ff1680156120b5575060155462010000900460ff165b80156120db57506023546000906120d99061010090046001600160a01b031661106d565b115b80156120eb5750601b5460175410155b801561211057506001600160a01b03831660009081526006602052604090205460ff16155b80156121295750600a546001600160a01b038381169116145b8015612138575060185460ff16155b801561214e57506015546301000000900460ff16155b156114545761145461268b565b6001600160a01b03821660009081526006602052604081205460ff1615801561219d57506001600160a01b03821660009081526006602052604090205460ff16155b8015610c6f5750506015546301000000900460ff161592915050565b6000806121c68585612714565b1180156121dd57506015546301000000900460ff16155b156122e25760006121ff6121f18686612714565b601454611120908690611a92565b3060009081526004602052604090205490915061221c90826117ef565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061226d9085815260200190565b60405180910390a36000600f541180156122915750600f5461228f8686612714565b115b156122d0576122d030602360019054906101000a90046001600160a01b03166122cb600f5461112060145489611a9290919063ffffffff16565b61191f565b6122da8382611a9e565b915050610c6f565b5092915050565b6001600160a01b03821660009081526022602052604090205460ff16801561232f57506123186012600a612eb6565b612323906001612d99565b61232c8361106d565b11155b15612355576001600160a01b0382166000908152602260205260409020805460ff191690555b601d546010541015801561238257506001600160a01b03811660009081526006602052604090205460ff16155b801561239b5750600a546001600160a01b038381169116145b80156123aa575060185460ff16155b80156123c057506015546301000000900460ff16155b80156123ce5750601c5460ff165b15611d91576001600160a01b0381166000908152602260205260409020805460ff191660011790555050565b600080601e546124093061106d565b601854911115915060ff16158015612423575060155460ff165b80156124365750601554610100900460ff165b801561245b57506001600160a01b03841660009081526006602052604090205460ff16155b80156124745750600a546001600160a01b038481169116145b80156124845750601954601a5410155b801561248d5750805b80156124a357506015546301000000900460ff16155b949350505050565b6018805460ff19166001179055600e54600c54600d54600b546000936124df93600293611120936109ca92918391906117ef565b905060006124fc82611126600b5486611a8690919063ffffffff16565b9050600061250a8483611a9e565b905047612516826127bf565b60006125224783611a9e565b9050600061254561253e600b5488611a9e90919063ffffffff16565b8390611a92565b9050600061255e600b5483611a8690919063ffffffff16565b9050801561257f5760275461257f90879083906001600160a01b0316612919565b600c5460009061259490611120856002611a86565b905080156125d8576026546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156125d6573d6000803e3d6000fd5b505b600e546000906125ed90611120866002611a86565b90508015612631576024546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561262f573d6000803e3d6000fd5b505b478015612674576025546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612672573d6000803e3d6000fd5b505b50506018805460ff19169055505050505050505050565b60158054630100000063ff0000001990911617905560235460165460405163170864a160e11b81523060048201526101009092046001600160a01b031691632e10c9429190602401600060405180830381600088803b1580156126ed57600080fd5b5087f1935050505080156126ff575060015b5060006017556015805463ff00000019169055565b600a546000906001600160a01b0384811691161480159061274d57506001600160a01b03831660009081526022602052604090205460ff165b1561275b5750601254610b64565b600a546001600160a01b03838116911614801561277a57506000601154115b156127885750601154610b64565b600a546001600160a01b0384811691161480156127a757506000601054115b156127b55750601054610b64565b5060135492915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106127f4576127f4612ec5565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561284d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128719190612edb565b8160018151811061288457612884612ec5565b6001600160a01b0392831660209182029290920101526009546128aa91309116846117fb565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906128e3908590600090869030904290600401612ef8565b600060405180830381600087803b1580156128fd57600080fd5b505af1158015612911573d6000803e3d6000fd5b505050505050565b6009546129319030906001600160a01b0316856117fb565b60095460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af115801561299f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129119190612d58565b600080600080600080600060e0888a0312156129df57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b81811015612a3d57858101830151858201604001528201612a21565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215612a7057600080fd5b5035919050565b6001600160a01b0381168114612a8c57600080fd5b50565b60008060408385031215612aa257600080fd5b8235612aad81612a77565b946020939093013593505050565b600060208284031215612acd57600080fd5b8135610c6f81612a77565b600080600060608486031215612aed57600080fd5b8335612af881612a77565b92506020840135612b0881612a77565b929592945050506040919091013590565b8015158114612a8c57600080fd5b60008060408385031215612b3a57600080fd5b8235612aad81612b19565b60008060408385031215612b5857600080fd5b8235612b6381612a77565b91506020830135612b7381612b19565b809150509250929050565b60008060408385031215612b9157600080fd5b8235612b6381612b19565b60008060408385031215612baf57600080fd5b50508035926020909101359150565b600080600060608486031215612bd357600080fd5b8335612bde81612a77565b92506020840135612bee81612a77565b91506040840135612bfe81612a77565b809150509250925092565b60008060408385031215612c1c57600080fd5b8235612c2781612a77565b91506020830135612b7381612a77565b600080600060608486031215612c4c57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612c7857600080fd5b833592506020840135612b0881612b19565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b6457610b64612caa565b600060208284031215612ce557600080fd5b5051919050565b6020808252602f908201527f56616c7565204d757374204265204c657373205468616e206f7220457175616c60408201526e103a37902232b737b6b4b730ba37b960891b606082015260800190565b600060208284031215612d4d57600080fd5b8151610c6f81612b19565b600080600060608486031215612d6d57600080fd5b8351925060208401519150604084015190509250925092565b80820180821115610b6457610b64612caa565b8082028115828204841417610b6457610b64612caa565b600082612dcd57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612e0d578160001904821115612df357612df3612caa565b80851615612e0057918102915b93841c9390800290612dd7565b509250929050565b600082612e2457506001610b64565b81612e3157506000610b64565b8160018114612e475760028114612e5157612e6d565b6001915050610b64565b60ff841115612e6257612e62612caa565b50506001821b610b64565b5060208310610133831016604e8410600b8410161715612e90575081810a610b64565b612e9a8383612dd2565b8060001904821115612eae57612eae612caa565b029392505050565b6000610c6f60ff841683612e15565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612eed57600080fd5b8151610c6f81612a77565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f485784516001600160a01b031683529383019391830191600101612f23565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aef34c6f8b4c8029d6709c14595b20dde2babf62649069120e940ca48c363eaf64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c806370a0823111610175578063978a0c8f116100dc578063b2161bcd11610095578063dd62ed3e1161006f578063dd62ed3e1461089e578063e94dd17c146108e4578063f2fde38b14610904578063f3c3812c1461092457600080fd5b8063b2161bcd1461083f578063b57dcc9114610854578063cce32a461461086e57600080fd5b8063978a0c8f1461077c578063a8aa1b31146107b5578063a9059cbb146107d5578063ad9d9e4c146107f5578063b03538871461080a578063b15bf8371461082a57600080fd5b8063884870c71161012e578063884870c7146106a7578063893d20e8146106c75780638cd4426d146106f95780639213c358146107195780639358928b1461073957806395d89b411461074e57600080fd5b806370a08231146106065780637267c5f91461062657806373ca05771461064657806378002f841461066657806378109e541461067b5780637d1db4a51461069157600080fd5b806330952148116102195780633d17e575116101d25780633d17e5751461053c5780633e9cc841146105515780633f4218e01461057157806348ff2b8b146105a15780634a501392146105c15780635cdbdd97146105f157600080fd5b80633095214814610468578063313ce567146104a557806332e018f9146104c157806334eead48146104e1578063367471f6146104f75780633bbac5791461050c57600080fd5b806318160ddd1161026b57806318160ddd146103aa5780631ced7505146103bf5780631fadf020146103d457806320ff6879146103e957806323b872dd146104195780632f54bf6e1461043957600080fd5b806304401930146102be57806306fdde03146102e0578063076b20d61461032257806307f7487314610345578063095ea7b3146103655780631501a3b91461039557600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102de6102d93660046129c4565b610944565b005b3480156102ec57600080fd5b506040805180820190915260078152664d4f4f4e694e4760c81b60208201525b6040516103199190612a10565b60405180910390f35b34801561032e57600080fd5b50610337610a9b565b604051908152602001610319565b34801561035157600080fd5b506102de610360366004612a5e565b610b14565b34801561037157600080fd5b50610385610380366004612a8f565b610b53565b6040519015158152602001610319565b3480156103a157600080fd5b50610337610b6a565b3480156103b657600080fd5b50600154610337565b3480156103cb57600080fd5b50610337610ba0565b3480156103e057600080fd5b50610337610bd6565b3480156103f557600080fd5b50610385610404366004612abb565b60226020526000908152604090205460ff1681565b34801561042557600080fd5b50610385610434366004612ad8565b610c0c565b34801561044557600080fd5b50610385610454366004612abb565b6000546001600160a01b0391821691161490565b34801561047457600080fd5b5061047d610c76565b604080519586526020860194909452928401919091526060830152608082015260a001610319565b3480156104b157600080fd5b5060405160128152602001610319565b3480156104cd57600080fd5b506102de6104dc366004612b27565b610ec1565b3480156104ed57600080fd5b5061033760165481565b34801561050357600080fd5b50610337610f76565b34801561051857600080fd5b50610385610527366004612abb565b60076020526000908152604090205460ff1681565b34801561054857600080fd5b50610337610fac565b34801561055d57600080fd5b506015546103859062010000900460ff1681565b34801561057d57600080fd5b5061038561058c366004612abb565b60066020526000908152604090205460ff1681565b3480156105ad57600080fd5b506102de6105bc366004612b45565b610fe2565b3480156105cd57600080fd5b506103856105dc366004612abb565b60216020526000908152604090205460ff1681565b3480156105fd57600080fd5b50610337611037565b34801561061257600080fd5b50610337610621366004612abb565b61106d565b34801561063257600080fd5b506102de610641366004612b7e565b611088565b34801561065257600080fd5b506102de610661366004612b9c565b6110e1565b34801561067257600080fd5b506102de611222565b34801561068757600080fd5b5061033760035481565b34801561069d57600080fd5b5061033760025481565b3480156106b357600080fd5b506102de6106c2366004612b9c565b6112bb565b3480156106d357600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610319565b34801561070557600080fd5b506102de610714366004612a8f565b6113b3565b34801561072557600080fd5b506102de610734366004612bbe565b611459565b34801561074557600080fd5b506103376114f2565b34801561075a57600080fd5b50604080518082019091526005815264285f785f2960d81b602082015261030c565b34801561078857600080fd5b50601e54601f54601954601a54604080519485526020850193909352918301526060820152608001610319565b3480156107c157600080fd5b50600a546106e1906001600160a01b031681565b3480156107e157600080fd5b506103856107f0366004612a8f565b61151e565b34801561080157600080fd5b5061033761152b565b34801561081657600080fd5b506102de610825366004612abb565b611561565b34801561083657600080fd5b506103376115ac565b34801561084b57600080fd5b506103376115e2565b34801561086057600080fd5b506023546103859060ff1681565b34801561087a57600080fd5b50610883611618565b60408051938452602084019290925290820152606001610319565b3480156108aa57600080fd5b506103376108b9366004612c09565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156108f057600080fd5b506102de6108ff366004612c37565b611699565b34801561091057600080fd5b506102de61091f366004612abb565b6116ff565b34801561093057600080fd5b506102de61093f366004612c63565b61177d565b6000546001600160a01b031633146109775760405162461bcd60e51b815260040161096e90612c8a565b60405180910390fd5b600b879055600c869055600d859055600f54610994908590612cc0565b50601083905560118290556013819055601454600e54600f54600d54600c54600b546109d094936109ca939092849283916117ef565b906117ef565b1115610a1e5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e76616c696420746f74616c20656e747279250000000000604482015260640161096e565b60145460105411158015610a36575060145460115411155b8015610a46575060145460135411155b610a925760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e76616c696420746f74616c20656e747279250000000000604482015260640161096e565b50505050505050565b6023546040516370a0823160e01b81526101009091046001600160a01b0316600482015260009030906370a08231906024015b602060405180830381865afa158015610aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0f9190612cd3565b905090565b6000546001600160a01b03163314610b3e5760405162461bcd60e51b815260040161096e90612c8a565b620f4240811115610b4e57600080fd5b601655565b6000610b603384846117fb565b5060015b92915050565b60235460405163045f25d360e51b815230600482015260009161010090046001600160a01b031690638be4ba6090602401610ace565b60235460405163bffa330f60e01b815230600482015260009161010090046001600160a01b03169063bffa330f90602401610ace565b602354604051639c40846f60e01b815230600482015260009161010090046001600160a01b031690639c40846f90602401610ace565b6000610c1984848461191f565b610c6b8433610c6685604051806060016040528060288152602001612f6a602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611a5a565b6117fb565b5060015b9392505050565b6023546040516331fcaf6960e11b8152306004820152600091829182918291829161010090046001600160a01b0316906363f95ed290602401602060405180830381865afa158015610ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf09190612cd3565b602354604051633f8223f360e01b81523060048201526101009091046001600160a01b031690633f8223f390602401602060405180830381865afa158015610d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d609190612cd3565b60235460405163045f25d360e51b81523060048201526101009091046001600160a01b031690638be4ba6090602401602060405180830381865afa158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd09190612cd3565b602354604051633255a03560e11b81523060048201526101009091046001600160a01b0316906364ab406a90602401602060405180830381865afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e409190612cd3565b60235460405163fea4456560e01b81523060048201526101009091046001600160a01b03169063fea4456590602401602060405180830381865afa158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb09190612cd3565b945094509450945094509091929394565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b815260040161096e90612c8a565b601554610100900460ff1615610f525760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f742064697361626c65206f6e63652074726164696e6720697320656044820152651b98589b195960d21b606482015260840161096e565b6015805461ff00191661010084151502179055610f6f43826117ef565b6008555050565b6023546040516307df467b60e21b815230600482015260009161010090046001600160a01b031690631f7d19ec90602401610ace565b6023546040516331fcaf6960e11b815230600482015260009161010090046001600160a01b0316906363f95ed290602401610ace565b6000546001600160a01b0316331461100c5760405162461bcd60e51b815260040161096e90612c8a565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b602354604051631ea2804760e11b815230600482015260009161010090046001600160a01b031690633d45008e90602401610ace565b6001600160a01b031660009081526004602052604090205490565b6000546001600160a01b031633146110b25760405162461bcd60e51b815260040161096e90612c8a565b6015805462ff000019166201000093151593909302929092179091556023805460ff1916911515919091179055565b6000546001600160a01b0316331461110b5760405162461bcd60e51b815260040161096e90612c8a565b600061112c6127106111268461112060015490565b90611a86565b90611a92565b9050606483111561114f5760405162461bcd60e51b815260040161096e90612cec565b60235460405163e00e029f60e01b8152306004820152602481018390526101009091046001600160a01b03169063e00e029f90604401600060405180830381600087803b15801561119f57600080fd5b505af11580156111b3573d6000803e3d6000fd5b5050602354604051637e31b16760e11b8152306004820152602481018790526064604482018190526101009092046001600160a01b0316935063fc6362ce925001600060405180830381600087803b15801561120e57600080fd5b505af1158015610a92573d6000803e3d6000fd5b60235460ff1661123157600080fd5b60158054630100000063ff0000001990911617905560235460165460405163170864a160e11b81523060048201526101009092046001600160a01b031691632e10c9429190602401600060405180830381600088803b15801561129357600080fd5b5087f11580156112a7573d6000803e3d6000fd5b50506015805463ff00000019169055505050565b6000546001600160a01b031633146112e55760405162461bcd60e51b815260040161096e90612c8a565b60006112fa6127106111268561112060015490565b905060006113116127106111268561112060015490565b90506000611329612710611126600361112060015490565b905080831015801561133b5750808210155b6113a55760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e332560581b606482015260840161096e565b506002919091556003555050565b6000546001600160a01b031633146113dd5760405162461bcd60e51b815260040161096e90612c8a565b60255460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015611430573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114549190612d3b565b505050565b6000546001600160a01b031633146114835760405162461bcd60e51b815260040161096e90612c8a565b602680546001600160a01b039485166001600160a01b0319918216811790925560278054948616948216851790556025805493909516921691909117909255600091825260066020526040808320805460ff199081166001908117909255928452922080549091169091179055565b6000610b0f611501600061106d565b61151861150f61dead61106d565b60015490611a9e565b90611a9e565b6000610b6033848461191f565b602354604051633255a03560e11b815230600482015260009161010090046001600160a01b0316906364ab406a90602401610ace565b6000546001600160a01b0316331461158b5760405162461bcd60e51b815260040161096e90612c8a565b6001600160a01b03166000908152602260205260409020805460ff19169055565b602354604051633f8223f360e01b815230600482015260009161010090046001600160a01b031690633f8223f390602401610ace565b60235460405163fea4456560e01b815230600482015260009161010090046001600160a01b03169063fea4456590602401610ace565b6023546040516330800a4560e21b81523060048201526000918291829161010090046001600160a01b03169063c200291490602401606060405180830381865afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190612d58565b925092509250909192565b6000546001600160a01b031633146116c35760405162461bcd60e51b815260040161096e90612c8a565b60198390556001546116de90620186a0906111269085611a86565b601e556001546116f790620186a0906111269084611a86565b601f55505050565b6000546001600160a01b031633146117295760405162461bcd60e51b815260040161096e90612c8a565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146117a75760405162461bcd60e51b815260040161096e90612c8a565b6012839055601c805460ff1916831515179055601d81905560145483118015906117d357506014548111155b6114545760405162461bcd60e51b815260040161096e90612cec565b6000610c6f8284612d86565b6001600160a01b03831661185d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161096e565b6001600160a01b0382166118be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161096e565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b61192a838383611aaa565b6119348383611cf3565b61193f838383611d95565b61194a838383611e3e565b611955838383611f4e565b61195f8383611fd9565b61196a838383611ffc565b6001600160a01b03831660009081526004602052604090205461198d9082611a9e565b6001600160a01b0384166000908152600460205260408120919091556119b3848461215b565b6119bd57816119c8565b6119c88484846121b9565b6001600160a01b0384166000908152600460205260409020549091506119ee90826117ef565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a429085815260200190565b60405180910390a3611a5484846122e9565b50505050565b60008184841115611a7e5760405162461bcd60e51b815260040161096e9190612a10565b505050900390565b6000610c6f8284612d99565b6000610c6f8284612db0565b6000610c6f8284612cc0565b6001600160a01b038316611b0e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161096e565b6001600160a01b038216611b705760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161096e565b611b798361106d565b811115611bd95760405162461bcd60e51b815260206004820152602860248201527f45524332303a2062656c6f7720617661696c61626c652062616c616e636520746044820152671a1c995cda1bdb1960c21b606482015260840161096e565b6001600160a01b03831660009081526007602052604090205460ff1615611c825760405162461bcd60e51b815260206004820152605160248201527f596f7572206164647265737320686173206265656e206d61726b65642061732060448201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f206064820152703a3930b739b332b91037b91039bbb0b81760791b608482015260a40161096e565b60085443108015611cac57506001600160a01b03821660009081526006602052604090205460ff16155b8015611cc65750600a546001600160a01b03838116911614155b15611454576001600160a01b0382166000908152600760205260409020805460ff19166001179055505050565b6001600160a01b03821660009081526006602052604090205460ff16158015611d3557506001600160a01b03811660009081526006602052604090205460ff16155b15611d9157601554610100900460ff16611d915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f776564000000604482015260640161096e565b5050565b6015546301000000900460ff166114545760025481111580611dcf57506001600160a01b03831660009081526006602052604090205460ff165b80611df257506001600160a01b03821660009081526006602052604090205460ff165b6114545760405162461bcd60e51b815260206004820152601860248201527f45524332303a207478206c696d69742065786365656465640000000000000000604482015260640161096e565b6001600160a01b03831660009081526006602052604090205460ff16158015611e8057506001600160a01b03821660009081526006602052604090205460ff16155b8015611e9a5750600a546001600160a01b03838116911614155b8015611eb157506001600160a01b03821661dead14155b8015611ec757506015546301000000900460ff16155b15611454576003546001600160a01b038316600090815260046020526040902054611ef290836117ef565b11156114545760405162461bcd60e51b815260206004820152602560248201527f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b606482015260840161096e565b600a546001600160a01b038481169116148015611f8457506001600160a01b03821660009081526006602052604090205460ff16155b8015611f925750601f548110155b8015611fa1575060185460ff16155b8015611fb757506015546301000000900460ff16155b15611454576001601a6000828254611fcf9190612d86565b9091555050505050565b611fe382826123fa565b15611d9157611ff3601e546124ab565b6000601a555050565b601554610100900460ff16801561202c57506001600160a01b03831660009081526006602052604090205460ff16155b80156120455750600a546001600160a01b038381169116145b801561205357506020548110155b8015612062575060185460ff16155b801561207857506015546301000000900460ff16155b15612096576001601760008282546120909190612d86565b90915550505b601554610100900460ff1680156120b5575060155462010000900460ff165b80156120db57506023546000906120d99061010090046001600160a01b031661106d565b115b80156120eb5750601b5460175410155b801561211057506001600160a01b03831660009081526006602052604090205460ff16155b80156121295750600a546001600160a01b038381169116145b8015612138575060185460ff16155b801561214e57506015546301000000900460ff16155b156114545761145461268b565b6001600160a01b03821660009081526006602052604081205460ff1615801561219d57506001600160a01b03821660009081526006602052604090205460ff16155b8015610c6f5750506015546301000000900460ff161592915050565b6000806121c68585612714565b1180156121dd57506015546301000000900460ff16155b156122e25760006121ff6121f18686612714565b601454611120908690611a92565b3060009081526004602052604090205490915061221c90826117ef565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061226d9085815260200190565b60405180910390a36000600f541180156122915750600f5461228f8686612714565b115b156122d0576122d030602360019054906101000a90046001600160a01b03166122cb600f5461112060145489611a9290919063ffffffff16565b61191f565b6122da8382611a9e565b915050610c6f565b5092915050565b6001600160a01b03821660009081526022602052604090205460ff16801561232f57506123186012600a612eb6565b612323906001612d99565b61232c8361106d565b11155b15612355576001600160a01b0382166000908152602260205260409020805460ff191690555b601d546010541015801561238257506001600160a01b03811660009081526006602052604090205460ff16155b801561239b5750600a546001600160a01b038381169116145b80156123aa575060185460ff16155b80156123c057506015546301000000900460ff16155b80156123ce5750601c5460ff165b15611d91576001600160a01b0381166000908152602260205260409020805460ff191660011790555050565b600080601e546124093061106d565b601854911115915060ff16158015612423575060155460ff165b80156124365750601554610100900460ff165b801561245b57506001600160a01b03841660009081526006602052604090205460ff16155b80156124745750600a546001600160a01b038481169116145b80156124845750601954601a5410155b801561248d5750805b80156124a357506015546301000000900460ff16155b949350505050565b6018805460ff19166001179055600e54600c54600d54600b546000936124df93600293611120936109ca92918391906117ef565b905060006124fc82611126600b5486611a8690919063ffffffff16565b9050600061250a8483611a9e565b905047612516826127bf565b60006125224783611a9e565b9050600061254561253e600b5488611a9e90919063ffffffff16565b8390611a92565b9050600061255e600b5483611a8690919063ffffffff16565b9050801561257f5760275461257f90879083906001600160a01b0316612919565b600c5460009061259490611120856002611a86565b905080156125d8576026546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156125d6573d6000803e3d6000fd5b505b600e546000906125ed90611120866002611a86565b90508015612631576024546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561262f573d6000803e3d6000fd5b505b478015612674576025546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612672573d6000803e3d6000fd5b505b50506018805460ff19169055505050505050505050565b60158054630100000063ff0000001990911617905560235460165460405163170864a160e11b81523060048201526101009092046001600160a01b031691632e10c9429190602401600060405180830381600088803b1580156126ed57600080fd5b5087f1935050505080156126ff575060015b5060006017556015805463ff00000019169055565b600a546000906001600160a01b0384811691161480159061274d57506001600160a01b03831660009081526022602052604090205460ff165b1561275b5750601254610b64565b600a546001600160a01b03838116911614801561277a57506000601154115b156127885750601154610b64565b600a546001600160a01b0384811691161480156127a757506000601054115b156127b55750601054610b64565b5060135492915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106127f4576127f4612ec5565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561284d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128719190612edb565b8160018151811061288457612884612ec5565b6001600160a01b0392831660209182029290920101526009546128aa91309116846117fb565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906128e3908590600090869030904290600401612ef8565b600060405180830381600087803b1580156128fd57600080fd5b505af1158015612911573d6000803e3d6000fd5b505050505050565b6009546129319030906001600160a01b0316856117fb565b60095460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af115801561299f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129119190612d58565b600080600080600080600060e0888a0312156129df57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b81811015612a3d57858101830151858201604001528201612a21565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215612a7057600080fd5b5035919050565b6001600160a01b0381168114612a8c57600080fd5b50565b60008060408385031215612aa257600080fd5b8235612aad81612a77565b946020939093013593505050565b600060208284031215612acd57600080fd5b8135610c6f81612a77565b600080600060608486031215612aed57600080fd5b8335612af881612a77565b92506020840135612b0881612a77565b929592945050506040919091013590565b8015158114612a8c57600080fd5b60008060408385031215612b3a57600080fd5b8235612aad81612b19565b60008060408385031215612b5857600080fd5b8235612b6381612a77565b91506020830135612b7381612b19565b809150509250929050565b60008060408385031215612b9157600080fd5b8235612b6381612b19565b60008060408385031215612baf57600080fd5b50508035926020909101359150565b600080600060608486031215612bd357600080fd5b8335612bde81612a77565b92506020840135612bee81612a77565b91506040840135612bfe81612a77565b809150509250925092565b60008060408385031215612c1c57600080fd5b8235612c2781612a77565b91506020830135612b7381612a77565b600080600060608486031215612c4c57600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612c7857600080fd5b833592506020840135612b0881612b19565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b6457610b64612caa565b600060208284031215612ce557600080fd5b5051919050565b6020808252602f908201527f56616c7565204d757374204265204c657373205468616e206f7220457175616c60408201526e103a37902232b737b6b4b730ba37b960891b606082015260800190565b600060208284031215612d4d57600080fd5b8151610c6f81612b19565b600080600060608486031215612d6d57600080fd5b8351925060208401519150604084015190509250925092565b80820180821115610b6457610b64612caa565b8082028115828204841417610b6457610b64612caa565b600082612dcd57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612e0d578160001904821115612df357612df3612caa565b80851615612e0057918102915b93841c9390800290612dd7565b509250929050565b600082612e2457506001610b64565b81612e3157506000610b64565b8160018114612e475760028114612e5157612e6d565b6001915050610b64565b60ff841115612e6257612e62612caa565b50506001821b610b64565b5060208310610133831016604e8410600b8410161715612e90575081810a610b64565b612e9a8383612dd2565b8060001904821115612eae57612eae612caa565b029392505050565b6000610c6f60ff841683612e15565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612eed57600080fd5b8151610c6f81612a77565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f485784516001600160a01b031683529383019391830191600101612f23565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aef34c6f8b4c8029d6709c14595b20dde2babf62649069120e940ca48c363eaf64736f6c63430008130033

Deployed Bytecode Sourcemap

5966:18241:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15864:633;;;;;;;;;;-1:-1:-1;15864:633:0;;;;;:::i;:::-;;:::i;:::-;;9127:67;;;;;;;;;;-1:-1:-1;9187:5:0;;;;;;;;;;;;-1:-1:-1;;;9187:5:0;;;;9127:67;;;;;;;:::i;:::-;;;;;;;;23916:145;;;;;;;;;;;;;:::i;:::-;;;1310:25:1;;;1298:2;1283:18;23916:145:0;1164:177:1;18886:123:0;;;;;;;;;;-1:-1:-1;18886:123:0;;;;;:::i;:::-;;:::i;9911:133::-;;;;;;;;;;-1:-1:-1;9911:133:0;;;;;:::i;:::-;;:::i;:::-;;;2152:14:1;;2145:22;2127:41;;2115:2;2100:18;9911:133:0;1987:187:1;23332:134:0;;;;;;;;;;;;;:::i;9434:84::-;;;;;;;;;;-1:-1:-1;9504:12:0;;9434:84;;23042:134;;;;;;;;;;;;;:::i;24069:135::-;;;;;;;;;;;;;:::i;7852:40::-;;;;;;;;;;-1:-1:-1;7852:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21163:309;;;;;;;;;;-1:-1:-1;21163:309:0;;;;;:::i;:::-;;:::i;3070:87::-;;;;;;;;;;-1:-1:-1;3070:87:0;;;;;:::i;:::-;3125:4;3150:5;-1:-1:-1;;;;;3139:16:0;;;3150:5;;3139:16;;3070:87;22271:467;;;;;;;;;;;;;:::i;:::-;;;;3151:25:1;;;3207:2;3192:18;;3185:34;;;;3235:18;;;3228:34;;;;3293:2;3278:18;;3271:34;3336:3;3321:19;;3314:35;3138:3;3123:19;22271:467:0;2892:463:1;9277:67:0;;;;;;;;;;-1:-1:-1;9277:67:0;;6173:2;3502:36:1;;3490:2;3475:18;9277:67:0;3360:184:1;15606:250:0;;;;;;;;;;-1:-1:-1;15606:250:0;;;;;:::i;:::-;;:::i;7216:29::-;;;;;;;;;;;;;;;;23184:140;;;;;;;;;;;;;:::i;6554:38::-;;;;;;;;;;-1:-1:-1;6554:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22750:140;;;;;;;;;;;;;:::i;7151:30::-;;;;;;;;;;-1:-1:-1;7151:30:0;;;;;;;;;;;6507:43;;;;;;;;;;-1:-1:-1;6507:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16817:124;;;;;;;;;;-1:-1:-1;16817:124:0;;;;;:::i;:::-;;:::i;7801:44::-;;;;;;;;;;-1:-1:-1;7801:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23766:142;;;;;;;;;;;;;:::i;9524:103::-;;;;;;;;;;-1:-1:-1;9524:103:0;;;;;:::i;:::-;;:::i;17878:134::-;;;;;;;;;;-1:-1:-1;17878:134:0;;;;;:::i;:::-;;:::i;18428:450::-;;;;;;;;;;-1:-1:-1;18428:450:0;;;;;:::i;:::-;;:::i;19750:207::-;;;;;;;;;;;;;:::i;6316:63::-;;;;;;;;;;;;;;;;6249:60;;;;;;;;;;;;;;;;17262:450;;;;;;;;;;-1:-1:-1;17262:450:0;;;;;:::i;:::-;;:::i;9350:78::-;;;;;;;;;;-1:-1:-1;9402:7:0;9420:5;-1:-1:-1;;;;;9420:5:0;9350:78;;;-1:-1:-1;;;;;5171:32:1;;;5153:51;;5141:2;5126:18;9350:78:0;5007:203:1;17720:150:0;;;;;;;;;;-1:-1:-1;17720:150:0;;;;;:::i;:::-;;:::i;16505:304::-;;;;;;;;;;-1:-1:-1;16505:304:0;;;;;:::i;:::-;;:::i;10050:138::-;;;;;;;;;;;;;:::i;9200:71::-;;;;;;;;;;-1:-1:-1;9262:7:0;;;;;;;;;;;;-1:-1:-1;;;9262:7:0;;;;9200:71;;21823:220;;;;;;;;;;-1:-1:-1;21982:13:0;;21997:14;;22013:10;;22025:9;;21823:220;;;5980:25:1;;;6036:2;6021:18;;6014:34;;;;6064:18;;;6057:34;6122:2;6107:18;;6100:34;5967:3;5952:19;21823:220:0;5749:391:1;6651:19:0;;;;;;;;;;-1:-1:-1;6651:19:0;;;;-1:-1:-1;;;;;6651:19:0;;;9633:139;;;;;;;;;;-1:-1:-1;9633:139:0;;;;;:::i;:::-;;:::i;23478:132::-;;;;;;;;;;;;;:::i;18020:108::-;;;;;;;;;;-1:-1:-1;18020:108:0;;;;;:::i;:::-;;:::i;22898:136::-;;;;;;;;;;;;;:::i;23618:140::-;;;;;;;;;;;;;:::i;7899:39::-;;;;;;;;;;-1:-1:-1;7899:39:0;;;;;;;;22051:212;;;;;;;;;;;;;:::i;:::-;;;;6347:25:1;;;6403:2;6388:18;;6381:34;;;;6431:18;;;6424:34;6335:2;6320:18;22051:212:0;6145:319:1;9778:127:0;;;;;;;;;;-1:-1:-1;9778:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9876:18:0;;;9859:7;9876:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9778:127;16949:305;;;;;;;;;;-1:-1:-1;16949:305:0;;;;;:::i;:::-;;:::i;3163:111::-;;;;;;;;;;-1:-1:-1;3163:111:0;;;;;:::i;:::-;;:::i;18136:284::-;;;;;;;;;;-1:-1:-1;18136:284:0;;;;;:::i;:::-;;:::i;15864:633::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;;;;;;;;;16042:12:::1;:25:::0;;;16069:12:::1;:25:::0;;;16096:14:::1;:29:::0;;;16127:9:::1;::::0;:19:::1;::::0;16139:7;;16127:19:::1;:::i;:::-;-1:-1:-1::0;16157:8:0::1;:17:::0;;;16176:7:::1;:15:::0;;;16193:11:::1;:20:::0;;;16316:11:::1;::::0;16302:9:::1;::::0;16287::::1;::::0;16267:14:::1;::::0;16249:12:::1;::::0;16232::::1;::::0;:80:::1;::::0;16302:9;16232:65:::1;::::0;16287:9;;16232:65;;;;:16:::1;:30::i;:::-;:34:::0;::::1;:50::i;:80::-;:95;;16224:135;;;::::0;-1:-1:-1;;;16224:135:0;;8626:2:1;16224:135:0::1;::::0;::::1;8608:21:1::0;8665:2;8645:18;;;8638:30;8704:29;8684:18;;;8677:57;8751:18;;16224:135:0::1;8424:351:1::0;16224:135:0::1;16390:11;;16378:8;;:23;;:49;;;;;16416:11;;16405:7;;:22;;16378:49;:79;;;;;16446:11;;16431;;:26;;16378:79;16370:119;;;::::0;-1:-1:-1;;;16370:119:0;;8626:2:1;16370:119:0::1;::::0;::::1;8608:21:1::0;8665:2;8645:18;;;8638:30;8704:29;8684:18;;;8677:57;8751:18;;16370:119:0::1;8424:351:1::0;16370:119:0::1;15864:633:::0;;;;;;;:::o;23916:145::-;24041:9;;24001:51;;-1:-1:-1;;;24001:51:0;;24041:9;;;;-1:-1:-1;;;;;24041:9:0;24001:51;;;5153::1;-1:-1:-1;;24016:4:0;;24001:31;;5126:18:1;;24001:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23994:59;;23916:145;:::o;18886:123::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;18979:7:::1;18964:3;:23;;18956:32;;;::::0;::::1;;18990:5;:11:::0;18886:123::o;9911:133::-;9986:4;9993:37;10002:10;10014:7;10023:6;9993:8;:37::i;:::-;-1:-1:-1;10038:4:0;9911:133;;;;;:::o;23332:134::-;23412:9;;:45;;-1:-1:-1;;;23412:45:0;;23451:4;23412:45;;;5153:51:1;23385:7:0;;23412:9;;;-1:-1:-1;;;;;23412:9:0;;:30;;5126:18:1;;23412:45:0;5007:203:1;23042:134:0;23122:9;;:45;;-1:-1:-1;;;23122:45:0;;23161:4;23122:45;;;5153:51:1;23095:7:0;;23122:9;;;-1:-1:-1;;;;;23122:9:0;;:30;;5126:18:1;;23122:45:0;5007:203:1;24069:135:0;24151:9;;:44;;-1:-1:-1;;;24151:44:0;;24189:4;24151:44;;;5153:51:1;24124:7:0;;24151:9;;;-1:-1:-1;;;;;24151:9:0;;:29;;5126:18:1;;24151:44:0;5007:203:1;21163:309:0;21261:4;21278:36;21288:6;21296:9;21307:6;21278:9;:36::i;:::-;21325:117;21334:6;21342:10;21354:87;21390:6;21354:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21354:19:0;;;;;;:11;:19;;;;;;;;21374:10;21354:31;;;;;;;;;:87;:35;:87::i;:::-;21325:8;:117::i;:::-;-1:-1:-1;21460:4:0;21163:309;;;;;;:::o;22271:467::-;22458:9;;:48;;-1:-1:-1;;;22458:48:0;;22500:4;22458:48;;;5153:51:1;22325:22:0;;;;;;;;;;22458:9;;;-1:-1:-1;;;;;22458:9:0;;:33;;5126:18:1;;22458:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22508:9;;:46;;-1:-1:-1;;;22508:46:0;;22548:4;22508:46;;;5153:51:1;22508:9:0;;;;-1:-1:-1;;;;;22508:9:0;;:31;;5126:18:1;;22508:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22570:9;;:45;;-1:-1:-1;;;22570:45:0;;22609:4;22570:45;;;5153:51:1;22570:9:0;;;;-1:-1:-1;;;;;22570:9:0;;:30;;5126:18:1;;22570:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22617:9;;:44;;-1:-1:-1;;;22617:44:0;;22655:4;22617:44;;;5153:51:1;22617:9:0;;;;-1:-1:-1;;;;;22617:9:0;;:29;;5126:18:1;;22617:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22681:9;;:48;;-1:-1:-1;;;22681:48:0;;22723:4;22681:48;;;5153:51:1;22681:9:0;;;;-1:-1:-1;;;;;22681:9:0;;:33;;5126:18:1;;22681:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22451:279;;;;;;;;;;22271:467;;;;;:::o;15606:250::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;15703:14:::1;::::0;::::1;::::0;::::1;;;15702:15;15694:66;;;::::0;-1:-1:-1;;;15694:66:0;;9171:2:1;15694:66:0::1;::::0;::::1;9153:21:1::0;9210:2;9190:18;;;9183:30;9249:34;9229:18;;;9222:62;-1:-1:-1;;;9300:18:1;;;9293:36;9346:19;;15694:66:0::1;8969:402:1::0;15694:66:0::1;15765:14;:27:::0;;-1:-1:-1;;15765:27:0::1;;::::0;::::1;;;;::::0;;15817:29:::1;:12;15834:11:::0;15817:16:::1;:29::i;:::-;15803:11;:43:::0;-1:-1:-1;;15606:250:0:o;23184:140::-;23267:9;;:48;;-1:-1:-1;;;23267:48:0;;23309:4;23267:48;;;5153:51:1;23240:7:0;;23267:9;;;-1:-1:-1;;;;;23267:9:0;;:33;;5126:18:1;;23267:48:0;5007:203:1;22750:140:0;22833:9;;:48;;-1:-1:-1;;;22833:48:0;;22875:4;22833:48;;;5153:51:1;22806:7:0;;22833:9;;;-1:-1:-1;;;;;22833:9:0;;:33;;5126:18:1;;22833:48:0;5007:203:1;16817:124:0;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16901:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;16901:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16817:124::o;23766:142::-;23850:9;;:49;;-1:-1:-1;;;23850:49:0;;23893:4;23850:49;;;5153:51:1;23823:7:0;;23850:9;;;-1:-1:-1;;;;;23850:9:0;;:34;;5126:18:1;;23850:49:0;5007:203:1;9524:103:0;-1:-1:-1;;;;;9607:18:0;9590:7;9607:18;;;:9;:18;;;;;;;9524:103::o;17878:134::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;17955:11:::1;:19:::0;;-1:-1:-1;;17955:19:0::1;::::0;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;17976::::1;:28:::0;;-1:-1:-1;;17976:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17878:134::o;18428:450::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;18534:17:::1;18554:49;18596:5;18554:29;18572:10;18554:13;9504:12:::0;;;9434:84;18554:13:::1;:17:::0;::::1;:29::i;:::-;:33:::0;::::1;:49::i;:::-;18534:69;;18651:3;18622:17;:33;;18614:93;;;;-1:-1:-1::0;;;18614:93:0::1;;;;;;;:::i;:::-;18718:9;::::0;:59:::1;::::0;-1:-1:-1;;;18718:59:0;;18760:4:::1;18718:59;::::0;::::1;9966:51:1::0;10033:18;;;10026:34;;;18718:9:0::1;::::0;;::::1;-1:-1:-1::0;;;;;18718:9:0::1;::::0;:33:::1;::::0;9939:18:1;;18718:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18788:9:0::1;::::0;:82:::1;::::0;-1:-1:-1;;;18788:82:0;;18831:4:::1;18788:82;::::0;::::1;10273:51:1::0;10340:18;;;10333:34;;;18865:3:0::1;10383:18:1::0;;;10376:34;;;18788:9:0::1;::::0;;::::1;-1:-1:-1::0;;;;;18788:9:0::1;::::0;-1:-1:-1;18788:34:0::1;::::0;-1:-1:-1;10246:18:1;18788:82:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;19750:207:::0;19806:19;;;;19798:28;;;;;;19837:8;:15;;;-1:-1:-1;;19837:15:0;;;;;;19863:9;;19901:5;;19863:59;;-1:-1:-1;;;19863:59:0;;19916:4;19863:59;;;5153:51:1;19837:15:0;19863:9;;;-1:-1:-1;;;;;19863:9:0;;:32;;19901:5;5126:18:1;;19863:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19933:8:0;:16;;-1:-1:-1;;19933:16:0;;;-1:-1:-1;;;19750:207:0:o;17262:450::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;17346:13:::1;17362:43;17398:5;17362:23;17380:4;17362:13;9504:12:::0;;;9434:84;17362:43:::1;17346:59;;17416:17;17436:46;17475:5;17436:26;17454:7;17436:13;9504:12:::0;;;9434:84;17436:46:::1;17416:66;;17484:13;17500:31;17525:5;17500:20;17518:1;17500:13;9504:12:::0;;;9434:84;17500:31:::1;17484:47;;17559:5;17550;:14;;:36;;;;;17581:5;17568:9;:18;;17550:36;17542:102;;;::::0;-1:-1:-1;;;17542:102:0;;10623:2:1;17542:102:0::1;::::0;::::1;10605:21:1::0;10662:2;10642:18;;;10635:30;10701:34;10681:18;;;10674:62;-1:-1:-1;;;10752:18:1;;;10745:51;10813:19;;17542:102:0::1;10421:417:1::0;17542:102:0::1;-1:-1:-1::0;17655:12:0::1;:20:::0;;;;17677:15:::1;:27:::0;-1:-1:-1;;17262:450:0:o;17720:150::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;17832:20:::1;::::0;17806:56:::1;::::0;-1:-1:-1;;;17806:56:0;;-1:-1:-1;;;;;17832:20:0;;::::1;17806:56;::::0;::::1;9966:51:1::0;10033:18;;;10026:34;;;17806:25:0;;::::1;::::0;::::1;::::0;9939:18:1;;17806:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17720:150:::0;;:::o;16505:304::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;16627:18:::1;:31:::0;;-1:-1:-1;;;;;16627:31:0;;::::1;-1:-1:-1::0;;;;;;16627:31:0;;::::1;::::0;::::1;::::0;;;16660:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;16693:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;16627:18:::1;16739:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;16739:30:0;;::::1;16627:31:::0;16739:30;;::::1;::::0;;;16771:23;;;;;:30;;;;::::1;::::0;;::::1;::::0;;16505:304::o;10050:138::-;10109:7;10126:60;10164:21;10182:1;10164:9;:21::i;:::-;10126:33;10143:15;8001:42;10143:9;:15::i;:::-;10126:12;;;:16;:33::i;:::-;:37;;:60::i;9633:139::-;9711:4;9718:40;9728:10;9740:9;9751:6;9718:9;:40::i;23478:132::-;23557:9;;:44;;-1:-1:-1;;;23557:44:0;;23595:4;23557:44;;;5153:51:1;23530:7:0;;23557:9;;;-1:-1:-1;;;;;23557:9:0;;:29;;5126:18:1;;23557:44:0;5007:203:1;18020:108:0;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18096:16:0::1;18115:5;18096:16:::0;;;:8:::1;:16;::::0;;;;:24;;-1:-1:-1;;18096:24:0::1;::::0;;18020:108::o;22898:136::-;22979:9;;:46;;-1:-1:-1;;;22979:46:0;;23019:4;22979:46;;;5153:51:1;22952:7:0;;22979:9;;;-1:-1:-1;;;;;22979:9:0;;:31;;5126:18:1;;22979:46:0;5007:203:1;23618:140:0;23701:9;;:48;;-1:-1:-1;;;23701:48:0;;23743:4;23701:48;;;5153:51:1;23674:7:0;;23701:9;;;-1:-1:-1;;;;;23701:9:0;;:33;;5126:18:1;;23701:48:0;5007:203:1;22051:212:0;22203:9;;:51;;-1:-1:-1;;;22203:51:0;;22248:4;22203:51;;;5153::1;22110:24:0;;;;;;22203:9;;;-1:-1:-1;;;;;22203:9:0;;:36;;5126:18:1;;22203:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22196:59;;;;;;22051:212;;;:::o;16949:305::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;17078:10:::1;:24:::0;;;17120:12:::1;::::0;:53:::1;::::0;17165:6:::1;::::0;17120:32:::1;::::0;17137:14;17120:16:::1;:32::i;:53::-;17104:13;:69:::0;17192:12:::1;::::0;:54:::1;::::0;17238:6:::1;::::0;17192:33:::1;::::0;17209:15;17192:16:::1;:33::i;:54::-;17175:14;:71:::0;-1:-1:-1;;;16949:305:0:o;3163:111::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;3229:5:::1;:11:::0;;-1:-1:-1;;;;;;3229:11:0::1;-1:-1:-1::0;;;;;3229:11:0;::::1;::::0;;::::1;::::0;;;3247:25:::1;::::0;5153:51:1;;;3247:25:0::1;::::0;5141:2:1;5126:18;3247:25:0::1;;;;;;;3163:111:::0;:::o;18136:284::-;3125:4;3150:5;-1:-1:-1;;;;;3150:5:0;3037:10;3139:16;3021:38;;;;-1:-1:-1;;;3021:38:0;;;;;;;:::i;:::-;18233:8:::1;:17:::0;;;18252:16:::1;:25:::0;;-1:-1:-1;;18252:25:0::1;::::0;::::1;;;::::0;;18279:11:::1;:17:::0;;;18327:11:::1;::::0;18315:23;::::1;::::0;::::1;::::0;:45:::1;;;18349:11;;18342:3;:18;;18315:45;18307:105;;;;-1:-1:-1::0;;;18307:105:0::1;;;;;;;:::i;101:82::-:0;159:7;176:5;180:1;176;:5;:::i;21480:335::-;-1:-1:-1;;;;;21573:19:0;;21565:68;;;;-1:-1:-1;;;21565:68:0;;11952:2:1;21565:68:0;;;11934:21:1;11991:2;11971:18;;;11964:30;12030:34;12010:18;;;12003:62;-1:-1:-1;;;12081:18:1;;;12074:34;12125:19;;21565:68:0;11750:400:1;21565:68:0;-1:-1:-1;;;;;21652:21:0;;21644:68;;;;-1:-1:-1;;;21644:68:0;;12357:2:1;21644:68:0;;;12339:21:1;12396:2;12376:18;;;12369:30;12435:34;12415:18;;;12408:62;-1:-1:-1;;;12486:18:1;;;12479:32;12528:19;;21644:68:0;12155:398:1;21644:68:0;-1:-1:-1;;;;;21723:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21775:32;;1310:25:1;;;21775:32:0;;1283:18:1;21775:32:0;;;;;;;21480:335;;;:::o;10770:775::-;10859:37;10870:6;10878:9;10889:6;10859:10;:37::i;:::-;10907:38;10927:6;10935:9;10907:19;:38::i;:::-;10956:39;10969:6;10977:9;10988:6;10956:12;:39::i;:::-;11006:41;11021:6;11029:9;11040:6;11006:14;:41::i;:::-;11058:43;11075:6;11083:9;11094:6;11058:16;:43::i;:::-;11112:27;11121:6;11129:9;11112:8;:27::i;:::-;11150:37;11161:6;11169:9;11180:6;11150:10;:37::i;:::-;-1:-1:-1;;;;;11218:17:0;;;;;;:9;:17;;;;;;:29;;11240:6;11218:21;:29::i;:::-;-1:-1:-1;;;;;11198:17:0;;;;;;:9;:17;;;;;:49;;;;11283:32;11208:6;11305:9;11283:13;:32::i;:::-;:78;;11355:6;11283:78;;;11318:34;11326:6;11334:9;11345:6;11318:7;:34::i;:::-;-1:-1:-1;;;;;11395:20:0;;;;;;:9;:20;;;;;;11258:103;;-1:-1:-1;11395:40:0;;11258:103;11395:24;:40::i;:::-;-1:-1:-1;;;;;11372:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11451:43;;;;;;;;;;11479:14;1310:25:1;;1298:2;1283:18;;1164:177;11451:43:0;;;;;;;;11505:32;11519:6;11527:9;11505:13;:32::i;:::-;10848:697;10770:775;;;:::o;1402:162::-;1488:7;1534:12;1526:6;;;;1518:29;;;;-1:-1:-1;;;1518:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1556:5:0;;;1402:162::o;277:82::-;335:7;352:5;356:1;352;:5;:::i;365:82::-;423:7;440:5;444:1;440;:5;:::i;189:82::-;247:7;264:5;268:1;264;:5;:::i;10196:566::-;-1:-1:-1;;;;;10295:20:0;;10287:70;;;;-1:-1:-1;;;10287:70:0;;13155:2:1;10287:70:0;;;13137:21:1;13194:2;13174:18;;;13167:30;13233:34;13213:18;;;13206:62;-1:-1:-1;;;13284:18:1;;;13277:35;13329:19;;10287:70:0;12953:401:1;10287:70:0;-1:-1:-1;;;;;10376:23:0;;10368:71;;;;-1:-1:-1;;;10368:71:0;;13561:2:1;10368:71:0;;;13543:21:1;13600:2;13580:18;;;13573:30;13639:34;13619:18;;;13612:62;-1:-1:-1;;;13690:18:1;;;13683:33;13733:19;;10368:71:0;13359:399:1;10368:71:0;10468:17;10478:6;10468:9;:17::i;:::-;10458:6;:27;;10450:79;;;;-1:-1:-1;;;10450:79:0;;13965:2:1;10450:79:0;;;13947:21:1;14004:2;13984:18;;;13977:30;14043:34;14023:18;;;14016:62;-1:-1:-1;;;14094:18:1;;;14087:38;14142:19;;10450:79:0;13763:404:1;10450:79:0;-1:-1:-1;;;;;10544:13:0;;;;;;:5;:13;;;;;;;;10543:14;10535:108;;;;-1:-1:-1;;;10535:108:0;;14374:2:1;10535:108:0;;;14356:21:1;14413:2;14393:18;;;14386:30;14452:34;14432:18;;;14425:62;14523:34;14503:18;;;14496:62;-1:-1:-1;;;14574:19:1;;;14567:48;14632:19;;10535:108:0;14172:485:1;10535:108:0;10668:11;;10653:12;:26;:53;;;;-1:-1:-1;;;;;;10684:22:0;;;;;;:11;:22;;;;;;;;10683:23;10653:53;:74;;;;-1:-1:-1;10723:4:0;;-1:-1:-1;;;;;10710:17:0;;;10723:4;;10710:17;;10653:74;10649:105;;;-1:-1:-1;;;;;10729:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;10729:23:0;10748:4;10729:23;;;10196:566;;;:::o;11553:206::-;-1:-1:-1;;;;;11646:19:0;;;;;;:11;:19;;;;;;;;11645:20;:47;;;;-1:-1:-1;;;;;;11670:22:0;;;;;;:11;:22;;;;;;;;11669:23;11645:47;11642:110;;;11702:14;;;;;;;11694:56;;;;-1:-1:-1;;;11694:56:0;;14864:2:1;11694:56:0;;;14846:21:1;14903:2;14883:18;;;14876:30;14942:31;14922:18;;;14915:59;14991:18;;11694:56:0;14662:353:1;11694:56:0;11553:206;;:::o;12737:229::-;12839:8;;;;;;;12835:124;;12867:12;;12857:6;:22;;:45;;;-1:-1:-1;;;;;;12883:19:0;;;;;;:11;:19;;;;;;;;12857:45;:71;;;-1:-1:-1;;;;;;12906:22:0;;;;;;:11;:22;;;;;;;;12857:71;12849:108;;;;-1:-1:-1;;;12849:108:0;;15222:2:1;12849:108:0;;;15204:21:1;15261:2;15241:18;;;15234:30;15300:26;15280:18;;;15273:54;15344:18;;12849:108:0;15020:348:1;11767:351:0;-1:-1:-1;;;;;11871:19:0;;;;;;:11;:19;;;;;;;;11870:20;:47;;;;-1:-1:-1;;;;;;11895:22:0;;;;;;:11;:22;;;;;;;;11894:23;11870:47;:77;;;;-1:-1:-1;11942:4:0;;-1:-1:-1;;;;;11921:26:0;;;11942:4;;11921:26;;11870:77;:107;;;;-1:-1:-1;;;;;;11951:26:0;;8001:42;11951:26;;11870:107;:120;;;;-1:-1:-1;11982:8:0;;;;;;;11981:9;11870:120;11867:244;;;12052:15;;-1:-1:-1;;;;;12015:20:0;;;;;;:9;:20;;;;;;:32;;12040:6;12015:24;:32::i;:::-;12014:53;;12006:103;;;;-1:-1:-1;;;12006:103:0;;15575:2:1;12006:103:0;;;15557:21:1;15614:2;15594:18;;;15587:30;15653:34;15633:18;;;15626:62;-1:-1:-1;;;15704:18:1;;;15697:35;15749:19;;12006:103:0;15373:401:1;12126:238:0;12244:4;;-1:-1:-1;;;;;12226:23:0;;;12244:4;;12226:23;:50;;;;-1:-1:-1;;;;;;12254:22:0;;;;;;:11;:22;;;;;;;;12253:23;12226:50;:78;;;;;12290:14;;12280:6;:24;;12226:78;:91;;;;-1:-1:-1;12309:8:0;;;;12308:9;12226:91;:104;;;;-1:-1:-1;12322:8:0;;;;;;;12321:9;12226:104;12223:134;;;12353:1;12332:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;12126:238:0;;;:::o;15421:173::-;15497:33;15512:6;15520:9;15497:14;:33::i;:::-;15494:93;;;15532:29;15547:13;;15532:14;:29::i;:::-;15583:1;15563:9;:22;15421:173;;:::o;19017:504::-;19111:14;;;;;;;:38;;;;-1:-1:-1;;;;;;19130:19:0;;;;;;:11;:19;;;;;;;;19129:20;19111:38;:68;;;;-1:-1:-1;19174:4:0;;-1:-1:-1;;;;;19153:26:0;;;19174:4;;19153:26;19111:68;:102;;;;;19193:20;;19183:6;:30;;19111:102;:115;;;;-1:-1:-1;19218:8:0;;;;19217:9;19111:115;:128;;;;-1:-1:-1;19231:8:0;;;;;;;19230:9;19111:128;19108:164;;;19268:1;19241:15;;:29;;;;;;;:::i;:::-;;;;-1:-1:-1;;19108:164:0;19285:14;;;;;;;:29;;;;-1:-1:-1;19303:11:0;;;;;;;19285:29;:75;;;;-1:-1:-1;19336:9:0;;19358:1;;19318:29;;19336:9;;;-1:-1:-1;;;;;19336:9:0;19318;:29::i;:::-;:42;19285:75;:114;;;;;19383:16;;19364:15;;:35;;19285:114;:138;;;;-1:-1:-1;;;;;;19404:19:0;;;;;;:11;:19;;;;;;;;19403:20;19285:138;:168;;;;-1:-1:-1;19448:4:0;;-1:-1:-1;;;;;19427:26:0;;;19448:4;;19427:26;19285:168;:194;;;;-1:-1:-1;19471:8:0;;;;19470:9;19285:194;:207;;;;-1:-1:-1;19484:8:0;;;;;;;19483:9;19285:207;19282:232;;;19494:18;:16;:18::i;19965:173::-;-1:-1:-1;;;;;20071:19:0;;20046:4;20071:19;;;:11;:19;;;;;;;;20070:20;:47;;;;-1:-1:-1;;;;;;20095:22:0;;;;;;:11;:22;;;;;;;;20094:23;20070:47;:60;;;;-1:-1:-1;;20122:8:0;;;;;;;20121:9;;19965:173;-1:-1:-1;;19965:173:0:o;20515:640::-;20601:7;20657:1;20624:30;20636:6;20644:9;20624:11;:30::i;:::-;:34;:47;;;;-1:-1:-1;20663:8:0;;;;;;;20662:9;20624:47;20621:512;;;20687:17;20707:59;20735:30;20747:6;20755:9;20735:11;:30::i;:::-;20718:11;;20707:23;;:6;;:10;:23::i;:59::-;20826:4;20808:24;;;;:9;:24;;;;;;20687:79;;-1:-1:-1;20808:39:0;;20687:79;20808:28;:39::i;:::-;20799:4;20781:24;;;;:9;:24;;;;;;;:66;;;;20867:42;;-1:-1:-1;;;;;20867:42:0;;;;;;;20899:9;1310:25:1;;1298:2;1283:18;;1164:177;20867:42:0;;;;;;;;20943:1;20923:9;;:22;:68;;;;;20982:9;;20949:30;20961:6;20969:9;20949:11;:30::i;:::-;:42;20923:68;20920:173;;;21007:84;21025:4;21040:9;;;;;;;;;-1:-1:-1;;;;;21040:9:0;21052:38;21080:9;;21052:23;21063:11;;21052:6;:10;;:23;;;;:::i;:38::-;21007:9;:84::i;:::-;21110:21;:6;21121:9;21110:10;:21::i;:::-;21103:28;;;;;20621:512;-1:-1:-1;21141:6:0;20515:640;-1:-1:-1;;20515:640:0:o;12372:357::-;-1:-1:-1;;;;;12453:16:0;;;;;;:8;:16;;;;;;;;:62;;;;-1:-1:-1;12499:15:0;6173:2;12499;:15;:::i;:::-;12494:21;;:1;:21;:::i;:::-;12473:17;12483:6;12473:9;:17::i;:::-;:42;;12453:62;12450:93;;;-1:-1:-1;;;;;12517:16:0;;12536:5;12517:16;;;:8;:16;;;;;:24;;-1:-1:-1;;12517:24:0;;;12450:93;12568:11;;12556:8;;:23;;:50;;;;-1:-1:-1;;;;;;12584:22:0;;;;;;:11;:22;;;;;;;;12583:23;12556:50;:77;;;;-1:-1:-1;12628:4:0;;-1:-1:-1;;;;;12610:23:0;;;12628:4;;12610:23;12556:77;:90;;;;-1:-1:-1;12638:8:0;;;;12637:9;12556:90;:103;;;;-1:-1:-1;12651:8:0;;;;;;;12650:9;12556:103;:136;;;;-1:-1:-1;12676:16:0;;;;12556:136;12553:169;;;-1:-1:-1;;;;;12694:19:0;;;;;;:8;:19;;;;;:26;;-1:-1:-1;;12694:26:0;12716:4;12694:26;;;12372:357;;:::o;15058:355::-;15140:4;15157:19;15207:13;;15179:24;15197:4;15179:9;:24::i;:::-;15239:8;;15179:41;-1:-1:-1;15179:41:0;;-1:-1:-1;15239:8:0;;15238:9;:24;;;;-1:-1:-1;15251:11:0;;;;15238:24;:42;;;;-1:-1:-1;15266:14:0;;;;;;;15238:42;:66;;;;-1:-1:-1;;;;;;15285:19:0;;;;;;:11;:19;;;;;;;;15284:20;15238:66;:109;;;;-1:-1:-1;15342:4:0;;-1:-1:-1;;;;;15321:26:0;;;15342:4;;15321:26;15238:109;:136;;;;;15364:10;;15351:9;;:23;;15238:136;:154;;;;;15378:14;15238:154;:167;;;;-1:-1:-1;15397:8:0;;;;;;;15396:9;15238:167;15231:174;15058:355;-1:-1:-1;;;;15058:355:0:o;12974:1266::-;7757:8;:15;;-1:-1:-1;;7757:15:0;7768:4;7757:15;;;13123:9:::1;::::0;13105:12:::1;::::0;13085:14:::1;::::0;13068:12:::1;::::0;7757:8;;13068:72:::1;::::0;13138:1:::1;::::0;13068:65:::1;::::0;:50:::1;::::0;13105:12;13068:50;;:12;:16:::1;:32::i;:72::-;13045:95;;13151:32;13186:42;13215:12;13186:24;13197:12;;13186:6;:10;;:24;;;;:::i;:42::-;13151:77:::0;-1:-1:-1;13239:14:0::1;13256:36;:6:::0;13151:77;13256:10:::1;:36::i;:::-;13239:53:::0;-1:-1:-1;13328:21:0::1;13360:24;13239:53:::0;13360:16:::1;:24::i;:::-;13395:20;13418:41;:21;13444:14:::0;13418:25:::1;:41::i;:::-;13395:64;;13470:19;13491:48;13508:30;13525:12;;13508;:16;;:30;;;;:::i;:::-;13491:12:::0;;:16:::1;:48::i;:::-;13470:69;;13550:29;13582;13598:12;;13582:11;:15;;:29;;;;:::i;:::-;13550:61:::0;-1:-1:-1;13625:34:0;;13622:123:::1;;13723:18;::::0;13661:81:::1;::::0;13674:24;;13700:21;;-1:-1:-1;;;;;13723:18:0::1;13661:12;:81::i;:::-;13804:12;::::0;13755:23:::1;::::0;13781:36:::1;::::0;:18:::1;:11:::0;13797:1:::1;13781:15;:18::i;:36::-;13755:62:::0;-1:-1:-1;13831:28:0;;13828:88:::1;;13869:18;::::0;13861:53:::1;::::0;-1:-1:-1;;;;;13869:18:0;;::::1;::::0;13861:53;::::1;;;::::0;13898:15;;13869:18:::1;13861:53:::0;13869:18;13861:53;13898:15;13869:18;13861:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13828:88;13972:9;::::0;13926:20:::1;::::0;13949:33:::1;::::0;:18:::1;:11:::0;13965:1:::1;13949:15;:18::i;:33::-;13926:56:::0;-1:-1:-1;13996:25:0;;13993:82:::1;;14039:9;::::0;14023:50:::1;::::0;-1:-1:-1;;;;;14039:9:0;;::::1;::::0;14023:50;::::1;;;::::0;14060:12;;14039:9:::1;14023:50:::0;14039:9;14023:50;14060:12;14039:9;14023:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13993:82;14111:21;14146:28:::0;;14143:90:::1;;14184:20;::::0;14176:55:::1;::::0;-1:-1:-1;;;;;14184:20:0;;::::1;::::0;14176:55;::::1;;;::::0;14215:15;;14184:20:::1;14176:55:::0;14184:20;14176:55;14215:15;14184:20;14176:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14143:90;-1:-1:-1::0;;7777:8:0;:16;;-1:-1:-1;;7777:16:0;;;-1:-1:-1;;;;;;;;;12974:1266:0:o;19529:213::-;19577:8;:15;;;-1:-1:-1;;19577:15:0;;;;;;19607:9;;19645:5;;19607:59;;-1:-1:-1;;;19607:59:0;;19660:4;19607:59;;;5153:51:1;19577:15:0;19607:9;;;-1:-1:-1;;;;;19607:9:0;;:32;;19645:5;5126:18:1;;19607:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19603:75;19705:1;19679:15;:28;19718:8;:16;;-1:-1:-1;;19718:16:0;;;19529:213::o;20146:361::-;20266:4;;20225:7;;-1:-1:-1;;;;;20248:23:0;;;20266:4;;20248:23;;;;:43;;-1:-1:-1;;;;;;20275:16:0;;;;;;:8;:16;;;;;;;;20248:43;20245:65;;;-1:-1:-1;20300:8:0;;20293:15;;20245:65;20344:4;;-1:-1:-1;;;;;20323:26:0;;;20344:4;;20323:26;:50;;;;;20371:1;20353:7;;:20;20323:50;20320:71;;;-1:-1:-1;20382:7:0;;20375:14;;20320:71;20422:4;;-1:-1:-1;;;;;20404:23:0;;;20422:4;;20404:23;:48;;;;;20450:1;20431:8;;:21;20404:48;20401:70;;;-1:-1:-1;20461:8:0;;20454:15;;20401:70;-1:-1:-1;20488:11:0;;20146:361;;;;:::o;14616:434::-;14706:16;;;14720:1;14706:16;;;;;;;;14682:21;;14706:16;;;;;;;;;;-1:-1:-1;14706:16:0;14682:40;;14751:4;14733;14738:1;14733:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14733:23:0;;;:7;;;;;;;;;;:23;;;;14777:6;;:13;;;-1:-1:-1;;;14777:13:0;;;;:6;;;;;:11;;:13;;;;;14733:7;;14777:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14767:4;14772:1;14767:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14767:23:0;;;:7;;;;;;;;;:23;14833:6;;14801:53;;14818:4;;14833:6;14842:11;14801:8;:53::i;:::-;14865:6;;:177;;-1:-1:-1;;;14865:177:0;;-1:-1:-1;;;;;14865:6:0;;;;:57;;:177;;14937:11;;14865:6;;14979:4;;15006;;15026:15;;14865:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14671:379;14616:434;:::o;14248:360::-;14379:6;;14347:53;;14364:4;;-1:-1:-1;;;;;14379:6:0;14388:11;14347:8;:53::i;:::-;14411:6;;:189;;-1:-1:-1;;;14411:189:0;;14474:4;14411:189;;;19008:34:1;19058:18;;;19051:34;;;14411:6:0;19101:18:1;;;19094:34;;;19144:18;;;19137:34;-1:-1:-1;;;;;19208:15:1;;;19187:19;;;19180:44;14584:15:0;19240:19:1;;;19233:35;14411:6:0;;;;:22;;14441:9;;18942:19:1;;14411:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:592:1:-;127:6;135;143;151;159;167;175;228:3;216:9;207:7;203:23;199:33;196:53;;;245:1;242;235:12;196:53;-1:-1:-1;;268:23:1;;;338:2;323:18;;310:32;;-1:-1:-1;389:2:1;374:18;;361:32;;440:2;425:18;;412:32;;-1:-1:-1;491:3:1;476:19;;463:33;;-1:-1:-1;543:3:1;528:19;;515:33;;-1:-1:-1;595:3:1;580:19;567:33;;-1:-1:-1;14:592:1;-1:-1:-1;14:592:1:o;611:548::-;723:4;752:2;781;770:9;763:21;813:6;807:13;856:6;851:2;840:9;836:18;829:34;881:1;891:140;905:6;902:1;899:13;891:140;;;1000:14;;;996:23;;990:30;966:17;;;985:2;962:26;955:66;920:10;;891:140;;;895:3;1080:1;1075:2;1066:6;1055:9;1051:22;1047:31;1040:42;1150:2;1143;1139:7;1134:2;1126:6;1122:15;1118:29;1107:9;1103:45;1099:54;1091:62;;;;611:548;;;;:::o;1346:180::-;1405:6;1458:2;1446:9;1437:7;1433:23;1429:32;1426:52;;;1474:1;1471;1464:12;1426:52;-1:-1:-1;1497:23:1;;1346:180;-1:-1:-1;1346:180:1:o;1531:131::-;-1:-1:-1;;;;;1606:31:1;;1596:42;;1586:70;;1652:1;1649;1642:12;1586:70;1531:131;:::o;1667:315::-;1735:6;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1851:9;1838:23;1870:31;1895:5;1870:31;:::i;:::-;1920:5;1972:2;1957:18;;;;1944:32;;-1:-1:-1;;;1667:315:1:o;2179:247::-;2238:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2346:9;2333:23;2365:31;2390:5;2365:31;:::i;2431:456::-;2508:6;2516;2524;2577:2;2565:9;2556:7;2552:23;2548:32;2545:52;;;2593:1;2590;2583:12;2545:52;2632:9;2619:23;2651:31;2676:5;2651:31;:::i;:::-;2701:5;-1:-1:-1;2758:2:1;2743:18;;2730:32;2771:33;2730:32;2771:33;:::i;:::-;2431:456;;2823:7;;-1:-1:-1;;;2877:2:1;2862:18;;;;2849:32;;2431:456::o;3549:118::-;3635:5;3628:13;3621:21;3614:5;3611:32;3601:60;;3657:1;3654;3647:12;3672:309;3737:6;3745;3798:2;3786:9;3777:7;3773:23;3769:32;3766:52;;;3814:1;3811;3804:12;3766:52;3853:9;3840:23;3872:28;3894:5;3872:28;:::i;3986:382::-;4051:6;4059;4112:2;4100:9;4091:7;4087:23;4083:32;4080:52;;;4128:1;4125;4118:12;4080:52;4167:9;4154:23;4186:31;4211:5;4186:31;:::i;:::-;4236:5;-1:-1:-1;4293:2:1;4278:18;;4265:32;4306:30;4265:32;4306:30;:::i;:::-;4355:7;4345:17;;;3986:382;;;;;:::o;4373:376::-;4435:6;4443;4496:2;4484:9;4475:7;4471:23;4467:32;4464:52;;;4512:1;4509;4502:12;4464:52;4551:9;4538:23;4570:28;4592:5;4570:28;:::i;4754:248::-;4822:6;4830;4883:2;4871:9;4862:7;4858:23;4854:32;4851:52;;;4899:1;4896;4889:12;4851:52;-1:-1:-1;;4922:23:1;;;4992:2;4977:18;;;4964:32;;-1:-1:-1;4754:248:1:o;5215:529::-;5292:6;5300;5308;5361:2;5349:9;5340:7;5336:23;5332:32;5329:52;;;5377:1;5374;5367:12;5329:52;5416:9;5403:23;5435:31;5460:5;5435:31;:::i;:::-;5485:5;-1:-1:-1;5542:2:1;5527:18;;5514:32;5555:33;5514:32;5555:33;:::i;:::-;5607:7;-1:-1:-1;5666:2:1;5651:18;;5638:32;5679:33;5638:32;5679:33;:::i;:::-;5731:7;5721:17;;;5215:529;;;;;:::o;6469:388::-;6537:6;6545;6598:2;6586:9;6577:7;6573:23;6569:32;6566:52;;;6614:1;6611;6604:12;6566:52;6653:9;6640:23;6672:31;6697:5;6672:31;:::i;:::-;6722:5;-1:-1:-1;6779:2:1;6764:18;;6751:32;6792:33;6751:32;6792:33;:::i;6862:316::-;6939:6;6947;6955;7008:2;6996:9;6987:7;6983:23;6979:32;6976:52;;;7024:1;7021;7014:12;6976:52;-1:-1:-1;;7047:23:1;;;7117:2;7102:18;;7089:32;;-1:-1:-1;7168:2:1;7153:18;;;7140:32;;6862:316;-1:-1:-1;6862:316:1:o;7443:377::-;7517:6;7525;7533;7586:2;7574:9;7565:7;7561:23;7557:32;7554:52;;;7602:1;7599;7592:12;7554:52;7638:9;7625:23;7615:33;;7698:2;7687:9;7683:18;7670:32;7711:28;7733:5;7711:28;:::i;7825:329::-;8027:2;8009:21;;;8066:1;8046:18;;;8039:29;-1:-1:-1;;;8099:2:1;8084:18;;8077:36;8145:2;8130:18;;7825:329::o;8159:127::-;8220:10;8215:3;8211:20;8208:1;8201:31;8251:4;8248:1;8241:15;8275:4;8272:1;8265:15;8291:128;8358:9;;;8379:11;;;8376:37;;;8393:18;;:::i;8780:184::-;8850:6;8903:2;8891:9;8882:7;8878:23;8874:32;8871:52;;;8919:1;8916;8909:12;8871:52;-1:-1:-1;8942:16:1;;8780:184;-1:-1:-1;8780:184:1:o;9376:411::-;9578:2;9560:21;;;9617:2;9597:18;;;9590:30;9656:34;9651:2;9636:18;;9629:62;-1:-1:-1;;;9722:2:1;9707:18;;9700:45;9777:3;9762:19;;9376:411::o;10843:245::-;10910:6;10963:2;10951:9;10942:7;10938:23;10934:32;10931:52;;;10979:1;10976;10969:12;10931:52;11011:9;11005:16;11030:28;11052:5;11030:28;:::i;11093:306::-;11181:6;11189;11197;11250:2;11238:9;11229:7;11225:23;11221:32;11218:52;;;11266:1;11263;11256:12;11218:52;11295:9;11289:16;11279:26;;11345:2;11334:9;11330:18;11324:25;11314:35;;11389:2;11378:9;11374:18;11368:25;11358:35;;11093:306;;;;;:::o;11620:125::-;11685:9;;;11706:10;;;11703:36;;;11719:18;;:::i;12558:168::-;12631:9;;;12662;;12679:15;;;12673:22;;12659:37;12649:71;;12700:18;;:::i;12731:217::-;12771:1;12797;12787:132;;12841:10;12836:3;12832:20;12829:1;12822:31;12876:4;12873:1;12866:15;12904:4;12901:1;12894:15;12787:132;-1:-1:-1;12933:9:1;;12731:217::o;15779:422::-;15868:1;15911:5;15868:1;15925:270;15946:7;15936:8;15933:21;15925:270;;;16005:4;16001:1;15997:6;15993:17;15987:4;15984:27;15981:53;;;16014:18;;:::i;:::-;16064:7;16054:8;16050:22;16047:55;;;16084:16;;;;16047:55;16163:22;;;;16123:15;;;;15925:270;;;15929:3;15779:422;;;;;:::o;16206:806::-;16255:5;16285:8;16275:80;;-1:-1:-1;16326:1:1;16340:5;;16275:80;16374:4;16364:76;;-1:-1:-1;16411:1:1;16425:5;;16364:76;16456:4;16474:1;16469:59;;;;16542:1;16537:130;;;;16449:218;;16469:59;16499:1;16490:10;;16513:5;;;16537:130;16574:3;16564:8;16561:17;16558:43;;;16581:18;;:::i;:::-;-1:-1:-1;;16637:1:1;16623:16;;16652:5;;16449:218;;16751:2;16741:8;16738:16;16732:3;16726:4;16723:13;16719:36;16713:2;16703:8;16700:16;16695:2;16689:4;16686:12;16682:35;16679:77;16676:159;;;-1:-1:-1;16788:19:1;;;16820:5;;16676:159;16867:34;16892:8;16886:4;16867:34;:::i;:::-;16937:6;16933:1;16929:6;16925:19;16916:7;16913:32;16910:58;;;16948:18;;:::i;:::-;16986:20;;16206:806;-1:-1:-1;;;16206:806:1:o;17017:140::-;17075:5;17104:47;17145:4;17135:8;17131:19;17125:4;17104:47;:::i;17294:127::-;17355:10;17350:3;17346:20;17343:1;17336:31;17386:4;17383:1;17376:15;17410:4;17407:1;17400:15;17426:251;17496:6;17549:2;17537:9;17528:7;17524:23;17520:32;17517:52;;;17565:1;17562;17555:12;17517:52;17597:9;17591:16;17616:31;17641:5;17616:31;:::i;17682:980::-;17944:4;17992:3;17981:9;17977:19;18023:6;18012:9;18005:25;18049:2;18087:6;18082:2;18071:9;18067:18;18060:34;18130:3;18125:2;18114:9;18110:18;18103:31;18154:6;18189;18183:13;18220:6;18212;18205:22;18258:3;18247:9;18243:19;18236:26;;18297:2;18289:6;18285:15;18271:29;;18318:1;18328:195;18342:6;18339:1;18336:13;18328:195;;;18407:13;;-1:-1:-1;;;;;18403:39:1;18391:52;;18498:15;;;;18463:12;;;;18439:1;18357:9;18328:195;;;-1:-1:-1;;;;;;;18579:32:1;;;;18574:2;18559:18;;18552:60;-1:-1:-1;;;18643:3:1;18628:19;18621:35;18540:3;17682:980;-1:-1:-1;;;17682:980:1:o

Swarm Source

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