ETH Price: $3,440.56 (-1.16%)
Gas: 11 Gwei

Token

PRINT (PRINT)
 

Overview

Max Total Supply

1,000,000,000,000 PRINT

Holders

171

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,354,316,094.426231664 PRINT

Value
$0.00
0x3320f20fe2c977d3193f6ec9d0cb4a93dd723b87
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:
PRINT

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-30
*/

//SPDX-License-Identifier: MIT 

/////////////////////////////////
//    PRINT ETH                //
//    t.me/Print_Erc           //
//    printeth.io              //
//    twitter.com/ethprint/    //
/////////////////////////////////

pragma solidity ^0.8.9;

library SafeMath {
	function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b;	require(c >= a, "SafeMath: addition overflow"); return c; }
	function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); }
	function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage);	uint256 c = a - b; return c; }
	function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; }
	function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); }
	function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c;	}
	function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); }
	function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; }
}

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

abstract contract Auth {
	address internal owner;
	constructor(address _owner) { owner = _owner; }
	modifier onlyOwner() { require(msg.sender == owner, "Only contract owner can call this function"); _; }
	function transferOwnership(address payable newOwner) external onlyOwner { owner = newOwner;	emit OwnershipTransferred(newOwner); }
	function renounceOwnership() external onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); }
	event OwnershipTransferred(address owner);
}

interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() 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);
}

