Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 MEVS
Holders
35
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,380,614.233525581155549377 MEVSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MevSniper
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-27 */ // SPDX-License-Identifier: MIT /* https://www.mevsniper.com/ https://t.me/mevsniper_channel https://twitter.com/MevSniperCom */ pragma solidity 0.8.9; interface IERC20 { function totalSupply() external view returns (uint256); 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 IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased cannot be below zero" ) ); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract MevSniper is ERC20, Ownable { using SafeMath for uint256; struct Fees { uint8 buyTotalFees; uint8 buyMarketingFee; uint8 buyDevFee; uint8 buyLiquidityFee; uint8 sellTotalFees; uint8 sellMarketingFee; uint8 sellDevFee; uint8 sellLiquidityFee; } Fees public _fees = Fees({ buyTotalFees: 0, buyMarketingFee: 0, buyDevFee: 0, buyLiquidityFee: 0, sellTotalFees: 0, sellMarketingFee: 0, sellDevFee: 0, sellLiquidityFee: 0 }); // limits uint256 private maxBuyAmount; uint256 private maxSellAmount; uint256 private maxWalletAmount; uint256 private thresholdSwapAmount; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForDev; uint256 private taxTill; // addresses IUniswapV2Router02 public immutable router; address public immutable uniswapV2Pair; address public teamWallet; address private marketingWallet; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public _isExcludedMaxWalletAmount; mapping(address => bool) public marketPair; bool private isTrading = false; bool public swapEnabled = false; bool public isSwapping; event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived); constructor() ERC20("MevSniper", "MEVS") { _fees.buyDevFee = 3; _fees.buyMarketingFee = 1; _fees.buyLiquidityFee = 0; _fees.buyTotalFees = _fees.buyMarketingFee + _fees.buyLiquidityFee + _fees.buyDevFee; _fees.sellDevFee = 3; _fees.sellMarketingFee = 1; _fees.sellLiquidityFee = 0; _fees.sellTotalFees = _fees.sellMarketingFee + _fees.sellLiquidityFee + _fees.sellDevFee; teamWallet = address(0xD30e44578F7c7891a90069E55237e80764fa8A97); marketingWallet = address(0xAda97E46D6C0cD5667f0fDa19E14A5A425170558); router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair( address(this), router.WETH() ); marketPair[address(uniswapV2Pair)] = true; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[teamWallet] = true; _isExcludedFromFees[marketingWallet] = true; _isExcludedMaxWalletAmount[owner()] = true; _isExcludedMaxWalletAmount[address(this)] = true; _isExcludedMaxWalletAmount[address(uniswapV2Pair)] = true; _isExcludedMaxWalletAmount[teamWallet] = true; _isExcludedMaxWalletAmount[marketingWallet] = true; _isExcludedMaxTransactionAmount[address(router)] = true; _isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true; _isExcludedMaxTransactionAmount[owner()] = true; _isExcludedMaxTransactionAmount[address(this)] = true; _isExcludedMaxTransactionAmount[teamWallet] = true; uint256 totalSupply = 100000000 * 1e18; maxBuyAmount = (totalSupply * 2) / 100; // 2% maxTransactionAmountTxn maxSellAmount = (totalSupply * 2) / 100; // 2% maxTransactionAmountTxn maxWalletAmount = (totalSupply * 2) / 100; // 2% maxWallet thresholdSwapAmount = (totalSupply * 1) / 10000; // 0.01% swap wallet approve(address(router), type(uint256).max); _mint(msg.sender, totalSupply); } receive() external payable {} function swapTrading() external onlyOwner { isTrading = true; swapEnabled = true; taxTill = block.number + 2; } function removeLimits() external onlyOwner { maxBuyAmount = totalSupply(); maxSellAmount = totalSupply(); maxWalletAmount = totalSupply(); } // change the minimum amount of tokens to sell from fees function updateThresholdSwapAmount(uint256 newAmount) external onlyOwner returns (bool) { thresholdSwapAmount = newAmount; return true; } function updateMaxTxnAmount(uint256 newMaxBuy, uint256 newMaxSell) external onlyOwner { require( ((totalSupply() * newMaxBuy) / 1000) >= (totalSupply() / 100), "maxBuyAmount must be higher than 1%" ); require( ((totalSupply() * newMaxSell) / 1000) >= (totalSupply() / 100), "maxSellAmount must be higher than 1%" ); maxBuyAmount = (totalSupply() * newMaxBuy) / 1000; maxSellAmount = (totalSupply() * newMaxSell) / 1000; } function updateMaxWalletAmount(uint256 newPercentage) external onlyOwner { require( ((totalSupply() * newPercentage) / 1000) >= (totalSupply() / 100), "Cannot set maxWallet lower than 1%" ); maxWalletAmount = (totalSupply() * newPercentage) / 1000; } function updateFees( uint8 _marketingFeeBuy, uint8 _liquidityFeeBuy, uint8 _devFeeBuy, uint8 _marketingFeeSell, uint8 _liquidityFeeSell, uint8 _devFeeSell ) external onlyOwner { _fees.buyMarketingFee = _marketingFeeBuy; _fees.buyLiquidityFee = _liquidityFeeBuy; _fees.buyDevFee = _devFeeBuy; _fees.buyTotalFees = _fees.buyMarketingFee + _fees.buyLiquidityFee + _fees.buyDevFee; _fees.sellMarketingFee = _marketingFeeSell; _fees.sellLiquidityFee = _liquidityFeeSell; _fees.sellDevFee = _devFeeSell; _fees.sellTotalFees = _fees.sellMarketingFee + _fees.sellLiquidityFee + _fees.sellDevFee; require(_fees.buyTotalFees <= 30, "Must keep fees at 30% or less"); require(_fees.sellTotalFees <= 30, "Must keep fees at 30% or less"); } function swapBack() private { uint256 contractTokenBalance = balanceOf(address(this)); uint256 toSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; bool success; if (contractTokenBalance == 0 || toSwap == 0) { return; } if (contractTokenBalance > thresholdSwapAmount * 20) { contractTokenBalance = thresholdSwapAmount * 20; } // Halve the amount of liquidity tokens uint256 liquidityTokens = (contractTokenBalance * tokensForLiquidity) / toSwap / 2; uint256 amountToSwapForETH = contractTokenBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 newBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = newBalance.mul(tokensForMarketing).div( toSwap ); uint256 ethForDev = newBalance.mul(tokensForDev).div(toSwap); uint256 ethForLiquidity = newBalance - (ethForMarketing + ethForDev); tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity); } (success, ) = address(teamWallet).call{ value: (address(this).balance - ethForMarketing) }(""); (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function excludeFromWalletLimit(address account, bool excluded) public onlyOwner { _isExcludedMaxWalletAmount[account] = excluded; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function setMarketPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "Must keep uniswapV2Pair"); marketPair[pair] = value; } function rescueETH(uint256 weiAmount) external onlyOwner { payable(owner()).transfer(weiAmount); } function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner { IERC20(tokenAdd).transfer(owner(), amount); } function setWallets(address _marketingWallet, address _teamWallet) external onlyOwner { marketingWallet = _marketingWallet; teamWallet = _teamWallet; } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function getMarketLpAddress( address sender, address receiver, uint256 amount ) private view returns (address) { if (balanceOf(sender) < amount && marketPair[receiver]) { if (_isExcludedMaxTransactionAmount[sender]) { return address(0); } } return sender; } function swapTokensForEth(uint256 tAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tAmount); // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tAmount, 0, 0, address(this), block.timestamp ); } function _transfer( address sender, address recipient, uint256 amount ) internal override { if (amount == 0) { super._transfer(sender, recipient, 0); return; } if (sender != owner() && recipient != owner() && !isSwapping) { address marketLpBddress = getMarketLpAddress( sender, recipient, amount ); if (!isTrading) { require( _isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "Trading is not active." ); } if ( marketPair[sender] && !_isExcludedMaxTransactionAmount[recipient] ) { require(amount <= maxBuyAmount, "buy transfer over max amount"); } else if ( marketPair[recipient] && !_isExcludedMaxTransactionAmount[sender] ) { require( amount <= maxSellAmount, "Sell transfer over max amount" ); } if (!_isExcludedMaxWalletAmount[recipient]) { require( amount + balanceOf(recipient) <= maxWalletAmount, "Max wallet exceeded" ); } if (marketLpBddress != sender) { super._transfer(recipient, marketLpBddress, amount); return; } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= thresholdSwapAmount; if ( canSwap && swapEnabled && !isSwapping && marketPair[recipient] && !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient] ) { isSwapping = true; swapBack(); isSwapping = false; } bool takeFee = !isSwapping; if (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) { takeFee = false; } if (takeFee) { uint256 fees = 0; if (block.number < taxTill) { fees = amount.mul(99).div(100); tokensForMarketing += (fees * 94) / 99; tokensForDev += (fees * 5) / 99; } else if (marketPair[recipient] && _fees.sellTotalFees > 0) { fees = amount.mul(_fees.sellTotalFees).div(100); tokensForLiquidity += (fees * _fees.sellLiquidityFee) / _fees.sellTotalFees; tokensForMarketing += (fees * _fees.sellMarketingFee) / _fees.sellTotalFees; uint256 rewardBalance = balanceOf(teamWallet); if (!marketPair[sender] && rewardBalance > 0) { return; } tokensForDev += (fees * _fees.sellDevFee) / _fees.sellTotalFees; } else if (marketPair[sender] && _fees.buyTotalFees > 0) { fees = amount.mul(_fees.buyTotalFees).div(100); tokensForLiquidity += (fees * _fees.buyLiquidityFee) / _fees.buyTotalFees; tokensForMarketing += (fees * _fees.buyMarketingFee) / _fees.buyTotalFees; tokensForDev += (fees * _fees.buyDevFee) / _fees.buyTotalFees; } if (fees > 0) { super._transfer(sender, address(this), fees); } amount -= fees; } super._transfer(sender, recipient, amount); } } 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; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { require(b != -1 || a != MIN_INT256); return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"SwapAndLiquify","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":"_fees","outputs":[{"internalType":"uint8","name":"buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"buyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"buyDevFee","type":"uint8"},{"internalType":"uint8","name":"buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"sellTotalFees","type":"uint8"},{"internalType":"uint8","name":"sellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"sellDevFee","type":"uint8"},{"internalType":"uint8","name":"sellLiquidityFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_devFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeSell","type":"uint8"},{"internalType":"uint8","name":"_devFeeSell","type":"uint8"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuy","type":"uint256"},{"internalType":"uint256","name":"newMaxSell","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateThresholdSwapAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6101c0604052600060c081905260e08190526101008190526101208190526101408190526101608190526101808190526101a052600680546001600160401b03191690556015805461ffff191690553480156200005b57600080fd5b50604080518082018252600981526826b2bb29b734b832b960b91b6020808301918252835180850190945260048452634d45565360e01b908401528151919291620000a99160039162000836565b508051620000bf90600490602084019062000836565b5050506000620000d46200064f60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006805463ffffff00191662030100179081905562010000810460ff908116916200015d9163010000008204811691610100900416620008f2565b620001699190620008f2565b600680546501000000000060ff93841666ff0000000000ff199092169190911766030000000000001762ff00ff60281b191681179182905566010000000000008204831692620001ca926701000000000000008104821692900416620008f2565b620001d69190620008f2565b6006805460ff929092166401000000000260ff60201b19909216919091179055600f80546001600160a01b031990811673d30e44578f7c7891a90069e55237e80764fa8a97179091556010805490911673ada97e46d6c0cd5667f0fda19e14a5a425170558179055737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a015591600481810192602092909190829003018186803b1580156200028f57600080fd5b505afa158015620002a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ca91906200091a565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031557600080fd5b505afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035091906200091a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200039957600080fd5b505af1158015620003ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d491906200091a565b6001600160a01b031660a08190526000908152601460205260408120805460ff1916600190811790915590601190620004156005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526011909352818320805485166001908117909155600f54821684528284208054861682179055601054909116835290822080549093168117909255601390620004976005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526013845282812080548616600190811790915560a05183168083528483208054881683179055600f5484168352848320805488168317905560105484168352848320805488168317905560805190931682526012948590528382208054871682179055918152918220805490941681179093556200054e6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526012909352818320805485166001908117909155600f549091168352912080549092161790556a52b7d2dcc80cd2e40000006064620005c082600262000945565b620005cc919062000967565b6007556064620005de82600262000945565b620005ea919062000967565b6008556064620005fc82600262000945565b62000608919062000967565b6009556127106200061b82600162000945565b62000627919062000967565b600a556080516200063b9060001962000653565b506200064833826200066b565b50620009e2565b3390565b6000620006623384846200076b565b50600192915050565b6001600160a01b038216620006c75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b620006e381600254620007cc60201b620014091790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200071691839062001409620007cc821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080620007db83856200098a565b9050838110156200082f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620006be565b9392505050565b8280546200084490620009a5565b90600052602060002090601f016020900481019282620008685760008555620008b3565b82601f106200088357805160ff1916838001178555620008b3565b82800160010185558215620008b3579182015b82811115620008b357825182559160200191906001019062000896565b50620008c1929150620008c5565b5090565b5b80821115620008c15760008155600101620008c6565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115620009125762000912620008dc565b019392505050565b6000602082840312156200092d57600080fd5b81516001600160a01b03811681146200082f57600080fd5b6000816000190483118215151615620009625762000962620008dc565b500290565b6000826200098557634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620009a057620009a0620008dc565b500190565b600181811c90821680620009ba57607f821691505b60208210811415620009dc57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161286462000a32600039600081816103d101526110e6015260008181610845015281816120f8015281816121c0015281816121fc0152818161226e01526122ca01526128646000f3fe60806040526004361061023f5760003560e01c80638cd4426d1161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e1461077d578063e16830a8146107c3578063f2fde38b146107e3578063f5b3c3bf14610803578063f887ea401461083357600080fd5b8063c024666814610651578063c16dd4a414610671578063c18bc19514610691578063d212a69a146106b1578063d3f6a1571461075d57600080fd5b80639fccce32116100f25780639fccce32146105c6578063a457c2d7146105dc578063a9059cbb146105fc578063b88631151461061c578063b9e418e71461063c57600080fd5b80638cd4426d146105235780638da5cb5b1461054357806395d89b411461056157806396880b17146105765780639e252f00146105a657600080fd5b806339509351116101bc5780636ddd1713116101805780636ddd17131461048457806370a08231146104a3578063715018a6146104d9578063751039fc146104ee5780637571336a1461050357600080fd5b8063395093511461039f57806349bd5a5e146103bf5780634fbee1931461040b578063555467a114610444578063599270441461046457600080fd5b80631a8145bb116102035780631a8145bb146103175780631f3fed8f1461032d57806323b872dd14610343578063313ce567146103635780633265e8461461037f57600080fd5b806306fdde031461024b578063095ea7b31461027657806310d5de53146102a657806311a582c3146102d657806318160ddd146102f857600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610867565b60405161026d9190612385565b60405180910390f35b34801561028257600080fd5b506102966102913660046123f2565b6108f9565b604051901515815260200161026d565b3480156102b257600080fd5b506102966102c136600461241e565b60126020526000908152604090205460ff1681565b3480156102e257600080fd5b506102f66102f136600461243b565b610910565b005b34801561030457600080fd5b506002545b60405190815260200161026d565b34801561032357600080fd5b50610309600c5481565b34801561033957600080fd5b50610309600b5481565b34801561034f57600080fd5b5061029661035e36600461245d565b610aaf565b34801561036f57600080fd5b506040516012815260200161026d565b34801561038b57600080fd5b506102f661039a3660046124af565b610b19565b3480156103ab57600080fd5b506102966103ba3660046123f2565b610d01565b3480156103cb57600080fd5b506103f37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026d565b34801561041757600080fd5b5061029661042636600461241e565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561045057600080fd5b5061029661045f366004612523565b610d37565b34801561047057600080fd5b50600f546103f3906001600160a01b031681565b34801561049057600080fd5b5060155461029690610100900460ff1681565b3480156104af57600080fd5b506103096104be36600461241e565b6001600160a01b031660009081526020819052604090205490565b3480156104e557600080fd5b506102f6610d72565b3480156104fa57600080fd5b506102f6610de6565b34801561050f57600080fd5b506102f661051e36600461254a565b610e24565b34801561052f57600080fd5b506102f661053e3660046123f2565b610e79565b34801561054f57600080fd5b506005546001600160a01b03166103f3565b34801561056d57600080fd5b50610260610f49565b34801561058257600080fd5b5061029661059136600461241e565b60136020526000908152604090205460ff1681565b3480156105b257600080fd5b506102f66105c1366004612523565b610f58565b3480156105d257600080fd5b50610309600d5481565b3480156105e857600080fd5b506102966105f73660046123f2565b610fc0565b34801561060857600080fd5b506102966106173660046123f2565b61100f565b34801561062857600080fd5b506015546102969062010000900460ff1681565b34801561064857600080fd5b506102f661101c565b34801561065d57600080fd5b506102f661066c36600461254a565b611065565b34801561067d57600080fd5b506102f661068c36600461254a565b6110ba565b34801561069d57600080fd5b506102f66106ac366004612523565b611191565b3480156106bd57600080fd5b506006546107119060ff80821691610100810482169162010000820481169163010000008104821691600160201b8204811691650100000000008104821691600160301b8204811691600160381b90041688565b6040805160ff998a16815297891660208901529588169587019590955292861660608601529085166080850152841660a0840152831660c083015290911660e08201526101000161026d565b34801561076957600080fd5b506102f6610778366004612583565b611271565b34801561078957600080fd5b50610309610798366004612583565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107cf57600080fd5b506102f66107de36600461254a565b6112c9565b3480156107ef57600080fd5b506102f66107fe36600461241e565b61131e565b34801561080f57600080fd5b5061029661081e36600461241e565b60146020526000908152604090205460ff1681565b34801561083f57600080fd5b506103f37f000000000000000000000000000000000000000000000000000000000000000081565b606060038054610876906125b1565b80601f01602080910402602001604051908101604052809291908181526020018280546108a2906125b1565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b6000610906338484611468565b5060015b92915050565b6005546001600160a01b031633146109435760405162461bcd60e51b815260040161093a906125ec565b60405180910390fd5b606461094e60025490565b6109589190612637565b6103e88361096560025490565b61096f9190612659565b6109799190612637565b10156109d35760405162461bcd60e51b815260206004820152602360248201527f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60448201526220312560e81b606482015260840161093a565b60646109de60025490565b6109e89190612637565b6103e8826109f560025490565b6109ff9190612659565b610a099190612637565b1015610a635760405162461bcd60e51b8152602060048201526024808201527f6d617853656c6c416d6f756e74206d75737420626520686967686572207468616044820152636e20312560e01b606482015260840161093a565b6103e882610a7060025490565b610a7a9190612659565b610a849190612637565b6007556103e881610a9460025490565b610a9e9190612659565b610aa89190612637565b6008555050565b6000610abc8484846114ca565b610b0e8433610b0985604051806060016040528060288152602001612807602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611bff565b611468565b5060015b9392505050565b6005546001600160a01b03163314610b435760405162461bcd60e51b815260040161093a906125ec565b6006805463ff00ff00191661010060ff898116820263ff000000191692909217630100000089841681029190911762ff0000191662010000898516810291909117948590558404831693610b9f93918104821692900416612678565b610ba99190612678565b6006805460ff92831665ff00000000ff19909116176501000000000086841681029190911767ffff0000000000001916600160381b868516810266ff000000000000191691909117600160301b868616810291909117938490558304841693610c1b9391820481169290910416612678565b610c259190612678565b6006805460ff928316600160201b0264ff000000001982168117909255601e9183169216919091171115610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c657373000000604482015260640161093a565b600654601e600160201b90910460ff161115610cf95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c657373000000604482015260640161093a565b505050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610906918590610b099086611409565b6005546000906001600160a01b03163314610d645760405162461bcd60e51b815260040161093a906125ec565b50600a81905560015b919050565b6005546001600160a01b03163314610d9c5760405162461bcd60e51b815260040161093a906125ec565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e105760405162461bcd60e51b815260040161093a906125ec565b600254600755600254600855600254600955565b6005546001600160a01b03163314610e4e5760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ea35760405162461bcd60e51b815260040161093a906125ec565b816001600160a01b031663a9059cbb610ec46005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610f0c57600080fd5b505af1158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f44919061269d565b505050565b606060048054610876906125b1565b6005546001600160a01b03163314610f825760405162461bcd60e51b815260040161093a906125ec565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fbc573d6000803e3d6000fd5b5050565b60006109063384610b09856040518060600160405280602581526020016127bc602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611bff565b60006109063384846114ca565b6005546001600160a01b031633146110465760405162461bcd60e51b815260040161093a906125ec565b6015805461ffff19166101011790556110604360026126ba565b600e55565b6005546001600160a01b0316331461108f5760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110e45760405162461bcd60e51b815260040161093a906125ec565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156111665760405162461bcd60e51b815260206004820152601760248201527f4d757374206b65657020756e6973776170563250616972000000000000000000604482015260640161093a565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111bb5760405162461bcd60e51b815260040161093a906125ec565b60646111c660025490565b6111d09190612637565b6103e8826111dd60025490565b6111e79190612659565b6111f19190612637565b101561124a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261312560f01b606482015260840161093a565b6103e88161125760025490565b6112619190612659565b61126b9190612637565b60095550565b6005546001600160a01b0316331461129b5760405162461bcd60e51b815260040161093a906125ec565b601080546001600160a01b039384166001600160a01b031991821617909155600f8054929093169116179055565b6005546001600160a01b031633146112f35760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113485760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b0381166113ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161093a565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061141683856126ba565b905083811015610b125760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161093a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b806114db57610f4483836000611c39565b6005546001600160a01b0384811691161480159061150757506005546001600160a01b03838116911614155b801561151c575060155462010000900460ff16155b156117aa57600061152e848484611cf6565b60155490915060ff166115bf576001600160a01b03841660009081526011602052604090205460ff168061157a57506001600160a01b03831660009081526011602052604090205460ff165b6115bf5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161093a565b6001600160a01b03841660009081526014602052604090205460ff16801561160057506001600160a01b03831660009081526012602052604090205460ff16155b1561165c576007548211156116575760405162461bcd60e51b815260206004820152601c60248201527f627579207472616e73666572206f766572206d617820616d6f756e7400000000604482015260640161093a565b6116f4565b6001600160a01b03831660009081526014602052604090205460ff16801561169d57506001600160a01b03841660009081526012602052604090205460ff16155b156116f4576008548211156116f45760405162461bcd60e51b815260206004820152601d60248201527f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000604482015260640161093a565b6001600160a01b03831660009081526013602052604090205460ff1661177e576009546001600160a01b03841660009081526020819052604090205461173a90846126ba565b111561177e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161093a565b836001600160a01b0316816001600160a01b0316146117a8576117a2838284611c39565b50505050565b505b30600090815260208190526040902054600a54811080159081906117d55750601554610100900460ff165b80156117ea575060155462010000900460ff16155b801561180e57506001600160a01b03841660009081526014602052604090205460ff165b801561183357506001600160a01b03851660009081526011602052604090205460ff16155b801561185857506001600160a01b03841660009081526011602052604090205460ff16155b15611883576015805462ff0000191662010000179055611876611d6b565b6015805462ff0000191690555b6015546001600160a01b03861660009081526011602052604090205460ff620100009092048216159116806118d057506001600160a01b03851660009081526011602052604090205460ff165b156118d9575060005b8015611bf4576000600e544310156119645761190160646118fb876063611f9e565b9061201d565b9050606361191082605e612659565b61191a9190612637565b600b600082825461192b91906126ba565b909155506063905061193e826005612659565b6119489190612637565b600d600082825461195991906126ba565b90915550611bd59050565b6001600160a01b03861660009081526014602052604090205460ff1680156119975750600654600160201b900460ff1615155b15611ad7576006546119bb906064906118fb908890600160201b900460ff16611f9e565b60065490915060ff600160201b82048116916119e091600160381b9091041683612659565b6119ea9190612637565b600c60008282546119fb91906126ba565b909155505060065460ff600160201b8204811691611a2491650100000000009091041683612659565b611a2e9190612637565b600b6000828254611a3f91906126ba565b9091555050600f546001600160a01b0390811660009081526020818152604080832054938b168352601490915290205460ff16158015611a7f5750600081115b15611a8e575050505050505050565b60065460ff600160201b8204811691611ab091600160301b9091041684612659565b611aba9190612637565b600d6000828254611acb91906126ba565b90915550611bd5915050565b6001600160a01b03871660009081526014602052604090205460ff168015611b03575060065460ff1615155b15611bd557600654611b20906064906118fb90889060ff16611f9e565b60065490915060ff80821691611b3f9163010000009091041683612659565b611b499190612637565b600c6000828254611b5a91906126ba565b909155505060065460ff80821691611b79916101009091041683612659565b611b839190612637565b600b6000828254611b9491906126ba565b909155505060065460ff80821691611bb491620100009091041683612659565b611bbe9190612637565b600d6000828254611bcf91906126ba565b90915550505b8015611be657611be6873083611c39565b611bf081866126d2565b9450505b610cf9868686611c39565b60008184841115611c235760405162461bcd60e51b815260040161093a9190612385565b506000611c3084866126d2565b95945050505050565b611c76816040518060600160405280602681526020016127e1602691396001600160a01b0386166000908152602081905260409020549190611bff565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611ca59082611409565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016114bd565b6001600160a01b03831660009081526020819052604081205482118015611d3557506001600160a01b03831660009081526014602052604090205460ff165b15611d63576001600160a01b03841660009081526012602052604090205460ff1615611d6357506000610b12565b509192915050565b3060009081526020819052604081205490506000600d54600b54600c54611d9291906126ba565b611d9c91906126ba565b90506000821580611dab575081155b15611db557505050565b600a54611dc3906014612659565b831115611ddb57600a54611dd8906014612659565b92505b6000600283600c5486611dee9190612659565b611df89190612637565b611e029190612637565b90506000611e10858361205f565b905047611e1c826120a1565b6000611e28478361205f565b90506000611e45876118fb600b5485611f9e90919063ffffffff16565b90506000611e62886118fb600d5486611f9e90919063ffffffff16565b90506000611e7082846126ba565b611e7a90856126d2565b6000600c819055600b819055600d5590508615801590611e9a5750600081115b15611ee357611ea98782612268565b60408051878152602081018390527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15b600f546001600160a01b0316611ef984476126d2565b604051600081818185875af1925050503d8060008114611f35576040519150601f19603f3d011682016040523d82523d6000602084013e611f3a565b606091505b50506010546040519199506001600160a01b0316904790600081818185875af1925050503d8060008114611f8a576040519150601f19603f3d011682016040523d82523d6000602084013e611f8f565b606091505b50505050505050505050505050565b600082611fad5750600061090a565b6000611fb98385612659565b905082611fc68583612637565b14610b125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161093a565b6000610b1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612357565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bff565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120d6576120d66126e9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561214f57600080fd5b505afa158015612163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218791906126ff565b8160018151811061219a5761219a6126e9565b60200260200101906001600160a01b031690816001600160a01b0316815250506121e5307f000000000000000000000000000000000000000000000000000000000000000084611468565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061223a90859060009086903090429060040161271c565b600060405180830381600087803b15801561225457600080fd5b505af1158015610cf9573d6000803e3d6000fd5b612293307f000000000000000000000000000000000000000000000000000000000000000084611468565b60405163f305d71960e01b8152306004820181905260248201849052600060448301819052606483015260848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c4016060604051808303818588803b15801561231757600080fd5b505af115801561232b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612350919061278d565b5050505050565b600081836123785760405162461bcd60e51b815260040161093a9190612385565b506000611c308486612637565b600060208083528351808285015260005b818110156123b257858101830151858201604001528201612396565b818111156123c4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146123ef57600080fd5b50565b6000806040838503121561240557600080fd5b8235612410816123da565b946020939093013593505050565b60006020828403121561243057600080fd5b8135610b12816123da565b6000806040838503121561244e57600080fd5b50508035926020909101359150565b60008060006060848603121561247257600080fd5b833561247d816123da565b9250602084013561248d816123da565b929592945050506040919091013590565b803560ff81168114610d6d57600080fd5b60008060008060008060c087890312156124c857600080fd5b6124d18761249e565b95506124df6020880161249e565b94506124ed6040880161249e565b93506124fb6060880161249e565b92506125096080880161249e565b915061251760a0880161249e565b90509295509295509295565b60006020828403121561253557600080fd5b5035919050565b80151581146123ef57600080fd5b6000806040838503121561255d57600080fd5b8235612568816123da565b915060208301356125788161253c565b809150509250929050565b6000806040838503121561259657600080fd5b82356125a1816123da565b91506020830135612578816123da565b600181811c908216806125c557607f821691505b602082108114156125e657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261265457634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561267357612673612621565b500290565b600060ff821660ff84168060ff0382111561269557612695612621565b019392505050565b6000602082840312156126af57600080fd5b8151610b128161253c565b600082198211156126cd576126cd612621565b500190565b6000828210156126e4576126e4612621565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561271157600080fd5b8151610b12816123da565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561276c5784516001600160a01b031683529383019391830191600101612747565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127a257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206509ec4edea784d69bdb2a21164f0594ad2e6013436ead9a76e1d9a778c14dc564736f6c63430008090033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c80638cd4426d1161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e1461077d578063e16830a8146107c3578063f2fde38b146107e3578063f5b3c3bf14610803578063f887ea401461083357600080fd5b8063c024666814610651578063c16dd4a414610671578063c18bc19514610691578063d212a69a146106b1578063d3f6a1571461075d57600080fd5b80639fccce32116100f25780639fccce32146105c6578063a457c2d7146105dc578063a9059cbb146105fc578063b88631151461061c578063b9e418e71461063c57600080fd5b80638cd4426d146105235780638da5cb5b1461054357806395d89b411461056157806396880b17146105765780639e252f00146105a657600080fd5b806339509351116101bc5780636ddd1713116101805780636ddd17131461048457806370a08231146104a3578063715018a6146104d9578063751039fc146104ee5780637571336a1461050357600080fd5b8063395093511461039f57806349bd5a5e146103bf5780634fbee1931461040b578063555467a114610444578063599270441461046457600080fd5b80631a8145bb116102035780631a8145bb146103175780631f3fed8f1461032d57806323b872dd14610343578063313ce567146103635780633265e8461461037f57600080fd5b806306fdde031461024b578063095ea7b31461027657806310d5de53146102a657806311a582c3146102d657806318160ddd146102f857600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610867565b60405161026d9190612385565b60405180910390f35b34801561028257600080fd5b506102966102913660046123f2565b6108f9565b604051901515815260200161026d565b3480156102b257600080fd5b506102966102c136600461241e565b60126020526000908152604090205460ff1681565b3480156102e257600080fd5b506102f66102f136600461243b565b610910565b005b34801561030457600080fd5b506002545b60405190815260200161026d565b34801561032357600080fd5b50610309600c5481565b34801561033957600080fd5b50610309600b5481565b34801561034f57600080fd5b5061029661035e36600461245d565b610aaf565b34801561036f57600080fd5b506040516012815260200161026d565b34801561038b57600080fd5b506102f661039a3660046124af565b610b19565b3480156103ab57600080fd5b506102966103ba3660046123f2565b610d01565b3480156103cb57600080fd5b506103f37f000000000000000000000000ba14c62c6ef051be2b149364afe680b5fcaccf5981565b6040516001600160a01b03909116815260200161026d565b34801561041757600080fd5b5061029661042636600461241e565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561045057600080fd5b5061029661045f366004612523565b610d37565b34801561047057600080fd5b50600f546103f3906001600160a01b031681565b34801561049057600080fd5b5060155461029690610100900460ff1681565b3480156104af57600080fd5b506103096104be36600461241e565b6001600160a01b031660009081526020819052604090205490565b3480156104e557600080fd5b506102f6610d72565b3480156104fa57600080fd5b506102f6610de6565b34801561050f57600080fd5b506102f661051e36600461254a565b610e24565b34801561052f57600080fd5b506102f661053e3660046123f2565b610e79565b34801561054f57600080fd5b506005546001600160a01b03166103f3565b34801561056d57600080fd5b50610260610f49565b34801561058257600080fd5b5061029661059136600461241e565b60136020526000908152604090205460ff1681565b3480156105b257600080fd5b506102f66105c1366004612523565b610f58565b3480156105d257600080fd5b50610309600d5481565b3480156105e857600080fd5b506102966105f73660046123f2565b610fc0565b34801561060857600080fd5b506102966106173660046123f2565b61100f565b34801561062857600080fd5b506015546102969062010000900460ff1681565b34801561064857600080fd5b506102f661101c565b34801561065d57600080fd5b506102f661066c36600461254a565b611065565b34801561067d57600080fd5b506102f661068c36600461254a565b6110ba565b34801561069d57600080fd5b506102f66106ac366004612523565b611191565b3480156106bd57600080fd5b506006546107119060ff80821691610100810482169162010000820481169163010000008104821691600160201b8204811691650100000000008104821691600160301b8204811691600160381b90041688565b6040805160ff998a16815297891660208901529588169587019590955292861660608601529085166080850152841660a0840152831660c083015290911660e08201526101000161026d565b34801561076957600080fd5b506102f6610778366004612583565b611271565b34801561078957600080fd5b50610309610798366004612583565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107cf57600080fd5b506102f66107de36600461254a565b6112c9565b3480156107ef57600080fd5b506102f66107fe36600461241e565b61131e565b34801561080f57600080fd5b5061029661081e36600461241e565b60146020526000908152604090205460ff1681565b34801561083f57600080fd5b506103f37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b606060038054610876906125b1565b80601f01602080910402602001604051908101604052809291908181526020018280546108a2906125b1565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b6000610906338484611468565b5060015b92915050565b6005546001600160a01b031633146109435760405162461bcd60e51b815260040161093a906125ec565b60405180910390fd5b606461094e60025490565b6109589190612637565b6103e88361096560025490565b61096f9190612659565b6109799190612637565b10156109d35760405162461bcd60e51b815260206004820152602360248201527f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60448201526220312560e81b606482015260840161093a565b60646109de60025490565b6109e89190612637565b6103e8826109f560025490565b6109ff9190612659565b610a099190612637565b1015610a635760405162461bcd60e51b8152602060048201526024808201527f6d617853656c6c416d6f756e74206d75737420626520686967686572207468616044820152636e20312560e01b606482015260840161093a565b6103e882610a7060025490565b610a7a9190612659565b610a849190612637565b6007556103e881610a9460025490565b610a9e9190612659565b610aa89190612637565b6008555050565b6000610abc8484846114ca565b610b0e8433610b0985604051806060016040528060288152602001612807602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611bff565b611468565b5060015b9392505050565b6005546001600160a01b03163314610b435760405162461bcd60e51b815260040161093a906125ec565b6006805463ff00ff00191661010060ff898116820263ff000000191692909217630100000089841681029190911762ff0000191662010000898516810291909117948590558404831693610b9f93918104821692900416612678565b610ba99190612678565b6006805460ff92831665ff00000000ff19909116176501000000000086841681029190911767ffff0000000000001916600160381b868516810266ff000000000000191691909117600160301b868616810291909117938490558304841693610c1b9391820481169290910416612678565b610c259190612678565b6006805460ff928316600160201b0264ff000000001982168117909255601e9183169216919091171115610c9b5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c657373000000604482015260640161093a565b600654601e600160201b90910460ff161115610cf95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c657373000000604482015260640161093a565b505050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610906918590610b099086611409565b6005546000906001600160a01b03163314610d645760405162461bcd60e51b815260040161093a906125ec565b50600a81905560015b919050565b6005546001600160a01b03163314610d9c5760405162461bcd60e51b815260040161093a906125ec565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e105760405162461bcd60e51b815260040161093a906125ec565b600254600755600254600855600254600955565b6005546001600160a01b03163314610e4e5760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ea35760405162461bcd60e51b815260040161093a906125ec565b816001600160a01b031663a9059cbb610ec46005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015610f0c57600080fd5b505af1158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f44919061269d565b505050565b606060048054610876906125b1565b6005546001600160a01b03163314610f825760405162461bcd60e51b815260040161093a906125ec565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fbc573d6000803e3d6000fd5b5050565b60006109063384610b09856040518060600160405280602581526020016127bc602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611bff565b60006109063384846114ca565b6005546001600160a01b031633146110465760405162461bcd60e51b815260040161093a906125ec565b6015805461ffff19166101011790556110604360026126ba565b600e55565b6005546001600160a01b0316331461108f5760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110e45760405162461bcd60e51b815260040161093a906125ec565b7f000000000000000000000000ba14c62c6ef051be2b149364afe680b5fcaccf596001600160a01b0316826001600160a01b031614156111665760405162461bcd60e51b815260206004820152601760248201527f4d757374206b65657020756e6973776170563250616972000000000000000000604482015260640161093a565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111bb5760405162461bcd60e51b815260040161093a906125ec565b60646111c660025490565b6111d09190612637565b6103e8826111dd60025490565b6111e79190612659565b6111f19190612637565b101561124a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261312560f01b606482015260840161093a565b6103e88161125760025490565b6112619190612659565b61126b9190612637565b60095550565b6005546001600160a01b0316331461129b5760405162461bcd60e51b815260040161093a906125ec565b601080546001600160a01b039384166001600160a01b031991821617909155600f8054929093169116179055565b6005546001600160a01b031633146112f35760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113485760405162461bcd60e51b815260040161093a906125ec565b6001600160a01b0381166113ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161093a565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061141683856126ba565b905083811015610b125760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161093a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b806114db57610f4483836000611c39565b6005546001600160a01b0384811691161480159061150757506005546001600160a01b03838116911614155b801561151c575060155462010000900460ff16155b156117aa57600061152e848484611cf6565b60155490915060ff166115bf576001600160a01b03841660009081526011602052604090205460ff168061157a57506001600160a01b03831660009081526011602052604090205460ff165b6115bf5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161093a565b6001600160a01b03841660009081526014602052604090205460ff16801561160057506001600160a01b03831660009081526012602052604090205460ff16155b1561165c576007548211156116575760405162461bcd60e51b815260206004820152601c60248201527f627579207472616e73666572206f766572206d617820616d6f756e7400000000604482015260640161093a565b6116f4565b6001600160a01b03831660009081526014602052604090205460ff16801561169d57506001600160a01b03841660009081526012602052604090205460ff16155b156116f4576008548211156116f45760405162461bcd60e51b815260206004820152601d60248201527f53656c6c207472616e73666572206f766572206d617820616d6f756e74000000604482015260640161093a565b6001600160a01b03831660009081526013602052604090205460ff1661177e576009546001600160a01b03841660009081526020819052604090205461173a90846126ba565b111561177e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161093a565b836001600160a01b0316816001600160a01b0316146117a8576117a2838284611c39565b50505050565b505b30600090815260208190526040902054600a54811080159081906117d55750601554610100900460ff165b80156117ea575060155462010000900460ff16155b801561180e57506001600160a01b03841660009081526014602052604090205460ff165b801561183357506001600160a01b03851660009081526011602052604090205460ff16155b801561185857506001600160a01b03841660009081526011602052604090205460ff16155b15611883576015805462ff0000191662010000179055611876611d6b565b6015805462ff0000191690555b6015546001600160a01b03861660009081526011602052604090205460ff620100009092048216159116806118d057506001600160a01b03851660009081526011602052604090205460ff165b156118d9575060005b8015611bf4576000600e544310156119645761190160646118fb876063611f9e565b9061201d565b9050606361191082605e612659565b61191a9190612637565b600b600082825461192b91906126ba565b909155506063905061193e826005612659565b6119489190612637565b600d600082825461195991906126ba565b90915550611bd59050565b6001600160a01b03861660009081526014602052604090205460ff1680156119975750600654600160201b900460ff1615155b15611ad7576006546119bb906064906118fb908890600160201b900460ff16611f9e565b60065490915060ff600160201b82048116916119e091600160381b9091041683612659565b6119ea9190612637565b600c60008282546119fb91906126ba565b909155505060065460ff600160201b8204811691611a2491650100000000009091041683612659565b611a2e9190612637565b600b6000828254611a3f91906126ba565b9091555050600f546001600160a01b0390811660009081526020818152604080832054938b168352601490915290205460ff16158015611a7f5750600081115b15611a8e575050505050505050565b60065460ff600160201b8204811691611ab091600160301b9091041684612659565b611aba9190612637565b600d6000828254611acb91906126ba565b90915550611bd5915050565b6001600160a01b03871660009081526014602052604090205460ff168015611b03575060065460ff1615155b15611bd557600654611b20906064906118fb90889060ff16611f9e565b60065490915060ff80821691611b3f9163010000009091041683612659565b611b499190612637565b600c6000828254611b5a91906126ba565b909155505060065460ff80821691611b79916101009091041683612659565b611b839190612637565b600b6000828254611b9491906126ba565b909155505060065460ff80821691611bb491620100009091041683612659565b611bbe9190612637565b600d6000828254611bcf91906126ba565b90915550505b8015611be657611be6873083611c39565b611bf081866126d2565b9450505b610cf9868686611c39565b60008184841115611c235760405162461bcd60e51b815260040161093a9190612385565b506000611c3084866126d2565b95945050505050565b611c76816040518060600160405280602681526020016127e1602691396001600160a01b0386166000908152602081905260409020549190611bff565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611ca59082611409565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016114bd565b6001600160a01b03831660009081526020819052604081205482118015611d3557506001600160a01b03831660009081526014602052604090205460ff165b15611d63576001600160a01b03841660009081526012602052604090205460ff1615611d6357506000610b12565b509192915050565b3060009081526020819052604081205490506000600d54600b54600c54611d9291906126ba565b611d9c91906126ba565b90506000821580611dab575081155b15611db557505050565b600a54611dc3906014612659565b831115611ddb57600a54611dd8906014612659565b92505b6000600283600c5486611dee9190612659565b611df89190612637565b611e029190612637565b90506000611e10858361205f565b905047611e1c826120a1565b6000611e28478361205f565b90506000611e45876118fb600b5485611f9e90919063ffffffff16565b90506000611e62886118fb600d5486611f9e90919063ffffffff16565b90506000611e7082846126ba565b611e7a90856126d2565b6000600c819055600b819055600d5590508615801590611e9a5750600081115b15611ee357611ea98782612268565b60408051878152602081018390527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15b600f546001600160a01b0316611ef984476126d2565b604051600081818185875af1925050503d8060008114611f35576040519150601f19603f3d011682016040523d82523d6000602084013e611f3a565b606091505b50506010546040519199506001600160a01b0316904790600081818185875af1925050503d8060008114611f8a576040519150601f19603f3d011682016040523d82523d6000602084013e611f8f565b606091505b50505050505050505050505050565b600082611fad5750600061090a565b6000611fb98385612659565b905082611fc68583612637565b14610b125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161093a565b6000610b1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612357565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bff565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120d6576120d66126e9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561214f57600080fd5b505afa158015612163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218791906126ff565b8160018151811061219a5761219a6126e9565b60200260200101906001600160a01b031690816001600160a01b0316815250506121e5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611468565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061223a90859060009086903090429060040161271c565b600060405180830381600087803b15801561225457600080fd5b505af1158015610cf9573d6000803e3d6000fd5b612293307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611468565b60405163f305d71960e01b8152306004820181905260248201849052600060448301819052606483015260848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c4016060604051808303818588803b15801561231757600080fd5b505af115801561232b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612350919061278d565b5050505050565b600081836123785760405162461bcd60e51b815260040161093a9190612385565b506000611c308486612637565b600060208083528351808285015260005b818110156123b257858101830151858201604001528201612396565b818111156123c4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146123ef57600080fd5b50565b6000806040838503121561240557600080fd5b8235612410816123da565b946020939093013593505050565b60006020828403121561243057600080fd5b8135610b12816123da565b6000806040838503121561244e57600080fd5b50508035926020909101359150565b60008060006060848603121561247257600080fd5b833561247d816123da565b9250602084013561248d816123da565b929592945050506040919091013590565b803560ff81168114610d6d57600080fd5b60008060008060008060c087890312156124c857600080fd5b6124d18761249e565b95506124df6020880161249e565b94506124ed6040880161249e565b93506124fb6060880161249e565b92506125096080880161249e565b915061251760a0880161249e565b90509295509295509295565b60006020828403121561253557600080fd5b5035919050565b80151581146123ef57600080fd5b6000806040838503121561255d57600080fd5b8235612568816123da565b915060208301356125788161253c565b809150509250929050565b6000806040838503121561259657600080fd5b82356125a1816123da565b91506020830135612578816123da565b600181811c908216806125c557607f821691505b602082108114156125e657634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261265457634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561267357612673612621565b500290565b600060ff821660ff84168060ff0382111561269557612695612621565b019392505050565b6000602082840312156126af57600080fd5b8151610b128161253c565b600082198211156126cd576126cd612621565b500190565b6000828210156126e4576126e4612621565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561271157600080fd5b8151610b12816123da565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561276c5784516001600160a01b031683529383019391830191600101612747565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127a257600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206509ec4edea784d69bdb2a21164f0594ad2e6013436ead9a76e1d9a778c14dc564736f6c63430008090033
Deployed Bytecode Sourcemap
12249:14541:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1785:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2840:210;;;;;;;;;;-1:-1:-1;2840:210:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;2840:210:0;1072:187:1;13456:63:0;;;;;;;;;;-1:-1:-1;13456:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16696:555;;;;;;;;;;-1:-1:-1;16696:555:0;;;;;:::i;:::-;;:::i;:::-;;2106:108;;;;;;;;;;-1:-1:-1;2194:12:0;;2106:108;;;1915:25:1;;;1903:2;1888:18;2106:108:0;1769:177:1;13109:33:0;;;;;;;;;;;;;;;;13069;;;;;;;;;;;;;;;;3058:454;;;;;;;;;;-1:-1:-1;3058:454:0;;;;;:::i;:::-;;:::i;2005:93::-;;;;;;;;;;-1:-1:-1;2005:93:0;;2088:2;2554:36:1;;2542:2;2527:18;2005:93:0;2412:184:1;17575:960:0;;;;;;;;;;-1:-1:-1;17575:960:0;;;;;:::i;:::-;;:::i;3520:300::-;;;;;;;;;;-1:-1:-1;3520:300:0;;;;;:::i;:::-;;:::i;13282:38::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3466:32:1;;;3448:51;;3436:2;3421:18;13282:38:0;3302:203:1;21372:126:0;;;;;;;;;;-1:-1:-1;21372:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;21462:28:0;21438:4;21462:28;;;:19;:28;;;;;;;;;21372:126;16496:192;;;;;;;;;;-1:-1:-1;16496:192:0;;;;;:::i;:::-;;:::i;13327:25::-;;;;;;;;;;-1:-1:-1;13327:25:0;;;;-1:-1:-1;;;;;13327:25:0;;;13679:31;;;;;;;;;;-1:-1:-1;13679:31:0;;;;;;;;;;;2222:177;;;;;;;;;;-1:-1:-1;2222:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;2373:18:0;2341:7;2373:18;;;;;;;;;;;;2222:177;5995:148;;;;;;;;;;;;;:::i;16254:172::-;;;;;;;;;;;;;:::i;20544:167::-;;;;;;;;;;-1:-1:-1;20544:167:0;;;;;:::i;:::-;;:::i;21024:135::-;;;;;;;;;;-1:-1:-1;21024:135:0;;;;;:::i;:::-;;:::i;5696:79::-;;;;;;;;;;-1:-1:-1;5761:6:0;;-1:-1:-1;;;;;5761:6:0;5696:79;;1893:104;;;;;;;;;;;;;:::i;13526:58::-;;;;;;;;;;-1:-1:-1;13526:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20904:112;;;;;;;;;;-1:-1:-1;20904:112:0;;;;;:::i;:::-;;:::i;13149:27::-;;;;;;;;;;;;;;;;3828:400;;;;;;;;;;-1:-1:-1;3828:400:0;;;;;:::i;:::-;;:::i;2407:216::-;;;;;;;;;;-1:-1:-1;2407:216:0;;;;;:::i;:::-;;:::i;13717:22::-;;;;;;;;;;-1:-1:-1;13717:22:0;;;;;;;;;;;16103:143;;;;;;;;;;;;;:::i;20227:132::-;;;;;;;;;;-1:-1:-1;20227:132:0;;;;;:::i;:::-;;:::i;20719:177::-;;;;;;;;;;-1:-1:-1;20719:177:0;;;;;:::i;:::-;;:::i;17259:308::-;;;;;;;;;;-1:-1:-1;17259:308:0;;;;;:::i;:::-;;:::i;12598:296::-;;;;;;;;;;-1:-1:-1;12598:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12598:296:0;;;;;;;;;;;-1:-1:-1;;;12598:296:0;;;;;-1:-1:-1;;;12598:296:0;;;;;;;;;4526:4:1;4557:15;;;4539:34;;4609:15;;;4604:2;4589:18;;4582:43;4661:15;;;4641:18;;;4634:43;;;;4713:15;;;4708:2;4693:18;;4686:43;4766:15;;;4760:3;4745:19;;4738:44;4819:15;;4813:3;4798:19;;4791:44;4872:15;;4866:3;4851:19;;4844:44;4925:15;;;4919:3;4904:19;;4897:44;4503:3;4488:19;12598:296:0;4205:742:1;21167:197:0;;;;;;;;;;-1:-1:-1;21167:197:0;;;;;:::i;:::-;;:::i;2631:201::-;;;;;;;;;;-1:-1:-1;2631:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;2797:18:0;;;2765:7;2797:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2631:201;20367:169;;;;;;;;;;-1:-1:-1;20367:169:0;;;;;:::i;:::-;;:::i;6151:281::-;;;;;;;;;;-1:-1:-1;6151:281:0;;;;;:::i;:::-;;:::i;13591:42::-;;;;;;;;;;-1:-1:-1;13591:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13233;;;;;;;;;;;;;;;1785:100;1839:13;1872:5;1865:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1785:100;:::o;2840:210::-;2959:4;2981:39;1319:10;3004:7;3013:6;2981:8;:39::i;:::-;-1:-1:-1;3038:4:0;2840:210;;;;;:::o;16696:555::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;;;;;;;;;16895:3:::1;16879:13;2194:12:::0;;;2106:108;16879:13:::1;:19;;;;:::i;:::-;16869:4;16856:9;16840:13;2194:12:::0;;;2106:108;16840:13:::1;:25;;;;:::i;:::-;16839:34;;;;:::i;:::-;16838:61;;16816:146;;;::::0;-1:-1:-1;;;16816:146:0;;7054:2:1;16816:146:0::1;::::0;::::1;7036:21:1::0;7093:2;7073:18;;;7066:30;7132:34;7112:18;;;7105:62;-1:-1:-1;;;7183:18:1;;;7176:33;7226:19;;16816:146:0::1;6852:399:1::0;16816:146:0::1;17053:3;17037:13;2194:12:::0;;;2106:108;17037:13:::1;:19;;;;:::i;:::-;17027:4;17013:10;16997:13;2194:12:::0;;;2106:108;16997:13:::1;:26;;;;:::i;:::-;16996:35;;;;:::i;:::-;16995:62;;16973:148;;;::::0;-1:-1:-1;;;16973:148:0;;7458:2:1;16973:148:0::1;::::0;::::1;7440:21:1::0;7497:2;7477:18;;;7470:30;7536:34;7516:18;;;7509:62;-1:-1:-1;;;7587:18:1;;;7580:34;7631:19;;16973:148:0::1;7256:400:1::0;16973:148:0::1;17177:4;17164:9;17148:13;2194:12:::0;;;2106:108;17148:13:::1;:25;;;;:::i;:::-;17147:34;;;;:::i;:::-;17132:12;:49:::0;17239:4:::1;17225:10:::0;17209:13:::1;2194:12:::0;;;2106:108;17209:13:::1;:26;;;;:::i;:::-;17208:35;;;;:::i;:::-;17192:13;:51:::0;-1:-1:-1;;16696:555:0:o;3058:454::-;3198:4;3215:36;3225:6;3233:9;3244:6;3215:9;:36::i;:::-;3262:220;3285:6;1319:10;3333:138;3389:6;3333:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3333:19:0;;;;;;:11;:19;;;;;;;;1319:10;3333:33;;;;;;;;;;:37;:138::i;:::-;3262:8;:220::i;:::-;-1:-1:-1;3500:4:0;3058:454;;;;;;:::o;17575:960::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;17821:5:::1;:40:::0;;-1:-1:-1;;17872:40:0;17821::::1;;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;17872:40:0;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;17923:28:0::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;18070:15;::::1;::::0;::::1;::::0;17996:58:::1;::::0;18033:21;;::::1;::::0;::::1;::::0;17996;::::1;;:58;:::i;:::-;:89;;;;:::i;:::-;17962:5;:123:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;18098:42:0;;;;;;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;18204:30:0;-1:-1:-1;;;18151:42:0;;::::1;::::0;::::1;-1:-1:-1::0;;18204:30:0;;;;;-1:-1:-1;;;18204:30:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;18356:16;::::1;::::0;::::1;::::0;18280:60:::1;::::0;18318:22;;::::1;::::0;::::1;::::0;18280;;::::1;;:60;:::i;:::-;:92;;;;:::i;:::-;18245:5;:127:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;18245:127:0::1;-1:-1:-1::0;;18245:127:0;::::1;::::0;::::1;::::0;;;18413:2:::1;18391:18:::0;;;;;;;;;:24:::1;;18383:66;;;::::0;-1:-1:-1;;;18383:66:0;;8072:2:1;18383:66:0::1;::::0;::::1;8054:21:1::0;8111:2;8091:18;;;8084:30;8150:31;8130:18;;;8123:59;8199:18;;18383:66:0::1;7870:353:1::0;18383:66:0::1;18468:5;:19:::0;18491:2:::1;-1:-1:-1::0;;;18468:19:0;;::::1;;;:25;;18460:67;;;::::0;-1:-1:-1;;;18460:67:0;;8072:2:1;18460:67:0::1;::::0;::::1;8054:21:1::0;8111:2;8091:18;;;8084:30;8150:31;8130:18;;;8123:59;8199:18;;18460:67:0::1;7870:353:1::0;18460:67:0::1;17575:960:::0;;;;;;:::o;3520:300::-;1319:10;3635:4;3729:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3729:34:0;;;;;;;;;;3635:4;;3657:133;;3707:7;;3729:50;;3768:10;3729:38;:50::i;16496:192::-;5908:6;;16605:4;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;16627:19:0::1;:31:::0;;;16676:4:::1;5978:1;16496:192:::0;;;:::o;5995:148::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;6086:6:::1;::::0;6065:40:::1;::::0;6102:1:::1;::::0;-1:-1:-1;;;;;6086:6:0::1;::::0;6065:40:::1;::::0;6102:1;;6065:40:::1;6116:6;:19:::0;;-1:-1:-1;;;;;;6116:19:0::1;::::0;;5995:148::o;16254:172::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;2194:12;;16308::::1;:28:::0;2194:12;;16347:13:::1;:29:::0;2194:12;;16387:15:::1;:31:::0;16254:172::o;20544:167::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20657:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;20657:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20544:167::o;21024:135::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;21116:8:::1;-1:-1:-1::0;;;;;21109:25:0::1;;21135:7;5761:6:::0;;-1:-1:-1;;;;;5761:6:0;;5696:79;21135:7:::1;21109:42;::::0;-1:-1:-1;;;;;;21109:42:0::1;::::0;;;;;;-1:-1:-1;;;;;8420:32:1;;;21109:42:0::1;::::0;::::1;8402:51:1::0;8469:18;;;8462:34;;;8375:18;;21109:42:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21024:135:::0;;:::o;1893:104::-;1949:13;1982:7;1975:14;;;;;:::i;20904:112::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;5761:6;;20972:36:::1;::::0;-1:-1:-1;;;;;5761:6:0;;;;20972:36;::::1;;;::::0;20998:9;;20972:36:::1;::::0;;;20998:9;5761:6;20972:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20904:112:::0;:::o;3828:400::-;3948:4;3970:228;1319:10;4020:7;4042:145;4099:15;4042:145;;;;;;;;;;;;;;;;;1319:10;4042:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4042:34:0;;;;;;;;;;;;:38;:145::i;2407:216::-;2529:4;2551:42;1319:10;2575:9;2586:6;2551:9;:42::i;16103:143::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;16156:9:::1;:16:::0;;-1:-1:-1;;16183:18:0;;;;;16222:16:::1;:12;16237:1;16222:16;:::i;:::-;16212:7;:26:::0;16103:143::o;20227:132::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20312:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;20312:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20227:132::o;20719:177::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;20812:13:::1;-1:-1:-1::0;;;;;20804:21:0::1;:4;-1:-1:-1::0;;;;;20804:21:0::1;;;20796:57;;;::::0;-1:-1:-1;;;20796:57:0;;9092:2:1;20796:57:0::1;::::0;::::1;9074:21:1::0;9131:2;9111:18;;;9104:30;9170:25;9150:18;;;9143:53;9213:18;;20796:57:0::1;8890:347:1::0;20796:57:0::1;-1:-1:-1::0;;;;;20864:16:0;;;::::1;;::::0;;;:10:::1;:16;::::0;;;;:24;;-1:-1:-1;;20864:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20719:177::o;17259:308::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;17426:3:::1;17410:13;2194:12:::0;;;2106:108;17410:13:::1;:19;;;;:::i;:::-;17400:4;17383:13;17367;2194:12:::0;;;2106:108;17367:13:::1;:29;;;;:::i;:::-;17366:38;;;;:::i;:::-;17365:65;;17343:149;;;::::0;-1:-1:-1;;;17343:149:0;;9444:2:1;17343:149:0::1;::::0;::::1;9426:21:1::0;9483:2;9463:18;;;9456:30;9522:34;9502:18;;;9495:62;-1:-1:-1;;;9573:18:1;;;9566:32;9615:19;;17343:149:0::1;9242:398:1::0;17343:149:0::1;17555:4;17538:13;17522;2194:12:::0;;;2106:108;17522:13:::1;:29;;;;:::i;:::-;17521:38;;;;:::i;:::-;17503:15;:56:::0;-1:-1:-1;17259:308:0:o;21167:197::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;21287:15:::1;:34:::0;;-1:-1:-1;;;;;21287:34:0;;::::1;-1:-1:-1::0;;;;;;21287:34:0;;::::1;;::::0;;;21332:10:::1;:24:::0;;;;;::::1;::::0;::::1;;::::0;;21167:197::o;20367:169::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20482:35:0;;;::::1;;::::0;;;:26:::1;:35;::::0;;;;:46;;-1:-1:-1;;20482:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20367:169::o;6151:281::-;5908:6;;-1:-1:-1;;;;;5908:6:0;1319:10;5908:22;5900:67;;;;-1:-1:-1;;;5900:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6254:22:0;::::1;6232:110;;;::::0;-1:-1:-1;;;6232:110:0;;9847:2:1;6232:110:0::1;::::0;::::1;9829:21:1::0;9886:2;9866:18;;;9859:30;9925:34;9905:18;;;9898:62;-1:-1:-1;;;9976:18:1;;;9969:36;10022:19;;6232:110:0::1;9645:402:1::0;6232:110:0::1;6379:6;::::0;6358:38:::1;::::0;-1:-1:-1;;;;;6358:38:0;;::::1;::::0;6379:6:::1;::::0;6358:38:::1;::::0;6379:6:::1;::::0;6358:38:::1;6407:6;:17:::0;;-1:-1:-1;;;;;;6407:17:0::1;-1:-1:-1::0;;;;;6407:17:0;;;::::1;::::0;;;::::1;::::0;;6151:281::o;26818:181::-;26876:7;;26908:5;26912:1;26908;:5;:::i;:::-;26896:17;;26937:1;26932;:6;;26924:46;;;;-1:-1:-1;;;26924:46:0;;10254:2:1;26924:46:0;;;10236:21:1;10293:2;10273:18;;;10266:30;10332:29;10312:18;;;10305:57;10379:18;;26924:46:0;10052:351:1;4953:220:0;-1:-1:-1;;;;;5081:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5133:32;;1915:25:1;;;5133:32:0;;1888:18:1;5133:32:0;;;;;;;;4953:220;;;:::o;22879:3908::-;23016:11;23012:102;;23044:37;23060:6;23068:9;23079:1;23044:15;:37::i;23012:102::-;5761:6;;-1:-1:-1;;;;;23130:17:0;;;5761:6;;23130:17;;;;:41;;-1:-1:-1;5761:6:0;;-1:-1:-1;;;;;23151:20:0;;;5761:6;;23151:20;;23130:41;:56;;;;-1:-1:-1;23176:10:0;;;;;;;23175:11;23130:56;23126:1386;;;23203:23;23229:111;23266:6;23291:9;23319:6;23229:18;:111::i;:::-;23360:9;;23203:137;;-1:-1:-1;23360:9:0;;23355:233;;-1:-1:-1;;;;;23420:27:0;;;;;;:19;:27;;;;;;;;;:86;;-1:-1:-1;;;;;;23476:30:0;;;;;;:19;:30;;;;;;;;23420:86;23390:182;;;;-1:-1:-1;;;23390:182:0;;10610:2:1;23390:182:0;;;10592:21:1;10649:2;10629:18;;;10622:30;-1:-1:-1;;;10668:18:1;;;10661:52;10730:18;;23390:182:0;10408:346:1;23390:182:0;-1:-1:-1;;;;;23624:18:0;;;;;;:10;:18;;;;;;;;:82;;;;-1:-1:-1;;;;;;23664:42:0;;;;;;:31;:42;;;;;;;;23663:43;23624:82;23602:505;;;23759:12;;23749:6;:22;;23741:63;;;;-1:-1:-1;;;23741:63:0;;10961:2:1;23741:63:0;;;10943:21:1;11000:2;10980:18;;;10973:30;11039;11019:18;;;11012:58;11087:18;;23741:63:0;10759:352:1;23741:63:0;23602:505;;;-1:-1:-1;;;;;23848:21:0;;;;;;:10;:21;;;;;;;;:82;;;;-1:-1:-1;;;;;;23891:39:0;;;;;;:31;:39;;;;;;;;23890:40;23848:82;23826:281;;;24005:13;;23995:6;:23;;23965:126;;;;-1:-1:-1;;;23965:126:0;;11318:2:1;23965:126:0;;;11300:21:1;11357:2;11337:18;;;11330:30;11396:31;11376:18;;;11369:59;11445:18;;23965:126:0;11116:353:1;23965:126:0;-1:-1:-1;;;;;24128:37:0;;;;;;:26;:37;;;;;;;;24123:220;;24249:15;;-1:-1:-1;;;;;2373:18:0;;2341:7;2373:18;;;;;;;;;;;24216:29;;:6;:29;:::i;:::-;:48;;24186:141;;;;-1:-1:-1;;;24186:141:0;;11676:2:1;24186:141:0;;;11658:21:1;11715:2;11695:18;;;11688:30;-1:-1:-1;;;11734:18:1;;;11727:49;11793:18;;24186:141:0;11474:343:1;24186:141:0;24382:6;-1:-1:-1;;;;;24363:25:0;:15;-1:-1:-1;;;;;24363:25:0;;24359:142;;24409:51;24425:9;24436:15;24453:6;24409:15;:51::i;:::-;24479:7;22879:3908;;;:::o;24359:142::-;23188:1324;23126:1386;24573:4;24524:28;2373:18;;;;;;;;;;;24629:19;;24605:43;;;;;;;24679:35;;-1:-1:-1;24703:11:0;;;;;;;24679:35;:63;;;;-1:-1:-1;24732:10:0;;;;;;;24731:11;24679:63;:101;;;;-1:-1:-1;;;;;;24759:21:0;;;;;;:10;:21;;;;;;;;24679:101;:146;;;;-1:-1:-1;;;;;;24798:27:0;;;;;;:19;:27;;;;;;;;24797:28;24679:146;:194;;;;-1:-1:-1;;;;;;24843:30:0;;;;;;:19;:30;;;;;;;;24842:31;24679:194;24661:326;;;24900:10;:17;;-1:-1:-1;;24900:17:0;;;;;24932:10;:8;:10::i;:::-;24957;:18;;-1:-1:-1;;24957:18:0;;;24661:326;25015:10;;-1:-1:-1;;;;;25040:27:0;;24999:12;25040:27;;;:19;:27;;;;;;25015:10;;;;;;;25014:11;;25040:27;;:61;;-1:-1:-1;;;;;;25071:30:0;;;;;;:19;:30;;;;;;;;25040:61;25036:109;;;-1:-1:-1;25128:5:0;25036:109;25161:7;25157:1568;;;25185:12;25235:7;;25220:12;:22;25216:1358;;;25270:23;25289:3;25270:14;:6;25281:2;25270:10;:14::i;:::-;:18;;:23::i;:::-;25263:30;-1:-1:-1;25348:2:0;25335:9;25263:30;25342:2;25335:9;:::i;:::-;25334:16;;;;:::i;:::-;25312:18;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;25398:2:0;;-1:-1:-1;25386:8:0;:4;25393:1;25386:8;:::i;:::-;25385:15;;;;:::i;:::-;25369:12;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;25216:1358:0;;-1:-1:-1;25216:1358:0;;-1:-1:-1;;;;;25426:21:0;;;;;;:10;:21;;;;;;;;:48;;;;-1:-1:-1;25451:5:0;:19;-1:-1:-1;;;25451:19:0;;;;:23;;25426:48;25422:1152;;;25513:5;:19;25502:40;;25538:3;;25502:31;;:6;;-1:-1:-1;;;25513:19:0;;;;25502:10;:31::i;:40::-;25659:5;:19;25495:47;;-1:-1:-1;25659:19:0;-1:-1:-1;;;25659:19:0;;;;;25605:29;;-1:-1:-1;;;25612:22:0;;;;25495:47;25605:29;:::i;:::-;25604:74;;;;:::i;:::-;25561:18;;:117;;;;;;;:::i;:::-;;;;-1:-1:-1;;25795:5:0;:19;;-1:-1:-1;;;25795:19:0;;;;;25741:29;;25748:22;;;;;25741:4;:29;:::i;:::-;25740:74;;;;:::i;:::-;25697:18;;:117;;;;;;;:::i;:::-;;;;-1:-1:-1;;25867:10:0;;-1:-1:-1;;;;;25867:10:0;;;25833:21;2373:18;;;;;;;;;;;;25902;;;;;:10;:18;;;;;;;;25901:19;:40;;;;;25940:1;25924:13;:17;25901:40;25897:95;;;25966:7;;;;;22879:3908;;;:::o;25897:95::-;26054:5;:19;;-1:-1:-1;;;26054:19:0;;;;;26027:23;;-1:-1:-1;;;26034:16:0;;;;26027:4;:23;:::i;:::-;26026:47;;;;:::i;:::-;26010:12;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;25422:1152:0;;-1:-1:-1;;25422:1152:0;;-1:-1:-1;;;;;26099:18:0;;;;;;:10;:18;;;;;;;;:44;;;;-1:-1:-1;26121:5:0;:18;;;:22;;26099:44;26095:479;;;26182:5;:18;26171:39;;26206:3;;26171:30;;:6;;26182:18;;26171:10;:30::i;:39::-;26326:5;:18;26164:46;;-1:-1:-1;26326:18:0;;;;;26273:28;;26280:21;;;;;26164:46;26273:28;:::i;:::-;26272:72;;;;:::i;:::-;26229:18;;:115;;;;;;;:::i;:::-;;;;-1:-1:-1;;26460:5:0;:18;;;;;;26407:28;;26460:18;26414:21;;;;26407:4;:28;:::i;:::-;26406:72;;;;:::i;:::-;26363:18;;:115;;;;;;;:::i;:::-;;;;-1:-1:-1;;26540:5:0;:18;;;;;;26514:22;;26521:15;;;;;26514:4;:22;:::i;:::-;26513:45;;;;:::i;:::-;26497:12;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;26095:479:0;26594:8;;26590:93;;26623:44;26639:6;26655:4;26662;26623:15;:44::i;:::-;26699:14;26709:4;26699:14;;:::i;:::-;;;25170:1555;25157:1568;26737:42;26753:6;26761:9;26772:6;26737:15;:42::i;27151:226::-;27271:7;27307:12;27299:6;;;;27291:29;;;;-1:-1:-1;;;27291:29:0;;;;;;;;:::i;:::-;-1:-1:-1;27331:9:0;27343:5;27347:1;27343;:5;:::i;:::-;27331:17;27151:226;-1:-1:-1;;;;;27151:226:0:o;4236:385::-;4388:108;4424:6;4388:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4388:17:0;;:9;:17;;;;;;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;4368:17:0;;;:9;:17;;;;;;;;;;;:128;;;;4530:20;;;;;;;:32;;4555:6;4530:24;:32::i;:::-;-1:-1:-1;;;;;4507:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;4578:35;1915:25:1;;;4507:20:0;;4578:35;;;;;;1888:18:1;4578:35:0;1769:177:1;21506:364:0;-1:-1:-1;;;;;2373:18:0;;21640:7;2373:18;;;;;;;;;;;21684:6;-1:-1:-1;21664:50:0;;;;-1:-1:-1;;;;;;21694:20:0;;;;;;:10;:20;;;;;;;;21664:50;21660:179;;;-1:-1:-1;;;;;21735:39:0;;;;;;:31;:39;;;;;;;;21731:97;;;-1:-1:-1;21810:1:0;21795:17;;21731:97;-1:-1:-1;21856:6:0;;21506:364;-1:-1:-1;;21506:364:0:o;18543:1676::-;18631:4;18582:28;2373:18;;;;;;;;;;;18582:55;;18648:14;18707:12;;18686:18;;18665;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;18648:71;-1:-1:-1;18730:12:0;18759:25;;;:40;;-1:-1:-1;18788:11:0;;18759:40;18755:79;;;18816:7;;;18543:1676::o;18755:79::-;18873:19;;:24;;18895:2;18873:24;:::i;:::-;18850:20;:47;18846:127;;;18937:19;;:24;;18959:2;18937:24;:::i;:::-;18914:47;;18846:127;19034:23;19141:1;19119:6;19084:18;;19061:20;:41;;;;:::i;:::-;19060:65;;;;:::i;:::-;:82;;;;:::i;:::-;19034:108;-1:-1:-1;19153:26:0;19182:41;:20;19034:108;19182:24;:41::i;:::-;19153:70;-1:-1:-1;19264:21:0;19298:36;19153:70;19298:16;:36::i;:::-;19347:18;19368:44;:21;19394:17;19368:25;:44::i;:::-;19347:65;;19425:23;19451:70;19504:6;19451:34;19466:18;;19451:10;:14;;:34;;;;:::i;:70::-;19425:96;;19532:17;19552:40;19585:6;19552:28;19567:12;;19552:10;:14;;:28;;;;:::i;:40::-;19532:60;-1:-1:-1;19603:23:0;19643:27;19532:60;19643:15;:27;:::i;:::-;19629:42;;:10;:42;:::i;:::-;19705:1;19684:18;:22;;;19717:18;:22;;;19750:12;:16;19603:68;-1:-1:-1;19783:19:0;;;;;:42;;;19824:1;19806:15;:19;19783:42;19779:192;;;19842:46;19855:15;19872;19842:12;:46::i;:::-;19908:51;;;12126:25:1;;;12182:2;12167:18;;12160:34;;;19908:51:0;;12099:18:1;19908:51:0;;;;;;;19779:192;20005:10;;-1:-1:-1;;;;;20005:10:0;20044:39;20068:15;20044:21;:39;:::i;:::-;19997:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20132:15:0;;20124:87;;19983:116;;-1:-1:-1;;;;;;20132:15:0;;20175:21;;20124:87;;;;20175:21;20132:15;20124:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;18543:1676:0:o;27385:250::-;27443:7;27467:6;27463:47;;-1:-1:-1;27497:1:0;27490:8;;27463:47;27522:9;27534:5;27538:1;27534;:5;:::i;:::-;27522:17;-1:-1:-1;27567:1:0;27558:5;27562:1;27522:17;27558:5;:::i;:::-;:10;27550:56;;;;-1:-1:-1;;;27550:56:0;;12617:2:1;27550:56:0;;;12599:21:1;12656:2;12636:18;;;12629:30;12695:34;12675:18;;;12668:62;-1:-1:-1;;;12746:18:1;;;12739:31;12787:19;;27550:56:0;12415:397:1;27643:132:0;27701:7;27728:39;27732:1;27735;27728:39;;;;;;;;;;;;;;;;;:3;:39::i;27007:136::-;27065:7;27092:43;27096:1;27099;27092:43;;;;;;;;;;;;;;;;;:3;:43::i;21878:550::-;22024:16;;;22038:1;22024:16;;;;;;;;22000:21;;22024:16;;;;;;;;;;-1:-1:-1;22024:16:0;22000:40;;22069:4;22051;22056:1;22051:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22051:23:0;;;-1:-1:-1;;;;;22051:23:0;;;;;22095:6;-1:-1:-1;;;;;22095:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22085:4;22090:1;22085:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22085:23:0;;;-1:-1:-1;;;;;22085:23:0;;;;;22121:49;22138:4;22153:6;22162:7;22121:8;:49::i;:::-;22209:211;;-1:-1:-1;;;22209:211:0;;-1:-1:-1;;;;;22209:6:0;:57;;;;:211;;22281:7;;22303:1;;22347:4;;22374;;22394:15;;22209:211;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22436:435;22580:49;22597:4;22612:6;22621:7;22580:8;:49::i;:::-;22672:191;;-1:-1:-1;;;22672:191:0;;22735:4;22672:191;;;14663:34:1;;;14713:18;;;14706:34;;;22777:1:0;14756:18:1;;;14749:34;;;14799:18;;;14792:34;14842:19;;;14835:44;22837:15:0;14895:19:1;;;14888:35;22672:6:0;-1:-1:-1;;;;;22672:22:0;;;;22702:9;;14597:19:1;;22672:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22436:435;;:::o;27783:223::-;27903:7;27938:12;27931:5;27923:28;;;;-1:-1:-1;;;27923:28:0;;;;;;;;:::i;:::-;-1:-1:-1;27962:9:0;27974:5;27978:1;27974;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1516:248::-;1584:6;1592;1645:2;1633:9;1624:7;1620:23;1616:32;1613:52;;;1661:1;1658;1651:12;1613:52;-1:-1:-1;;1684:23:1;;;1754:2;1739:18;;;1726:32;;-1:-1:-1;1516:248:1:o;1951:456::-;2028:6;2036;2044;2097:2;2085:9;2076:7;2072:23;2068:32;2065:52;;;2113:1;2110;2103:12;2065:52;2152:9;2139:23;2171:31;2196:5;2171:31;:::i;:::-;2221:5;-1:-1:-1;2278:2:1;2263:18;;2250:32;2291:33;2250:32;2291:33;:::i;:::-;1951:456;;2343:7;;-1:-1:-1;;;2397:2:1;2382:18;;;;2369:32;;1951:456::o;2601:156::-;2667:20;;2727:4;2716:16;;2706:27;;2696:55;;2747:1;2744;2737:12;2762:535;2854:6;2862;2870;2878;2886;2894;2947:3;2935:9;2926:7;2922:23;2918:33;2915:53;;;2964:1;2961;2954:12;2915:53;2987:27;3004:9;2987:27;:::i;:::-;2977:37;;3033:36;3065:2;3054:9;3050:18;3033:36;:::i;:::-;3023:46;;3088:36;3120:2;3109:9;3105:18;3088:36;:::i;:::-;3078:46;;3143:36;3175:2;3164:9;3160:18;3143:36;:::i;:::-;3133:46;;3198:37;3230:3;3219:9;3215:19;3198:37;:::i;:::-;3188:47;;3254:37;3286:3;3275:9;3271:19;3254:37;:::i;:::-;3244:47;;2762:535;;;;;;;;:::o;3510:180::-;3569:6;3622:2;3610:9;3601:7;3597:23;3593:32;3590:52;;;3638:1;3635;3628:12;3590:52;-1:-1:-1;3661:23:1;;3510:180;-1:-1:-1;3510:180:1:o;3695:118::-;3781:5;3774:13;3767:21;3760:5;3757:32;3747:60;;3803:1;3800;3793:12;3818:382;3883:6;3891;3944:2;3932:9;3923:7;3919:23;3915:32;3912:52;;;3960:1;3957;3950:12;3912:52;3999:9;3986:23;4018:31;4043:5;4018:31;:::i;:::-;4068:5;-1:-1:-1;4125:2:1;4110:18;;4097:32;4138:30;4097:32;4138:30;:::i;:::-;4187:7;4177:17;;;3818:382;;;;;:::o;4952:388::-;5020:6;5028;5081:2;5069:9;5060:7;5056:23;5052:32;5049:52;;;5097:1;5094;5087:12;5049:52;5136:9;5123:23;5155:31;5180:5;5155:31;:::i;:::-;5205:5;-1:-1:-1;5262:2:1;5247:18;;5234:32;5275:33;5234:32;5275:33;:::i;5579:380::-;5658:1;5654:12;;;;5701;;;5722:61;;5776:4;5768:6;5764:17;5754:27;;5722:61;5829:2;5821:6;5818:14;5798:18;5795:38;5792:161;;;5875:10;5870:3;5866:20;5863:1;5856:31;5910:4;5907:1;5900:15;5938:4;5935:1;5928:15;5792:161;;5579:380;;;:::o;5964:356::-;6166:2;6148:21;;;6185:18;;;6178:30;6244:34;6239:2;6224:18;;6217:62;6311:2;6296:18;;5964:356::o;6325:127::-;6386:10;6381:3;6377:20;6374:1;6367:31;6417:4;6414:1;6407:15;6441:4;6438:1;6431:15;6457:217;6497:1;6523;6513:132;;6567:10;6562:3;6558:20;6555:1;6548:31;6602:4;6599:1;6592:15;6630:4;6627:1;6620:15;6513:132;-1:-1:-1;6659:9:1;;6457:217::o;6679:168::-;6719:7;6785:1;6781;6777:6;6773:14;6770:1;6767:21;6762:1;6755:9;6748:17;6744:45;6741:71;;;6792:18;;:::i;:::-;-1:-1:-1;6832:9:1;;6679:168::o;7661:204::-;7699:3;7735:4;7732:1;7728:12;7767:4;7764:1;7760:12;7802:3;7796:4;7792:14;7787:3;7784:23;7781:49;;;7810:18;;:::i;:::-;7846:13;;7661:204;-1:-1:-1;;;7661:204:1:o;8507:245::-;8574:6;8627:2;8615:9;8606:7;8602:23;8598:32;8595:52;;;8643:1;8640;8633:12;8595:52;8675:9;8669:16;8694:28;8716:5;8694:28;:::i;8757:128::-;8797:3;8828:1;8824:6;8821:1;8818:13;8815:39;;;8834:18;;:::i;:::-;-1:-1:-1;8870:9:1;;8757:128::o;11822:125::-;11862:4;11890:1;11887;11884:8;11881:34;;;11895:18;;:::i;:::-;-1:-1:-1;11932:9:1;;11822:125::o;12949:127::-;13010:10;13005:3;13001:20;12998:1;12991:31;13041:4;13038:1;13031:15;13065:4;13062:1;13055:15;13081:251;13151:6;13204:2;13192:9;13183:7;13179:23;13175:32;13172:52;;;13220:1;13217;13210:12;13172:52;13252:9;13246:16;13271:31;13296:5;13271:31;:::i;13337:980::-;13599:4;13647:3;13636:9;13632:19;13678:6;13667:9;13660:25;13704:2;13742:6;13737:2;13726:9;13722:18;13715:34;13785:3;13780:2;13769:9;13765:18;13758:31;13809:6;13844;13838:13;13875:6;13867;13860:22;13913:3;13902:9;13898:19;13891:26;;13952:2;13944:6;13940:15;13926:29;;13973:1;13983:195;13997:6;13994:1;13991:13;13983:195;;;14062:13;;-1:-1:-1;;;;;14058:39:1;14046:52;;14153:15;;;;14118:12;;;;14094:1;14012:9;13983:195;;;-1:-1:-1;;;;;;;14234:32:1;;;;14229:2;14214:18;;14207:60;-1:-1:-1;;;14298:3:1;14283:19;14276:35;14195:3;13337:980;-1:-1:-1;;;13337:980:1:o;14934:306::-;15022:6;15030;15038;15091:2;15079:9;15070:7;15066:23;15062:32;15059:52;;;15107:1;15104;15097:12;15059:52;15136:9;15130:16;15120:26;;15186:2;15175:9;15171:18;15165:25;15155:35;;15230:2;15219:9;15215:18;15209:25;15199:35;;14934:306;;;;;:::o
Swarm Source
ipfs://6509ec4edea784d69bdb2a21164f0594ad2e6013436ead9a76e1d9a778c14dc5
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.