ETH Price: $3,298.28 (-3.72%)
Gas: 7 Gwei

Token

Jack Levin Inu (LEVINU)
 

Overview

Max Total Supply

1,000,000,000 LEVINU

Holders

136

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
27.559353323 LEVINU

Value
$0.00
0x77bb4ef7ba460c80a7d7bfd475dbb7c7fc82333b
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:
JackLevinInu

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : levin.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

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 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);
}

interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
	function getAmountsIn(uint amountOut, address[] memory path) external view returns (uint[] memory amounts);
	function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
	function factory() external pure returns (address);
	function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
}

abstract contract OWNED {
	address internal _owner;
	event OwnershipTransferred(address owner);
	constructor(address contractOwner) { _owner = contractOwner; }
	modifier onlyOwner() { require(msg.sender == _owner, "Not the owner"); _; }
	// function owner() external view returns (address) { return _owner; }  // moved into addressList() function
	function renounceOwnership() external onlyOwner { _transferOwnership(address(0)); }
	function transferOwnership(address newOwner) external onlyOwner { _transferOwnership(newOwner); }
	function _transferOwnership(address _newOwner) internal {
		_owner = _newOwner; 
		emit OwnershipTransferred(_newOwner); 
	}
}

contract LEVINU_Sidecar {
	address private immutable _owner;
	constructor() { _owner = msg.sender; }
	function owner() external view returns (address) { return _owner; }
	function recoverErc20Tokens(address tokenCA) external returns (uint256) {
		require(msg.sender == _owner, "Not authorized");
		uint256 balance = IERC20(tokenCA).balanceOf(address(this));
		if (balance > 0) { IERC20(tokenCA).transfer(msg.sender, balance); }
		return balance;
	}
}

