ERC-20
Overview
Max Total Supply
100,000,000 JUDGE
Holders
1,018
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
175,268.295950588301749848 JUDGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
JudgeAI
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-31 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; pragma experimental ABIEncoderV2; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract JudgeAI is ERC20, Ownable { IUniswapV2Router02 public immutable _uniswapV2Router; address private uniswapV2Pair; address private marketingWallet; address private constant deadAddress = address(0xdead); bool private swapping; string private constant _name = "Judge AI"; string private constant _symbol = "JUDGE"; uint256 public initialTotalSupply = 100_000_000 * 1e18; uint256 public maxTransactionAmount = initialTotalSupply / 100; uint256 public maxWallet = initialTotalSupply / 100; uint256 public swapTokensAtAmount = 5000 * 1e18; uint256 private blockStart; uint256 private blockAdd; uint256 private blockSnipe; bool public tradingOpen = false; bool public swapEnabled = false; bool public limitsInEffect = true; mapping(uint256 => uint256) private swapInBlock; uint256 public BuyFee = 20; uint256 public SellFee = 30; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor(address wallet) ERC20(_name, _symbol) { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(_uniswapV2Router), true); marketingWallet = payable(wallet); excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(wallet), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(wallet), true); excludeFromMaxTransaction(address(0xdead), true); _mint(_msgSender(), initialTotalSupply * 68 / 100); _mint(marketingWallet, initialTotalSupply * 32 / 100); } receive() external payable {} function openTrading(uint256 openingFee, uint256 maxOpen, uint256 _blocksnipe) external onlyOwner() { require(!tradingOpen,"Trading is already open"); BuyFee = openingFee; SellFee = openingFee; maxTransactionAmount = initialTotalSupply / maxOpen; maxWallet = initialTotalSupply / maxOpen; blockSnipe = _blocksnipe; blockStart = block.number; swapEnabled = true; tradingOpen = true; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 blockNum = block.number; if (limitsInEffect) { if(blockNum > (blockStart + blockSnipe)) { BuyFee = 40; SellFee = 40; maxTransactionAmount = initialTotalSupply / 200; maxWallet = initialTotalSupply / 100; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] && (swapInBlock[blockNum] < 3)) { swapping = true; swapBack(); ++swapInBlock[blockNum]; swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount * SellFee / 100; } else { fees = amount * BuyFee / 100; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, marketingWallet, block.timestamp ); } function removeLimits() external onlyOwner { limitsInEffect = false; } function clearStuckEth() external { require(_msgSender() == marketingWallet); require(address(this).balance > 0, "Token: no ETH to clear"); payable(msg.sender).transfer(address(this).balance); } function clearStuckTokens(uint256 amount) external { require(_msgSender() == marketingWallet); swapTokensForEth(amount * (10 ** 18)); } function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { require(_buyFee <= 30 && _sellFee <= 30, "Fees cannot exceed 30%"); BuyFee = _buyFee; SellFee = _sellFee; } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { marketingWallet = newMarketingWallet; } function setSwapTokensAtAmount(uint256 _amount) external onlyOwner { swapTokensAtAmount = _amount * (10 ** 18); } function airdrop(address[] calldata addresses, uint256[] calldata amounts) external { require(addresses.length > 0 && amounts.length == addresses.length); address from = msg.sender; for (uint i = 0; i < addresses.length; i++) { _transfer(from, addresses[i], amounts[i] * (10**18)); } } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap; if (contractBalance == 0) { return; } if (contractBalance > swapTokensAtAmount * 100) { contractBalance = swapTokensAtAmount * 100; } tokensToSwap = contractBalance; swapTokensForEth(tokensToSwap); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","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":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"openingFee","type":"uint256"},{"internalType":"uint256","name":"maxOpen","type":"uint256"},{"internalType":"uint256","name":"_blocksnipe","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526a52b7d2dcc80cd2e4000000600855606460085462000024919062000665565b600955606460085462000038919062000665565b600a5569010f0cf064dd59200000600b55600f805462ffffff1916620100001790556014601155601e60125534801562000070575f80fd5b506040516200253838038062002538833981016040819052620000939162000685565b604051806040016040528060088152602001674a7564676520414960c01b815250604051806040016040528060058152602001644a5544474560d81b8152508160039081620000e3919062000751565b506004620000f2828262000751565b5050506200010f62000109620003c460201b60201c565b620003c8565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000163573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000189919062000685565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fd919062000685565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000248573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026e919062000685565b600680546001600160a01b0319166001600160a01b039290921691821790556200029a90600162000419565b600654620002b3906001600160a01b031660016200046c565b608051620002c39060016200046c565b600780546001600160a01b0319166001600160a01b038316179055620002fd620002f56005546001600160a01b031690565b6001620004a0565b6200030a306001620004a0565b62000317816001620004a0565b6200032661dead6001620004a0565b620003456200033d6005546001600160a01b031690565b60016200046c565b620003523060016200046c565b6200035f8160016200046c565b6200036e61dead60016200046c565b6200039833606460085460446200038691906200081d565b62000392919062000665565b62000508565b600754600854620003bd916001600160a01b031690606490620003869060206200081d565b5062000853565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b62000476620005ee565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b620004aa620005ee565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005645760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f8282546200057791906200083d565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005a59084906200083d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b031633146200064a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200055b565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b5f826200068057634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000696575f80fd5b81516001600160a01b0381168114620006ad575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620006dd57607f821691505b602082108103620006fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200064c57805f5260205f20601f840160051c81016020851015620007295750805b601f840160051c820191505b818110156200074a575f815560010162000735565b5050505050565b81516001600160401b038111156200076d576200076d620006b4565b62000785816200077e8454620006c8565b8462000702565b602080601f831160018114620007bb575f8415620007a35750858301515b5f19600386901b1c1916600185901b17855562000815565b5f85815260208120601f198616915b82811015620007eb57888601518255948401946001909101908401620007ca565b50858210156200080957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808202811582820484141762000837576200083762000651565b92915050565b8082018082111562000837576200083762000651565b608051611cb7620008815f395f818161035f015281816115650152818161161c015261165b0152611cb75ff3fe6080604052600436106101ff575f3560e01c806389291a8f11610113578063c8c8ebe41161009d578063e2f456051161006d578063e2f45605146105ae578063f2fde38b146105c3578063f82d36e8146105e2578063f8b45b0514610601578063ffb54a9914610616575f80fd5b8063c8c8ebe414610550578063cf9522fd14610565578063dd62ed3e1461057a578063dd85465214610599575f80fd5b8063a457c2d7116100e3578063a457c2d7146104b5578063a9059cbb146104d4578063aacebbe3146104f3578063afa4f3b214610512578063c024666814610531575f80fd5b806389291a8f146104515780638da5cb5b1461046557806395d89b41146104825780639a7a23d614610496575f80fd5b80634a62bb65116101945780636ddd1713116101645780636ddd1713146103b857806370a08231146103d6578063715018a61461040a578063751039fc1461041e5780637571336a14610432575f80fd5b80634a62bb651461031057806352f7c9881461032f578063583e05681461034e5780636724348214610399575f80fd5b8063311028af116101cf578063311028af146102a0578063313ce567146102b557806334848b9a146102d057806339509351146102f1575f80fd5b806306fdde031461020a578063095ea7b31461023457806318160ddd1461026357806323b872dd14610281575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61062f565b60405161022b9190611839565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611899565b6106bf565b604051901515815260200161022b565b34801561026e575f80fd5b506002545b60405190815260200161022b565b34801561028c575f80fd5b5061025361029b3660046118c3565b6106d8565b3480156102ab575f80fd5b5061027360085481565b3480156102c0575f80fd5b506040516012815260200161022b565b3480156102db575f80fd5b506102ef6102ea366004611901565b6106fb565b005b3480156102fc575f80fd5b5061025361030b366004611899565b6107a1565b34801561031b575f80fd5b50600f546102539062010000900460ff1681565b34801561033a575f80fd5b506102ef61034936600461192a565b6107c2565b348015610359575f80fd5b506103817f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161022b565b3480156103a4575f80fd5b506102ef6103b3366004611992565b61082c565b3480156103c3575f80fd5b50600f5461025390610100900460ff1681565b3480156103e1575f80fd5b506102736103f03660046119f9565b6001600160a01b03165f9081526020819052604090205490565b348015610415575f80fd5b506102ef6108b9565b348015610429575f80fd5b506102ef6108cc565b34801561043d575f80fd5b506102ef61044c366004611a1b565b6108e2565b34801561045c575f80fd5b506102ef610914565b348015610470575f80fd5b506005546001600160a01b0316610381565b34801561048d575f80fd5b5061021e6109a7565b3480156104a1575f80fd5b506102ef6104b0366004611a1b565b6109b6565b3480156104c0575f80fd5b506102536104cf366004611899565b610a50565b3480156104df575f80fd5b506102536104ee366004611899565b610aca565b3480156104fe575f80fd5b506102ef61050d3660046119f9565b610ad7565b34801561051d575f80fd5b506102ef61052c366004611a56565b610b01565b34801561053c575f80fd5b506102ef61054b366004611a1b565b610b21565b34801561055b575f80fd5b5061027360095481565b348015610570575f80fd5b5061027360125481565b348015610585575f80fd5b50610273610594366004611a6d565b610b87565b3480156105a4575f80fd5b5061027360115481565b3480156105b9575f80fd5b50610273600b5481565b3480156105ce575f80fd5b506102ef6105dd3660046119f9565b610bb1565b3480156105ed575f80fd5b506102ef6105fc366004611a56565b610c27565b34801561060c575f80fd5b50610273600a5481565b348015610621575f80fd5b50600f546102539060ff1681565b60606003805461063e90611a99565b80601f016020809104026020016040519081016040528092919081815260200182805461066a90611a99565b80156106b55780601f1061068c576101008083540402835291602001916106b5565b820191905f5260205f20905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b5f336106cc818585610c60565b60019150505b92915050565b5f336106e5858285610d83565b6106f0858585610dfb565b506001949350505050565b610703611412565b600f5460ff161561075b5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b60118390556012839055600854610773908390611ae5565b600955600854610784908390611ae5565b600a55600e55505043600c55600f805461ffff1916610101179055565b5f336106cc8185856107b38383610b87565b6107bd9190611b04565b610c60565b6107ca611412565b601e82111580156107dc5750601e8111155b6108215760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642033302560501b6044820152606401610752565b601191909155601255565b821580159061083a57508083145b610842575f80fd5b335f5b848110156108b1576108a98287878481811061086357610863611b17565b905060200201602081019061087891906119f9565b86868581811061088a5761088a611b17565b90506020020135670de0b6b3a76400006108a49190611b2b565b610dfb565b600101610845565b505050505050565b6108c1611412565b6108ca5f61146c565b565b6108d4611412565b600f805462ff000019169055565b6108ea611412565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b6007546001600160a01b0316336001600160a01b031614610933575f80fd5b5f471161097b5760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b6044820152606401610752565b60405133904780156108fc02915f818181858888f193505050501580156109a4573d5f803e3d5ffd5b50565b60606004805461063e90611a99565b6109be611412565b6006546001600160a01b0390811690831603610a425760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610752565b610a4c82826114bd565b5050565b5f3381610a5d8286610b87565b905083811015610abd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610752565b6106f08286868403610c60565b5f336106cc818585610dfb565b610adf611412565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b610b09611412565b610b1b81670de0b6b3a7640000611b2b565b600b5550565b610b29611412565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610bb9611412565b6001600160a01b038116610c1e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610752565b6109a48161146c565b6007546001600160a01b0316336001600160a01b031614610c46575f80fd5b6109a4610c5b82670de0b6b3a7640000611b2b565b611510565b6001600160a01b038316610cc25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610752565b6001600160a01b038216610d235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610752565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610d8e8484610b87565b90505f198114610df55781811015610de85760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610752565b610df58484848403610c60565b50505050565b6001600160a01b038316610e215760405162461bcd60e51b815260040161075290611b42565b6001600160a01b038216610e475760405162461bcd60e51b815260040161075290611b87565b805f03610e5e57610e5983835f6116c5565b505050565b600f54439062010000900460ff161561121457600e54600c54610e819190611b04565b811115610eb75760286011819055601255600854610ea19060c890611ae5565b600955600854610eb390606490611ae5565b600a555b6005546001600160a01b03858116911614801590610ee357506005546001600160a01b03848116911614155b8015610ef757506001600160a01b03831615155b8015610f0e57506001600160a01b03831661dead14155b8015610f245750600754600160a01b900460ff16155b1561121457600f5460ff16610fb5576001600160a01b0384165f9081526013602052604090205460ff1680610f7057506001600160a01b0383165f9081526013602052604090205460ff165b610fb55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610752565b6001600160a01b0384165f9081526015602052604090205460ff168015610ff457506001600160a01b0383165f9081526014602052604090205460ff16155b156110d7576009548211156110695760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610752565b600a546001600160a01b0384165f9081526020819052604090205461108e9084611b04565b11156110d25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610752565b611214565b6001600160a01b0383165f9081526015602052604090205460ff16801561111657506001600160a01b0384165f9081526014602052604090205460ff16155b1561118c576009548211156110d25760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610752565b6001600160a01b0383165f9081526014602052604090205460ff1661121457600a546001600160a01b0384165f908152602081905260409020546111d09084611b04565b11156112145760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610752565b305f90815260208190526040902054600b548110801590819061123e5750600f54610100900460ff165b80156112545750600754600160a01b900460ff16155b801561127857506001600160a01b0386165f9081526015602052604090205460ff16155b801561129c57506001600160a01b0386165f9081526013602052604090205460ff16155b80156112c057506001600160a01b0385165f9081526013602052604090205460ff16155b80156112d957505f838152601060205260409020546003115b15611326576007805460ff60a01b1916600160a01b1790556112f96117ed565b5f838152601060205260408120805490919061131490611bca565b909155506007805460ff60a01b191690555b6007546001600160a01b0387165f9081526013602052604090205460ff600160a01b90920482161591168061137257506001600160a01b0386165f9081526013602052604090205460ff165b1561137a57505f5b5f81156113fd576001600160a01b0387165f9081526015602052604090205460ff16156113c2576064601254876113b19190611b2b565b6113bb9190611ae5565b90506113df565b6064601154876113d29190611b2b565b6113dc9190611ae5565b90505b80156113f0576113f08830836116c5565b6113fa8187611be2565b95505b6114088888886116c5565b5050505050505050565b6005546001600160a01b031633146108ca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610752565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061154357611543611b17565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e39190611bf5565b816001815181106115f6576115f6611b17565b60200260200101906001600160a01b031690816001600160a01b031681525050611641307f000000000000000000000000000000000000000000000000000000000000000084610c60565b60075460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac9479261169c9287925f92889291909116904290600401611c10565b5f604051808303815f87803b1580156116b3575f80fd5b505af11580156108b1573d5f803e3d5ffd5b6001600160a01b0383166116eb5760405162461bcd60e51b815260040161075290611b42565b6001600160a01b0382166117115760405162461bcd60e51b815260040161075290611b87565b6001600160a01b0383165f90815260208190526040902054818110156117885760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610752565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610df5565b305f9081526020819052604081205490818103611808575050565b600b54611816906064611b2b565b82111561182e57600b5461182b906064611b2b565b91505b5080610a4c81611510565b5f602080835283518060208501525f5b8181101561186557858101830151858201604001528201611849565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109a4575f80fd5b5f80604083850312156118aa575f80fd5b82356118b581611885565b946020939093013593505050565b5f805f606084860312156118d5575f80fd5b83356118e081611885565b925060208401356118f081611885565b929592945050506040919091013590565b5f805f60608486031215611913575f80fd5b505081359360208301359350604090920135919050565b5f806040838503121561193b575f80fd5b50508035926020909101359150565b5f8083601f84011261195a575f80fd5b50813567ffffffffffffffff811115611971575f80fd5b6020830191508360208260051b850101111561198b575f80fd5b9250929050565b5f805f80604085870312156119a5575f80fd5b843567ffffffffffffffff808211156119bc575f80fd5b6119c88883890161194a565b909650945060208701359150808211156119e0575f80fd5b506119ed8782880161194a565b95989497509550505050565b5f60208284031215611a09575f80fd5b8135611a1481611885565b9392505050565b5f8060408385031215611a2c575f80fd5b8235611a3781611885565b915060208301358015158114611a4b575f80fd5b809150509250929050565b5f60208284031215611a66575f80fd5b5035919050565b5f8060408385031215611a7e575f80fd5b8235611a8981611885565b91506020830135611a4b81611885565b600181811c90821680611aad57607f821691505b602082108103611acb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f82611aff57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156106d2576106d2611ad1565b634e487b7160e01b5f52603260045260245ffd5b80820281158282048414176106d2576106d2611ad1565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f60018201611bdb57611bdb611ad1565b5060010190565b818103818111156106d2576106d2611ad1565b5f60208284031215611c05575f80fd5b8151611a1481611885565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c605784516001600160a01b031683529383019391830191600101611c3b565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122095ddb07c944a76b2380db3abb76a9089d99ade074cb3e95e7a5605d43f15149164736f6c63430008180033000000000000000000000000650ec850213a5acab1b7b54e3f1d298cf97c8a11
Deployed Bytecode
0x6080604052600436106101ff575f3560e01c806389291a8f11610113578063c8c8ebe41161009d578063e2f456051161006d578063e2f45605146105ae578063f2fde38b146105c3578063f82d36e8146105e2578063f8b45b0514610601578063ffb54a9914610616575f80fd5b8063c8c8ebe414610550578063cf9522fd14610565578063dd62ed3e1461057a578063dd85465214610599575f80fd5b8063a457c2d7116100e3578063a457c2d7146104b5578063a9059cbb146104d4578063aacebbe3146104f3578063afa4f3b214610512578063c024666814610531575f80fd5b806389291a8f146104515780638da5cb5b1461046557806395d89b41146104825780639a7a23d614610496575f80fd5b80634a62bb65116101945780636ddd1713116101645780636ddd1713146103b857806370a08231146103d6578063715018a61461040a578063751039fc1461041e5780637571336a14610432575f80fd5b80634a62bb651461031057806352f7c9881461032f578063583e05681461034e5780636724348214610399575f80fd5b8063311028af116101cf578063311028af146102a0578063313ce567146102b557806334848b9a146102d057806339509351146102f1575f80fd5b806306fdde031461020a578063095ea7b31461023457806318160ddd1461026357806323b872dd14610281575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e61062f565b60405161022b9190611839565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611899565b6106bf565b604051901515815260200161022b565b34801561026e575f80fd5b506002545b60405190815260200161022b565b34801561028c575f80fd5b5061025361029b3660046118c3565b6106d8565b3480156102ab575f80fd5b5061027360085481565b3480156102c0575f80fd5b506040516012815260200161022b565b3480156102db575f80fd5b506102ef6102ea366004611901565b6106fb565b005b3480156102fc575f80fd5b5061025361030b366004611899565b6107a1565b34801561031b575f80fd5b50600f546102539062010000900460ff1681565b34801561033a575f80fd5b506102ef61034936600461192a565b6107c2565b348015610359575f80fd5b506103817f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161022b565b3480156103a4575f80fd5b506102ef6103b3366004611992565b61082c565b3480156103c3575f80fd5b50600f5461025390610100900460ff1681565b3480156103e1575f80fd5b506102736103f03660046119f9565b6001600160a01b03165f9081526020819052604090205490565b348015610415575f80fd5b506102ef6108b9565b348015610429575f80fd5b506102ef6108cc565b34801561043d575f80fd5b506102ef61044c366004611a1b565b6108e2565b34801561045c575f80fd5b506102ef610914565b348015610470575f80fd5b506005546001600160a01b0316610381565b34801561048d575f80fd5b5061021e6109a7565b3480156104a1575f80fd5b506102ef6104b0366004611a1b565b6109b6565b3480156104c0575f80fd5b506102536104cf366004611899565b610a50565b3480156104df575f80fd5b506102536104ee366004611899565b610aca565b3480156104fe575f80fd5b506102ef61050d3660046119f9565b610ad7565b34801561051d575f80fd5b506102ef61052c366004611a56565b610b01565b34801561053c575f80fd5b506102ef61054b366004611a1b565b610b21565b34801561055b575f80fd5b5061027360095481565b348015610570575f80fd5b5061027360125481565b348015610585575f80fd5b50610273610594366004611a6d565b610b87565b3480156105a4575f80fd5b5061027360115481565b3480156105b9575f80fd5b50610273600b5481565b3480156105ce575f80fd5b506102ef6105dd3660046119f9565b610bb1565b3480156105ed575f80fd5b506102ef6105fc366004611a56565b610c27565b34801561060c575f80fd5b50610273600a5481565b348015610621575f80fd5b50600f546102539060ff1681565b60606003805461063e90611a99565b80601f016020809104026020016040519081016040528092919081815260200182805461066a90611a99565b80156106b55780601f1061068c576101008083540402835291602001916106b5565b820191905f5260205f20905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b5f336106cc818585610c60565b60019150505b92915050565b5f336106e5858285610d83565b6106f0858585610dfb565b506001949350505050565b610703611412565b600f5460ff161561075b5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b60118390556012839055600854610773908390611ae5565b600955600854610784908390611ae5565b600a55600e55505043600c55600f805461ffff1916610101179055565b5f336106cc8185856107b38383610b87565b6107bd9190611b04565b610c60565b6107ca611412565b601e82111580156107dc5750601e8111155b6108215760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642033302560501b6044820152606401610752565b601191909155601255565b821580159061083a57508083145b610842575f80fd5b335f5b848110156108b1576108a98287878481811061086357610863611b17565b905060200201602081019061087891906119f9565b86868581811061088a5761088a611b17565b90506020020135670de0b6b3a76400006108a49190611b2b565b610dfb565b600101610845565b505050505050565b6108c1611412565b6108ca5f61146c565b565b6108d4611412565b600f805462ff000019169055565b6108ea611412565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b6007546001600160a01b0316336001600160a01b031614610933575f80fd5b5f471161097b5760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b6044820152606401610752565b60405133904780156108fc02915f818181858888f193505050501580156109a4573d5f803e3d5ffd5b50565b60606004805461063e90611a99565b6109be611412565b6006546001600160a01b0390811690831603610a425760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610752565b610a4c82826114bd565b5050565b5f3381610a5d8286610b87565b905083811015610abd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610752565b6106f08286868403610c60565b5f336106cc818585610dfb565b610adf611412565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b610b09611412565b610b1b81670de0b6b3a7640000611b2b565b600b5550565b610b29611412565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610bb9611412565b6001600160a01b038116610c1e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610752565b6109a48161146c565b6007546001600160a01b0316336001600160a01b031614610c46575f80fd5b6109a4610c5b82670de0b6b3a7640000611b2b565b611510565b6001600160a01b038316610cc25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610752565b6001600160a01b038216610d235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610752565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610d8e8484610b87565b90505f198114610df55781811015610de85760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610752565b610df58484848403610c60565b50505050565b6001600160a01b038316610e215760405162461bcd60e51b815260040161075290611b42565b6001600160a01b038216610e475760405162461bcd60e51b815260040161075290611b87565b805f03610e5e57610e5983835f6116c5565b505050565b600f54439062010000900460ff161561121457600e54600c54610e819190611b04565b811115610eb75760286011819055601255600854610ea19060c890611ae5565b600955600854610eb390606490611ae5565b600a555b6005546001600160a01b03858116911614801590610ee357506005546001600160a01b03848116911614155b8015610ef757506001600160a01b03831615155b8015610f0e57506001600160a01b03831661dead14155b8015610f245750600754600160a01b900460ff16155b1561121457600f5460ff16610fb5576001600160a01b0384165f9081526013602052604090205460ff1680610f7057506001600160a01b0383165f9081526013602052604090205460ff165b610fb55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610752565b6001600160a01b0384165f9081526015602052604090205460ff168015610ff457506001600160a01b0383165f9081526014602052604090205460ff16155b156110d7576009548211156110695760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610752565b600a546001600160a01b0384165f9081526020819052604090205461108e9084611b04565b11156110d25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610752565b611214565b6001600160a01b0383165f9081526015602052604090205460ff16801561111657506001600160a01b0384165f9081526014602052604090205460ff16155b1561118c576009548211156110d25760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610752565b6001600160a01b0383165f9081526014602052604090205460ff1661121457600a546001600160a01b0384165f908152602081905260409020546111d09084611b04565b11156112145760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610752565b305f90815260208190526040902054600b548110801590819061123e5750600f54610100900460ff165b80156112545750600754600160a01b900460ff16155b801561127857506001600160a01b0386165f9081526015602052604090205460ff16155b801561129c57506001600160a01b0386165f9081526013602052604090205460ff16155b80156112c057506001600160a01b0385165f9081526013602052604090205460ff16155b80156112d957505f838152601060205260409020546003115b15611326576007805460ff60a01b1916600160a01b1790556112f96117ed565b5f838152601060205260408120805490919061131490611bca565b909155506007805460ff60a01b191690555b6007546001600160a01b0387165f9081526013602052604090205460ff600160a01b90920482161591168061137257506001600160a01b0386165f9081526013602052604090205460ff165b1561137a57505f5b5f81156113fd576001600160a01b0387165f9081526015602052604090205460ff16156113c2576064601254876113b19190611b2b565b6113bb9190611ae5565b90506113df565b6064601154876113d29190611b2b565b6113dc9190611ae5565b90505b80156113f0576113f08830836116c5565b6113fa8187611be2565b95505b6114088888886116c5565b5050505050505050565b6005546001600160a01b031633146108ca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610752565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061154357611543611b17565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e39190611bf5565b816001815181106115f6576115f6611b17565b60200260200101906001600160a01b031690816001600160a01b031681525050611641307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610c60565b60075460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac9479261169c9287925f92889291909116904290600401611c10565b5f604051808303815f87803b1580156116b3575f80fd5b505af11580156108b1573d5f803e3d5ffd5b6001600160a01b0383166116eb5760405162461bcd60e51b815260040161075290611b42565b6001600160a01b0382166117115760405162461bcd60e51b815260040161075290611b87565b6001600160a01b0383165f90815260208190526040902054818110156117885760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610752565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610df5565b305f9081526020819052604081205490818103611808575050565b600b54611816906064611b2b565b82111561182e57600b5461182b906064611b2b565b91505b5080610a4c81611510565b5f602080835283518060208501525f5b8181101561186557858101830151858201604001528201611849565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109a4575f80fd5b5f80604083850312156118aa575f80fd5b82356118b581611885565b946020939093013593505050565b5f805f606084860312156118d5575f80fd5b83356118e081611885565b925060208401356118f081611885565b929592945050506040919091013590565b5f805f60608486031215611913575f80fd5b505081359360208301359350604090920135919050565b5f806040838503121561193b575f80fd5b50508035926020909101359150565b5f8083601f84011261195a575f80fd5b50813567ffffffffffffffff811115611971575f80fd5b6020830191508360208260051b850101111561198b575f80fd5b9250929050565b5f805f80604085870312156119a5575f80fd5b843567ffffffffffffffff808211156119bc575f80fd5b6119c88883890161194a565b909650945060208701359150808211156119e0575f80fd5b506119ed8782880161194a565b95989497509550505050565b5f60208284031215611a09575f80fd5b8135611a1481611885565b9392505050565b5f8060408385031215611a2c575f80fd5b8235611a3781611885565b915060208301358015158114611a4b575f80fd5b809150509250929050565b5f60208284031215611a66575f80fd5b5035919050565b5f8060408385031215611a7e575f80fd5b8235611a8981611885565b91506020830135611a4b81611885565b600181811c90821680611aad57607f821691505b602082108103611acb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f82611aff57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156106d2576106d2611ad1565b634e487b7160e01b5f52603260045260245ffd5b80820281158282048414176106d2576106d2611ad1565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f60018201611bdb57611bdb611ad1565b5060010190565b818103818111156106d2576106d2611ad1565b5f60208284031215611c05575f80fd5b8151611a1481611885565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c605784516001600160a01b031683529383019391830191600101611c3b565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122095ddb07c944a76b2380db3abb76a9089d99ade074cb3e95e7a5605d43f15149164736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000650ec850213a5acab1b7b54e3f1d298cf97c8a11
-----Decoded View---------------
Arg [0] : wallet (address): 0x650Ec850213a5ACab1B7b54E3F1d298cf97C8A11
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000650ec850213a5acab1b7b54e3f1d298cf97c8a11
Deployed Bytecode Sourcemap
12277:8834:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7335:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8267:201;;;;;;;;;;-1:-1:-1;8267:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8267:201:0;1023:187:1;7656:108:0;;;;;;;;;;-1:-1:-1;7744:12:0;;7656:108;;;1361:25:1;;;1349:2;1334:18;7656:108:0;1215:177:1;8476:295:0;;;;;;;;;;-1:-1:-1;8476:295:0;;;;;:::i;:::-;;:::i;12646:54::-;;;;;;;;;;;;;;;;7555:93;;;;;;;;;;-1:-1:-1;7555:93:0;;7638:2;2000:36:1;;1988:2;1973:18;7555:93:0;1858:184:1;14692:469:0;;;;;;;;;;-1:-1:-1;14692:469:0;;;;;:::i;:::-;;:::i;:::-;;8779:238;;;;;;;;;;-1:-1:-1;8779:238:0;;;;;:::i;:::-;;:::i;13065:33::-;;;;;;;;;;-1:-1:-1;13065:33:0;;;;;;;;;;;19838:211;;;;;;;;;;-1:-1:-1;19838:211:0;;;;;:::i;:::-;;:::i;12321:52::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2810:32:1;;;2792:51;;2780:2;2765:18;12321:52:0;2621:228:1;20333:353:0;;;;;;;;;;-1:-1:-1;20333:353:0;;;;;:::i;:::-;;:::i;13027:31::-;;;;;;;;;;-1:-1:-1;13027:31:0;;;;;;;;;;;7772:127;;;;;;;;;;-1:-1:-1;7772:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7873:18:0;7846:7;7873:18;;;;;;;;;;;;7772:127;6411:103;;;;;;;;;;;;;:::i;19346:84::-;;;;;;;;;;;;;:::i;15167:167::-;;;;;;;;;;-1:-1:-1;15167:167:0;;;;;:::i;:::-;;:::i;19438:226::-;;;;;;;;;;;;;:::i;6176:87::-;;;;;;;;;;-1:-1:-1;6249:6:0;;-1:-1:-1;;;;;6249:6:0;6176:87;;7443:104;;;;;;;;;;;;;:::i;15342:265::-;;;;;;;;;;-1:-1:-1;15342:265:0;;;;;:::i;:::-;;:::i;9025:436::-;;;;;;;;;;-1:-1:-1;9025:436:0;;;;;:::i;:::-;;:::i;7907:193::-;;;;;;;;;;-1:-1:-1;7907:193:0;;;;;:::i;:::-;;:::i;20057:133::-;;;;;;;;;;-1:-1:-1;20057:133:0;;;;;:::i;:::-;;:::i;20198:127::-;;;;;;;;;;-1:-1:-1;20198:127:0;;;;;:::i;:::-;;:::i;15809:182::-;;;;;;;;;;-1:-1:-1;15809:182:0;;;;;:::i;:::-;;:::i;12707:62::-;;;;;;;;;;;;;;;;13194:27;;;;;;;;;;;;;;;;8108:151;;;;;;;;;;-1:-1:-1;8108:151:0;;;;;:::i;:::-;;:::i;13161:26::-;;;;;;;;;;;;;;;;12834:47;;;;;;;;;;;;;;;;6522:201;;;;;;;;;;-1:-1:-1;6522:201:0;;;;;:::i;:::-;;:::i;19672:158::-;;;;;;;;;;-1:-1:-1;19672:158:0;;;;;:::i;:::-;;:::i;12776:51::-;;;;;;;;;;;;;;;;12989:31;;;;;;;;;;-1:-1:-1;12989:31:0;;;;;;;;7335:100;7389:13;7422:5;7415:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7335:100;:::o;8267:201::-;8350:4;211:10;8406:32;211:10;8422:7;8431:6;8406:8;:32::i;:::-;8456:4;8449:11;;;8267:201;;;;;:::o;8476:295::-;8607:4;211:10;8665:38;8681:4;211:10;8696:6;8665:15;:38::i;:::-;8714:27;8724:4;8730:2;8734:6;8714:9;:27::i;:::-;-1:-1:-1;8759:4:0;;8476:295;-1:-1:-1;;;;8476:295:0:o;14692:469::-;6135:13;:11;:13::i;:::-;14812:11:::1;::::0;::::1;;14811:12;14803:47;;;::::0;-1:-1:-1;;;14803:47:0;;6050:2:1;14803:47:0::1;::::0;::::1;6032:21:1::0;6089:2;6069:18;;;6062:30;6128:25;6108:18;;;6101:53;6171:18;;14803:47:0::1;;;;;;;;;14861:6;:19:::0;;;14891:7:::1;:20:::0;;;14945:18:::1;::::0;:28:::1;::::0;14966:7;;14945:28:::1;:::i;:::-;14922:20;:51:::0;14996:18:::1;::::0;:28:::1;::::0;15017:7;;14996:28:::1;:::i;:::-;14984:9;:40:::0;15035:10:::1;:24:::0;-1:-1:-1;;15083:12:0::1;15070:10;:25:::0;15106:11:::1;:18:::0;;-1:-1:-1;;15135:18:0;;;;;14692:469::o;8779:238::-;8867:4;211:10;8923:64;211:10;8939:7;8976:10;8948:25;211:10;8939:7;8948:9;:25::i;:::-;:38;;;;:::i;:::-;8923:8;:64::i;19838:211::-;6135:13;:11;:13::i;:::-;19938:2:::1;19927:7;:13;;:31;;;;;19956:2;19944:8;:14;;19927:31;19919:66;;;::::0;-1:-1:-1;;;19919:66:0;;6886:2:1;19919:66:0::1;::::0;::::1;6868:21:1::0;6925:2;6905:18;;;6898:30;-1:-1:-1;;;6944:18:1;;;6937:52;7006:18;;19919:66:0::1;6684:346:1::0;19919:66:0::1;19996:6;:16:::0;;;;20023:7:::1;:18:::0;19838:211::o;20333:353::-;20438:20;;;;;:58;;-1:-1:-1;20462:34:0;;;20438:58;20430:67;;;;;;20525:10;20510:12;20550:129;20567:20;;;20550:129;;;20611:52;20621:4;20627:9;;20637:1;20627:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20641:7;;20649:1;20641:10;;;;;;;:::i;:::-;;;;;;;20655:6;20641:21;;;;:::i;:::-;20611:9;:52::i;:::-;20589:3;;20550:129;;;;20417:269;20333:353;;;;:::o;6411:103::-;6135:13;:11;:13::i;:::-;6476:30:::1;6503:1;6476:18;:30::i;:::-;6411:103::o:0;19346:84::-;6135:13;:11;:13::i;:::-;19400:14:::1;:22:::0;;-1:-1:-1;;19400:22:0::1;::::0;;19346:84::o;15167:167::-;6135:13;:11;:13::i;:::-;-1:-1:-1;;;;;15280:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;15280:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15167:167::o;19438:226::-;19507:15;;-1:-1:-1;;;;;19507:15:0;211:10;-1:-1:-1;;;;;19491:31:0;;19483:40;;;;;;19566:1;19542:21;:25;19534:60;;;;-1:-1:-1;;;19534:60:0;;7542:2:1;19534:60:0;;;7524:21:1;7581:2;7561:18;;;7554:30;-1:-1:-1;;;7600:18:1;;;7593:52;7662:18;;19534:60:0;7340:346:1;19534:60:0;19605:51;;19613:10;;19634:21;19605:51;;;;;;;;;19634:21;19613:10;19605:51;;;;;;;;;;;;;;;;;;;;;19438:226::o;7443:104::-;7499:13;7532:7;7525:14;;;;;:::i;15342:265::-;6135:13;:11;:13::i;:::-;15472::::1;::::0;-1:-1:-1;;;;;15472:13:0;;::::1;15464:21:::0;;::::1;::::0;15456:91:::1;;;::::0;-1:-1:-1;;;15456:91:0;;7893:2:1;15456:91:0::1;::::0;::::1;7875:21:1::0;7932:2;7912:18;;;7905:30;7971:34;7951:18;;;7944:62;8042:27;8022:18;;;8015:55;8087:19;;15456:91:0::1;7691:421:1::0;15456:91:0::1;15558:41;15587:4;15593:5;15558:28;:41::i;:::-;15342:265:::0;;:::o;9025:436::-;9118:4;211:10;9118:4;9201:25;211:10;9218:7;9201:9;:25::i;:::-;9174:52;;9265:15;9245:16;:35;;9237:85;;;;-1:-1:-1;;;9237:85:0;;8319:2:1;9237:85:0;;;8301:21:1;8358:2;8338:18;;;8331:30;8397:34;8377:18;;;8370:62;-1:-1:-1;;;8448:18:1;;;8441:35;8493:19;;9237:85:0;8117:401:1;9237:85:0;9358:60;9367:5;9374:7;9402:15;9383:16;:34;9358:8;:60::i;7907:193::-;7986:4;211:10;8042:28;211:10;8059:2;8063:6;8042:9;:28::i;20057:133::-;6135:13;:11;:13::i;:::-;20146:15:::1;:36:::0;;-1:-1:-1;;;;;;20146:36:0::1;-1:-1:-1::0;;;;;20146:36:0;;;::::1;::::0;;;::::1;::::0;;20057:133::o;20198:127::-;6135:13;:11;:13::i;:::-;20297:20:::1;:7:::0;20308:8:::1;20297:20;:::i;:::-;20276:18;:41:::0;-1:-1:-1;20198:127:0:o;15809:182::-;6135:13;:11;:13::i;:::-;-1:-1:-1;;;;;15894:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;15894:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15949:34;;1163:41:1;;;15949:34:0::1;::::0;1136:18:1;15949:34:0::1;;;;;;;15809:182:::0;;:::o;8108:151::-;-1:-1:-1;;;;;8224:18:0;;;8197:7;8224:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8108:151::o;6522:201::-;6135:13;:11;:13::i;:::-;-1:-1:-1;;;;;6611:22:0;::::1;6603:73;;;::::0;-1:-1:-1;;;6603:73:0;;8725:2:1;6603:73:0::1;::::0;::::1;8707:21:1::0;8764:2;8744:18;;;8737:30;8803:34;8783:18;;;8776:62;-1:-1:-1;;;8854:18:1;;;8847:36;8900:19;;6603:73:0::1;8523:402:1::0;6603:73:0::1;6687:28;6706:8;6687:18;:28::i;19672:158::-:0;19758:15;;-1:-1:-1;;;;;19758:15:0;211:10;-1:-1:-1;;;;;19742:31:0;;19734:40;;;;;;19785:37;19802:19;:6;19812:8;19802:19;:::i;:::-;19785:16;:37::i;11164:380::-;-1:-1:-1;;;;;11300:19:0;;11292:68;;;;-1:-1:-1;;;11292:68:0;;9132:2:1;11292:68:0;;;9114:21:1;9171:2;9151:18;;;9144:30;9210:34;9190:18;;;9183:62;-1:-1:-1;;;9261:18:1;;;9254:34;9305:19;;11292:68:0;8930:400:1;11292:68:0;-1:-1:-1;;;;;11379:21:0;;11371:68;;;;-1:-1:-1;;;11371:68:0;;9537:2:1;11371:68:0;;;9519:21:1;9576:2;9556:18;;;9549:30;9615:34;9595:18;;;9588:62;-1:-1:-1;;;9666:18:1;;;9659:32;9708:19;;11371:68:0;9335:398:1;11371:68:0;-1:-1:-1;;;;;11452:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11504:32;;1361:25:1;;;11504:32:0;;1334:18:1;11504:32:0;;;;;;;11164:380;;;:::o;11552:453::-;11687:24;11714:25;11724:5;11731:7;11714:9;:25::i;:::-;11687:52;;-1:-1:-1;;11754:16:0;:37;11750:248;;11836:6;11816:16;:26;;11808:68;;;;-1:-1:-1;;;11808:68:0;;9940:2:1;11808:68:0;;;9922:21:1;9979:2;9959:18;;;9952:30;10018:31;9998:18;;;9991:59;10067:18;;11808:68:0;9738:353:1;11808:68:0;11920:51;11929:5;11936:7;11964:6;11945:16;:25;11920:8;:51::i;:::-;11676:329;11552:453;;;:::o;15999:2850::-;-1:-1:-1;;;;;16099:18:0;;16091:68;;;;-1:-1:-1;;;16091:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16178:16:0;;16170:64;;;;-1:-1:-1;;;16170:64:0;;;;;;;:::i;:::-;16251:6;16261:1;16251:11;16247:93;;16279:28;16295:4;16301:2;16305:1;16279:15;:28::i;:::-;15999:2850;;;:::o;16247:93::-;16408:14;;16371:12;;16408:14;;;;;16404:1416;;;16476:10;;16463;;:23;;;;:::i;:::-;16451:8;:36;16448:294;;;16544:2;16535:6;:11;;;16571:7;:12;16633:18;;:24;;16654:3;;16633:24;:::i;:::-;16610:20;:47;16694:18;;:24;;16715:3;;16694:24;:::i;:::-;16682:9;:36;16448:294;6249:6;;-1:-1:-1;;;;;16768:15:0;;;6249:6;;16768:15;;;;:32;;-1:-1:-1;6249:6:0;;-1:-1:-1;;;;;16787:13:0;;;6249:6;;16787:13;;16768:32;:52;;;;-1:-1:-1;;;;;;16804:16:0;;;;16768:52;:77;;;;-1:-1:-1;;;;;;16824:21:0;;16838:6;16824:21;;16768:77;:90;;;;-1:-1:-1;16850:8:0;;-1:-1:-1;;;16850:8:0;;;;16849:9;16768:90;16764:1043;;;16886:11;;;;16881:148;;-1:-1:-1;;;;;16930:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;16959:23:0;;;;;;:19;:23;;;;;;;;16930:52;16922:87;;;;-1:-1:-1;;;16922:87:0;;11108:2:1;16922:87:0;;;11090:21:1;11147:2;11127:18;;;11120:30;-1:-1:-1;;;11166:18:1;;;11159:52;11228:18;;16922:87:0;10906:346:1;16922:87:0;-1:-1:-1;;;;;17053:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;17089:35:0;;;;;;:31;:35;;;;;;;;17088:36;17053:71;17049:743;;;17185:20;;17175:6;:30;;17167:96;;;;-1:-1:-1;;;17167:96:0;;11459:2:1;17167:96:0;;;11441:21:1;11498:2;11478:18;;;11471:30;11537:34;11517:18;;;11510:62;-1:-1:-1;;;11588:18:1;;;11581:51;11649:19;;17167:96:0;11257:417:1;17167:96:0;17320:9;;-1:-1:-1;;;;;7873:18:0;;7846:7;7873:18;;;;;;;;;;;17294:22;;:6;:22;:::i;:::-;:35;;17286:67;;;;-1:-1:-1;;;17286:67:0;;11881:2:1;17286:67:0;;;11863:21:1;11920:2;11900:18;;;11893:30;-1:-1:-1;;;11939:18:1;;;11932:49;11998:18;;17286:67:0;11679:343:1;17286:67:0;17049:743;;;-1:-1:-1;;;;;17402:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;17436:37:0;;;;;;:31;:37;;;;;;;;17435:38;17402:71;17398:394;;;17516:20;;17506:6;:30;;17498:97;;;;-1:-1:-1;;;17498:97:0;;12229:2:1;17498:97:0;;;12211:21:1;12268:2;12248:18;;;12241:30;12307:34;12287:18;;;12280:62;-1:-1:-1;;;12358:18:1;;;12351:52;12420:19;;17498:97:0;12027:418:1;17398:394:0;-1:-1:-1;;;;;17645:35:0;;;;;;:31;:35;;;;;;;;17640:152;;17739:9;;-1:-1:-1;;;;;7873:18:0;;7846:7;7873:18;;;;;;;;;;;17713:22;;:6;:22;:::i;:::-;:35;;17705:67;;;;-1:-1:-1;;;17705:67:0;;11881:2:1;17705:67:0;;;11863:21:1;11920:2;11900:18;;;11893:30;-1:-1:-1;;;11939:18:1;;;11932:49;11998:18;;17705:67:0;11679:343:1;17705:67:0;17881:4;17832:28;7873:18;;;;;;;;;;;17939;;17915:42;;;;;;;17974:22;;-1:-1:-1;17985:11:0;;;;;;;17974:22;:35;;;;-1:-1:-1;18001:8:0;;-1:-1:-1;;;18001:8:0;;;;18000:9;17974:35;:71;;;;-1:-1:-1;;;;;;18014:31:0;;;;;;:25;:31;;;;;;;;18013:32;17974:71;:101;;;;-1:-1:-1;;;;;;18050:25:0;;;;;;:19;:25;;;;;;;;18049:26;17974:101;:129;;;;-1:-1:-1;;;;;;18080:23:0;;;;;;:19;:23;;;;;;;;18079:24;17974:129;:160;;;;-1:-1:-1;18108:21:0;;;;:11;:21;;;;;;18132:1;-1:-1:-1;17974:160:0;17970:302;;;18151:8;:15;;-1:-1:-1;;;;18151:15:0;-1:-1:-1;;;18151:15:0;;;18181:10;:8;:10::i;:::-;18208:21;;;;:11;:21;;;;;18206:23;;18208:21;;;18206:23;;;:::i;:::-;;;;-1:-1:-1;18244:8:0;:16;;-1:-1:-1;;;;18244:16:0;;;17970:302;18300:8;;-1:-1:-1;;;;;18325:25:0;;18284:12;18325:25;;;:19;:25;;;;;;18300:8;-1:-1:-1;;;18300:8:0;;;;;18299:9;;18325:25;;:52;;-1:-1:-1;;;;;;18354:23:0;;;;;;:19;:23;;;;;;;;18325:52;18321:100;;;-1:-1:-1;18404:5:0;18321:100;18433:12;18466:7;18462:336;;;-1:-1:-1;;;;;18494:29:0;;;;;;:25;:29;;;;;;;;18490:181;;;18570:3;18560:7;;18551:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;18544:29;;18490:181;;;18652:3;18643:6;;18634;:15;;;;:::i;:::-;:21;;;;:::i;:::-;18627:28;;18490:181;18687:8;;18683:83;;18712:42;18728:4;18742;18749;18712:15;:42::i;:::-;18776:14;18786:4;18776:14;;:::i;:::-;;;18462:336;18808:33;18824:4;18830:2;18834:6;18808:15;:33::i;:::-;16078:2771;;;;;15999:2850;;;:::o;6271:132::-;6249:6;;-1:-1:-1;;;;;6249:6:0;211:10;6335:23;6327:68;;;;-1:-1:-1;;;6327:68:0;;12925:2:1;6327:68:0;;;12907:21:1;;;12944:18;;;12937:30;13003:34;12983:18;;;12976:62;13055:18;;6327:68:0;12723:356:1;6731:191:0;6824:6;;;-1:-1:-1;;;;;6841:17:0;;;-1:-1:-1;;;;;;6841:17:0;;;;;;;6874:40;;6824:6;;;6841:17;6824:6;;6874:40;;6805:16;;6874:40;6794:128;6731:191;:::o;15615:186::-;-1:-1:-1;;;;;15698:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;15698:39:0;;;;;;;;;;15753:40;;15698:39;;:31;15753:40;;;15615:186;;:::o;18857:482::-;18949:16;;;18963:1;18949:16;;;;;;;;18925:21;;18949:16;;;;;;;;;;-1:-1:-1;18949:16:0;18925:40;;18994:4;18976;18981:1;18976:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18976:23:0;;;-1:-1:-1;;;;;18976:23:0;;;;;19020:16;-1:-1:-1;;;;;19020:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19010:4;19015:1;19010:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;19010:33:0;;;-1:-1:-1;;;;;19010:33:0;;;;;19056:63;19073:4;19088:16;19107:11;19056:8;:63::i;:::-;19275:15;;19132:199;;-1:-1:-1;;;19132:199:0;;-1:-1:-1;;;;;19132:16:0;:67;;;;;:199;;19214:11;;19240:1;;19256:4;;19275:15;;;;;19305;;19132:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9469:675;-1:-1:-1;;;;;9600:18:0;;9592:68;;;;-1:-1:-1;;;9592:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9679:16:0;;9671:64;;;;-1:-1:-1;;;9671:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9821:15:0;;9799:19;9821:15;;;;;;;;;;;9855:21;;;;9847:72;;;;-1:-1:-1;;;9847:72:0;;14659:2:1;9847:72:0;;;14641:21:1;14698:2;14678:18;;;14671:30;14737:34;14717:18;;;14710:62;-1:-1:-1;;;14788:18:1;;;14781:36;14834:19;;9847:72:0;14457:402:1;9847:72:0;-1:-1:-1;;;;;9955:15:0;;;:9;:15;;;;;;;;;;;9973:20;;;9955:38;;10008:13;;;;;;;;;;:23;;;;;;10060:26;;1361:25:1;;;10008:13:0;;10060:26;;1334:18:1;10060:26:0;;;;;;;10099:37;15999:2850;20694:414;20777:4;20733:23;7873:18;;;;;;;;;;;;20831:20;;;20827:59;;20868:7;;20694:414::o;20827:59::-;20920:18;;:24;;20941:3;20920:24;:::i;:::-;20902:15;:42;20898:117;;;20979:18;;:24;;21000:3;20979:24;:::i;:::-;20961:42;;20898:117;-1:-1:-1;21042:15:0;21068:30;21042:15;21068:16;:30::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:316::-;2124:6;2132;2140;2193:2;2181:9;2172:7;2168:23;2164:32;2161:52;;;2209:1;2206;2199:12;2161:52;-1:-1:-1;;2232:23:1;;;2302:2;2287:18;;2274:32;;-1:-1:-1;2353:2:1;2338:18;;;2325:32;;2047:316;-1:-1:-1;2047:316:1:o;2368:248::-;2436:6;2444;2497:2;2485:9;2476:7;2472:23;2468:32;2465:52;;;2513:1;2510;2503:12;2465:52;-1:-1:-1;;2536:23:1;;;2606:2;2591:18;;;2578:32;;-1:-1:-1;2368:248:1:o;2854:367::-;2917:8;2927:6;2981:3;2974:4;2966:6;2962:17;2958:27;2948:55;;2999:1;2996;2989:12;2948:55;-1:-1:-1;3022:20:1;;3065:18;3054:30;;3051:50;;;3097:1;3094;3087:12;3051:50;3134:4;3126:6;3122:17;3110:29;;3194:3;3187:4;3177:6;3174:1;3170:14;3162:6;3158:27;3154:38;3151:47;3148:67;;;3211:1;3208;3201:12;3148:67;2854:367;;;;;:::o;3226:773::-;3348:6;3356;3364;3372;3425:2;3413:9;3404:7;3400:23;3396:32;3393:52;;;3441:1;3438;3431:12;3393:52;3481:9;3468:23;3510:18;3551:2;3543:6;3540:14;3537:34;;;3567:1;3564;3557:12;3537:34;3606:70;3668:7;3659:6;3648:9;3644:22;3606:70;:::i;:::-;3695:8;;-1:-1:-1;3580:96:1;-1:-1:-1;3783:2:1;3768:18;;3755:32;;-1:-1:-1;3799:16:1;;;3796:36;;;3828:1;3825;3818:12;3796:36;;3867:72;3931:7;3920:8;3909:9;3905:24;3867:72;:::i;:::-;3226:773;;;;-1:-1:-1;3958:8:1;-1:-1:-1;;;;3226:773:1:o;4004:247::-;4063:6;4116:2;4104:9;4095:7;4091:23;4087:32;4084:52;;;4132:1;4129;4122:12;4084:52;4171:9;4158:23;4190:31;4215:5;4190:31;:::i;:::-;4240:5;4004:247;-1:-1:-1;;;4004:247:1:o;4256:416::-;4321:6;4329;4382:2;4370:9;4361:7;4357:23;4353:32;4350:52;;;4398:1;4395;4388:12;4350:52;4437:9;4424:23;4456:31;4481:5;4456:31;:::i;:::-;4506:5;-1:-1:-1;4563:2:1;4548:18;;4535:32;4605:15;;4598:23;4586:36;;4576:64;;4636:1;4633;4626:12;4576:64;4659:7;4649:17;;;4256:416;;;;;:::o;4885:180::-;4944:6;4997:2;4985:9;4976:7;4972:23;4968:32;4965:52;;;5013:1;5010;5003:12;4965:52;-1:-1:-1;5036:23:1;;4885:180;-1:-1:-1;4885:180:1:o;5070:388::-;5138:6;5146;5199:2;5187:9;5178:7;5174:23;5170:32;5167:52;;;5215:1;5212;5205:12;5167:52;5254:9;5241:23;5273:31;5298:5;5273:31;:::i;:::-;5323:5;-1:-1:-1;5380:2:1;5365:18;;5352:32;5393:33;5352:32;5393:33;:::i;5463:380::-;5542:1;5538:12;;;;5585;;;5606:61;;5660:4;5652:6;5648:17;5638:27;;5606:61;5713:2;5705:6;5702:14;5682:18;5679:38;5676:161;;5759:10;5754:3;5750:20;5747:1;5740:31;5794:4;5791:1;5784:15;5822:4;5819:1;5812:15;5676:161;;5463:380;;;:::o;6200:127::-;6261:10;6256:3;6252:20;6249:1;6242:31;6292:4;6289:1;6282:15;6316:4;6313:1;6306:15;6332:217;6372:1;6398;6388:132;;6442:10;6437:3;6433:20;6430:1;6423:31;6477:4;6474:1;6467:15;6505:4;6502:1;6495:15;6388:132;-1:-1:-1;6534:9:1;;6332:217::o;6554:125::-;6619:9;;;6640:10;;;6637:36;;;6653:18;;:::i;7035:127::-;7096:10;7091:3;7087:20;7084:1;7077:31;7127:4;7124:1;7117:15;7151:4;7148:1;7141:15;7167:168;7240:9;;;7271;;7288:15;;;7282:22;;7268:37;7258:71;;7309:18;;:::i;10096:401::-;10298:2;10280:21;;;10337:2;10317:18;;;10310:30;10376:34;10371:2;10356:18;;10349:62;-1:-1:-1;;;10442:2:1;10427:18;;10420:35;10487:3;10472:19;;10096:401::o;10502:399::-;10704:2;10686:21;;;10743:2;10723:18;;;10716:30;10782:34;10777:2;10762:18;;10755:62;-1:-1:-1;;;10848:2:1;10833:18;;10826:33;10891:3;10876:19;;10502:399::o;12450:135::-;12489:3;12510:17;;;12507:43;;12530:18;;:::i;:::-;-1:-1:-1;12577:1:1;12566:13;;12450:135::o;12590:128::-;12657:9;;;12678:11;;;12675:37;;;12692:18;;:::i;13216:251::-;13286:6;13339:2;13327:9;13318:7;13314:23;13310:32;13307:52;;;13355:1;13352;13345:12;13307:52;13387:9;13381:16;13406:31;13431:5;13406:31;:::i;13472:980::-;13734:4;13782:3;13771:9;13767:19;13813:6;13802:9;13795:25;13839:2;13877:6;13872:2;13861:9;13857:18;13850:34;13920:3;13915:2;13904:9;13900:18;13893:31;13944:6;13979;13973:13;14010:6;14002;13995:22;14048:3;14037:9;14033:19;14026:26;;14087:2;14079:6;14075:15;14061:29;;14108:1;14118:195;14132:6;14129:1;14126:13;14118:195;;;14197:13;;-1:-1:-1;;;;;14193:39:1;14181:52;;14288:15;;;;14253:12;;;;14229:1;14147:9;14118:195;;;-1:-1:-1;;;;;;;14369:32:1;;;;14364:2;14349:18;;14342:60;-1:-1:-1;;;14433:3:1;14418:19;14411:35;14330:3;13472:980;-1:-1:-1;;;13472:980:1:o
Swarm Source
ipfs://95ddb07c944a76b2380db3abb76a9089d99ade074cb3e95e7a5605d43f151491
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.