Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 PEPEMORTY
Holders
112
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,175.743230500667126956 PEPEMORTYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PEPEMORTY
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-07 */ /** t.me/pepemortyERC https://PepeMorty.com Pepe morty is a wholesome 0/0 from the start token meant to warm the spirits of degens. With two of the most perfect memes mixed together, this pepe shall take over the space. PEEEPEEEEE MOOOOORTTTYYY!!! */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; 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 { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (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 IERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); } contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract ERC20Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "ERC20Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "ERC20Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } contract PEPEMORTY is Context, ERC20Ownable, IERC20{ using SafeMath for uint256; uint256 private _MaxWallet; uint256 private _MinTS; uint256 private marketingTokens; uint256 private treasuryTokens; uint256 private liquidityTokens; uint256 private marketingTax; uint256 private treasuryTax; uint256 private liquidityTax; uint256 private tDivider; uint256 private taxBuyMarketing; uint256 private taxBuyTreasury; uint256 private taxBuyLiquidity; uint256 private taxSellMarketing; uint256 private taxSellTreasury; uint256 private taxSellLiquidity; uint256 public LiveBlock; uint256 public EndSniperPen; bool public actions = false; bool public maxWalletOn = false; bool public active = false; bool isal; bool private sals = false; address payable liquidityAddress; address payable marketingAddress; address payable treasuryAddress; address payable devAddress; address DEAD = address(0xdead); address public uniV2Pair; IUniswapV2Router02 public uniV2Router; mapping(address => mapping(address => uint256)) private _Allowances; mapping(address => uint256) private _Balance; mapping(address => bool) private _MaxExclude; mapping(address => bool) private _TaxExclude; mapping(address => bool) public _Sniper; mapping(address => bool) public _Bot; modifier lockTheSwap() { isal = true; _; isal = false; } string private constant _Name = "PEPE MORTY"; string private constant _Symbol = "PEPEMORTY"; uint8 private constant _Decimal = 18; uint256 private constant _Supply = 1e6 * 10**_Decimal; constructor() payable { marketingAddress = payable(0x4666e2757637A7faBd2F2651D5aea8Ab4512203D); treasuryAddress = payable(0x4666e2757637A7faBd2F2651D5aea8Ab4512203D); devAddress = payable(0x4666e2757637A7faBd2F2651D5aea8Ab4512203D); taxBuyMarketing = 0; taxBuyTreasury = 0; taxBuyLiquidity = 0; taxSellMarketing = 0; taxSellTreasury = 0; taxSellLiquidity = 0; liquidityAddress = payable(owner()); _Balance[address(this)] = _Supply; _MaxWallet = _Supply.mul(2).div(100); _MinTS = _Supply.mul(5).div(10000); _TaxExclude[owner()] = true; _TaxExclude[DEAD] = true; _TaxExclude[address(this)] = true; _TaxExclude[marketingAddress] = true; _TaxExclude[treasuryAddress] = true; _TaxExclude[liquidityAddress] = true; _MaxExclude[address(this)] = true; _MaxExclude[owner()] = true; _MaxExclude[marketingAddress] = true; _MaxExclude[treasuryAddress] = true; _MaxExclude[liquidityAddress] = true; _MaxExclude[DEAD] = true; emit Transfer(address(0), address(this), _Supply); } receive() external payable {} function name() external pure override returns (string memory) { return _Name; } function symbol() external pure override returns (string memory) { return _Symbol; } function decimals() external pure override returns (uint8) { return _Decimal; } function totalSupply() external pure override returns (uint256) { return _Supply; } function balanceOf(address account) public view override returns (uint256) { return _Balance[account]; } function allowance(address owner, address spender) external view override returns (uint256) { return _Allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(_msgSender() != address(0), "ERC20: Can not approve from zero address"); require(spender != address(0), "ERC20: Can not approve to zero address"); _Allowances[_msgSender()][spender] = amount; emit Approval(_msgSender(), spender, amount); return true; } function ContractApprove(address owner,address spender,uint256 amount) internal { require(owner != address(0), "ERC20: Can not approve from zero address"); require(spender != address(0), "ERC20: Can not approve to zero address"); _Allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transfer(address recipient, uint256 amount) external override returns (bool) { ContractTransfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender,address recipient,uint256 amount) external override returns (bool) { ContractTransfer(sender, recipient, amount); ContractApprove(sender,_msgSender(), _Allowances[sender][_msgSender()].sub(amount, "ERC20: Can not transfer. Amount exceeds allowance")); return true; } function Live() external onlyOwner returns (bool){ require(!active, "ERC20: Trades already active!"); LiveBlock = block.number; EndSniperPen = block.timestamp.add(7 days); IUniswapV2Router02 _uniV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniV2Router = _uniV2Router; _MaxExclude[address(uniV2Router)] = true; ContractApprove(address(this), address(uniV2Router), _Supply); uniV2Pair = IUniswapV2Factory(_uniV2Router.factory()).createPair(address(this), _uniV2Router.WETH()); _MaxExclude[address(uniV2Pair)] = true; require(address(this).balance > 0, "ERC20: Must have ETH on contract to Go active!"); addLiquidity(balanceOf(address(this)), address(this).balance); setLiquidityAddress(DEAD); maxWalletOn = true; sals = true; actions = true; active = true; return true; } function ContractTransfer(address from, address to, uint256 amount) internal { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "ERC20: Transfer amount must be greater than zero"); require(!_Bot[from], "ERC20: Can not transfer from BOT"); if(!active){ require(_TaxExclude[from] || _TaxExclude[to], "ERC20: Trading Is Not active!"); } if (maxWalletOn == true && ! _MaxExclude[to]) { require(balanceOf(to).add(amount) <= _MaxWallet, "ERC20: Max amount of tokens for wallet reached"); } if(actions){ if (from != owner() && to != owner() && to != address(0) && to != DEAD && to != uniV2Pair) { for (uint x = 0; x < 2; x++) { if(block.number == LiveBlock.add(x)) { _Sniper[to] = true; } } } } uint256 totalTokensToSwap = liquidityTokens.add(marketingTokens); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= _MinTS; if (!isal && sals && balanceOf(uniV2Pair) > 0 && totalTokensToSwap > 0 && !_TaxExclude[to] && !_TaxExclude[from] && to == uniV2Pair && overMinimumTokenBalance) { taxTokenSwap(); } if (_TaxExclude[from] || _TaxExclude[to]) { marketingTax = 0; treasuryTax = 0; liquidityTax = 0; tDivider = marketingTax.add(treasuryTax).add(liquidityTax); } else { if (from == uniV2Pair) { marketingTax = taxBuyMarketing; treasuryTax = taxBuyTreasury; liquidityTax = taxBuyLiquidity; tDivider = taxBuyMarketing.add(taxBuyTreasury).add(taxBuyLiquidity); }else if (to == uniV2Pair) { marketingTax = taxSellMarketing; treasuryTax = taxSellTreasury; liquidityTax = taxSellLiquidity; tDivider = taxSellMarketing.add(taxSellTreasury).add(taxSellLiquidity); if(_Sniper[from] && EndSniperPen >= block.timestamp){ marketingTax = 95; treasuryTax = 0; liquidityTax = 0; tDivider = marketingTax.add(treasuryTax).add(liquidityTax); } }else { require(!_Sniper[from] || EndSniperPen <= block.timestamp, "ERC20: Snipers can not transfer till penalty time is over"); marketingTax = 0; treasuryTax = 0; liquidityTax = 0; } } tokenTransfer(from, to, amount); } function setLiquidityAddress(address LPAddress) internal { liquidityAddress = payable(LPAddress); _TaxExclude[liquidityAddress] = true; } function withdrawStuckETH() external onlyOwner { bool success; (success,) = address(owner()).call{value: address(this).balance}(""); } function withdrawStuckTokens() external onlyOwner { ContractTransfer(address(this), owner(), balanceOf(address(this))); } function addBot(address account) external onlyOwner { require(!_Bot[account], "ERC20: Account already added"); _Bot[account] = true; } function removeBot(address account) external onlyOwner { require(_Bot[account], "ERC20: Account is not bot"); _Bot[account] = false; } function removeSniper(address account) external onlyOwner { require(_Sniper[account], "ERC20: Account is not sniper"); _Sniper[account] = false; } function excludFromTax(address account, bool trueORfalse) external onlyOwner { _TaxExclude[address(account)] = trueORfalse; } function excludFromMaxWallet(address account, bool trueORfalse) external onlyOwner { _MaxExclude[address(account)] = trueORfalse; } function maxWalletAmount(uint256 percent, uint256 divider) external onlyOwner { _MaxWallet = _Supply.mul(percent).div(divider); require(_MaxWallet <=_Supply.mul(4).div(100), "ERC20: Can not set max wallet more than 4%"); } function statusActions(bool trueORfalse) external onlyOwner { actions = trueORfalse; } function statusMaxWallet(bool trueORfalse) external onlyOwner { maxWalletOn = trueORfalse; } function changeSwapAndLiquifyStatus(bool trueORfalse) external onlyOwner { sals = trueORfalse; } function taxTokenSwap() internal lockTheSwap { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = marketingTokens.add(treasuryTokens).add(liquidityTokens); uint256 swapLiquidityTokens = liquidityTokens.div(2); uint256 amountToSwapForETH = contractBalance.sub(swapLiquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForETH(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(marketingTokens).div(totalTokensToSwap); uint256 ethForTreasury = ethBalance.mul(treasuryTokens).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance.sub(ethForMarketing).sub(ethForTreasury); marketingTokens = 0; treasuryTokens = 0; liquidityTokens = 0; (bool success,) = address(marketingAddress).call{value: ethForMarketing}(""); (success,) = address(treasuryAddress).call{value: ethForTreasury}(""); if(ethForLiquidity != 0 && swapLiquidityTokens != 0) { addLiquidity(swapLiquidityTokens, ethForLiquidity); } if(address(this).balance > 5 * 1e17){ (success,) = address(devAddress).call{value: address(this).balance}(""); } } function swapTokensForETH(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniV2Router.WETH(); ContractApprove(address(this), address(uniV2Router), tokenAmount); uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal { ContractApprove(address(this), address(uniV2Router), tokenAmount); uniV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, liquidityAddress, block.timestamp ); } function calculateTax(uint256 amount) internal view returns (uint256) { return amount.mul(marketingTax.add(treasuryTax).add(liquidityTax)).div(100); } function splitTaxTokens(uint256 taxTokens) internal { marketingTokens += taxTokens.mul(marketingTax).div(tDivider); treasuryTokens += taxTokens.mul(treasuryTax).div(tDivider); liquidityTokens += taxTokens.mul(liquidityTax).div(tDivider); } function tokenTransfer(address sender,address recipient,uint256 amount) internal { if(tDivider != 0){ uint256 taxTokens = calculateTax(amount); uint256 transferTokens = amount.sub(taxTokens); splitTaxTokens(taxTokens); _Balance[sender] -= amount; _Balance[recipient] += transferTokens; _Balance[address(this)] += taxTokens; emit Transfer(sender, recipient, transferTokens); }else{ _Balance[sender] -= amount; _Balance[recipient] += amount; emit Transfer(sender, recipient, amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EndSniperPen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_Bot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_Sniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"actions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"changeSwapAndLiquifyStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"excludFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"excludFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divider","type":"uint256"}],"name":"maxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"statusActions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"statusMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012805464ff00ffffff19169055601680546001600160a01b03191661dead1790556000620000303390565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060138054734666e2757637a7fabd2f2651d5aea8ab4512203d6001600160a01b03199182168117909255601480548216831790556015805490911690911790556000600a819055600b819055600c819055600d819055600e819055600f55620000eb6000546001600160a01b031690565b601280546001600160a01b03929092166501000000000002600160281b600160c81b03199092169190911781556200012590600a620004ab565b6200013490620f4240620004bc565b306000908152601a60205260409020556200019560646200018160026200015e6012600a620004ab565b6200016d90620f4240620004bc565b6200037360201b620012211790919060201c565b6200038a60201b620012341790919060201c565b600155620001b36127106200018160056200015e6012600a620004ab565b6002556001601c6000620001cf6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560165482168152601c845282812080548616600190811790915530808352848320805488168317905560135484168352848320805488168317905560145484168352848320805488168317905560125465010000000000900490931682528382208054871682179055918152601b93849052918220805490941681179093556200028f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560135482168152601b909352818320805485166001908117909155601454821684528284208054861682179055601280546501000000000090048316855283852080548716831790556016549092168452918320805490941690911790925530917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200034d90600a620004ab565b6200035c90620f4240620004bc565b60405190815260200160405180910390a362000501565b6000620003818284620004bc565b90505b92915050565b6000620003818284620004de565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003ef578160001904821115620003d357620003d362000398565b80851615620003e157918102915b93841c9390800290620003b3565b509250929050565b600082620004085750600162000384565b81620004175750600062000384565b81600181146200043057600281146200043b576200045b565b600191505062000384565b60ff8411156200044f576200044f62000398565b50506001821b62000384565b5060208310610133831016604e8410600b841016171562000480575081810a62000384565b6200048c8383620003ae565b8060001904821115620004a357620004a362000398565b029392505050565b60006200038160ff841683620003f7565b6000816000190483118215151615620004d957620004d962000398565b500290565b600082620004fc57634e487b7160e01b600052601260045260246000fd5b500490565b6125fe80620005116000396000f3fe6080604052600436106101f25760003560e01c80635fecd9261161010d578063958c2e52116100a0578063dd62ed3e1161006f578063dd62ed3e146105c2578063f2fde38b14610608578063f5648a4f14610628578063f99e36bc1461063d578063ffecf5161461065757600080fd5b8063958c2e521461053057806395d89b4114610550578063a9059cbb14610582578063d9d99c96146105a257600080fd5b8063783efbc7116100dc578063783efbc7146104a55780638183b3c8146104c55780638bcea939146104da5780638da5cb5b1461051257600080fd5b80635fecd9261461043157806370a0823114610451578063715018a614610471578063745d032f1461048657600080fd5b80631a841d0211610185578063313ce56711610154578063313ce567146103a557806333251a0b146103c1578063353470be146103e157806345a119a31461040157600080fd5b80631a841d021461031f5780631cae21081461034f57806323b872dd146103655780632500ae8a1461038557600080fd5b806311b4181a116101c157806311b4181a146102b357806318160ddd146102c85780631892a9e2146102dd57806318b78fe1146102ff57600080fd5b806302fb0c5e146101fe57806305b723911461023357806306fdde0314610257578063095ea7b31461029357600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060125461021e9062010000900460ff1681565b60405190151581526020015b60405180910390f35b34801561023f57600080fd5b5061024960105481565b60405190815260200161022a565b34801561026357600080fd5b5060408051808201909152600a81526950455045204d4f52545960b01b60208201525b60405161022a91906120a7565b34801561029f57600080fd5b5061021e6102ae366004612114565b610677565b3480156102bf57600080fd5b5061021e61072a565b3480156102d457600080fd5b50610249610acd565b3480156102e957600080fd5b506102fd6102f8366004612155565b610aed565b005b34801561030b57600080fd5b506102fd61031a36600461218a565b610b42565b34801561032b57600080fd5b5061021e61033a3660046121a5565b601d6020526000908152604090205460ff1681565b34801561035b57600080fd5b5061024960115481565b34801561037157600080fd5b5061021e6103803660046121c2565b610b86565b34801561039157600080fd5b506102fd6103a0366004612155565b610bea565b3480156103b157600080fd5b506040516012815260200161022a565b3480156103cd57600080fd5b506102fd6103dc3660046121a5565b610c3f565b3480156103ed57600080fd5b506102fd6103fc366004612203565b610cf2565b34801561040d57600080fd5b5061021e61041c3660046121a5565b601e6020526000908152604090205460ff1681565b34801561043d57600080fd5b506102fd61044c3660046121a5565b610dca565b34801561045d57600080fd5b5061024961046c3660046121a5565b610e7d565b34801561047d57600080fd5b506102fd610e98565b34801561049257600080fd5b5060125461021e90610100900460ff1681565b3480156104b157600080fd5b506102fd6104c036600461218a565b610f0c565b3480156104d157600080fd5b506102fd610f56565b3480156104e657600080fd5b506017546104fa906001600160a01b031681565b6040516001600160a01b03909116815260200161022a565b34801561051e57600080fd5b506000546001600160a01b03166104fa565b34801561053c57600080fd5b506018546104fa906001600160a01b031681565b34801561055c57600080fd5b50604080518082019091526009815268504550454d4f52545960b81b6020820152610286565b34801561058e57600080fd5b5061021e61059d366004612114565b610fa6565b3480156105ae57600080fd5b506102fd6105bd36600461218a565b610fbc565b3480156105ce57600080fd5b506102496105dd366004612225565b6001600160a01b03918216600090815260196020908152604080832093909416825291909152205490565b34801561061457600080fd5b506102fd6106233660046121a5565b610ff9565b34801561063457600080fd5b506102fd6110e8565b34801561064957600080fd5b5060125461021e9060ff1681565b34801561066357600080fd5b506102fd6106723660046121a5565b61116a565b60003361069f5760405162461bcd60e51b81526004016106969061225e565b60405180910390fd5b6001600160a01b0383166106c55760405162461bcd60e51b8152600401610696906122a6565b3360008181526019602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b600080546001600160a01b031633146107555760405162461bcd60e51b8152600401610696906122ec565b60125462010000900460ff16156107ae5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164657320616c726561647920616374697665210000006044820152606401610696565b436010556107bf4262093a80611240565b601155601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556000819052601b6020527f737a8aa320b777139cfebe450e173d90b49df21bdde0d83dcfdff4abee7622ee805460ff1916600117905561084430826108326012600a61242b565b61083f90620f424061243a565b61124c565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561087d57600080fd5b505afa158015610891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b59190612459565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109359190612459565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561097d57600080fd5b505af1158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190612459565b601780546001600160a01b0319166001600160a01b039290921691821790556000908152601b60205260409020805460ff1916600117905547610a515760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d757374206861766520455448206f6e20636f6e747261637460448201526d20746f20476f206163746976652160901b6064820152608401610696565b610a63610a5d30610e7d565b476112fa565b6016546012805465010000000000600160c81b031916650100000000006001600160a01b03938416810291909117918290559004166000908152601c60205260409020805460ff1916600117905550506012805464ff00ffffff1916640100010101179055600190565b6000610adb6012600a61242b565b610ae890620f424061243a565b905090565b6000546001600160a01b03163314610b175760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b8152600401610696906122ec565b601280549115156101000261ff0019909216919091179055565b6000610b938484846113c6565b610be0843361083f85604051806060016040528060318152602001612598603191396001600160a01b038a1660009081526019602090815260408083203384529091529020549190611a83565b5060019392505050565b6000546001600160a01b03163314610c145760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c695760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601d602052604090205460ff16610cd15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e74206973206e6f7420736e69706572000000006044820152606401610696565b6001600160a01b03166000908152601d60205260409020805460ff19169055565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b8152600401610696906122ec565b610d4981610d4384610d306012600a61242b565b610d3d90620f424061243a565b90611221565b90611234565b600155610d626064610d436004610d306012600a61242b565b6001541115610dc65760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f6044820152697265207468616e20342560b01b6064820152608401610696565b5050565b6000546001600160a01b03163314610df45760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601e602052604090205460ff16610e5c5760405162461bcd60e51b815260206004820152601960248201527f45524332303a204163636f756e74206973206e6f7420626f74000000000000006044820152606401610696565b6001600160a01b03166000908152601e60205260409020805460ff19169055565b6001600160a01b03166000908152601a602052604090205490565b6000546001600160a01b03163314610ec25760405162461bcd60e51b8152600401610696906122ec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f365760405162461bcd60e51b8152600401610696906122ec565b601280549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b03163314610f805760405162461bcd60e51b8152600401610696906122ec565b610fa430610f966000546001600160a01b031690565b610f9f30610e7d565b6113c6565b565b6000610fb33384846113c6565b50600192915050565b6000546001600160a01b03163314610fe65760405162461bcd60e51b8152600401610696906122ec565b6012805460ff1916911515919091179055565b6000546001600160a01b031633146110235760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03811661108d5760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b6064820152608401610696565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111125760405162461bcd60e51b8152600401610696906122ec565b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461115f576040519150601f19603f3d011682016040523d82523d6000602084013e611164565b606091505b50505050565b6000546001600160a01b031633146111945760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601e602052604090205460ff16156111fd5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e7420616c7265616479206164646564000000006044820152606401610696565b6001600160a01b03166000908152601e60205260409020805460ff19166001179055565b600061122d828461243a565b9392505050565b600061122d8284612476565b600061122d8284612498565b6001600160a01b0383166112725760405162461bcd60e51b81526004016106969061225e565b6001600160a01b0382166112985760405162461bcd60e51b8152600401610696906122a6565b6001600160a01b0383811660008181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6018546113129030906001600160a01b03168461124c565b60185460125460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0365010000000000909204821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561138657600080fd5b505af115801561139a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113bf91906124b0565b5050505050565b6001600160a01b03831661142a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610696565b6001600160a01b03821661148c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610696565b600081116114f55760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610696565b6001600160a01b0383166000908152601e602052604090205460ff161561155e5760405162461bcd60e51b815260206004820181905260248201527f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f546044820152606401610696565b60125462010000900460ff166115f9576001600160a01b0383166000908152601c602052604090205460ff16806115ad57506001600160a01b0382166000908152601c602052604090205460ff165b6115f95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67204973204e6f7420616374697665210000006044820152606401610696565b60125460ff610100909104161515600114801561162f57506001600160a01b0382166000908152601b602052604090205460ff16155b156116af5760015461164a8261164485610e7d565b90611240565b11156116af5760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060448201526d1dd85b1b195d081c995858da195960921b6064820152608401610696565b60125460ff161561178b576000546001600160a01b038481169116148015906116e657506000546001600160a01b03838116911614155b80156116fa57506001600160a01b03821615155b801561171457506016546001600160a01b03838116911614155b801561172e57506017546001600160a01b03838116911614155b1561178b5760005b60028110156117895760105461174c9082611240565b431415611777576001600160a01b0383166000908152601d60205260409020805460ff191660011790555b80611781816124de565b915050611736565b505b60006117a460035460055461124090919063ffffffff16565b905060006117b130610e7d565b600254601254919250821015906301000000900460ff161580156117df5750601254640100000000900460ff165b801561180057506017546000906117fe906001600160a01b0316610e7d565b115b801561180c5750600083115b801561183157506001600160a01b0385166000908152601c602052604090205460ff16155b801561185657506001600160a01b0386166000908152601c602052604090205460ff16155b801561186f57506017546001600160a01b038681169116145b80156118785750805b1561188557611885611aaf565b6001600160a01b0386166000908152601c602052604090205460ff16806118c457506001600160a01b0385166000908152601c602052604090205460ff165b156118f05760006006819055600781905560088190556118e8906116448180611240565b600955611a70565b6017546001600160a01b038781169116141561192e57600a546006819055600b546007819055600c5460088190556118e89290916116449190611240565b6017546001600160a01b03868116911614156119c457600d546006819055600e546007819055600f54600881905561196c9290916116449190611240565b6009556001600160a01b0386166000908152601d602052604090205460ff16801561199957504260115410155b156119bf57605f60068190556000600781905560088190556118e8916116449082611240565b611a70565b6001600160a01b0386166000908152601d602052604090205460ff1615806119ee57504260115411155b611a605760405162461bcd60e51b815260206004820152603960248201527f45524332303a20536e69706572732063616e206e6f74207472616e736665722060448201527f74696c6c2070656e616c74792074696d65206973206f766572000000000000006064820152608401610696565b6000600681905560078190556008555b611a7b868686611cdf565b505050505050565b60008184841115611aa75760405162461bcd60e51b815260040161069691906120a7565b505050900390565b6012805463ff000000191663010000001790556000611acd30610e7d565b90506000611aee60055461164460045460035461124090919063ffffffff16565b90506000611b08600260055461123490919063ffffffff16565b90506000611b168483611e80565b905047611b2282611e8c565b6000611b2e4783611e80565b90506000611b4b86610d436003548561122190919063ffffffff16565b90506000611b6887610d436004548661122190919063ffffffff16565b90506000611b8082611b7a8686611e80565b90611e80565b600060038190556004819055600581905560135460405192935090916001600160a01b039091169085908381818185875af1925050503d8060008114611be2576040519150601f19603f3d011682016040523d82523d6000602084013e611be7565b606091505b50506014546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611c37576040519150601f19603f3d011682016040523d82523d6000602084013e611c3c565b606091505b50909150508115801590611c4f57508715155b15611c5e57611c5e88836112fa565b6706f05b59d3b20000471115611cc6576015546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611cbb576040519150601f19603f3d011682016040523d82523d6000602084013e611cc0565b606091505b50909150505b50506012805463ff000000191690555050505050505050565b60095415611ddf576000611cf282611fed565b90506000611d008383611e80565b9050611d0b8261201b565b6001600160a01b0385166000908152601a602052604081208054859290611d339084906124f9565b90915550506001600160a01b0384166000908152601a602052604081208054839290611d60908490612498565b9091555050306000908152601a602052604081208054849290611d84908490612498565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dd091815260200190565b60405180910390a35050505050565b6001600160a01b0383166000908152601a602052604081208054839290611e079084906124f9565b90915550506001600160a01b0382166000908152601a602052604081208054839290611e34908490612498565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112ed91815260200190565b600061122d82846124f9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ec157611ec1612510565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611f1557600080fd5b505afa158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d9190612459565b81600181518110611f6057611f60612510565b6001600160a01b039283166020918202929092010152601854611f86913091168461124c565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fbf908590600090869030904290600401612526565b600060405180830381600087803b158015611fd957600080fd5b505af1158015611a7b573d6000803e3d6000fd5b60006107246064610d4361201460085461164460075460065461124090919063ffffffff16565b8590611221565b612036600954610d436006548461122190919063ffffffff16565b600360008282546120479190612498565b90915550506009546007546120629190610d43908490611221565b600460008282546120739190612498565b909155505060095460085461208e9190610d43908490611221565b6005600082825461209f9190612498565b909155505050565b600060208083528351808285015260005b818110156120d4578581018301518582016040015282016120b8565b818111156120e6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461211157600080fd5b50565b6000806040838503121561212757600080fd5b8235612132816120fc565b946020939093013593505050565b8035801515811461215057600080fd5b919050565b6000806040838503121561216857600080fd5b8235612173816120fc565b915061218160208401612140565b90509250929050565b60006020828403121561219c57600080fd5b61122d82612140565b6000602082840312156121b757600080fd5b813561122d816120fc565b6000806000606084860312156121d757600080fd5b83356121e2816120fc565b925060208401356121f2816120fc565b929592945050506040919091013590565b6000806040838503121561221657600080fd5b50508035926020909101359150565b6000806040838503121561223857600080fd5b8235612243816120fc565b91506020830135612253816120fc565b809150509250929050565b60208082526028908201527f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526026908201527f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561238257816000190482111561236857612368612331565b8085161561237557918102915b93841c939080029061234c565b509250929050565b60008261239957506001610724565b816123a657506000610724565b81600181146123bc57600281146123c6576123e2565b6001915050610724565b60ff8411156123d7576123d7612331565b50506001821b610724565b5060208310610133831016604e8410600b8410161715612405575081810a610724565b61240f8383612347565b806000190482111561242357612423612331565b029392505050565b600061122d60ff84168361238a565b600081600019048311821515161561245457612454612331565b500290565b60006020828403121561246b57600080fd5b815161122d816120fc565b60008261249357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124ab576124ab612331565b500190565b6000806000606084860312156124c557600080fd5b8351925060208401519150604084015190509250925092565b60006000198214156124f2576124f2612331565b5060010190565b60008282101561250b5761250b612331565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125765784516001600160a01b031683529383019391830191600101612551565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ceff12788413fd1c0cd05cd9d37f4a117b256184429e403eaff240f6dc722c3e64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c80635fecd9261161010d578063958c2e52116100a0578063dd62ed3e1161006f578063dd62ed3e146105c2578063f2fde38b14610608578063f5648a4f14610628578063f99e36bc1461063d578063ffecf5161461065757600080fd5b8063958c2e521461053057806395d89b4114610550578063a9059cbb14610582578063d9d99c96146105a257600080fd5b8063783efbc7116100dc578063783efbc7146104a55780638183b3c8146104c55780638bcea939146104da5780638da5cb5b1461051257600080fd5b80635fecd9261461043157806370a0823114610451578063715018a614610471578063745d032f1461048657600080fd5b80631a841d0211610185578063313ce56711610154578063313ce567146103a557806333251a0b146103c1578063353470be146103e157806345a119a31461040157600080fd5b80631a841d021461031f5780631cae21081461034f57806323b872dd146103655780632500ae8a1461038557600080fd5b806311b4181a116101c157806311b4181a146102b357806318160ddd146102c85780631892a9e2146102dd57806318b78fe1146102ff57600080fd5b806302fb0c5e146101fe57806305b723911461023357806306fdde0314610257578063095ea7b31461029357600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060125461021e9062010000900460ff1681565b60405190151581526020015b60405180910390f35b34801561023f57600080fd5b5061024960105481565b60405190815260200161022a565b34801561026357600080fd5b5060408051808201909152600a81526950455045204d4f52545960b01b60208201525b60405161022a91906120a7565b34801561029f57600080fd5b5061021e6102ae366004612114565b610677565b3480156102bf57600080fd5b5061021e61072a565b3480156102d457600080fd5b50610249610acd565b3480156102e957600080fd5b506102fd6102f8366004612155565b610aed565b005b34801561030b57600080fd5b506102fd61031a36600461218a565b610b42565b34801561032b57600080fd5b5061021e61033a3660046121a5565b601d6020526000908152604090205460ff1681565b34801561035b57600080fd5b5061024960115481565b34801561037157600080fd5b5061021e6103803660046121c2565b610b86565b34801561039157600080fd5b506102fd6103a0366004612155565b610bea565b3480156103b157600080fd5b506040516012815260200161022a565b3480156103cd57600080fd5b506102fd6103dc3660046121a5565b610c3f565b3480156103ed57600080fd5b506102fd6103fc366004612203565b610cf2565b34801561040d57600080fd5b5061021e61041c3660046121a5565b601e6020526000908152604090205460ff1681565b34801561043d57600080fd5b506102fd61044c3660046121a5565b610dca565b34801561045d57600080fd5b5061024961046c3660046121a5565b610e7d565b34801561047d57600080fd5b506102fd610e98565b34801561049257600080fd5b5060125461021e90610100900460ff1681565b3480156104b157600080fd5b506102fd6104c036600461218a565b610f0c565b3480156104d157600080fd5b506102fd610f56565b3480156104e657600080fd5b506017546104fa906001600160a01b031681565b6040516001600160a01b03909116815260200161022a565b34801561051e57600080fd5b506000546001600160a01b03166104fa565b34801561053c57600080fd5b506018546104fa906001600160a01b031681565b34801561055c57600080fd5b50604080518082019091526009815268504550454d4f52545960b81b6020820152610286565b34801561058e57600080fd5b5061021e61059d366004612114565b610fa6565b3480156105ae57600080fd5b506102fd6105bd36600461218a565b610fbc565b3480156105ce57600080fd5b506102496105dd366004612225565b6001600160a01b03918216600090815260196020908152604080832093909416825291909152205490565b34801561061457600080fd5b506102fd6106233660046121a5565b610ff9565b34801561063457600080fd5b506102fd6110e8565b34801561064957600080fd5b5060125461021e9060ff1681565b34801561066357600080fd5b506102fd6106723660046121a5565b61116a565b60003361069f5760405162461bcd60e51b81526004016106969061225e565b60405180910390fd5b6001600160a01b0383166106c55760405162461bcd60e51b8152600401610696906122a6565b3360008181526019602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b600080546001600160a01b031633146107555760405162461bcd60e51b8152600401610696906122ec565b60125462010000900460ff16156107ae5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164657320616c726561647920616374697665210000006044820152606401610696565b436010556107bf4262093a80611240565b601155601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556000819052601b6020527f737a8aa320b777139cfebe450e173d90b49df21bdde0d83dcfdff4abee7622ee805460ff1916600117905561084430826108326012600a61242b565b61083f90620f424061243a565b61124c565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561087d57600080fd5b505afa158015610891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b59190612459565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109359190612459565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561097d57600080fd5b505af1158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190612459565b601780546001600160a01b0319166001600160a01b039290921691821790556000908152601b60205260409020805460ff1916600117905547610a515760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d757374206861766520455448206f6e20636f6e747261637460448201526d20746f20476f206163746976652160901b6064820152608401610696565b610a63610a5d30610e7d565b476112fa565b6016546012805465010000000000600160c81b031916650100000000006001600160a01b03938416810291909117918290559004166000908152601c60205260409020805460ff1916600117905550506012805464ff00ffffff1916640100010101179055600190565b6000610adb6012600a61242b565b610ae890620f424061243a565b905090565b6000546001600160a01b03163314610b175760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b8152600401610696906122ec565b601280549115156101000261ff0019909216919091179055565b6000610b938484846113c6565b610be0843361083f85604051806060016040528060318152602001612598603191396001600160a01b038a1660009081526019602090815260408083203384529091529020549190611a83565b5060019392505050565b6000546001600160a01b03163314610c145760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c695760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601d602052604090205460ff16610cd15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e74206973206e6f7420736e69706572000000006044820152606401610696565b6001600160a01b03166000908152601d60205260409020805460ff19169055565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b8152600401610696906122ec565b610d4981610d4384610d306012600a61242b565b610d3d90620f424061243a565b90611221565b90611234565b600155610d626064610d436004610d306012600a61242b565b6001541115610dc65760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f6044820152697265207468616e20342560b01b6064820152608401610696565b5050565b6000546001600160a01b03163314610df45760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601e602052604090205460ff16610e5c5760405162461bcd60e51b815260206004820152601960248201527f45524332303a204163636f756e74206973206e6f7420626f74000000000000006044820152606401610696565b6001600160a01b03166000908152601e60205260409020805460ff19169055565b6001600160a01b03166000908152601a602052604090205490565b6000546001600160a01b03163314610ec25760405162461bcd60e51b8152600401610696906122ec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f365760405162461bcd60e51b8152600401610696906122ec565b601280549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b03163314610f805760405162461bcd60e51b8152600401610696906122ec565b610fa430610f966000546001600160a01b031690565b610f9f30610e7d565b6113c6565b565b6000610fb33384846113c6565b50600192915050565b6000546001600160a01b03163314610fe65760405162461bcd60e51b8152600401610696906122ec565b6012805460ff1916911515919091179055565b6000546001600160a01b031633146110235760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03811661108d5760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b6064820152608401610696565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111125760405162461bcd60e51b8152600401610696906122ec565b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461115f576040519150601f19603f3d011682016040523d82523d6000602084013e611164565b606091505b50505050565b6000546001600160a01b031633146111945760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601e602052604090205460ff16156111fd5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e7420616c7265616479206164646564000000006044820152606401610696565b6001600160a01b03166000908152601e60205260409020805460ff19166001179055565b600061122d828461243a565b9392505050565b600061122d8284612476565b600061122d8284612498565b6001600160a01b0383166112725760405162461bcd60e51b81526004016106969061225e565b6001600160a01b0382166112985760405162461bcd60e51b8152600401610696906122a6565b6001600160a01b0383811660008181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6018546113129030906001600160a01b03168461124c565b60185460125460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0365010000000000909204821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561138657600080fd5b505af115801561139a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113bf91906124b0565b5050505050565b6001600160a01b03831661142a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610696565b6001600160a01b03821661148c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610696565b600081116114f55760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610696565b6001600160a01b0383166000908152601e602052604090205460ff161561155e5760405162461bcd60e51b815260206004820181905260248201527f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f546044820152606401610696565b60125462010000900460ff166115f9576001600160a01b0383166000908152601c602052604090205460ff16806115ad57506001600160a01b0382166000908152601c602052604090205460ff165b6115f95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67204973204e6f7420616374697665210000006044820152606401610696565b60125460ff610100909104161515600114801561162f57506001600160a01b0382166000908152601b602052604090205460ff16155b156116af5760015461164a8261164485610e7d565b90611240565b11156116af5760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060448201526d1dd85b1b195d081c995858da195960921b6064820152608401610696565b60125460ff161561178b576000546001600160a01b038481169116148015906116e657506000546001600160a01b03838116911614155b80156116fa57506001600160a01b03821615155b801561171457506016546001600160a01b03838116911614155b801561172e57506017546001600160a01b03838116911614155b1561178b5760005b60028110156117895760105461174c9082611240565b431415611777576001600160a01b0383166000908152601d60205260409020805460ff191660011790555b80611781816124de565b915050611736565b505b60006117a460035460055461124090919063ffffffff16565b905060006117b130610e7d565b600254601254919250821015906301000000900460ff161580156117df5750601254640100000000900460ff165b801561180057506017546000906117fe906001600160a01b0316610e7d565b115b801561180c5750600083115b801561183157506001600160a01b0385166000908152601c602052604090205460ff16155b801561185657506001600160a01b0386166000908152601c602052604090205460ff16155b801561186f57506017546001600160a01b038681169116145b80156118785750805b1561188557611885611aaf565b6001600160a01b0386166000908152601c602052604090205460ff16806118c457506001600160a01b0385166000908152601c602052604090205460ff165b156118f05760006006819055600781905560088190556118e8906116448180611240565b600955611a70565b6017546001600160a01b038781169116141561192e57600a546006819055600b546007819055600c5460088190556118e89290916116449190611240565b6017546001600160a01b03868116911614156119c457600d546006819055600e546007819055600f54600881905561196c9290916116449190611240565b6009556001600160a01b0386166000908152601d602052604090205460ff16801561199957504260115410155b156119bf57605f60068190556000600781905560088190556118e8916116449082611240565b611a70565b6001600160a01b0386166000908152601d602052604090205460ff1615806119ee57504260115411155b611a605760405162461bcd60e51b815260206004820152603960248201527f45524332303a20536e69706572732063616e206e6f74207472616e736665722060448201527f74696c6c2070656e616c74792074696d65206973206f766572000000000000006064820152608401610696565b6000600681905560078190556008555b611a7b868686611cdf565b505050505050565b60008184841115611aa75760405162461bcd60e51b815260040161069691906120a7565b505050900390565b6012805463ff000000191663010000001790556000611acd30610e7d565b90506000611aee60055461164460045460035461124090919063ffffffff16565b90506000611b08600260055461123490919063ffffffff16565b90506000611b168483611e80565b905047611b2282611e8c565b6000611b2e4783611e80565b90506000611b4b86610d436003548561122190919063ffffffff16565b90506000611b6887610d436004548661122190919063ffffffff16565b90506000611b8082611b7a8686611e80565b90611e80565b600060038190556004819055600581905560135460405192935090916001600160a01b039091169085908381818185875af1925050503d8060008114611be2576040519150601f19603f3d011682016040523d82523d6000602084013e611be7565b606091505b50506014546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611c37576040519150601f19603f3d011682016040523d82523d6000602084013e611c3c565b606091505b50909150508115801590611c4f57508715155b15611c5e57611c5e88836112fa565b6706f05b59d3b20000471115611cc6576015546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611cbb576040519150601f19603f3d011682016040523d82523d6000602084013e611cc0565b606091505b50909150505b50506012805463ff000000191690555050505050505050565b60095415611ddf576000611cf282611fed565b90506000611d008383611e80565b9050611d0b8261201b565b6001600160a01b0385166000908152601a602052604081208054859290611d339084906124f9565b90915550506001600160a01b0384166000908152601a602052604081208054839290611d60908490612498565b9091555050306000908152601a602052604081208054849290611d84908490612498565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dd091815260200190565b60405180910390a35050505050565b6001600160a01b0383166000908152601a602052604081208054839290611e079084906124f9565b90915550506001600160a01b0382166000908152601a602052604081208054839290611e34908490612498565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112ed91815260200190565b600061122d82846124f9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ec157611ec1612510565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611f1557600080fd5b505afa158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d9190612459565b81600181518110611f6057611f60612510565b6001600160a01b039283166020918202929092010152601854611f86913091168461124c565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fbf908590600090869030904290600401612526565b600060405180830381600087803b158015611fd957600080fd5b505af1158015611a7b573d6000803e3d6000fd5b60006107246064610d4361201460085461164460075460065461124090919063ffffffff16565b8590611221565b612036600954610d436006548461122190919063ffffffff16565b600360008282546120479190612498565b90915550506009546007546120629190610d43908490611221565b600460008282546120739190612498565b909155505060095460085461208e9190610d43908490611221565b6005600082825461209f9190612498565b909155505050565b600060208083528351808285015260005b818110156120d4578581018301518582016040015282016120b8565b818111156120e6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461211157600080fd5b50565b6000806040838503121561212757600080fd5b8235612132816120fc565b946020939093013593505050565b8035801515811461215057600080fd5b919050565b6000806040838503121561216857600080fd5b8235612173816120fc565b915061218160208401612140565b90509250929050565b60006020828403121561219c57600080fd5b61122d82612140565b6000602082840312156121b757600080fd5b813561122d816120fc565b6000806000606084860312156121d757600080fd5b83356121e2816120fc565b925060208401356121f2816120fc565b929592945050506040919091013590565b6000806040838503121561221657600080fd5b50508035926020909101359150565b6000806040838503121561223857600080fd5b8235612243816120fc565b91506020830135612253816120fc565b809150509250929050565b60208082526028908201527f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526026908201527f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561238257816000190482111561236857612368612331565b8085161561237557918102915b93841c939080029061234c565b509250929050565b60008261239957506001610724565b816123a657506000610724565b81600181146123bc57600281146123c6576123e2565b6001915050610724565b60ff8411156123d7576123d7612331565b50506001821b610724565b5060208310610133831016604e8410600b8410161715612405575081810a610724565b61240f8383612347565b806000190482111561242357612423612331565b029392505050565b600061122d60ff84168361238a565b600081600019048311821515161561245457612454612331565b500290565b60006020828403121561246b57600080fd5b815161122d816120fc565b60008261249357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124ab576124ab612331565b500190565b6000806000606084860312156124c557600080fd5b8351925060208401519150604084015190509250925092565b60006000198214156124f2576124f2612331565b5060010190565b60008282101561250b5761250b612331565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125765784516001600160a01b031683529383019391830191600101612551565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ceff12788413fd1c0cd05cd9d37f4a117b256184429e403eaff240f6dc722c3e64736f6c63430008090033
Deployed Bytecode Sourcemap
9392:14043:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10163:26;;;;;;;;;;-1:-1:-1;10163:26:0;;;;;;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;10163:26:0;;;;;;;;10026:24;;;;;;;;;;;;;;;;;;;352:25:1;;;340:2;325:18;10026:24:0;206:177:1;12382:94:0;;;;;;;;;;-1:-1:-1;12463:5:0;;;;;;;;;;;;-1:-1:-1;;;12463:5:0;;;;12382:94;;;;;;;:::i;13063:393::-;;;;;;;;;;-1:-1:-1;13063:393:0;;;;;:::i;:::-;;:::i;14349:957::-;;;;;;;;;;;;;:::i;12685:97::-;;;;;;;;;;;;;:::i;19403:145::-;;;;;;;;;;-1:-1:-1;19403:145:0;;;;;:::i;:::-;;:::i;:::-;;19911:105;;;;;;;;;;-1:-1:-1;19911:105:0;;;;;:::i;:::-;;:::i;10732:39::-;;;;;;;;;;-1:-1:-1;10732:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10057:27;;;;;;;;;;;;;;;;13999:344;;;;;;;;;;-1:-1:-1;13999:344:0;;;;;:::i;:::-;;:::i;19258:139::-;;;;;;;;;;-1:-1:-1;19258:139:0;;;;;:::i;:::-;;:::i;12586:93::-;;;;;;;;;;-1:-1:-1;12586:93:0;;11054:2;2971:36:1;;2959:2;2944:18;12586:93:0;2829:184:1;19083:169:0;;;;;;;;;;-1:-1:-1;19083:169:0;;;;;:::i;:::-;;:::i;19554:245::-;;;;;;;;;;-1:-1:-1;19554:245:0;;;;;:::i;:::-;;:::i;10778:36::-;;;;;;;;;;-1:-1:-1;10778:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18923:157;;;;;;;;;;-1:-1:-1;18923:157:0;;;;;:::i;:::-;;:::i;12788:118::-;;;;;;;;;;-1:-1:-1;12788:118:0;;;;;:::i;:::-;;:::i;4341:148::-;;;;;;;;;;;;;:::i;10125:31::-;;;;;;;;;;-1:-1:-1;10125:31:0;;;;;;;;;;;20022:110;;;;;;;;;;-1:-1:-1;20022:110:0;;;;;:::i;:::-;;:::i;18622:135::-;;;;;;;;;;;;;:::i;10430:24::-;;;;;;;;;;-1:-1:-1;10430:24:0;;;;-1:-1:-1;;;;;10430:24:0;;;;;;-1:-1:-1;;;;;3435:32:1;;;3417:51;;3405:2;3390:18;10430:24:0;3271:203:1;4117:87:0;;;;;;;;;;-1:-1:-1;4163:7:0;4190:6;-1:-1:-1;;;;;4190:6:0;4117:87;;10461:37;;;;;;;;;;-1:-1:-1;10461:37:0;;;;-1:-1:-1;;;;;10461:37:0;;;12482:98;;;;;;;;;;-1:-1:-1;12565:7:0;;;;;;;;;;;;-1:-1:-1;;;12565:7:0;;;;12482:98;;13817:176;;;;;;;;;;-1:-1:-1;13817:176:0;;;;;:::i;:::-;;:::i;19805:100::-;;;;;;;;;;-1:-1:-1;19805:100:0;;;;;:::i;:::-;;:::i;12912:145::-;;;;;;;;;;-1:-1:-1;12912:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;13022:18:0;;;12995:7;13022:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12912:145;4495:249;;;;;;;;;;-1:-1:-1;4495:249:0;;;;;:::i;:::-;;:::i;18459:157::-;;;;;;;;;;;;;:::i;10091:27::-;;;;;;;;;;-1:-1:-1;10091:27:0;;;;;;;;18763:157;;;;;;;;;;-1:-1:-1;18763:157:0;;;;;:::i;:::-;;:::i;13063:393::-;13138:4;3776:10;13155:79;;;;-1:-1:-1;;;13155:79:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;13253:21:0;;13245:72;;;;-1:-1:-1;;;13245:72:0;;;;;;;:::i;:::-;3776:10;13328:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13328:34:0;;;;;;;;;;;;:43;;;13387:39;352:25:1;;;13328:34:0;;3776:10;13387:39;;325:18:1;13387:39:0;;;;;;;-1:-1:-1;13444:4:0;13063:393;;;;;:::o;14349:957::-;14393:4;4190:6;;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;14418:6:::1;::::0;;;::::1;;;14417:7;14409:49;;;::::0;-1:-1:-1;;;14409:49:0;;5530:2:1;14409:49:0::1;::::0;::::1;5512:21:1::0;5569:2;5549:18;;;5542:30;5608:31;5588:18;;;5581:59;5657:18;;14409:49:0::1;5328:353:1::0;14409:49:0::1;14481:12;14469:9;:24:::0;14519:27:::1;:15;14539:6;14519:19;:27::i;:::-;14504:12;:42:::0;14664:11:::1;:26:::0;;-1:-1:-1;;;;;;14664:26:0::1;14610:42;14664:26:::0;;::::1;::::0;;;14557:31:::1;14701:33:::0;;;:11:::1;:33;::::0;;:40;;-1:-1:-1;;14701:40:0::1;14664:26:::0;14701:40:::1;::::0;;14752:61:::1;14776:4;14610:42:::0;11104:12:::1;11054:2;11104;:12;:::i;:::-;11098:18;::::0;:3:::1;:18;:::i;:::-;14752:15;:61::i;:::-;14854:12;-1:-1:-1::0;;;;;14854:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14836:52:0::1;;14897:4;14904:12;-1:-1:-1::0;;;;;14904:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14836:88;::::0;-1:-1:-1;;;;;;14836:88:0::1;::::0;;;;;;-1:-1:-1;;;;;7860:15:1;;;14836:88:0::1;::::0;::::1;7842:34:1::0;7912:15;;7892:18;;;7885:43;7777:18;;14836:88:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14824:9;:100:::0;;-1:-1:-1;;;;;;14824:100:0::1;-1:-1:-1::0;;;;;14824:100:0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;14935:31:0;;;:11:::1;:31;::::0;;;;:38;;-1:-1:-1;;14935:38:0::1;-1:-1:-1::0;14935:38:0::1;::::0;;14992:21:::1;14984:84;;;::::0;-1:-1:-1;;;14984:84:0;;8141:2:1;14984:84:0::1;::::0;::::1;8123:21:1::0;8180:2;8160:18;;;8153:30;8219:34;8199:18;;;8192:62;-1:-1:-1;;;8270:18:1;;;8263:44;8324:19;;14984:84:0::1;7939:410:1::0;14984:84:0::1;15079:61;15092:24;15110:4;15092:9;:24::i;:::-;15118:21;15079:12;:61::i;:::-;15171:4;::::0;18361:16;:37;;-1:-1:-1;;;;;;18361:37:0;;-1:-1:-1;;;;;15171:4:0;;::::1;18361:37:::0;;;;;;;;;;18421:16;;;-1:-1:-1;18409:29:0;;;:11;:29;;;;;:36;;-1:-1:-1;;18409:36:0;-1:-1:-1;18409:36:0;;;-1:-1:-1;;15187:11:0::1;:18:::0;;-1:-1:-1;;15263:13:0;;;;;-1:-1:-1;;14349:957:0:o;12685:97::-;12740:7;11104:12;11054:2;11104;:12;:::i;:::-;11098:18;;:3;:18;:::i;:::-;12760:14;;12685:97;:::o;19403:145::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19497:29:0;;;::::1;;::::0;;;:11:::1;:29;::::0;;;;:43;;-1:-1:-1;;19497:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19403:145::o;19911:105::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;19983:11:::1;:25:::0;;;::::1;;;;-1:-1:-1::0;;19983:25:0;;::::1;::::0;;;::::1;::::0;;19911:105::o;13999:344::-;14097:4;14114:43;14131:6;14139:9;14150:6;14114:16;:43::i;:::-;14168:145;14184:6;3776:10;14214:98;14252:6;14214:98;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14214:19:0;;;;;;:11;:19;;;;;;;;3776:10;14214:33;;;;;;;;;;:37;:98::i;14168:145::-;-1:-1:-1;14331:4:0;13999:344;;;;;:::o;19258:139::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19346:29:0;;;::::1;;::::0;;;:11:::1;:29;::::0;;;;:43;;-1:-1:-1;;19346:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19258:139::o;19083:169::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19160:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;::::1;;19152:57;;;::::0;-1:-1:-1;;;19152:57:0;;8556:2:1;19152:57:0::1;::::0;::::1;8538:21:1::0;8595:2;8575:18;;;8568:30;8634;8614:18;;;8607:58;8682:18;;19152:57:0::1;8354:352:1::0;19152:57:0::1;-1:-1:-1::0;;;;;19220:16:0::1;19239:5;19220:16:::0;;;:7:::1;:16;::::0;;;;:24;;-1:-1:-1;;19220:24:0::1;::::0;;19083:169::o;19554:245::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;19656:33:::1;19681:7:::0;19656:20:::1;19668:7:::0;11104:12:::1;11054:2;11104;:12;:::i;:::-;11098:18;::::0;:3:::1;:18;:::i;:::-;19656:11:::0;::::1;:20::i;:::-;:24:::0;::::1;:33::i;:::-;19643:10;:46:::0;19721:23:::1;19740:3;19721:14;19733:1;11104:12;11054:2;11104;:12;:::i;19721:23::-;19708:10;;:36;;19700:91;;;::::0;-1:-1:-1;;;19700:91:0;;8913:2:1;19700:91:0::1;::::0;::::1;8895:21:1::0;8952:2;8932:18;;;8925:30;8991:34;8971:18;;;8964:62;-1:-1:-1;;;9042:18:1;;;9035:40;9092:19;;19700:91:0::1;8711:406:1::0;19700:91:0::1;19554:245:::0;;:::o;18923:157::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18997:13:0;::::1;;::::0;;;:4:::1;:13;::::0;;;;;::::1;;18989:51;;;::::0;-1:-1:-1;;;18989:51:0;;9324:2:1;18989:51:0::1;::::0;::::1;9306:21:1::0;9363:2;9343:18;;;9336:30;9402:27;9382:18;;;9375:55;9447:18;;18989:51:0::1;9122:349:1::0;18989:51:0::1;-1:-1:-1::0;;;;;19051:13:0::1;19067:5;19051:13:::0;;;:4:::1;:13;::::0;;;;:21;;-1:-1:-1;;19051:21:0::1;::::0;;18923:157::o;12788:118::-;-1:-1:-1;;;;;12881:17:0;12854:7;12881:17;;;:8;:17;;;;;;;12788:118::o;4341:148::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;4448:1:::1;4432:6:::0;;4411:40:::1;::::0;-1:-1:-1;;;;;4432:6:0;;::::1;::::0;4411:40:::1;::::0;4448:1;;4411:40:::1;4479:1;4462:19:::0;;-1:-1:-1;;;;;;4462:19:0::1;::::0;;4341:148::o;20022:110::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;20106:4:::1;:18:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;20106:18:0;;::::1;::::0;;;::::1;::::0;;20022:110::o;18622:135::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;18683:66:::1;18708:4;18715:7;4163::::0;4190:6;-1:-1:-1;;;;;4190:6:0;;4117:87;18715:7:::1;18724:24;18742:4;18724:9;:24::i;:::-;18683:16;:66::i;:::-;18622:135::o:0;13817:176::-;13897:4;13914:49;3776:10;13945:9;13956:6;13914:16;:49::i;:::-;-1:-1:-1;13981:4:0;13817:176;;;;:::o;19805:100::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;19876:7:::1;:21:::0;;-1:-1:-1;;19876:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19805:100::o;4495:249::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4584:22:0;::::1;4576:78;;;::::0;-1:-1:-1;;;4576:78:0;;9678:2:1;4576:78:0::1;::::0;::::1;9660:21:1::0;9717:2;9697:18;;;9690:30;9756:34;9736:18;;;9729:62;-1:-1:-1;;;9807:18:1;;;9800:41;9858:19;;4576:78:0::1;9476:407:1::0;4576:78:0::1;4691:6;::::0;;4670:38:::1;::::0;-1:-1:-1;;;;;4670:38:0;;::::1;::::0;4691:6;::::1;::::0;4670:38:::1;::::0;::::1;4719:6;:17:::0;;-1:-1:-1;;;;;;4719:17:0::1;-1:-1:-1::0;;;;;4719:17:0;;;::::1;::::0;;;::::1;::::0;;4495:249::o;18459:157::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;18517:12:::1;4190:6:::0;;18553:55:::1;::::0;-1:-1:-1;;;;;4190:6:0;;;;18582:21:::1;::::0;18517:12;18553:55;18517:12;18553:55;18582:21;4190:6;18553:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;18459:157:0:o;18763:::-;4163:7;4190:6;-1:-1:-1;;;;;4190:6:0;3776:10;4250:23;4242:73;;;;-1:-1:-1;;;4242:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18835:13:0;::::1;;::::0;;;:4:::1;:13;::::0;;;;;::::1;;18834:14;18826:55;;;::::0;-1:-1:-1;;;18826:55:0;;10300:2:1;18826:55:0::1;::::0;::::1;10282:21:1::0;10339:2;10319:18;;;10312:30;10378;10358:18;;;10351:58;10426:18;;18826:55:0::1;10098:352:1::0;18826:55:0::1;-1:-1:-1::0;;;;;18892:13:0::1;;::::0;;;:4:::1;:13;::::0;;;;:20;;-1:-1:-1;;18892:20:0::1;18908:4;18892:20;::::0;;18763:157::o;1919:98::-;1977:7;2004:5;2008:1;2004;:5;:::i;:::-;1997:12;1919:98;-1:-1:-1;;;1919:98:0:o;2023:::-;2081:7;2108:5;2112:1;2108;:5;:::i;1711:98::-;1769:7;1796:5;1800:1;1796;:5;:::i;13462:349::-;-1:-1:-1;;;;;13561:19:0;;13553:72;;;;-1:-1:-1;;;13553:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13644:21:0;;13636:72;;;;-1:-1:-1;;;13636:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13719:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13771:32;;352:25:1;;;13771:32:0;;325:18:1;13771:32:0;;;;;;;;13462:349;;;:::o;21963:369::-;22084:11;;22045:65;;22069:4;;-1:-1:-1;;;;;22084:11:0;22098;22045:15;:65::i;:::-;22121:11;;22267:16;;22121:203;;-1:-1:-1;;;22121:203:0;;22189:4;22121:203;;;11159:34:1;11209:18;;;11202:34;;;-1:-1:-1;11252:18:1;;;11245:34;;;11295:18;;;11288:34;-1:-1:-1;;;;;22267:16:0;;;;;;11338:19:1;;;11331:44;22298:15:0;11391:19:1;;;11384:35;22121:11:0;;;:27;;22156:9;;11093:19:1;;22121:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21963:369;;:::o;15312:2975::-;-1:-1:-1;;;;;15408:18:0;;15400:68;;;;-1:-1:-1;;;15400:68:0;;11943:2:1;15400:68:0;;;11925:21:1;11982:2;11962:18;;;11955:30;12021:34;12001:18;;;11994:62;-1:-1:-1;;;12072:18:1;;;12065:35;12117:19;;15400:68:0;11741:401:1;15400:68:0;-1:-1:-1;;;;;15487:16:0;;15479:64;;;;-1:-1:-1;;;15479:64:0;;12349:2:1;15479:64:0;;;12331:21:1;12388:2;12368:18;;;12361:30;12427:34;12407:18;;;12400:62;-1:-1:-1;;;12478:18:1;;;12471:33;12521:19;;15479:64:0;12147:399:1;15479:64:0;15571:1;15562:6;:10;15554:71;;;;-1:-1:-1;;;15554:71:0;;12753:2:1;15554:71:0;;;12735:21:1;12792:2;12772:18;;;12765:30;12831:34;12811:18;;;12804:62;-1:-1:-1;;;12882:18:1;;;12875:46;12938:19;;15554:71:0;12551:412:1;15554:71:0;-1:-1:-1;;;;;15645:10:0;;;;;;:4;:10;;;;;;;;15644:11;15636:56;;;;-1:-1:-1;;;15636:56:0;;13170:2:1;15636:56:0;;;13152:21:1;;;13189:18;;;13182:30;13248:34;13228:18;;;13221:62;13300:18;;15636:56:0;12968:356:1;15636:56:0;15707:6;;;;;;;15703:116;;-1:-1:-1;;;;;15737:17:0;;;;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;15758:15:0;;;;;;:11;:15;;;;;;;;15737:36;15729:78;;;;-1:-1:-1;;;15729:78:0;;13531:2:1;15729:78:0;;;13513:21:1;13570:2;13550:18;;;13543:30;13609:31;13589:18;;;13582:59;13658:18;;15729:78:0;13329:353:1;15729:78:0;15833:11;;;;;;;;:19;;:11;:19;:40;;;;-1:-1:-1;;;;;;15858:15:0;;;;;;:11;:15;;;;;;;;15856:17;15833:40;15829:171;;;15927:10;;15898:25;15916:6;15898:13;15908:2;15898:9;:13::i;:::-;:17;;:25::i;:::-;:39;;15890:98;;;;-1:-1:-1;;;15890:98:0;;13889:2:1;15890:98:0;;;13871:21:1;13928:2;13908:18;;;13901:30;13967:34;13947:18;;;13940:62;-1:-1:-1;;;14018:18:1;;;14011:44;14072:19;;15890:98:0;13687:410:1;15890:98:0;16013:7;;;;16010:339;;;4163:7;4190:6;-1:-1:-1;;;;;16040:15:0;;;4190:6;;16040:15;;;;:32;;-1:-1:-1;4163:7:0;4190:6;-1:-1:-1;;;;;16059:13:0;;;4190:6;;16059:13;;16040:32;:52;;;;-1:-1:-1;;;;;;16076:16:0;;;;16040:52;:66;;;;-1:-1:-1;16102:4:0;;-1:-1:-1;;;;;16096:10:0;;;16102:4;;16096:10;;16040:66;:85;;;;-1:-1:-1;16116:9:0;;-1:-1:-1;;;;;16110:15:0;;;16116:9;;16110:15;;16040:85;16036:302;;;16151:6;16146:177;16167:1;16163;:5;16146:177;;;16217:9;;:16;;16231:1;16217:13;:16::i;:::-;16201:12;:32;16198:106;;;-1:-1:-1;;;;;16262:11:0;;;;;;:7;:11;;;;;:18;;-1:-1:-1;;16262:18:0;16276:4;16262:18;;;16198:106;16170:3;;;;:::i;:::-;;;;16146:177;;;;16036:302;16368:25;16396:36;16416:15;;16396;;:19;;:36;;;;:::i;:::-;16368:64;;16443:28;16474:24;16492:4;16474:9;:24::i;:::-;16564:6;;16586:4;;16443:55;;-1:-1:-1;16540:30:0;;;;16586:4;;;;;16585:5;:26;;;;-1:-1:-1;16607:4:0;;;;;;;16585:26;:67;;;;-1:-1:-1;16638:9:0;;16651:1;;16628:20;;-1:-1:-1;;;;;16638:9:0;16628;:20::i;:::-;:24;16585:67;:105;;;;;16689:1;16669:17;:21;16585:105;:138;;;;-1:-1:-1;;;;;;16708:15:0;;;;;;:11;:15;;;;;;;;16707:16;16585:138;:173;;;;-1:-1:-1;;;;;;16741:17:0;;;;;;:11;:17;;;;;;;;16740:18;16585:173;:205;;;;-1:-1:-1;16781:9:0;;-1:-1:-1;;;;;16775:15:0;;;16781:9;;16775:15;16585:205;:245;;;;;16807:23;16585:245;16581:296;;;16847:14;:12;:14::i;:::-;-1:-1:-1;;;;;16891:17:0;;;;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;16912:15:0;;;;;;:11;:15;;;;;;;;16891:36;16887:1351;;;16959:1;16944:12;:16;;;16975:11;:15;;;17005:12;:16;;;17047:47;;:29;16959:1;;17047:16;:29::i;:47::-;17036:8;:58;16887:1351;;;17139:9;;-1:-1:-1;;;;;17131:17:0;;;17139:9;;17131:17;17127:1100;;;17184:15;;17169:12;:30;;;17232:14;;17218:11;:28;;;17280:15;;17265:12;:30;;;17325:56;;17280:15;;17325:35;;17184:15;17325:19;:35::i;17127:1100::-;17412:9;;-1:-1:-1;;;;;17406:15:0;;;17412:9;;17406:15;17402:825;;;17457:16;;17442:12;:31;;;17506:15;;-1:-1:-1;17492:29:0;;;17555:16;;17540:12;:31;;;17601:59;;17555:16;;17601:37;;17457:16;17601:20;:37::i;:59::-;17590:8;:70;-1:-1:-1;;;;;17682:13:0;;;;;;:7;:13;;;;;;;;:48;;;;;17715:15;17699:12;;:31;;17682:48;17679:270;;;17769:2;17754:12;:17;;;17808:1;17794:11;:15;;;17832:12;:16;;;17882:47;;:29;;17808:1;17882:16;:29::i;17679:270::-;17402:825;;;-1:-1:-1;;;;;17997:13:0;;;;;;:7;:13;;;;;;;;17996:14;;:49;;;18030:15;18014:12;;:31;;17996:49;17988:119;;;;-1:-1:-1;;;17988:119:0;;14444:2:1;17988:119:0;;;14426:21:1;14483:2;14463:18;;;14456:30;14522:34;14502:18;;;14495:62;14593:27;14573:18;;;14566:55;14638:19;;17988:119:0;14242:421:1;17988:119:0;18141:1;18126:12;:16;;;18161:11;:15;;;18195:12;:16;17402:825;18248:31;18262:4;18268:2;18272:6;18248:13;:31::i;:::-;15389:2898;;;15312:2975;;;:::o;2231:206::-;2317:7;2378:12;2370:6;;;;2362:29;;;;-1:-1:-1;;;2362:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2413:5:0;;;2231:206::o;20140:1344::-;10855:4;:11;;-1:-1:-1;;10855:11:0;;;;;;20222:24:::1;20240:4;20222:9;:24::i;:::-;20196:50;;20257:25;20285:56;20325:15;;20285:35;20305:14;;20285:15;;:19;;:35;;;;:::i;:56::-;20257:84;;20352:27;20382:22;20402:1;20382:15;;:19;;:22;;;;:::i;:::-;20352:52:::0;-1:-1:-1;20415:26:0::1;20444:40;:15:::0;20352:52;20444:19:::1;:40::i;:::-;20415:69:::0;-1:-1:-1;20523:21:0::1;20555:36;20415:69:::0;20555:16:::1;:36::i;:::-;20603:18;20624:44;:21;20650:17:::0;20624:25:::1;:44::i;:::-;20603:65;;20679:23;20705:54;20741:17;20705:31;20720:15;;20705:10;:14;;:31;;;;:::i;:54::-;20679:80;;20770:22;20795:53;20830:17;20795:30;20810:14;;20795:10;:14;;:30;;;;:::i;:53::-;20770:78:::0;-1:-1:-1;20859:23:0::1;20885:51;20770:78:::0;20885:31:::1;:10:::0;20900:15;20885:14:::1;:31::i;:::-;:35:::0;::::1;:51::i;:::-;20965:1;20947:15;:19:::0;;;20977:14:::1;:18:::0;;;21006:15:::1;:19:::0;;;21062:16:::1;::::0;21054:58:::1;::::0;20859:77;;-1:-1:-1;20965:1:0;;-1:-1:-1;;;;;21062:16:0;;::::1;::::0;21092:15;;20965:1;21054:58;20965:1;21054:58;21092:15;21062:16;21054:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;21144:15:0::1;::::0;21136:56:::1;::::0;21036:76;;-1:-1:-1;;;;;;21144:15:0::1;::::0;21173:14;;21136:56:::1;::::0;;;21173:14;21144:15;21136:56:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;21123:69:0;;-1:-1:-1;;21206:20:0;;;::::1;::::0;:48:::1;;-1:-1:-1::0;21230:24:0;;::::1;21206:48;21203:130;;;21271:50;21284:19;21305:15;21271:12;:50::i;:::-;21370:8;21346:21;:32;21343:134;;;21415:10;::::0;21407:58:::1;::::0;-1:-1:-1;;;;;21415:10:0;;::::1;::::0;21439:21:::1;::::0;21407:58:::1;::::0;;;21439:21;21415:10;21407:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;21394:71:0;;-1:-1:-1;;21343:134:0::1;-1:-1:-1::0;;10889:4:0;:12;;-1:-1:-1;;10889:12:0;;;-1:-1:-1;;;;;;;;20140:1344:0:o;22785:647::-;22880:8;;:13;22877:548;;22909:17;22929:20;22942:6;22929:12;:20::i;:::-;22909:40;-1:-1:-1;22964:22:0;22989:21;:6;22909:40;22989:10;:21::i;:::-;22964:46;;23025:25;23040:9;23025:14;:25::i;:::-;-1:-1:-1;;;;;23065:16:0;;;;;;:8;:16;;;;;:26;;23085:6;;23065:16;:26;;23085:6;;23065:26;:::i;:::-;;;;-1:-1:-1;;;;;;;23106:19:0;;;;;;:8;:19;;;;;:37;;23129:14;;23106:19;:37;;23129:14;;23106:37;:::i;:::-;;;;-1:-1:-1;;23175:4:0;23158:23;;;;:8;:23;;;;;:36;;23185:9;;23158:23;:36;;23185:9;;23158:36;:::i;:::-;;;;;;;;23231:9;-1:-1:-1;;;;;23214:43:0;23223:6;-1:-1:-1;;;;;23214:43:0;;23242:14;23214:43;;;;352:25:1;;340:2;325:18;;206:177;23214:43:0;;;;;;;;22894:375;;22785:647;;;:::o;22877:548::-;-1:-1:-1;;;;;23288:16:0;;;;;;:8;:16;;;;;:26;;23308:6;;23288:16;:26;;23308:6;;23288:26;:::i;:::-;;;;-1:-1:-1;;;;;;;23329:19:0;;;;;;:8;:19;;;;;:29;;23352:6;;23329:19;:29;;23352:6;;23329:29;:::i;:::-;;;;;;;;23395:9;-1:-1:-1;;;;;23378:35:0;23387:6;-1:-1:-1;;;;;23378:35:0;;23406:6;23378:35;;;;352:25:1;;340:2;325:18;;206:177;1815:98:0;1873:7;1900:5;1904:1;1900;:5;:::i;21490:467::-;21581:16;;;21595:1;21581:16;;;;;;;;21557:21;;21581:16;;;;;;;;;;-1:-1:-1;21581:16:0;21557:40;;21626:4;21608;21613:1;21608:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21608:23:0;;;:7;;;;;;;;;;:23;;;;21652:11;;:18;;;-1:-1:-1;;;21652:18:0;;;;:11;;;;;:16;;:18;;;;;21608:7;;21652:18;;;;;:11;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21642:4;21647:1;21642:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21642:28:0;;;:7;;;;;;;;;:28;21720:11;;21681:65;;21705:4;;21720:11;21734;21681:15;:65::i;:::-;21757:11;;:192;;-1:-1:-1;;;21757:192:0;;-1:-1:-1;;;;;21757:11:0;;;;:62;;:192;;21834:11;;21757;;21876:4;;21903;;21923:15;;21757:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22338:164;22399:7;22426:68;22490:3;22426:59;22437:47;22471:12;;22437:29;22454:11;;22437:12;;:16;;:29;;;;:::i;:47::-;22426:6;;:10;:59::i;22508:271::-;22590:41;22622:8;;22590:27;22604:12;;22590:9;:13;;:27;;;;:::i;:41::-;22571:15;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;22691:8:0;;22674:11;;22660:40;;22691:8;22660:26;;:9;;:13;:26::i;:40::-;22642:14;;:58;;;;;;;:::i;:::-;;;;-1:-1:-1;;22762:8:0;;22744:12;;22730:41;;22762:8;22730:27;;:9;;:13;:27::i;:41::-;22711:15;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;;22508:271:0:o;388:597:1:-;500:4;529:2;558;547:9;540:21;590:6;584:13;633:6;628:2;617:9;613:18;606:34;658:1;668:140;682:6;679:1;676:13;668:140;;;777:14;;;773:23;;767:30;743:17;;;762:2;739:26;732:66;697:10;;668:140;;;826:6;823:1;820:13;817:91;;;896:1;891:2;882:6;871:9;867:22;863:31;856:42;817:91;-1:-1:-1;969:2:1;948:15;-1:-1:-1;;944:29:1;929:45;;;;976:2;925:54;;388:597;-1:-1:-1;;;388:597:1:o;990:131::-;-1:-1:-1;;;;;1065:31:1;;1055:42;;1045:70;;1111:1;1108;1101:12;1045:70;990:131;:::o;1126:315::-;1194:6;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:31;1354:5;1329:31;:::i;:::-;1379:5;1431:2;1416:18;;;;1403:32;;-1:-1:-1;;;1126:315:1:o;1446:160::-;1511:20;;1567:13;;1560:21;1550:32;;1540:60;;1596:1;1593;1586:12;1540:60;1446:160;;;:::o;1611:315::-;1676:6;1684;1737:2;1725:9;1716:7;1712:23;1708:32;1705:52;;;1753:1;1750;1743:12;1705:52;1792:9;1779:23;1811:31;1836:5;1811:31;:::i;:::-;1861:5;-1:-1:-1;1885:35:1;1916:2;1901:18;;1885:35;:::i;:::-;1875:45;;1611:315;;;;;:::o;1931:180::-;1987:6;2040:2;2028:9;2019:7;2015:23;2011:32;2008:52;;;2056:1;2053;2046:12;2008:52;2079:26;2095:9;2079:26;:::i;2116:247::-;2175:6;2228:2;2216:9;2207:7;2203:23;2199:32;2196:52;;;2244:1;2241;2234:12;2196:52;2283:9;2270:23;2302:31;2327:5;2302:31;:::i;2368:456::-;2445:6;2453;2461;2514:2;2502:9;2493:7;2489:23;2485:32;2482:52;;;2530:1;2527;2520:12;2482:52;2569:9;2556:23;2588:31;2613:5;2588:31;:::i;:::-;2638:5;-1:-1:-1;2695:2:1;2680:18;;2667:32;2708:33;2667:32;2708:33;:::i;:::-;2368:456;;2760:7;;-1:-1:-1;;;2814:2:1;2799:18;;;;2786:32;;2368:456::o;3018:248::-;3086:6;3094;3147:2;3135:9;3126:7;3122:23;3118:32;3115:52;;;3163:1;3160;3153:12;3115:52;-1:-1:-1;;3186:23:1;;;3256:2;3241:18;;;3228:32;;-1:-1:-1;3018:248:1:o;3713:388::-;3781:6;3789;3842:2;3830:9;3821:7;3817:23;3813:32;3810:52;;;3858:1;3855;3848:12;3810:52;3897:9;3884:23;3916:31;3941:5;3916:31;:::i;:::-;3966:5;-1:-1:-1;4023:2:1;4008:18;;3995:32;4036:33;3995:32;4036:33;:::i;:::-;4088:7;4078:17;;;3713:388;;;;;:::o;4106:404::-;4308:2;4290:21;;;4347:2;4327:18;;;4320:30;4386:34;4381:2;4366:18;;4359:62;-1:-1:-1;;;4452:2:1;4437:18;;4430:38;4500:3;4485:19;;4106:404::o;4515:402::-;4717:2;4699:21;;;4756:2;4736:18;;;4729:30;4795:34;4790:2;4775:18;;4768:62;-1:-1:-1;;;4861:2:1;4846:18;;4839:36;4907:3;4892:19;;4515:402::o;4922:401::-;5124:2;5106:21;;;5163:2;5143:18;;;5136:30;5202:34;5197:2;5182:18;;5175:62;-1:-1:-1;;;5268:2:1;5253:18;;5246:35;5313:3;5298:19;;4922:401::o;5686:127::-;5747:10;5742:3;5738:20;5735:1;5728:31;5778:4;5775:1;5768:15;5802:4;5799:1;5792:15;5818:422;5907:1;5950:5;5907:1;5964:270;5985:7;5975:8;5972:21;5964:270;;;6044:4;6040:1;6036:6;6032:17;6026:4;6023:27;6020:53;;;6053:18;;:::i;:::-;6103:7;6093:8;6089:22;6086:55;;;6123:16;;;;6086:55;6202:22;;;;6162:15;;;;5964:270;;;5968:3;5818:422;;;;;:::o;6245:806::-;6294:5;6324:8;6314:80;;-1:-1:-1;6365:1:1;6379:5;;6314:80;6413:4;6403:76;;-1:-1:-1;6450:1:1;6464:5;;6403:76;6495:4;6513:1;6508:59;;;;6581:1;6576:130;;;;6488:218;;6508:59;6538:1;6529:10;;6552:5;;;6576:130;6613:3;6603:8;6600:17;6597:43;;;6620:18;;:::i;:::-;-1:-1:-1;;6676:1:1;6662:16;;6691:5;;6488:218;;6790:2;6780:8;6777:16;6771:3;6765:4;6762:13;6758:36;6752:2;6742:8;6739:16;6734:2;6728:4;6725:12;6721:35;6718:77;6715:159;;;-1:-1:-1;6827:19:1;;;6859:5;;6715:159;6906:34;6931:8;6925:4;6906:34;:::i;:::-;6976:6;6972:1;6968:6;6964:19;6955:7;6952:32;6949:58;;;6987:18;;:::i;:::-;7025:20;;6245:806;-1:-1:-1;;;6245:806:1:o;7056:140::-;7114:5;7143:47;7184:4;7174:8;7170:19;7164:4;7143:47;:::i;7201:168::-;7241:7;7307:1;7303;7299:6;7295:14;7292:1;7289:21;7284:1;7277:9;7270:17;7266:45;7263:71;;;7314:18;;:::i;:::-;-1:-1:-1;7354:9:1;;7201:168::o;7374:251::-;7444:6;7497:2;7485:9;7476:7;7472:23;7468:32;7465:52;;;7513:1;7510;7503:12;7465:52;7545:9;7539:16;7564:31;7589:5;7564:31;:::i;10455:217::-;10495:1;10521;10511:132;;10565:10;10560:3;10556:20;10553:1;10546:31;10600:4;10597:1;10590:15;10628:4;10625:1;10618:15;10511:132;-1:-1:-1;10657:9:1;;10455:217::o;10677:128::-;10717:3;10748:1;10744:6;10741:1;10738:13;10735:39;;;10754:18;;:::i;:::-;-1:-1:-1;10790:9:1;;10677:128::o;11430:306::-;11518:6;11526;11534;11587:2;11575:9;11566:7;11562:23;11558:32;11555:52;;;11603:1;11600;11593:12;11555:52;11632:9;11626:16;11616:26;;11682:2;11671:9;11667:18;11661:25;11651:35;;11726:2;11715:9;11711:18;11705:25;11695:35;;11430:306;;;;;:::o;14102:135::-;14141:3;-1:-1:-1;;14162:17:1;;14159:43;;;14182:18;;:::i;:::-;-1:-1:-1;14229:1:1;14218:13;;14102:135::o;14668:125::-;14708:4;14736:1;14733;14730:8;14727:34;;;14741:18;;:::i;:::-;-1:-1:-1;14778:9:1;;14668:125::o;14930:127::-;14991:10;14986:3;14982:20;14979:1;14972:31;15022:4;15019:1;15012:15;15046:4;15043:1;15036:15;15062:980;15324:4;15372:3;15361:9;15357:19;15403:6;15392:9;15385:25;15429:2;15467:6;15462:2;15451:9;15447:18;15440:34;15510:3;15505:2;15494:9;15490:18;15483:31;15534:6;15569;15563:13;15600:6;15592;15585:22;15638:3;15627:9;15623:19;15616:26;;15677:2;15669:6;15665:15;15651:29;;15698:1;15708:195;15722:6;15719:1;15716:13;15708:195;;;15787:13;;-1:-1:-1;;;;;15783:39:1;15771:52;;15878:15;;;;15843:12;;;;15819:1;15737:9;15708:195;;;-1:-1:-1;;;;;;;15959:32:1;;;;15954:2;15939:18;;15932:60;-1:-1:-1;;;16023:3:1;16008:19;16001:35;15920:3;15062:980;-1:-1:-1;;;15062:980:1:o
Swarm Source
ipfs://ceff12788413fd1c0cd05cd9d37f4a117b256184429e403eaff240f6dc722c3e
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.