ETH Price: $3,459.74 (-1.62%)
Gas: 3 Gwei

Token

FlexMeme (FLEX)
 

Overview

Max Total Supply

789,244,355,586.023827965244950717 FLEX

Holders

1,150 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$160,836.16

Circulating Supply Market Cap

$51,577.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,296,977.143436215579118473 FLEX

Value
$3.32 ( ~0.000959608988725094 Eth) [0.0021%]
0xe0b196f941427d6cD5eB3E693bEDa5715d4087B9
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

FlexMeme is breaking new ground with its cutting-edge AI technology, which allows it to seamlessly innovate and adapt to the latest memes and viral trends, ensuring that it always stays relevant and in-demand.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
FLEX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), 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");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current 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;
    }
}

contract LGEWhitelisted is Context {
    struct WhitelistRound {
        uint256 duration;
        uint256 amountMax;
        mapping(address => bool) addresses;
        mapping(address => uint256) purchased;
    }

    WhitelistRound[] public _lgeWhitelistRounds;

    uint256 public _lgeTimestamp;
    address public _lgePairAddress;

    address public _whitelister;

    event WhitelisterTransferred(address indexed previousWhitelister, address indexed newWhitelister);

    constructor() {
        _whitelister = _msgSender();
    }

    modifier onlyWhitelister() {
        require(_whitelister == _msgSender(), "Caller is not the whitelister");
        _;
    }

    function renounceWhitelister() external onlyWhitelister {
        emit WhitelisterTransferred(_whitelister, address(0));
        _whitelister = address(0);
    }

    function transferWhitelister(address newWhitelister) external onlyWhitelister {
        _transferWhitelister(newWhitelister);
    }

    function _transferWhitelister(address newWhitelister) internal {
        require(newWhitelister != address(0), "New whitelister is the zero address");
        emit WhitelisterTransferred(_whitelister, newWhitelister);
        _whitelister = newWhitelister;
    }

    /*
     * createLGEWhitelist - Call this after initial Token Generation Event (TGE)
     *
     * pairAddress - address generated from createPair() event on DEX
     * durations - array of durations (seconds) for each whitelist rounds
     * amountsMax - array of max amounts (TOKEN decimals) for each whitelist round
     *
     */

    function createLGEWhitelist(
        address pairAddress,
        uint256[] calldata durations,
        uint256[] calldata amountsMax
    ) external onlyWhitelister() {
        require(durations.length == amountsMax.length, "Invalid whitelist(s)");

        _lgePairAddress = pairAddress;

        if (durations.length > 0) {
            delete _lgeWhitelistRounds;

            for (uint256 i = 0; i < durations.length; i++) {
                WhitelistRound storage whitelistRound = _lgeWhitelistRounds.push();
                whitelistRound.duration = durations[i];
                whitelistRound.amountMax = amountsMax[i];
            }
        }
    }

    /*
     * modifyLGEWhitelistAddresses - Define what addresses are included/excluded from a whitelist round
     *
     * index - 0-based index of round to modify whitelist
     * duration - period in seconds from LGE event or previous whitelist round
     * amountMax - max amount (TOKEN decimals) for each whitelist round
     *
     */

    function modifyLGEWhitelist(
        uint256 index,
        uint256 duration,
        uint256 amountMax,
        address[] calldata addresses,
        bool enabled
    ) external onlyWhitelister() {
        require(index < _lgeWhitelistRounds.length, "Invalid index");
        require(amountMax > 0, "Invalid amountMax");

        if (duration != _lgeWhitelistRounds[index].duration) _lgeWhitelistRounds[index].duration = duration;

        if (amountMax != _lgeWhitelistRounds[index].amountMax) _lgeWhitelistRounds[index].amountMax = amountMax;

        for (uint256 i = 0; i < addresses.length; i++) {
            _lgeWhitelistRounds[index].addresses[addresses[i]] = enabled;
        }
    }

    /*
     *  getLGEWhitelistRound
     *
     *  returns:
     *
     *  1. whitelist round number ( 0 = no active round now )
     *  2. duration, in seconds, current whitelist round is active for
     *  3. timestamp current whitelist round closes at
     *  4. maximum amount a whitelister can purchase in this round
     *  5. is caller whitelisted
     *  6. how much caller has purchased in current whitelist round
     *
     */

    function getLGEWhitelistRound()
        public
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            bool,
            uint256
        )
    {
        if (_lgeTimestamp > 0) {
            uint256 wlCloseTimestampLast = _lgeTimestamp;

            for (uint256 i = 0; i < _lgeWhitelistRounds.length; i++) {
                WhitelistRound storage wlRound = _lgeWhitelistRounds[i];

                wlCloseTimestampLast = wlCloseTimestampLast + wlRound.duration;
                if (block.timestamp <= wlCloseTimestampLast)
                    return (
                        i + 1,
                        wlRound.duration,
                        wlCloseTimestampLast,
                        wlRound.amountMax,
                        wlRound.addresses[_msgSender()],
                        wlRound.purchased[_msgSender()]
                    );
            }
        }

        return (0, 0, 0, 0, false, 0);
    }

    /*
     * _applyLGEWhitelist - internal function to be called initially before any transfers
     *
     */

    function _applyLGEWhitelist(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        if (_lgePairAddress == address(0) || _lgeWhitelistRounds.length == 0) return;

        if (_lgeTimestamp == 0 && sender != _lgePairAddress && recipient == _lgePairAddress && amount > 0)
            _lgeTimestamp = block.timestamp;

        if (sender == _lgePairAddress && recipient != _lgePairAddress) {
            //buying

            (uint256 wlRoundNumber, , , , , ) = getLGEWhitelistRound();

            if (wlRoundNumber > 0) {
                WhitelistRound storage wlRound = _lgeWhitelistRounds[wlRoundNumber - 1];

                require(wlRound.addresses[recipient], "LGE - Buyer is not whitelisted");

                uint256 amountRemaining = 0;

                if (wlRound.purchased[recipient] < wlRound.amountMax)
                    amountRemaining = wlRound.amountMax - wlRound.purchased[recipient];

                require(amount <= amountRemaining, "LGE - Amount exceeds whitelist maximum");
                wlRound.purchased[recipient] = wlRound.purchased[recipient] + amount;
            }
        }
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}


interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract FLEX is IERC20, Ownable, LGEWhitelisted {

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    
    mapping(address => bool) public _feeExcluded;

	uint256 public _feeBurnPct;
	uint256 public _feeRewardPct;
	
	address public _feeRewardAddress;

	mapping(address => bool) public _pair;
	
	address public _router;
	
	address[] public _feeRewardSwapPath;

    constructor(uint256 feeBurnPct, uint256 feeRewardPct, address feeRewardAddress, address router) {

        _name = "FlexMeme";
        _symbol = "FLEX";

        _decimals = 18;
        _totalSupply = 1000000000000e18;

		IUniswapV2Router02 r = IUniswapV2Router02(router);
		IUniswapV2Factory f = IUniswapV2Factory(r.factory());
		
        setPair(f.createPair(address(this), r.WETH()), true);
        
        address[] memory feeRewardSwapPath = new address[](2);
            
        feeRewardSwapPath[0] = address(this);
        feeRewardSwapPath[1] = r.WETH();
		
		setFees(feeBurnPct, feeRewardPct, feeRewardSwapPath, feeRewardAddress);
		
		_router = router;
		
		setFeeExcluded(_msgSender(), true);
		setFeeExcluded(address(this), true);

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function setRouter(address r) public onlyOwner {
        _router = r;
    }
    
    function setFees(uint256 feeBurnPct, uint256 feeRewardPct, address[] memory feeRewardSwapPath, address feeRewardAddress) public onlyOwner {
        require((feeBurnPct+feeRewardPct) <= 2000, "Fees must not total more than 20%");
        require(feeRewardSwapPath.length > 1, "Invalid path");
		require(feeRewardAddress != address(0), "Fee reward address must not be zero address");
		
		_feeBurnPct = feeBurnPct;
		_feeRewardPct = feeRewardPct;
		_feeRewardSwapPath = feeRewardSwapPath;
		_feeRewardAddress = feeRewardAddress;
		
    }

	function setPair(address a, bool pair) public onlyOwner {
        require(a != address(0), "Pair address must not be zero address");
        _pair[a] = pair;
    }

	function setFeeExcluded(address a, bool excluded) public onlyOwner {
        require(a != address(0), "Fee excluded address must not be zero address");
        _feeExcluded[a] = excluded;
    }

    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(address sender, address recipient, uint256 amount) internal {
		LGEWhitelisted._applyLGEWhitelist(sender, recipient, amount);
    }

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
	
	function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
		
        _beforeTokenTransfer(sender, recipient, amount);
		
		_balances[sender] -= amount;
		
		if(_pair[recipient] && !_feeExcluded[sender]) {
			
			uint256 feeBurnAmount = 0;
			
			if(_feeBurnPct > 0) {
			
				feeBurnAmount = (amount*_feeBurnPct)/10000;
				
				_totalSupply -= feeBurnAmount;
				emit Transfer(sender, address(0), feeBurnAmount);
				
			}
			
			uint256 feeRewardAmount = 0;
			
			if(_feeRewardPct > 0 && _feeRewardAddress != address(0))  {
			    
				feeRewardAmount = (amount*_feeRewardPct)/10000;
				
				if(_router != address(0)) {
				    
    				_balances[address(this)] += feeRewardAmount;
    				
    				emit Transfer(sender, address(this), feeRewardAmount);
    				
    				IUniswapV2Router02 r = IUniswapV2Router02(_router);
                    
                    _approve(address(this), _router, feeRewardAmount);
    
                    r.swapExactTokensForTokensSupportingFeeOnTransferTokens(
                        feeRewardAmount,
                        0,
                        _feeRewardSwapPath,
                        _feeRewardAddress,
                        block.timestamp
                    );
                
				} else {
				    _balances[_feeRewardAddress] += feeRewardAmount;
				    emit Transfer(sender, _feeRewardAddress, feeRewardAmount);
				}
				
			}
			
			amount -= (feeBurnAmount+feeRewardAmount);
			
		}

        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    function name() public view override returns (string memory) {
        return _name;
    }

    function symbol() public view override returns (string memory) {
        return _symbol;
    }

    function decimals() public view override 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 virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
    
/**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"feeBurnPct","type":"uint256"},{"internalType":"uint256","name":"feeRewardPct","type":"uint256"},{"internalType":"address","name":"feeRewardAddress","type":"address"},{"internalType":"address","name":"router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousWhitelister","type":"address"},{"indexed":true,"internalType":"address","name":"newWhitelister","type":"address"}],"name":"WhitelisterTransferred","type":"event"},{"inputs":[],"name":"_feeBurnPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeRewardAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeRewardPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_feeRewardSwapPath","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lgePairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lgeTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_lgeWhitelistRounds","outputs":[{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"amountMax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_pair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_whitelister","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"},{"internalType":"uint256[]","name":"durations","type":"uint256[]"},{"internalType":"uint256[]","name":"amountsMax","type":"uint256[]"}],"name":"createLGEWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLGEWhitelistRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"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":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"amountMax","type":"uint256"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"modifyLGEWhitelist","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceWhitelister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setFeeExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeBurnPct","type":"uint256"},{"internalType":"uint256","name":"feeRewardPct","type":"uint256"},{"internalType":"address[]","name":"feeRewardSwapPath","type":"address[]"},{"internalType":"address","name":"feeRewardAddress","type":"address"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bool","name":"pair","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"r","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWhitelister","type":"address"}],"name":"transferWhitelister","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162002af838038062002af88339810160408190526200003491620007fc565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b0319163317905560408051808201909152600880825267466c65784d656d6560c01b602083015290620000b49082620008ec565b5060408051808201909152600481526308c988ab60e31b6020820152600990620000df9082620008ec565b50600a805460ff191660121790556c0c9f2c9cd04674edea400000006007556040805163c45a015560e01b8152905182916000916001600160a01b0384169163c45a01559160048083019260209291908290030181865afa15801562000149573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016f9190620009b8565b905062000266816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ea9190620009b8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000238573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025e9190620009b8565b6001620003f3565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106200029e576200029e620009dd565b60200260200101906001600160a01b031690816001600160a01b031681525050826001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003239190620009b8565b81600181518110620003395762000339620009dd565b6001600160a01b03909216602092830291909101909101526200035f87878388620004d3565b601080546001600160a01b0319166001600160a01b0386161790556200038e620003863390565b60016200067a565b6200039b3060016200067a565b60075433600081815260056020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050505062000a1b565b6000546001600160a01b03163314620004425760405162461bcd60e51b8152602060048201819052602482015260008051602062002ad883398151915260448201526064015b60405180910390fd5b6001600160a01b038216620004a85760405162461bcd60e51b815260206004820152602560248201527f506169722061646472657373206d757374206e6f74206265207a65726f206164604482015264647265737360d81b606482015260840162000439565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146200051e5760405162461bcd60e51b8152602060048201819052602482015260008051602062002ad8833981519152604482015260640162000439565b6107d06200052d8486620009f3565b1115620005875760405162461bcd60e51b815260206004820152602160248201527f46656573206d757374206e6f7420746f74616c206d6f7265207468616e2032306044820152602560f81b606482015260840162000439565b6001825111620005c95760405162461bcd60e51b815260206004820152600c60248201526b092dcecc2d8d2c840e0c2e8d60a31b604482015260640162000439565b6001600160a01b038116620006355760405162461bcd60e51b815260206004820152602b60248201527f466565207265776172642061646472657373206d757374206e6f74206265207a60448201526a65726f206164647265737360a81b606482015260840162000439565b600c849055600d8390558151620006549060119060208501906200075e565b50600e80546001600160a01b0319166001600160a01b0392909216919091179055505050565b6000546001600160a01b03163314620006c55760405162461bcd60e51b8152602060048201819052602482015260008051602062002ad8833981519152604482015260640162000439565b6001600160a01b038216620007335760405162461bcd60e51b815260206004820152602d60248201527f466565206578636c756465642061646472657373206d757374206e6f7420626560448201526c207a65726f206164647265737360981b606482015260840162000439565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b828054828255906000526020600020908101928215620007b6579160200282015b82811115620007b657825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200077f565b50620007c4929150620007c8565b5090565b5b80821115620007c45760008155600101620007c9565b80516001600160a01b0381168114620007f757600080fd5b919050565b600080600080608085870312156200081357600080fd5b84519350602085015192506200082c60408601620007df565b91506200083c60608601620007df565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200087257607f821691505b6020821081036200089357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008e757600081815260208120601f850160051c81016020861015620008c25750805b601f850160051c820191505b81811015620008e357828155600101620008ce565b5050505b505050565b81516001600160401b0381111562000908576200090862000847565b62000920816200091984546200085d565b8462000899565b602080601f8311600181146200095857600084156200093f5750858301515b600019600386901b1c1916600185901b178555620008e3565b600085815260208120601f198616915b82811015620009895788860151825594840194600190910190840162000968565b5085821015620009a85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009cb57600080fd5b620009d682620007df565b9392505050565b634e487b7160e01b600052603260045260246000fd5b8082018082111562000a1557634e487b7160e01b600052601160045260246000fd5b92915050565b6120ad8062000a2b6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c8063771a0b2811610125578063c9f1f47f116100ad578063e3f4f30c1161007c578063e3f4f30c146104a4578063eba116d8146104b7578063edae876f146104da578063f2fde38b146104ed578063ffc877d81461050057600080fd5b8063c9f1f47f14610462578063d5215d1114610475578063da91b76e14610488578063dd62ed3e1461049157600080fd5b80639ad3a7ba116100f45780639ad3a7ba146103f9578063a457c2d714610401578063a77cac7a14610414578063a9059cbb1461043c578063c0d786551461044f57600080fd5b8063771a0b28146103c457806386a22eff146103cd5780638da5cb5b146103e057806395d89b41146103f157600080fd5b806342966c68116101a857806363c6b3d71161017757806363c6b3d714610354578063688a09421461036757806370a082311461037057806371088c6d14610399578063715018a6146103bc57600080fd5b806342966c68146102f057806344ade3c5146103035780634944889814610316578063532f1fed1461034157600080fd5b806323b872dd116101e457806323b872dd146102a05780632e15e5c7146102b3578063313ce567146102c857806339509351146102dd57600080fd5b806306fdde0314610216578063095ea7b31461023457806318160ddd146102575780631b29b0cd14610269575b600080fd5b61021e610513565b60405161022b9190611ae1565b60405180910390f35b610247610242366004611b4b565b6105a5565b604051901515815260200161022b565b6007545b60405190815260200161022b565b6102716105bc565b6040805196875260208701959095529385019290925260608401521515608083015260a082015260c00161022b565b6102476102ae366004611b75565b61069c565b6102c66102c1366004611bb1565b6106c0565b005b600a5460405160ff909116815260200161022b565b6102476102eb366004611b4b565b6106ff565b6102c66102fe366004611bd3565b61072b565b6102c6610311366004611c48565b610735565b600354610329906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b6102c661034f366004611cb8565b610926565b610329610362366004611bd3565b610a5d565b61025b600d5481565b61025b61037e366004611bb1565b6001600160a01b031660009081526005602052604090205490565b6102476103a7366004611bb1565b600b6020526000908152604090205460ff1681565b6102c6610a87565b61025b600c5481565b6102c66103db366004611d39565b610afb565b6000546001600160a01b0316610329565b61021e610bb4565b6102c6610bc3565b61024761040f366004611b4b565b610c37565b610427610422366004611bd3565b610cb2565b6040805192835260208301919091520161022b565b61024761044a366004611b4b565b610ce0565b6102c661045d366004611bb1565b610ced565b6102c6610470366004611d39565b610d39565b600454610329906001600160a01b031681565b61025b60025481565b61025b61049f366004611d6c565b610dfa565b6102c66104b2366004611dac565b610e25565b6102476104c5366004611bb1565b600f6020526000908152604090205460ff1681565b601054610329906001600160a01b031681565b6102c66104fb366004611bb1565b610fa1565b600e54610329906001600160a01b031681565b60606008805461052290611e97565b80601f016020809104026020016040519081016040528092919081815260200182805461054e90611e97565b801561059b5780601f106105705761010080835404028352916020019161059b565b820191906000526020600020905b81548152906001019060200180831161057e57829003601f168201915b5050505050905090565b60006105b233848461108b565b5060015b92915050565b600080600080600080600060025411156106815760025460005b60015481101561067e576000600182815481106105f5576105f5611ed1565b906000526020600020906004020190508060000154836106159190611efd565b925082421161066b57610629826001611efd565b815460018301543360009081526002850160209081526040808320546003909701909152902054929b5090995093975092955060ff1693509091506106949050565b508061067681611f10565b9150506105d6565b50505b5060009450849350839250829150819050805b909192939495565b6000336106aa8582856111b0565b6106b585858561122a565b506001949350505050565b6004546001600160a01b031633146106f35760405162461bcd60e51b81526004016106ea90611f29565b60405180910390fd5b6106fc816115e9565b50565b6000336107218185856107128383610dfa565b61071c9190611efd565b61108b565b5060019392505050565b6106fc33826116a7565b6004546001600160a01b0316331461075f5760405162461bcd60e51b81526004016106ea90611f29565b60015486106107a05760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b60448201526064016106ea565b600084116107e45760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840c2dadeeadce89ac2f607b1b60448201526064016106ea565b600186815481106107f7576107f7611ed1565b906000526020600020906004020160000154851461083557846001878154811061082357610823611ed1565b60009182526020909120600490910201555b6001868154811061084857610848611ed1565b906000526020600020906004020160010154841461088a57836001878154811061087457610874611ed1565b9060005260206000209060040201600101819055505b60005b8281101561091d5781600188815481106108a9576108a9611ed1565b906000526020600020906004020160020160008686858181106108ce576108ce611ed1565b90506020020160208101906108e39190611bb1565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061091581611f10565b91505061088d565b50505050505050565b6004546001600160a01b031633146109505760405162461bcd60e51b81526004016106ea90611f29565b8281146109965760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642077686974656c69737428732960601b60448201526064016106ea565b600380546001600160a01b0319166001600160a01b0387161790558215610a56576109c360016000611a2b565b60005b83811015610a54576001805480820182556000919091526004027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601858583818110610a1457610a14611ed1565b6020029190910135825550838383818110610a3157610a31611ed1565b905060200201358160010181905550508080610a4c90611f10565b9150506109c6565b505b5050505050565b60118181548110610a6d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610ab15760405162461bcd60e51b81526004016106ea90611f60565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b255760405162461bcd60e51b81526004016106ea90611f60565b6001600160a01b038216610b895760405162461bcd60e51b815260206004820152602560248201527f506169722061646472657373206d757374206e6f74206265207a65726f206164604482015264647265737360d81b60648201526084016106ea565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60606009805461052290611e97565b6004546001600160a01b03163314610bed5760405162461bcd60e51b81526004016106ea90611f29565b6004546040516000916001600160a01b0316907f4e78506f3260e366dc9440ee0b4eca2d03aa91536b7605deb90e873d3fc4e5b4908390a3600480546001600160a01b0319169055565b60003381610c458286610dfa565b905083811015610ca55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ea565b6106b5828686840361108b565b60018181548110610cc257600080fd5b60009182526020909120600490910201805460019091015490915082565b60006105b233848461122a565b6000546001600160a01b03163314610d175760405162461bcd60e51b81526004016106ea90611f60565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d635760405162461bcd60e51b81526004016106ea90611f60565b6001600160a01b038216610dcf5760405162461bcd60e51b815260206004820152602d60248201527f466565206578636c756465642061646472657373206d757374206e6f7420626560448201526c207a65726f206164647265737360981b60648201526084016106ea565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610e4f5760405162461bcd60e51b81526004016106ea90611f60565b6107d0610e5c8486611efd565b1115610eb45760405162461bcd60e51b815260206004820152602160248201527f46656573206d757374206e6f7420746f74616c206d6f7265207468616e2032306044820152602560f81b60648201526084016106ea565b6001825111610ef45760405162461bcd60e51b815260206004820152600c60248201526b092dcecc2d8d2c840e0c2e8d60a31b60448201526064016106ea565b6001600160a01b038116610f5e5760405162461bcd60e51b815260206004820152602b60248201527f466565207265776172642061646472657373206d757374206e6f74206265207a60448201526a65726f206164647265737360a81b60648201526084016106ea565b600c849055600d8390558151610f7b906011906020850190611a4c565b50600e80546001600160a01b0319166001600160a01b0392909216919091179055505050565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016106ea90611f60565b6001600160a01b0381166110305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ea565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ea565b6001600160a01b03821661114e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ea565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006111bc8484610dfa565b9050600019811461122457818110156112175760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ea565b611224848484840361108b565b50505050565b6001600160a01b03831661128e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ea565b6001600160a01b0382166112f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ea565b6112fb8383836117d2565b6001600160a01b03831660009081526005602052604081208054839290611323908490611f95565b90915550506001600160a01b0382166000908152600f602052604090205460ff16801561136957506001600160a01b0383166000908152600b602052604090205460ff16155b1561158757600c54600090156113dd57612710600c548361138a9190611fa8565b6113949190611fbf565b905080600760008282546113a89190611f95565b90915550506040518181526000906001600160a01b038616906000805160206120588339815191529060200160405180910390a35b600080600d541180156113fa5750600e546001600160a01b031615155b1561156e57612710600d54846114109190611fa8565b61141a9190611fbf565b6010549091506001600160a01b03161561150b57306000908152600560205260408120805483929061144d908490611efd565b909155505060405181815230906001600160a01b038716906000805160206120588339815191529060200160405180910390a36010546001600160a01b031661149730828461108b565b600e54604051635c11d79560e01b81526001600160a01b0383811692635c11d795926114d3928792600092601192909116904290600401611fe1565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050505061156e565b600e546001600160a01b031660009081526005602052604081208054839290611535908490611efd565b9091555050600e546040518281526001600160a01b03918216918716906000805160206120588339815191529060200160405180910390a35b6115788183611efd565b6115829084611f95565b925050505b6001600160a01b038216600090815260056020526040812080548392906115af908490611efd565b92505081905550816001600160a01b0316836001600160a01b0316600080516020612058833981519152836040516111a391815260200190565b6001600160a01b03811661164b5760405162461bcd60e51b815260206004820152602360248201527f4e65772077686974656c697374657220697320746865207a65726f206164647260448201526265737360e81b60648201526084016106ea565b6004546040516001600160a01b038084169216907f4e78506f3260e366dc9440ee0b4eca2d03aa91536b7605deb90e873d3fc4e5b490600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166117075760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106ea565b611713826000836117d2565b6001600160a01b038216600090815260056020526040902054818110156117875760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106ea565b6001600160a01b038316600081815260056020908152604080832086860390556007805487900390555185815291929160008051602061205883398151915291016111a3565b505050565b6117cd8383836003546001600160a01b031615806117f05750600154155b156117fa57505050565b60025415801561181857506003546001600160a01b03848116911614155b801561183157506003546001600160a01b038381169116145b801561183d5750600081115b1561184757426002555b6003546001600160a01b03848116911614801561187257506003546001600160a01b03838116911614155b156117cd5760006118816105bc565b505050505090506000811115611224576000600161189f8184611f95565b815481106118af576118af611ed1565b600091825260208083206001600160a01b03881684526002600490930201918201905260409091205490915060ff1661192a5760405162461bcd60e51b815260206004820152601e60248201527f4c4745202d204275796572206973206e6f742077686974656c6973746564000060448201526064016106ea565b60018101546001600160a01b03851660009081526003830160205260408120549091111561197f576001600160a01b0385166000908152600383016020526040902054600183015461197c9190611f95565b90505b808411156119de5760405162461bcd60e51b815260206004820152602660248201527f4c4745202d20416d6f756e7420657863656564732077686974656c697374206d6044820152656178696d756d60d01b60648201526084016106ea565b6001600160a01b0385166000908152600383016020526040902054611a04908590611efd565b6001600160a01b038616600090815260039093016020526040909220919091555050505050565b50805460008255600402906000526020600020908101906106fc9190611ab1565b828054828255906000526020600020908101928215611aa1579160200282015b82811115611aa157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611a6c565b50611aad929150611acc565b5090565b5b80821115611aad5760008082556001820155600401611ab2565b5b80821115611aad5760008155600101611acd565b600060208083528351808285015260005b81811015611b0e57858101830151858201604001528201611af2565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611b4657600080fd5b919050565b60008060408385031215611b5e57600080fd5b611b6783611b2f565b946020939093013593505050565b600080600060608486031215611b8a57600080fd5b611b9384611b2f565b9250611ba160208501611b2f565b9150604084013590509250925092565b600060208284031215611bc357600080fd5b611bcc82611b2f565b9392505050565b600060208284031215611be557600080fd5b5035919050565b60008083601f840112611bfe57600080fd5b50813567ffffffffffffffff811115611c1657600080fd5b6020830191508360208260051b8501011115611c3157600080fd5b9250929050565b80358015158114611b4657600080fd5b60008060008060008060a08789031215611c6157600080fd5b863595506020870135945060408701359350606087013567ffffffffffffffff811115611c8d57600080fd5b611c9989828a01611bec565b9094509250611cac905060808801611c38565b90509295509295509295565b600080600080600060608688031215611cd057600080fd5b611cd986611b2f565b9450602086013567ffffffffffffffff80821115611cf657600080fd5b611d0289838a01611bec565b90965094506040880135915080821115611d1b57600080fd5b50611d2888828901611bec565b969995985093965092949392505050565b60008060408385031215611d4c57600080fd5b611d5583611b2f565b9150611d6360208401611c38565b90509250929050565b60008060408385031215611d7f57600080fd5b611d8883611b2f565b9150611d6360208401611b2f565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611dc257600080fd5b843593506020808601359350604086013567ffffffffffffffff80821115611de957600080fd5b818801915088601f830112611dfd57600080fd5b813581811115611e0f57611e0f611d96565b8060051b604051601f19603f83011681018181108582111715611e3457611e34611d96565b60405291825284820192508381018501918b831115611e5257600080fd5b938501935b82851015611e7757611e6885611b2f565b84529385019392850192611e57565b809750505050505050611e8c60608601611b2f565b905092959194509250565b600181811c90821680611eab57607f821691505b602082108103611ecb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105b6576105b6611ee7565b600060018201611f2257611f22611ee7565b5060010190565b6020808252601d908201527f43616c6c6572206973206e6f74207468652077686974656c6973746572000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156105b6576105b6611ee7565b80820281158282048414176105b6576105b6611ee7565b600082611fdc57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156120365784546001600160a01b031683526001948501949284019201612011565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c19f66e310936fe3eeb10e4ae24e537ec772d3f3e777d7ee55f5466be934a9fd64736f6c634300081200334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066b7220f12c15eaa7aec7ef61056c2edf5eb27790000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102115760003560e01c8063771a0b2811610125578063c9f1f47f116100ad578063e3f4f30c1161007c578063e3f4f30c146104a4578063eba116d8146104b7578063edae876f146104da578063f2fde38b146104ed578063ffc877d81461050057600080fd5b8063c9f1f47f14610462578063d5215d1114610475578063da91b76e14610488578063dd62ed3e1461049157600080fd5b80639ad3a7ba116100f45780639ad3a7ba146103f9578063a457c2d714610401578063a77cac7a14610414578063a9059cbb1461043c578063c0d786551461044f57600080fd5b8063771a0b28146103c457806386a22eff146103cd5780638da5cb5b146103e057806395d89b41146103f157600080fd5b806342966c68116101a857806363c6b3d71161017757806363c6b3d714610354578063688a09421461036757806370a082311461037057806371088c6d14610399578063715018a6146103bc57600080fd5b806342966c68146102f057806344ade3c5146103035780634944889814610316578063532f1fed1461034157600080fd5b806323b872dd116101e457806323b872dd146102a05780632e15e5c7146102b3578063313ce567146102c857806339509351146102dd57600080fd5b806306fdde0314610216578063095ea7b31461023457806318160ddd146102575780631b29b0cd14610269575b600080fd5b61021e610513565b60405161022b9190611ae1565b60405180910390f35b610247610242366004611b4b565b6105a5565b604051901515815260200161022b565b6007545b60405190815260200161022b565b6102716105bc565b6040805196875260208701959095529385019290925260608401521515608083015260a082015260c00161022b565b6102476102ae366004611b75565b61069c565b6102c66102c1366004611bb1565b6106c0565b005b600a5460405160ff909116815260200161022b565b6102476102eb366004611b4b565b6106ff565b6102c66102fe366004611bd3565b61072b565b6102c6610311366004611c48565b610735565b600354610329906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b6102c661034f366004611cb8565b610926565b610329610362366004611bd3565b610a5d565b61025b600d5481565b61025b61037e366004611bb1565b6001600160a01b031660009081526005602052604090205490565b6102476103a7366004611bb1565b600b6020526000908152604090205460ff1681565b6102c6610a87565b61025b600c5481565b6102c66103db366004611d39565b610afb565b6000546001600160a01b0316610329565b61021e610bb4565b6102c6610bc3565b61024761040f366004611b4b565b610c37565b610427610422366004611bd3565b610cb2565b6040805192835260208301919091520161022b565b61024761044a366004611b4b565b610ce0565b6102c661045d366004611bb1565b610ced565b6102c6610470366004611d39565b610d39565b600454610329906001600160a01b031681565b61025b60025481565b61025b61049f366004611d6c565b610dfa565b6102c66104b2366004611dac565b610e25565b6102476104c5366004611bb1565b600f6020526000908152604090205460ff1681565b601054610329906001600160a01b031681565b6102c66104fb366004611bb1565b610fa1565b600e54610329906001600160a01b031681565b60606008805461052290611e97565b80601f016020809104026020016040519081016040528092919081815260200182805461054e90611e97565b801561059b5780601f106105705761010080835404028352916020019161059b565b820191906000526020600020905b81548152906001019060200180831161057e57829003601f168201915b5050505050905090565b60006105b233848461108b565b5060015b92915050565b600080600080600080600060025411156106815760025460005b60015481101561067e576000600182815481106105f5576105f5611ed1565b906000526020600020906004020190508060000154836106159190611efd565b925082421161066b57610629826001611efd565b815460018301543360009081526002850160209081526040808320546003909701909152902054929b5090995093975092955060ff1693509091506106949050565b508061067681611f10565b9150506105d6565b50505b5060009450849350839250829150819050805b909192939495565b6000336106aa8582856111b0565b6106b585858561122a565b506001949350505050565b6004546001600160a01b031633146106f35760405162461bcd60e51b81526004016106ea90611f29565b60405180910390fd5b6106fc816115e9565b50565b6000336107218185856107128383610dfa565b61071c9190611efd565b61108b565b5060019392505050565b6106fc33826116a7565b6004546001600160a01b0316331461075f5760405162461bcd60e51b81526004016106ea90611f29565b60015486106107a05760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b60448201526064016106ea565b600084116107e45760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840c2dadeeadce89ac2f607b1b60448201526064016106ea565b600186815481106107f7576107f7611ed1565b906000526020600020906004020160000154851461083557846001878154811061082357610823611ed1565b60009182526020909120600490910201555b6001868154811061084857610848611ed1565b906000526020600020906004020160010154841461088a57836001878154811061087457610874611ed1565b9060005260206000209060040201600101819055505b60005b8281101561091d5781600188815481106108a9576108a9611ed1565b906000526020600020906004020160020160008686858181106108ce576108ce611ed1565b90506020020160208101906108e39190611bb1565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061091581611f10565b91505061088d565b50505050505050565b6004546001600160a01b031633146109505760405162461bcd60e51b81526004016106ea90611f29565b8281146109965760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642077686974656c69737428732960601b60448201526064016106ea565b600380546001600160a01b0319166001600160a01b0387161790558215610a56576109c360016000611a2b565b60005b83811015610a54576001805480820182556000919091526004027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601858583818110610a1457610a14611ed1565b6020029190910135825550838383818110610a3157610a31611ed1565b905060200201358160010181905550508080610a4c90611f10565b9150506109c6565b505b5050505050565b60118181548110610a6d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610ab15760405162461bcd60e51b81526004016106ea90611f60565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b255760405162461bcd60e51b81526004016106ea90611f60565b6001600160a01b038216610b895760405162461bcd60e51b815260206004820152602560248201527f506169722061646472657373206d757374206e6f74206265207a65726f206164604482015264647265737360d81b60648201526084016106ea565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b60606009805461052290611e97565b6004546001600160a01b03163314610bed5760405162461bcd60e51b81526004016106ea90611f29565b6004546040516000916001600160a01b0316907f4e78506f3260e366dc9440ee0b4eca2d03aa91536b7605deb90e873d3fc4e5b4908390a3600480546001600160a01b0319169055565b60003381610c458286610dfa565b905083811015610ca55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ea565b6106b5828686840361108b565b60018181548110610cc257600080fd5b60009182526020909120600490910201805460019091015490915082565b60006105b233848461122a565b6000546001600160a01b03163314610d175760405162461bcd60e51b81526004016106ea90611f60565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d635760405162461bcd60e51b81526004016106ea90611f60565b6001600160a01b038216610dcf5760405162461bcd60e51b815260206004820152602d60248201527f466565206578636c756465642061646472657373206d757374206e6f7420626560448201526c207a65726f206164647265737360981b60648201526084016106ea565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610e4f5760405162461bcd60e51b81526004016106ea90611f60565b6107d0610e5c8486611efd565b1115610eb45760405162461bcd60e51b815260206004820152602160248201527f46656573206d757374206e6f7420746f74616c206d6f7265207468616e2032306044820152602560f81b60648201526084016106ea565b6001825111610ef45760405162461bcd60e51b815260206004820152600c60248201526b092dcecc2d8d2c840e0c2e8d60a31b60448201526064016106ea565b6001600160a01b038116610f5e5760405162461bcd60e51b815260206004820152602b60248201527f466565207265776172642061646472657373206d757374206e6f74206265207a60448201526a65726f206164647265737360a81b60648201526084016106ea565b600c849055600d8390558151610f7b906011906020850190611a4c565b50600e80546001600160a01b0319166001600160a01b0392909216919091179055505050565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016106ea90611f60565b6001600160a01b0381166110305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ea565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ea565b6001600160a01b03821661114e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ea565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006111bc8484610dfa565b9050600019811461122457818110156112175760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ea565b611224848484840361108b565b50505050565b6001600160a01b03831661128e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ea565b6001600160a01b0382166112f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ea565b6112fb8383836117d2565b6001600160a01b03831660009081526005602052604081208054839290611323908490611f95565b90915550506001600160a01b0382166000908152600f602052604090205460ff16801561136957506001600160a01b0383166000908152600b602052604090205460ff16155b1561158757600c54600090156113dd57612710600c548361138a9190611fa8565b6113949190611fbf565b905080600760008282546113a89190611f95565b90915550506040518181526000906001600160a01b038616906000805160206120588339815191529060200160405180910390a35b600080600d541180156113fa5750600e546001600160a01b031615155b1561156e57612710600d54846114109190611fa8565b61141a9190611fbf565b6010549091506001600160a01b03161561150b57306000908152600560205260408120805483929061144d908490611efd565b909155505060405181815230906001600160a01b038716906000805160206120588339815191529060200160405180910390a36010546001600160a01b031661149730828461108b565b600e54604051635c11d79560e01b81526001600160a01b0383811692635c11d795926114d3928792600092601192909116904290600401611fe1565b600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050505061156e565b600e546001600160a01b031660009081526005602052604081208054839290611535908490611efd565b9091555050600e546040518281526001600160a01b03918216918716906000805160206120588339815191529060200160405180910390a35b6115788183611efd565b6115829084611f95565b925050505b6001600160a01b038216600090815260056020526040812080548392906115af908490611efd565b92505081905550816001600160a01b0316836001600160a01b0316600080516020612058833981519152836040516111a391815260200190565b6001600160a01b03811661164b5760405162461bcd60e51b815260206004820152602360248201527f4e65772077686974656c697374657220697320746865207a65726f206164647260448201526265737360e81b60648201526084016106ea565b6004546040516001600160a01b038084169216907f4e78506f3260e366dc9440ee0b4eca2d03aa91536b7605deb90e873d3fc4e5b490600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166117075760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106ea565b611713826000836117d2565b6001600160a01b038216600090815260056020526040902054818110156117875760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106ea565b6001600160a01b038316600081815260056020908152604080832086860390556007805487900390555185815291929160008051602061205883398151915291016111a3565b505050565b6117cd8383836003546001600160a01b031615806117f05750600154155b156117fa57505050565b60025415801561181857506003546001600160a01b03848116911614155b801561183157506003546001600160a01b038381169116145b801561183d5750600081115b1561184757426002555b6003546001600160a01b03848116911614801561187257506003546001600160a01b03838116911614155b156117cd5760006118816105bc565b505050505090506000811115611224576000600161189f8184611f95565b815481106118af576118af611ed1565b600091825260208083206001600160a01b03881684526002600490930201918201905260409091205490915060ff1661192a5760405162461bcd60e51b815260206004820152601e60248201527f4c4745202d204275796572206973206e6f742077686974656c6973746564000060448201526064016106ea565b60018101546001600160a01b03851660009081526003830160205260408120549091111561197f576001600160a01b0385166000908152600383016020526040902054600183015461197c9190611f95565b90505b808411156119de5760405162461bcd60e51b815260206004820152602660248201527f4c4745202d20416d6f756e7420657863656564732077686974656c697374206d6044820152656178696d756d60d01b60648201526084016106ea565b6001600160a01b0385166000908152600383016020526040902054611a04908590611efd565b6001600160a01b038616600090815260039093016020526040909220919091555050505050565b50805460008255600402906000526020600020908101906106fc9190611ab1565b828054828255906000526020600020908101928215611aa1579160200282015b82811115611aa157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611a6c565b50611aad929150611acc565b5090565b5b80821115611aad5760008082556001820155600401611ab2565b5b80821115611aad5760008155600101611acd565b600060208083528351808285015260005b81811015611b0e57858101830151858201604001528201611af2565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611b4657600080fd5b919050565b60008060408385031215611b5e57600080fd5b611b6783611b2f565b946020939093013593505050565b600080600060608486031215611b8a57600080fd5b611b9384611b2f565b9250611ba160208501611b2f565b9150604084013590509250925092565b600060208284031215611bc357600080fd5b611bcc82611b2f565b9392505050565b600060208284031215611be557600080fd5b5035919050565b60008083601f840112611bfe57600080fd5b50813567ffffffffffffffff811115611c1657600080fd5b6020830191508360208260051b8501011115611c3157600080fd5b9250929050565b80358015158114611b4657600080fd5b60008060008060008060a08789031215611c6157600080fd5b863595506020870135945060408701359350606087013567ffffffffffffffff811115611c8d57600080fd5b611c9989828a01611bec565b9094509250611cac905060808801611c38565b90509295509295509295565b600080600080600060608688031215611cd057600080fd5b611cd986611b2f565b9450602086013567ffffffffffffffff80821115611cf657600080fd5b611d0289838a01611bec565b90965094506040880135915080821115611d1b57600080fd5b50611d2888828901611bec565b969995985093965092949392505050565b60008060408385031215611d4c57600080fd5b611d5583611b2f565b9150611d6360208401611c38565b90509250929050565b60008060408385031215611d7f57600080fd5b611d8883611b2f565b9150611d6360208401611b2f565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611dc257600080fd5b843593506020808601359350604086013567ffffffffffffffff80821115611de957600080fd5b818801915088601f830112611dfd57600080fd5b813581811115611e0f57611e0f611d96565b8060051b604051601f19603f83011681018181108582111715611e3457611e34611d96565b60405291825284820192508381018501918b831115611e5257600080fd5b938501935b82851015611e7757611e6885611b2f565b84529385019392850192611e57565b809750505050505050611e8c60608601611b2f565b905092959194509250565b600181811c90821680611eab57607f821691505b602082108103611ecb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105b6576105b6611ee7565b600060018201611f2257611f22611ee7565b5060010190565b6020808252601d908201527f43616c6c6572206973206e6f74207468652077686974656c6973746572000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156105b6576105b6611ee7565b80820281158282048414176105b6576105b6611ee7565b600082611fdc57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156120365784546001600160a01b031683526001948501949284019201612011565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c19f66e310936fe3eeb10e4ae24e537ec772d3f3e777d7ee55f5466be934a9fd64736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066b7220f12c15eaa7aec7ef61056c2edf5eb27790000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : feeBurnPct (uint256): 0
Arg [1] : feeRewardPct (uint256): 0
Arg [2] : feeRewardAddress (address): 0x66B7220F12c15eAa7Aec7Ef61056C2Edf5eb2779
Arg [3] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 00000000000000000000000066b7220f12c15eaa7aec7ef61056c2edf5eb2779
Arg [3] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

15769:10639:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22216:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23097:169;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;23097:169:0;1004:187:1;22520:100:0;22600:12;;22520:100;;;1342:25:1;;;1330:2;1315:18;22520:100:0;1196:177:1;7055:1022:0;;;:::i;:::-;;;;1659:25:1;;;1715:2;1700:18;;1693:34;;;;1743:18;;;1736:34;;;;1801:2;1786:18;;1779:34;1857:14;1850:22;1844:3;1829:19;;1822:51;1904:3;1889:19;;1882:35;1646:3;1631:19;7055:1022:0;1378:545:1;24556:261:0;;;;;;:::i;:::-;;:::i;4089:133::-;;;;;;:::i;:::-;;:::i;:::-;;22420:92;22495:9;;22420:92;;22495:9;;;;2594:36:1;;2582:2;2567:18;22420:92:0;2452:184:1;25226:238:0;;;;;;:::i;:::-;;:::i;18271:85::-;;;;;;:::i;:::-;;:::i;5884:710::-;;;;;;:::i;:::-;;:::i;3532:30::-;;;;;-1:-1:-1;;;;;3532:30:0;;;;;;-1:-1:-1;;;;;4243:32:1;;;4225:51;;4213:2;4198:18;3532:30:0;4079:203:1;4851:673:0;;;;;;:::i;:::-;;:::i;16315:35::-;;;;;;:::i;:::-;;:::i;16169:28::-;;;;;;22628:119;;;;;;:::i;:::-;-1:-1:-1;;;;;22721:18:0;22694:7;22721:18;;;:9;:18;;;;;;;22628:119;16089:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2663:148;;;:::i;16139:26::-;;;;;;17896:166;;;;;;:::i;:::-;;:::i;2012:87::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;2012:87;;22316:96;;;:::i;3917:164::-;;;:::i;25967:436::-;;;;;;:::i;:::-;;:::i;3445:43::-;;;;;;:::i;:::-;;:::i;:::-;;;;5572:25:1;;;5628:2;5613:18;;5606:34;;;;5545:18;3445:43:0;5398:248:1;22755:175:0;;;;;;:::i;:::-;;:::i;17257:77::-;;;;;;:::i;:::-;;:::i;18067:196::-;;;;;;:::i;:::-;;:::i;3571:27::-;;;;;-1:-1:-1;;;;;3571:27:0;;;3497:28;;;;;;22938:151;;;;;;:::i;:::-;;:::i;17346:545::-;;;;;;:::i;:::-;;:::i;16242:37::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16286:22;;;;;-1:-1:-1;;;;;16286:22:0;;;2966:244;;;;;;:::i;:::-;;:::i;16204:32::-;;;;;-1:-1:-1;;;;;16204:32:0;;;22216:92;22262:13;22295:5;22288:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22216:92;:::o;23097:169::-;23180:4;23197:39;681:10;23220:7;23229:6;23197:8;:39::i;:::-;-1:-1:-1;23254:4:0;23097:169;;;;;:::o;7055:1022::-;7149:7;7171;7193;7215;7237:4;7256:7;7311:1;7295:13;;:17;7291:737;;;7360:13;;7329:28;7390:627;7414:19;:26;7410:30;;7390:627;;;7466:30;7499:19;7519:1;7499:22;;;;;;;;:::i;:::-;;;;;;;;;;;7466:55;;7588:7;:16;;;7565:20;:39;;;;:::i;:::-;7542:62;;7646:20;7627:15;:39;7623:378;;7723:5;:1;7727;7723:5;:::i;:::-;7755:16;;7845:17;;;;681:10;7755:16;7889:31;;;:17;;;:31;;;;;;;;;7947:17;;;;:31;;;;;;7689:312;;-1:-1:-1;7755:16:0;;-1:-1:-1;7798:20:0;;-1:-1:-1;7845:17:0;;-1:-1:-1;7889:31:0;;;-1:-1:-1;7947:31:0;;-1:-1:-1;7689:312:0;;-1:-1:-1;7689:312:0;7623:378;-1:-1:-1;7442:3:0;;;;:::i;:::-;;;;7390:627;;;;7314:714;7291:737;-1:-1:-1;8048:1:0;;-1:-1:-1;8048:1:0;;-1:-1:-1;8048:1:0;;-1:-1:-1;8048:1:0;;-1:-1:-1;8048:1:0;;-1:-1:-1;8048:1:0;7055:1022;;;;;;;:::o;24556:261::-;24653:4;681:10;24711:38;24727:4;681:10;24742:6;24711:15;:38::i;:::-;24760:27;24770:4;24776:2;24780:6;24760:9;:27::i;:::-;-1:-1:-1;24805:4:0;;24556:261;-1:-1:-1;;;;24556:261:0:o;4089:133::-;3827:12;;-1:-1:-1;;;;;3827:12:0;681:10;3827:28;3819:70;;;;-1:-1:-1;;;3819:70:0;;;;;;;:::i;:::-;;;;;;;;;4178:36:::1;4199:14;4178:20;:36::i;:::-;4089:133:::0;:::o;25226:238::-;25314:4;681:10;25370:64;681:10;25386:7;25423:10;25395:25;681:10;25386:7;25395:9;:25::i;:::-;:38;;;;:::i;:::-;25370:8;:64::i;:::-;-1:-1:-1;25452:4:0;;25226:238;-1:-1:-1;;;25226:238:0:o;18271:85::-;18321:27;681:10;18341:6;18321:5;:27::i;5884:710::-;3827:12;;-1:-1:-1;;;;;3827:12:0;681:10;3827:28;3819:70;;;;-1:-1:-1;;;3819:70:0;;;;;;;:::i;:::-;6114:19:::1;:26:::0;6106:34;::::1;6098:60;;;::::0;-1:-1:-1;;;6098:60:0;;8864:2:1;6098:60:0::1;::::0;::::1;8846:21:1::0;8903:2;8883:18;;;8876:30;-1:-1:-1;;;8922:18:1;;;8915:43;8975:18;;6098:60:0::1;8662:337:1::0;6098:60:0::1;6189:1;6177:9;:13;6169:43;;;::::0;-1:-1:-1;;;6169:43:0;;9206:2:1;6169:43:0::1;::::0;::::1;9188:21:1::0;9245:2;9225:18;;;9218:30;-1:-1:-1;;;9264:18:1;;;9257:47;9321:18;;6169:43:0::1;9004:341:1::0;6169:43:0::1;6241:19;6261:5;6241:26;;;;;;;;:::i;:::-;;;;;;;;;;;:35;;;6229:8;:47;6225:99;;6316:8;6278:19;6298:5;6278:26;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:46:::0;6225:99:::1;6354:19;6374:5;6354:26;;;;;;;;:::i;:::-;;;;;;;;;;;:36;;;6341:9;:49;6337:103;;6431:9;6392:19;6412:5;6392:26;;;;;;;;:::i;:::-;;;;;;;;;;;:36;;:48;;;;6337:103;6458:9;6453:134;6473:20:::0;;::::1;6453:134;;;6568:7;6515:19;6535:5;6515:26;;;;;;;;:::i;:::-;;;;;;;;;;;:36;;:50;6552:9;;6562:1;6552:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6515:50:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;6515:50:0;:60;;-1:-1:-1;;6515:60:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6495:3;::::1;::::0;::::1;:::i;:::-;;;;6453:134;;;;5884:710:::0;;;;;;:::o;4851:673::-;3827:12;;-1:-1:-1;;;;;3827:12:0;681:10;3827:28;3819:70;;;;-1:-1:-1;;;3819:70:0;;;;;;;:::i;:::-;5041:37;;::::1;5033:70;;;::::0;-1:-1:-1;;;5033:70:0;;9552:2:1;5033:70:0::1;::::0;::::1;9534:21:1::0;9591:2;9571:18;;;9564:30;-1:-1:-1;;;9610:18:1;;;9603:50;9670:18;;5033:70:0::1;9350:344:1::0;5033:70:0::1;5116:15;:29:::0;;-1:-1:-1;;;;;;5116:29:0::1;-1:-1:-1::0;;;;;5116:29:0;::::1;;::::0;;5162:20;;5158:359:::1;;5199:26;5206:19;;5199:26;:::i;:::-;5247:9;5242:264;5262:20:::0;;::::1;5242:264;;;5348:19;:26:::0;;;;::::1;::::0;;5308:37:::1;5348:26:::0;;;;::::1;;::::0;::::1;5419:9:::0;;5429:1;5419:12;;::::1;;;;;:::i;:::-;;;::::0;;;::::1;;5393:38:::0;;-1:-1:-1;5477:10:0;;5488:1;5477:13;;::::1;;;;;:::i;:::-;;;;;;;5450:14;:24;;:40;;;;5289:217;5284:3;;;;;:::i;:::-;;;;5242:264;;;;5158:359;4851:673:::0;;;;;:::o;16315:35::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16315:35:0;;-1:-1:-1;16315:35:0;:::o;2663:148::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;2770:1:::1;2754:6:::0;;2733:40:::1;::::0;-1:-1:-1;;;;;2754:6:0;;::::1;::::0;2733:40:::1;::::0;2770:1;;2733:40:::1;2801:1;2784:19:::0;;-1:-1:-1;;;;;;2784:19:0::1;::::0;;2663:148::o;17896:166::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17971:15:0;::::1;17963:65;;;::::0;-1:-1:-1;;;17963:65:0;;10262:2:1;17963:65:0::1;::::0;::::1;10244:21:1::0;10301:2;10281:18;;;10274:30;10340:34;10320:18;;;10313:62;-1:-1:-1;;;10391:18:1;;;10384:35;10436:19;;17963:65:0::1;10060:401:1::0;17963:65:0::1;-1:-1:-1::0;;;;;18039:8:0;;;::::1;;::::0;;;:5:::1;:8;::::0;;;;:15;;-1:-1:-1;;18039:15:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17896:166::o;22316:96::-;22364:13;22397:7;22390:14;;;;;:::i;3917:164::-;3827:12;;-1:-1:-1;;;;;3827:12:0;681:10;3827:28;3819:70;;;;-1:-1:-1;;;3819:70:0;;;;;;;:::i;:::-;4012:12:::1;::::0;3989:48:::1;::::0;4034:1:::1;::::0;-1:-1:-1;;;;;4012:12:0::1;::::0;3989:48:::1;::::0;4034:1;;3989:48:::1;4048:12;:25:::0;;-1:-1:-1;;;;;;4048:25:0::1;::::0;;3917:164::o;25967:436::-;26060:4;681:10;26060:4;26143:25;681:10;26160:7;26143:9;:25::i;:::-;26116:52;;26207:15;26187:16;:35;;26179:85;;;;-1:-1:-1;;;26179:85:0;;10668:2:1;26179:85:0;;;10650:21:1;10707:2;10687:18;;;10680:30;10746:34;10726:18;;;10719:62;-1:-1:-1;;;10797:18:1;;;10790:35;10842:19;;26179:85:0;10466:401:1;26179:85:0;26300:60;26309:5;26316:7;26344:15;26325:16;:34;26300:8;:60::i;3445:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3445:43:0;:::o;22755:175::-;22841:4;22858:42;681:10;22882:9;22893:6;22858:9;:42::i;17257:77::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;17315:7:::1;:11:::0;;-1:-1:-1;;;;;;17315:11:0::1;-1:-1:-1::0;;;;;17315:11:0;;;::::1;::::0;;;::::1;::::0;;17257:77::o;18067:196::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18153:15:0;::::1;18145:73;;;::::0;-1:-1:-1;;;18145:73:0;;11074:2:1;18145:73:0::1;::::0;::::1;11056:21:1::0;11113:2;11093:18;;;11086:30;11152:34;11132:18;;;11125:62;-1:-1:-1;;;11203:18:1;;;11196:43;11256:19;;18145:73:0::1;10872:409:1::0;18145:73:0::1;-1:-1:-1::0;;;;;18229:15:0;;;::::1;;::::0;;;:12:::1;:15;::::0;;;;:26;;-1:-1:-1;;18229:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18067:196::o;22938:151::-;-1:-1:-1;;;;;23054:18:0;;;23027:7;23054:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;22938:151::o;17346:545::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;17532:4:::1;17504:23;17515:12:::0;17504:10;:23:::1;:::i;:::-;17503:33;;17495:79;;;::::0;-1:-1:-1;;;17495:79:0;;11488:2:1;17495:79:0::1;::::0;::::1;11470:21:1::0;11527:2;11507:18;;;11500:30;11566:34;11546:18;;;11539:62;-1:-1:-1;;;11617:18:1;;;11610:31;11658:19;;17495:79:0::1;11286:397:1::0;17495:79:0::1;17620:1;17593:17;:24;:28;17585:53;;;::::0;-1:-1:-1;;;17585:53:0;;11890:2:1;17585:53:0::1;::::0;::::1;11872:21:1::0;11929:2;11909:18;;;11902:30;-1:-1:-1;;;11948:18:1;;;11941:42;12000:18;;17585:53:0::1;11688:336:1::0;17585:53:0::1;-1:-1:-1::0;;;;;17651:30:0;::::1;17643:86;;;::::0;-1:-1:-1;;;17643:86:0;;12231:2:1;17643:86:0::1;::::0;::::1;12213:21:1::0;12270:2;12250:18;;;12243:30;12309:34;12289:18;;;12282:62;-1:-1:-1;;;12360:18:1;;;12353:41;12411:19;;17643:86:0::1;12029:407:1::0;17643:86:0::1;17738:11;:24:::0;;;17767:13:::1;:28:::0;;;17800:38;;::::1;::::0;:18:::1;::::0;:38:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;17843:17:0::1;:36:::0;;-1:-1:-1;;;;;;17843:36:0::1;-1:-1:-1::0;;;;;17843:36:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;17346:545:0:o;2966:244::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3055:22:0;::::1;3047:73;;;::::0;-1:-1:-1;;;3047:73:0;;12643:2:1;3047:73:0::1;::::0;::::1;12625:21:1::0;12682:2;12662:18;;;12655:30;12721:34;12701:18;;;12694:62;-1:-1:-1;;;12772:18:1;;;12765:36;12818:19;;3047:73:0::1;12441:402:1::0;3047:73:0::1;3157:6;::::0;;3136:38:::1;::::0;-1:-1:-1;;;;;3136:38:0;;::::1;::::0;3157:6;::::1;::::0;3136:38:::1;::::0;::::1;3185:6;:17:::0;;-1:-1:-1;;;;;;3185:17:0::1;-1:-1:-1::0;;;;;3185:17:0;;;::::1;::::0;;;::::1;::::0;;2966:244::o;19802:346::-;-1:-1:-1;;;;;19904:19:0;;19896:68;;;;-1:-1:-1;;;19896:68:0;;13050:2:1;19896:68:0;;;13032:21:1;13089:2;13069:18;;;13062:30;13128:34;13108:18;;;13101:62;-1:-1:-1;;;13179:18:1;;;13172:34;13223:19;;19896:68:0;12848:400:1;19896:68:0;-1:-1:-1;;;;;19983:21:0;;19975:68;;;;-1:-1:-1;;;19975:68:0;;13455:2:1;19975:68:0;;;13437:21:1;13494:2;13474:18;;;13467:30;13533:34;13513:18;;;13506:62;-1:-1:-1;;;13584:18:1;;;13577:32;13626:19;;19975:68:0;13253:398:1;19975:68:0;-1:-1:-1;;;;;20056:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20108:32;;1342:25:1;;;20108:32:0;;1315:18:1;20108:32:0;;;;;;;;19802:346;;;:::o;23557:419::-;23658:24;23685:25;23695:5;23702:7;23685:9;:25::i;:::-;23658:52;;-1:-1:-1;;23725:16:0;:37;23721:248;;23807:6;23787:16;:26;;23779:68;;;;-1:-1:-1;;;23779:68:0;;13858:2:1;23779:68:0;;;13840:21:1;13897:2;13877:18;;;13870:30;13936:31;13916:18;;;13909:59;13985:18;;23779:68:0;13656:353:1;23779:68:0;23891:51;23900:5;23907:7;23935:6;23916:16;:25;23891:8;:51::i;:::-;23647:329;23557:419;;;:::o;20423:1785::-;-1:-1:-1;;;;;20521:20:0;;20513:70;;;;-1:-1:-1;;;20513:70:0;;14216:2:1;20513:70:0;;;14198:21:1;14255:2;14235:18;;;14228:30;14294:34;14274:18;;;14267:62;-1:-1:-1;;;14345:18:1;;;14338:35;14390:19;;20513:70:0;14014:401:1;20513:70:0;-1:-1:-1;;;;;20602:23:0;;20594:71;;;;-1:-1:-1;;;20594:71:0;;14622:2:1;20594:71:0;;;14604:21:1;14661:2;14641:18;;;14634:30;14700:34;14680:18;;;14673:62;-1:-1:-1;;;14751:18:1;;;14744:33;14794:19;;20594:71:0;14420:399:1;20594:71:0;20680:47;20701:6;20709:9;20720:6;20680:20;:47::i;:::-;-1:-1:-1;;;;;20736:17:0;;;;;;:9;:17;;;;;:27;;20757:6;;20736:17;:27;;20757:6;;20736:27;:::i;:::-;;;;-1:-1:-1;;;;;;;20775:16:0;;;;;;:5;:16;;;;;;;;:41;;;;-1:-1:-1;;;;;;20796:20:0;;;;;;:12;:20;;;;;;;;20795:21;20775:41;20772:1335;;;20868:11;;20829:21;;20868:15;20865:184;;20934:5;20921:11;;20914:6;:18;;;;:::i;:::-;20913:26;;;;:::i;:::-;20897:42;;20968:13;20952:12;;:29;;;;;;;:::i;:::-;;;;-1:-1:-1;;20993:43:0;;1342:25:1;;;21018:1:0;;-1:-1:-1;;;;;20993:43:0;;;-1:-1:-1;;;;;;;;;;;20993:43:0;1330:2:1;1315:18;20993:43:0;;;;;;;20865:184;21059:23;21116:1;21100:13;;:17;:52;;;;-1:-1:-1;21121:17:0;;-1:-1:-1;;;;;21121:17:0;:31;;21100:52;21097:948;;;21212:5;21197:13;;21190:6;:20;;;;:::i;:::-;21189:28;;;;:::i;:::-;21233:7;;21171:46;;-1:-1:-1;;;;;;21233:7:0;:21;21230:803;;21295:4;21277:24;;;;:9;:24;;;;;:43;;21305:15;;21277:24;:43;;21305:15;;21277:43;:::i;:::-;;;;-1:-1:-1;;21346:48:0;;1342:25:1;;;21371:4:0;;-1:-1:-1;;;;;21346:48:0;;;-1:-1:-1;;;;;;;;;;;21346:48:0;1330:2:1;1315:18;21346:48:0;;;;;;;21457:7;;-1:-1:-1;;;;;21457:7:0;21510:49;21527:4;21457:7;21543:15;21510:8;:49::i;:::-;21785:17;;21588:279;;-1:-1:-1;;;21588:279:0;;-1:-1:-1;;;;;21588:55:0;;;;;;:279;;21670:15;;21712:1;;21740:18;;21785:17;;;;21829:15;;21588:279;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21256:637;21230:803;;;21920:17;;-1:-1:-1;;;;;21920:17:0;21910:28;;;;:9;:28;;;;;:47;;21942:15;;21910:28;:47;;21942:15;;21910:47;:::i;:::-;;;;-1:-1:-1;;21990:17:0;;21973:52;;1342:25:1;;;-1:-1:-1;;;;;21990:17:0;;;;21973:52;;;-1:-1:-1;;;;;;;;;;;21973:52:0;1330:2:1;1315:18;21973:52:0;;;;;;;21230:803;22066:29;22080:15;22066:13;:29;:::i;:::-;22055:41;;;;:::i;:::-;;;20818:1289;;20772:1335;-1:-1:-1;;;;;22119:20:0;;;;;;:9;:20;;;;;:30;;22143:6;;22119:20;:30;;22143:6;;22119:30;:::i;:::-;;;;;;;;22182:9;-1:-1:-1;;;;;22165:35:0;22174:6;-1:-1:-1;;;;;22165:35:0;-1:-1:-1;;;;;;;;;;;22193:6:0;22165:35;;;;1342:25:1;;1330:2;1315:18;;1196:177;4230:266:0;-1:-1:-1;;;;;4312:28:0;;4304:76;;;;-1:-1:-1;;;4304:76:0;;16562:2:1;4304:76:0;;;16544:21:1;16601:2;16581:18;;;16574:30;16640:34;16620:18;;;16613:62;-1:-1:-1;;;16691:18:1;;;16684:33;16734:19;;4304:76:0;16360:399:1;4304:76:0;4419:12;;4396:52;;-1:-1:-1;;;;;4396:52:0;;;;4419:12;;4396:52;;4419:12;;4396:52;4459:12;:29;;-1:-1:-1;;;;;;4459:29:0;-1:-1:-1;;;;;4459:29:0;;;;;;;;;;4230:266::o;18689:675::-;-1:-1:-1;;;;;18773:21:0;;18765:67;;;;-1:-1:-1;;;18765:67:0;;16966:2:1;18765:67:0;;;16948:21:1;17005:2;16985:18;;;16978:30;17044:34;17024:18;;;17017:62;-1:-1:-1;;;17095:18:1;;;17088:31;17136:19;;18765:67:0;16764:397:1;18765:67:0;18845:49;18866:7;18883:1;18887:6;18845:20;:49::i;:::-;-1:-1:-1;;;;;18932:18:0;;18907:22;18932:18;;;:9;:18;;;;;;18969:24;;;;18961:71;;;;-1:-1:-1;;;18961:71:0;;17368:2:1;18961:71:0;;;17350:21:1;17407:2;17387:18;;;17380:30;17446:34;17426:18;;;17419:62;-1:-1:-1;;;17497:18:1;;;17490:32;17539:19;;18961:71:0;17166:398:1;18961:71:0;-1:-1:-1;;;;;19068:18:0;;;;;;:9;:18;;;;;;;;19089:23;;;19068:44;;19207:12;:22;;;;;;;19258:37;1342:25:1;;;19068:18:0;;;-1:-1:-1;;;;;;;;;;;19258:37:0;1315:18:1;19258:37:0;1196:177:1;19308:48:0;18754:610;18689:675;;:::o;20156:163::-;20251:60;20285:6;20293:9;20304:6;8340:15;;-1:-1:-1;;;;;8340:15:0;:29;;:64;;-1:-1:-1;8373:19:0;:26;:31;8340:64;8336:77;;;8203:1188;;;:::o;8336:77::-;8429:13;;:18;:47;;;;-1:-1:-1;8461:15:0;;-1:-1:-1;;;;;8451:25:0;;;8461:15;;8451:25;;8429:47;:79;;;;-1:-1:-1;8493:15:0;;-1:-1:-1;;;;;8480:28:0;;;8493:15;;8480:28;8429:79;:93;;;;;8521:1;8512:6;:10;8429:93;8425:143;;;8553:15;8537:13;:31;8425:143;8595:15;;-1:-1:-1;;;;;8585:25:0;;;8595:15;;8585:25;:57;;;;-1:-1:-1;8627:15:0;;-1:-1:-1;;;;;8614:28:0;;;8627:15;;8614:28;;8585:57;8581:803;;;8684:21;8719:22;:20;:22::i;:::-;8683:58;;;;;;;8778:1;8762:13;:17;8758:615;;;8800:30;8833:19;8853:17;8833:19;8853:13;:17;:::i;:::-;8833:38;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8900:28:0;;;;:17;8833:38;;;;;8900:17;;;:28;;;;;;;8833:38;;-1:-1:-1;8900:28:0;;8892:71;;;;-1:-1:-1;;;8892:71:0;;17771:2:1;8892:71:0;;;17753:21:1;17810:2;17790:18;;;17783:30;17849:32;17829:18;;;17822:60;17899:18;;8892:71:0;17569:354:1;8892:71:0;9067:17;;;;-1:-1:-1;;;;;9036:28:0;;8984:23;9036:28;;;:17;;;:28;;;;;;8984:23;;-1:-1:-1;9032:141:0;;;-1:-1:-1;;;;;9145:28:0;;;;;;:17;;;:28;;;;;;9125:17;;;;:48;;9145:28;9125:48;:::i;:::-;9107:66;;9032:141;9212:15;9202:6;:25;;9194:76;;;;-1:-1:-1;;;9194:76:0;;18130:2:1;9194:76:0;;;18112:21:1;18169:2;18149:18;;;18142:30;18208:34;18188:18;;;18181:62;-1:-1:-1;;;18259:18:1;;;18252:36;18305:19;;9194:76:0;17928:402:1;9194:76:0;-1:-1:-1;;;;;9320:28:0;;;;;;:17;;;:28;;;;;;:37;;9351:6;;9320:37;:::i;:::-;-1:-1:-1;;;;;9289:28:0;;;;;;:17;;;;:28;;;;;;:68;;;;-1:-1:-1;8644:740:0;8203:1188;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1928:328::-;2005:6;2013;2021;2074:2;2062:9;2053:7;2049:23;2045:32;2042:52;;;2090:1;2087;2080:12;2042:52;2113:29;2132:9;2113:29;:::i;:::-;2103:39;;2161:38;2195:2;2184:9;2180:18;2161:38;:::i;:::-;2151:48;;2246:2;2235:9;2231:18;2218:32;2208:42;;1928:328;;;;;:::o;2261:186::-;2320:6;2373:2;2361:9;2352:7;2348:23;2344:32;2341:52;;;2389:1;2386;2379:12;2341:52;2412:29;2431:9;2412:29;:::i;:::-;2402:39;2261:186;-1:-1:-1;;;2261:186:1:o;2641:180::-;2700:6;2753:2;2741:9;2732:7;2728:23;2724:32;2721:52;;;2769:1;2766;2759:12;2721:52;-1:-1:-1;2792:23:1;;2641:180;-1:-1:-1;2641:180:1:o;2826:367::-;2889:8;2899:6;2953:3;2946:4;2938:6;2934:17;2930:27;2920:55;;2971:1;2968;2961:12;2920:55;-1:-1:-1;2994:20:1;;3037:18;3026:30;;3023:50;;;3069:1;3066;3059:12;3023:50;3106:4;3098:6;3094:17;3082:29;;3166:3;3159:4;3149:6;3146:1;3142:14;3134:6;3130:27;3126:38;3123:47;3120:67;;;3183:1;3180;3173:12;3120:67;2826:367;;;;;:::o;3198:160::-;3263:20;;3319:13;;3312:21;3302:32;;3292:60;;3348:1;3345;3338:12;3363:711;3482:6;3490;3498;3506;3514;3522;3575:3;3563:9;3554:7;3550:23;3546:33;3543:53;;;3592:1;3589;3582:12;3543:53;3628:9;3615:23;3605:33;;3685:2;3674:9;3670:18;3657:32;3647:42;;3736:2;3725:9;3721:18;3708:32;3698:42;;3791:2;3780:9;3776:18;3763:32;3818:18;3810:6;3807:30;3804:50;;;3850:1;3847;3840:12;3804:50;3889:70;3951:7;3942:6;3931:9;3927:22;3889:70;:::i;:::-;3978:8;;-1:-1:-1;3863:96:1;-1:-1:-1;4032:36:1;;-1:-1:-1;4063:3:1;4048:19;;4032:36;:::i;:::-;4022:46;;3363:711;;;;;;;;:::o;4287:847::-;4418:6;4426;4434;4442;4450;4503:2;4491:9;4482:7;4478:23;4474:32;4471:52;;;4519:1;4516;4509:12;4471:52;4542:29;4561:9;4542:29;:::i;:::-;4532:39;;4622:2;4611:9;4607:18;4594:32;4645:18;4686:2;4678:6;4675:14;4672:34;;;4702:1;4699;4692:12;4672:34;4741:70;4803:7;4794:6;4783:9;4779:22;4741:70;:::i;:::-;4830:8;;-1:-1:-1;4715:96:1;-1:-1:-1;4918:2:1;4903:18;;4890:32;;-1:-1:-1;4934:16:1;;;4931:36;;;4963:1;4960;4953:12;4931:36;;5002:72;5066:7;5055:8;5044:9;5040:24;5002:72;:::i;:::-;4287:847;;;;-1:-1:-1;4287:847:1;;-1:-1:-1;5093:8:1;;4976:98;4287:847;-1:-1:-1;;;4287:847:1:o;5139:254::-;5204:6;5212;5265:2;5253:9;5244:7;5240:23;5236:32;5233:52;;;5281:1;5278;5271:12;5233:52;5304:29;5323:9;5304:29;:::i;:::-;5294:39;;5352:35;5383:2;5372:9;5368:18;5352:35;:::i;:::-;5342:45;;5139:254;;;;;:::o;5651:260::-;5719:6;5727;5780:2;5768:9;5759:7;5755:23;5751:32;5748:52;;;5796:1;5793;5786:12;5748:52;5819:29;5838:9;5819:29;:::i;:::-;5809:39;;5867:38;5901:2;5890:9;5886:18;5867:38;:::i;5916:127::-;5977:10;5972:3;5968:20;5965:1;5958:31;6008:4;6005:1;5998:15;6032:4;6029:1;6022:15;6048:1332;6159:6;6167;6175;6183;6236:3;6224:9;6215:7;6211:23;6207:33;6204:53;;;6253:1;6250;6243:12;6204:53;6289:9;6276:23;6266:33;;6318:2;6367;6356:9;6352:18;6339:32;6329:42;;6422:2;6411:9;6407:18;6394:32;6445:18;6486:2;6478:6;6475:14;6472:34;;;6502:1;6499;6492:12;6472:34;6540:6;6529:9;6525:22;6515:32;;6585:7;6578:4;6574:2;6570:13;6566:27;6556:55;;6607:1;6604;6597:12;6556:55;6643:2;6630:16;6665:2;6661;6658:10;6655:36;;;6671:18;;:::i;:::-;6717:2;6714:1;6710:10;6749:2;6743:9;6812:2;6808:7;6803:2;6799;6795:11;6791:25;6783:6;6779:38;6867:6;6855:10;6852:22;6847:2;6835:10;6832:18;6829:46;6826:72;;;6878:18;;:::i;:::-;6914:2;6907:22;6964:18;;;6998:15;;;;-1:-1:-1;7040:11:1;;;7036:20;;;7068:19;;;7065:39;;;7100:1;7097;7090:12;7065:39;7124:11;;;;7144:148;7160:6;7155:3;7152:15;7144:148;;;7226:23;7245:3;7226:23;:::i;:::-;7214:36;;7177:12;;;;7270;;;;7144:148;;;7311:6;7301:16;;;;;;;;7336:38;7370:2;7359:9;7355:18;7336:38;:::i;:::-;7326:48;;6048:1332;;;;;;;:::o;7385:380::-;7464:1;7460:12;;;;7507;;;7528:61;;7582:4;7574:6;7570:17;7560:27;;7528:61;7635:2;7627:6;7624:14;7604:18;7601:38;7598:161;;7681:10;7676:3;7672:20;7669:1;7662:31;7716:4;7713:1;7706:15;7744:4;7741:1;7734:15;7598:161;;7385:380;;;:::o;7770:127::-;7831:10;7826:3;7822:20;7819:1;7812:31;7862:4;7859:1;7852:15;7886:4;7883:1;7876:15;7902:127;7963:10;7958:3;7954:20;7951:1;7944:31;7994:4;7991:1;7984:15;8018:4;8015:1;8008:15;8034:125;8099:9;;;8120:10;;;8117:36;;;8133:18;;:::i;8164:135::-;8203:3;8224:17;;;8221:43;;8244:18;;:::i;:::-;-1:-1:-1;8291:1:1;8280:13;;8164:135::o;8304:353::-;8506:2;8488:21;;;8545:2;8525:18;;;8518:30;8584:31;8579:2;8564:18;;8557:59;8648:2;8633:18;;8304:353::o;9699:356::-;9901:2;9883:21;;;9920:18;;;9913:30;9979:34;9974:2;9959:18;;9952:62;10046:2;10031:18;;9699:356::o;14824:128::-;14891:9;;;14912:11;;;14909:37;;;14926:18;;:::i;14957:168::-;15030:9;;;15061;;15078:15;;;15072:22;;15058:37;15048:71;;15099:18;;:::i;15130:217::-;15170:1;15196;15186:132;;15240:10;15235:3;15231:20;15228:1;15221:31;15275:4;15272:1;15265:15;15303:4;15300:1;15293:15;15186:132;-1:-1:-1;15332:9:1;;15130:217::o;15352:1003::-;15611:4;15659:3;15648:9;15644:19;15690:6;15679:9;15672:25;15716:2;15754:6;15749:2;15738:9;15734:18;15727:34;15797:3;15792:2;15781:9;15777:18;15770:31;15821:6;15856;15850:13;15887:6;15879;15872:22;15925:3;15914:9;15910:19;15903:26;;15948:6;15945:1;15938:17;15991:2;15988:1;15978:16;15964:30;;16012:1;16022:194;16036:6;16033:1;16030:13;16022:194;;;16101:13;;-1:-1:-1;;;;;16097:39:1;16085:52;;16133:1;16192:14;;;;16157:12;;;;16051:9;16022:194;;;-1:-1:-1;;;;;;;16272:32:1;;;;16267:2;16252:18;;16245:60;-1:-1:-1;;;16336:3:1;16321:19;16314:35;16233:3;15352:1003;-1:-1:-1;;;15352:1003:1:o

Swarm Source

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