contract PRINT is IERC20, Auth {
	using SafeMath for uint256;
	string constant _name = "PRINT";
	string constant _symbol = "PRINT";
	uint256 constant _totalSupply = 1 * (10**12) * (10 ** _decimals);
	uint8 constant _decimals = 9;
    uint32 _smd; uint32 _smr;
	mapping (address => uint256) _balances;
	mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) private _excludedFromFee;
    bool public tradingOpen;
    bool public taxPaused;
    uint256 public maxTxAmount; uint256 public maxWalletAmount;
  	uint256 private _taxSwapMin; uint256 private _taxSwapMax;
	address private _limitRemover; address private _taxRemover; address private _lpTokenOwner;
    address private _uniLpAddr;
    uint16 public snipersCaught = 0;
	uint8 _defTaxRate = 10; 
	uint8 private _buyTaxRate; uint8 private _sellTaxRate; uint8 private _txTaxRate;
    uint16 private _autoLPShares = 200;
	uint16 private _taxShares1 = 400;
    uint16 private _taxShares2 = 400;
    uint16 private _taxShares3 = 0;
    uint256 private _sbt = 0;

    uint256 private _humanBlock = 0;
    mapping (address => bool) private _nonSniper;
    mapping (address => uint256) private _sniperBlock;

	uint256 private _taxBreakEnd;
	address payable private _taxWallet1 = payable(0xe2195343Bf7460c9F961102CfB8B89293ed4DC60);
	address payable private _taxWallet2 = payable(0xe51567a16A0Fa4251Eb9A908F9B6464A3B61A250);
    address payable private _taxWallet3 = payable(0xC04Ac6c69625D8B611541389dBf420a4f007d11F);
	bool private _inTaxSwap = false;
	address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _uniswapV2Router;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

	constructor (uint32 smd, uint32 smr) Auth(msg.sender) {      
		tradingOpen = false;
		taxPaused = false;
		_limitRemover = msg.sender;
		_taxRemover = msg.sender;
		_lpTokenOwner = msg.sender;
		maxTxAmount = _totalSupply;
		maxWalletAmount = _totalSupply;
		_taxSwapMin = _totalSupply * 10 / 10000;
		_taxSwapMax = _totalSupply * 100 / 10000;
        _uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);
		_excludedFromFee[owner] = true;
        _excludedFromFee[address(this)] = true;
		_excludedFromFee[_uniswapV2RouterAddress] = true;
		_excludedFromFee[_taxWallet1] = true;
        _smd = smd; _smr = smr;
		_balances[address(this)] = _totalSupply;
		emit Transfer(address(0), address(this), _totalSupply);
	}
	
	receive() external payable {}
	
	function totalSupply() external pure override returns (uint256) { return _totalSupply; }
	function decimals() external pure override returns (uint8) { return _decimals; }
	function symbol() external pure override returns (string memory) { return _symbol; }
	function name() external pure override returns (string memory) { return _name; }
	function getOwner() external view override returns (address) { return owner; }
	function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
	function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

	function initLP(uint256 ethAmountWei) external onlyOwner {
		require(!tradingOpen, "trading already open");
		require(ethAmountWei > 0, "eth liquidity cannot be zero");
		uint256 _contractETHBalance = address(this).balance;
		require(_contractETHBalance >= ethAmountWei, "not enough eth available");
		uint256 _contractTokenBalance = balanceOf(address(this));
		require(_contractTokenBalance > 0, "no tokens for liquidity");
		_uniLpAddr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

		_nonSniper[address(this)] = true;
		_nonSniper[owner] = true;
		_nonSniper[_taxWallet1] = true;
		_nonSniper[_taxWallet2] = true;
		_nonSniper[_taxWallet3] = true;
		_nonSniper[_uniLpAddr] = true;

		_approveRouter(_contractTokenBalance);
		_addLiquidity(_contractTokenBalance, ethAmountWei);

		_openTrading();
	}

	function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
		_uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _lpTokenOwner, block.timestamp );
	}

	function taxSwapSettings(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external {
		require(msg.sender ==  _taxRemover, "not authorized");
		_taxSwapMin = _totalSupply * minValue / minDivider;
		_taxSwapMax = _totalSupply * maxValue / maxDivider;
	}

	function resetTax() external {
		require(msg.sender ==  _taxRemover, "not authorized");
		_resetTax();
	}

	function _resetTax() internal {
		_buyTaxRate = _defTaxRate;
		_sellTaxRate = _defTaxRate;
		_txTaxRate = _defTaxRate;
	}

	function isSniper(address wallet) external view returns(bool) {
		if (_sniperBlock[wallet] != 0) { return true; }
		else { return false; }
	}

	function sniperBlock(address wallet) external view returns(uint256) {
		return _sniperBlock[wallet];
	}

	function disableFeesFor(address wallet) external {
		require(msg.sender == _taxRemover, "not authorized");
		_excludedFromFee[ wallet ] = true;
	}
	function enableFeesFor(address wallet) external {
		require(msg.sender == _taxRemover, "not authorized");
		_excludedFromFee[ wallet ] = false;
	}

    function decreaseTaxRate(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external {
		require(msg.sender ==  _taxRemover, "not authorized");
        require(newBuyTax <= _buyTaxRate && newSellTax <= _sellTaxRate && newTxTax <= _txTaxRate, "New tax must be lower");
		_buyTaxRate = newBuyTax;
		_sellTaxRate = newSellTax;
		_txTaxRate = newTxTax;
    }

	function setBuyTaxBreak(uint32 durationSeconds) external {
		require(msg.sender ==  _taxRemover, "not authorized");
		_taxBreakEnd = block.timestamp + durationSeconds;
	}
    
    function changeTaxDistribution(uint16 sharesAutoLP, uint16 sharesWallet1, uint16 sharesWallet2, uint16 sharesWallet3) external {
		require(msg.sender == _taxRemover, "not authorized");
        require(sharesAutoLP + sharesWallet1 + sharesWallet2 + sharesWallet3 == 1000, "The sum must be 1000" );
        _autoLPShares = sharesAutoLP;
        _taxShares1 = sharesWallet1;
        _taxShares2 = sharesWallet2;
        _taxShares3 = sharesWallet3;
    }
    
    function setTaxWallets(address newTaxWall1, address newTaxWall2, address newTaxWall3) external {
		require(msg.sender ==  _taxRemover, "not authorized");
        _taxWallet1 = payable(newTaxWall1);
        _taxWallet2 = payable(newTaxWall2);
        _taxWallet3 = payable(newTaxWall3);
		_excludedFromFee[newTaxWall1] = true;
		_excludedFromFee[newTaxWall2] = true;
		_excludedFromFee[newTaxWall3] = true;
    }

	function approve(address spender, uint256 amount) public override returns (bool) {
		if (_humanBlock > block.number && _nonSniper[msg.sender] == false) {
			_markSniper(msg.sender, block.number);
		}

		_allowances[msg.sender][spender] = amount;
		emit Approval(msg.sender, spender, amount);
		return true;
	}

	function transfer(address recipient, uint256 amount) external override returns (bool) {
	    require(_checkTradingOpen(), "trading not open");
		return _transferFrom(msg.sender, recipient, amount);
	}
    
    function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external {
		require(msg.sender ==  _limitRemover, "not authorized");
        uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000;
        require(newTxAmt >= maxTxAmount, "tx limit too low");
        maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000;
        require(newWalletAmt >= maxWalletAmount, "wallet limit too low");
        maxWalletAmount = newWalletAmt;
    }

    function openTrading() external onlyOwner{
        _openTrading();
	}
	
    function _openTrading() internal {
        require(_uniLpAddr != address(0), "LP address has not been set");
        _taxBreakEnd = block.timestamp;
        _sbt = _sbt + _taxBreakEnd - 1;
        _humanBlock = block.number * 5;
		maxTxAmount     = 5 * _totalSupply / 1000; 
		maxWalletAmount = 5 * _totalSupply / 1000;
		_resetTax();
		_sellTaxRate = 25; //increased sell tax for 2 hours after launch to discourage dumping
		tradingOpen = true;

    }
    
    function _checkTradingOpen() private returns (bool){
        bool checkResult = false;
        if (tradingOpen == true) { checkResult = true; } 
        else if (tx.origin == owner) { checkResult = true; } 

        return checkResult;
    }

    function humanize() external onlyOwner{
        _humanize();
	}

    function _humanize() internal {
    	require(_humanBlock > block.number || _humanBlock == 0, "already humanized");
		_humanBlock = block.number;
	}
    
	function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(), "Trading not open");
		if(_allowances[sender][msg.sender] != type(uint256).max){
			_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
		}
		return _transferFrom(sender, recipient, amount);
	}
	
	function _checkLimits(address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( tradingOpen == true ) {
            if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; }
            else if ( recipient != _uniLpAddr && (_balances[recipient].add(transferAmount) > maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( tradingOpen == true && block.timestamp < _sbt ) { taxAmount = amount.mul(98).div(100);}
		else if ( _excludedFromFee[sender] == true || _excludedFromFee[recipient] == true || tradingOpen == false || taxPaused == true) { taxAmount = 0; }
		else if ( sender == _uniLpAddr && _taxBreakEnd > block.timestamp) { taxAmount = 0; }
		else if ( sender == _uniLpAddr && _taxBreakEnd <= block.timestamp) { taxAmount = amount.mul(_buyTaxRate).div(100); }
		else if ( recipient == _uniLpAddr ) { taxAmount = amount.mul(_sellTaxRate).div(100); }
		else { taxAmount = amount.mul(_txTaxRate).div(100); }
		return taxAmount;
    }

    function liquifySniper(address wallet) external onlyOwner lockTaxSwap {
    	require(_sniperBlock[wallet] != 0, "wallet is not a sniper");
    	uint256 sniperBalance = balanceOf(wallet);
    	require(sniperBalance > 0, "wallet has no tokens");

    	_balances[wallet] = _balances[wallet].sub(sniperBalance);
    	_balances[address(this)] = _balances[address(this)].add(sniperBalance);
		emit Transfer(wallet, address(this), sniperBalance);

		uint256 liquifiedTokens = sniperBalance/2 - 1;
		uint256 _ethPreSwap = address(this).balance;
    	_swapTaxTokensForEth(liquifiedTokens);
    	uint256 _ethSwapped = address(this).balance - _ethPreSwap;
    	_approveRouter(liquifiedTokens);
		_addLiquidity(liquifiedTokens, _ethSwapped);

    }

	function _swapTaxAndLiquify() private lockTaxSwap {
		uint256 _taxTokensAvailable = balanceOf(address(this));
		if (_taxTokensAvailable >= _taxSwapMin && tradingOpen == true && taxPaused == false ) {
			if (_taxTokensAvailable >= _taxSwapMax) { _taxTokensAvailable = _taxSwapMax; }
			uint256 _tokensForLP = _taxTokensAvailable * _autoLPShares / 1000 / 2;
		    uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
		    uint256 _ethPreSwap = address(this).balance;
		    _swapTaxTokensForEth(_tokensToSwap);
		    uint256 _ethSwapped = address(this).balance - _ethPreSwap;
		    if (_autoLPShares > 0) {
		    	uint256 _ethWeiAmount = _ethSwapped * _autoLPShares / 1000 ;
		    	_approveRouter(_tokensForLP);
		    	_addLiquidity(_tokensForLP, _ethWeiAmount);
		    }
		    uint256 _contractETHBalance = address(this).balance;
		    if(_contractETHBalance > 0) { _distributeTax(_contractETHBalance); }
		}
	}

	function _markSniper(address wallet, uint256 snipeBlockNum) internal {
		if (_nonSniper[wallet] == false && _sniperBlock[wallet] == 0) { 
			_sniperBlock[wallet] = snipeBlockNum; 
			snipersCaught ++;
		}
	}

	function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
		if (_humanBlock > block.number) {
			if ( uint160(address(recipient)) % _smd == _smr ) { _humanize(); }
			else if ( _sniperBlock[sender] == 0 ) { _markSniper(recipient, block.number); }
			else { _markSniper(recipient, _sniperBlock[sender]); }
		} else {
			if ( _sniperBlock[sender] != 0 ) { _markSniper(recipient, _sniperBlock[sender]); }
		}

		if ( tradingOpen == true && _sniperBlock[sender] != 0 && _sniperBlock[sender] < block.number ) {
			revert("Snipers and bots are frowned upon");
		}

        if (_inTaxSwap == false && recipient == _uniLpAddr) {
        	_swapTaxAndLiquify();
		}
        if ( sender != address(this) && recipient != address(this) ) { require(_checkLimits(recipient, amount), "TX exceeds limits"); }
	    uint256 _taxAmount = _calculateTax(sender, recipient, amount);
	    uint256 _transferAmount = amount.sub(_taxAmount);
	    _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
	    if (_taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(_taxAmount); }
		_balances[recipient] = _balances[recipient].add(_transferAmount);
		emit Transfer(sender, recipient, amount);
		return true;
	}

	function _approveRouter(uint256 _tokenAmount) internal {
		if (_allowances[address(this)][_uniswapV2RouterAddress] < _tokenAmount) {
			_allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
			emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max);
		}
	}

	function _swapTaxTokensForEth(uint256 _tokenAmount) private {
		_approveRouter(_tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp);
    }

    function _distributeTax(uint256 _amount) private {
    	uint16 _taxShareTotal = _taxShares1 + _taxShares2 + _taxShares3;
        if (_taxShares1 > 0) { _taxWallet1.transfer(_amount * _taxShares1 / _taxShareTotal); }
        if (_taxShares2 > 0) { _taxWallet2.transfer(_amount * _taxShares2 / _taxShareTotal); }
        if (_taxShares3 > 0) { _taxWallet3.transfer(_amount * _taxShares3 / _taxShareTotal); }
    }

	function taxSwap() external {
		require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _taxRemover, "not authorized" );
		uint256 taxTokenBalance = balanceOf(address(this));
        require(taxTokenBalance > 0, "No tax tokens to swap");
		_swapTaxTokensForEth(taxTokenBalance);
	}

	function taxSend() external { 
		require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _taxRemover, "not authorized" );
		_distributeTax(address(this).balance); 
	}

	function toggleTax() external {
		require(msg.sender ==  _taxRemover, "not authorized");
		taxPaused = !taxPaused;
	}

	function recoverEth() external onlyOwner {
		require(!tradingOpen, "trading already open");
		payable(owner).transfer(address(this).balance);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint32","name":"smd","type":"uint32"},{"internalType":"uint32","name":"smr","type":"uint32"}],"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":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesWallet1","type":"uint16"},{"internalType":"uint16","name":"sharesWallet2","type":"uint16"},{"internalType":"uint16","name":"sharesWallet3","type":"uint16"}],"name":"changeTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"decreaseTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"disableFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"enableFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"humanize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmountWei","type":"uint256"}],"name":"initLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"liquifySniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"durationSeconds","type":"uint32"}],"name":"setBuyTaxBreak","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWall1","type":"address"},{"internalType":"address","name":"newTaxWall2","type":"address"},{"internalType":"address","name":"newTaxWall3","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"sniperBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"taxSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600c60146101000a81548161ffff021916908361ffff160217905550600a600c60166101000a81548160ff021916908360ff16021790555060c8600c601a6101000a81548161ffff021916908361ffff160217905550610190600c601c6101000a81548161ffff021916908361ffff160217905550610190600c601e6101000a81548161ffff021916908361ffff1602179055506000600d60006101000a81548161ffff021916908361ffff1602179055506000600e556000600f5573e2195343bf7460c9f961102cfb8b89293ed4dc60601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e51567a16a0fa4251eb9a908f9b6464a3b61a250601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c04ac6c69625d8b611541389dbf420a4f007d11f601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff021916908315150217905550348015620001e957600080fd5b50604051620068383803806200683883398181016040528101906200020f9190620007ae565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600460006101000a81548160ff0219169083151502179055506000600460016101000a81548160ff02191690831515021790555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200035a91906200098f565b64e8d4a510006200036c9190620009e0565b6005819055506009600a6200038291906200098f565b64e8d4a51000620003949190620009e0565b600681905550612710600a6009600a620003af91906200098f565b64e8d4a51000620003c19190620009e0565b620003cd9190620009e0565b620003d9919062000a70565b60078190555061271060646009600a620003f491906200098f565b64e8d4a51000620004069190620009e0565b620004129190620009e0565b6200041e919062000a70565b600881905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600060146101000a81548163ffffffff021916908363ffffffff16021790555080600060186101000a81548163ffffffff021916908363ffffffff1602179055506009600a6200068291906200098f565b64e8d4a51000620006949190620009e0565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200073791906200098f565b64e8d4a51000620007499190620009e0565b60405162000758919062000ab9565b60405180910390a3505062000ad6565b600080fd5b600063ffffffff82169050919050565b62000788816200076d565b81146200079457600080fd5b50565b600081519050620007a8816200077d565b92915050565b60008060408385031215620007c857620007c762000768565b5b6000620007d88582860162000797565b9250506020620007eb8582860162000797565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000883578086048111156200085b576200085a620007f5565b5b60018516156200086b5780820291505b80810290506200087b8562000824565b94506200083b565b94509492505050565b6000826200089e576001905062000971565b81620008ae576000905062000971565b8160018114620008c75760028114620008d25762000908565b600191505062000971565b60ff841115620008e757620008e6620007f5565b5b8360020a915084821115620009015762000900620007f5565b5b5062000971565b5060208310610133831016604e8410600b8410161715620009425782820a9050838111156200093c576200093b620007f5565b5b62000971565b62000951848484600162000831565b925090508184048111156200096b576200096a620007f5565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200099c8262000978565b9150620009a98362000982565b9250620009d87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200088c565b905092915050565b6000620009ed8262000978565b9150620009fa8362000978565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a365762000a35620007f5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a7d8262000978565b915062000a8a8362000978565b92508262000a9d5762000a9c62000a41565b5b828204905092915050565b62000ab38162000978565b82525050565b600060208201905062000ad0600083018462000aa8565b92915050565b615d528062000ae66000396000f3fe6080604052600436106102125760003560e01c8063715018a611610118578063c9567bf9116100a0578063e79d41601161006f578063e79d41601461071f578063f2fde38b1461074a578063f32383e914610773578063fd9d00001461078a578063ffb54a99146107c757610219565b8063c9567bf91461068b578063d0e1f6e7146106a2578063d9f0b370146106b9578063dd62ed3e146106e257610219565b80639fda0581116100e75780639fda0581146105ba578063a9059cbb146105e3578063aa4bde2814610620578063b14218031461064b578063bcdb446b1461067457610219565b8063715018a614610522578063893d20e8146105395780638c0b5e221461056457806395d89b411461058f57610219565b80632d7edf7d1161019b5780635524a7381161016a5780635524a7381461044157806360a1f3931461046a57806362d79328146104935780636969c1a4146104bc57806370a08231146104e557610219565b80632d7edf7d146103ad578063313ce567146103d657806331b14d71146104015780634cdc8da41461042a57610219565b806310bf6029116101e257806310bf6029146102ec57806318160ddd146103035780631cbbe3e41461032e57806323b872dd14610345578063268f72dd1461038257610219565b8062fffc9d1461021e57806306fdde0314610247578063095ea7b3146102725780630f3a325f146102af57610219565b3661021957005b600080fd5b34801561022a57600080fd5b50610245600480360381019061024091906146d1565b6107f2565b005b34801561025357600080fd5b5061025c610914565b60405161026991906147d1565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190614887565b610951565b6040516102a691906148e2565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d191906148fd565b610ab4565b6040516102e391906148e2565b60405180910390f35b3480156102f857600080fd5b50610301610b0f565b005b34801561030f57600080fd5b50610318610bcb565b6040516103259190614939565b60405180910390f35b34801561033a57600080fd5b50610343610bf0565b005b34801561035157600080fd5b5061036c60048036038101906103679190614954565b610c88565b60405161037991906148e2565b60405180910390f35b34801561038e57600080fd5b50610397610ecf565b6040516103a491906148e2565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906149a7565b610ee2565b005b3480156103e257600080fd5b506103eb610f8d565b6040516103f891906149f0565b60405180910390f35b34801561040d57600080fd5b50610428600480360381019061042391906148fd565b610f96565b005b34801561043657600080fd5b5061043f611081565b005b34801561044d57600080fd5b5061046860048036038101906104639190614a37565b611275565b005b34801561047657600080fd5b50610491600480360381019061048c9190614ac4565b6113f5565b005b34801561049f57600080fd5b506104ba60048036038101906104b591906148fd565b611568565b005b3480156104c857600080fd5b506104e360048036038101906104de9190614b2b565b611653565b005b3480156104f157600080fd5b5061050c600480360381019061050791906148fd565b611cf0565b6040516105199190614939565b60405180910390f35b34801561052e57600080fd5b50610537611d39565b005b34801561054557600080fd5b5061054e611e42565b60405161055b9190614b67565b60405180910390f35b34801561057057600080fd5b50610579611e6b565b6040516105869190614939565b60405180910390f35b34801561059b57600080fd5b506105a4611e71565b6040516105b191906147d1565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190614b82565b611eae565b005b3480156105ef57600080fd5b5061060a60048036038101906106059190614887565b61210e565b60405161061791906148e2565b60405180910390f35b34801561062c57600080fd5b5061063561216a565b6040516106429190614939565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190614bd5565b612170565b005b34801561068057600080fd5b5061068961231a565b005b34801561069757600080fd5b506106a0612461565b005b3480156106ae57600080fd5b506106b76124f9565b005b3480156106c557600080fd5b506106e060048036038101906106db91906148fd565b61269c565b005b3480156106ee57600080fd5b5061070960048036038101906107049190614c15565b612a17565b6040516107169190614939565b60405180910390f35b34801561072b57600080fd5b50610734612a9e565b6040516107419190614c64565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190614cbd565b612ab2565b005b34801561077f57600080fd5b50610788612bba565b005b34801561079657600080fd5b506107b160048036038101906107ac91906148fd565b612c54565b6040516107be9190614939565b60405180910390f35b3480156107d357600080fd5b506107dc612c9d565b6040516107e991906148e2565b60405180910390f35b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087990614d36565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61089e9190614eb8565b64e8d4a510006108ae9190614f03565b6108b89190614f03565b6108c29190614f8c565b6007819055508063ffffffff168263ffffffff166009600a6108e49190614eb8565b64e8d4a510006108f49190614f03565b6108fe9190614f03565b6109089190614f8c565b60088190555050505050565b60606040518060400160405280600581526020017f5052494e54000000000000000000000000000000000000000000000000000000815250905090565b600043600f541180156109b4575060001515601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109c4576109c33343612cb0565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610aa29190614939565b60405180910390a36001905092915050565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b055760019050610b0a565b600090505b919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690614d36565b60405180910390fd5b600460019054906101000a900460ff1615600460016101000a81548160ff021916908315150217905550565b60006009600a610bdb9190614eb8565b64e8d4a51000610beb9190614f03565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c759061502f565b60405180910390fd5b610c86612dd8565b565b6000610c92612e32565b610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc89061509b565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ebb57610e3a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ebf9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ec6848484612f23565b90509392505050565b600460019054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990614d36565b60405180910390fd5b8063ffffffff1642610f8491906150bb565b60128190555050565b60006009905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d90614d36565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061112a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111825750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111da5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121090614d36565b60405180910390fd5b600061122430611cf0565b905060008111611269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112609061515d565b60405180910390fd5b61127281613588565b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc90614d36565b60405180910390fd5b600c60179054906101000a900460ff1660ff168360ff161115801561133f5750600c60189054906101000a900460ff1660ff168260ff1611155b80156113605750600c60199054906101000a900460ff1660ff168160ff1611155b61139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906151c9565b60405180910390fd5b82600c60176101000a81548160ff021916908360ff16021790555081600c60186101000a81548160ff021916908360ff16021790555080600c60196101000a81548160ff021916908360ff160217905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90614d36565b60405180910390fd5b6103e88183858761149691906151e9565b6114a091906151e9565b6114aa91906151e9565b61ffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e59061526d565b60405180910390fd5b83600c601a6101000a81548161ffff021916908361ffff16021790555082600c601c6101000a81548161ffff021916908361ffff16021790555081600c601e6101000a81548161ffff021916908361ffff16021790555080600d60006101000a81548161ffff021916908361ffff16021790555050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef90614d36565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d89061502f565b60405180910390fd5b600460009054906101000a900460ff1615611731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611728906152d9565b60405180910390fd5b60008111611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90615345565b60405180910390fd5b6000479050818110156117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b3906153b1565b60405180910390fd5b60006117c730611cf0565b90506000811161180c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118039061541d565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561187457600080fd5b505afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190615452565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561193057600080fd5b505afa158015611944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119689190615452565b6040518363ffffffff1660e01b815260040161198592919061547f565b602060405180830381600087803b15801561199f57600080fd5b505af11580156119b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d79190615452565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611cd9816137b6565b611ce381846139a0565b611ceb613a82565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe9061502f565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051611e389190614b67565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600581526020017f5052494e54000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3590614d36565b60405180910390fd5b82601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000612118612e32565b612157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214e906154f4565b60405180910390fd5b612162338484612f23565b905092915050565b60065481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f790614d36565b60405180910390fd5b60006103e88361ffff166009600a6122189190614eb8565b64e8d4a510006122289190614f03565b6122329190614f03565b61223c9190614f8c565b9050600554811015612283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227a90615560565b60405180910390fd5b8060058190555060006103e88361ffff166009600a6122a29190614eb8565b64e8d4a510006122b29190614f03565b6122bc9190614f03565b6122c69190614f8c565b905060065481101561230d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612304906155cc565b60405180910390fd5b8060068190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f9061502f565b60405180910390fd5b600460009054906101000a900460ff16156123f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ef906152d9565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561245e573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e69061502f565b60405180910390fd5b6124f7613a82565b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806125a25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806125fa5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126525750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268890614d36565b60405180910390fd5b61269a47613c0b565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461272a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127219061502f565b60405180910390fd5b6001601560146101000a81548160ff0219169083151502179055506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156127c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bf90615638565b60405180910390fd5b60006127d382611cf0565b905060008111612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280f906156a4565b60405180910390fd5b61286a81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e7990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128ff81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161299f9190614939565b60405180910390a3600060016002836129b89190614f8c565b6129c291906156c4565b905060004790506129d282613588565b600081476129e091906156c4565b90506129eb836137b6565b6129f583826139a0565b505050506000601560146101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b379061502f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612baf9190615757565b60405180910390a150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4190614d36565b60405180910390fd5b612c52613f21565b565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900460ff1681565b60001515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612d4f57506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612dd45780601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c601481819054906101000a900461ffff1680929190612db890615772565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b43600f541180612dea57506000600f54145b612e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e20906157e9565b60405180910390fd5b43600f81905550565b6000806000905060011515600460009054906101000a900460ff1615151415612e5e5760019050612eb8565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612eb757600190505b5b8091505090565b6000838311158290612f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efe91906147d1565b60405180910390fd5b5060008385612f1691906156c4565b9050809150509392505050565b600043600f54111561303c57600060189054906101000a900463ffffffff1663ffffffff16600060149054906101000a900463ffffffff1663ffffffff1684612f6c9190615809565b73ffffffffffffffffffffffffffffffffffffffff161415612f9557612f90612dd8565b613037565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612fec57612fe78343612cb0565b613036565b61303583601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb0565b5b5b6130ce565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146130cd576130cc83601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb0565b5b5b60011515600460009054906101000a900460ff16151514801561313157506000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b801561317b575043601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156131bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131b2906158ac565b60405180910390fd5b60001515601560149054906101000a900460ff16151514801561322b5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561323957613238613fa1565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156132a157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156132f0576132b0838361412b565b6132ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e690615918565b60405180910390fd5b5b60006132fd858585614227565b905060006133148285613e7990919063ffffffff16565b905061339f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ebf9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156134815761343d82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6134d381600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec390919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516135739190614939565b60405180910390a36001925050509392505050565b613591816137b6565b6000600267ffffffffffffffff8111156135ae576135ad615938565b5b6040519080825280602002602001820160405280156135dc5781602001602082028036833780820191505090505b50905030816000815181106135f4576135f3615967565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561369657600080fd5b505afa1580156136aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ce9190615452565b816001815181106136e2576136e1615967565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613780959493929190615a8f565b600060405180830381600087803b15801561379a57600080fd5b505af11580156137ae573d6000803e3d6000fd5b505050505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561399d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516139949190614939565b60405180910390a35b50565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613a2996959493929190615ae9565b6060604051808303818588803b158015613a4257600080fd5b505af1158015613a56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613a7b9190615b5f565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b0b90615bfe565b60405180910390fd5b426012819055506001601254600e54613b2d91906150bb565b613b3791906156c4565b600e81905550600543613b4a9190614f03565b600f819055506103e86009600a613b619190614eb8565b64e8d4a51000613b719190614f03565b6005613b7d9190614f03565b613b879190614f8c565b6005819055506103e86009600a613b9e9190614eb8565b64e8d4a51000613bae9190614f03565b6005613bba9190614f03565b613bc49190614f8c565b600681905550613bd2613f21565b6019600c60186101000a81548160ff021916908360ff1602179055506001600460006101000a81548160ff021916908315150217905550565b6000600d60009054906101000a900461ffff16600c601e9054906101000a900461ffff16600c601c9054906101000a900461ffff16613c4a91906151e9565b613c5491906151e9565b90506000600c601c9054906101000a900461ffff1661ffff161115613d0b57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600c601c9054906101000a900461ffff1661ffff1685613cd49190614f03565b613cde9190614f8c565b9081150290604051600060405180830381858888f19350505050158015613d09573d6000803e3d6000fd5b505b6000600c601e9054906101000a900461ffff1661ffff161115613dc057601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600c601e9054906101000a900461ffff1661ffff1685613d899190614f03565b613d939190614f8c565b9081150290604051600060405180830381858888f19350505050158015613dbe573d6000803e3d6000fd5b505b6000600d60009054906101000a900461ffff1661ffff161115613e7557601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d60009054906101000a900461ffff1661ffff1685613e3e9190614f03565b613e489190614f8c565b9081150290604051600060405180830381858888f19350505050158015613e73573d6000803e3d6000fd5b505b5050565b6000613ebb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ebf565b905092915050565b6000808284613ed291906150bb565b905083811015613f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f0e90615c6a565b60405180910390fd5b8091505092915050565b600c60169054906101000a900460ff16600c60176101000a81548160ff021916908360ff160217905550600c60169054906101000a900460ff16600c60186101000a81548160ff021916908360ff160217905550600c60169054906101000a900460ff16600c60196101000a81548160ff021916908360ff160217905550565b6001601560146101000a81548160ff0219169083151502179055506000613fc730611cf0565b90506007548110158015613fee575060011515600460009054906101000a900460ff161515145b801561400d575060001515600460019054906101000a900460ff161515145b1561410d5760085481106140215760085490505b600060026103e8600c601a9054906101000a900461ffff1661ffff16846140489190614f03565b6140529190614f8c565b61405c9190614f8c565b90506000818361406c91906156c4565b9050600047905061407c82613588565b6000814761408a91906156c4565b90506000600c601a9054906101000a900461ffff1661ffff1611156140ef5760006103e8600c601a9054906101000a900461ffff1661ffff16836140ce9190614f03565b6140d89190614f8c565b90506140e3856137b6565b6140ed85826139a0565b505b600047905060008111156141075761410681613c0b565b5b50505050505b506000601560146101000a81548160ff021916908315150217905550565b6000806001905060011515600460009054906101000a900460ff161515141561421d57600554831115614161576000905061421c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015614211575060065461420f84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec390919063ffffffff16565b115b1561421b57600090505b5b5b8091505092915050565b60008060011515600460009054906101000a900460ff16151514801561424e5750600e5442105b156142815761427a606461426c60628661456890919063ffffffff16565b6145e390919063ffffffff16565b905061455d565b60011515600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480614330575060011515600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8061434e575060001515600460009054906101000a900460ff161515145b8061436c575060011515600460019054906101000a900460ff161515145b1561437a576000905061455c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156143d8575042601254115b156143e6576000905061455b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561444557504260125411155b15614489576144826064614474600c60179054906101000a900460ff1660ff168661456890919063ffffffff16565b6145e390919063ffffffff16565b905061455a565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561451e576145176064614509600c60189054906101000a900460ff1660ff168661456890919063ffffffff16565b6145e390919063ffffffff16565b9050614559565b6145566064614548600c60199054906101000a900460ff1660ff168661456890919063ffffffff16565b6145e390919063ffffffff16565b90505b5b5b5b5b809150509392505050565b60008083141561457b57600090506145dd565b600082846145899190614f03565b90508284826145989190614f8c565b146145d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016145cf90615cfc565b60405180910390fd5b809150505b92915050565b600061462583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061462d565b905092915050565b60008083118290614674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161466b91906147d1565b60405180910390fd5b50600083856146839190614f8c565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b6146ae81614695565b81146146b957600080fd5b50565b6000813590506146cb816146a5565b92915050565b600080600080608085870312156146eb576146ea614690565b5b60006146f9878288016146bc565b945050602061470a878288016146bc565b935050604061471b878288016146bc565b925050606061472c878288016146bc565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b83811015614772578082015181840152602081019050614757565b83811115614781576000848401525b50505050565b6000601f19601f8301169050919050565b60006147a382614738565b6147ad8185614743565b93506147bd818560208601614754565b6147c681614787565b840191505092915050565b600060208201905081810360008301526147eb8184614798565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061481e826147f3565b9050919050565b61482e81614813565b811461483957600080fd5b50565b60008135905061484b81614825565b92915050565b6000819050919050565b61486481614851565b811461486f57600080fd5b50565b6000813590506148818161485b565b92915050565b6000806040838503121561489e5761489d614690565b5b60006148ac8582860161483c565b92505060206148bd85828601614872565b9150509250929050565b60008115159050919050565b6148dc816148c7565b82525050565b60006020820190506148f760008301846148d3565b92915050565b60006020828403121561491357614912614690565b5b60006149218482850161483c565b91505092915050565b61493381614851565b82525050565b600060208201905061494e600083018461492a565b92915050565b60008060006060848603121561496d5761496c614690565b5b600061497b8682870161483c565b935050602061498c8682870161483c565b925050604061499d86828701614872565b9150509250925092565b6000602082840312156149bd576149bc614690565b5b60006149cb848285016146bc565b91505092915050565b600060ff82169050919050565b6149ea816149d4565b82525050565b6000602082019050614a0560008301846149e1565b92915050565b614a14816149d4565b8114614a1f57600080fd5b50565b600081359050614a3181614a0b565b92915050565b600080600060608486031215614a5057614a4f614690565b5b6000614a5e86828701614a22565b9350506020614a6f86828701614a22565b9250506040614a8086828701614a22565b9150509250925092565b600061ffff82169050919050565b614aa181614a8a565b8114614aac57600080fd5b50565b600081359050614abe81614a98565b92915050565b60008060008060808587031215614ade57614add614690565b5b6000614aec87828801614aaf565b9450506020614afd87828801614aaf565b9350506040614b0e87828801614aaf565b9250506060614b1f87828801614aaf565b91505092959194509250565b600060208284031215614b4157614b40614690565b5b6000614b4f84828501614872565b91505092915050565b614b6181614813565b82525050565b6000602082019050614b7c6000830184614b58565b92915050565b600080600060608486031215614b9b57614b9a614690565b5b6000614ba98682870161483c565b9350506020614bba8682870161483c565b9250506040614bcb8682870161483c565b9150509250925092565b60008060408385031215614bec57614beb614690565b5b6000614bfa85828601614aaf565b9250506020614c0b85828601614aaf565b9150509250929050565b60008060408385031215614c2c57614c2b614690565b5b6000614c3a8582860161483c565b9250506020614c4b8582860161483c565b9150509250929050565b614c5e81614a8a565b82525050565b6000602082019050614c796000830184614c55565b92915050565b6000614c8a826147f3565b9050919050565b614c9a81614c7f565b8114614ca557600080fd5b50565b600081359050614cb781614c91565b92915050565b600060208284031215614cd357614cd2614690565b5b6000614ce184828501614ca8565b91505092915050565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000614d20600e83614743565b9150614d2b82614cea565b602082019050919050565b60006020820190508181036000830152614d4f81614d13565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614ddc57808604811115614db857614db7614d56565b5b6001851615614dc75780820291505b8081029050614dd585614d85565b9450614d9c565b94509492505050565b600082614df55760019050614eb1565b81614e035760009050614eb1565b8160018114614e195760028114614e2357614e52565b6001915050614eb1565b60ff841115614e3557614e34614d56565b5b8360020a915084821115614e4c57614e4b614d56565b5b50614eb1565b5060208310610133831016604e8410600b8410161715614e875782820a905083811115614e8257614e81614d56565b5b614eb1565b614e948484846001614d92565b92509050818404811115614eab57614eaa614d56565b5b81810290505b9392505050565b6000614ec382614851565b9150614ece836149d4565b9250614efb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614de5565b905092915050565b6000614f0e82614851565b9150614f1983614851565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f5257614f51614d56565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f9782614851565b9150614fa283614851565b925082614fb257614fb1614f5d565b5b828204905092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000615019602a83614743565b915061502482614fbd565b604082019050919050565b600060208201905081810360008301526150488161500c565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000615085601083614743565b91506150908261504f565b602082019050919050565b600060208201905081810360008301526150b481615078565b9050919050565b60006150c682614851565b91506150d183614851565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561510657615105614d56565b5b828201905092915050565b7f4e6f2074617820746f6b656e7320746f20737761700000000000000000000000600082015250565b6000615147601583614743565b915061515282615111565b602082019050919050565b600060208201905081810360008301526151768161513a565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006151b3601583614743565b91506151be8261517d565b602082019050919050565b600060208201905081810360008301526151e2816151a6565b9050919050565b60006151f482614a8a565b91506151ff83614a8a565b92508261ffff0382111561521657615215614d56565b5b828201905092915050565b7f5468652073756d206d7573742062652031303030000000000000000000000000600082015250565b6000615257601483614743565b915061526282615221565b602082019050919050565b600060208201905081810360008301526152868161524a565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006152c3601483614743565b91506152ce8261528d565b602082019050919050565b600060208201905081810360008301526152f2816152b6565b9050919050565b7f657468206c69717569646974792063616e6e6f74206265207a65726f00000000600082015250565b600061532f601c83614743565b915061533a826152f9565b602082019050919050565b6000602082019050818103600083015261535e81615322565b9050919050565b7f6e6f7420656e6f7567682065746820617661696c61626c650000000000000000600082015250565b600061539b601883614743565b91506153a682615365565b602082019050919050565b600060208201905081810360008301526153ca8161538e565b9050919050565b7f6e6f20746f6b656e7320666f72206c6971756964697479000000000000000000600082015250565b6000615407601783614743565b9150615412826153d1565b602082019050919050565b60006020820190508181036000830152615436816153fa565b9050919050565b60008151905061544c81614825565b92915050565b60006020828403121561546857615467614690565b5b60006154768482850161543d565b91505092915050565b60006040820190506154946000830185614b58565b6154a16020830184614b58565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006154de601083614743565b91506154e9826154a8565b602082019050919050565b6000602082019050818103600083015261550d816154d1565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b600061554a601083614743565b915061555582615514565b602082019050919050565b600060208201905081810360008301526155798161553d565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006155b6601483614743565b91506155c182615580565b602082019050919050565b600060208201905081810360008301526155e5816155a9565b9050919050565b7f77616c6c6574206973206e6f74206120736e6970657200000000000000000000600082015250565b6000615622601683614743565b915061562d826155ec565b602082019050919050565b6000602082019050818103600083015261565181615615565b9050919050565b7f77616c6c657420686173206e6f20746f6b656e73000000000000000000000000600082015250565b600061568e601483614743565b915061569982615658565b602082019050919050565b600060208201905081810360008301526156bd81615681565b9050919050565b60006156cf82614851565b91506156da83614851565b9250828210156156ed576156ec614d56565b5b828203905092915050565b6000819050919050565b600061571d615718615713846147f3565b6156f8565b6147f3565b9050919050565b600061572f82615702565b9050919050565b600061574182615724565b9050919050565b61575181615736565b82525050565b600060208201905061576c6000830184615748565b92915050565b600061577d82614a8a565b915061ffff82141561579257615791614d56565b5b600182019050919050565b7f616c72656164792068756d616e697a6564000000000000000000000000000000600082015250565b60006157d3601183614743565b91506157de8261579d565b602082019050919050565b60006020820190508181036000830152615802816157c6565b9050919050565b6000615814826147f3565b915061581f836147f3565b92508261582f5761582e614f5d565b5b828206905092915050565b7f536e697065727320616e6420626f7473206172652066726f776e65642075706f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000615896602183614743565b91506158a18261583a565b604082019050919050565b600060208201905081810360008301526158c581615889565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000615902601183614743565b915061590d826158cc565b602082019050919050565b60006020820190508181036000830152615931816158f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006159bb6159b66159b184615996565b6156f8565b614851565b9050919050565b6159cb816159a0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615a0681614813565b82525050565b6000615a1883836159fd565b60208301905092915050565b6000602082019050919050565b6000615a3c826159d1565b615a4681856159dc565b9350615a51836159ed565b8060005b83811015615a82578151615a698882615a0c565b9750615a7483615a24565b925050600181019050615a55565b5085935050505092915050565b600060a082019050615aa4600083018861492a565b615ab160208301876159c2565b8181036040830152615ac38186615a31565b9050615ad26060830185614b58565b615adf608083018461492a565b9695505050505050565b600060c082019050615afe6000830189614b58565b615b0b602083018861492a565b615b1860408301876159c2565b615b2560608301866159c2565b615b326080830185614b58565b615b3f60a083018461492a565b979650505050505050565b600081519050615b598161485b565b92915050565b600080600060608486031215615b7857615b77614690565b5b6000615b8686828701615b4a565b9350506020615b9786828701615b4a565b9250506040615ba886828701615b4a565b9150509250925092565b7f4c50206164647265737320686173206e6f74206265656e207365740000000000600082015250565b6000615be8601b83614743565b9150615bf382615bb2565b602082019050919050565b60006020820190508181036000830152615c1781615bdb565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615c54601b83614743565b9150615c5f82615c1e565b602082019050919050565b60006020820190508181036000830152615c8381615c47565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615ce6602183614743565b9150615cf182615c8a565b604082019050919050565b60006020820190508181036000830152615d1581615cd9565b905091905056fea264697066735822122074584ab602c4af83cc58a4db5f06f09ca766311194825316b45eaef8bd9851a264736f6c63430008090033000000000000000000000000000000000000000000000000000000002305e55c0000000000000000000000000000000000000000000000000000000005a81b77

Deployed Bytecode

0x6080604052600436106102125760003560e01c8063715018a611610118578063c9567bf9116100a0578063e79d41601161006f578063e79d41601461071f578063f2fde38b1461074a578063f32383e914610773578063fd9d00001461078a578063ffb54a99146107c757610219565b8063c9567bf91461068b578063d0e1f6e7146106a2578063d9f0b370146106b9578063dd62ed3e146106e257610219565b80639fda0581116100e75780639fda0581146105ba578063a9059cbb146105e3578063aa4bde2814610620578063b14218031461064b578063bcdb446b1461067457610219565b8063715018a614610522578063893d20e8146105395780638c0b5e221461056457806395d89b411461058f57610219565b80632d7edf7d1161019b5780635524a7381161016a5780635524a7381461044157806360a1f3931461046a57806362d79328146104935780636969c1a4146104bc57806370a08231146104e557610219565b80632d7edf7d146103ad578063313ce567146103d657806331b14d71146104015780634cdc8da41461042a57610219565b806310bf6029116101e257806310bf6029146102ec57806318160ddd146103035780631cbbe3e41461032e57806323b872dd14610345578063268f72dd1461038257610219565b8062fffc9d1461021e57806306fdde0314610247578063095ea7b3146102725780630f3a325f146102af57610219565b3661021957005b600080fd5b34801561022a57600080fd5b50610245600480360381019061024091906146d1565b6107f2565b005b34801561025357600080fd5b5061025c610914565b60405161026991906147d1565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190614887565b610951565b6040516102a691906148e2565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d191906148fd565b610ab4565b6040516102e391906148e2565b60405180910390f35b3480156102f857600080fd5b50610301610b0f565b005b34801561030f57600080fd5b50610318610bcb565b6040516103259190614939565b60405180910390f35b34801561033a57600080fd5b50610343610bf0565b005b34801561035157600080fd5b5061036c60048036038101906103679190614954565b610c88565b60405161037991906148e2565b60405180910390f35b34801561038e57600080fd5b50610397610ecf565b6040516103a491906148e2565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906149a7565b610ee2565b005b3480156103e257600080fd5b506103eb610f8d565b6040516103f891906149f0565b60405180910390f35b34801561040d57600080fd5b50610428600480360381019061042391906148fd565b610f96565b005b34801561043657600080fd5b5061043f611081565b005b34801561044d57600080fd5b5061046860048036038101906104639190614a37565b611275565b005b34801561047657600080fd5b50610491600480360381019061048c9190614ac4565b6113f5565b005b34801561049f57600080fd5b506104ba60048036038101906104b591906148fd565b611568565b005b3480156104c857600080fd5b506104e360048036038101906104de9190614b2b565b611653565b005b3480156104f157600080fd5b5061050c600480360381019061050791906148fd565b611cf0565b6040516105199190614939565b60405180910390f35b34801561052e57600080fd5b50610537611d39565b005b34801561054557600080fd5b5061054e611e42565b60405161055b9190614b67565b60405180910390f35b34801561057057600080fd5b50610579611e6b565b6040516105869190614939565b60405180910390f35b34801561059b57600080fd5b506105a4611e71565b6040516105b191906147d1565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190614b82565b611eae565b005b3480156105ef57600080fd5b5061060a60048036038101906106059190614887565b61210e565b60405161061791906148e2565b60405180910390f35b34801561062c57600080fd5b5061063561216a565b6040516106429190614939565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190614bd5565b612170565b005b34801561068057600080fd5b5061068961231a565b005b34801561069757600080fd5b506106a0612461565b005b3480156106ae57600080fd5b506106b76124f9565b005b3480156106c557600080fd5b506106e060048036038101906106db91906148fd565b61269c565b005b3480156106ee57600080fd5b5061070960048036038101906107049190614c15565b612a17565b6040516107169190614939565b60405180910390f35b34801561072b57600080fd5b50610734612a9e565b6040516107419190614c64565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190614cbd565b612ab2565b005b34801561077f57600080fd5b50610788612bba565b005b34801561079657600080fd5b506107b160048036038101906107ac91906148fd565b612c54565b6040516107be9190614939565b60405180910390f35b3480156107d357600080fd5b506107dc612c9d565b6040516107e991906148e2565b60405180910390f35b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087990614d36565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61089e9190614eb8565b64e8d4a510006108ae9190614f03565b6108b89190614f03565b6108c29190614f8c565b6007819055508063ffffffff168263ffffffff166009600a6108e49190614eb8565b64e8d4a510006108f49190614f03565b6108fe9190614f03565b6109089190614f8c565b60088190555050505050565b60606040518060400160405280600581526020017f5052494e54000000000000000000000000000000000000000000000000000000815250905090565b600043600f541180156109b4575060001515601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109c4576109c33343612cb0565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610aa29190614939565b60405180910390a36001905092915050565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b055760019050610b0a565b600090505b919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690614d36565b60405180910390fd5b600460019054906101000a900460ff1615600460016101000a81548160ff021916908315150217905550565b60006009600a610bdb9190614eb8565b64e8d4a51000610beb9190614f03565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c759061502f565b60405180910390fd5b610c86612dd8565b565b6000610c92612e32565b610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc89061509b565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ebb57610e3a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ebf9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ec6848484612f23565b90509392505050565b600460019054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990614d36565b60405180910390fd5b8063ffffffff1642610f8491906150bb565b60128190555050565b60006009905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d90614d36565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061112a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111825750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111da5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121090614d36565b60405180910390fd5b600061122430611cf0565b905060008111611269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112609061515d565b60405180910390fd5b61127281613588565b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc90614d36565b60405180910390fd5b600c60179054906101000a900460ff1660ff168360ff161115801561133f5750600c60189054906101000a900460ff1660ff168260ff1611155b80156113605750600c60199054906101000a900460ff1660ff168160ff1611155b61139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906151c9565b60405180910390fd5b82600c60176101000a81548160ff021916908360ff16021790555081600c60186101000a81548160ff021916908360ff16021790555080600c60196101000a81548160ff021916908360ff160217905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90614d36565b60405180910390fd5b6103e88183858761149691906151e9565b6114a091906151e9565b6114aa91906151e9565b61ffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e59061526d565b60405180910390fd5b83600c601a6101000a81548161ffff021916908361ffff16021790555082600c601c6101000a81548161ffff021916908361ffff16021790555081600c601e6101000a81548161ffff021916908361ffff16021790555080600d60006101000a81548161ffff021916908361ffff16021790555050505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef90614d36565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d89061502f565b60405180910390fd5b600460009054906101000a900460ff1615611731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611728906152d9565b60405180910390fd5b60008111611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90615345565b60405180910390fd5b6000479050818110156117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b3906153b1565b60405180910390fd5b60006117c730611cf0565b90506000811161180c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118039061541d565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561187457600080fd5b505afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190615452565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561193057600080fd5b505afa158015611944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119689190615452565b6040518363ffffffff1660e01b815260040161198592919061547f565b602060405180830381600087803b15801561199f57600080fd5b505af11580156119b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d79190615452565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611cd9816137b6565b611ce381846139a0565b611ceb613a82565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe9061502f565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051611e389190614b67565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600581526020017f5052494e54000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3590614d36565b60405180910390fd5b82601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000612118612e32565b612157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214e906154f4565b60405180910390fd5b612162338484612f23565b905092915050565b60065481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f790614d36565b60405180910390fd5b60006103e88361ffff166009600a6122189190614eb8565b64e8d4a510006122289190614f03565b6122329190614f03565b61223c9190614f8c565b9050600554811015612283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227a90615560565b60405180910390fd5b8060058190555060006103e88361ffff166009600a6122a29190614eb8565b64e8d4a510006122b29190614f03565b6122bc9190614f03565b6122c69190614f8c565b905060065481101561230d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612304906155cc565b60405180910390fd5b8060068190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f9061502f565b60405180910390fd5b600460009054906101000a900460ff16156123f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ef906152d9565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561245e573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e69061502f565b60405180910390fd5b6124f7613a82565b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806125a25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806125fa5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126525750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268890614d36565b60405180910390fd5b61269a47613c0b565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461272a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127219061502f565b60405180910390fd5b6001601560146101000a81548160ff0219169083151502179055506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156127c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bf90615638565b60405180910390fd5b60006127d382611cf0565b905060008111612818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280f906156a4565b60405180910390fd5b61286a81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e7990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128ff81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161299f9190614939565b60405180910390a3600060016002836129b89190614f8c565b6129c291906156c4565b905060004790506129d282613588565b600081476129e091906156c4565b90506129eb836137b6565b6129f583826139a0565b505050506000601560146101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b379061502f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612baf9190615757565b60405180910390a150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4190614d36565b60405180910390fd5b612c52613f21565b565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900460ff1681565b60001515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612d4f57506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612dd45780601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c601481819054906101000a900461ffff1680929190612db890615772565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b43600f541180612dea57506000600f54145b612e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e20906157e9565b60405180910390fd5b43600f81905550565b6000806000905060011515600460009054906101000a900460ff1615151415612e5e5760019050612eb8565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612eb757600190505b5b8091505090565b6000838311158290612f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efe91906147d1565b60405180910390fd5b5060008385612f1691906156c4565b9050809150509392505050565b600043600f54111561303c57600060189054906101000a900463ffffffff1663ffffffff16600060149054906101000a900463ffffffff1663ffffffff1684612f6c9190615809565b73ffffffffffffffffffffffffffffffffffffffff161415612f9557612f90612dd8565b613037565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612fec57612fe78343612cb0565b613036565b61303583601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb0565b5b5b6130ce565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146130cd576130cc83601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb0565b5b5b60011515600460009054906101000a900460ff16151514801561313157506000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b801561317b575043601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156131bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131b2906158ac565b60405180910390fd5b60001515601560149054906101000a900460ff16151514801561322b5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561323957613238613fa1565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156132a157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156132f0576132b0838361412b565b6132ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e690615918565b60405180910390fd5b5b60006132fd858585614227565b905060006133148285613e7990919063ffffffff16565b905061339f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ebf9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156134815761343d82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6134d381600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec390919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516135739190614939565b60405180910390a36001925050509392505050565b613591816137b6565b6000600267ffffffffffffffff8111156135ae576135ad615938565b5b6040519080825280602002602001820160405280156135dc5781602001602082028036833780820191505090505b50905030816000815181106135f4576135f3615967565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561369657600080fd5b505afa1580156136aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ce9190615452565b816001815181106136e2576136e1615967565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613780959493929190615a8f565b600060405180830381600087803b15801561379a57600080fd5b505af11580156137ae573d6000803e3d6000fd5b505050505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561399d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516139949190614939565b60405180910390a35b50565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613a2996959493929190615ae9565b6060604051808303818588803b158015613a4257600080fd5b505af1158015613a56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613a7b9190615b5f565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b0b90615bfe565b60405180910390fd5b426012819055506001601254600e54613b2d91906150bb565b613b3791906156c4565b600e81905550600543613b4a9190614f03565b600f819055506103e86009600a613b619190614eb8565b64e8d4a51000613b719190614f03565b6005613b7d9190614f03565b613b879190614f8c565b6005819055506103e86009600a613b9e9190614eb8565b64e8d4a51000613bae9190614f03565b6005613bba9190614f03565b613bc49190614f8c565b600681905550613bd2613f21565b6019600c60186101000a81548160ff021916908360ff1602179055506001600460006101000a81548160ff021916908315150217905550565b6000600d60009054906101000a900461ffff16600c601e9054906101000a900461ffff16600c601c9054906101000a900461ffff16613c4a91906151e9565b613c5491906151e9565b90506000600c601c9054906101000a900461ffff1661ffff161115613d0b57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600c601c9054906101000a900461ffff1661ffff1685613cd49190614f03565b613cde9190614f8c565b9081150290604051600060405180830381858888f19350505050158015613d09573d6000803e3d6000fd5b505b6000600c601e9054906101000a900461ffff1661ffff161115613dc057601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600c601e9054906101000a900461ffff1661ffff1685613d899190614f03565b613d939190614f8c565b9081150290604051600060405180830381858888f19350505050158015613dbe573d6000803e3d6000fd5b505b6000600d60009054906101000a900461ffff1661ffff161115613e7557601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d60009054906101000a900461ffff1661ffff1685613e3e9190614f03565b613e489190614f8c565b9081150290604051600060405180830381858888f19350505050158015613e73573d6000803e3d6000fd5b505b5050565b6000613ebb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ebf565b905092915050565b6000808284613ed291906150bb565b905083811015613f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f0e90615c6a565b60405180910390fd5b8091505092915050565b600c60169054906101000a900460ff16600c60176101000a81548160ff021916908360ff160217905550600c60169054906101000a900460ff16600c60186101000a81548160ff021916908360ff160217905550600c60169054906101000a900460ff16600c60196101000a81548160ff021916908360ff160217905550565b6001601560146101000a81548160ff0219169083151502179055506000613fc730611cf0565b90506007548110158015613fee575060011515600460009054906101000a900460ff161515145b801561400d575060001515600460019054906101000a900460ff161515145b1561410d5760085481106140215760085490505b600060026103e8600c601a9054906101000a900461ffff1661ffff16846140489190614f03565b6140529190614f8c565b61405c9190614f8c565b90506000818361406c91906156c4565b9050600047905061407c82613588565b6000814761408a91906156c4565b90506000600c601a9054906101000a900461ffff1661ffff1611156140ef5760006103e8600c601a9054906101000a900461ffff1661ffff16836140ce9190614f03565b6140d89190614f8c565b90506140e3856137b6565b6140ed85826139a0565b505b600047905060008111156141075761410681613c0b565b5b50505050505b506000601560146101000a81548160ff021916908315150217905550565b6000806001905060011515600460009054906101000a900460ff161515141561421d57600554831115614161576000905061421c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015614211575060065461420f84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ec390919063ffffffff16565b115b1561421b57600090505b5b5b8091505092915050565b60008060011515600460009054906101000a900460ff16151514801561424e5750600e5442105b156142815761427a606461426c60628661456890919063ffffffff16565b6145e390919063ffffffff16565b905061455d565b60011515600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480614330575060011515600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8061434e575060001515600460009054906101000a900460ff161515145b8061436c575060011515600460019054906101000a900460ff161515145b1561437a576000905061455c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156143d8575042601254115b156143e6576000905061455b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561444557504260125411155b15614489576144826064614474600c60179054906101000a900460ff1660ff168661456890919063ffffffff16565b6145e390919063ffffffff16565b905061455a565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561451e576145176064614509600c60189054906101000a900460ff1660ff168661456890919063ffffffff16565b6145e390919063ffffffff16565b9050614559565b6145566064614548600c60199054906101000a900460ff1660ff168661456890919063ffffffff16565b6145e390919063ffffffff16565b90505b5b5b5b5b809150509392505050565b60008083141561457b57600090506145dd565b600082846145899190614f03565b90508284826145989190614f8c565b146145d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016145cf90615cfc565b60405180910390fd5b809150505b92915050565b600061462583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061462d565b905092915050565b60008083118290614674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161466b91906147d1565b60405180910390fd5b50600083856146839190614f8c565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b6146ae81614695565b81146146b957600080fd5b50565b6000813590506146cb816146a5565b92915050565b600080600080608085870312156146eb576146ea614690565b5b60006146f9878288016146bc565b945050602061470a878288016146bc565b935050604061471b878288016146bc565b925050606061472c878288016146bc565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b83811015614772578082015181840152602081019050614757565b83811115614781576000848401525b50505050565b6000601f19601f8301169050919050565b60006147a382614738565b6147ad8185614743565b93506147bd818560208601614754565b6147c681614787565b840191505092915050565b600060208201905081810360008301526147eb8184614798565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061481e826147f3565b9050919050565b61482e81614813565b811461483957600080fd5b50565b60008135905061484b81614825565b92915050565b6000819050919050565b61486481614851565b811461486f57600080fd5b50565b6000813590506148818161485b565b92915050565b6000806040838503121561489e5761489d614690565b5b60006148ac8582860161483c565b92505060206148bd85828601614872565b9150509250929050565b60008115159050919050565b6148dc816148c7565b82525050565b60006020820190506148f760008301846148d3565b92915050565b60006020828403121561491357614912614690565b5b60006149218482850161483c565b91505092915050565b61493381614851565b82525050565b600060208201905061494e600083018461492a565b92915050565b60008060006060848603121561496d5761496c614690565b5b600061497b8682870161483c565b935050602061498c8682870161483c565b925050604061499d86828701614872565b9150509250925092565b6000602082840312156149bd576149bc614690565b5b60006149cb848285016146bc565b91505092915050565b600060ff82169050919050565b6149ea816149d4565b82525050565b6000602082019050614a0560008301846149e1565b92915050565b614a14816149d4565b8114614a1f57600080fd5b50565b600081359050614a3181614a0b565b92915050565b600080600060608486031215614a5057614a4f614690565b5b6000614a5e86828701614a22565b9350506020614a6f86828701614a22565b9250506040614a8086828701614a22565b9150509250925092565b600061ffff82169050919050565b614aa181614a8a565b8114614aac57600080fd5b50565b600081359050614abe81614a98565b92915050565b60008060008060808587031215614ade57614add614690565b5b6000614aec87828801614aaf565b9450506020614afd87828801614aaf565b9350506040614b0e87828801614aaf565b9250506060614b1f87828801614aaf565b91505092959194509250565b600060208284031215614b4157614b40614690565b5b6000614b4f84828501614872565b91505092915050565b614b6181614813565b82525050565b6000602082019050614b7c6000830184614b58565b92915050565b600080600060608486031215614b9b57614b9a614690565b5b6000614ba98682870161483c565b9350506020614bba8682870161483c565b9250506040614bcb8682870161483c565b9150509250925092565b60008060408385031215614bec57614beb614690565b5b6000614bfa85828601614aaf565b9250506020614c0b85828601614aaf565b9150509250929050565b60008060408385031215614c2c57614c2b614690565b5b6000614c3a8582860161483c565b9250506020614c4b8582860161483c565b9150509250929050565b614c5e81614a8a565b82525050565b6000602082019050614c796000830184614c55565b92915050565b6000614c8a826147f3565b9050919050565b614c9a81614c7f565b8114614ca557600080fd5b50565b600081359050614cb781614c91565b92915050565b600060208284031215614cd357614cd2614690565b5b6000614ce184828501614ca8565b91505092915050565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000614d20600e83614743565b9150614d2b82614cea565b602082019050919050565b60006020820190508181036000830152614d4f81614d13565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614ddc57808604811115614db857614db7614d56565b5b6001851615614dc75780820291505b8081029050614dd585614d85565b9450614d9c565b94509492505050565b600082614df55760019050614eb1565b81614e035760009050614eb1565b8160018114614e195760028114614e2357614e52565b6001915050614eb1565b60ff841115614e3557614e34614d56565b5b8360020a915084821115614e4c57614e4b614d56565b5b50614eb1565b5060208310610133831016604e8410600b8410161715614e875782820a905083811115614e8257614e81614d56565b5b614eb1565b614e948484846001614d92565b92509050818404811115614eab57614eaa614d56565b5b81810290505b9392505050565b6000614ec382614851565b9150614ece836149d4565b9250614efb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614de5565b905092915050565b6000614f0e82614851565b9150614f1983614851565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f5257614f51614d56565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f9782614851565b9150614fa283614851565b925082614fb257614fb1614f5d565b5b828204905092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000615019602a83614743565b915061502482614fbd565b604082019050919050565b600060208201905081810360008301526150488161500c565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000615085601083614743565b91506150908261504f565b602082019050919050565b600060208201905081810360008301526150b481615078565b9050919050565b60006150c682614851565b91506150d183614851565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561510657615105614d56565b5b828201905092915050565b7f4e6f2074617820746f6b656e7320746f20737761700000000000000000000000600082015250565b6000615147601583614743565b915061515282615111565b602082019050919050565b600060208201905081810360008301526151768161513a565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006151b3601583614743565b91506151be8261517d565b602082019050919050565b600060208201905081810360008301526151e2816151a6565b9050919050565b60006151f482614a8a565b91506151ff83614a8a565b92508261ffff0382111561521657615215614d56565b5b828201905092915050565b7f5468652073756d206d7573742062652031303030000000000000000000000000600082015250565b6000615257601483614743565b915061526282615221565b602082019050919050565b600060208201905081810360008301526152868161524a565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006152c3601483614743565b91506152ce8261528d565b602082019050919050565b600060208201905081810360008301526152f2816152b6565b9050919050565b7f657468206c69717569646974792063616e6e6f74206265207a65726f00000000600082015250565b600061532f601c83614743565b915061533a826152f9565b602082019050919050565b6000602082019050818103600083015261535e81615322565b9050919050565b7f6e6f7420656e6f7567682065746820617661696c61626c650000000000000000600082015250565b600061539b601883614743565b91506153a682615365565b602082019050919050565b600060208201905081810360008301526153ca8161538e565b9050919050565b7f6e6f20746f6b656e7320666f72206c6971756964697479000000000000000000600082015250565b6000615407601783614743565b9150615412826153d1565b602082019050919050565b60006020820190508181036000830152615436816153fa565b9050919050565b60008151905061544c81614825565b92915050565b60006020828403121561546857615467614690565b5b60006154768482850161543d565b91505092915050565b60006040820190506154946000830185614b58565b6154a16020830184614b58565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006154de601083614743565b91506154e9826154a8565b602082019050919050565b6000602082019050818103600083015261550d816154d1565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b600061554a601083614743565b915061555582615514565b602082019050919050565b600060208201905081810360008301526155798161553d565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006155b6601483614743565b91506155c182615580565b602082019050919050565b600060208201905081810360008301526155e5816155a9565b9050919050565b7f77616c6c6574206973206e6f74206120736e6970657200000000000000000000600082015250565b6000615622601683614743565b915061562d826155ec565b602082019050919050565b6000602082019050818103600083015261565181615615565b9050919050565b7f77616c6c657420686173206e6f20746f6b656e73000000000000000000000000600082015250565b600061568e601483614743565b915061569982615658565b602082019050919050565b600060208201905081810360008301526156bd81615681565b9050919050565b60006156cf82614851565b91506156da83614851565b9250828210156156ed576156ec614d56565b5b828203905092915050565b6000819050919050565b600061571d615718615713846147f3565b6156f8565b6147f3565b9050919050565b600061572f82615702565b9050919050565b600061574182615724565b9050919050565b61575181615736565b82525050565b600060208201905061576c6000830184615748565b92915050565b600061577d82614a8a565b915061ffff82141561579257615791614d56565b5b600182019050919050565b7f616c72656164792068756d616e697a6564000000000000000000000000000000600082015250565b60006157d3601183614743565b91506157de8261579d565b602082019050919050565b60006020820190508181036000830152615802816157c6565b9050919050565b6000615814826147f3565b915061581f836147f3565b92508261582f5761582e614f5d565b5b828206905092915050565b7f536e697065727320616e6420626f7473206172652066726f776e65642075706f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000615896602183614743565b91506158a18261583a565b604082019050919050565b600060208201905081810360008301526158c581615889565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000615902601183614743565b915061590d826158cc565b602082019050919050565b60006020820190508181036000830152615931816158f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006159bb6159b66159b184615996565b6156f8565b614851565b9050919050565b6159cb816159a0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615a0681614813565b82525050565b6000615a1883836159fd565b60208301905092915050565b6000602082019050919050565b6000615a3c826159d1565b615a4681856159dc565b9350615a51836159ed565b8060005b83811015615a82578151615a698882615a0c565b9750615a7483615a24565b925050600181019050615a55565b5085935050505092915050565b600060a082019050615aa4600083018861492a565b615ab160208301876159c2565b8181036040830152615ac38186615a31565b9050615ad26060830185614b58565b615adf608083018461492a565b9695505050505050565b600060c082019050615afe6000830189614b58565b615b0b602083018861492a565b615b1860408301876159c2565b615b2560608301866159c2565b615b326080830185614b58565b615b3f60a083018461492a565b979650505050505050565b600081519050615b598161485b565b92915050565b600080600060608486031215615b7857615b77614690565b5b6000615b8686828701615b4a565b9350506020615b9786828701615b4a565b9250506040615ba886828701615b4a565b9150509250925092565b7f4c50206164647265737320686173206e6f74206265656e207365740000000000600082015250565b6000615be8601b83614743565b9150615bf382615bb2565b602082019050919050565b60006020820190508181036000830152615c1781615bdb565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615c54601b83614743565b9150615c5f82615c1e565b602082019050919050565b60006020820190508181036000830152615c8381615c47565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615ce6602183614743565b9150615cf182615c8a565b604082019050919050565b60006020820190508181036000830152615d1581615cd9565b905091905056fea264697066735822122074584ab602c4af83cc58a4db5f06f09ca766311194825316b45eaef8bd9851a264736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000002305e55c0000000000000000000000000000000000000000000000000000000005a81b77

-----Decoded View---------------
Arg [0] : smd (uint32): 587588956
Arg [1] : smr (uint32): 94903159

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000002305e55c
Arg [1] : 0000000000000000000000000000000000000000000000000000000005a81b77


Deployed Bytecode Sourcemap

3490:15761:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7842:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6336:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10381:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8369:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18976:120;;;;;;;;;;;;;:::i;:::-;;6075:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12243:65;;;;;;;;;;;;;:::i;:::-;;12475:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3955:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9302:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6166:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8628:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18405:339;;;;;;;;;;;;;:::i;:::-;;8937:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9487:458;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8780:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6746:875;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6500:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2687:110;;;;;;;;;;;;;:::i;:::-;;6419:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3983:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6249:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9957:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10703:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4011:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10918:507;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19101:147;;;;;;;;;;;;;:::i;:::-;;11433:71;;;;;;;;;;;;;:::i;:::-;;18749:222;;;;;;;;;;;;;:::i;:::-;;14110:752;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6608:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4236:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2554:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8126:108;;;;;;;;;;;;;:::i;:::-;;8518:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3925:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7842:279;7976:11;;;;;;;;;;;7961:26;;:10;:26;;;7953:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;8051:10;8025:36;;8040:8;8025:23;;3722:1;3675:2;:15;;;;:::i;:::-;3659:12;:32;;;;:::i;:::-;8025:23;;;;:::i;:::-;:36;;;;:::i;:::-;8011:11;:50;;;;8106:10;8080:36;;8095:8;8080:23;;3722:1;3675:2;:15;;;;:::i;:::-;3659:12;:32;;;;:::i;:::-;8080:23;;;;:::i;:::-;:36;;;;:::i;:::-;8066:11;:50;;;;7842:279;;;;:::o;6336:80::-;6384:13;6408:5;;;;;;;;;;;;;;;;;6401:12;;6336:80;:::o;10381:317::-;10456:4;10485:12;10471:11;;:26;:61;;;;;10527:5;10501:31;;:10;:22;10512:10;10501:22;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;10471:61;10467:116;;;10540:37;10552:10;10564:12;10540:11;:37::i;:::-;10467:116;10624:6;10589:11;:23;10601:10;10589:23;;;;;;;;;;;;;;;:32;10613:7;10589:32;;;;;;;;;;;;;;;:41;;;;10661:7;10640:37;;10649:10;10640:37;;;10670:6;10640:37;;;;;;:::i;:::-;;;;;;;;10689:4;10682:11;;10381:317;;;;:::o;8369:144::-;8425:4;8464:1;8440:12;:20;8453:6;8440:20;;;;;;;;;;;;;;;;:25;8436:73;;8476:4;8469:11;;;;8436:73;8501:5;8494:12;;8369:144;;;;:::o;18976:120::-;19034:11;;;;;;;;;;;19019:26;;:10;:26;;;19011:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;19082:9;;;;;;;;;;;19081:10;19069:9;;:22;;;;;;;;;;;;;;;;;;18976:120::o;6075:88::-;6130:7;3722:1;3675:2;:15;;;;:::i;:::-;3659:12;:32;;;;:::i;:::-;6141:19;;6075:88;:::o;12243:65::-;2493:5;;;;;;;;;;2479:19;;:10;:19;;;2471:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12292:11:::1;:9;:11::i;:::-;12243:65::o:0;12475:397::-;12575:4;12600:19;:17;:19::i;:::-;12592:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12683:17;12648:11;:19;12660:6;12648:19;;;;;;;;;;;;;;;:31;12668:10;12648:31;;;;;;;;;;;;;;;;:52;12645:171;;12741:69;12777:6;12741:69;;;;;;;;;;;;;;;;;:11;:19;12753:6;12741:19;;;;;;;;;;;;;;;:31;12761:10;12741:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;12707:11;:19;12719:6;12707:19;;;;;;;;;;;;;;;:31;12727:10;12707:31;;;;;;;;;;;;;;;:103;;;;12645:171;12827:40;12841:6;12849:9;12860:6;12827:13;:40::i;:::-;12820:47;;12475:397;;;;;:::o;3955:21::-;;;;;;;;;;;;;:::o;9302:173::-;9387:11;;;;;;;;;;;9372:26;;:10;:26;;;9364:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9455:15;9437:33;;:15;:33;;;;:::i;:::-;9422:12;:48;;;;9302:173;:::o;6166:80::-;6218:5;3722:1;6227:16;;6166:80;:::o;8628:149::-;8704:11;;;;;;;;;;;8690:25;;:10;:25;;;8682:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;8768:4;8739:16;:26;8757:6;8739:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8628:149;:::o;18405:339::-;18460:11;;;;;;;;;;;18446:25;;:10;:25;;;:54;;;;18489:11;;;;;;;;;;;18475:25;;:10;:25;;;18446:54;:83;;;;18518:11;;;;;;;;;;;18504:25;;:10;:25;;;18446:83;:112;;;;18547:11;;;;;;;;;;;18533:25;;:10;:25;;;18446:112;18438:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;18583:23;18609:24;18627:4;18609:9;:24::i;:::-;18583:50;;18670:1;18652:15;:19;18644:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;18702:37;18723:15;18702:20;:37::i;:::-;18433:311;18405:339::o;8937:360::-;9050:11;;;;;;;;;;;9035:26;;:10;:26;;;9027:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9112:11;;;;;;;;;;;9099:24;;:9;:24;;;;:54;;;;;9141:12;;;;;;;;;;;9127:26;;:10;:26;;;;9099:54;:80;;;;;9169:10;;;;;;;;;;;9157:22;;:8;:22;;;;9099:80;9091:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;9224:9;9210:11;;:23;;;;;;;;;;;;;;;;;;9253:10;9238:12;;:25;;;;;;;;;;;;;;;;;;9281:8;9268:10;;:21;;;;;;;;;;;;;;;;;;8937:360;;;:::o;9487:458::-;9641:11;;;;;;;;;;;9627:25;;:10;:25;;;9619:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9754:4;9737:13;9721;9705;9690:12;:28;;;;:::i;:::-;:44;;;;:::i;:::-;:60;;;;:::i;:::-;:68;;;9682:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;9811:12;9795:13;;:28;;;;;;;;;;;;;;;;;;9848:13;9834:11;;:27;;;;;;;;;;;;;;;;;;9886:13;9872:11;;:27;;;;;;;;;;;;;;;;;;9924:13;9910:11;;:27;;;;;;;;;;;;;;;;;;9487:458;;;;:::o;8780:149::-;8855:11;;;;;;;;;;;8841:25;;:10;:25;;;8833:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;8919:5;8890:16;:26;8908:6;8890:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8780:149;:::o;6746:875::-;2493:5;;;;;;;;;;2479:19;;:10;:19;;;2471:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6817:11:::1;;;;;;;;;;;6816:12;6808:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6881:1;6866:12;:16;6858:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;6920:27;6950:21;6920:51;;7007:12;6984:19;:35;;6976:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7053:29;7085:24;7103:4;7085:9;:24::i;:::-;7053:56;;7146:1;7122:21;:25;7114:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7211:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7193:56;;;7258:4;7265:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7193:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7180:10;;:109;;;;;;;;;;;;;;;;;;7324:4;7296:10;:25;7315:4;7296:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;7353:4;7333:10;:17;7344:5:::0;::::1;;;;;;;;;;7333:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;7388:4;7362:10;:23;7373:11;;;;;;;;;;;7362:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;7423:4;7397:10;:23;7408:11;;;;;;;;;;;7397:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;7458:4;7432:10;:23;7443:11;;;;;;;;;;;7432:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;7492:4;7467:10;:22;7478:10;;;;;;;;;;;7467:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7503:37;7518:21;7503:14;:37::i;:::-;7545:50;7559:21;7582:12;7545:13;:50::i;:::-;7602:14;:12;:14::i;:::-;6803:818;;6746:875:::0;:::o;6500:105::-;6566:7;6584:9;:18;6594:7;6584:18;;;;;;;;;;;;;;;;6577:25;;6500:105;;;:::o;2687:110::-;2493:5;;;;;;;;;;2479:19;;:10;:19;;;2471:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2753:1:::1;2737:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2762:32;2791:1;2762:32;;;;;;:::i;:::-;;;;;;;;2687:110::o:0;6419:78::-;6471:7;6489:5;;;;;;;;;;;6482:12;;6419:78;:::o;3983:26::-;;;;:::o;6249:84::-;6299:13;6323:7;;;;;;;;;;;;;;;;;6316:14;;6249:84;:::o;9957:419::-;10080:11;;;;;;;;;;;10065:26;;:10;:26;;;10057:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;10143:11;10121;;:34;;;;;;;;;;;;;;;;;;10188:11;10166;;:34;;;;;;;;;;;;;;;;;;10233:11;10211;;:34;;;;;;;;;;;;;;;;;;10282:4;10250:16;:29;10267:11;10250:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;10323:4;10291:16;:29;10308:11;10291:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;10364:4;10332:16;:29;10349:11;10332:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9957:419;;;:::o;10703:203::-;10783:4;10805:19;:17;:19::i;:::-;10797:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10857:44;10871:10;10883:9;10894:6;10857:13;:44::i;:::-;10850:51;;10703:203;;;;:::o;4011:30::-;;;;:::o;10918:507::-;11031:13;;;;;;;;;;;11016:28;;:10;:28;;;11008:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;11074:16;11126:4;11108:15;11093:30;;3722:1;3675:2;:15;;;;:::i;:::-;3659:12;:32;;;;:::i;:::-;11093:30;;;;:::i;:::-;:37;;;;:::i;:::-;11074:56;;11161:11;;11149:8;:23;;11141:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11218:8;11204:11;:22;;;;11237:20;11297:4;11275:19;11260:34;;3722:1;3675:2;:15;;;;:::i;:::-;3659:12;:32;;;;:::i;:::-;11260:34;;;;:::i;:::-;:41;;;;:::i;:::-;11237:64;;11336:15;;11320:12;:31;;11312:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11405:12;11387:15;:30;;;;11003:422;;10918:507;;:::o;19101:147::-;2493:5;;;;;;;;;;2479:19;;:10;:19;;;2471:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19156:11:::1;;;;;;;;;;;19155:12;19147:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;19205:5;::::0;::::1;;;;;;;;19197:23;;:46;19221:21;19197:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19101:147::o:0;11433:71::-;2493:5;;;;;;;;;;2479:19;;:10;:19;;;2471:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11485:14:::1;:12;:14::i;:::-;11433:71::o:0;18749:222::-;18805:11;;;;;;;;;;;18791:25;;:10;:25;;;:54;;;;18834:11;;;;;;;;;;;18820:25;;:10;:25;;;18791:54;:83;;;;18863:11;;;;;;;;;;;18849:25;;:10;:25;;;18791:83;:112;;;;18892:11;;;;;;;;;;;18878:25;;:10;:25;;;18791:112;18783:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;18928:37;18943:21;18928:14;:37::i;:::-;18749:222::o;14110:752::-;2493:5;;;;;;;;;;2479:19;;:10;:19;;;2471:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5255:4:::1;5242:10;;:17;;;;;;;;;;;;;;;;;;14220:1:::2;14196:12;:20;14209:6;14196:20;;;;;;;;;;;;;;;;:25;;14188:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14256:21;14280:17;14290:6;14280:9;:17::i;:::-;14256:41;;14329:1;14313:13;:17;14305:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;14385:36;14407:13;14385:9;:17;14395:6;14385:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;14365:9;:17;14375:6;14365:17;;;;;;;;;;;;;;;:56;;;;14456:43;14485:13;14456:9;:24;14474:4;14456:24;;;;;;;;;;;;;;;;:28;;:43;;;;:::i;:::-;14429:9;:24;14447:4;14429:24;;;;;;;;;;;;;;;:70;;;;14534:4;14509:46;;14518:6;14509:46;;;14541:13;14509:46;;;;;;:::i;:::-;;;;;;;;14562:23;14606:1;14602;14588:13;:15;;;;:::i;:::-;:19;;;;:::i;:::-;14562:45;;14612:19;14634:21;14612:43;;14663:37;14684:15;14663:20;:37::i;:::-;14708:19;14754:11;14730:21;:35;;;;:::i;:::-;14708:57;;14773:31;14788:15;14773:14;:31::i;:::-;14809:43;14823:15;14840:11;14809:13;:43::i;:::-;14180:682;;;;5277:5:::1;5264:10;;:18;;;;;;;;;;;;;;;;;;14110:752:::0;:::o;6608:133::-;6692:7;6710:11;:19;6722:6;6710:19;;;;;;;;;;;;;;;:28;6730:7;6710:28;;;;;;;;;;;;;;;;6703:35;;6608:133;;;;:::o;4236:31::-;;;;;;;;;;;;;:::o;2554:130::-;2493:5;;;;;;;;;;2479:19;;:10;:19;;;2471:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2636:8:::1;2628:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;2651:30;2672:8;2651:30;;;;;;:::i;:::-;;;;;;;;2554:130:::0;:::o;8126:108::-;8183:11;;;;;;;;;;;8168:26;;:10;:26;;;8160:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;8218:11;:9;:11::i;:::-;8126:108::o;8518:105::-;8577:7;8598:12;:20;8611:6;8598:20;;;;;;;;;;;;;;;;8591:27;;8518:105;;;:::o;3925:23::-;;;;;;;;;;;;;:::o;15805:212::-;15905:5;15883:27;;:10;:18;15894:6;15883:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;:56;;;;;15938:1;15914:12;:20;15927:6;15914:20;;;;;;;;;;;;;;;;:25;15883:56;15879:134;;;15971:13;15948:12;:20;15961:6;15948:20;;;;;;;;;;;;;;;:36;;;;15991:13;;:16;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;15879:134;15805:212;;:::o;12316:150::-;12376:12;12362:11;;:26;:46;;;;12407:1;12392:11;;:16;12362:46;12354:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12449:12;12435:11;:26;;;;12316:150::o;11988:247::-;12034:4;12050:16;12069:5;12050:24;;12104:4;12089:19;;:11;;;;;;;;;;;:19;;;12085:111;;;12126:4;12112:18;;12085:111;;;12166:5;;;;;;;;;;12153:18;;:9;:18;;;12149:47;;;12189:4;12175:18;;12149:47;12085:111;12216:11;12209:18;;;11988:247;:::o;570:158::-;656:7;680:1;675;:6;;683:12;667:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;698:9;714:1;710;:5;;;;:::i;:::-;698:17;;724:1;717:8;;;570:158;;;;;:::o;16022:1288::-;16114:4;16143:12;16129:11;;:26;16125:351;;;16206:4;;;;;;;;;;;16168:42;;16198:4;;;;;;;;;;;16168:34;;16184:9;16168:34;;;;:::i;:::-;:42;;;16163:209;;;16215:11;:9;:11::i;:::-;16163:209;;;16268:1;16244:12;:20;16257:6;16244:20;;;;;;;;;;;;;;;;:25;16239:133;;;16274:36;16286:9;16297:12;16274:11;:36::i;:::-;16239:133;;;16325:44;16337:9;16348:12;:20;16361:6;16348:20;;;;;;;;;;;;;;;;16325:11;:44::i;:::-;16239:133;16163:209;16125:351;;;16418:1;16394:12;:20;16407:6;16394:20;;;;;;;;;;;;;;;;:25;16389:82;;16424:44;16436:9;16447:12;:20;16460:6;16447:20;;;;;;;;;;;;;;;;16424:11;:44::i;:::-;16389:82;16125:351;16502:4;16487:19;;:11;;;;;;;;;;;:19;;;:48;;;;;16534:1;16510:12;:20;16523:6;16510:20;;;;;;;;;;;;;;;;:25;;16487:48;:87;;;;;16562:12;16539;:20;16552:6;16539:20;;;;;;;;;;;;;;;;:35;16487:87;16482:150;;;16583:43;;;;;;;;;;:::i;:::-;;;;;;;;16482:150;16662:5;16648:19;;:10;;;;;;;;;;;:19;;;:46;;;;;16684:10;;;;;;;;;;;16671:23;;:9;:23;;;16648:46;16644:90;;;16708:20;:18;:20::i;:::-;16644:90;16767:4;16749:23;;:6;:23;;;;:53;;;;;16797:4;16776:26;;:9;:26;;;;16749:53;16744:127;;;16815:31;16828:9;16839:6;16815:12;:31::i;:::-;16807:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16744:127;16878:18;16899:40;16913:6;16921:9;16932:6;16899:13;:40::i;:::-;16878:61;;16947:23;16973:22;16984:10;16973:6;:10;;:22;;;;:::i;:::-;16947:48;;17023:53;17045:6;17023:53;;;;;;;;;;;;;;;;;:9;:17;17033:6;17023:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17003:9;:17;17013:6;17003:17;;;;;;;;;;;;;;;:73;;;;17101:1;17088:10;:14;17084:92;;;17133:40;17162:10;17133:9;:24;17151:4;17133:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;17106:9;:24;17124:4;17106:24;;;;;;;;;;;;;;;:67;;;;17084:92;17203:41;17228:15;17203:9;:20;17213:9;17203:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;17180:9;:20;17190:9;17180:20;;;;;;;;;;;;;;;:64;;;;17271:9;17254:35;;17263:6;17254:35;;;17282:6;17254:35;;;;;;:::i;:::-;;;;;;;;17301:4;17294:11;;;;16022:1288;;;;;:::o;17617:359::-;17682:28;17697:12;17682:14;:28::i;:::-;17721:21;17759:1;17745:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17721:40;;17790:4;17772;17777:1;17772:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17816:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17806:4;17811:1;17806:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;17850:16;;;;;;;;;;;:67;;;17918:12;17931:1;17933:4;17946;17952:15;17850:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17677:299;17617:359;:::o;17315:297::-;17433:12;17379:11;:26;17399:4;17379:26;;;;;;;;;;;;;;;:51;5122:42;17379:51;;;;;;;;;;;;;;;;:66;17375:233;;;17507:17;17453:11;:26;17473:4;17453:26;;;;;;;;;;;;;;;:51;5122:42;17453:51;;;;;;;;;;;;;;;:71;;;;5122:42;17535:67;;17552:4;17535:67;;;17584:17;17535:67;;;;;;:::i;:::-;;;;;;;;17375:233;17315:297;:::o;7626:211::-;7708:16;;;;;;;;;;;:32;;;7748:13;7773:4;7780:12;7794:1;7797;7800:13;;;;;;;;;;;7815:15;7708:124;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7626:211;;:::o;11513:463::-;11587:1;11565:24;;:10;;;;;;;;;;;:24;;;;11557:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11647:15;11632:12;:30;;;;11702:1;11687:12;;11680:4;;:19;;;;:::i;:::-;:23;;;;:::i;:::-;11673:4;:30;;;;11743:1;11728:12;:16;;;;:::i;:::-;11714:11;:30;;;;11786:4;3722:1;3675:2;:15;;;;:::i;:::-;3659:12;:32;;;;:::i;:::-;11767:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;11749:11;:41;;;;11833:4;3722:1;3675:2;:15;;;;:::i;:::-;3659:12;:32;;;;:::i;:::-;11814:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;11796:15;:41;;;;11842:11;:9;:11::i;:::-;11873:2;11858:12;;:17;;;;;;;;;;;;;;;;;;11962:4;11948:11;;:18;;;;;;;;;;;;;;;;;;11513:463::o;17984:416::-;18041:21;18093:11;;;;;;;;;;;18079;;;;;;;;;;;18065;;;;;;;;;;;:25;;;;:::i;:::-;:39;;;;:::i;:::-;18041:63;;18133:1;18119:11;;;;;;;;;;;:15;;;18115:86;;;18138:11;;;;;;;;;;;:20;;:60;18183:14;18159:38;;18169:11;;;;;;;;;;;18159:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;18138:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18115:86;18229:1;18215:11;;;;;;;;;;;:15;;;18211:86;;;18234:11;;;;;;;;;;;:20;;:60;18279:14;18255:38;;18265:11;;;;;;;;;;;18255:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;18234:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18211:86;18325:1;18311:11;;;;;;;;;;;:15;;;18307:86;;;18330:11;;;;;;;;;;;:20;;:60;18375:14;18351:38;;18361:11;;;;;;;;;;;18351:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;18330:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18307:86;18033:367;17984:416;:::o;445:122::-;503:7;521:43;525:1;528;521:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;514:50;;445:122;;;;:::o;295:147::-;353:7;364:9;380:1;376;:5;;;;:::i;:::-;364:17;;396:1;391;:6;;383:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;438:1;431:8;;;295:147;;;;:::o;8239:125::-;8288:11;;;;;;;;;;;8274;;:25;;;;;;;;;;;;;;;;;;8319:11;;;;;;;;;;;8304:12;;:26;;;;;;;;;;;;;;;;;;8348:11;;;;;;;;;;;8335:10;;:24;;;;;;;;;;;;;;;;;;8239:125::o;14867:933::-;5255:4;5242:10;;:17;;;;;;;;;;;;;;;;;;14922:27:::1;14952:24;14970:4;14952:9;:24::i;:::-;14922:54;;15008:11;;14985:19;:34;;:57;;;;;15038:4;15023:19;;:11;;;;;;;;;;;:19;;;14985:57;:79;;;;;15059:5;15046:18;;:9;;;;;;;;;;;:18;;;14985:79;14981:815;;;15100:11;;15077:19;:34;15073:78;;15137:11;;15115:33;;15073:78;15156:20;15224:1;15217:4;15201:13;;;;;;;;;;;15179:35;;:19;:35;;;;:::i;:::-;:42;;;;:::i;:::-;:46;;;;:::i;:::-;15156:69;;15234:21;15280:12;15258:19;:34;;;;:::i;:::-;15234:58;;15301:19;15323:21;15301:43;;15353:35;15374:13;15353:20;:35::i;:::-;15397:19;15443:11;15419:21;:35;;;;:::i;:::-;15397:57;;15483:1;15467:13;;;;;;;;;;;:17;;;15463:192;;;15496:21;15550:4;15534:13;;;;;;;;;;;15520:27;;:11;:27;;;;:::i;:::-;:34;;;;:::i;:::-;15496:58;;15565:28;15580:12;15565:14;:28::i;:::-;15603:42;15617:12;15631:13;15603;:42::i;:::-;15486:169;15463:192;15663:27;15693:21;15663:51;;15748:1;15726:19;:23;15723:68;;;15753:35;15768:19;15753:14;:35::i;:::-;15723:68;15067:729;;;;;14981:815;14917:883;5277:5:::0;5264:10;;:18;;;;;;;;;;;;;;;;;;14867:933::o;12878:446::-;12966:4;12983:21;13007:4;12983:28;;13042:4;13027:19;;:11;;;;;;;;;;;:19;;;13022:261;;;13086:11;;13069:14;:28;13064:208;;;13121:5;13102:24;;13064:208;;;13166:10;;;;;;;;;;;13153:23;;:9;:23;;;;:87;;;;;13224:15;;13181:40;13206:14;13181:9;:20;13191:9;13181:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;:58;13153:87;13148:124;;;13264:5;13245:24;;13148:124;13064:208;13022:261;13300:16;13293:23;;;12878:446;;;;:::o;13332:770::-;13429:7;13449:17;13497:4;13482:19;;:11;;;;;;;;;;;:19;;;:45;;;;;13523:4;;13505:15;:22;13482:45;13477:597;;;13544:23;13563:3;13544:14;13555:2;13544:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13532:35;;13477:597;;;13611:4;13583:32;;:16;:24;13600:6;13583:24;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;:71;;;;13650:4;13619:35;;:16;:27;13636:9;13619:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;13583:71;:95;;;;13673:5;13658:20;;:11;;;;;;;;;;;:20;;;13583:95;:116;;;;13695:4;13682:17;;:9;;;;;;;;;;;:17;;;13583:116;13578:496;;;13715:1;13703:13;;13578:496;;;13743:10;;;;;;;;;;;13733:20;;:6;:20;;;:54;;;;;13772:15;13757:12;;:30;13733:54;13728:346;;;13803:1;13791:13;;13728:346;;;13831:10;;;;;;;;;;;13821:20;;:6;:20;;;:55;;;;;13861:15;13845:12;;:31;;13821:55;13816:258;;;13892:32;13920:3;13892:23;13903:11;;;;;;;;;;;13892:23;;:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;13880:44;;13816:258;;;13954:10;;;;;;;;;;;13941:23;;:9;:23;;;13936:138;;;13981:33;14010:3;13981:24;13992:12;;;;;;;;;;;13981:24;;:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;13969:45;;13936:138;;;14040:31;14067:3;14040:22;14051:10;;;;;;;;;;;14040:22;;:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;14028:43;;13936:138;13816:258;13728:346;13578:496;13477:597;14085:9;14078:16;;;13332:770;;;;;:::o;731:183::-;789:7;809:1;804;:6;800:25;;;821:1;814:8;;;;800:25;826:9;842:1;838;:5;;;;:::i;:::-;826:17;;862:1;857;853;:5;;;;:::i;:::-;:10;845:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;910:1;903:8;;;731:183;;;;;:::o;917:118::-;975:7;993:39;997:1;1000;993:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;986:46;;917:118;;;;:::o;1038:157::-;1124:7;1147:1;1143;:5;1150:12;1135:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1165:9;1181:1;1177;:5;;;;:::i;:::-;1165:17;;1191:1;1184:8;;;1038:157;;;;;:::o;88:117:1:-;197:1;194;187:12;334:93;370:7;410:10;403:5;399:22;388:33;;334:93;;;:::o;433:120::-;505:23;522:5;505:23;:::i;:::-;498:5;495:34;485:62;;543:1;540;533:12;485:62;433:120;:::o;559:137::-;604:5;642:6;629:20;620:29;;658:32;684:5;658:32;:::i;:::-;559:137;;;;:::o;702:757::-;784:6;792;800;808;857:3;845:9;836:7;832:23;828:33;825:120;;;864:79;;:::i;:::-;825:120;984:1;1009:52;1053:7;1044:6;1033:9;1029:22;1009:52;:::i;:::-;999:62;;955:116;1110:2;1136:52;1180:7;1171:6;1160:9;1156:22;1136:52;:::i;:::-;1126:62;;1081:117;1237:2;1263:52;1307:7;1298:6;1287:9;1283:22;1263:52;:::i;:::-;1253:62;;1208:117;1364:2;1390:52;1434:7;1425:6;1414:9;1410:22;1390:52;:::i;:::-;1380:62;;1335:117;702:757;;;;;;;:::o;1465:99::-;1517:6;1551:5;1545:12;1535:22;;1465:99;;;:::o;1570:169::-;1654:11;1688:6;1683:3;1676:19;1728:4;1723:3;1719:14;1704:29;;1570:169;;;;:::o;1745:307::-;1813:1;1823:113;1837:6;1834:1;1831:13;1823:113;;;1922:1;1917:3;1913:11;1907:18;1903:1;1898:3;1894:11;1887:39;1859:2;1856:1;1852:10;1847:15;;1823:113;;;1954:6;1951:1;1948:13;1945:101;;;2034:1;2025:6;2020:3;2016:16;2009:27;1945:101;1794:258;1745:307;;;:::o;2058:102::-;2099:6;2150:2;2146:7;2141:2;2134:5;2130:14;2126:28;2116:38;;2058:102;;;:::o;2166:364::-;2254:3;2282:39;2315:5;2282:39;:::i;:::-;2337:71;2401:6;2396:3;2337:71;:::i;:::-;2330:78;;2417:52;2462:6;2457:3;2450:4;2443:5;2439:16;2417:52;:::i;:::-;2494:29;2516:6;2494:29;:::i;:::-;2489:3;2485:39;2478:46;;2258:272;2166:364;;;;:::o;2536:313::-;2649:4;2687:2;2676:9;2672:18;2664:26;;2736:9;2730:4;2726:20;2722:1;2711:9;2707:17;2700:47;2764:78;2837:4;2828:6;2764:78;:::i;:::-;2756:86;;2536:313;;;;:::o;2855:126::-;2892:7;2932:42;2925:5;2921:54;2910:65;;2855:126;;;:::o;2987:96::-;3024:7;3053:24;3071:5;3053:24;:::i;:::-;3042:35;;2987:96;;;:::o;3089:122::-;3162:24;3180:5;3162:24;:::i;:::-;3155:5;3152:35;3142:63;;3201:1;3198;3191:12;3142:63;3089:122;:::o;3217:139::-;3263:5;3301:6;3288:20;3279:29;;3317:33;3344:5;3317:33;:::i;:::-;3217:139;;;;:::o;3362:77::-;3399:7;3428:5;3417:16;;3362:77;;;:::o;3445:122::-;3518:24;3536:5;3518:24;:::i;:::-;3511:5;3508:35;3498:63;;3557:1;3554;3547:12;3498:63;3445:122;:::o;3573:139::-;3619:5;3657:6;3644:20;3635:29;;3673:33;3700:5;3673:33;:::i;:::-;3573:139;;;;:::o;3718:474::-;3786:6;3794;3843:2;3831:9;3822:7;3818:23;3814:32;3811:119;;;3849:79;;:::i;:::-;3811:119;3969:1;3994:53;4039:7;4030:6;4019:9;4015:22;3994:53;:::i;:::-;3984:63;;3940:117;4096:2;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4067:118;3718:474;;;;;:::o;4198:90::-;4232:7;4275:5;4268:13;4261:21;4250:32;;4198:90;;;:::o;4294:109::-;4375:21;4390:5;4375:21;:::i;:::-;4370:3;4363:34;4294:109;;:::o;4409:210::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:65;4609:1;4598:9;4594:17;4585:6;4547:65;:::i;:::-;4409:210;;;;:::o;4625:329::-;4684:6;4733:2;4721:9;4712:7;4708:23;4704:32;4701:119;;;4739:79;;:::i;:::-;4701:119;4859:1;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4830:117;4625:329;;;;:::o;4960:118::-;5047:24;5065:5;5047:24;:::i;:::-;5042:3;5035:37;4960:118;;:::o;5084:222::-;5177:4;5215:2;5204:9;5200:18;5192:26;;5228:71;5296:1;5285:9;5281:17;5272:6;5228:71;:::i;:::-;5084:222;;;;:::o;5312:619::-;5389:6;5397;5405;5454:2;5442:9;5433:7;5429:23;5425:32;5422:119;;;5460:79;;:::i;:::-;5422:119;5580:1;5605:53;5650:7;5641:6;5630:9;5626:22;5605:53;:::i;:::-;5595:63;;5551:117;5707:2;5733:53;5778:7;5769:6;5758:9;5754:22;5733:53;:::i;:::-;5723:63;;5678:118;5835:2;5861:53;5906:7;5897:6;5886:9;5882:22;5861:53;:::i;:::-;5851:63;;5806:118;5312:619;;;;;:::o;5937:327::-;5995:6;6044:2;6032:9;6023:7;6019:23;6015:32;6012:119;;;6050:79;;:::i;:::-;6012:119;6170:1;6195:52;6239:7;6230:6;6219:9;6215:22;6195:52;:::i;:::-;6185:62;;6141:116;5937:327;;;;:::o;6270:86::-;6305:7;6345:4;6338:5;6334:16;6323:27;;6270:86;;;:::o;6362:112::-;6445:22;6461:5;6445:22;:::i;:::-;6440:3;6433:35;6362:112;;:::o;6480:214::-;6569:4;6607:2;6596:9;6592:18;6584:26;;6620:67;6684:1;6673:9;6669:17;6660:6;6620:67;:::i;:::-;6480:214;;;;:::o;6700:118::-;6771:22;6787:5;6771:22;:::i;:::-;6764:5;6761:33;6751:61;;6808:1;6805;6798:12;6751:61;6700:118;:::o;6824:135::-;6868:5;6906:6;6893:20;6884:29;;6922:31;6947:5;6922:31;:::i;:::-;6824:135;;;;:::o;6965:607::-;7036:6;7044;7052;7101:2;7089:9;7080:7;7076:23;7072:32;7069:119;;;7107:79;;:::i;:::-;7069:119;7227:1;7252:51;7295:7;7286:6;7275:9;7271:22;7252:51;:::i;:::-;7242:61;;7198:115;7352:2;7378:51;7421:7;7412:6;7401:9;7397:22;7378:51;:::i;:::-;7368:61;;7323:116;7478:2;7504:51;7547:7;7538:6;7527:9;7523:22;7504:51;:::i;:::-;7494:61;;7449:116;6965:607;;;;;:::o;7578:89::-;7614:7;7654:6;7647:5;7643:18;7632:29;;7578:89;;;:::o;7673:120::-;7745:23;7762:5;7745:23;:::i;:::-;7738:5;7735:34;7725:62;;7783:1;7780;7773:12;7725:62;7673:120;:::o;7799:137::-;7844:5;7882:6;7869:20;7860:29;;7898:32;7924:5;7898:32;:::i;:::-;7799:137;;;;:::o;7942:757::-;8024:6;8032;8040;8048;8097:3;8085:9;8076:7;8072:23;8068:33;8065:120;;;8104:79;;:::i;:::-;8065:120;8224:1;8249:52;8293:7;8284:6;8273:9;8269:22;8249:52;:::i;:::-;8239:62;;8195:116;8350:2;8376:52;8420:7;8411:6;8400:9;8396:22;8376:52;:::i;:::-;8366:62;;8321:117;8477:2;8503:52;8547:7;8538:6;8527:9;8523:22;8503:52;:::i;:::-;8493:62;;8448:117;8604:2;8630:52;8674:7;8665:6;8654:9;8650:22;8630:52;:::i;:::-;8620:62;;8575:117;7942:757;;;;;;;:::o;8705:329::-;8764:6;8813:2;8801:9;8792:7;8788:23;8784:32;8781:119;;;8819:79;;:::i;:::-;8781:119;8939:1;8964:53;9009:7;9000:6;8989:9;8985:22;8964:53;:::i;:::-;8954:63;;8910:117;8705:329;;;;:::o;9040:118::-;9127:24;9145:5;9127:24;:::i;:::-;9122:3;9115:37;9040:118;;:::o;9164:222::-;9257:4;9295:2;9284:9;9280:18;9272:26;;9308:71;9376:1;9365:9;9361:17;9352:6;9308:71;:::i;:::-;9164:222;;;;:::o;9392:619::-;9469:6;9477;9485;9534:2;9522:9;9513:7;9509:23;9505:32;9502:119;;;9540:79;;:::i;:::-;9502:119;9660:1;9685:53;9730:7;9721:6;9710:9;9706:22;9685:53;:::i;:::-;9675:63;;9631:117;9787:2;9813:53;9858:7;9849:6;9838:9;9834:22;9813:53;:::i;:::-;9803:63;;9758:118;9915:2;9941:53;9986:7;9977:6;9966:9;9962:22;9941:53;:::i;:::-;9931:63;;9886:118;9392:619;;;;;:::o;10017:470::-;10083:6;10091;10140:2;10128:9;10119:7;10115:23;10111:32;10108:119;;;10146:79;;:::i;:::-;10108:119;10266:1;10291:52;10335:7;10326:6;10315:9;10311:22;10291:52;:::i;:::-;10281:62;;10237:116;10392:2;10418:52;10462:7;10453:6;10442:9;10438:22;10418:52;:::i;:::-;10408:62;;10363:117;10017:470;;;;;:::o;10493:474::-;10561:6;10569;10618:2;10606:9;10597:7;10593:23;10589:32;10586:119;;;10624:79;;:::i;:::-;10586:119;10744:1;10769:53;10814:7;10805:6;10794:9;10790:22;10769:53;:::i;:::-;10759:63;;10715:117;10871:2;10897:53;10942:7;10933:6;10922:9;10918:22;10897:53;:::i;:::-;10887:63;;10842:118;10493:474;;;;;:::o;10973:115::-;11058:23;11075:5;11058:23;:::i;:::-;11053:3;11046:36;10973:115;;:::o;11094:218::-;11185:4;11223:2;11212:9;11208:18;11200:26;;11236:69;11302:1;11291:9;11287:17;11278:6;11236:69;:::i;:::-;11094:218;;;;:::o;11318:104::-;11363:7;11392:24;11410:5;11392:24;:::i;:::-;11381:35;;11318:104;;;:::o;11428:138::-;11509:32;11535:5;11509:32;:::i;:::-;11502:5;11499:43;11489:71;;11556:1;11553;11546:12;11489:71;11428:138;:::o;11572:155::-;11626:5;11664:6;11651:20;11642:29;;11680:41;11715:5;11680:41;:::i;:::-;11572:155;;;;:::o;11733:345::-;11800:6;11849:2;11837:9;11828:7;11824:23;11820:32;11817:119;;;11855:79;;:::i;:::-;11817:119;11975:1;12000:61;12053:7;12044:6;12033:9;12029:22;12000:61;:::i;:::-;11990:71;;11946:125;11733:345;;;;:::o;12084:164::-;12224:16;12220:1;12212:6;12208:14;12201:40;12084:164;:::o;12254:366::-;12396:3;12417:67;12481:2;12476:3;12417:67;:::i;:::-;12410:74;;12493:93;12582:3;12493:93;:::i;:::-;12611:2;12606:3;12602:12;12595:19;;12254:366;;;:::o;12626:419::-;12792:4;12830:2;12819:9;12815:18;12807:26;;12879:9;12873:4;12869:20;12865:1;12854:9;12850:17;12843:47;12907:131;13033:4;12907:131;:::i;:::-;12899:139;;12626:419;;;:::o;13051:180::-;13099:77;13096:1;13089:88;13196:4;13193:1;13186:15;13220:4;13217:1;13210:15;13237:102;13279:8;13326:5;13323:1;13319:13;13298:34;;13237:102;;;:::o;13345:848::-;13406:5;13413:4;13437:6;13428:15;;13461:5;13452:14;;13475:712;13496:1;13486:8;13483:15;13475:712;;;13591:4;13586:3;13582:14;13576:4;13573:24;13570:50;;;13600:18;;:::i;:::-;13570:50;13650:1;13640:8;13636:16;13633:451;;;14065:4;14058:5;14054:16;14045:25;;13633:451;14115:4;14109;14105:15;14097:23;;14145:32;14168:8;14145:32;:::i;:::-;14133:44;;13475:712;;;13345:848;;;;;;;:::o;14199:1073::-;14253:5;14444:8;14434:40;;14465:1;14456:10;;14467:5;;14434:40;14493:4;14483:36;;14510:1;14501:10;;14512:5;;14483:36;14579:4;14627:1;14622:27;;;;14663:1;14658:191;;;;14572:277;;14622:27;14640:1;14631:10;;14642:5;;;14658:191;14703:3;14693:8;14690:17;14687:43;;;14710:18;;:::i;:::-;14687:43;14759:8;14756:1;14752:16;14743:25;;14794:3;14787:5;14784:14;14781:40;;;14801:18;;:::i;:::-;14781:40;14834:5;;;14572:277;;14958:2;14948:8;14945:16;14939:3;14933:4;14930:13;14926:36;14908:2;14898:8;14895:16;14890:2;14884:4;14881:12;14877:35;14861:111;14858:246;;;15014:8;15008:4;15004:19;14995:28;;15049:3;15042:5;15039:14;15036:40;;;15056:18;;:::i;:::-;15036:40;15089:5;;14858:246;15129:42;15167:3;15157:8;15151:4;15148:1;15129:42;:::i;:::-;15114:57;;;;15203:4;15198:3;15194:14;15187:5;15184:25;15181:51;;;15212:18;;:::i;:::-;15181:51;15261:4;15254:5;15250:16;15241:25;;14199:1073;;;;;;:::o;15278:281::-;15336:5;15360:23;15378:4;15360:23;:::i;:::-;15352:31;;15404:25;15420:8;15404:25;:::i;:::-;15392:37;;15448:104;15485:66;15475:8;15469:4;15448:104;:::i;:::-;15439:113;;15278:281;;;;:::o;15565:348::-;15605:7;15628:20;15646:1;15628:20;:::i;:::-;15623:25;;15662:20;15680:1;15662:20;:::i;:::-;15657:25;;15850:1;15782:66;15778:74;15775:1;15772:81;15767:1;15760:9;15753:17;15749:105;15746:131;;;15857:18;;:::i;:::-;15746:131;15905:1;15902;15898:9;15887:20;;15565:348;;;;:::o;15919:180::-;15967:77;15964:1;15957:88;16064:4;16061:1;16054:15;16088:4;16085:1;16078:15;16105:185;16145:1;16162:20;16180:1;16162:20;:::i;:::-;16157:25;;16196:20;16214:1;16196:20;:::i;:::-;16191:25;;16235:1;16225:35;;16240:18;;:::i;:::-;16225:35;16282:1;16279;16275:9;16270:14;;16105:185;;;;:::o;16296:229::-;16436:34;16432:1;16424:6;16420:14;16413:58;16505:12;16500:2;16492:6;16488:15;16481:37;16296:229;:::o;16531:366::-;16673:3;16694:67;16758:2;16753:3;16694:67;:::i;:::-;16687:74;;16770:93;16859:3;16770:93;:::i;:::-;16888:2;16883:3;16879:12;16872:19;;16531:366;;;:::o;16903:419::-;17069:4;17107:2;17096:9;17092:18;17084:26;;17156:9;17150:4;17146:20;17142:1;17131:9;17127:17;17120:47;17184:131;17310:4;17184:131;:::i;:::-;17176:139;;16903:419;;;:::o;17328:166::-;17468:18;17464:1;17456:6;17452:14;17445:42;17328:166;:::o;17500:366::-;17642:3;17663:67;17727:2;17722:3;17663:67;:::i;:::-;17656:74;;17739:93;17828:3;17739:93;:::i;:::-;17857:2;17852:3;17848:12;17841:19;;17500:366;;;:::o;17872:419::-;18038:4;18076:2;18065:9;18061:18;18053:26;;18125:9;18119:4;18115:20;18111:1;18100:9;18096:17;18089:47;18153:131;18279:4;18153:131;:::i;:::-;18145:139;;17872:419;;;:::o;18297:305::-;18337:3;18356:20;18374:1;18356:20;:::i;:::-;18351:25;;18390:20;18408:1;18390:20;:::i;:::-;18385:25;;18544:1;18476:66;18472:74;18469:1;18466:81;18463:107;;;18550:18;;:::i;:::-;18463:107;18594:1;18591;18587:9;18580:16;;18297:305;;;;:::o;18608:171::-;18748:23;18744:1;18736:6;18732:14;18725:47;18608:171;:::o;18785:366::-;18927:3;18948:67;19012:2;19007:3;18948:67;:::i;:::-;18941:74;;19024:93;19113:3;19024:93;:::i;:::-;19142:2;19137:3;19133:12;19126:19;;18785:366;;;:::o;19157:419::-;19323:4;19361:2;19350:9;19346:18;19338:26;;19410:9;19404:4;19400:20;19396:1;19385:9;19381:17;19374:47;19438:131;19564:4;19438:131;:::i;:::-;19430:139;;19157:419;;;:::o;19582:171::-;19722:23;19718:1;19710:6;19706:14;19699:47;19582:171;:::o;19759:366::-;19901:3;19922:67;19986:2;19981:3;19922:67;:::i;:::-;19915:74;;19998:93;20087:3;19998:93;:::i;:::-;20116:2;20111:3;20107:12;20100:19;;19759:366;;;:::o;20131:419::-;20297:4;20335:2;20324:9;20320:18;20312:26;;20384:9;20378:4;20374:20;20370:1;20359:9;20355:17;20348:47;20412:131;20538:4;20412:131;:::i;:::-;20404:139;;20131:419;;;:::o;20556:242::-;20595:3;20614:19;20631:1;20614:19;:::i;:::-;20609:24;;20647:19;20664:1;20647:19;:::i;:::-;20642:24;;20740:1;20732:6;20728:14;20725:1;20722:21;20719:47;;;20746:18;;:::i;:::-;20719:47;20790:1;20787;20783:9;20776:16;;20556:242;;;;:::o;20804:170::-;20944:22;20940:1;20932:6;20928:14;20921:46;20804:170;:::o;20980:366::-;21122:3;21143:67;21207:2;21202:3;21143:67;:::i;:::-;21136:74;;21219:93;21308:3;21219:93;:::i;:::-;21337:2;21332:3;21328:12;21321:19;;20980:366;;;:::o;21352:419::-;21518:4;21556:2;21545:9;21541:18;21533:26;;21605:9;21599:4;21595:20;21591:1;21580:9;21576:17;21569:47;21633:131;21759:4;21633:131;:::i;:::-;21625:139;;21352:419;;;:::o;21777:170::-;21917:22;21913:1;21905:6;21901:14;21894:46;21777:170;:::o;21953:366::-;22095:3;22116:67;22180:2;22175:3;22116:67;:::i;:::-;22109:74;;22192:93;22281:3;22192:93;:::i;:::-;22310:2;22305:3;22301:12;22294:19;;21953:366;;;:::o;22325:419::-;22491:4;22529:2;22518:9;22514:18;22506:26;;22578:9;22572:4;22568:20;22564:1;22553:9;22549:17;22542:47;22606:131;22732:4;22606:131;:::i;:::-;22598:139;;22325:419;;;:::o;22750:178::-;22890:30;22886:1;22878:6;22874:14;22867:54;22750:178;:::o;22934:366::-;23076:3;23097:67;23161:2;23156:3;23097:67;:::i;:::-;23090:74;;23173:93;23262:3;23173:93;:::i;:::-;23291:2;23286:3;23282:12;23275:19;;22934:366;;;:::o;23306:419::-;23472:4;23510:2;23499:9;23495:18;23487:26;;23559:9;23553:4;23549:20;23545:1;23534:9;23530:17;23523:47;23587:131;23713:4;23587:131;:::i;:::-;23579:139;;23306:419;;;:::o;23731:174::-;23871:26;23867:1;23859:6;23855:14;23848:50;23731:174;:::o;23911:366::-;24053:3;24074:67;24138:2;24133:3;24074:67;:::i;:::-;24067:74;;24150:93;24239:3;24150:93;:::i;:::-;24268:2;24263:3;24259:12;24252:19;;23911:366;;;:::o;24283:419::-;24449:4;24487:2;24476:9;24472:18;24464:26;;24536:9;24530:4;24526:20;24522:1;24511:9;24507:17;24500:47;24564:131;24690:4;24564:131;:::i;:::-;24556:139;;24283:419;;;:::o;24708:173::-;24848:25;24844:1;24836:6;24832:14;24825:49;24708:173;:::o;24887:366::-;25029:3;25050:67;25114:2;25109:3;25050:67;:::i;:::-;25043:74;;25126:93;25215:3;25126:93;:::i;:::-;25244:2;25239:3;25235:12;25228:19;;24887:366;;;:::o;25259:419::-;25425:4;25463:2;25452:9;25448:18;25440:26;;25512:9;25506:4;25502:20;25498:1;25487:9;25483:17;25476:47;25540:131;25666:4;25540:131;:::i;:::-;25532:139;;25259:419;;;:::o;25684:143::-;25741:5;25772:6;25766:13;25757:22;;25788:33;25815:5;25788:33;:::i;:::-;25684:143;;;;:::o;25833:351::-;25903:6;25952:2;25940:9;25931:7;25927:23;25923:32;25920:119;;;25958:79;;:::i;:::-;25920:119;26078:1;26103:64;26159:7;26150:6;26139:9;26135:22;26103:64;:::i;:::-;26093:74;;26049:128;25833:351;;;;:::o;26190:332::-;26311:4;26349:2;26338:9;26334:18;26326:26;;26362:71;26430:1;26419:9;26415:17;26406:6;26362:71;:::i;:::-;26443:72;26511:2;26500:9;26496:18;26487:6;26443:72;:::i;:::-;26190:332;;;;;:::o;26528:166::-;26668:18;26664:1;26656:6;26652:14;26645:42;26528:166;:::o;26700:366::-;26842:3;26863:67;26927:2;26922:3;26863:67;:::i;:::-;26856:74;;26939:93;27028:3;26939:93;:::i;:::-;27057:2;27052:3;27048:12;27041:19;;26700:366;;;:::o;27072:419::-;27238:4;27276:2;27265:9;27261:18;27253:26;;27325:9;27319:4;27315:20;27311:1;27300:9;27296:17;27289:47;27353:131;27479:4;27353:131;:::i;:::-;27345:139;;27072:419;;;:::o;27497:166::-;27637:18;27633:1;27625:6;27621:14;27614:42;27497:166;:::o;27669:366::-;27811:3;27832:67;27896:2;27891:3;27832:67;:::i;:::-;27825:74;;27908:93;27997:3;27908:93;:::i;:::-;28026:2;28021:3;28017:12;28010:19;;27669:366;;;:::o;28041:419::-;28207:4;28245:2;28234:9;28230:18;28222:26;;28294:9;28288:4;28284:20;28280:1;28269:9;28265:17;28258:47;28322:131;28448:4;28322:131;:::i;:::-;28314:139;;28041:419;;;:::o;28466:170::-;28606:22;28602:1;28594:6;28590:14;28583:46;28466:170;:::o;28642:366::-;28784:3;28805:67;28869:2;28864:3;28805:67;:::i;:::-;28798:74;;28881:93;28970:3;28881:93;:::i;:::-;28999:2;28994:3;28990:12;28983:19;;28642:366;;;:::o;29014:419::-;29180:4;29218:2;29207:9;29203:18;29195:26;;29267:9;29261:4;29257:20;29253:1;29242:9;29238:17;29231:47;29295:131;29421:4;29295:131;:::i;:::-;29287:139;;29014:419;;;:::o;29439:172::-;29579:24;29575:1;29567:6;29563:14;29556:48;29439:172;:::o;29617:366::-;29759:3;29780:67;29844:2;29839:3;29780:67;:::i;:::-;29773:74;;29856:93;29945:3;29856:93;:::i;:::-;29974:2;29969:3;29965:12;29958:19;;29617:366;;;:::o;29989:419::-;30155:4;30193:2;30182:9;30178:18;30170:26;;30242:9;30236:4;30232:20;30228:1;30217:9;30213:17;30206:47;30270:131;30396:4;30270:131;:::i;:::-;30262:139;;29989:419;;;:::o;30414:170::-;30554:22;30550:1;30542:6;30538:14;30531:46;30414:170;:::o;30590:366::-;30732:3;30753:67;30817:2;30812:3;30753:67;:::i;:::-;30746:74;;30829:93;30918:3;30829:93;:::i;:::-;30947:2;30942:3;30938:12;30931:19;;30590:366;;;:::o;30962:419::-;31128:4;31166:2;31155:9;31151:18;31143:26;;31215:9;31209:4;31205:20;31201:1;31190:9;31186:17;31179:47;31243:131;31369:4;31243:131;:::i;:::-;31235:139;;30962:419;;;:::o;31387:191::-;31427:4;31447:20;31465:1;31447:20;:::i;:::-;31442:25;;31481:20;31499:1;31481:20;:::i;:::-;31476:25;;31520:1;31517;31514:8;31511:34;;;31525:18;;:::i;:::-;31511:34;31570:1;31567;31563:9;31555:17;;31387:191;;;;:::o;31584:60::-;31612:3;31633:5;31626:12;;31584:60;;;:::o;31650:142::-;31700:9;31733:53;31751:34;31760:24;31778:5;31760:24;:::i;:::-;31751:34;:::i;:::-;31733:53;:::i;:::-;31720:66;;31650:142;;;:::o;31798:126::-;31848:9;31881:37;31912:5;31881:37;:::i;:::-;31868:50;;31798:126;;;:::o;31930:134::-;31988:9;32021:37;32052:5;32021:37;:::i;:::-;32008:50;;31930:134;;;:::o;32070:147::-;32165:45;32204:5;32165:45;:::i;:::-;32160:3;32153:58;32070:147;;:::o;32223:238::-;32324:4;32362:2;32351:9;32347:18;32339:26;;32375:79;32451:1;32440:9;32436:17;32427:6;32375:79;:::i;:::-;32223:238;;;;:::o;32467:171::-;32505:3;32528:23;32545:5;32528:23;:::i;:::-;32519:32;;32573:6;32566:5;32563:17;32560:43;;;32583:18;;:::i;:::-;32560:43;32630:1;32623:5;32619:13;32612:20;;32467:171;;;:::o;32644:167::-;32784:19;32780:1;32772:6;32768:14;32761:43;32644:167;:::o;32817:366::-;32959:3;32980:67;33044:2;33039:3;32980:67;:::i;:::-;32973:74;;33056:93;33145:3;33056:93;:::i;:::-;33174:2;33169:3;33165:12;33158:19;;32817:366;;;:::o;33189:419::-;33355:4;33393:2;33382:9;33378:18;33370:26;;33442:9;33436:4;33432:20;33428:1;33417:9;33413:17;33406:47;33470:131;33596:4;33470:131;:::i;:::-;33462:139;;33189:419;;;:::o;33614:176::-;33646:1;33663:20;33681:1;33663:20;:::i;:::-;33658:25;;33697:20;33715:1;33697:20;:::i;:::-;33692:25;;33736:1;33726:35;;33741:18;;:::i;:::-;33726:35;33782:1;33779;33775:9;33770:14;;33614:176;;;;:::o;33796:220::-;33936:34;33932:1;33924:6;33920:14;33913:58;34005:3;34000:2;33992:6;33988:15;33981:28;33796:220;:::o;34022:366::-;34164:3;34185:67;34249:2;34244:3;34185:67;:::i;:::-;34178:74;;34261:93;34350:3;34261:93;:::i;:::-;34379:2;34374:3;34370:12;34363:19;;34022:366;;;:::o;34394:419::-;34560:4;34598:2;34587:9;34583:18;34575:26;;34647:9;34641:4;34637:20;34633:1;34622:9;34618:17;34611:47;34675:131;34801:4;34675:131;:::i;:::-;34667:139;;34394:419;;;:::o;34819:167::-;34959:19;34955:1;34947:6;34943:14;34936:43;34819:167;:::o;34992:366::-;35134:3;35155:67;35219:2;35214:3;35155:67;:::i;:::-;35148:74;;35231:93;35320:3;35231:93;:::i;:::-;35349:2;35344:3;35340:12;35333:19;;34992:366;;;:::o;35364:419::-;35530:4;35568:2;35557:9;35553:18;35545:26;;35617:9;35611:4;35607:20;35603:1;35592:9;35588:17;35581:47;35645:131;35771:4;35645:131;:::i;:::-;35637:139;;35364:419;;;:::o;35789:180::-;35837:77;35834:1;35827:88;35934:4;35931:1;35924:15;35958:4;35955:1;35948:15;35975:180;36023:77;36020:1;36013:88;36120:4;36117:1;36110:15;36144:4;36141:1;36134:15;36161:85;36206:7;36235:5;36224:16;;36161:85;;;:::o;36252:158::-;36310:9;36343:61;36361:42;36370:32;36396:5;36370:32;:::i;:::-;36361:42;:::i;:::-;36343:61;:::i;:::-;36330:74;;36252:158;;;:::o;36416:147::-;36511:45;36550:5;36511:45;:::i;:::-;36506:3;36499:58;36416:147;;:::o;36569:114::-;36636:6;36670:5;36664:12;36654:22;;36569:114;;;:::o;36689:184::-;36788:11;36822:6;36817:3;36810:19;36862:4;36857:3;36853:14;36838:29;;36689:184;;;;:::o;36879:132::-;36946:4;36969:3;36961:11;;36999:4;36994:3;36990:14;36982:22;;36879:132;;;:::o;37017:108::-;37094:24;37112:5;37094:24;:::i;:::-;37089:3;37082:37;37017:108;;:::o;37131:179::-;37200:10;37221:46;37263:3;37255:6;37221:46;:::i;:::-;37299:4;37294:3;37290:14;37276:28;;37131:179;;;;:::o;37316:113::-;37386:4;37418;37413:3;37409:14;37401:22;;37316:113;;;:::o;37465:732::-;37584:3;37613:54;37661:5;37613:54;:::i;:::-;37683:86;37762:6;37757:3;37683:86;:::i;:::-;37676:93;;37793:56;37843:5;37793:56;:::i;:::-;37872:7;37903:1;37888:284;37913:6;37910:1;37907:13;37888:284;;;37989:6;37983:13;38016:63;38075:3;38060:13;38016:63;:::i;:::-;38009:70;;38102:60;38155:6;38102:60;:::i;:::-;38092:70;;37948:224;37935:1;37932;37928:9;37923:14;;37888:284;;;37892:14;38188:3;38181:10;;37589:608;;;37465:732;;;;:::o;38203:831::-;38466:4;38504:3;38493:9;38489:19;38481:27;;38518:71;38586:1;38575:9;38571:17;38562:6;38518:71;:::i;:::-;38599:80;38675:2;38664:9;38660:18;38651:6;38599:80;:::i;:::-;38726:9;38720:4;38716:20;38711:2;38700:9;38696:18;38689:48;38754:108;38857:4;38848:6;38754:108;:::i;:::-;38746:116;;38872:72;38940:2;38929:9;38925:18;38916:6;38872:72;:::i;:::-;38954:73;39022:3;39011:9;39007:19;38998:6;38954:73;:::i;:::-;38203:831;;;;;;;;:::o;39040:807::-;39289:4;39327:3;39316:9;39312:19;39304:27;;39341:71;39409:1;39398:9;39394:17;39385:6;39341:71;:::i;:::-;39422:72;39490:2;39479:9;39475:18;39466:6;39422:72;:::i;:::-;39504:80;39580:2;39569:9;39565:18;39556:6;39504:80;:::i;:::-;39594;39670:2;39659:9;39655:18;39646:6;39594:80;:::i;:::-;39684:73;39752:3;39741:9;39737:19;39728:6;39684:73;:::i;:::-;39767;39835:3;39824:9;39820:19;39811:6;39767:73;:::i;:::-;39040:807;;;;;;;;;:::o;39853:143::-;39910:5;39941:6;39935:13;39926:22;;39957:33;39984:5;39957:33;:::i;:::-;39853:143;;;;:::o;40002:663::-;40090:6;40098;40106;40155:2;40143:9;40134:7;40130:23;40126:32;40123:119;;;40161:79;;:::i;:::-;40123:119;40281:1;40306:64;40362:7;40353:6;40342:9;40338:22;40306:64;:::i;:::-;40296:74;;40252:128;40419:2;40445:64;40501:7;40492:6;40481:9;40477:22;40445:64;:::i;:::-;40435:74;;40390:129;40558:2;40584:64;40640:7;40631:6;40620:9;40616:22;40584:64;:::i;:::-;40574:74;;40529:129;40002:663;;;;;:::o;40671:177::-;40811:29;40807:1;40799:6;40795:14;40788:53;40671:177;:::o;40854:366::-;40996:3;41017:67;41081:2;41076:3;41017:67;:::i;:::-;41010:74;;41093:93;41182:3;41093:93;:::i;:::-;41211:2;41206:3;41202:12;41195:19;;40854:366;;;:::o;41226:419::-;41392:4;41430:2;41419:9;41415:18;41407:26;;41479:9;41473:4;41469:20;41465:1;41454:9;41450:17;41443:47;41507:131;41633:4;41507:131;:::i;:::-;41499:139;;41226:419;;;:::o;41651:177::-;41791:29;41787:1;41779:6;41775:14;41768:53;41651:177;:::o;41834:366::-;41976:3;41997:67;42061:2;42056:3;41997:67;:::i;:::-;41990:74;;42073:93;42162:3;42073:93;:::i;:::-;42191:2;42186:3;42182:12;42175:19;;41834:366;;;:::o;42206:419::-;42372:4;42410:2;42399:9;42395:18;42387:26;;42459:9;42453:4;42449:20;42445:1;42434:9;42430:17;42423:47;42487:131;42613:4;42487:131;:::i;:::-;42479:139;;42206:419;;;:::o;42631:220::-;42771:34;42767:1;42759:6;42755:14;42748:58;42840:3;42835:2;42827:6;42823:15;42816:28;42631:220;:::o;42857:366::-;42999:3;43020:67;43084:2;43079:3;43020:67;:::i;:::-;43013:74;;43096:93;43185:3;43096:93;:::i;:::-;43214:2;43209:3;43205:12;43198:19;;42857:366;;;:::o;43229:419::-;43395:4;43433:2;43422:9;43418:18;43410:26;;43482:9;43476:4;43472:20;43468:1;43457:9;43453:17;43446:47;43510:131;43636:4;43510:131;:::i;:::-;43502:139;;43229:419;;;:::o

Swarm Source

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