ERC-20
Overview
Max Total Supply
10,000,000,000 PYS
Holders
66
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
158,324,090.447607854150009887 PYSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PYSCH
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-11 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } 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); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(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 += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(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); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(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 {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract PYSCH is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public marketingWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 private launchedAt; uint256 private launchedTime; uint256 public deadBlocks; uint256 public buyTotalFees; uint256 private buyMarketingFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public tokensForMarketing; uint256 _buyMarketingFee = 10; uint256 _sellMarketingFee = 15; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; //Cooldown for bot protection mapping (address => User) private cooldown; bool private _cooldownEnabled = true; event CooldownEnabledUpdated(bool _cooldown); uint256 private buyLimitEnd; uint256 private Cooldowntime= 60 seconds ; struct User { uint256 buy; uint256 sell; bool exists; } event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated( address indexed newWallet, address indexed oldWallet ); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20("PYSCH", "PYS") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 10000000000 * 1e18; maxTransactionAmount = totalSupply * 5 / 100; maxWallet =totalSupply * 5 / 100; swapTokensAtAmount =100000 * 10**decimals(); marketingWallet = address(0xFc776c46745Dc24C39d27Ef552149E33F344138F); excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableTrading(uint256 _deadBlocks) external onlyOwner { deadBlocks = _deadBlocks; tradingActive = true; swapEnabled = true; launchedAt = block.number; launchedTime = block.timestamp; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { swapTokensAtAmount = newAmount* (10**18); return true; } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { maxTransactionAmount = newNum * (10**18); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { maxWallet = newNum * (10**18); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function manualswap(uint256 amount) external { require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function manualsend() external { bool success; (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateBuyFees( uint256 _marketingFee ) external onlyOwner { _buyMarketingFee = _marketingFee; buyTotalFees = _buyMarketingFee; } function updateSellFees( uint256 _marketingFee ) external onlyOwner { _sellMarketingFee = _marketingFee; sellTotalFees = _sellMarketingFee; } function burn(uint256 value) public onlyOwner { _burn(_msgSender(), value); } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } function setCooldownEnabled(bool onoff) external onlyOwner() { _cooldownEnabled = onoff; emit CooldownEnabledUpdated(_cooldownEnabled); } function updateTimer(uint256 sec) external onlyOwner { Cooldowntime = sec; } function updateLimit(uint256 sec) external onlyOwner { buyLimitEnd = sec; } 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; } if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { ////Cooldown for bot if(_cooldownEnabled) { if(!cooldown[msg.sender].exists) { cooldown[msg.sender] = User(0,0,true); } } // buy cooldown if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedMaxTransactionAmount[to]) { require(tradingActive, "Trading not yet enabled."); if(_cooldownEnabled) { if(buyLimitEnd > block.timestamp) { require(amount <= maxTransactionAmount); require(cooldown[to].buy < block.timestamp, "Your buy cooldown has not expired."); cooldown[to].buy = block.timestamp + (Cooldowntime); } } if(_cooldownEnabled) { cooldown[to].sell = block.timestamp + (Cooldowntime); } } /// sell Cooldown if( from != uniswapV2Pair && tradingActive) { if(_cooldownEnabled) { require(cooldown[from].sell < block.timestamp, "Your sell cooldown has not expired."); } } //// Cooldown End if ((launchedAt + deadBlocks) >= block.number) { buyMarketingFee = 200; buyTotalFees = buyMarketingFee; sellMarketingFee = 200; sellTotalFees = sellMarketingFee; } else if(block.number > (launchedAt + deadBlocks) && block.number <= launchedAt + 20) { buyMarketingFee = 100; buyTotalFees = buyMarketingFee; sellMarketingFee = 100; sellTotalFees = sellMarketingFee; } else { buyMarketingFee = _buyMarketingFee; buyTotalFees = buyMarketingFee; sellMarketingFee = _sellMarketingFee; sellTotalFees = sellMarketingFee; } if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(1000); tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(1000); tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarketing; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } // Halve the amount of liquidity tokens uint256 amountToSwapForETH = contractBalance; swapTokensForEth(amountToSwapForETH); tokensForMarketing = 0; (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } }
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":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","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":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","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 IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sec","type":"uint256"}],"name":"updateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sec","type":"uint256"}],"name":"updateTimer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600a805462ffffff191660019081178255601391909155600f6014556019805460ff19169091179055603c601b553480156200003e575f80fd5b50604051806040016040528060058152602001640a0b2a686960db1b8152506040518060400160405280600381526020016250595360e81b81525081600390816200008a9190620006bc565b506004620000998282620006bc565b505050620000b6620000b06200036e60201b60201c565b62000372565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000d8816001620003c3565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000121573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000147919062000784565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000193573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b9919062000784565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000204573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022a919062000784565b6001600160a01b031660a081905262000245906001620003c3565b60a051620002559060016200043b565b6b204fce5e3e25026110000000606462000271826005620007c7565b6200027d9190620007e7565b60075560646200028f826005620007c7565b6200029b9190620007e7565b600955620002ac6012600a62000900565b620002bb90620186a0620007c7565b600855600680546001600160a01b03191673fc776c46745dc24c39d27ef552149e33f344138f17905562000303620002fb6005546001600160a01b031690565b60016200048e565b620003103060016200048e565b6200031f61dead60016200048e565b6200033e620003366005546001600160a01b031690565b6001620003c3565b6200034b306001620003c3565b6200035a61dead6001620003c3565b62000366338262000536565b505062000926565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620004115760405162461bcd60e51b815260206004820181905260248201525f8051602062002fdf83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260176020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004d85760405162461bcd60e51b815260206004820181905260248201525f8051602062002fdf833981519152604482015260640162000408565b6001600160a01b0382165f81815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200058e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000408565b8060025f828254620005a1919062000910565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005cf90849062000910565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200064657607f821691505b6020821081036200066557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000618575f81815260208120601f850160051c81016020861015620006935750805b601f850160051c820191505b81811015620006b4578281556001016200069f565b505050505050565b81516001600160401b03811115620006d857620006d86200061d565b620006f081620006e9845462000631565b846200066b565b602080601f83116001811462000726575f84156200070e5750858301515b5f19600386901b1c1916600185901b178555620006b4565b5f85815260208120601f198616915b82811015620007565788860151825594840194600190910190840162000735565b50858210156200077457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000795575f80fd5b81516001600160a01b0381168114620007ac575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620007e157620007e1620007b3565b92915050565b5f826200080257634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b808511156200084757815f19048211156200082b576200082b620007b3565b808516156200083957918102915b93841c93908002906200080c565b509250929050565b5f826200085f57506001620007e1565b816200086d57505f620007e1565b81600181146200088657600281146200089157620008b1565b6001915050620007e1565b60ff841115620008a557620008a5620007b3565b50506001821b620007e1565b5060208310610133831016604e8410600b8410161715620008d6575081810a620007e1565b620008e2838362000807565b805f1904821115620008f857620008f8620007b3565b029392505050565b5f620007ac60ff8416836200084f565b80820180821115620007e157620007e1620007b3565b60805160a051612666620009795f395f818161047701528181610dbd0152818161144f015261163001525f818161034b0152818161148b01528181611ed501528181611f8c0152611fc801526126665ff3fe6080604052600436106102a8575f3560e01c806382aa7c681161016f578063c0246668116100d8578063e2f4560511610092578063f2fde38b1161006d578063f2fde38b1461085b578063f8b45b051461087a578063fabb0b4f1461088f578063fae0959a146108a4575f80fd5b8063e2f4560514610808578063eba4c3331461081d578063ec54a36a1461083c575f80fd5b8063c02466681461073d578063c18bc1951461075c578063c8c8ebe41461077b578063d257b34f14610790578063d85ba063146107af578063dd62ed3e146107c4575f80fd5b80639a7a23d6116101295780639a7a23d614610675578063a457c2d714610694578063a9059cbb146106b3578063aacebbe3146106d2578063b62496f5146106f1578063bbc0c7421461071f575f80fd5b806382aa7c68146105d2578063881dce60146105f15780638da5cb5b14610610578063921369131461062d578063924de9b71461064257806395d89b4114610661575f80fd5b806349bd5a5e1161021157806370a08231116101cb57806370a0823114610519578063715018a61461054d57806371fc468814610561578063751039fc146105805780637571336a1461059457806375f0a874146105b3575f80fd5b806349bd5a5e146104665780634a62bb65146104995780635932ead1146104b25780636a486a8e146104d15780636ddd1713146104e65780636fc3eaec14610505575f80fd5b8063203e727e11610262578063203e727e146103b857806323b872dd146103d957806327c8f835146103f8578063313ce5671461040d578063395093511461042857806342966c6814610447575f80fd5b806306fdde03146102b3578063095ea7b3146102dd57806310d5de531461030c5780631694505e1461033a57806318160ddd146103855780631f3fed8f146103a3575f80fd5b366102af57005b5f80fd5b3480156102be575f80fd5b506102c76108c3565b6040516102d491906122a2565b60405180910390f35b3480156102e8575f80fd5b506102fc6102f7366004612301565b610953565b60405190151581526020016102d4565b348015610317575f80fd5b506102fc61032636600461232b565b60166020525f908152604090205460ff1681565b348015610345575f80fd5b5061036d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102d4565b348015610390575f80fd5b506002545b6040519081526020016102d4565b3480156103ae575f80fd5b5061039560125481565b3480156103c3575f80fd5b506103d76103d2366004612346565b610969565b005b3480156103e4575f80fd5b506102fc6103f336600461235d565b6109b4565b348015610403575f80fd5b5061036d61dead81565b348015610418575f80fd5b50604051601281526020016102d4565b348015610433575f80fd5b506102fc610442366004612301565b610a5c565b348015610452575f80fd5b506103d7610461366004612346565b610a97565b348015610471575f80fd5b5061036d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a4575f80fd5b50600a546102fc9060ff1681565b3480156104bd575f80fd5b506103d76104cc3660046123aa565b610ace565b3480156104dc575f80fd5b5061039560105481565b3480156104f1575f80fd5b50600a546102fc9062010000900460ff1681565b348015610510575f80fd5b506103d7610b45565b348015610524575f80fd5b5061039561053336600461232b565b6001600160a01b03165f9081526020819052604090205490565b348015610558575f80fd5b506103d7610b9a565b34801561056c575f80fd5b506103d761057b366004612346565b610bcf565b34801561058b575f80fd5b506102fc610c03565b34801561059f575f80fd5b506103d76105ae3660046123c3565b610c3f565b3480156105be575f80fd5b5060065461036d906001600160a01b031681565b3480156105dd575f80fd5b506103d76105ec366004612346565b610c93565b3480156105fc575f80fd5b506103d761060b366004612346565b610cdb565b34801561061b575f80fd5b506005546001600160a01b031661036d565b348015610638575f80fd5b5061039560115481565b34801561064d575f80fd5b506103d761065c3660046123aa565b610d3c565b34801561066c575f80fd5b506102c7610d82565b348015610680575f80fd5b506103d761068f3660046123c3565b610d91565b34801561069f575f80fd5b506102fc6106ae366004612301565b610e70565b3480156106be575f80fd5b506102fc6106cd366004612301565b610f08565b3480156106dd575f80fd5b506103d76106ec36600461232b565b610f14565b3480156106fc575f80fd5b506102fc61070b36600461232b565b60176020525f908152604090205460ff1681565b34801561072a575f80fd5b50600a546102fc90610100900460ff1681565b348015610748575f80fd5b506103d76107573660046123c3565b610f9a565b348015610767575f80fd5b506103d7610776366004612346565b611022565b348015610786575f80fd5b5061039560075481565b34801561079b575f80fd5b506102fc6107aa366004612346565b611064565b3480156107ba575f80fd5b50610395600e5481565b3480156107cf575f80fd5b506103956107de3660046123f6565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610813575f80fd5b5061039560085481565b348015610828575f80fd5b506103d7610837366004612346565b6110ae565b348015610847575f80fd5b506103d7610856366004612346565b6110e2565b348015610866575f80fd5b506103d761087536600461232b565b611111565b348015610885575f80fd5b5061039560095481565b34801561089a575f80fd5b50610395600d5481565b3480156108af575f80fd5b506103d76108be366004612346565b6111a9565b6060600380546108d29061242d565b80601f01602080910402602001604051908101604052809291908181526020018280546108fe9061242d565b80156109495780601f1061092057610100808354040283529160200191610949565b820191905f5260205f20905b81548152906001019060200180831161092c57829003601f168201915b5050505050905090565b5f61095f3384846111d8565b5060015b92915050565b6005546001600160a01b0316331461099c5760405162461bcd60e51b815260040161099390612465565b60405180910390fd5b6109ae81670de0b6b3a76400006124ae565b60075550565b5f6109c08484846112fb565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a445760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610993565b610a5185338584036111d8565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161095f918590610a929086906124c5565b6111d8565b6005546001600160a01b03163314610ac15760405162461bcd60e51b815260040161099390612465565b610acb3382611ce4565b50565b6005546001600160a01b03163314610af85760405162461bcd60e51b815260040161099390612465565b6019805460ff191682151590811790915560405160ff909116151581527f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f287069060200160405180910390a150565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610b8f576040519150601f19603f3d011682016040523d82523d5f602084013e610b94565b606091505b50505050565b6005546001600160a01b03163314610bc45760405162461bcd60e51b815260040161099390612465565b610bcd5f611e2f565b565b6005546001600160a01b03163314610bf95760405162461bcd60e51b815260040161099390612465565b6013819055600e55565b6005545f906001600160a01b03163314610c2f5760405162461bcd60e51b815260040161099390612465565b50600a805460ff19169055600190565b6005546001600160a01b03163314610c695760405162461bcd60e51b815260040161099390612465565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610cbd5760405162461bcd60e51b815260040161099390612465565b600d55600a805462ffff0019166201010017905543600b5542600c55565b305f908152602081905260409020548111158015610cf857505f81115b610d335760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610993565b610acb81611e80565b6005546001600160a01b03163314610d665760405162461bcd60e51b815260040161099390612465565b600a8054911515620100000262ff000019909216919091179055565b6060600480546108d29061242d565b6005546001600160a01b03163314610dbb5760405162461bcd60e51b815260040161099390612465565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610e625760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610993565b610e6c8282612036565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ef15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610993565b610efe33858584036111d8565b5060019392505050565b5f61095f3384846112fb565b6005546001600160a01b03163314610f3e5760405162461bcd60e51b815260040161099390612465565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610fc45760405162461bcd60e51b815260040161099390612465565b6001600160a01b0382165f81815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461104c5760405162461bcd60e51b815260040161099390612465565b61105e81670de0b6b3a76400006124ae565b60095550565b6005545f906001600160a01b031633146110905760405162461bcd60e51b815260040161099390612465565b6110a282670de0b6b3a76400006124ae565b6008555060015b919050565b6005546001600160a01b031633146110d85760405162461bcd60e51b815260040161099390612465565b6014819055601055565b6005546001600160a01b0316331461110c5760405162461bcd60e51b815260040161099390612465565b601b55565b6005546001600160a01b0316331461113b5760405162461bcd60e51b815260040161099390612465565b6001600160a01b0381166111a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610993565b610acb81611e2f565b6005546001600160a01b031633146111d35760405162461bcd60e51b815260040161099390612465565b601a55565b6001600160a01b03831661123a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610993565b6001600160a01b03821661129b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610993565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113215760405162461bcd60e51b8152600401610993906124d8565b6001600160a01b0382166113475760405162461bcd60e51b81526004016109939061251d565b805f0361135e5761135983835f612089565b505050565b600a5460ff1615611a7b576005546001600160a01b0384811691161480159061139557506005546001600160a01b03838116911614155b80156113a957506001600160a01b03821615155b80156113c057506001600160a01b03821661dead14155b80156113d65750600554600160a01b900460ff16155b15611a7b5760195460ff161561144d57335f9081526018602052604090206002015460ff1661144d57604080516060810182525f808252602080830182815260018486018181523385526018909352949092209251835590519282019290925590516002909101805460ff19169115159190911790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480156114c057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b80156114e457506001600160a01b0382165f9081526016602052604090205460ff16155b1561162e57600a54610100900460ff166115405760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610993565b60195460ff16156115fa5742601a5411156115fa57600754811115611563575f80fd5b6001600160a01b0382165f9081526018602052604090205442116115d45760405162461bcd60e51b815260206004820152602260248201527f596f75722062757920636f6f6c646f776e20686173206e6f7420657870697265604482015261321760f11b6064820152608401610993565b601b546115e190426124c5565b6001600160a01b0383165f908152601860205260409020555b60195460ff161561162e57601b5461161290426124c5565b6001600160a01b0383165f908152601860205260409020600101555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141580156116775750600a54610100900460ff165b156116fc5760195460ff16156116fc576001600160a01b0383165f9081526018602052604090206001015442116116fc5760405162461bcd60e51b815260206004820152602360248201527f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260448201526232b21760e91b6064820152608401610993565b43600d54600b5461170d91906124c5565b1061172b5760c8600f819055600e819055601181905560105561178b565b600d54600b5461173b91906124c5565b431180156117565750600b546117529060146124c5565b4311155b15611774576064600f819055600e819055601181905560105561178b565b601354600f819055600e5560145460118190556010555b600a54610100900460ff1661181c576001600160a01b0383165f9081526015602052604090205460ff16806117d757506001600160a01b0382165f9081526015602052604090205460ff165b61181c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610993565b6001600160a01b0383165f9081526017602052604090205460ff16801561185b57506001600160a01b0382165f9081526016602052604090205460ff16155b1561193e576007548111156118d05760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610993565b6009546001600160a01b0383165f908152602081905260409020546118f590836124c5565b11156119395760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610993565b611a7b565b6001600160a01b0382165f9081526017602052604090205460ff16801561197d57506001600160a01b0383165f9081526016602052604090205460ff16155b156119f3576007548111156119395760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610993565b6001600160a01b0382165f9081526016602052604090205460ff16611a7b576009546001600160a01b0383165f90815260208190526040902054611a3790836124c5565b1115611a7b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610993565b305f9081526020819052604090205460085481108015908190611aa65750600a5462010000900460ff165b8015611abc5750600554600160a01b900460ff16155b8015611ae057506001600160a01b0385165f9081526017602052604090205460ff16155b8015611b0457506001600160a01b0385165f9081526015602052604090205460ff16155b8015611b2857506001600160a01b0384165f9081526015602052604090205460ff16155b15611b56576005805460ff60a01b1916600160a01b179055611b486121dc565b6005805460ff60a01b191690555b6005546001600160a01b0386165f9081526015602052604090205460ff600160a01b909204821615911680611ba257506001600160a01b0385165f9081526015602052604090205460ff165b15611baa57505f5b5f8115611cd0576001600160a01b0386165f9081526017602052604090205460ff168015611bd957505f601054115b15611c3757611bff6103e8611bf96010548861228590919063ffffffff16565b90612297565b905060105460115482611c1291906124ae565b611c1c9190612560565b60125f828254611c2c91906124c5565b90915550611cb29050565b6001600160a01b0387165f9081526017602052604090205460ff168015611c5f57505f600e54115b15611cb257611c7f6103e8611bf9600e548861228590919063ffffffff16565b9050600e54600f5482611c9291906124ae565b611c9c9190612560565b60125f828254611cac91906124c5565b90915550505b8015611cc357611cc3873083612089565b611ccd818661257f565b94505b611cdb878787612089565b50505050505050565b6001600160a01b038216611d445760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610993565b6001600160a01b0382165f9081526020819052604090205481811015611db75760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610993565b6001600160a01b0383165f908152602081905260408120838303905560028054849290611de590849061257f565b90915550506040518281525f906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611eb357611eb3612592565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5391906125a6565b81600181518110611f6657611f66612592565b60200260200101906001600160a01b031690816001600160a01b031681525050611fb1307f0000000000000000000000000000000000000000000000000000000000000000846111d8565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906120059085905f908690309042906004016125c1565b5f604051808303815f87803b15801561201c575f80fd5b505af115801561202e573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260176020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166120af5760405162461bcd60e51b8152600401610993906124d8565b6001600160a01b0382166120d55760405162461bcd60e51b81526004016109939061251d565b6001600160a01b0383165f908152602081905260409020548181101561214c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610993565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906121829084906124c5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121ce91815260200190565b60405180910390a350505050565b305f9081526020819052604081205460125490918215806121fb575081155b1561220557505050565b6008546122139060146124ae565b83111561222b576008546122289060146124ae565b92505b8261223581611e80565b5f60128190556006546040516001600160a01b039091169147919081818185875af1925050503d805f8114611cdb576040519150601f19603f3d011682016040523d82523d5f602084013e611cdb565b5f61229082846124ae565b9392505050565b5f6122908284612560565b5f6020808352835180828501525f5b818110156122cd578581018301518582016040015282016122b1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610acb575f80fd5b5f8060408385031215612312575f80fd5b823561231d816122ed565b946020939093013593505050565b5f6020828403121561233b575f80fd5b8135612290816122ed565b5f60208284031215612356575f80fd5b5035919050565b5f805f6060848603121561236f575f80fd5b833561237a816122ed565b9250602084013561238a816122ed565b929592945050506040919091013590565b803580151581146110a9575f80fd5b5f602082840312156123ba575f80fd5b6122908261239b565b5f80604083850312156123d4575f80fd5b82356123df816122ed565b91506123ed6020840161239b565b90509250929050565b5f8060408385031215612407575f80fd5b8235612412816122ed565b91506020830135612422816122ed565b809150509250929050565b600181811c9082168061244157607f821691505b60208210810361245f57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109635761096361249a565b808201808211156109635761096361249a565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f8261257a57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156109635761096361249a565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156125b6575f80fd5b8151612290816122ed565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561260f5784516001600160a01b0316835293830193918301916001016125ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202d4007655cb497b2659fa6366ab3d90d8631337de2e3d1ed2ffe76fa663cd39b64736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x6080604052600436106102a8575f3560e01c806382aa7c681161016f578063c0246668116100d8578063e2f4560511610092578063f2fde38b1161006d578063f2fde38b1461085b578063f8b45b051461087a578063fabb0b4f1461088f578063fae0959a146108a4575f80fd5b8063e2f4560514610808578063eba4c3331461081d578063ec54a36a1461083c575f80fd5b8063c02466681461073d578063c18bc1951461075c578063c8c8ebe41461077b578063d257b34f14610790578063d85ba063146107af578063dd62ed3e146107c4575f80fd5b80639a7a23d6116101295780639a7a23d614610675578063a457c2d714610694578063a9059cbb146106b3578063aacebbe3146106d2578063b62496f5146106f1578063bbc0c7421461071f575f80fd5b806382aa7c68146105d2578063881dce60146105f15780638da5cb5b14610610578063921369131461062d578063924de9b71461064257806395d89b4114610661575f80fd5b806349bd5a5e1161021157806370a08231116101cb57806370a0823114610519578063715018a61461054d57806371fc468814610561578063751039fc146105805780637571336a1461059457806375f0a874146105b3575f80fd5b806349bd5a5e146104665780634a62bb65146104995780635932ead1146104b25780636a486a8e146104d15780636ddd1713146104e65780636fc3eaec14610505575f80fd5b8063203e727e11610262578063203e727e146103b857806323b872dd146103d957806327c8f835146103f8578063313ce5671461040d578063395093511461042857806342966c6814610447575f80fd5b806306fdde03146102b3578063095ea7b3146102dd57806310d5de531461030c5780631694505e1461033a57806318160ddd146103855780631f3fed8f146103a3575f80fd5b366102af57005b5f80fd5b3480156102be575f80fd5b506102c76108c3565b6040516102d491906122a2565b60405180910390f35b3480156102e8575f80fd5b506102fc6102f7366004612301565b610953565b60405190151581526020016102d4565b348015610317575f80fd5b506102fc61032636600461232b565b60166020525f908152604090205460ff1681565b348015610345575f80fd5b5061036d7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102d4565b348015610390575f80fd5b506002545b6040519081526020016102d4565b3480156103ae575f80fd5b5061039560125481565b3480156103c3575f80fd5b506103d76103d2366004612346565b610969565b005b3480156103e4575f80fd5b506102fc6103f336600461235d565b6109b4565b348015610403575f80fd5b5061036d61dead81565b348015610418575f80fd5b50604051601281526020016102d4565b348015610433575f80fd5b506102fc610442366004612301565b610a5c565b348015610452575f80fd5b506103d7610461366004612346565b610a97565b348015610471575f80fd5b5061036d7f000000000000000000000000cec56ab9c922c370f3a9a4d1bd8c0ed55779afb281565b3480156104a4575f80fd5b50600a546102fc9060ff1681565b3480156104bd575f80fd5b506103d76104cc3660046123aa565b610ace565b3480156104dc575f80fd5b5061039560105481565b3480156104f1575f80fd5b50600a546102fc9062010000900460ff1681565b348015610510575f80fd5b506103d7610b45565b348015610524575f80fd5b5061039561053336600461232b565b6001600160a01b03165f9081526020819052604090205490565b348015610558575f80fd5b506103d7610b9a565b34801561056c575f80fd5b506103d761057b366004612346565b610bcf565b34801561058b575f80fd5b506102fc610c03565b34801561059f575f80fd5b506103d76105ae3660046123c3565b610c3f565b3480156105be575f80fd5b5060065461036d906001600160a01b031681565b3480156105dd575f80fd5b506103d76105ec366004612346565b610c93565b3480156105fc575f80fd5b506103d761060b366004612346565b610cdb565b34801561061b575f80fd5b506005546001600160a01b031661036d565b348015610638575f80fd5b5061039560115481565b34801561064d575f80fd5b506103d761065c3660046123aa565b610d3c565b34801561066c575f80fd5b506102c7610d82565b348015610680575f80fd5b506103d761068f3660046123c3565b610d91565b34801561069f575f80fd5b506102fc6106ae366004612301565b610e70565b3480156106be575f80fd5b506102fc6106cd366004612301565b610f08565b3480156106dd575f80fd5b506103d76106ec36600461232b565b610f14565b3480156106fc575f80fd5b506102fc61070b36600461232b565b60176020525f908152604090205460ff1681565b34801561072a575f80fd5b50600a546102fc90610100900460ff1681565b348015610748575f80fd5b506103d76107573660046123c3565b610f9a565b348015610767575f80fd5b506103d7610776366004612346565b611022565b348015610786575f80fd5b5061039560075481565b34801561079b575f80fd5b506102fc6107aa366004612346565b611064565b3480156107ba575f80fd5b50610395600e5481565b3480156107cf575f80fd5b506103956107de3660046123f6565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610813575f80fd5b5061039560085481565b348015610828575f80fd5b506103d7610837366004612346565b6110ae565b348015610847575f80fd5b506103d7610856366004612346565b6110e2565b348015610866575f80fd5b506103d761087536600461232b565b611111565b348015610885575f80fd5b5061039560095481565b34801561089a575f80fd5b50610395600d5481565b3480156108af575f80fd5b506103d76108be366004612346565b6111a9565b6060600380546108d29061242d565b80601f01602080910402602001604051908101604052809291908181526020018280546108fe9061242d565b80156109495780601f1061092057610100808354040283529160200191610949565b820191905f5260205f20905b81548152906001019060200180831161092c57829003601f168201915b5050505050905090565b5f61095f3384846111d8565b5060015b92915050565b6005546001600160a01b0316331461099c5760405162461bcd60e51b815260040161099390612465565b60405180910390fd5b6109ae81670de0b6b3a76400006124ae565b60075550565b5f6109c08484846112fb565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a445760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610993565b610a5185338584036111d8565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161095f918590610a929086906124c5565b6111d8565b6005546001600160a01b03163314610ac15760405162461bcd60e51b815260040161099390612465565b610acb3382611ce4565b50565b6005546001600160a01b03163314610af85760405162461bcd60e51b815260040161099390612465565b6019805460ff191682151590811790915560405160ff909116151581527f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f287069060200160405180910390a150565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610b8f576040519150601f19603f3d011682016040523d82523d5f602084013e610b94565b606091505b50505050565b6005546001600160a01b03163314610bc45760405162461bcd60e51b815260040161099390612465565b610bcd5f611e2f565b565b6005546001600160a01b03163314610bf95760405162461bcd60e51b815260040161099390612465565b6013819055600e55565b6005545f906001600160a01b03163314610c2f5760405162461bcd60e51b815260040161099390612465565b50600a805460ff19169055600190565b6005546001600160a01b03163314610c695760405162461bcd60e51b815260040161099390612465565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610cbd5760405162461bcd60e51b815260040161099390612465565b600d55600a805462ffff0019166201010017905543600b5542600c55565b305f908152602081905260409020548111158015610cf857505f81115b610d335760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610993565b610acb81611e80565b6005546001600160a01b03163314610d665760405162461bcd60e51b815260040161099390612465565b600a8054911515620100000262ff000019909216919091179055565b6060600480546108d29061242d565b6005546001600160a01b03163314610dbb5760405162461bcd60e51b815260040161099390612465565b7f000000000000000000000000cec56ab9c922c370f3a9a4d1bd8c0ed55779afb26001600160a01b0316826001600160a01b031603610e625760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610993565b610e6c8282612036565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610ef15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610993565b610efe33858584036111d8565b5060019392505050565b5f61095f3384846112fb565b6005546001600160a01b03163314610f3e5760405162461bcd60e51b815260040161099390612465565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610fc45760405162461bcd60e51b815260040161099390612465565b6001600160a01b0382165f81815260156020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461104c5760405162461bcd60e51b815260040161099390612465565b61105e81670de0b6b3a76400006124ae565b60095550565b6005545f906001600160a01b031633146110905760405162461bcd60e51b815260040161099390612465565b6110a282670de0b6b3a76400006124ae565b6008555060015b919050565b6005546001600160a01b031633146110d85760405162461bcd60e51b815260040161099390612465565b6014819055601055565b6005546001600160a01b0316331461110c5760405162461bcd60e51b815260040161099390612465565b601b55565b6005546001600160a01b0316331461113b5760405162461bcd60e51b815260040161099390612465565b6001600160a01b0381166111a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610993565b610acb81611e2f565b6005546001600160a01b031633146111d35760405162461bcd60e51b815260040161099390612465565b601a55565b6001600160a01b03831661123a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610993565b6001600160a01b03821661129b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610993565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113215760405162461bcd60e51b8152600401610993906124d8565b6001600160a01b0382166113475760405162461bcd60e51b81526004016109939061251d565b805f0361135e5761135983835f612089565b505050565b600a5460ff1615611a7b576005546001600160a01b0384811691161480159061139557506005546001600160a01b03838116911614155b80156113a957506001600160a01b03821615155b80156113c057506001600160a01b03821661dead14155b80156113d65750600554600160a01b900460ff16155b15611a7b5760195460ff161561144d57335f9081526018602052604090206002015460ff1661144d57604080516060810182525f808252602080830182815260018486018181523385526018909352949092209251835590519282019290925590516002909101805460ff19169115159190911790555b7f000000000000000000000000cec56ab9c922c370f3a9a4d1bd8c0ed55779afb26001600160a01b0316836001600160a01b03161480156114c057507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b80156114e457506001600160a01b0382165f9081526016602052604090205460ff16155b1561162e57600a54610100900460ff166115405760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610993565b60195460ff16156115fa5742601a5411156115fa57600754811115611563575f80fd5b6001600160a01b0382165f9081526018602052604090205442116115d45760405162461bcd60e51b815260206004820152602260248201527f596f75722062757920636f6f6c646f776e20686173206e6f7420657870697265604482015261321760f11b6064820152608401610993565b601b546115e190426124c5565b6001600160a01b0383165f908152601860205260409020555b60195460ff161561162e57601b5461161290426124c5565b6001600160a01b0383165f908152601860205260409020600101555b7f000000000000000000000000cec56ab9c922c370f3a9a4d1bd8c0ed55779afb26001600160a01b0316836001600160a01b0316141580156116775750600a54610100900460ff165b156116fc5760195460ff16156116fc576001600160a01b0383165f9081526018602052604090206001015442116116fc5760405162461bcd60e51b815260206004820152602360248201527f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260448201526232b21760e91b6064820152608401610993565b43600d54600b5461170d91906124c5565b1061172b5760c8600f819055600e819055601181905560105561178b565b600d54600b5461173b91906124c5565b431180156117565750600b546117529060146124c5565b4311155b15611774576064600f819055600e819055601181905560105561178b565b601354600f819055600e5560145460118190556010555b600a54610100900460ff1661181c576001600160a01b0383165f9081526015602052604090205460ff16806117d757506001600160a01b0382165f9081526015602052604090205460ff165b61181c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610993565b6001600160a01b0383165f9081526017602052604090205460ff16801561185b57506001600160a01b0382165f9081526016602052604090205460ff16155b1561193e576007548111156118d05760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610993565b6009546001600160a01b0383165f908152602081905260409020546118f590836124c5565b11156119395760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610993565b611a7b565b6001600160a01b0382165f9081526017602052604090205460ff16801561197d57506001600160a01b0383165f9081526016602052604090205460ff16155b156119f3576007548111156119395760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610993565b6001600160a01b0382165f9081526016602052604090205460ff16611a7b576009546001600160a01b0383165f90815260208190526040902054611a3790836124c5565b1115611a7b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610993565b305f9081526020819052604090205460085481108015908190611aa65750600a5462010000900460ff165b8015611abc5750600554600160a01b900460ff16155b8015611ae057506001600160a01b0385165f9081526017602052604090205460ff16155b8015611b0457506001600160a01b0385165f9081526015602052604090205460ff16155b8015611b2857506001600160a01b0384165f9081526015602052604090205460ff16155b15611b56576005805460ff60a01b1916600160a01b179055611b486121dc565b6005805460ff60a01b191690555b6005546001600160a01b0386165f9081526015602052604090205460ff600160a01b909204821615911680611ba257506001600160a01b0385165f9081526015602052604090205460ff165b15611baa57505f5b5f8115611cd0576001600160a01b0386165f9081526017602052604090205460ff168015611bd957505f601054115b15611c3757611bff6103e8611bf96010548861228590919063ffffffff16565b90612297565b905060105460115482611c1291906124ae565b611c1c9190612560565b60125f828254611c2c91906124c5565b90915550611cb29050565b6001600160a01b0387165f9081526017602052604090205460ff168015611c5f57505f600e54115b15611cb257611c7f6103e8611bf9600e548861228590919063ffffffff16565b9050600e54600f5482611c9291906124ae565b611c9c9190612560565b60125f828254611cac91906124c5565b90915550505b8015611cc357611cc3873083612089565b611ccd818661257f565b94505b611cdb878787612089565b50505050505050565b6001600160a01b038216611d445760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610993565b6001600160a01b0382165f9081526020819052604090205481811015611db75760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610993565b6001600160a01b0383165f908152602081905260408120838303905560028054849290611de590849061257f565b90915550506040518281525f906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611eb357611eb3612592565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5391906125a6565b81600181518110611f6657611f66612592565b60200260200101906001600160a01b031690816001600160a01b031681525050611fb1307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846111d8565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906120059085905f908690309042906004016125c1565b5f604051808303815f87803b15801561201c575f80fd5b505af115801561202e573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260176020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166120af5760405162461bcd60e51b8152600401610993906124d8565b6001600160a01b0382166120d55760405162461bcd60e51b81526004016109939061251d565b6001600160a01b0383165f908152602081905260409020548181101561214c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610993565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906121829084906124c5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121ce91815260200190565b60405180910390a350505050565b305f9081526020819052604081205460125490918215806121fb575081155b1561220557505050565b6008546122139060146124ae565b83111561222b576008546122289060146124ae565b92505b8261223581611e80565b5f60128190556006546040516001600160a01b039091169147919081818185875af1925050503d805f8114611cdb576040519150601f19603f3d011682016040523d82523d5f602084013e611cdb565b5f61229082846124ae565b9392505050565b5f6122908284612560565b5f6020808352835180828501525f5b818110156122cd578581018301518582016040015282016122b1565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610acb575f80fd5b5f8060408385031215612312575f80fd5b823561231d816122ed565b946020939093013593505050565b5f6020828403121561233b575f80fd5b8135612290816122ed565b5f60208284031215612356575f80fd5b5035919050565b5f805f6060848603121561236f575f80fd5b833561237a816122ed565b9250602084013561238a816122ed565b929592945050506040919091013590565b803580151581146110a9575f80fd5b5f602082840312156123ba575f80fd5b6122908261239b565b5f80604083850312156123d4575f80fd5b82356123df816122ed565b91506123ed6020840161239b565b90509250929050565b5f8060408385031215612407575f80fd5b8235612412816122ed565b91506020830135612422816122ed565b809150509250929050565b600181811c9082168061244157607f821691505b60208210810361245f57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109635761096361249a565b808201808211156109635761096361249a565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f8261257a57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156109635761096361249a565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156125b6575f80fd5b8151612290816122ed565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561260f5784516001600160a01b0316835293830193918301916001016125ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202d4007655cb497b2659fa6366ab3d90d8631337de2e3d1ed2ffe76fa663cd39b64736f6c63430008150033
Deployed Bytecode Sourcemap
14970:13869:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3581:169;;;;;;;;;;-1:-1:-1;3581:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3581:169:0;1023:187:1;15954:63:0;;;;;;;;;;-1:-1:-1;15954:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15045:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;15045:51:0;1467:230:1;2988:108:0;;;;;;;;;;-1:-1:-1;3076:12:0;;2988:108;;;1848:25:1;;;1836:2;1821:18;2988:108:0;1702:177:1;15765:33:0;;;;;;;;;;;;;;;;18836:128;;;;;;;;;;-1:-1:-1;18836:128:0;;;;;:::i;:::-;;:::i;:::-;;3758:492;;;;;;;;;;-1:-1:-1;3758:492:0;;;;;:::i;:::-;;:::i;15148:53::-;;;;;;;;;;;;15194:6;15148:53;;2887:93;;;;;;;;;;-1:-1:-1;2887:93:0;;2970:2;2880:36:1;;2868:2;2853:18;2887:93:0;2738:184:1;4258:215:0;;;;;;;;;;-1:-1:-1;4258:215:0;;;;;:::i;:::-;;:::i;20918:91::-;;;;;;;;;;-1:-1:-1;20918:91:0;;;;;:::i;:::-;;:::i;15103:38::-;;;;;;;;;;;;;;;15394:33;;;;;;;;;;-1:-1:-1;15394:33:0;;;;;;;;21262:160;;;;;;;;;;-1:-1:-1;21262:160:0;;;;;:::i;:::-;;:::i;15690:28::-;;;;;;;;;;;;;;;;15474:31;;;;;;;;;;-1:-1:-1;15474:31:0;;;;;;;;;;;19842:174;;;;;;;;;;;;;:::i;3104:127::-;;;;;;;;;;-1:-1:-1;3104:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3205:18:0;3178:7;3205:18;;;;;;;;;;;;3104:127;785:103;;;;;;;;;;;;;:::i;20536:184::-;;;;;;;;;;-1:-1:-1;20536:184:0;;;;;:::i;:::-;;:::i;18495:121::-;;;;;;;;;;;;;:::i;19101:167::-;;;;;;;;;;-1:-1:-1;19101:167:0;;;;;:::i;:::-;;:::i;15240:30::-;;;;;;;;;;-1:-1:-1;15240:30:0;;;;-1:-1:-1;;;;;15240:30:0;;;18244:243;;;;;;;;;;-1:-1:-1;18244:243:0;;;;;:::i;:::-;;:::i;19662:172::-;;;;;;;;;;-1:-1:-1;19662:172:0;;;;;:::i;:::-;;:::i;560:87::-;;;;;;;;;;-1:-1:-1;633:6:0;;-1:-1:-1;;;;;633:6:0;560:87;;15725:31;;;;;;;;;;;;;;;;19364:100;;;;;;;;;;-1:-1:-1;19364:100:0;;;;;:::i;:::-;;:::i;2775:104::-;;;;;;;;;;;;;:::i;20028:304::-;;;;;;;;;;-1:-1:-1;20028:304:0;;;;;:::i;:::-;;:::i;4481:413::-;;;;;;;;;;-1:-1:-1;4481:413:0;;;;;:::i;:::-;;:::i;3239:175::-;;;;;;;;;;-1:-1:-1;3239:175:0;;;;;:::i;:::-;;:::i;21017:231::-;;;;;;;;;;-1:-1:-1;21017:231:0;;;;;:::i;:::-;;:::i;16026:57::-;;;;;;;;;;-1:-1:-1;16026:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15434:33;;;;;;;;;;-1:-1:-1;15434:33:0;;;;;;;;;;;19472:182;;;;;;;;;;-1:-1:-1;19472:182:0;;;;;:::i;:::-;;:::i;18972:119::-;;;;;;;;;;-1:-1:-1;18972:119:0;;;;;:::i;:::-;;:::i;15279:35::-;;;;;;;;;;;;;;;;18624:204;;;;;;;;;;-1:-1:-1;18624:204:0;;;;;:::i;:::-;;:::i;15616:27::-;;;;;;;;;;;;;;;;3422:151;;;;;;;;;;-1:-1:-1;3422:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3538:18:0;;;3511:7;3538:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3422:151;15321:33;;;;;;;;;;;;;;;;20728:181;;;;;;;;;;-1:-1:-1;20728:181:0;;;;;:::i;:::-;;:::i;21434:105::-;;;;;;;;;;-1:-1:-1;21434:105:0;;;;;:::i;:::-;;:::i;898:201::-;;;;;;;;;;-1:-1:-1;898:201:0;;;;;:::i;:::-;;:::i;15361:24::-;;;;;;;;;;;;;;;;15582:25;;;;;;;;;;;;;;;;21551:104;;;;;;;;;;-1:-1:-1;21551:104:0;;;;;:::i;:::-;;:::i;2667:100::-;2721:13;2754:5;2747:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:100;:::o;3581:169::-;3664:4;3681:39;180:10;3704:7;3713:6;3681:8;:39::i;:::-;-1:-1:-1;3738:4:0;3581:169;;;;;:::o;18836:128::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;;;;;;;;;18939:17:::1;:6:::0;18949::::1;18939:17;:::i;:::-;18916:20;:40:::0;-1:-1:-1;18836:128:0:o;3758:492::-;3898:4;3915:36;3925:6;3933:9;3944:6;3915:9;:36::i;:::-;-1:-1:-1;;;;;3991:19:0;;3964:24;3991:19;;;:11;:19;;;;;;;;180:10;3991:33;;;;;;;;4043:26;;;;4035:79;;;;-1:-1:-1;;;4035:79:0;;5243:2:1;4035:79:0;;;5225:21:1;5282:2;5262:18;;;5255:30;5321:34;5301:18;;;5294:62;-1:-1:-1;;;5372:18:1;;;5365:38;5420:19;;4035:79:0;5041:404:1;4035:79:0;4150:57;4159:6;180:10;4200:6;4181:16;:25;4150:8;:57::i;:::-;-1:-1:-1;4238:4:0;;3758:492;-1:-1:-1;;;;3758:492:0:o;4258:215::-;180:10;4346:4;4395:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4395:34:0;;;;;;;;;;4346:4;;4363:80;;4386:7;;4395:47;;4432:10;;4395:47;:::i;:::-;4363:8;:80::i;20918:91::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;20975:26:::1;180:10:::0;20995:5:::1;20975;:26::i;:::-;20918:91:::0;:::o;21262:160::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;21334:16:::1;:24:::0;;-1:-1:-1;;21334:24:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21374:40:::1;::::0;21334:24:::1;21397:16:::0;;;1188:14:1;1181:22;1163:41;;21374:40:0::1;::::0;1151:2:1;1136:18;21374:40:0::1;;;;;;;21262:160:::0;:::o;19842:174::-;19929:15;;19921:87;;19884:12;;-1:-1:-1;;;;;19929:15:0;;19972:21;;19884:12;19921:87;19884:12;19921:87;19972:21;19929:15;19921:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;19842:174:0:o;785:103::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;850:30:::1;877:1;850:18;:30::i;:::-;785:103::o:0;20536:184::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;20628:16:::1;:32:::0;;;20671:12:::1;:31:::0;20536:184::o;18495:121::-;633:6;;18547:4;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;-1:-1:-1;18564:14:0::1;:22:::0;;-1:-1:-1;;18564:22:0::1;::::0;;;18495:121;:::o;19101:167::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19214:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;19214:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19101:167::o;18244:243::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;18318:10:::1;:24:::0;18353:13:::1;:20:::0;;-1:-1:-1;;18384:18:0;;;;;18426:12:::1;18413:10;:25:::0;18464:15:::1;18449:12;:30:::0;18244:243::o;19662:172::-;19754:4;3178:7;3205:18;;;;;;;;;;;19726:6;:34;;:48;;;;;19773:1;19764:6;:10;19726:48;19718:73;;;;-1:-1:-1;;;19718:73:0;;5992:2:1;19718:73:0;;;5974:21:1;6031:2;6011:18;;;6004:30;-1:-1:-1;;;6050:18:1;;;6043:42;6102:18;;19718:73:0;5790:336:1;19718:73:0;19802:24;19819:6;19802:16;:24::i;19364:100::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;19435:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19435:21:0;;::::1;::::0;;;::::1;::::0;;19364:100::o;2775:104::-;2831:13;2864:7;2857:14;;;;;:::i;20028:304::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;20172:13:::1;-1:-1:-1::0;;;;;20164:21:0::1;:4;-1:-1:-1::0;;;;;20164:21:0::1;::::0;20142:128:::1;;;::::0;-1:-1:-1;;;20142:128:0;;6333:2:1;20142:128:0::1;::::0;::::1;6315:21:1::0;6372:2;6352:18;;;6345:30;6411:34;6391:18;;;6384:62;6482:27;6462:18;;;6455:55;6527:19;;20142:128:0::1;6131:421:1::0;20142:128:0::1;20283:41;20312:4;20318:5;20283:28;:41::i;:::-;20028:304:::0;;:::o;4481:413::-;180:10;4574:4;4618:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4618:34:0;;;;;;;;;;4671:35;;;;4663:85;;;;-1:-1:-1;;;4663:85:0;;6759:2:1;4663:85:0;;;6741:21:1;6798:2;6778:18;;;6771:30;6837:34;6817:18;;;6810:62;-1:-1:-1;;;6888:18:1;;;6881:35;6933:19;;4663:85:0;6557:401:1;4663:85:0;4784:67;180:10;4807:7;4835:15;4816:16;:34;4784:8;:67::i;:::-;-1:-1:-1;4882:4:0;;4481:413;-1:-1:-1;;;4481:413:0:o;3239:175::-;3325:4;3342:42;180:10;3366:9;3377:6;3342:9;:42::i;21017:231::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;21177:15:::1;::::0;21134:59:::1;::::0;-1:-1:-1;;;;;21177:15:0;;::::1;::::0;21134:59;::::1;::::0;::::1;::::0;21177:15:::1;::::0;21134:59:::1;21204:15;:36:::0;;-1:-1:-1;;;;;;21204:36:0::1;-1:-1:-1::0;;;;;21204:36:0;;;::::1;::::0;;;::::1;::::0;;21017:231::o;19472:182::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19557:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;19557:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19612:34;;1163:41:1;;;19612:34:0::1;::::0;1136:18:1;19612:34:0::1;;;;;;;19472:182:::0;;:::o;18972:119::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;19066:17:::1;:6:::0;19076::::1;19066:17;:::i;:::-;19054:9;:29:::0;-1:-1:-1;18972:119:0:o;18624:204::-;633:6;;18732:4;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;18779:19:::1;:9:::0;18791:6:::1;18779:19;:::i;:::-;18758:18;:40:::0;-1:-1:-1;18816:4:0::1;768:1;18624:204:::0;;;:::o;20728:181::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;20821:17:::1;:33:::0;;;20865:13:::1;:33:::0;20728:181::o;21434:105::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;21505:12:::1;:18:::0;21434:105::o;898:201::-;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;987:22:0;::::1;979:73;;;::::0;-1:-1:-1;;;979:73:0;;7165:2:1;979:73:0::1;::::0;::::1;7147:21:1::0;7204:2;7184:18;;;7177:30;7243:34;7223:18;;;7216:62;-1:-1:-1;;;7294:18:1;;;7287:36;7340:19;;979:73:0::1;6963:402:1::0;979:73:0::1;1063:28;1082:8;1063:18;:28::i;21551:104::-:0;633:6;;-1:-1:-1;;;;;633:6:0;180:10;697:23;689:68;;;;-1:-1:-1;;;689:68:0;;;;;;;:::i;:::-;21622:11:::1;:17:::0;21551:104::o;6649:380::-;-1:-1:-1;;;;;6785:19:0;;6777:68;;;;-1:-1:-1;;;6777:68:0;;7572:2:1;6777:68:0;;;7554:21:1;7611:2;7591:18;;;7584:30;7650:34;7630:18;;;7623:62;-1:-1:-1;;;7701:18:1;;;7694:34;7745:19;;6777:68:0;7370:400:1;6777:68:0;-1:-1:-1;;;;;6864:21:0;;6856:68;;;;-1:-1:-1;;;6856:68:0;;7977:2:1;6856:68:0;;;7959:21:1;8016:2;7996:18;;;7989:30;8055:34;8035:18;;;8028:62;-1:-1:-1;;;8106:18:1;;;8099:32;8148:19;;6856:68:0;7775:398:1;6856:68:0;-1:-1:-1;;;;;6937:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6989:32;;1848:25:1;;;6989:32:0;;1821:18:1;6989:32:0;;;;;;;6649:380;;;:::o;21661:5844::-;-1:-1:-1;;;;;21793:18:0;;21785:68;;;;-1:-1:-1;;;21785:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21872:16:0;;21864:64;;;;-1:-1:-1;;;21864:64:0;;;;;;;:::i;:::-;21945:6;21955:1;21945:11;21941:93;;21973:28;21989:4;21995:2;21999:1;21973:15;:28::i;:::-;21661:5844;;;:::o;21941:93::-;22050:14;;;;22046:3908;;;633:6;;-1:-1:-1;;;;;22103:15:0;;;633:6;;22103:15;;;;:49;;-1:-1:-1;633:6:0;;-1:-1:-1;;;;;22139:13:0;;;633:6;;22139:13;;22103:49;:86;;;;-1:-1:-1;;;;;;22173:16:0;;;;22103:86;:128;;;;-1:-1:-1;;;;;;22210:21:0;;22224:6;22210:21;;22103:128;:158;;;;-1:-1:-1;22253:8:0;;-1:-1:-1;;;22253:8:0;;;;22252:9;22103:158;22081:3862;;;22325:16;;;;22322:168;;;22375:10;22366:20;;;;:8;:20;;;;;:27;;;;;22362:113;;22441:14;;;;;;;;-1:-1:-1;22441:14:0;;;;;;;;;;22450:4;22441:14;;;;;;22427:10;22418:20;;:8;:20;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22418:37:0;;;;;;;;;;22362:113;22549:13;-1:-1:-1;;;;;22541:21:0;:4;-1:-1:-1;;;;;22541:21:0;;:55;;;;;22580:15;-1:-1:-1;;;;;22566:30:0;:2;-1:-1:-1;;;;;22566:30:0;;;22541:55;:95;;;;-1:-1:-1;;;;;;22601:35:0;;;;;;:31;:35;;;;;;;;22600:36;22541:95;22538:763;;;22665:13;;;;;;;22657:50;;;;-1:-1:-1;;;22657:50:0;;9190:2:1;22657:50:0;;;9172:21:1;9229:2;9209:18;;;9202:30;9268:26;9248:18;;;9241:54;9312:18;;22657:50:0;8988:348:1;22657:50:0;22782:16;;;;22779:373;;;22840:15;22826:11;;:29;22823:310;;;22902:20;;22892:6;:30;;22884:39;;;;;;-1:-1:-1;;;;;22958:12:0;;;;;;:8;:12;;;;;:16;22977:15;-1:-1:-1;22950:81:0;;;;-1:-1:-1;;;22950:81:0;;9543:2:1;22950:81:0;;;9525:21:1;9582:2;9562:18;;;9555:30;9621:34;9601:18;;;9594:62;-1:-1:-1;;;9672:18:1;;;9665:32;9714:19;;22950:81:0;9341:398:1;22950:81:0;23096:12;;23077:32;;:15;:32;:::i;:::-;-1:-1:-1;;;;;23058:12:0;;;;;;:8;:12;;;;;:51;22823:310;23173:16;;;;23170:116;;;23253:12;;23234:32;;:15;:32;:::i;:::-;-1:-1:-1;;;;;23214:12:0;;;;;;:8;:12;;;;;:17;;:52;23170:116;23342:13;-1:-1:-1;;;;;23334:21:0;:4;-1:-1:-1;;;;;23334:21:0;;;:39;;;;-1:-1:-1;23360:13:0;;;;;;;23334:39;23330:221;;;23399:16;;;;23396:149;;;-1:-1:-1;;;;;23448:14:0;;;;;;:8;:14;;;;;:19;;;23470:15;-1:-1:-1;23440:85:0;;;;-1:-1:-1;;;23440:85:0;;9946:2:1;23440:85:0;;;9928:21:1;9985:2;9965:18;;;9958:30;10024:34;10004:18;;;9997:62;-1:-1:-1;;;10075:18:1;;;10068:33;10118:19;;23440:85:0;9744:399:1;23440:85:0;23651:12;23636:10;;23623;;:23;;;;:::i;:::-;23622:41;23601:889;;23717:3;23699:15;:21;;;23739:12;:30;;;23790:16;:22;;;23831:13;:32;23601:889;;;23943:10;;23930;;:23;;;;:::i;:::-;23914:12;:40;:75;;;;-1:-1:-1;23974:10:0;;:15;;23987:2;23974:15;:::i;:::-;23958:12;:31;;23914:75;23911:579;;;24043:3;24025:15;:21;;;24065:12;:30;;;24116:16;:22;;;24157:13;:32;23911:579;;;24299:16;;24281:15;:34;;;24334:12;:30;24404:17;;24385:16;:36;;;24440:13;:32;23911:579;24515:13;;;;;;;24510:223;;-1:-1:-1;;;;;24587:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;24616:23:0;;;;;;:19;:23;;;;;;;;24587:52;24553:160;;;;-1:-1:-1;;;24553:160:0;;10350:2:1;24553:160:0;;;10332:21:1;10389:2;10369:18;;;10362:30;-1:-1:-1;;;10408:18:1;;;10401:52;10470:18;;24553:160:0;10148:346:1;24553:160:0;-1:-1:-1;;;;;24807:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;24864:35:0;;;;;;:31;:35;;;;;;;;24863:36;24807:92;24781:1147;;;24986:20;;24976:6;:30;;24942:169;;;;-1:-1:-1;;;24942:169:0;;10701:2:1;24942:169:0;;;10683:21:1;10740:2;10720:18;;;10713:30;10779:34;10759:18;;;10752:62;-1:-1:-1;;;10830:18:1;;;10823:51;10891:19;;24942:169:0;10499:417:1;24942:169:0;25194:9;;-1:-1:-1;;;;;3205:18:0;;3178:7;3205:18;;;;;;;;;;;25168:22;;:6;:22;:::i;:::-;:35;;25134:140;;;;-1:-1:-1;;;25134:140:0;;11123:2:1;25134:140:0;;;11105:21:1;11162:2;11142:18;;;11135:30;-1:-1:-1;;;11181:18:1;;;11174:49;11240:18;;25134:140:0;10921:343:1;25134:140:0;24781:1147;;;-1:-1:-1;;;;;25372:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;25427:37:0;;;;;;:31;:37;;;;;;;;25426:38;25372:92;25346:582;;;25551:20;;25541:6;:30;;25507:170;;;;-1:-1:-1;;;25507:170:0;;11471:2:1;25507:170:0;;;11453:21:1;11510:2;11490:18;;;11483:30;11549:34;11529:18;;;11522:62;-1:-1:-1;;;11600:18:1;;;11593:52;11662:19;;25507:170:0;11269:418:1;25346:582:0;-1:-1:-1;;;;;25708:35:0;;;;;;:31;:35;;;;;;;;25703:225;;25828:9;;-1:-1:-1;;;;;3205:18:0;;3178:7;3205:18;;;;;;;;;;;25802:22;;:6;:22;:::i;:::-;:35;;25768:140;;;;-1:-1:-1;;;25768:140:0;;11123:2:1;25768:140:0;;;11105:21:1;11162:2;11142:18;;;11135:30;-1:-1:-1;;;11181:18:1;;;11174:49;11240:18;;25768:140:0;10921:343:1;25768:140:0;26019:4;25970:28;3205:18;;;;;;;;;;;26077;;26053:42;;;;;;;26126:35;;-1:-1:-1;26150:11:0;;;;;;;26126:35;:61;;;;-1:-1:-1;26179:8:0;;-1:-1:-1;;;26179:8:0;;;;26178:9;26126:61;:110;;;;-1:-1:-1;;;;;;26205:31:0;;;;;;:25;:31;;;;;;;;26204:32;26126:110;:153;;;;-1:-1:-1;;;;;;26254:25:0;;;;;;:19;:25;;;;;;;;26253:26;26126:153;:194;;;;-1:-1:-1;;;;;;26297:23:0;;;;;;:19;:23;;;;;;;;26296:24;26126:194;26108:326;;;26347:8;:15;;-1:-1:-1;;;;26347:15:0;-1:-1:-1;;;26347:15:0;;;26379:10;:8;:10::i;:::-;26406:8;:16;;-1:-1:-1;;;;26406:16:0;;;26108:326;26462:8;;-1:-1:-1;;;;;26572:25:0;;26446:12;26572:25;;;:19;:25;;;;;;26462:8;-1:-1:-1;;;26462:8:0;;;;;26461:9;;26572:25;;:52;;-1:-1:-1;;;;;;26601:23:0;;;;;;:19;:23;;;;;;;;26572:52;26568:100;;;-1:-1:-1;26651:5:0;26568:100;26680:12;26785:7;26781:671;;;-1:-1:-1;;;;;26837:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;26886:1;26870:13;;:17;26837:50;26833:470;;;26915:35;26945:4;26915:25;26926:13;;26915:6;:10;;:25;;;;:::i;:::-;:29;;:35::i;:::-;26908:42;;27019:13;;26999:16;;26992:4;:23;;;;:::i;:::-;26991:41;;;;:::i;:::-;26969:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;26833:470:0;;-1:-1:-1;26833:470:0;;-1:-1:-1;;;;;27094:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;27144:1;27129:12;;:16;27094:51;27090:213;;;27173:34;27202:4;27173:24;27184:12;;27173:6;:10;;:24;;;;:::i;:34::-;27166:41;;27275:12;;27256:15;;27249:4;:22;;;;:::i;:::-;27248:39;;;;:::i;:::-;27226:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;27090:213:0;27323:8;;27319:91;;27352:42;27368:4;27382;27389;27352:15;:42::i;:::-;27426:14;27436:4;27426:14;;:::i;:::-;;;26781:671;27464:33;27480:4;27486:2;27490:6;27464:15;:33::i;:::-;21774:5731;;;;21661:5844;;;:::o;6050:591::-;-1:-1:-1;;;;;6134:21:0;;6126:67;;;;-1:-1:-1;;;6126:67:0;;12249:2:1;6126:67:0;;;12231:21:1;12288:2;12268:18;;;12261:30;12327:34;12307:18;;;12300:62;-1:-1:-1;;;12378:18:1;;;12371:31;12419:19;;6126:67:0;12047:397:1;6126:67:0;-1:-1:-1;;;;;6293:18:0;;6268:22;6293:18;;;;;;;;;;;6330:24;;;;6322:71;;;;-1:-1:-1;;;6322:71:0;;12651:2:1;6322:71:0;;;12633:21:1;12690:2;12670:18;;;12663:30;12729:34;12709:18;;;12702:62;-1:-1:-1;;;12780:18:1;;;12773:32;12822:19;;6322:71:0;12449:398:1;6322:71:0;-1:-1:-1;;;;;6429:18:0;;:9;:18;;;;;;;;;;6450:23;;;6429:44;;6495:12;:22;;6467:6;;6429:9;6495:22;;6467:6;;6495:22;:::i;:::-;;;;-1:-1:-1;;6535:37:0;;1848:25:1;;;6561:1:0;;-1:-1:-1;;;;;6535:37:0;;;;;1836:2:1;1821:18;6535:37:0;;;;;;;21661:5844;;;:::o;1107:191::-;1200:6;;;-1:-1:-1;;;;;1217:17:0;;;-1:-1:-1;;;;;;1217:17:0;;;;;;;1250:40;;1200:6;;;1217:17;1200:6;;1250:40;;1181:16;;1250:40;1170:128;1107:191;:::o;27513:589::-;27663:16;;;27677:1;27663:16;;;;;;;;27639:21;;27663:16;;;;;;;;;;-1:-1:-1;27663:16:0;27639:40;;27708:4;27690;27695:1;27690:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;27690:23:0;;;-1:-1:-1;;;;;27690:23:0;;;;;27734:15;-1:-1:-1;;;;;27734:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27724:4;27729:1;27724:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;27724:32:0;;;-1:-1:-1;;;;;27724:32:0;;;;;27769:62;27786:4;27801:15;27819:11;27769:8;:62::i;:::-;27870:224;;-1:-1:-1;;;27870:224:0;;-1:-1:-1;;;;;27870:15:0;:66;;;;:224;;27951:11;;27977:1;;28021:4;;28048;;28068:15;;27870:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27568:534;27513:589;:::o;20340:188::-;-1:-1:-1;;;;;20423:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;20423:39:0;;;;;;;;;;20480:40;;20423:39;;:31;20480:40;;;20340:188;;:::o;4902:733::-;-1:-1:-1;;;;;5042:20:0;;5034:70;;;;-1:-1:-1;;;5034:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5123:23:0;;5115:71;;;;-1:-1:-1;;;5115:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5283:17:0;;5259:21;5283:17;;;;;;;;;;;5319:23;;;;5311:74;;;;-1:-1:-1;;;5311:74:0;;14559:2:1;5311:74:0;;;14541:21:1;14598:2;14578:18;;;14571:30;14637:34;14617:18;;;14610:62;-1:-1:-1;;;14688:18:1;;;14681:36;14734:19;;5311:74:0;14357:402:1;5311:74:0;-1:-1:-1;;;;;5421:17:0;;;:9;:17;;;;;;;;;;;5441:22;;;5421:42;;5485:20;;;;;;;;:30;;5457:6;;5421:9;5485:30;;5457:6;;5485:30;:::i;:::-;;;;;;;;5550:9;-1:-1:-1;;;;;5533:35:0;5542:6;-1:-1:-1;;;;;5533:35:0;;5561:6;5533:35;;;;1848:25:1;;1836:2;1821:18;;1702:177;5533:35:0;;;;;;;;5023:612;4902:733;;;:::o;28112:722::-;28195:4;28151:23;3205:18;;;;;;;;;;;28253;;3205;;28311:20;;;:46;;-1:-1:-1;28335:22:0;;28311:46;28307:85;;;28374:7;;;28112:722::o;28307:85::-;28426:18;;:23;;28447:2;28426:23;:::i;:::-;28408:15;:41;28404:115;;;28484:18;;:23;;28505:2;28484:23;:::i;:::-;28466:41;;28404:115;28611:15;28639:36;28611:15;28639:16;:36::i;:::-;28709:1;28688:18;:22;;;28747:15;;28739:87;;-1:-1:-1;;;;;28747:15:0;;;;28790:21;;28739:87;;28709:1;28739:87;28790:21;28747:15;28739:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8655:98;8713:7;8740:5;8744:1;8740;:5;:::i;:::-;8733:12;8655:98;-1:-1:-1;;;8655:98:0:o;8761:::-;8819:7;8846:5;8850:1;8846;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1884:180::-;1943:6;1996:2;1984:9;1975:7;1971:23;1967:32;1964:52;;;2012:1;2009;2002:12;1964:52;-1:-1:-1;2035:23:1;;1884:180;-1:-1:-1;1884:180:1:o;2069:456::-;2146:6;2154;2162;2215:2;2203:9;2194:7;2190:23;2186:32;2183:52;;;2231:1;2228;2221:12;2183:52;2270:9;2257:23;2289:31;2314:5;2289:31;:::i;:::-;2339:5;-1:-1:-1;2396:2:1;2381:18;;2368:32;2409:33;2368:32;2409:33;:::i;:::-;2069:456;;2461:7;;-1:-1:-1;;;2515:2:1;2500:18;;;;2487:32;;2069:456::o;2927:160::-;2992:20;;3048:13;;3041:21;3031:32;;3021:60;;3077:1;3074;3067:12;3092:180;3148:6;3201:2;3189:9;3180:7;3176:23;3172:32;3169:52;;;3217:1;3214;3207:12;3169:52;3240:26;3256:9;3240:26;:::i;3277:315::-;3342:6;3350;3403:2;3391:9;3382:7;3378:23;3374:32;3371:52;;;3419:1;3416;3409:12;3371:52;3458:9;3445:23;3477:31;3502:5;3477:31;:::i;:::-;3527:5;-1:-1:-1;3551:35:1;3582:2;3567:18;;3551:35;:::i;:::-;3541:45;;3277:315;;;;;:::o;3597:388::-;3665:6;3673;3726:2;3714:9;3705:7;3701:23;3697:32;3694:52;;;3742:1;3739;3732:12;3694:52;3781:9;3768:23;3800:31;3825:5;3800:31;:::i;:::-;3850:5;-1:-1:-1;3907:2:1;3892:18;;3879:32;3920:33;3879:32;3920:33;:::i;:::-;3972:7;3962:17;;;3597:388;;;;;:::o;3990:380::-;4069:1;4065:12;;;;4112;;;4133:61;;4187:4;4179:6;4175:17;4165:27;;4133:61;4240:2;4232:6;4229:14;4209:18;4206:38;4203:161;;4286:10;4281:3;4277:20;4274:1;4267:31;4321:4;4318:1;4311:15;4349:4;4346:1;4339:15;4203:161;;3990:380;;;:::o;4375:356::-;4577:2;4559:21;;;4596:18;;;4589:30;4655:34;4650:2;4635:18;;4628:62;4722:2;4707:18;;4375:356::o;4736:127::-;4797:10;4792:3;4788:20;4785:1;4778:31;4828:4;4825:1;4818:15;4852:4;4849:1;4842:15;4868:168;4941:9;;;4972;;4989:15;;;4983:22;;4969:37;4959:71;;5010:18;;:::i;5450:125::-;5515:9;;;5536:10;;;5533:36;;;5549:18;;:::i;8178:401::-;8380:2;8362:21;;;8419:2;8399:18;;;8392:30;8458:34;8453:2;8438:18;;8431:62;-1:-1:-1;;;8524:2:1;8509:18;;8502:35;8569:3;8554:19;;8178:401::o;8584:399::-;8786:2;8768:21;;;8825:2;8805:18;;;8798:30;8864:34;8859:2;8844:18;;8837:62;-1:-1:-1;;;8930:2:1;8915:18;;8908:33;8973:3;8958:19;;8584:399::o;11692:217::-;11732:1;11758;11748:132;;11802:10;11797:3;11793:20;11790:1;11783:31;11837:4;11834:1;11827:15;11865:4;11862:1;11855:15;11748:132;-1:-1:-1;11894:9:1;;11692:217::o;11914:128::-;11981:9;;;12002:11;;;11999:37;;;12016:18;;:::i;12984:127::-;13045:10;13040:3;13036:20;13033:1;13026:31;13076:4;13073:1;13066:15;13100:4;13097:1;13090:15;13116:251;13186:6;13239:2;13227:9;13218:7;13214:23;13210:32;13207:52;;;13255:1;13252;13245:12;13207:52;13287:9;13281:16;13306:31;13331:5;13306:31;:::i;13372:980::-;13634:4;13682:3;13671:9;13667:19;13713:6;13702:9;13695:25;13739:2;13777:6;13772:2;13761:9;13757:18;13750:34;13820:3;13815:2;13804:9;13800:18;13793:31;13844:6;13879;13873:13;13910:6;13902;13895:22;13948:3;13937:9;13933:19;13926:26;;13987:2;13979:6;13975:15;13961:29;;14008:1;14018:195;14032:6;14029:1;14026:13;14018:195;;;14097:13;;-1:-1:-1;;;;;14093:39:1;14081:52;;14188:15;;;;14153:12;;;;14129:1;14047:9;14018:195;;;-1:-1:-1;;;;;;;14269:32:1;;;;14264:2;14249:18;;14242:60;-1:-1:-1;;;14333:3:1;14318:19;14311:35;14230:3;13372:980;-1:-1:-1;;;13372:980:1:o
Swarm Source
ipfs://2d4007655cb497b2659fa6366ab3d90d8631337de2e3d1ed2ffe76fa663cd39b
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.