contract JackLevinInu is IERC20, OWNED {
	mapping(address => uint256) private _balances;
	mapping(address => mapping(address => uint256)) private _allowances;
	uint8 private constant _decimals = 9;
	uint256 private constant _totalSupply = 1_000_000_000 * 10**_decimals;
	string private constant _name = "Jack Levin Inu";
	string private constant _symbol = "LEVINU";

	uint256 private _thresholdUSDC = 1000;  // tax tokens USD value threshold to trigger tax token swap, transfer and adding liquidity
	uint256 private _maxTx; 
	uint256 private _maxWallet;
	uint8 private immutable _usdcDecimals;

	uint256 private constant taxMcBracket1 = 100_000; // PROMOTION: below 100k MC tax is 5% (1 XENLP, 4 Marketing)
	uint256 private constant taxMcBracket2 = 250_000; // SUPPORT: below 250k MC tax is 4% (1 XENLP, 3 Marketing)
	uint256 private constant taxMcBracket3 = 1_000_000; // COMMUNITY: below 1m MC tax is 2% (1 XENLP, 1 Marketing), above it tax is 0% DEXENTRALIZED:

	mapping(address => bool) private _excluded;
	address private _marketingWallet = address(0x40F693a958C96241aB0281f120c878ACC664e1D3);
	
	address private constant _xen = address(0x06450dEe7FD2Fb8E39061434BAbCFC05599a6Fb8); 
	address private constant _usdc = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); 
	
	address private immutable _sidecarAddress;
	LEVINU_Sidecar private immutable _sidecarContract;

	address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Uniswap V2 Router
	IUniswapV2Router02 private constant _swapRouter = IUniswapV2Router02(_swapRouterAddress);
	address private _primaryLP;
	mapping(address => bool) private _isLP;
	
	uint256 private _openAt;
	uint256 private _addTime = 0;
	uint256 private _protected;

	bool private swapLocked;
	modifier lockSwap { swapLocked = true; _; swapLocked = false; }

	constructor() OWNED(msg.sender)  {
		_balances[address(this)] = _totalSupply;
		emit Transfer(address(0), address(this), _balances[address(this)]);
		
		_sidecarContract = new LEVINU_Sidecar();
		_sidecarAddress = address(_sidecarContract);
		_usdcDecimals = IERC20(_usdc).decimals();

		_changeLimits(10,20); //set max TX to 1%, max wallet 2%

		_excluded[_owner] = true;
		_excluded[address(this)] = true;
		_excluded[_swapRouterAddress] = true;
		_excluded[_marketingWallet] = true;
		_excluded[_sidecarAddress] = true;
	}

	function addressList() external view returns (address owner, address sidecar, address marketing, address xen, address usdc, address swapRouter, address primaryLP) {
		return (_owner, _sidecarAddress, _marketingWallet, _xen, _usdc, _swapRouterAddress, _primaryLP);
	}

	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 balanceOf(address account) external view override returns (uint256) { return _balances[account]; }
	function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; }
	function approve(address spender, uint256 amount) public override returns (bool) {
		require(_balances[msg.sender] > 0,"ERC20: Zero balance");
		_approve(msg.sender, spender, amount);
		return true;
	}
	function _approve(address owner, address spender, uint256 amount ) private {
		require(owner != address(0) && spender != address(0), "ERC20: Zero address");
		_allowances[owner][spender] = amount;
		emit Approval(owner, spender, amount);
	}
	function _checkAndApproveRouter(uint256 tokenAmount) private {
		if (_allowances[address(this)][_swapRouterAddress] < tokenAmount) { 
			_approve(address(this), _swapRouterAddress, type(uint256).max);
		}
	}

	function _checkAndApproveRouterForToken(address _token, uint256 amount) internal {
		uint256 tokenAllowance;
		if (_token == address(this)) {
			tokenAllowance = _allowances[address(this)][_swapRouterAddress];
			if (amount > tokenAllowance) {
				_allowances[address(this)][_swapRouterAddress] = type(uint256).max;
			}
		} else {
			tokenAllowance = IERC20(_token).allowance(address(this), _swapRouterAddress);
			if (amount > tokenAllowance) {
				IERC20(_token).approve(_swapRouterAddress, type(uint256).max);
			}
		}
    }

	function transfer(address to, uint256 amount) public returns (bool) {
		_transfer(msg.sender, to, amount);
		return true;
	}
	function transferFrom(address from, address to, uint256 amount) public returns (bool) {
		require(_allowances[from][msg.sender] >= amount,"ERC20: amount exceeds allowance");
		_allowances[from][msg.sender] -= amount;
		_transfer(from, to, amount);
		return true;
	}
	function _transfer(address from, address to, uint256 amount) private {
		require(from != address(0) && to != address(0), "ERC20: Zero address"); 
		require(_balances[from] >= amount, "ERC20: amount exceeds balance"); 
		require(_limitCheck(from, to, amount), "Limits exceeded");
		require(block.timestamp>_openAt, "Not enabled");

		if (block.timestamp>_openAt && block.timestamp<_protected && tx.gasprice>block.basefee) {
			uint256 _gpb = tx.gasprice - block.basefee;
			uint256 _gpm = 10 * (10**9);
			require(_gpb<_gpm,"Not enabled");
		}

		if ( !swapLocked && !_excluded[from] && _isLP[to] ) { _processTaxTokens(); }
		
		(uint256 xenLP, uint256 levinuLP, uint256 marketing) = _getTaxTokens(from, to, amount);
		uint256 taxTokens = xenLP + levinuLP + marketing;
		_balances[from] -= amount;
		_balances[address(this)] += taxTokens;
		_balances[to] += (amount - taxTokens);
		emit Transfer(from, to, amount);
	}
	function _limitCheck(address from, address to, uint256 amount) private view returns (bool) {
		bool txSize = true;
		if ( amount > _maxTx && !_excluded[from] && !_excluded[to] ) { txSize = false; }
		bool walletSize = true;
		uint256 newBalanceTo = _balances[to] + amount;
		if ( newBalanceTo > _maxWallet && !_excluded[from] && !_excluded[to] && !_isLP[to] ) { walletSize = false; } 
		return (txSize && walletSize);
	}

	function _getCurrentDilutedMcUSD() private view returns (uint256) {
		uint256 marketCap;
		if (_primaryLP != address(0)) {
			uint256 tokensInLP = _balances[_primaryLP];
			uint256 usdcInLP = IERC20(_usdc).balanceOf(_primaryLP) / (10**_usdcDecimals);
			marketCap = (usdcInLP * _totalSupply / tokensInLP);
		}
		return marketCap;
	}
	function _getTaxRates() private view returns (uint8 xenRate, uint8 levinuRate, uint8 marketingRate) {
		uint8 _xenRate; uint8 _levinuRate; uint8 _marketingRate;
		uint256 currentDilutedUsdMC = _getCurrentDilutedMcUSD();
		if (currentDilutedUsdMC < taxMcBracket1 ) {
			_xenRate = 1; _levinuRate = 0; _marketingRate = 4;
		} else if (currentDilutedUsdMC >= taxMcBracket1 && currentDilutedUsdMC < taxMcBracket2) {
			_xenRate = 1; _levinuRate = 0; _marketingRate = 3;
		} else if (currentDilutedUsdMC >= taxMcBracket2 && currentDilutedUsdMC < taxMcBracket3) {
			_xenRate = 1; _levinuRate = 0; _marketingRate = 1;
		} else { 
			_xenRate = 0; _levinuRate = 0; _marketingRate = 0;
		}
		return (_xenRate, _levinuRate, _marketingRate);
	}
	function _getTaxTokens(address from, address to, uint256 amount) private view returns (uint256 xenLP, uint256 levinuLP, uint256 marketing) {
		uint256 _xenLP; uint256 _levinuLP; uint256 _marketing;
		if ( (_isLP[from] && !_excluded[to]) || (_isLP[to] && !_excluded[from]) ) { 
			(uint8 xenRate, uint8 levinuRate, uint8 marketingRate) = _getTaxRates();
			_xenLP = amount * xenRate / 100;
			_levinuLP = amount * levinuRate / 100;
			_marketing = amount * marketingRate / 100;
		}
		else { 
			_xenLP = 0;
			_levinuLP = 0;
			_marketing = 0;
		}
		return (_xenLP, _levinuLP, _marketing);
	}  

	function addInitialLiquidity() external onlyOwner {
		require(IERC20(_usdc).balanceOf(address(this))>0, "USDC value zero");
		require(_primaryLP == address(0), "LP exists");
		_primaryLP = IUniswapV2Factory(_swapRouter.factory()).createPair(address(this), _usdc);
		_isLP[_primaryLP] = true;
		_addLiquidity(address(this), _balances[address(this)], IERC20(_usdc).balanceOf(address(this)), false);
		_openAt = block.timestamp + _addTime;
		_protected = _openAt + 0;
	}

	function _addLiquidity(address _token, uint256 tokenAmount, uint256 usdcAmount, bool burnLpTokens) internal {
		require(IERC20(_token).balanceOf(address(this)) >= tokenAmount, "Not enough tokens");
		require(IERC20(_usdc).balanceOf(address(this)) >= usdcAmount, "Not enough USDC");
		_checkAndApproveRouterForToken(_token, tokenAmount);
		_checkAndApproveRouterForToken(_usdc, usdcAmount);
		address lpRecipient = _owner;
		if (burnLpTokens) { lpRecipient = address(0); }

		_swapRouter.addLiquidity(
			_usdc,  		// tokenA
			_token, 		// tokenB
			usdcAmount,     // amountADesired
			tokenAmount,    // amountBDesired
			0,      		// amountAMin -- allowing slippage
			0,      		// amountBMin -- allowing slippage
			lpRecipient, 	// to -- who gets the LP tokens
			block.timestamp // deadline
		);
	}

	function stats() external view returns (uint256 currentUsdMC, uint256 currentTaxUSD, uint256 swapThresholdUSD) { 
		uint256 currentMc = _getCurrentDilutedMcUSD();
		uint256 currentTaxValue = currentMc * _balances[address(this)] / _totalSupply;
		return (currentMc, currentTaxValue, _thresholdUSDC);
	}

	function tax() external view returns (uint8 Liquidityxen, uint8 LiquidityLEVINU, uint8 Marketing) { 
		(uint8 xenRate, uint8 levinuRate, uint8 marketingRate) = _getTaxRates();
		return (xenRate, levinuRate, marketingRate);
	}
	function limits() external view returns (uint256 maxTransaction, uint256 maxWallet) { return (_maxTx, _maxWallet); }
	function isExcluded(address wallet) external view returns (bool) { return _excluded[wallet]; }

	function changeLimits(uint16 maxTxPermille, uint16 maxWalletPermille) public onlyOwner { _changeLimits(maxTxPermille, maxWalletPermille); }
	function _changeLimits(uint16 _maxTxPermille, uint16 _maxWalletPermille) private {
		uint256 newMaxTx = (_totalSupply * _maxTxPermille / 1000) + (10 * 10**_decimals); //add 10 tokens to avoid rounding issues
		uint256 newMaxWallet = (_totalSupply * _maxWalletPermille / 1000) + (10 * 10**_decimals); //add 10 tokens to avoid rounding issues
		require(newMaxTx >= _maxTx && newMaxWallet >= _maxWallet, "Cannot decrease limits");
		if (newMaxTx > _totalSupply) { newMaxTx = _totalSupply; }
		if (newMaxWallet > _totalSupply) { newMaxWallet = _totalSupply; }
		_maxTx = newMaxTx;
		_maxWallet = newMaxWallet;
	}

	function changeTaxWallet(address walletMarketing) external onlyOwner {
		require(!_isLP[walletMarketing] && walletMarketing != _swapRouterAddress && walletMarketing != address(this) && walletMarketing != address(0));
		_excluded[walletMarketing] = true;
		_marketingWallet = walletMarketing;
	}	
	
	function _getThresholdTokenAmount() private view returns (uint256) {
		address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = _usdc;
		uint256[] memory amounts = _swapRouter.getAmountsIn(_thresholdUSDC * 10**_usdcDecimals, path); 
		return amounts[0];
	}
	function _processTaxTokens() private lockSwap {
		uint256 thresholdTokens = _getThresholdTokenAmount();
		(uint8 xenRate, uint8 levinuRate, uint8 marketingRate) = _getTaxRates();
		uint8 totalRate = xenRate + levinuRate + marketingRate;
		uint256 swapAmount = _balances[address(this)];
		if (totalRate>0 && swapAmount >= thresholdTokens) {
			swapAmount = thresholdTokens;

			uint256 tokensForxen = (swapAmount * xenRate / totalRate);
			uint256 tokensForlevinuLP = (swapAmount * levinuRate / totalRate)/2;
			uint256 tokensForMarketing = swapAmount * marketingRate / totalRate;

			uint256 tokensToSwap = tokensForxen + tokensForMarketing + tokensForlevinuLP;
			if (tokensToSwap >= 10**_decimals) {
				uint256 swappedOutputUSDC = _swapTokens(address(this), _usdc, tokensToSwap, true); //swap LEVINU for USDC, use sidecar contract
				uint256 usdcForlevinuLP = swappedOutputUSDC * tokensForlevinuLP / tokensToSwap; //calc USDC for LEVINU liquidity
				uint256 usdcToSpendOnxen = (swappedOutputUSDC * tokensForxen / tokensToSwap) / 2; //calc USDC for xen liquidity
				uint256 usdcForMarketing = swappedOutputUSDC * tokensForMarketing / tokensToSwap; //calc USDC for marketing

				if (levinuRate>0) { _addLiquidity(address(this), tokensForlevinuLP, usdcForlevinuLP, true); } //add LEVINU liquidity and burn LP tokens

				if (xenRate>0) {
					uint256 xenPurchased = _swapTokens(_usdc, _xen, usdcToSpendOnxen, false); //purchase xen for liquidity, sidecar not used
					_addLiquidity(_xen, xenPurchased, usdcToSpendOnxen, true); //add xen liquidity and burn LP tokens
				}

				if (marketingRate>0) {
					uint256 remainingUsdcBalance = IERC20(_usdc).balanceOf(address(this));
					if (usdcForMarketing > remainingUsdcBalance) { usdcForMarketing = remainingUsdcBalance; } //added check to avoid risk of having insufficient balance
					if (usdcForMarketing > 0) { IERC20(_usdc).transfer(_marketingWallet, usdcForMarketing); } //transfer USDC to marketing wallet
				}
			}

		}
	}

	function _swapTokens(address inputToken, address outputToken, uint256 inputAmount, bool useSidecar) private returns(uint256 outputAmount) {		
		address swapFunctionRecipient = address(this);
		uint256 balanceBefore;
		uint256 swappedOutputTokens;
		
		if (useSidecar == true) { swapFunctionRecipient = _sidecarAddress; }
		else { balanceBefore = IERC20(outputToken).balanceOf(address(this)); }

		_checkAndApproveRouterForToken(inputToken, inputAmount);
		address[] memory path = new address[](2);
		path[0] = inputToken;
		path[1] = outputToken;
		_swapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
			inputAmount,
			0,
			path,
			swapFunctionRecipient,
			block.timestamp
		);
		
		if (useSidecar == true) { swappedOutputTokens = _sidecarContract.recoverErc20Tokens(outputToken); }
		else { 
			uint256 balanceAfter = IERC20(outputToken).balanceOf(address(this));
			swappedOutputTokens = (balanceAfter - balanceBefore); 
		}

		return swappedOutputTokens; 
	}

	function recoverTokens(address tokenCa) external onlyOwner {
		require(tokenCa != address(this),"Not allowed");
		uint256 tokenBalance = IERC20(tokenCa).balanceOf(address(this));
		IERC20(tokenCa).transfer(msg.sender, tokenBalance);
	}

	function manualSwap() external onlyOwner { _processTaxTokens(); }
	function setExcluded(address wallet, bool exclude) external onlyOwner { 
		string memory notAllowedError = "Not allowed";
		require(!_isLP[wallet], notAllowedError);
		require(wallet != address(this), notAllowedError);
		require(wallet != _sidecarAddress, notAllowedError);
		require(wallet != _swapRouterAddress, notAllowedError);
	 	_excluded[wallet] = exclude; 
	}
	function setThreshold(uint256 amountUSD) external onlyOwner {
		require(amountUSD > 0, "Threshold cannot be 0");
		_thresholdUSDC = amountUSD;
	}

	function burn(uint256 amount) external {
		require(_balances[msg.sender] >= amount, "Low balance");
		_balances[msg.sender] -= amount;
		_balances[address(0)] += amount;
		emit Transfer(msg.sender, address(0), amount);
	}
	function setAdditionalLP(address lpAddress, bool isLiqPool) external onlyOwner {
		string memory notAllowedError = "Not allowed";
		require(!_excluded[lpAddress], notAllowedError);
		require(lpAddress != _primaryLP, notAllowedError);
		require(lpAddress != address(this), notAllowedError);
		require(lpAddress != _sidecarAddress, notAllowedError);
		require(lpAddress != _swapRouterAddress, notAllowedError);
		_isLP[lpAddress] = isLiqPool;
	}
	function isLP(address ca) external view returns (bool) { return _isLP[ca]; }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addInitialLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addressList","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"sidecar","type":"address"},{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"xen","type":"address"},{"internalType":"address","name":"usdc","type":"address"},{"internalType":"address","name":"swapRouter","type":"address"},{"internalType":"address","name":"primaryLP","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"changeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletMarketing","type":"address"}],"name":"changeTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ca","type":"address"}],"name":"isLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits","outputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenCa","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lpAddress","type":"address"},{"internalType":"bool","name":"isLiqPool","type":"bool"}],"name":"setAdditionalLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountUSD","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stats","outputs":[{"internalType":"uint256","name":"currentUsdMC","type":"uint256"},{"internalType":"uint256","name":"currentTaxUSD","type":"uint256"},{"internalType":"uint256","name":"swapThresholdUSD","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint8","name":"Liquidityxen","type":"uint8"},{"internalType":"uint8","name":"LiquidityLEVINU","type":"uint8"},{"internalType":"uint8","name":"Marketing","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e06040526103e8600355600780546001600160a01b0319167340f693a958c96241ab0281f120c878acc664e1d31790556000600b553480156200004257600080fd5b50600080546001600160a01b03191633179055620000636009600a62000506565b6200007390633b9aca006200051e565b30600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3604051620000c990620003e3565b604051809103906000f080158015620000e6573d6000803e3d6000fd5b506001600160a01b031660c081905260a0526040805163313ce56760e01b8152905173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489163313ce5679160048083019260209291908290030181865afa15801562000149573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016f919062000538565b60ff1660805262000183600a601462000210565b600080546001600160a01b039081168252600660205260408083208054600160ff19918216811790925530855282852080548216831790557f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b4805482168317905560075484168552828520805482168317905560a051909316845292208054909116909117905562000596565b6000620002206009600a62000506565b6200022d90600a6200051e565b6103e861ffff8516620002436009600a62000506565b6200025390633b9aca006200051e565b6200025f91906200051e565b6200026b91906200055d565b62000277919062000580565b90506000620002896009600a62000506565b6200029690600a6200051e565b6103e861ffff8516620002ac6009600a62000506565b620002bc90633b9aca006200051e565b620002c891906200051e565b620002d491906200055d565b620002e0919062000580565b90506004548210158015620002f757506005548110155b620003485760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74206465637265617365206c696d69747300000000000000000000604482015260640160405180910390fd5b620003566009600a62000506565b6200036690633b9aca006200051e565b8211156200038f576200037c6009600a62000506565b6200038c90633b9aca006200051e565b91505b6200039d6009600a62000506565b620003ad90633b9aca006200051e565b811115620003d657620003c36009600a62000506565b620003d390633b9aca006200051e565b90505b6004919091556005555050565b6102c9806200320983390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004485781600019048211156200042c576200042c620003f1565b808516156200043a57918102915b93841c93908002906200040c565b509250929050565b600082620004615750600162000500565b81620004705750600062000500565b81600181146200048957600281146200049457620004b4565b600191505062000500565b60ff841115620004a857620004a8620003f1565b50506001821b62000500565b5060208310610133831016604e8410600b8410161715620004d9575081810a62000500565b620004e5838362000407565b8060001904821115620004fc57620004fc620003f1565b0290505b92915050565b60006200051760ff84168362000450565b9392505050565b8082028115828204841417620005005762000500620003f1565b6000602082840312156200054b57600080fd5b815160ff811681146200051757600080fd5b6000826200057b57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005005762000500620003f1565b60805160a05160c051612c27620005e2600039600061255b0152600081816103a30152818161092901528181610cd701526123a4015260008181611d7301526122d90152612c276000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a9059cbb11610097578063cba0e99611610071578063cba0e9961461043c578063d80528ae14610468578063dd62ed3e1461048b578063f2fde38b146104c457600080fd5b8063a9059cbb14610374578063c1eb6dfd14610387578063cb7115951461042957600080fd5b8063715018a6146102c45780637df0f767146102cc578063860aefcf146102f857806395d89b4114610313578063960bfe041461033557806399c8d5561461034857600080fd5b806323b872dd1161014b57806342966c681161012557806342966c681461026d57806351bc3c85146102805780635c07c9931461028857806370a082311461029b57600080fd5b806323b872dd146102385780632836be241461024b578063313ce5671461025e57600080fd5b80630210a83d1461019357806306fdde031461019d578063095ea7b3146101d95780630a6a52b9146101fc57806316114acd1461020f57806318160ddd14610222575b600080fd5b61019b6104d7565b005b60408051808201909152600e81526d4a61636b204c6576696e20496e7560901b60208201525b6040516101d09190612656565b60405180910390f35b6101ec6101e73660046126b9565b6107d8565b60405190151581526020016101d0565b61019b61020a3660046126f3565b61083f565b61019b61021d36600461272c565b6109e8565b61022a610b3c565b6040519081526020016101d0565b6101ec610246366004612750565b610b5d565b61019b6102593660046126f3565b610c1e565b604051600981526020016101d0565b61019b61027b366004612791565b610d96565b61019b610e82565b61019b6102963660046127bc565b610eb6565b61022a6102a936600461272c565b6001600160a01b031660009081526001602052604090205490565b61019b610eee565b6101ec6102da36600461272c565b6001600160a01b031660009081526009602052604090205460ff1690565b600454600554604080519283526020830191909152016101d0565b6040805180820190915260068152654c4556494e5560d01b60208201526101c3565b61019b610343366004612791565b610f22565b610350610f99565b6040805160ff948516815292841660208401529216918101919091526060016101d0565b6101ec6103823660046126b9565b610fb9565b600054600754600854604080516001600160a01b0394851681527f000000000000000000000000000000000000000000000000000000000000000085166020820152928416908301527306450dee7fd2fb8e39061434babcfc05599a6fb86060830152600080516020612bd28339815191526080830152737a250d5630b4cf539739df2c5dacb4c659f2488d60a08301529190911660c082015260e0016101d0565b61019b61043736600461272c565b610fc6565b6101ec61044a36600461272c565b6001600160a01b031660009081526006602052604090205460ff1690565b61047061109f565b604080519384526020840192909252908201526060016101d0565b61022a6104993660046127ef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61019b6104d236600461272c565b611100565b6000546001600160a01b0316331461050a5760405162461bcd60e51b81526004016105019061281d565b60405180910390fd5b6040516370a0823160e01b8152306004820152600090600080516020612bd2833981519152906370a0823190602401602060405180830381865afa158015610556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190612844565b116105b95760405162461bcd60e51b815260206004820152600f60248201526e555344432076616c7565207a65726f60881b6044820152606401610501565b6008546001600160a01b0316156105fe5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b6044820152606401610501565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610674919061285d565b6040516364e329cb60e11b8152306004820152600080516020612bd283398151915260248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af11580156106d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f4919061285d565b600880546001600160a01b0319166001600160a01b039290921691821790556000908152600960209081526040808320805460ff19166001908117909155308085529252918290205491516370a0823160e01b8152600481018290526107b69290600080516020612bd2833981519152906370a0823190602401602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af9190612844565b6000611136565b600b546107c39042612890565b600a8190556107d3906000612890565b600c55565b3360009081526001602052604081205461082a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f2062616c616e636560681b6044820152606401610501565b61083533848461138f565b5060015b92915050565b6000546001600160a01b031633146108695760405162461bcd60e51b81526004016105019061281d565b604080518082018252600b81526a139bdd08185b1b1bddd95960aa1b6020808301919091526001600160a01b038516600090815260069091529190912054819060ff16156108ca5760405162461bcd60e51b81526004016105019190612656565b5060085481906001600160a01b038581169116036108fb5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b03841630036109265760405162461bcd60e51b81526004016105019190612656565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415819061097c5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d036109bb5760405162461bcd60e51b81526004016105019190612656565b50506001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a125760405162461bcd60e51b81526004016105019061281d565b306001600160a01b03821603610a585760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610501565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac39190612844565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3791906128a3565b505050565b6000610b4a6009600a6129a4565b610b5890633b9aca006129b3565b905090565b6001600160a01b0383166000908152600260209081526040808320338452909152812054821115610bd05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a20616d6f756e74206578636565647320616c6c6f77616e6365006044820152606401610501565b6001600160a01b038416600090815260026020908152604080832033845290915281208054849290610c039084906129ca565b90915550610c149050848484611452565b5060019392505050565b6000546001600160a01b03163314610c485760405162461bcd60e51b81526004016105019061281d565b604080518082018252600b81526a139bdd08185b1b1bddd95960aa1b6020808301919091526001600160a01b038516600090815260099091529190912054819060ff1615610ca95760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b0384163003610cd45760405162461bcd60e51b81526004016105019190612656565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158190610d2a5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d03610d695760405162461bcd60e51b81526004016105019190612656565b50506001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b33600090815260016020526040902054811115610de35760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b6044820152606401610501565b3360009081526001602052604081208054839290610e029084906129ca565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498054839290610e42908490612890565b909155505060405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b6000546001600160a01b03163314610eac5760405162461bcd60e51b81526004016105019061281d565b610eb461178b565b565b6000546001600160a01b03163314610ee05760405162461bcd60e51b81526004016105019061281d565b610eea8282611aaf565b5050565b6000546001600160a01b03163314610f185760405162461bcd60e51b81526004016105019061281d565b610eb46000611c47565b6000546001600160a01b03163314610f4c5760405162461bcd60e51b81526004016105019061281d565b60008111610f945760405162461bcd60e51b815260206004820152601560248201527405468726573686f6c642063616e6e6f74206265203605c1b6044820152606401610501565b600355565b600080600080600080610faa611c9b565b91989097509095509350505050565b6000610835338484611452565b6000546001600160a01b03163314610ff05760405162461bcd60e51b81526004016105019061281d565b6001600160a01b03811660009081526009602052604090205460ff1615801561103657506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b801561104b57506001600160a01b0381163014155b801561105f57506001600160a01b03811615155b61106857600080fd5b6001600160a01b03166000818152600660205260409020805460ff19166001179055600780546001600160a01b0319169091179055565b6000806000806110ad611d3c565b905060006110bd6009600a6129a4565b6110cb90633b9aca006129b3565b306000908152600160205260409020546110e590846129b3565b6110ef91906129dd565b600354929690955091935090915050565b6000546001600160a01b0316331461112a5760405162461bcd60e51b81526004016105019061281d565b61113381611c47565b50565b6040516370a0823160e01b815230600482015283906001600160a01b038616906370a0823190602401602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190612844565b10156111e25760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b6044820152606401610501565b6040516370a0823160e01b81523060048201528290600080516020612bd2833981519152906370a0823190602401602060405180830381865afa15801561122d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112519190612844565b10156112915760405162461bcd60e51b815260206004820152600f60248201526e4e6f7420656e6f756768205553444360881b6044820152606401610501565b61129b8484611e58565b6112b3600080516020612bd283398151915283611e58565b6000546001600160a01b031681156112c9575060005b60405162e8e33760e81b8152600080516020612bd283398151915260048201526001600160a01b038087166024830152604482018590526064820186905260006084830181905260a4830152821660c48201524260e4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063e8e3370090610104016060604051808303816000875af1158015611361573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138591906129ff565b5050505050505050565b6001600160a01b038316158015906113af57506001600160a01b03821615155b6113f15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f206164647265737360681b6044820152606401610501565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383161580159061147257506001600160a01b03821615155b6114b45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f206164647265737360681b6044820152606401610501565b6001600160a01b03831660009081526001602052604090205481111561151c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20616d6f756e7420657863656564732062616c616e63650000006044820152606401610501565b611527838383611ff2565b6115655760405162461bcd60e51b815260206004820152600f60248201526e131a5b5a5d1cc8195e18d959591959608a1b6044820152606401610501565b600a5442116115a45760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b6044820152606401610501565b600a54421180156115b65750600c5442105b80156115c15750483a115b1561161a5760006115d2483a6129ca565b90506402540be4008082106116175760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b6044820152606401610501565b50505b600d5460ff1615801561164657506001600160a01b03831660009081526006602052604090205460ff16155b801561166a57506001600160a01b03821660009081526009602052604090205460ff165b156116775761167761178b565b600080600061168786868661210e565b9194509250905060008161169b8486612890565b6116a59190612890565b6001600160a01b0388166000908152600160205260408120805492935087929091906116d29084906129ca565b909155505030600090815260016020526040812080548392906116f6908490612890565b90915550611706905081866129ca565b6001600160a01b0387166000908152600160205260408120805490919061172e908490612890565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161177a91815260200190565b60405180910390a350505050505050565b600d805460ff1916600117905560006117a2612225565b905060008060006117b1611c9b565b919450925090506000816117c58486612a2d565b6117cf9190612a2d565b3060009081526001602052604090205490915060ff8216158015906117f45750858110155b15611a9d575084600060ff8084169061180f908816846129b3565b61181991906129dd565b9050600060028460ff168760ff168561183291906129b3565b61183c91906129dd565b61184691906129dd565b905060008460ff168660ff168561185d91906129b3565b61186791906129dd565b90506000826118768386612890565b6118809190612890565b905061188e6009600a6129a4565b8110611a985760006118b130600080516020612bd2833981519152846001612393565b90506000826118c086846129b3565b6118ca91906129dd565b905060006002846118db89866129b3565b6118e591906129dd565b6118ef91906129dd565b90506000846118fe87866129b3565b61190891906129dd565b905060ff8c1615611920576119203088856001611136565b60ff8d161561197f57600061195a600080516020612bd28339815191527306450dee7fd2fb8e39061434babcfc05599a6fb8856000612393565b905061197d7306450dee7fd2fb8e39061434babcfc05599a6fb882856001611136565b505b60ff8b1615611a93576040516370a0823160e01b8152306004820152600090600080516020612bd2833981519152906370a0823190602401602060405180830381865afa1580156119d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f89190612844565b905080821115611a06578091505b8115611a915760075460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101839052600080516020612bd28339815191529063a9059cbb906044016020604051808303816000875af1158015611a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8f91906128a3565b505b505b505050505b505050505b5050600d805460ff1916905550505050565b6000611abd6009600a6129a4565b611ac890600a6129b3565b6103e861ffff8516611adc6009600a6129a4565b611aea90633b9aca006129b3565b611af491906129b3565b611afe91906129dd565b611b089190612890565b90506000611b186009600a6129a4565b611b2390600a6129b3565b6103e861ffff8516611b376009600a6129a4565b611b4590633b9aca006129b3565b611b4f91906129b3565b611b5991906129dd565b611b639190612890565b90506004548210158015611b7957506005548110155b611bbe5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206465637265617365206c696d69747360501b6044820152606401610501565b611bca6009600a6129a4565b611bd890633b9aca006129b3565b821115611bfc57611beb6009600a6129a4565b611bf990633b9aca006129b3565b91505b611c086009600a6129a4565b611c1690633b9aca006129b3565b811115611c3a57611c296009600a6129a4565b611c3790633b9aca006129b3565b90505b6004919091556005555050565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000806000806000806000611cae611d3c565b9050620186a0811015611ccc57600193506000925060049150611d2f565b620186a08110158015611ce157506203d09081105b15611cf757600193506000925060039150611d2f565b6203d0908110158015611d0c5750620f424081105b15611d2257600193506000925060019150611d2f565b6000935060009250600091505b5091959094509092509050565b60085460009081906001600160a01b031615611e53576008546001600160a01b031660009081526001602052604081205490611d997f0000000000000000000000000000000000000000000000000000000000000000600a6129a4565b6008546040516370a0823160e01b81526001600160a01b039091166004820152600080516020612bd2833981519152906370a0823190602401602060405180830381865afa158015611def573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e139190612844565b611e1d91906129dd565b905081611e2c6009600a6129a4565b611e3a90633b9aca006129b3565b611e4490836129b3565b611e4e91906129dd565b925050505b919050565b6000306001600160a01b03841603611eda5750306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205480821115610b3757306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290206000199055505050565b604051636eb1769f60e11b8152306004820152737a250d5630b4cf539739df2c5dacb4c659f2488d60248201526001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5c9190612844565b905080821115610b375760405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d600482015260001960248201526001600160a01b0384169063095ea7b3906044016020604051808303816000875af1158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fec91906128a3565b50505050565b6004546000906001908311801561202257506001600160a01b03851660009081526006602052604090205460ff16155b801561204757506001600160a01b03841660009081526006602052604090205460ff16155b15612050575060005b6001600160a01b0384166000908152600160208190526040822054909190612079908690612890565b9050600554811180156120a557506001600160a01b03871660009081526006602052604090205460ff16155b80156120ca57506001600160a01b03861660009081526006602052604090205460ff16155b80156120ef57506001600160a01b03861660009081526009602052604090205460ff16155b156120f957600091505b8280156121035750815b979650505050505050565b6001600160a01b0383166000908152600960205260408120548190819081908190819060ff16801561215957506001600160a01b03881660009081526006602052604090205460ff16155b806121a057506001600160a01b03881660009081526009602052604090205460ff1680156121a057506001600160a01b03891660009081526006602052604090205460ff16155b156122125760008060006121b2611c9b565b9194509250905060646121c860ff85168c6129b3565b6121d291906129dd565b955060646121e360ff84168c6129b3565b6121ed91906129dd565b945060646121fe60ff83168c6129b3565b61220891906129dd565b9350505050610faa565b5060009889985088975095505050505050565b60408051600280825260608201835260009283929190602083019080368337019050509050308160008151811061225e5761225e612a5c565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020612bd2833981519152816001815181106122a0576122a0612a5c565b6001600160a01b03909216602092830291909101909101526000737a250d5630b4cf539739df2c5dacb4c659f2488d631f00ca746122ff7f0000000000000000000000000000000000000000000000000000000000000000600a6129a4565b60035461230c91906129b3565b846040518363ffffffff1660e01b815260040161232a929190612ab6565b600060405180830381865afa158015612347573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261236f9190810190612ad7565b90508060008151811061238457612384612a5c565b60200260200101519250505090565b60003081808415156001036123ca577f00000000000000000000000000000000000000000000000000000000000000009250612435565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa15801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190612844565b91505b61243f8887611e58565b604080516002808252606082018352600092602083019080368337019050509050888160008151811061247457612474612a5c565b60200260200101906001600160a01b031690816001600160a01b03168152505087816001815181106124a8576124a8612a5c565b6001600160a01b0390921660209283029190910190910152604051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d79590612500908a9060009086908a904290600401612b95565b600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050508515156001036125cf57604051636433bbd760e01b81526001600160a01b0389811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636433bbd7906024016020604051808303816000875af11580156125a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c89190612844565b915061264a565b6040516370a0823160e01b81523060048201526000906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612616573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263a9190612844565b905061264684826129ca565b9250505b50979650505050505050565b600060208083528351808285015260005b8181101561268357858101830151858201604001528201612667565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113357600080fd5b600080604083850312156126cc57600080fd5b82356126d7816126a4565b946020939093013593505050565b801515811461113357600080fd5b6000806040838503121561270657600080fd5b8235612711816126a4565b91506020830135612721816126e5565b809150509250929050565b60006020828403121561273e57600080fd5b8135612749816126a4565b9392505050565b60008060006060848603121561276557600080fd5b8335612770816126a4565b92506020840135612780816126a4565b929592945050506040919091013590565b6000602082840312156127a357600080fd5b5035919050565b803561ffff81168114611e5357600080fd5b600080604083850312156127cf57600080fd5b6127d8836127aa565b91506127e6602084016127aa565b90509250929050565b6000806040838503121561280257600080fd5b823561280d816126a4565b91506020830135612721816126a4565b6020808252600d908201526c2737ba103a34329037bbb732b960991b604082015260600190565b60006020828403121561285657600080fd5b5051919050565b60006020828403121561286f57600080fd5b8151612749816126a4565b634e487b7160e01b600052601160045260246000fd5b808201808211156108395761083961287a565b6000602082840312156128b557600080fd5b8151612749816126e5565b600181815b808511156128fb5781600019048211156128e1576128e161287a565b808516156128ee57918102915b93841c93908002906128c5565b509250929050565b60008261291257506001610839565b8161291f57506000610839565b8160018114612935576002811461293f5761295b565b6001915050610839565b60ff8411156129505761295061287a565b50506001821b610839565b5060208310610133831016604e8410600b841016171561297e575081810a610839565b61298883836128c0565b806000190482111561299c5761299c61287a565b029392505050565b600061274960ff841683612903565b80820281158282048414176108395761083961287a565b818103818111156108395761083961287a565b6000826129fa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215612a1457600080fd5b8351925060208401519150604084015190509250925092565b60ff81811683821601908111156108395761083961287a565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612aab5781516001600160a01b031687529582019590820190600101612a86565b509495945050505050565b828152604060208201526000612acf6040830184612a72565b949350505050565b60006020808385031215612aea57600080fd5b825167ffffffffffffffff80821115612b0257600080fd5b818501915085601f830112612b1657600080fd5b815181811115612b2857612b28612a46565b8060051b604051601f19603f83011681018181108582111715612b4d57612b4d612a46565b604052918252848201925083810185019188831115612b6b57600080fd5b938501935b82851015612b8957845184529385019392850192612b70565b98975050505050505050565b85815284602082015260a060408201526000612bb460a0830186612a72565b6001600160a01b039490941660608301525060800152939250505056fe000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48a2646970667358221220849b20ef69bfbe88704ebfc95fcb8931f7db7ab21db4fe87b1bbde560ca4fdbd64736f6c6343000811003360a060405234801561001057600080fd5b503360805260805161029461003560003960008181606e015260a501526102946000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636433bbd71461003b5780638da5cb5b14610061575b600080fd5b61004e6100493660046101f3565b610098565b6040519081526020015b60405180910390f35b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152602001610058565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101075760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015260640160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561014e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101729190610223565b905080156101ed5760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156101c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101eb919061023c565b505b92915050565b60006020828403121561020557600080fd5b81356001600160a01b038116811461021c57600080fd5b9392505050565b60006020828403121561023557600080fd5b5051919050565b60006020828403121561024e57600080fd5b8151801515811461021c57600080fdfea264697066735822122083fd5823e5938e236d03e754df8735ec50ff59f1e16f97c597433c3c2d52254064736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a9059cbb11610097578063cba0e99611610071578063cba0e9961461043c578063d80528ae14610468578063dd62ed3e1461048b578063f2fde38b146104c457600080fd5b8063a9059cbb14610374578063c1eb6dfd14610387578063cb7115951461042957600080fd5b8063715018a6146102c45780637df0f767146102cc578063860aefcf146102f857806395d89b4114610313578063960bfe041461033557806399c8d5561461034857600080fd5b806323b872dd1161014b57806342966c681161012557806342966c681461026d57806351bc3c85146102805780635c07c9931461028857806370a082311461029b57600080fd5b806323b872dd146102385780632836be241461024b578063313ce5671461025e57600080fd5b80630210a83d1461019357806306fdde031461019d578063095ea7b3146101d95780630a6a52b9146101fc57806316114acd1461020f57806318160ddd14610222575b600080fd5b61019b6104d7565b005b60408051808201909152600e81526d4a61636b204c6576696e20496e7560901b60208201525b6040516101d09190612656565b60405180910390f35b6101ec6101e73660046126b9565b6107d8565b60405190151581526020016101d0565b61019b61020a3660046126f3565b61083f565b61019b61021d36600461272c565b6109e8565b61022a610b3c565b6040519081526020016101d0565b6101ec610246366004612750565b610b5d565b61019b6102593660046126f3565b610c1e565b604051600981526020016101d0565b61019b61027b366004612791565b610d96565b61019b610e82565b61019b6102963660046127bc565b610eb6565b61022a6102a936600461272c565b6001600160a01b031660009081526001602052604090205490565b61019b610eee565b6101ec6102da36600461272c565b6001600160a01b031660009081526009602052604090205460ff1690565b600454600554604080519283526020830191909152016101d0565b6040805180820190915260068152654c4556494e5560d01b60208201526101c3565b61019b610343366004612791565b610f22565b610350610f99565b6040805160ff948516815292841660208401529216918101919091526060016101d0565b6101ec6103823660046126b9565b610fb9565b600054600754600854604080516001600160a01b0394851681527f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f85166020820152928416908301527306450dee7fd2fb8e39061434babcfc05599a6fb86060830152600080516020612bd28339815191526080830152737a250d5630b4cf539739df2c5dacb4c659f2488d60a08301529190911660c082015260e0016101d0565b61019b61043736600461272c565b610fc6565b6101ec61044a36600461272c565b6001600160a01b031660009081526006602052604090205460ff1690565b61047061109f565b604080519384526020840192909252908201526060016101d0565b61022a6104993660046127ef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61019b6104d236600461272c565b611100565b6000546001600160a01b0316331461050a5760405162461bcd60e51b81526004016105019061281d565b60405180910390fd5b6040516370a0823160e01b8152306004820152600090600080516020612bd2833981519152906370a0823190602401602060405180830381865afa158015610556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190612844565b116105b95760405162461bcd60e51b815260206004820152600f60248201526e555344432076616c7565207a65726f60881b6044820152606401610501565b6008546001600160a01b0316156105fe5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b6044820152606401610501565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610674919061285d565b6040516364e329cb60e11b8152306004820152600080516020612bd283398151915260248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af11580156106d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f4919061285d565b600880546001600160a01b0319166001600160a01b039290921691821790556000908152600960209081526040808320805460ff19166001908117909155308085529252918290205491516370a0823160e01b8152600481018290526107b69290600080516020612bd2833981519152906370a0823190602401602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af9190612844565b6000611136565b600b546107c39042612890565b600a8190556107d3906000612890565b600c55565b3360009081526001602052604081205461082a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f2062616c616e636560681b6044820152606401610501565b61083533848461138f565b5060015b92915050565b6000546001600160a01b031633146108695760405162461bcd60e51b81526004016105019061281d565b604080518082018252600b81526a139bdd08185b1b1bddd95960aa1b6020808301919091526001600160a01b038516600090815260069091529190912054819060ff16156108ca5760405162461bcd60e51b81526004016105019190612656565b5060085481906001600160a01b038581169116036108fb5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b03841630036109265760405162461bcd60e51b81526004016105019190612656565b507f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f6001600160a01b0316836001600160a01b03161415819061097c5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d036109bb5760405162461bcd60e51b81526004016105019190612656565b50506001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a125760405162461bcd60e51b81526004016105019061281d565b306001600160a01b03821603610a585760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610501565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac39190612844565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3791906128a3565b505050565b6000610b4a6009600a6129a4565b610b5890633b9aca006129b3565b905090565b6001600160a01b0383166000908152600260209081526040808320338452909152812054821115610bd05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a20616d6f756e74206578636565647320616c6c6f77616e6365006044820152606401610501565b6001600160a01b038416600090815260026020908152604080832033845290915281208054849290610c039084906129ca565b90915550610c149050848484611452565b5060019392505050565b6000546001600160a01b03163314610c485760405162461bcd60e51b81526004016105019061281d565b604080518082018252600b81526a139bdd08185b1b1bddd95960aa1b6020808301919091526001600160a01b038516600090815260099091529190912054819060ff1615610ca95760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b0384163003610cd45760405162461bcd60e51b81526004016105019190612656565b507f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f6001600160a01b0316836001600160a01b031614158190610d2a5760405162461bcd60e51b81526004016105019190612656565b50806001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d03610d695760405162461bcd60e51b81526004016105019190612656565b50506001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b33600090815260016020526040902054811115610de35760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b6044820152606401610501565b3360009081526001602052604081208054839290610e029084906129ca565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498054839290610e42908490612890565b909155505060405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b6000546001600160a01b03163314610eac5760405162461bcd60e51b81526004016105019061281d565b610eb461178b565b565b6000546001600160a01b03163314610ee05760405162461bcd60e51b81526004016105019061281d565b610eea8282611aaf565b5050565b6000546001600160a01b03163314610f185760405162461bcd60e51b81526004016105019061281d565b610eb46000611c47565b6000546001600160a01b03163314610f4c5760405162461bcd60e51b81526004016105019061281d565b60008111610f945760405162461bcd60e51b815260206004820152601560248201527405468726573686f6c642063616e6e6f74206265203605c1b6044820152606401610501565b600355565b600080600080600080610faa611c9b565b91989097509095509350505050565b6000610835338484611452565b6000546001600160a01b03163314610ff05760405162461bcd60e51b81526004016105019061281d565b6001600160a01b03811660009081526009602052604090205460ff1615801561103657506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b801561104b57506001600160a01b0381163014155b801561105f57506001600160a01b03811615155b61106857600080fd5b6001600160a01b03166000818152600660205260409020805460ff19166001179055600780546001600160a01b0319169091179055565b6000806000806110ad611d3c565b905060006110bd6009600a6129a4565b6110cb90633b9aca006129b3565b306000908152600160205260409020546110e590846129b3565b6110ef91906129dd565b600354929690955091935090915050565b6000546001600160a01b0316331461112a5760405162461bcd60e51b81526004016105019061281d565b61113381611c47565b50565b6040516370a0823160e01b815230600482015283906001600160a01b038616906370a0823190602401602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190612844565b10156111e25760405162461bcd60e51b81526020600482015260116024820152704e6f7420656e6f75676820746f6b656e7360781b6044820152606401610501565b6040516370a0823160e01b81523060048201528290600080516020612bd2833981519152906370a0823190602401602060405180830381865afa15801561122d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112519190612844565b10156112915760405162461bcd60e51b815260206004820152600f60248201526e4e6f7420656e6f756768205553444360881b6044820152606401610501565b61129b8484611e58565b6112b3600080516020612bd283398151915283611e58565b6000546001600160a01b031681156112c9575060005b60405162e8e33760e81b8152600080516020612bd283398151915260048201526001600160a01b038087166024830152604482018590526064820186905260006084830181905260a4830152821660c48201524260e4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063e8e3370090610104016060604051808303816000875af1158015611361573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138591906129ff565b5050505050505050565b6001600160a01b038316158015906113af57506001600160a01b03821615155b6113f15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f206164647265737360681b6044820152606401610501565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383161580159061147257506001600160a01b03821615155b6114b45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f206164647265737360681b6044820152606401610501565b6001600160a01b03831660009081526001602052604090205481111561151c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20616d6f756e7420657863656564732062616c616e63650000006044820152606401610501565b611527838383611ff2565b6115655760405162461bcd60e51b815260206004820152600f60248201526e131a5b5a5d1cc8195e18d959591959608a1b6044820152606401610501565b600a5442116115a45760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b6044820152606401610501565b600a54421180156115b65750600c5442105b80156115c15750483a115b1561161a5760006115d2483a6129ca565b90506402540be4008082106116175760405162461bcd60e51b815260206004820152600b60248201526a139bdd08195b98589b195960aa1b6044820152606401610501565b50505b600d5460ff1615801561164657506001600160a01b03831660009081526006602052604090205460ff16155b801561166a57506001600160a01b03821660009081526009602052604090205460ff165b156116775761167761178b565b600080600061168786868661210e565b9194509250905060008161169b8486612890565b6116a59190612890565b6001600160a01b0388166000908152600160205260408120805492935087929091906116d29084906129ca565b909155505030600090815260016020526040812080548392906116f6908490612890565b90915550611706905081866129ca565b6001600160a01b0387166000908152600160205260408120805490919061172e908490612890565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161177a91815260200190565b60405180910390a350505050505050565b600d805460ff1916600117905560006117a2612225565b905060008060006117b1611c9b565b919450925090506000816117c58486612a2d565b6117cf9190612a2d565b3060009081526001602052604090205490915060ff8216158015906117f45750858110155b15611a9d575084600060ff8084169061180f908816846129b3565b61181991906129dd565b9050600060028460ff168760ff168561183291906129b3565b61183c91906129dd565b61184691906129dd565b905060008460ff168660ff168561185d91906129b3565b61186791906129dd565b90506000826118768386612890565b6118809190612890565b905061188e6009600a6129a4565b8110611a985760006118b130600080516020612bd2833981519152846001612393565b90506000826118c086846129b3565b6118ca91906129dd565b905060006002846118db89866129b3565b6118e591906129dd565b6118ef91906129dd565b90506000846118fe87866129b3565b61190891906129dd565b905060ff8c1615611920576119203088856001611136565b60ff8d161561197f57600061195a600080516020612bd28339815191527306450dee7fd2fb8e39061434babcfc05599a6fb8856000612393565b905061197d7306450dee7fd2fb8e39061434babcfc05599a6fb882856001611136565b505b60ff8b1615611a93576040516370a0823160e01b8152306004820152600090600080516020612bd2833981519152906370a0823190602401602060405180830381865afa1580156119d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f89190612844565b905080821115611a06578091505b8115611a915760075460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101839052600080516020612bd28339815191529063a9059cbb906044016020604051808303816000875af1158015611a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8f91906128a3565b505b505b505050505b505050505b5050600d805460ff1916905550505050565b6000611abd6009600a6129a4565b611ac890600a6129b3565b6103e861ffff8516611adc6009600a6129a4565b611aea90633b9aca006129b3565b611af491906129b3565b611afe91906129dd565b611b089190612890565b90506000611b186009600a6129a4565b611b2390600a6129b3565b6103e861ffff8516611b376009600a6129a4565b611b4590633b9aca006129b3565b611b4f91906129b3565b611b5991906129dd565b611b639190612890565b90506004548210158015611b7957506005548110155b611bbe5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206465637265617365206c696d69747360501b6044820152606401610501565b611bca6009600a6129a4565b611bd890633b9aca006129b3565b821115611bfc57611beb6009600a6129a4565b611bf990633b9aca006129b3565b91505b611c086009600a6129a4565b611c1690633b9aca006129b3565b811115611c3a57611c296009600a6129a4565b611c3790633b9aca006129b3565b90505b6004919091556005555050565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000806000806000806000611cae611d3c565b9050620186a0811015611ccc57600193506000925060049150611d2f565b620186a08110158015611ce157506203d09081105b15611cf757600193506000925060039150611d2f565b6203d0908110158015611d0c5750620f424081105b15611d2257600193506000925060019150611d2f565b6000935060009250600091505b5091959094509092509050565b60085460009081906001600160a01b031615611e53576008546001600160a01b031660009081526001602052604081205490611d997f0000000000000000000000000000000000000000000000000000000000000006600a6129a4565b6008546040516370a0823160e01b81526001600160a01b039091166004820152600080516020612bd2833981519152906370a0823190602401602060405180830381865afa158015611def573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e139190612844565b611e1d91906129dd565b905081611e2c6009600a6129a4565b611e3a90633b9aca006129b3565b611e4490836129b3565b611e4e91906129dd565b925050505b919050565b6000306001600160a01b03841603611eda5750306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205480821115610b3757306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290206000199055505050565b604051636eb1769f60e11b8152306004820152737a250d5630b4cf539739df2c5dacb4c659f2488d60248201526001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015611f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5c9190612844565b905080821115610b375760405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d600482015260001960248201526001600160a01b0384169063095ea7b3906044016020604051808303816000875af1158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fec91906128a3565b50505050565b6004546000906001908311801561202257506001600160a01b03851660009081526006602052604090205460ff16155b801561204757506001600160a01b03841660009081526006602052604090205460ff16155b15612050575060005b6001600160a01b0384166000908152600160208190526040822054909190612079908690612890565b9050600554811180156120a557506001600160a01b03871660009081526006602052604090205460ff16155b80156120ca57506001600160a01b03861660009081526006602052604090205460ff16155b80156120ef57506001600160a01b03861660009081526009602052604090205460ff16155b156120f957600091505b8280156121035750815b979650505050505050565b6001600160a01b0383166000908152600960205260408120548190819081908190819060ff16801561215957506001600160a01b03881660009081526006602052604090205460ff16155b806121a057506001600160a01b03881660009081526009602052604090205460ff1680156121a057506001600160a01b03891660009081526006602052604090205460ff16155b156122125760008060006121b2611c9b565b9194509250905060646121c860ff85168c6129b3565b6121d291906129dd565b955060646121e360ff84168c6129b3565b6121ed91906129dd565b945060646121fe60ff83168c6129b3565b61220891906129dd565b9350505050610faa565b5060009889985088975095505050505050565b60408051600280825260608201835260009283929190602083019080368337019050509050308160008151811061225e5761225e612a5c565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020612bd2833981519152816001815181106122a0576122a0612a5c565b6001600160a01b03909216602092830291909101909101526000737a250d5630b4cf539739df2c5dacb4c659f2488d631f00ca746122ff7f0000000000000000000000000000000000000000000000000000000000000006600a6129a4565b60035461230c91906129b3565b846040518363ffffffff1660e01b815260040161232a929190612ab6565b600060405180830381865afa158015612347573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261236f9190810190612ad7565b90508060008151811061238457612384612a5c565b60200260200101519250505090565b60003081808415156001036123ca577f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f9250612435565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa15801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190612844565b91505b61243f8887611e58565b604080516002808252606082018352600092602083019080368337019050509050888160008151811061247457612474612a5c565b60200260200101906001600160a01b031690816001600160a01b03168152505087816001815181106124a8576124a8612a5c565b6001600160a01b0390921660209283029190910190910152604051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d90635c11d79590612500908a9060009086908a904290600401612b95565b600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050508515156001036125cf57604051636433bbd760e01b81526001600160a01b0389811660048301527f00000000000000000000000013b867889b797d2d90d77d7ac47e3f9a5fb7356f1690636433bbd7906024016020604051808303816000875af11580156125a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c89190612844565b915061264a565b6040516370a0823160e01b81523060048201526000906001600160a01b038a16906370a0823190602401602060405180830381865afa158015612616573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263a9190612844565b905061264684826129ca565b9250505b50979650505050505050565b600060208083528351808285015260005b8181101561268357858101830151858201604001528201612667565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113357600080fd5b600080604083850312156126cc57600080fd5b82356126d7816126a4565b946020939093013593505050565b801515811461113357600080fd5b6000806040838503121561270657600080fd5b8235612711816126a4565b91506020830135612721816126e5565b809150509250929050565b60006020828403121561273e57600080fd5b8135612749816126a4565b9392505050565b60008060006060848603121561276557600080fd5b8335612770816126a4565b92506020840135612780816126a4565b929592945050506040919091013590565b6000602082840312156127a357600080fd5b5035919050565b803561ffff81168114611e5357600080fd5b600080604083850312156127cf57600080fd5b6127d8836127aa565b91506127e6602084016127aa565b90509250929050565b6000806040838503121561280257600080fd5b823561280d816126a4565b91506020830135612721816126a4565b6020808252600d908201526c2737ba103a34329037bbb732b960991b604082015260600190565b60006020828403121561285657600080fd5b5051919050565b60006020828403121561286f57600080fd5b8151612749816126a4565b634e487b7160e01b600052601160045260246000fd5b808201808211156108395761083961287a565b6000602082840312156128b557600080fd5b8151612749816126e5565b600181815b808511156128fb5781600019048211156128e1576128e161287a565b808516156128ee57918102915b93841c93908002906128c5565b509250929050565b60008261291257506001610839565b8161291f57506000610839565b8160018114612935576002811461293f5761295b565b6001915050610839565b60ff8411156129505761295061287a565b50506001821b610839565b5060208310610133831016604e8410600b841016171561297e575081810a610839565b61298883836128c0565b806000190482111561299c5761299c61287a565b029392505050565b600061274960ff841683612903565b80820281158282048414176108395761083961287a565b818103818111156108395761083961287a565b6000826129fa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215612a1457600080fd5b8351925060208401519150604084015190509250925092565b60ff81811683821601908111156108395761083961287a565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612aab5781516001600160a01b031687529582019590820190600101612a86565b509495945050505050565b828152604060208201526000612acf6040830184612a72565b949350505050565b60006020808385031215612aea57600080fd5b825167ffffffffffffffff80821115612b0257600080fd5b818501915085601f830112612b1657600080fd5b815181811115612b2857612b28612a46565b8060051b604051601f19603f83011681018181108582111715612b4d57612b4d612a46565b604052918252848201925083810185019188831115612b6b57600080fd5b938501935b82851015612b8957845184529385019392850192612b70565b98975050505050505050565b85815284602082015260a060408201526000612bb460a0830186612a72565b6001600160a01b039490941660608301525060800152939250505056fe000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48a2646970667358221220849b20ef69bfbe88704ebfc95fcb8931f7db7ab21db4fe87b1bbde560ca4fdbd64736f6c63430008110033

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.