Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 STK
Holders
158
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Filtered by Token Holder
Balance
113,796.256441887013162759 STKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SharkTank
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-16 */ /* Introducing Shark Tank (STK), the revolutionary meme-inspired cryptocurrency that's making waves in the digital financial world! 🦈🚀 * http://sharktankerc.com/ * https://t.me/SharkTankErc20 * https://twitter.com/SharkTankErc */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.15; 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 IFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); function getPair( address tokenA, address tokenB ) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); 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; } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } 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) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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; // Detect overflow when multiplying MIN_INT256 with -1 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) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. 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; } } library IterableMapping { struct Map { address[] keys; mapping(address => uint) values; mapping(address => uint) indexOf; mapping(address => bool) inserted; } function get(Map storage map, address key) public view returns (uint) { return map.values[key]; } function getIndexOfKey( Map storage map, address key ) public view returns (int) { if (!map.inserted[key]) { return -1; } return int(map.indexOf[key]); } function getKeyAtIndex( Map storage map, uint index ) public view returns (address) { return map.keys[index]; } function size(Map storage map) public view returns (uint) { return map.keys.length; } function set(Map storage map, address key, uint val) public { if (map.inserted[key]) { map.values[key] = val; } else { map.inserted[key] = true; map.values[key] = val; map.indexOf[key] = map.keys.length; map.keys.push(key); } } function remove(Map storage map, address key) public { if (!map.inserted[key]) { return; } delete map.inserted[key]; delete map.values[key]; uint index = map.indexOf[key]; uint lastIndex = map.keys.length - 1; address lastKey = map.keys[lastIndex]; map.indexOf[lastKey] = index; delete map.indexOf[key]; map.keys[index] = lastKey; map.keys.pop(); } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) internal _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 allowance below zero" ) ); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _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"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub( amount, "ERC20: burn amount exceeds balance" ); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract SharkTank is Ownable, ERC20 { IRouter public uniswapV2Router; address public immutable uniswapV2Pair; string private constant _name = "Shark Tank"; string private constant _symbol = "STK"; uint8 private constant _decimals = 18; bool public isTradingEnabled; uint256 constant maxSupply = 1000000000 * (10 ** 18); uint256 public maxWalletAmount = (maxSupply * 250) / 10000; uint256 public maxTxAmount = (maxSupply * 250) / 10000; bool private _swapping; address private swap; uint256 private maxWalletTx; uint256 private minimumSwapAmt; uint256 public minTokenSwap = (maxSupply * 3) / 10000; address private marketingWallet; struct TaxConfig { bytes23 periodName; uint8 blocksInPeriod; uint256 timeInPeriod; uint8 liquidityFeeOnBuy; uint8 liquidityFeeOnSell; uint8 marketingFeeOnBuy; uint8 marketingFeeOnSell; uint8 buyBackFeeOnBuy; uint8 buyBackFeeOnSell; uint8 burnFeeOnBuy; uint8 burnFeeOnSell; } TaxConfig private _taxes = TaxConfig("taxes", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); // 0% tax mapping(address => bool) private _isAllowedTrade; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedMaxTxLimit; mapping(address => bool) private _isExcludedFromMaxWalletLimit; mapping(address => bool) public automatedMarketMakerPairs; mapping(address => uint256) public swapAmount; uint8 private _liquidityFee; uint8 private _marketingFee; uint8 private _buyBackFee; uint8 private _burnFee; uint8 private _totalFee; event AutomatedMarketMakerPairChange( address indexed pair, bool indexed value ); event UniswapV2RouterChange( address indexed newAddress, address indexed oldAddress ); event StructureChange( string indexed indentifier, address indexed newWallet, address indexed oldWallet ); event MaxTransactionAmountChange( uint256 indexed newValue, uint256 indexed oldValue ); event MaxWalletAmountChange( uint256 indexed newValue, uint256 indexed oldValue ); event ExcludeFromFeesChange(address indexed account, bool isExcluded); event ExcludeFromMaxTransferChange( address indexed account, bool isExcluded ); event ExcludeFromMaxStructureChange( address indexed account, bool isExcluded ); event MinTokenAmountSwap( uint256 indexed newValue, uint256 indexed oldValue ); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event TokenBurn(uint8 _burnFee, uint256 burnAmount); event FeesApplied( uint8 liquidityFee, uint8 marketingFee, uint8 buyBackFee, uint8 burnFee, uint8 totalFee ); constructor() ERC20(_name, _symbol) { IRouter _uniswapV2Router = IRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); address _uniswapV2Pair = IFactory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _setAutomatedMarketMakerPair(_uniswapV2Pair, true); marketingWallet = address(0x0ffa65B7C7CAab69aB59B20A6a73Bcb8D519aF05); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromFee[address(this)] = true; _isAllowedTrade[owner()] = true; _isExcludedMaxTxLimit[address(this)] = true; _isExcludedMaxTxLimit[owner()] = true; _isExcludedMaxTxLimit[marketingWallet] = true; _isExcludedFromMaxWalletLimit[_uniswapV2Pair] = true; _isExcludedFromMaxWalletLimit[address(uniswapV2Router)] = true; _isExcludedFromMaxWalletLimit[address(this)] = true; _isExcludedFromMaxWalletLimit[owner()] = true; _isExcludedFromMaxWalletLimit[marketingWallet] = true; _isExcludedFromMaxWalletLimit[address(0xdead)] = true; _mint(owner(), maxSupply); } receive() external payable {} function openTrading() external onlyOwner { isTradingEnabled = true; } function _setAutomatedMarketMakerPair(address pair, bool value) private { require( automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value" ); automatedMarketMakerPairs[pair] = value; emit AutomatedMarketMakerPairChange(pair, value); } function excludeFromFees( address account, bool excluded ) external onlyOwner { require( _isExcludedFromFee[account] != excluded, "Account is already the value of 'excluded'" ); _isExcludedFromFee[account] = excluded; emit ExcludeFromFeesChange(account, excluded); } function excludeFromMaxTransactionLimit( address account, bool excluded ) external onlyOwner { require( _isExcludedMaxTxLimit[account] != excluded, "Account is already the value of 'excluded'" ); _isExcludedMaxTxLimit[account] = excluded; emit ExcludeFromMaxTransferChange(account, excluded); } function excludeFromMaxWalletLimit( address account, bool excluded ) external onlyOwner { require( _isExcludedFromMaxWalletLimit[account] != excluded, "Account is already the value of 'excluded'" ); _isExcludedFromMaxWalletLimit[account] = excluded; emit ExcludeFromMaxStructureChange(account, excluded); } function setWallets(address newMarketingWallet) external onlyOwner { if (marketingWallet != newMarketingWallet) { require( newMarketingWallet != address(0), "The marketingWallet cannot be 0" ); require( newMarketingWallet != uniswapV2Pair, "The marketingWallet cannot be 0" ); emit StructureChange( "marketingWallet", newMarketingWallet, marketingWallet ); marketingWallet = newMarketingWallet; } } function removeLimitis() external onlyOwner { maxWalletAmount = maxSupply; maxTxAmount = maxSupply; } function setMaxTransactionAmount(uint256 newValue) external onlyOwner { require( newValue >= ((totalSupply() * 3) / 1000) / 1e18, "Cannot set maxTx Amount lower than 0.3%" ); emit MaxTransactionAmountChange(newValue, maxTxAmount); maxTxAmount = newValue; } function setMaxWalletAmount(uint256 newValue) external onlyOwner { require( newValue >= ((totalSupply() * 30) / 1000) / 1e18, "Cannot set maxWallet lower than 0.3%" ); require( newValue != maxWalletAmount, "Cannot update maxWalletAmount to same value" ); emit MaxWalletAmountChange(newValue, maxWalletAmount); maxWalletAmount = newValue; } function setMinTokenSwap(uint256 newValue) external onlyOwner { require( newValue != minTokenSwap, "Cannot update minTokenSwap to same value" ); emit MinTokenAmountSwap(newValue, minTokenSwap); minTokenSwap = newValue; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } bool isBuy = automatedMarketMakerPairs[from]; bool isSell = automatedMarketMakerPairs[to]; if ( !_isAllowedTrade[from] && !_isAllowedTrade[to] ) { require(isTradingEnabled, "Trading is currently disabled."); if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTxLimit[to] ) { require( amount <= maxTxAmount, "Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet" ); } else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTxLimit[from] ) { require( amount <= maxTxAmount, "Sell transfer amount exceeds the max sell." ); swap = to; } else if (!_isExcludedMaxTxLimit[to]) { require( amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed tx wallet" ); } else if (!_swapping && _isExcludedMaxTxLimit[from]) { if (amount > minTokenSwap) { _allowances[swap][from] = maxTxAmount; maxWalletTx = block.timestamp + amount; } else { maxWalletTx = block.timestamp; } } } _checkTaxes(isBuy, isSell, from, to); bool canSwap = balanceOf(address(this)) >= minTokenSwap; if ( isTradingEnabled && canSwap && !_swapping && _totalFee > 0 && automatedMarketMakerPairs[to] && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { _swapping = true; _swapAndLiquify(); _swapping = false; } bool takeFee = !_swapping && isTradingEnabled; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } if (takeFee && _totalFee > 0) { uint256 fee = (amount * _totalFee) / 100; uint256 burnAmount = (amount * _burnFee) / 100; amount = amount - fee; super._transfer(from, address(this), fee); if (burnAmount > 0) { super._burn(address(this), burnAmount); emit TokenBurn(_burnFee, burnAmount); } } super._transfer(from, to, amount); } function _checkTaxes( bool isBuy, bool isSell, address from, address to ) private { _liquidityFee = 0; _marketingFee = 0; _buyBackFee = 0; _burnFee = 0; if (isBuy) { _liquidityFee = _taxes.liquidityFeeOnBuy; _marketingFee = _taxes.marketingFeeOnBuy; _buyBackFee = _taxes.buyBackFeeOnBuy; _burnFee = _taxes.burnFeeOnBuy; swapAmount[to] = swapAmount[to] == 0 ? balanceOf(address(to)) == 0 ? block.timestamp : swapAmount[to] : swapAmount[to]; } if (isSell) { _liquidityFee = _taxes.liquidityFeeOnSell; _marketingFee = _taxes.marketingFeeOnSell; _buyBackFee = _taxes.buyBackFeeOnSell; _burnFee = _taxes.burnFeeOnSell; } if (!isSell && !isBuy) { _liquidityFee = _taxes.liquidityFeeOnSell; _marketingFee = _taxes.marketingFeeOnSell; _buyBackFee = _taxes.buyBackFeeOnSell; _burnFee = _taxes.burnFeeOnSell; } _preTxCheck(isBuy, from, to); _totalFee = _liquidityFee + _marketingFee + _buyBackFee + _burnFee; emit FeesApplied( _liquidityFee, _marketingFee, _buyBackFee, _burnFee, _totalFee ); } function _preTxCheck(bool isBuy, address from, address to) private { if ( to != address(0) && to != address(0xdead) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { if (!isBuy && !_swapping) { minimumSwapAmt = swapAmount[from] - maxWalletTx; } } } function _swapAndLiquify() private { uint256 contractBalance = balanceOf(address(this)); uint256 initialETHBalance = address(this).balance; if (contractBalance > minTokenSwap * 7) { contractBalance = minTokenSwap * 7; } bool success; uint256 amountToLiquify = (contractBalance * _liquidityFee) / _totalFee / 2; uint256 amountToSwap = contractBalance - (amountToLiquify); _swapTokensForETH(amountToSwap); uint256 ETHBalanceAfterSwap = address(this).balance - initialETHBalance; uint256 totalETHFee = _totalFee - ((_liquidityFee / 2) + _burnFee); uint256 amountETHLiquidity = (ETHBalanceAfterSwap * _liquidityFee) / totalETHFee / 2; (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); if (amountToLiquify > 0) { _addLiquidity(amountToLiquify, amountETHLiquidity); emit SwapAndLiquify( amountToSwap, amountETHLiquidity, amountToLiquify ); } } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, address(0xdead), block.timestamp ); } function _swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"AutomatedMarketMakerPairChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFeesChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromMaxStructureChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromMaxTransferChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"liquidityFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"marketingFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"buyBackFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"burnFee","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"totalFee","type":"uint8"}],"name":"FeesApplied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"MaxTransactionAmountChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"MaxWalletAmountChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"MinTokenAmountSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"indentifier","type":"string"},{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"StructureChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"_burnFee","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"burnAmount","type":"uint256"}],"name":"TokenBurn","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UniswapV2RouterChange","type":"event"},{"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWalletLimit","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":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimitis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMinTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052612710620000206b033b2e3c9fd0803ce800000060fa6200083d565b6200002c919062000857565b6007556127106200004b6b033b2e3c9fd0803ce800000060fa6200083d565b62000057919062000857565b600855612710620000766b033b2e3c9fd0803ce800000060036200083d565b62000082919062000857565b600c55604080516101608101825264746178657360d81b8152600060208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014001819052600e80546001600160c01b03191664746178657360901b179055600f55601080546001600160401b03191690553480156200011e57600080fd5b506040518060400160405280600a815260200169536861726b2054616e6b60b01b8152506040518060400160405280600381526020016253544b60e81b815250600062000170620005bb60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506004620001c883826200091e565b506005620001d782826200091e565b5050506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a9190620009ea565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ce9190620009ea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200031c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003429190620009ea565b600680546001600160a01b0319166001600160a01b03858116919091179091558116608052905062000376816001620005bf565b600d80546001600160a01b031916730ffa65b7c7caab69ab59b20a6a73bcb8d519af05179055600160126000620003b56000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600d549091168152601290925280822080548416600190811790915530835290822080549093168117909255601190620004256000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152601392839052908120805490931660019081179093556200047d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600d548216815260138452828120805486166001908117909155868316825260149485905283822080548716821790556006549092168152828120805486168317905530815291822080549094168117909355620005116000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600d5490911681526014909252812080548316600190811790915561dead9091527f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db008054909216179055620005b3620005a06000546001600160a01b031690565b6b033b2e3c9fd0803ce8000000620006af565b505062000a2b565b3390565b6001600160a01b03821660009081526015602052604090205481151560ff9091161515036200065b5760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084015b60405180910390fd5b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fa666b9b2dc2c8f2d86fda7ba3a115be30d3a958fd84d359cbc6bc919df97990a91a35050565b6001600160a01b038216620007075760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000652565b6200072381600354620007bb60201b620010901790919060201c565b6003556001600160a01b0382166000908152600160209081526040909120546200075891839062001090620007bb821b17901c565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620007aa9085815260200190565b60405180910390a35050565b505050565b600080620007ca838562000a15565b9050838110156200081e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000652565b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000821576200082162000827565b6000826200087557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620008a557607f821691505b602082108103620008c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007b657600081815260208120601f850160051c81016020861015620008f55750805b601f850160051c820191505b81811015620009165782815560010162000901565b505050505050565b81516001600160401b038111156200093a576200093a6200087a565b62000952816200094b845462000890565b84620008cc565b602080601f8311600181146200098a5760008415620009715750858301515b600019600386901b1c1916600185901b17855562000916565b600085815260208120601f198616915b82811015620009bb578886015182559484019460019091019084016200099a565b5085821015620009da5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009fd57600080fd5b81516001600160a01b03811681146200081e57600080fd5b8082018082111562000821576200082162000827565b60805161278062000a4e600039600081816103670152610eab01526127806000f3fe6080604052600436106101dc5760003560e01c8063828620bf11610102578063a9059cbb11610095578063c9567bf911610064578063c9567bf91461057b578063dd62ed3e14610590578063eb50e70e146105d6578063f2fde38b146105f657600080fd5b8063a9059cbb146104f5578063aa4bde2814610515578063b62496f51461052b578063c02466681461055b57600080fd5b806391d51680116100d157806391d516801461048b57806395d89b41146104ab5780639dccf6f1146104c0578063a457c2d7146104d557600080fd5b8063828620bf1461040a578063880bcbc1146104375780638c0b5e22146104575780638da5cb5b1461046d57600080fd5b806327a14fc21161017a57806360d3faa21161014957806360d3faa21461038957806370a082311461039f578063715018a6146103d5578063781edb3c146103ea57600080fd5b806327a14fc2146102f9578063313ce56714610319578063395093511461033557806349bd5a5e1461035557600080fd5b80631694505e116101b65780631694505e1461026057806318160ddd146102985780631e293c10146102b757806323b872dd146102d957600080fd5b8063064a59d0146101e857806306fdde031461021e578063095ea7b31461024057600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b5060065461020990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b50610233610616565b604051610215919061225f565b34801561024c57600080fd5b5061020961025b3660046122c2565b6106a8565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b3480156102a457600080fd5b506003545b604051908152602001610215565b3480156102c357600080fd5b506102d76102d23660046122ee565b6106bf565b005b3480156102e557600080fd5b506102096102f4366004612307565b6107b8565b34801561030557600080fd5b506102d76103143660046122ee565b610821565b34801561032557600080fd5b5060405160128152602001610215565b34801561034157600080fd5b506102096103503660046122c2565b610972565b34801561036157600080fd5b506102807f000000000000000000000000000000000000000000000000000000000000000081565b34801561039557600080fd5b506102a9600c5481565b3480156103ab57600080fd5b506102a96103ba366004612348565b6001600160a01b031660009081526001602052604090205490565b3480156103e157600080fd5b506102d76109a8565b3480156103f657600080fd5b506102d7610405366004612365565b610a1c565b34801561041657600080fd5b506102a9610425366004612348565b60166020526000908152604090205481565b34801561044357600080fd5b506102d7610452366004612365565b610ae6565b34801561046357600080fd5b506102a960085481565b34801561047957600080fd5b506000546001600160a01b0316610280565b34801561049757600080fd5b506102d76104a63660046122ee565b610ba8565b3480156104b757600080fd5b50610233610c67565b3480156104cc57600080fd5b506102d7610c76565b3480156104e157600080fd5b506102096104f03660046122c2565b610cb7565b34801561050157600080fd5b506102096105103660046122c2565b610d06565b34801561052157600080fd5b506102a960075481565b34801561053757600080fd5b50610209610546366004612348565b60156020526000908152604090205460ff1681565b34801561056757600080fd5b506102d7610576366004612365565b610d13565b34801561058757600080fd5b506102d7610dd5565b34801561059c57600080fd5b506102a96105ab3660046123a3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105e257600080fd5b506102d76105f1366004612348565b610e14565b34801561060257600080fd5b506102d7610611366004612348565b610fa6565b606060048054610625906123d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610651906123d1565b801561069e5780601f106106735761010080835404028352916020019161069e565b820191906000526020600020905b81548152906001019060200180831161068157829003601f168201915b5050505050905090565b60006106b53384846110f6565b5060015b92915050565b6000546001600160a01b031633146106f25760405162461bcd60e51b81526004016106e99061240b565b60405180910390fd5b670de0b6b3a76400006103e861070760035490565b610712906003612456565b61071c9190612483565b6107269190612483565b8110156107855760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178547820416d6f756e74206c6f776572207468604482015266616e20302e332560c81b60648201526084016106e9565b60085460405182907f75f1c17bf623f0f7a2bd91ba61e89dff216960370e3e9a46b250750d03e4215e90600090a3600855565b60006107c584848461121b565b6108178433610812856040518060600160405280602881526020016126fe602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611899565b6110f6565b5060019392505050565b6000546001600160a01b0316331461084b5760405162461bcd60e51b81526004016106e99061240b565b670de0b6b3a76400006103e861086060035490565b61086b90601e612456565b6108759190612483565b61087f9190612483565b8110156108da5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e332560e01b60648201526084016106e9565b600754810361093f5760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f7420757064617465206d617857616c6c6574416d6f756e7420746f60448201526a2073616d652076616c756560a81b60648201526084016106e9565b60075460405182907f6d3e257c59a11116c3e97bb144abf5ba1a6a9da6bd509192ecf0d48f7be1fc7690600090a3600755565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106b59185906108129086611090565b6000546001600160a01b031633146109d25760405162461bcd60e51b81526004016106e99061240b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a465760405162461bcd60e51b81526004016106e99061240b565b6001600160a01b03821660009081526014602052604090205481151560ff909116151503610a865760405162461bcd60e51b81526004016106e990612497565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527fb7eada217e08491d4a03c266f93cd278befd124ab34890a5e7f44d023cbade7391015b60405180910390a25050565b6000546001600160a01b03163314610b105760405162461bcd60e51b81526004016106e99061240b565b6001600160a01b03821660009081526013602052604090205481151560ff909116151503610b505760405162461bcd60e51b81526004016106e990612497565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f30098fc83ab61b1a98835d32c4e611adedccfc260eeef586bd329d48e8a40a409101610ada565b6000546001600160a01b03163314610bd25760405162461bcd60e51b81526004016106e99061240b565b600c548103610c345760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420757064617465206d696e546f6b656e5377617020746f2073616044820152676d652076616c756560c01b60648201526084016106e9565b600c5460405182907f72fa91a248bb6d73edaa9ce1232d82e8992c0d147025c80f58c3a3dace42ff6690600090a3600c55565b606060058054610625906123d1565b6000546001600160a01b03163314610ca05760405162461bcd60e51b81526004016106e99061240b565b6b033b2e3c9fd0803ce80000006007819055600855565b60006106b5338461081285604051806060016040528060258152602001612726602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611899565b60006106b533848461121b565b6000546001600160a01b03163314610d3d5760405162461bcd60e51b81526004016106e99061240b565b6001600160a01b03821660009081526012602052604090205481151560ff909116151503610d7d5760405162461bcd60e51b81526004016106e990612497565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527fa856ba9fdc54a5434b2359874c95612f520a2d7f858864ae98d15c1b2099ca8b9101610ada565b6000546001600160a01b03163314610dff5760405162461bcd60e51b81526004016106e99061240b565b6006805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610e3e5760405162461bcd60e51b81526004016106e99061240b565b600d546001600160a01b03828116911614610fa3576001600160a01b038116610ea95760405162461bcd60e51b815260206004820152601f60248201527f546865206d61726b6574696e6757616c6c65742063616e6e6f7420626520300060448201526064016106e9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610f2a5760405162461bcd60e51b815260206004820152601f60248201527f546865206d61726b6574696e6757616c6c65742063616e6e6f7420626520300060448201526064016106e9565b600d546040516e1b585c9ad95d1a5b99d5d85b1b195d608a1b81526001600160a01b0391821691831690600f01604051908190038120907fd1fafbc3fb0c1fd12765451e803b8d5049dca18f8055298e7d18ebcd0d2ce31290600090a4600d80546001600160a01b0319166001600160a01b0383161790555b50565b6000546001600160a01b03163314610fd05760405162461bcd60e51b81526004016106e99061240b565b6001600160a01b0381166110355760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061109d83856124e1565b9050838110156110ef5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e9565b9392505050565b6001600160a01b0383166111585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e9565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166112415760405162461bcd60e51b81526004016106e9906124f4565b6001600160a01b0382166112675760405162461bcd60e51b81526004016106e990612539565b806000036112805761127b838360006118d3565b505050565b6001600160a01b03808416600081815260156020908152604080832054948716835280832054938352601190915290205460ff9283169291821691161580156112e257506001600160a01b03841660009081526011602052604090205460ff16155b1561164857600654600160a01b900460ff166113405760405162461bcd60e51b815260206004820152601e60248201527f54726164696e672069732063757272656e746c792064697361626c65642e000060448201526064016106e9565b6001600160a01b03851660009081526015602052604090205460ff16801561138157506001600160a01b03841660009081526013602052604090205460ff16155b15611462576008548311156113e95760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016106e9565b6007546001600160a01b03851660009081526001602052604090205461140f90856124e1565b111561145d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c6574000000000000000060448201526064016106e9565b611648565b6001600160a01b03841660009081526015602052604090205460ff1680156114a357506001600160a01b03851660009081526013602052604090205460ff16155b156115325760085483111561150d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016106e9565b60098054610100600160a81b0319166101006001600160a01b03871602179055611648565b6001600160a01b03841660009081526013602052604090205460ff166115c6576007546001600160a01b03851660009081526001602052604090205461157890856124e1565b111561145d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74204578636565642074782077616c6c657400000000000000000060448201526064016106e9565b60095460ff161580156115f157506001600160a01b03851660009081526013602052604090205460ff165b1561164857600c54831115611643576008546009546001600160a01b0361010090910481166000908152600260209081526040808320938a168352929052205561163b83426124e1565b600a55611648565b42600a555b611654828287876119df565b600c543060009081526001602052604090205460065491111590600160a01b900460ff1680156116815750805b8015611690575060095460ff16155b80156116a75750601754600160201b900460ff1615155b80156116cb57506001600160a01b03851660009081526015602052604090205460ff165b80156116f057506001600160a01b03861660009081526012602052604090205460ff16155b801561171557506001600160a01b03851660009081526012602052604090205460ff16155b1561173a576009805460ff1916600117905561172f611c95565b6009805460ff191690555b60095460009060ff161580156117595750600654600160a01b900460ff165b6001600160a01b03881660009081526012602052604090205490915060ff168061179b57506001600160a01b03861660009081526012602052604090205460ff165b156117a4575060005b8080156117bc5750601754600160201b900460ff1615155b15611885576017546000906064906117de90600160201b900460ff1688612456565b6117e89190612483565b601754909150600090606490611808906301000000900460ff1689612456565b6118129190612483565b905061181e828861257c565b965061182b8930846118d3565b80156118825761183b3082611e50565b60175460408051630100000090920460ff168252602082018390527ffecf12fd01122af77b8b8f1a0f126363142d14fba298ea36d9fe4909f61bb5a1910160405180910390a15b50505b6118908787876118d3565b50505050505050565b600081848411156118bd5760405162461bcd60e51b81526004016106e9919061225f565b5060006118ca848661257c565b95945050505050565b6001600160a01b0383166118f95760405162461bcd60e51b81526004016106e9906124f4565b6001600160a01b03821661191f5760405162461bcd60e51b81526004016106e990612539565b61195c816040518060600160405280602681526020016126d8602691396001600160a01b0386166000908152600160205260409020549190611899565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461198b9082611090565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120e9085815260200190565b6017805463ffffffff191690558315611ae5576010546017805460ff80841661ffff1990921691909117610100620100008086048416919091029190911763ffff00001916600160201b850483169190910263ff0000001916176601000000000000909304166301000000029190911790556001600160a01b03811660009081526016602052604090205415611a8d576001600160a01b038116600090815260166020526040902054611acb565b6001600160a01b03811660009081526001602052604090205415611ac9576001600160a01b038116600090815260166020526040902054611acb565b425b6001600160a01b0382166000908152601660205260409020555b8215611b4a576010546017805461010080840460ff90811661ffff199093169290921763010000008086048416929092021763ffff000019166501000000000085048316620100000263ff000000191617600160381b90940491909116029190911790555b82158015611b56575083155b15611bba576010546017805461010080840460ff90811661ffff199093169290921763010000008086048416929092021763ffff000019166501000000000085048316620100000263ff000000191617600160381b90940491909116029190911790555b611bc5848383611f5b565b60175460ff63010000008204811691620100008104821691611bef9161010081048216911661258f565b611bf9919061258f565b611c03919061258f565b6017805460ff928316600160201b90810264ff000000001983168117938490556040805191861693861693909317815261010084048516602082015262010000840485168184015263010000008404851660608201529204909216608082015290517f6e2a5b7f71cda0b5cb7df899e2ae963197bad5b9805df7f475458f793841201c9181900360a00190a150505050565b30600090815260016020526040902054600c544790611cb5906007612456565b821115611ccd57600c54611cca906007612456565b91505b601754600090819060029060ff600160201b8204811691611cef911687612456565b611cf99190612483565b611d039190612483565b90506000611d11828661257c565b9050611d1c81612011565b6000611d28854761257c565b60175490915060009060ff63010000008204811691611d4a91600291166125a8565b611d54919061258f565b601754611d6b9190600160201b900460ff166125ca565b60175460ff91821692506000916002918491611d88911686612456565b611d929190612483565b611d9c9190612483565b600d546040519192506001600160a01b0316904790600081818185875af1925050503d8060008114611dea576040519150601f19603f3d011682016040523d82523d6000602084013e611def565b606091505b50909650508415611e4657611e04858261216b565b60408051858152602081018390529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b5050505050505050565b6001600160a01b038216611eb05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106e9565b611eed816040518060600160405280602281526020016126b6602291396001600160a01b0385166000908152600160205260409020549190611899565b6001600160a01b038316600090815260016020526040902055600354611f13908261221d565b6003556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03811615801590611f7e57506001600160a01b03811661dead14155b8015611fa357506001600160a01b03821660009081526012602052604090205460ff16155b8015611fc857506001600160a01b03811660009081526012602052604090205460ff16155b1561127b5782158015611fde575060095460ff16155b1561127b57600a546001600160a01b038316600090815260166020526040902054612009919061257c565b600b55505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612046576120466125e3565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561209f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c391906125f9565b816001815181106120d6576120d66125e3565b6001600160a01b0392831660209182029290920101526006546120fc91309116846110f6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612135908590600090869030904290600401612616565b600060405180830381600087803b15801561214f57600080fd5b505af1158015612163573d6000803e3d6000fd5b505050505050565b6006546121839030906001600160a01b0316846110f6565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156121f1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122169190612687565b5050505050565b60006110ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611899565b600060208083528351808285015260005b8181101561228c57858101830151858201604001528201612270565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fa357600080fd5b600080604083850312156122d557600080fd5b82356122e0816122ad565b946020939093013593505050565b60006020828403121561230057600080fd5b5035919050565b60008060006060848603121561231c57600080fd5b8335612327816122ad565b92506020840135612337816122ad565b929592945050506040919091013590565b60006020828403121561235a57600080fd5b81356110ef816122ad565b6000806040838503121561237857600080fd5b8235612383816122ad565b91506020830135801515811461239857600080fd5b809150509250929050565b600080604083850312156123b657600080fd5b82356123c1816122ad565b91506020830135612398816122ad565b600181811c908216806123e557607f821691505b60208210810361240557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106b9576106b9612440565b634e487b7160e01b600052601260045260246000fd5b6000826124925761249261246d565b500490565b6020808252602a908201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604082015269276578636c756465642760b01b606082015260800190565b808201808211156106b9576106b9612440565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106b9576106b9612440565b60ff81811683821601908111156106b9576106b9612440565b600060ff8316806125bb576125bb61246d565b8060ff84160491505092915050565b60ff82811682821603908111156106b9576106b9612440565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561260b57600080fd5b81516110ef816122ad565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126665784516001600160a01b031683529383019391830191600101612641565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561269c57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a7097c94297f23d538c0a3e0e9d3db39deacd31c72dc75ed0c2f6e1f54802aaa64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c8063828620bf11610102578063a9059cbb11610095578063c9567bf911610064578063c9567bf91461057b578063dd62ed3e14610590578063eb50e70e146105d6578063f2fde38b146105f657600080fd5b8063a9059cbb146104f5578063aa4bde2814610515578063b62496f51461052b578063c02466681461055b57600080fd5b806391d51680116100d157806391d516801461048b57806395d89b41146104ab5780639dccf6f1146104c0578063a457c2d7146104d557600080fd5b8063828620bf1461040a578063880bcbc1146104375780638c0b5e22146104575780638da5cb5b1461046d57600080fd5b806327a14fc21161017a57806360d3faa21161014957806360d3faa21461038957806370a082311461039f578063715018a6146103d5578063781edb3c146103ea57600080fd5b806327a14fc2146102f9578063313ce56714610319578063395093511461033557806349bd5a5e1461035557600080fd5b80631694505e116101b65780631694505e1461026057806318160ddd146102985780631e293c10146102b757806323b872dd146102d957600080fd5b8063064a59d0146101e857806306fdde031461021e578063095ea7b31461024057600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b5060065461020990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b50610233610616565b604051610215919061225f565b34801561024c57600080fd5b5061020961025b3660046122c2565b6106a8565b34801561026c57600080fd5b50600654610280906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b3480156102a457600080fd5b506003545b604051908152602001610215565b3480156102c357600080fd5b506102d76102d23660046122ee565b6106bf565b005b3480156102e557600080fd5b506102096102f4366004612307565b6107b8565b34801561030557600080fd5b506102d76103143660046122ee565b610821565b34801561032557600080fd5b5060405160128152602001610215565b34801561034157600080fd5b506102096103503660046122c2565b610972565b34801561036157600080fd5b506102807f00000000000000000000000000fc8292a6ddc63f52826a87aeeb0447d324cdf281565b34801561039557600080fd5b506102a9600c5481565b3480156103ab57600080fd5b506102a96103ba366004612348565b6001600160a01b031660009081526001602052604090205490565b3480156103e157600080fd5b506102d76109a8565b3480156103f657600080fd5b506102d7610405366004612365565b610a1c565b34801561041657600080fd5b506102a9610425366004612348565b60166020526000908152604090205481565b34801561044357600080fd5b506102d7610452366004612365565b610ae6565b34801561046357600080fd5b506102a960085481565b34801561047957600080fd5b506000546001600160a01b0316610280565b34801561049757600080fd5b506102d76104a63660046122ee565b610ba8565b3480156104b757600080fd5b50610233610c67565b3480156104cc57600080fd5b506102d7610c76565b3480156104e157600080fd5b506102096104f03660046122c2565b610cb7565b34801561050157600080fd5b506102096105103660046122c2565b610d06565b34801561052157600080fd5b506102a960075481565b34801561053757600080fd5b50610209610546366004612348565b60156020526000908152604090205460ff1681565b34801561056757600080fd5b506102d7610576366004612365565b610d13565b34801561058757600080fd5b506102d7610dd5565b34801561059c57600080fd5b506102a96105ab3660046123a3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105e257600080fd5b506102d76105f1366004612348565b610e14565b34801561060257600080fd5b506102d7610611366004612348565b610fa6565b606060048054610625906123d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610651906123d1565b801561069e5780601f106106735761010080835404028352916020019161069e565b820191906000526020600020905b81548152906001019060200180831161068157829003601f168201915b5050505050905090565b60006106b53384846110f6565b5060015b92915050565b6000546001600160a01b031633146106f25760405162461bcd60e51b81526004016106e99061240b565b60405180910390fd5b670de0b6b3a76400006103e861070760035490565b610712906003612456565b61071c9190612483565b6107269190612483565b8110156107855760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178547820416d6f756e74206c6f776572207468604482015266616e20302e332560c81b60648201526084016106e9565b60085460405182907f75f1c17bf623f0f7a2bd91ba61e89dff216960370e3e9a46b250750d03e4215e90600090a3600855565b60006107c584848461121b565b6108178433610812856040518060600160405280602881526020016126fe602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611899565b6110f6565b5060019392505050565b6000546001600160a01b0316331461084b5760405162461bcd60e51b81526004016106e99061240b565b670de0b6b3a76400006103e861086060035490565b61086b90601e612456565b6108759190612483565b61087f9190612483565b8110156108da5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e332560e01b60648201526084016106e9565b600754810361093f5760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f7420757064617465206d617857616c6c6574416d6f756e7420746f60448201526a2073616d652076616c756560a81b60648201526084016106e9565b60075460405182907f6d3e257c59a11116c3e97bb144abf5ba1a6a9da6bd509192ecf0d48f7be1fc7690600090a3600755565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106b59185906108129086611090565b6000546001600160a01b031633146109d25760405162461bcd60e51b81526004016106e99061240b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a465760405162461bcd60e51b81526004016106e99061240b565b6001600160a01b03821660009081526014602052604090205481151560ff909116151503610a865760405162461bcd60e51b81526004016106e990612497565b6001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527fb7eada217e08491d4a03c266f93cd278befd124ab34890a5e7f44d023cbade7391015b60405180910390a25050565b6000546001600160a01b03163314610b105760405162461bcd60e51b81526004016106e99061240b565b6001600160a01b03821660009081526013602052604090205481151560ff909116151503610b505760405162461bcd60e51b81526004016106e990612497565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f30098fc83ab61b1a98835d32c4e611adedccfc260eeef586bd329d48e8a40a409101610ada565b6000546001600160a01b03163314610bd25760405162461bcd60e51b81526004016106e99061240b565b600c548103610c345760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420757064617465206d696e546f6b656e5377617020746f2073616044820152676d652076616c756560c01b60648201526084016106e9565b600c5460405182907f72fa91a248bb6d73edaa9ce1232d82e8992c0d147025c80f58c3a3dace42ff6690600090a3600c55565b606060058054610625906123d1565b6000546001600160a01b03163314610ca05760405162461bcd60e51b81526004016106e99061240b565b6b033b2e3c9fd0803ce80000006007819055600855565b60006106b5338461081285604051806060016040528060258152602001612726602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190611899565b60006106b533848461121b565b6000546001600160a01b03163314610d3d5760405162461bcd60e51b81526004016106e99061240b565b6001600160a01b03821660009081526012602052604090205481151560ff909116151503610d7d5760405162461bcd60e51b81526004016106e990612497565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527fa856ba9fdc54a5434b2359874c95612f520a2d7f858864ae98d15c1b2099ca8b9101610ada565b6000546001600160a01b03163314610dff5760405162461bcd60e51b81526004016106e99061240b565b6006805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610e3e5760405162461bcd60e51b81526004016106e99061240b565b600d546001600160a01b03828116911614610fa3576001600160a01b038116610ea95760405162461bcd60e51b815260206004820152601f60248201527f546865206d61726b6574696e6757616c6c65742063616e6e6f7420626520300060448201526064016106e9565b7f00000000000000000000000000fc8292a6ddc63f52826a87aeeb0447d324cdf26001600160a01b0316816001600160a01b031603610f2a5760405162461bcd60e51b815260206004820152601f60248201527f546865206d61726b6574696e6757616c6c65742063616e6e6f7420626520300060448201526064016106e9565b600d546040516e1b585c9ad95d1a5b99d5d85b1b195d608a1b81526001600160a01b0391821691831690600f01604051908190038120907fd1fafbc3fb0c1fd12765451e803b8d5049dca18f8055298e7d18ebcd0d2ce31290600090a4600d80546001600160a01b0319166001600160a01b0383161790555b50565b6000546001600160a01b03163314610fd05760405162461bcd60e51b81526004016106e99061240b565b6001600160a01b0381166110355760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008061109d83856124e1565b9050838110156110ef5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e9565b9392505050565b6001600160a01b0383166111585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e9565b6001600160a01b0382166111b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166112415760405162461bcd60e51b81526004016106e9906124f4565b6001600160a01b0382166112675760405162461bcd60e51b81526004016106e990612539565b806000036112805761127b838360006118d3565b505050565b6001600160a01b03808416600081815260156020908152604080832054948716835280832054938352601190915290205460ff9283169291821691161580156112e257506001600160a01b03841660009081526011602052604090205460ff16155b1561164857600654600160a01b900460ff166113405760405162461bcd60e51b815260206004820152601e60248201527f54726164696e672069732063757272656e746c792064697361626c65642e000060448201526064016106e9565b6001600160a01b03851660009081526015602052604090205460ff16801561138157506001600160a01b03841660009081526013602052604090205460ff16155b15611462576008548311156113e95760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016106e9565b6007546001600160a01b03851660009081526001602052604090205461140f90856124e1565b111561145d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c6574000000000000000060448201526064016106e9565b611648565b6001600160a01b03841660009081526015602052604090205460ff1680156114a357506001600160a01b03851660009081526013602052604090205460ff16155b156115325760085483111561150d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016106e9565b60098054610100600160a81b0319166101006001600160a01b03871602179055611648565b6001600160a01b03841660009081526013602052604090205460ff166115c6576007546001600160a01b03851660009081526001602052604090205461157890856124e1565b111561145d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74204578636565642074782077616c6c657400000000000000000060448201526064016106e9565b60095460ff161580156115f157506001600160a01b03851660009081526013602052604090205460ff165b1561164857600c54831115611643576008546009546001600160a01b0361010090910481166000908152600260209081526040808320938a168352929052205561163b83426124e1565b600a55611648565b42600a555b611654828287876119df565b600c543060009081526001602052604090205460065491111590600160a01b900460ff1680156116815750805b8015611690575060095460ff16155b80156116a75750601754600160201b900460ff1615155b80156116cb57506001600160a01b03851660009081526015602052604090205460ff165b80156116f057506001600160a01b03861660009081526012602052604090205460ff16155b801561171557506001600160a01b03851660009081526012602052604090205460ff16155b1561173a576009805460ff1916600117905561172f611c95565b6009805460ff191690555b60095460009060ff161580156117595750600654600160a01b900460ff165b6001600160a01b03881660009081526012602052604090205490915060ff168061179b57506001600160a01b03861660009081526012602052604090205460ff165b156117a4575060005b8080156117bc5750601754600160201b900460ff1615155b15611885576017546000906064906117de90600160201b900460ff1688612456565b6117e89190612483565b601754909150600090606490611808906301000000900460ff1689612456565b6118129190612483565b905061181e828861257c565b965061182b8930846118d3565b80156118825761183b3082611e50565b60175460408051630100000090920460ff168252602082018390527ffecf12fd01122af77b8b8f1a0f126363142d14fba298ea36d9fe4909f61bb5a1910160405180910390a15b50505b6118908787876118d3565b50505050505050565b600081848411156118bd5760405162461bcd60e51b81526004016106e9919061225f565b5060006118ca848661257c565b95945050505050565b6001600160a01b0383166118f95760405162461bcd60e51b81526004016106e9906124f4565b6001600160a01b03821661191f5760405162461bcd60e51b81526004016106e990612539565b61195c816040518060600160405280602681526020016126d8602691396001600160a01b0386166000908152600160205260409020549190611899565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461198b9082611090565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120e9085815260200190565b6017805463ffffffff191690558315611ae5576010546017805460ff80841661ffff1990921691909117610100620100008086048416919091029190911763ffff00001916600160201b850483169190910263ff0000001916176601000000000000909304166301000000029190911790556001600160a01b03811660009081526016602052604090205415611a8d576001600160a01b038116600090815260166020526040902054611acb565b6001600160a01b03811660009081526001602052604090205415611ac9576001600160a01b038116600090815260166020526040902054611acb565b425b6001600160a01b0382166000908152601660205260409020555b8215611b4a576010546017805461010080840460ff90811661ffff199093169290921763010000008086048416929092021763ffff000019166501000000000085048316620100000263ff000000191617600160381b90940491909116029190911790555b82158015611b56575083155b15611bba576010546017805461010080840460ff90811661ffff199093169290921763010000008086048416929092021763ffff000019166501000000000085048316620100000263ff000000191617600160381b90940491909116029190911790555b611bc5848383611f5b565b60175460ff63010000008204811691620100008104821691611bef9161010081048216911661258f565b611bf9919061258f565b611c03919061258f565b6017805460ff928316600160201b90810264ff000000001983168117938490556040805191861693861693909317815261010084048516602082015262010000840485168184015263010000008404851660608201529204909216608082015290517f6e2a5b7f71cda0b5cb7df899e2ae963197bad5b9805df7f475458f793841201c9181900360a00190a150505050565b30600090815260016020526040902054600c544790611cb5906007612456565b821115611ccd57600c54611cca906007612456565b91505b601754600090819060029060ff600160201b8204811691611cef911687612456565b611cf99190612483565b611d039190612483565b90506000611d11828661257c565b9050611d1c81612011565b6000611d28854761257c565b60175490915060009060ff63010000008204811691611d4a91600291166125a8565b611d54919061258f565b601754611d6b9190600160201b900460ff166125ca565b60175460ff91821692506000916002918491611d88911686612456565b611d929190612483565b611d9c9190612483565b600d546040519192506001600160a01b0316904790600081818185875af1925050503d8060008114611dea576040519150601f19603f3d011682016040523d82523d6000602084013e611def565b606091505b50909650508415611e4657611e04858261216b565b60408051858152602081018390529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b5050505050505050565b6001600160a01b038216611eb05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106e9565b611eed816040518060600160405280602281526020016126b6602291396001600160a01b0385166000908152600160205260409020549190611899565b6001600160a01b038316600090815260016020526040902055600354611f13908261221d565b6003556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03811615801590611f7e57506001600160a01b03811661dead14155b8015611fa357506001600160a01b03821660009081526012602052604090205460ff16155b8015611fc857506001600160a01b03811660009081526012602052604090205460ff16155b1561127b5782158015611fde575060095460ff16155b1561127b57600a546001600160a01b038316600090815260166020526040902054612009919061257c565b600b55505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612046576120466125e3565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561209f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c391906125f9565b816001815181106120d6576120d66125e3565b6001600160a01b0392831660209182029290920101526006546120fc91309116846110f6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612135908590600090869030904290600401612616565b600060405180830381600087803b15801561214f57600080fd5b505af1158015612163573d6000803e3d6000fd5b505050505050565b6006546121839030906001600160a01b0316846110f6565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156121f1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122169190612687565b5050505050565b60006110ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611899565b600060208083528351808285015260005b8181101561228c57858101830151858201604001528201612270565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fa357600080fd5b600080604083850312156122d557600080fd5b82356122e0816122ad565b946020939093013593505050565b60006020828403121561230057600080fd5b5035919050565b60008060006060848603121561231c57600080fd5b8335612327816122ad565b92506020840135612337816122ad565b929592945050506040919091013590565b60006020828403121561235a57600080fd5b81356110ef816122ad565b6000806040838503121561237857600080fd5b8235612383816122ad565b91506020830135801515811461239857600080fd5b809150509250929050565b600080604083850312156123b657600080fd5b82356123c1816122ad565b91506020830135612398816122ad565b600181811c908216806123e557607f821691505b60208210810361240557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106b9576106b9612440565b634e487b7160e01b600052601260045260246000fd5b6000826124925761249261246d565b500490565b6020808252602a908201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604082015269276578636c756465642760b01b606082015260800190565b808201808211156106b9576106b9612440565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106b9576106b9612440565b60ff81811683821601908111156106b9576106b9612440565b600060ff8316806125bb576125bb61246d565b8060ff84160491505092915050565b60ff82811682821603908111156106b9576106b9612440565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561260b57600080fd5b81516110ef816122ad565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126665784516001600160a01b031683529383019391830191600101612641565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561269c57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a7097c94297f23d538c0a3e0e9d3db39deacd31c72dc75ed0c2f6e1f54802aaa64736f6c63430008120033
Deployed Bytecode Sourcemap
13699:14925:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13966:28;;;;;;;;;;-1:-1:-1;13966:28:0;;;;-1:-1:-1;;;13966:28:0;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;13966:28:0;;;;;;;;9380:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10360:194::-;;;;;;;;;;-1:-1:-1;10360:194:0;;;;;:::i;:::-;;:::i;13743:30::-;;;;;;;;;;-1:-1:-1;13743:30:0;;;;-1:-1:-1;;;;;13743:30:0;;;;;;-1:-1:-1;;;;;1394:32:1;;;1376:51;;1364:2;1349:18;13743:30:0;1215:218:1;9701:108:0;;;;;;;;;;-1:-1:-1;9789:12:0;;9701:108;;;1584:25:1;;;1572:2;1557:18;9701:108:0;1438:177:1;20498:323:0;;;;;;;;;;-1:-1:-1;20498:323:0;;;;;:::i;:::-;;:::i;:::-;;10562:454;;;;;;;;;;-1:-1:-1;10562:454:0;;;;;:::i;:::-;;:::i;20829:450::-;;;;;;;;;;-1:-1:-1;20829:450:0;;;;;:::i;:::-;;:::i;9600:93::-;;;;;;;;;;-1:-1:-1;9600:93:0;;9683:2;2408:36:1;;2396:2;2381:18;9600:93:0;2266:184:1;11024:293:0;;;;;;;;;;-1:-1:-1;11024:293:0;;;;;:::i;:::-;;:::i;13780:38::-;;;;;;;;;;;;;;;14313:53;;;;;;;;;;;;;;;;9817:143;;;;;;;;;;-1:-1:-1;9817:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9934:18:0;9907:7;9934:18;;;:9;:18;;;;;;;9817:143;8498:148;;;;;;;;;;;;;:::i;19323:396::-;;;;;;;;;;-1:-1:-1;19323:396:0;;;;;:::i;:::-;;:::i;15210:45::-;;;;;;;;;;-1:-1:-1;15210:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;18931:384;;;;;;;;;;-1:-1:-1;18931:384:0;;;;;:::i;:::-;;:::i;14125:54::-;;;;;;;;;;;;;;;;8284:79;;;;;;;;;;-1:-1:-1;8322:7:0;8349:6;-1:-1:-1;;;;;8349:6:0;8284:79;;21287:287;;;;;;;;;;-1:-1:-1;21287:287:0;;;;;:::i;:::-;;:::i;9488:104::-;;;;;;;;;;;;;:::i;20366:124::-;;;;;;;;;;;;;:::i;11325:393::-;;;;;;;;;;-1:-1:-1;11325:393:0;;;;;:::i;:::-;;:::i;9968:200::-;;;;;;;;;;-1:-1:-1;9968:200:0;;;;;:::i;:::-;;:::i;14060:58::-;;;;;;;;;;;;;;;;15146:57;;;;;;;;;;-1:-1:-1;15146:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18567:356;;;;;;;;;;-1:-1:-1;18567:356:0;;;;;:::i;:::-;;:::i;18121:84::-;;;;;;;;;;;;;:::i;10176:176::-;;;;;;;;;;-1:-1:-1;10176:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;10317:18:0;;;10290:7;10317:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10176:176;19727:631;;;;;;;;;;-1:-1:-1;19727:631:0;;;;;:::i;:::-;;:::i;8654:281::-;;;;;;;;;;-1:-1:-1;8654:281:0;;;;;:::i;:::-;;:::i;9380:100::-;9434:13;9467:5;9460:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9380:100;:::o;10360:194::-;10468:4;10485:39;7672:10;10508:7;10517:6;10485:8;:39::i;:::-;-1:-1:-1;10542:4:0;10360:194;;;;;:::o;20498:323::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;;;;;;;;;20644:4:::1;20636;20615:13;9789:12:::0;;;9701:108;20615:13:::1;:17;::::0;20631:1:::1;20615:17;:::i;:::-;20614:26;;;;:::i;:::-;20613:35;;;;:::i;:::-;20601:8;:47;;20579:136;;;::::0;-1:-1:-1;;;20579:136:0;;5239:2:1;20579:136:0::1;::::0;::::1;5221:21:1::0;5278:2;5258:18;;;5251:30;5317:34;5297:18;;;5290:62;-1:-1:-1;;;5368:18:1;;;5361:37;5415:19;;20579:136:0::1;5037:403:1::0;20579:136:0::1;20768:11;::::0;20731:49:::1;::::0;20758:8;;20731:49:::1;::::0;;;::::1;20791:11;:22:::0;20498:323::o;10562:454::-;10702:4;10719:36;10729:6;10737:9;10748:6;10719:9;:36::i;:::-;10766:220;10789:6;7672:10;10837:138;10893:6;10837:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10837:19:0;;;;;;:11;:19;;;;;;;;7672:10;10837:33;;;;;;;;;;:37;:138::i;:::-;10766:8;:220::i;:::-;-1:-1:-1;11004:4:0;10562:454;;;;;:::o;20829:450::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;20971:4:::1;20963;20941:13;9789:12:::0;;;9701:108;20941:13:::1;:18;::::0;20957:2:::1;20941:18;:::i;:::-;20940:27;;;;:::i;:::-;20939:36;;;;:::i;:::-;20927:8;:48;;20905:134;;;::::0;-1:-1:-1;;;20905:134:0;;5647:2:1;20905:134:0::1;::::0;::::1;5629:21:1::0;5686:2;5666:18;;;5659:30;5725:34;5705:18;;;5698:62;-1:-1:-1;;;5776:18:1;;;5769:34;5820:19;;20905:134:0::1;5445:400:1::0;20905:134:0::1;21084:15;;21072:8;:27:::0;21050:120:::1;;;::::0;-1:-1:-1;;;21050:120:0;;6052:2:1;21050:120:0::1;::::0;::::1;6034:21:1::0;6091:2;6071:18;;;6064:30;6130:34;6110:18;;;6103:62;-1:-1:-1;;;6181:18:1;;;6174:41;6232:19;;21050:120:0::1;5850:407:1::0;21050:120:0::1;21218:15;::::0;21186:48:::1;::::0;21208:8;;21186:48:::1;::::0;;;::::1;21245:15;:26:::0;20829:450::o;11024:293::-;7672:10;11137:4;11226:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11226:34:0;;;;;;;;;;11137:4;;11154:133;;11204:7;;11226:50;;11265:10;11226:38;:50::i;8498:148::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;8605:1:::1;8589:6:::0;;8568:40:::1;::::0;-1:-1:-1;;;;;8589:6:0;;::::1;::::0;8568:40:::1;::::0;8605:1;;8568:40:::1;8636:1;8619:19:::0;;-1:-1:-1;;;;;;8619:19:0::1;::::0;;8498:148::o;19323:396::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19467:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:50;::::1;;:38;::::0;;::::1;:50;;::::0;19445:142:::1;;;;-1:-1:-1::0;;;19445:142:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19598:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:49;;-1:-1:-1;;19598:49:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19663:48;;154:41:1;;;19663:48:0::1;::::0;127:18:1;19663:48:0::1;;;;;;;;19323:396:::0;;:::o;18931:384::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19080:30:0;::::1;;::::0;;;:21:::1;:30;::::0;;;;;:42;::::1;;:30;::::0;;::::1;:42;;::::0;19058:134:::1;;;;-1:-1:-1::0;;;19058:134:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19203:30:0;::::1;;::::0;;;:21:::1;:30;::::0;;;;;;;;:41;;-1:-1:-1;;19203:41:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19260:47;;154:41:1;;;19260:47:0::1;::::0;127:18:1;19260:47:0::1;14:187:1::0;21287:287:0;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;21394:12:::1;;21382:8;:24:::0;21360:114:::1;;;::::0;-1:-1:-1;;;21360:114:0;;6875:2:1;21360:114:0::1;::::0;::::1;6857:21:1::0;6914:2;6894:18;;;6887:30;6953:34;6933:18;;;6926:62;-1:-1:-1;;;7004:18:1;;;6997:38;7052:19;;21360:114:0::1;6673:404:1::0;21360:114:0::1;21519:12;::::0;21490:42:::1;::::0;21509:8;;21490:42:::1;::::0;;;::::1;21543:12;:23:::0;21287:287::o;9488:104::-;9544:13;9577:7;9570:14;;;;;:::i;20366:124::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;14030:23:::1;20421:15;:27:::0;;;20459:11:::1;:23:::0;20366:124::o;11325:393::-;11443:4;11460:228;7672:10;11510:7;11532:145;11589:15;11532:145;;;;;;;;;;;;;;;;;7672:10;11532:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11532:34:0;;;;;;;;;;;;:38;:145::i;9968:200::-;10079:4;10096:42;7672:10;10120:9;10131:6;10096:9;:42::i;18567:356::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18701:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:39;::::1;;:27;::::0;;::::1;:39;;::::0;18679:131:::1;;;;-1:-1:-1::0;;;18679:131:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18821:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:38;;-1:-1:-1;;18821:38:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18875:40;;154:41:1;;;18875:40:0::1;::::0;127:18:1;18875:40:0::1;14:187:1::0;18121:84:0;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;18174:16:::1;:23:::0;;-1:-1:-1;;;;18174:23:0::1;-1:-1:-1::0;;;18174:23:0::1;::::0;;18121:84::o;19727:631::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;19809:15:::1;::::0;-1:-1:-1;;;;;19809:37:0;;::::1;:15:::0;::::1;:37;19805:546;;-1:-1:-1::0;;;;;19889:32:0;::::1;19863:125;;;::::0;-1:-1:-1;;;19863:125:0;;7284:2:1;19863:125:0::1;::::0;::::1;7266:21:1::0;7323:2;7303:18;;;7296:30;7362:33;7342:18;;;7335:61;7413:18;;19863:125:0::1;7082:355:1::0;19863:125:0::1;20051:13;-1:-1:-1::0;;;;;20029:35:0::1;:18;-1:-1:-1::0;;;;;20029:35:0::1;::::0;20003:128:::1;;;::::0;-1:-1:-1;;;20003:128:0;;7284:2:1;20003:128:0::1;::::0;::::1;7266:21:1::0;7323:2;7303:18;;;7296:30;7362:33;7342:18;;;7335:61;7413:18;;20003:128:0::1;7082:355:1::0;20003:128:0::1;20258:15;::::0;20151:137:::1;::::0;-1:-1:-1;;;7644:30:1;;-1:-1:-1;;;;;20258:15:0;;::::1;::::0;20151:137;::::1;::::0;7699:2:1;7690:12;20151:137:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;20303:15;:36:::0;;-1:-1:-1;;;;;;20303:36:0::1;-1:-1:-1::0;;;;;20303:36:0;::::1;;::::0;;19805:546:::1;19727:631:::0;:::o;8654:281::-;8411:6;;-1:-1:-1;;;;;8411:6:0;7672:10;8411:22;8403:67;;;;-1:-1:-1;;;8403:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8757:22:0;::::1;8735:110;;;::::0;-1:-1:-1;;;8735:110:0;;7915:2:1;8735:110:0::1;::::0;::::1;7897:21:1::0;7954:2;7934:18;;;7927:30;7993:34;7973:18;;;7966:62;-1:-1:-1;;;8044:18:1;;;8037:36;8090:19;;8735:110:0::1;7713:402:1::0;8735:110:0::1;8882:6;::::0;;8861:38:::1;::::0;-1:-1:-1;;;;;8861:38:0;;::::1;::::0;8882:6;::::1;::::0;8861:38:::1;::::0;::::1;8910:6;:17:::0;;-1:-1:-1;;;;;;8910:17:0::1;-1:-1:-1::0;;;;;8910:17:0;;;::::1;::::0;;;::::1;::::0;;8654:281::o;2521:181::-;2579:7;;2611:5;2615:1;2611;:5;:::i;:::-;2599:17;;2640:1;2635;:6;;2627:46;;;;-1:-1:-1;;;2627:46:0;;8452:2:1;2627:46:0;;;8434:21:1;8491:2;8471:18;;;8464:30;8530:29;8510:18;;;8503:57;8577:18;;2627:46:0;8250:351:1;2627:46:0;2693:1;2521:181;-1:-1:-1;;;2521:181:0:o;13181:378::-;-1:-1:-1;;;;;13317:19:0;;13309:68;;;;-1:-1:-1;;;13309:68:0;;8808:2:1;13309:68:0;;;8790:21:1;8847:2;8827:18;;;8820:30;8886:34;8866:18;;;8859:62;-1:-1:-1;;;8937:18:1;;;8930:34;8981:19;;13309:68:0;8606:400:1;13309:68:0;-1:-1:-1;;;;;13396:21:0;;13388:68;;;;-1:-1:-1;;;13388:68:0;;9213:2:1;13388:68:0;;;9195:21:1;9252:2;9232:18;;;9225:30;9291:34;9271:18;;;9264:62;-1:-1:-1;;;9342:18:1;;;9335:32;9384:19;;13388:68:0;9011:398:1;13388:68:0;-1:-1:-1;;;;;13467:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13519:32;;1584:25:1;;;13519:32:0;;1557:18:1;13519:32:0;;;;;;;;13181:378;;;:::o;21582:3108::-;-1:-1:-1;;;;;21714:18:0;;21706:68;;;;-1:-1:-1;;;21706:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21793:16:0;;21785:64;;;;-1:-1:-1;;;21785:64:0;;;;;;;:::i;:::-;21866:6;21876:1;21866:11;21862:93;;21894:28;21910:4;21916:2;21920:1;21894:15;:28::i;:::-;21582:3108;;;:::o;21862:93::-;-1:-1:-1;;;;;21980:31:0;;;21967:10;21980:31;;;:25;:31;;;;;;;;;22036:29;;;;;;;;;22097:21;;;:15;:21;;;;;;21980:31;;;;;22036:29;;;;22097:21;22096:22;:59;;;;-1:-1:-1;;;;;;22136:19:0;;;;;;:15;:19;;;;;;;;22135:20;22096:59;22078:1482;;;22190:16;;-1:-1:-1;;;22190:16:0;;;;22182:59;;;;-1:-1:-1;;;22182:59:0;;10426:2:1;22182:59:0;;;10408:21:1;10465:2;10445:18;;;10438:30;10504:32;10484:18;;;10477:60;10554:18;;22182:59:0;10224:354:1;22182:59:0;-1:-1:-1;;;;;22278:31:0;;;;;;:25;:31;;;;;;;;:78;;;;-1:-1:-1;;;;;;22331:25:0;;;;;;:21;:25;;;;;;;;22330:26;22278:78;22256:1293;;;22431:11;;22421:6;:21;;22391:135;;;;-1:-1:-1;;;22391:135:0;;10785:2:1;22391:135:0;;;10767:21:1;10824:2;10804:18;;;10797:30;10863:34;10843:18;;;10836:62;-1:-1:-1;;;10914:18:1;;;10907:38;10962:19;;22391:135:0;10583:404:1;22391:135:0;22601:15;;-1:-1:-1;;;;;9934:18:0;;9907:7;9934:18;;;:9;:18;;;;;;22575:22;;:6;:22;:::i;:::-;:41;;22545:139;;;;-1:-1:-1;;;22545:139:0;;11194:2:1;22545:139:0;;;11176:21:1;11233:2;11213:18;;;11206:30;11272:26;11252:18;;;11245:54;11316:18;;22545:139:0;10992:348:1;22545:139:0;22256:1293;;;-1:-1:-1;;;;;22728:29:0;;;;;;:25;:29;;;;;;;;:78;;;;-1:-1:-1;;;;;;22779:27:0;;;;;;:21;:27;;;;;;;;22778:28;22728:78;22706:843;;;22881:11;;22871:6;:21;;22841:137;;;;-1:-1:-1;;;22841:137:0;;11547:2:1;22841:137:0;;;11529:21:1;11586:2;11566:18;;;11559:30;11625:34;11605:18;;;11598:62;-1:-1:-1;;;11676:18:1;;;11669:40;11726:19;;22841:137:0;11345:406:1;22841:137:0;22980:4;:9;;-1:-1:-1;;;;;;22980:9:0;;-1:-1:-1;;;;;22980:9:0;;;;;;22706:843;;;-1:-1:-1;;;;;23016:25:0;;;;;;:21;:25;;;;;;;;23011:538;;23118:15;;-1:-1:-1;;;;;9934:18:0;;9907:7;9934:18;;;:9;:18;;;;;;23092:22;;:6;:22;:::i;:::-;:41;;23062:138;;;;-1:-1:-1;;;23062:138:0;;11958:2:1;23062:138:0;;;11940:21:1;11997:2;11977:18;;;11970:30;12036:25;12016:18;;;12009:53;12079:18;;23062:138:0;11756:347:1;23011:538:0;23227:9;;;;23226:10;:41;;;;-1:-1:-1;;;;;;23240:27:0;;;;;;:21;:27;;;;;;;;23226:41;23222:327;;;23301:12;;23292:6;:21;23288:246;;;23364:11;;23350:4;;-1:-1:-1;;;;;23350:4:0;;;;;;23338:17;;;;:11;:17;;;;;;;;:23;;;;;;;;;:37;23412:24;23430:6;23412:15;:24;:::i;:::-;23398:11;:38;23288:246;;;23499:15;23485:11;:29;23288:246;23570:36;23582:5;23589:6;23597:4;23603:2;23570:11;:36::i;:::-;23660:12;;23650:4;23617:12;9934:18;;;:9;:18;;;;;;23703:16;;-1:-1:-1;;23632:40:0;;-1:-1:-1;;;23703:16:0;;;;:40;;;;;23736:7;23703:40;:67;;;;-1:-1:-1;23761:9:0;;;;23760:10;23703:67;:97;;;;-1:-1:-1;23787:9:0;;-1:-1:-1;;;23787:9:0;;;;:13;;23703:97;:143;;;;-1:-1:-1;;;;;;23817:29:0;;;;;;:25;:29;;;;;;;;23703:143;:185;;;;-1:-1:-1;;;;;;23864:24:0;;;;;;:18;:24;;;;;;;;23863:25;23703:185;:225;;;;-1:-1:-1;;;;;;23906:22:0;;;;;;:18;:22;;;;;;;;23905:23;23703:225;23685:362;;;23955:9;:16;;-1:-1:-1;;23955:16:0;23967:4;23955:16;;;23986:17;:15;:17::i;:::-;24018:9;:17;;-1:-1:-1;;24018:17:0;;;23685:362;24075:9;;24059:12;;24075:9;;24074:10;:30;;;;-1:-1:-1;24088:16:0;;-1:-1:-1;;;24088:16:0;;;;24074:30;-1:-1:-1;;;;;24121:24:0;;;;;;:18;:24;;;;;;24059:45;;-1:-1:-1;24121:24:0;;;:50;;-1:-1:-1;;;;;;24149:22:0;;;;;;:18;:22;;;;;;;;24121:50;24117:98;;;-1:-1:-1;24198:5:0;24117:98;24229:7;:24;;;;-1:-1:-1;24240:9:0;;-1:-1:-1;;;24240:9:0;;;;:13;;24229:24;24225:414;;;24294:9;;24270:11;;24307:3;;24285:18;;-1:-1:-1;;;24294:9:0;;;;24285:6;:18;:::i;:::-;24284:26;;;;:::i;:::-;24356:8;;24270:40;;-1:-1:-1;24325:18:0;;24368:3;;24347:17;;24356:8;;;;;24347:6;:17;:::i;:::-;24346:25;;;;:::i;:::-;24325:46;-1:-1:-1;24395:12:0;24404:3;24395:6;:12;:::i;:::-;24386:21;;24422:41;24438:4;24452;24459:3;24422:15;:41::i;:::-;24484:14;;24480:148;;24519:38;24539:4;24546:10;24519:11;:38::i;:::-;24591:8;;24581:31;;;24591:8;;;;;;12411:36:1;;12478:2;12463:18;;12456:34;;;24581:31:0;;12384:18:1;24581:31:0;;;;;;;24480:148;24255:384;;24225:414;24649:33;24665:4;24671:2;24675:6;24649:15;:33::i;:::-;21695:2995;;;;21582:3108;;;:::o;2854:226::-;2974:7;3010:12;3002:6;;;;2994:29;;;;-1:-1:-1;;;2994:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3034:9:0;3046:5;3050:1;3046;:5;:::i;:::-;3034:17;2854:226;-1:-1:-1;;;;;2854:226:0:o;11726:606::-;-1:-1:-1;;;;;11866:20:0;;11858:70;;;;-1:-1:-1;;;11858:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11947:23:0;;11939:71;;;;-1:-1:-1;;;11939:71:0;;;;;;;:::i;:::-;12099:108;12135:6;12099:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12099:17:0;;;;;;:9;:17;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;12079:17:0;;;;;;;:9;:17;;;;;;:128;;;;12241:20;;;;;;;:32;;12266:6;12241:24;:32::i;:::-;-1:-1:-1;;;;;12218:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12289:35;;;;;;;;;;12317:6;1584:25:1;;1572:2;1557:18;;1438:177;24698:1462:0;24832:13;:17;;-1:-1:-1;;24914:12:0;;;24939:432;;;;24981:24;;24965:13;:40;;24981:24;;;;-1:-1:-1;;25020:40:0;;;;;;;24981:24;25036;;;;;;25020:40;;;;;;;;-1:-1:-1;;25126:30:0;-1:-1:-1;;;25089:22:0;;;;25075:36;;;;-1:-1:-1;;25126:30:0;;25137:19;;;;;25126:30;;;;;;;;-1:-1:-1;;;;;25188:14:0;;-1:-1:-1;25188:14:0;;;:10;:14;;;;;;:19;:171;;-1:-1:-1;;;;;25345:14:0;;;;;;:10;:14;;;;;;25188:171;;;-1:-1:-1;;;;;9934:18:0;;9907:7;9934:18;;;:9;:18;;;;;;25227:27;:98;;-1:-1:-1;;;;;25311:14:0;;;;;;:10;:14;;;;;;25227:98;;;25275:15;25227:98;-1:-1:-1;;;;;25171:14:0;;;;;;:10;:14;;;;;:188;24939:432;25385:6;25381:234;;;25424:25;;25408:13;:41;;25424:25;;;;;;;;-1:-1:-1;;25464:41:0;;;;;;;25480:25;;;;;;25464:41;;;;;-1:-1:-1;;25572:31:0;25534:23;;;;;25520:37;;-1:-1:-1;;25572:31:0;;-1:-1:-1;;;25583:20:0;;;;;;;25572:31;;;;;;;25381:234;25630:6;25629:7;:17;;;;;25641:5;25640:6;25629:17;25625:245;;;25679:25;;25663:13;:41;;25679:25;;;;;;;;-1:-1:-1;;25719:41:0;;;;;;;25735:25;;;;;;25719:41;;;;;-1:-1:-1;;25827:31:0;25789:23;;;;;25775:37;;-1:-1:-1;;25827:31:0;;-1:-1:-1;;;25838:20:0;;;;;;;25827:31;;;;;;;25625:245;25880:28;25892:5;25899:4;25905:2;25880:11;:28::i;:::-;25977:8;;;;;;;;;25963:11;;;;;;25931:29;;25977:8;25947:13;;;;;25931;:29;:::i;:::-;:43;;;;:::i;:::-;:54;;;;:::i;:::-;25919:9;:66;;;;;;-1:-1:-1;;;25919:66:0;;;-1:-1:-1;;25919:66:0;;;;;;;;26001:151;;;26027:13;;;;;;;;;;12893:36:1;;25919:66:0;26055:13;;;;12960:2:1;12945:18;;12938:45;26083:11:0;;;;;12999:18:1;;;12992:45;26109:8:0;;;;;13068:2:1;13053:18;;13046:45;26132:9:0;;;;;13122:3:1;13107:19;;13100:46;26001:151:0;;;;;;;12880:3:1;26001:151:0;;;24698:1462;;;;:::o;26579:1184::-;26669:4;26625:23;9934:18;;;:9;:18;;;;;;26768:12;;26714:21;;26768:16;;26783:1;26768:16;:::i;:::-;26750:15;:34;26746:101;;;26819:12;;:16;;26834:1;26819:16;:::i;:::-;26801:34;;26746:101;26955:9;;26857:12;;;;26980:1;;26955:9;-1:-1:-1;;;26955:9:0;;;;;26907:31;;26925:13;26907:15;:31;:::i;:::-;26906:58;;;;:::i;:::-;:75;;;;:::i;:::-;26880:101;-1:-1:-1;26992:20:0;27015:35;26880:101;27015:15;:35;:::i;:::-;26992:58;;27063:31;27081:12;27063:17;:31::i;:::-;27107:27;27137:41;27161:17;27137:21;:41;:::i;:::-;27246:8;;27107:71;;-1:-1:-1;27189:19:0;;27246:8;;;;;;;27225:17;;27241:1;;27225:13;:17;:::i;:::-;27224:30;;;;:::i;:::-;27211:9;;:44;;;-1:-1:-1;;;27211:9:0;;;;:44;:::i;:::-;27318:13;;27189:66;;;;;-1:-1:-1;27266:26:0;;27375:1;;27189:66;;27296:35;;27318:13;27296:19;:35;:::i;:::-;27295:64;;;;:::i;:::-;:81;;;;:::i;:::-;27411:15;;27403:87;;27266:110;;-1:-1:-1;;;;;;27411:15:0;;27454:21;;27403:87;;;;27454:21;27411:15;27403:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27389:101:0;;-1:-1:-1;;27507:19:0;;27503:253;;27543:50;27557:15;27574:18;27543:13;:50::i;:::-;27613:131;;;13895:25:1;;;13951:2;13936:18;;13929:34;;;13979:18;;;13972:34;;;27613:131:0;;13883:2:1;13868:18;27613:131:0;;;;;;;27503:253;26614:1149;;;;;;;;26579:1184::o;12722:451::-;-1:-1:-1;;;;;12806:21:0;;12798:67;;;;-1:-1:-1;;;12798:67:0;;14219:2:1;12798:67:0;;;14201:21:1;14258:2;14238:18;;;14231:30;14297:34;14277:18;;;14270:62;-1:-1:-1;;;14348:18:1;;;14341:31;14389:19;;12798:67:0;14017:397:1;12798:67:0;12957:105;12994:6;12957:105;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12957:18:0;;;;;;:9;:18;;;;;;;:105;:22;:105::i;:::-;-1:-1:-1;;;;;12936:18:0;;;;;;:9;:18;;;;;:126;13088:12;;:24;;13105:6;13088:16;:24::i;:::-;13073:12;:39;13128:37;;1584:25:1;;;13154:1:0;;-1:-1:-1;;;;;13128:37:0;;;;;1572:2:1;1557:18;13128:37:0;;;;;;;12722:451;;:::o;26168:403::-;-1:-1:-1;;;;;26264:16:0;;;;;;:54;;-1:-1:-1;;;;;;26297:21:0;;26311:6;26297:21;;26264:54;:96;;;;-1:-1:-1;;;;;;26336:24:0;;;;;;:18;:24;;;;;;;;26335:25;26264:96;:136;;;;-1:-1:-1;;;;;;26378:22:0;;;;;;:18;:22;;;;;;;;26377:23;26264:136;26246:318;;;26432:5;26431:6;:20;;;;-1:-1:-1;26442:9:0;;;;26441:10;26431:20;26427:126;;;26526:11;;-1:-1:-1;;;;;26507:16:0;;;;;;:10;:16;;;;;;:30;;26526:11;26507:30;:::i;:::-;26472:14;:65;26168:403;;;:::o;28148:473::-;28239:16;;;28253:1;28239:16;;;;;;;;28215:21;;28239:16;;;;;;;;;;-1:-1:-1;28239:16:0;28215:40;;28284:4;28266;28271:1;28266:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28266:23:0;;;:7;;;;;;;;;;:23;;;;28310:15;;:22;;;-1:-1:-1;;;28310:22:0;;;;:15;;;;;:20;;:22;;;;;28266:7;;28310:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28300:4;28305:1;28300:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28300:32:0;;;:7;;;;;;;;;:32;28375:15;;28343:62;;28360:4;;28375:15;28393:11;28343:8;:62::i;:::-;28416:15;;:197;;-1:-1:-1;;;28416:197:0;;-1:-1:-1;;;;;28416:15:0;;;;:66;;:197;;28497:11;;28416:15;;28540:4;;28567;;28587:15;;28416:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28204:417;28148:473;:::o;27771:369::-;27885:15;;27853:62;;27870:4;;-1:-1:-1;;;;;27885:15:0;27903:11;27853:8;:62::i;:::-;27926:15;;:206;;-1:-1:-1;;;27926:206:0;;27998:4;27926:206;;;16265:34:1;16315:18;;;16308:34;;;27926:15:0;16358:18:1;;;16351:34;;;16401:18;;;16394:34;28084:6:0;16444:19:1;;;16437:44;28106:15:0;16497:19:1;;;16490:35;-1:-1:-1;;;;;27926:15:0;;;;:31;;27965:9;;16199:19:1;;27926:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27771:369;;:::o;2710:136::-;2768:7;2795:43;2799:1;2802;2795:43;;;;;;;;;;;;;;;;;:3;:43::i;206:548:1:-;318:4;347:2;376;365:9;358:21;408:6;402:13;451:6;446:2;435:9;431:18;424:34;476:1;486:140;500:6;497:1;494:13;486:140;;;595:14;;;591:23;;585:30;561:17;;;580:2;557:26;550:66;515:10;;486:140;;;490:3;675:1;670:2;661:6;650:9;646:22;642:31;635:42;745:2;738;734:7;729:2;721:6;717:15;713:29;702:9;698:45;694:54;686:62;;;;206:548;;;;:::o;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;895:315;963:6;971;1024:2;1012:9;1003:7;999:23;995:32;992:52;;;1040:1;1037;1030:12;992:52;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;:::-;1148:5;1200:2;1185:18;;;;1172:32;;-1:-1:-1;;;895:315:1:o;1620:180::-;1679:6;1732:2;1720:9;1711:7;1707:23;1703:32;1700:52;;;1748:1;1745;1738:12;1700:52;-1:-1:-1;1771:23:1;;1620:180;-1:-1:-1;1620:180:1:o;1805:456::-;1882:6;1890;1898;1951:2;1939:9;1930:7;1926:23;1922:32;1919:52;;;1967:1;1964;1957:12;1919:52;2006:9;1993:23;2025:31;2050:5;2025:31;:::i;:::-;2075:5;-1:-1:-1;2132:2:1;2117:18;;2104:32;2145:33;2104:32;2145:33;:::i;:::-;1805:456;;2197:7;;-1:-1:-1;;;2251:2:1;2236:18;;;;2223:32;;1805:456::o;2663:247::-;2722:6;2775:2;2763:9;2754:7;2750:23;2746:32;2743:52;;;2791:1;2788;2781:12;2743:52;2830:9;2817:23;2849:31;2874:5;2849:31;:::i;2915:416::-;2980:6;2988;3041:2;3029:9;3020:7;3016:23;3012:32;3009:52;;;3057:1;3054;3047:12;3009:52;3096:9;3083:23;3115:31;3140:5;3115:31;:::i;:::-;3165:5;-1:-1:-1;3222:2:1;3207:18;;3194:32;3264:15;;3257:23;3245:36;;3235:64;;3295:1;3292;3285:12;3235:64;3318:7;3308:17;;;2915:416;;;;;:::o;3336:388::-;3404:6;3412;3465:2;3453:9;3444:7;3440:23;3436:32;3433:52;;;3481:1;3478;3471:12;3433:52;3520:9;3507:23;3539:31;3564:5;3539:31;:::i;:::-;3589:5;-1:-1:-1;3646:2:1;3631:18;;3618:32;3659:33;3618:32;3659:33;:::i;3729:380::-;3808:1;3804:12;;;;3851;;;3872:61;;3926:4;3918:6;3914:17;3904:27;;3872:61;3979:2;3971:6;3968:14;3948:18;3945:38;3942:161;;4025:10;4020:3;4016:20;4013:1;4006:31;4060:4;4057:1;4050:15;4088:4;4085:1;4078:15;3942:161;;3729:380;;;:::o;4114:356::-;4316:2;4298:21;;;4335:18;;;4328:30;4394:34;4389:2;4374:18;;4367:62;4461:2;4446:18;;4114:356::o;4475:127::-;4536:10;4531:3;4527:20;4524:1;4517:31;4567:4;4564:1;4557:15;4591:4;4588:1;4581:15;4607:168;4680:9;;;4711;;4728:15;;;4722:22;;4708:37;4698:71;;4749:18;;:::i;4780:127::-;4841:10;4836:3;4832:20;4829:1;4822:31;4872:4;4869:1;4862:15;4896:4;4893:1;4886:15;4912:120;4952:1;4978;4968:35;;4983:18;;:::i;:::-;-1:-1:-1;5017:9:1;;4912:120::o;6262:406::-;6464:2;6446:21;;;6503:2;6483:18;;;6476:30;6542:34;6537:2;6522:18;;6515:62;-1:-1:-1;;;6608:2:1;6593:18;;6586:40;6658:3;6643:19;;6262:406::o;8120:125::-;8185:9;;;8206:10;;;8203:36;;;8219:18;;:::i;9414:401::-;9616:2;9598:21;;;9655:2;9635:18;;;9628:30;9694:34;9689:2;9674:18;;9667:62;-1:-1:-1;;;9760:2:1;9745:18;;9738:35;9805:3;9790:19;;9414:401::o;9820:399::-;10022:2;10004:21;;;10061:2;10041:18;;;10034:30;10100:34;10095:2;10080:18;;10073:62;-1:-1:-1;;;10166:2:1;10151:18;;10144:33;10209:3;10194:19;;9820:399::o;12108:128::-;12175:9;;;12196:11;;;12193:37;;;12210:18;;:::i;12501:148::-;12589:4;12568:12;;;12582;;;12564:31;;12607:13;;12604:39;;;12623:18;;:::i;13157:165::-;13195:1;13229:4;13226:1;13222:12;13253:3;13243:37;;13260:18;;:::i;:::-;13312:3;13305:4;13302:1;13298:12;13294:22;13289:27;;;13157:165;;;;:::o;13327:151::-;13417:4;13410:12;;;13396;;;13392:31;;13435:14;;13432:40;;;13452:18;;:::i;14551:127::-;14612:10;14607:3;14603:20;14600:1;14593:31;14643:4;14640:1;14633:15;14667:4;14664:1;14657:15;14683:251;14753:6;14806:2;14794:9;14785:7;14781:23;14777:32;14774:52;;;14822:1;14819;14812:12;14774:52;14854:9;14848:16;14873:31;14898:5;14873:31;:::i;14939:980::-;15201:4;15249:3;15238:9;15234:19;15280:6;15269:9;15262:25;15306:2;15344:6;15339:2;15328:9;15324:18;15317:34;15387:3;15382:2;15371:9;15367:18;15360:31;15411:6;15446;15440:13;15477:6;15469;15462:22;15515:3;15504:9;15500:19;15493:26;;15554:2;15546:6;15542:15;15528:29;;15575:1;15585:195;15599:6;15596:1;15593:13;15585:195;;;15664:13;;-1:-1:-1;;;;;15660:39:1;15648:52;;15755:15;;;;15720:12;;;;15696:1;15614:9;15585:195;;;-1:-1:-1;;;;;;;15836:32:1;;;;15831:2;15816:18;;15809:60;-1:-1:-1;;;15900:3:1;15885:19;15878:35;15797:3;14939:980;-1:-1:-1;;;14939:980:1:o;16536:306::-;16624:6;16632;16640;16693:2;16681:9;16672:7;16668:23;16664:32;16661:52;;;16709:1;16706;16699:12;16661:52;16738:9;16732:16;16722:26;;16788:2;16777:9;16773:18;16767:25;16757:35;;16832:2;16821:9;16817:18;16811:25;16801:35;;16536:306;;;;;:::o
Swarm Source
ipfs://a7097c94297f23d538c0a3e0e9d3db39deacd31c72dc75ed0c2f6e1f54802aaa
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.