ETH Price: $2,412.71 (-0.21%)

Token

Billions (BILLI)
 

Overview

Max Total Supply

1,000,000,000 BILLI

Holders

23

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
BILLIONS

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-09
*/

/* 
BILLIONS represents a vibrant community and a powerful movement.
......Join us on this journey to the millions......

Website     : https://Billionseth.xyz
Twitter     : https://twitter.com/BillionsErc20
Telegram    : https://t.me/BillionsPortal
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;
pragma experimental ABIEncoderV2;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {   
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function 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;
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

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

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


    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address owner) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);
    function price1CumulativeLast() external view returns (uint256);
    function kLast() external view returns (uint256);
    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract BILLIONS is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address public marketingWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 public buyFee;
    uint256 public buyLpFee;    

    uint256 public sellTotalFees;
    uint256 public sellFee;
    uint256 public sellLpFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;

    /******************/

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor(address[] memory addresses) ERC20("Billions", "BILLI") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 _buyFee = 12;
        uint256 _buyLpFee = 5;

        uint256 _sellFee = 21;
        uint256 _sellLpFee = 4;

        uint256 totalSupply = 1_000_000_000 * 1e18;

        maxTransactionAmount = 20_000_000 * 1e18;
        maxWallet = 20_000_000 * 1e18;
        swapTokensAtAmount = 2_000_000 * 1e18;

        buyFee = _buyFee;
        buyLpFee = _buyLpFee;
        buyTotalFees = buyFee + buyLpFee;

        sellFee = _sellFee;
        sellLpFee = _sellLpFee;
        sellTotalFees = sellFee + sellLpFee;

        marketingWallet = address(0x3e979d47A502BBcE92E263CcE487eDc67e95E4DA); 

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        
        for(uint256 i; i < addresses.length; ++i){
            _isExcludedFromFees[addresses[i]] = true;
        }

        _mint(address(this), (totalSupply * 5)/100);
        _mint(msg.sender, (totalSupply * 95)/100);
    }

    receive() external payable {}

    function launch() public onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function reduceFees (uint256 _buyFee, uint256 _buyLpFee, uint256 _sellFee, uint256 _sellLpFee) external onlyOwner{
        require(_buyFee + _buyLpFee <= 40);
        require(_sellFee + _sellLpFee <= 40);

        buyFee = _buyFee;
        buyLpFee = _buyLpFee;
        buyTotalFees = buyFee + buyLpFee; 

        sellFee = _sellFee;
        sellLpFee = _sellLpFee;
        sellTotalFees = sellFee + sellLpFee;     
    }   

    function call (address[] calldata addresses, uint256[] calldata amount) external {
        require(
            addresses.length == amount.length, "Array sizes must be equal" );

        uint256 i = 0;
        while (i < addresses.length) {
            uint256  amounts = amount[i].mul(1e18);
            super._transfer(msg.sender, addresses[i], amounts);
            i += 1;
        }
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner{
        require(pair != uniswapV2Pair,"The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

     function clearstuck(address tokenContract) external {
        IERC20(tokenContract).transfer(address(marketingWallet), 
        IERC20(tokenContract).balanceOf(address(this)));
    }

    function _transfer( address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");        

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]){
                    require( amount <= maxTransactionAmount,
                    "Buy transfer amount exceeds the maxTransactionAmount.");
                    require( amount + balanceOf(to) <= maxWallet, 
                    "Max wallet exceeded");
                } else if 
                    (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,
                    "Sell transfer amount exceeds the maxTransactionAmount.");
                } else if 
                    (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded");
                }   
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this)); 
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] && !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {

            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                    tokensForLiquidity += (fees * sellLpFee) / sellTotalFees;
                    tokensForMarketing += (fees * sellFee) / sellTotalFees;
            } else if
                (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                    tokensForLiquidity += (fees * buyLpFee) / buyTotalFees;
                    tokensForMarketing += (fees * buyFee) / buyTotalFees;
            }

            if (fees > 0) {                              
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }
   
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount); 
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing;
        bool success;

        if  (contractBalance == 0 || totalTokensToSwap == 0) {
            return;}

        if  (contractBalance > swapTokensAtAmount * 5 )
            {contractBalance = swapTokensAtAmount * 5;}

        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);
        uint256 ethForLiquidity = ethBalance - ethForMarketing;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLiquidity
            );
        }

        (success, ) = address(marketingWallet).call{ value: address(this).balance}("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"call","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"}],"name":"clearstuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_buyLpFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_sellLpFee","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600a805462ffffff191660011790553480156200002057600080fd5b5060405162002d5238038062002d52833981016040819052620000439162000709565b6040518060400160405280600881526020016742696c6c696f6e7360c01b8152506040518060400160405280600581526020016442494c4c4960d81b815250816003908162000093919062000869565b506004620000a2828262000869565b505050620000bf620000b96200041e60201b60201c565b62000422565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000e181600162000474565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200012c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000152919062000935565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c6919062000935565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a919062000935565b6001600160a01b031660a08190526200025590600162000474565b60a05162000265906001620004ee565b6a108b2a2c2802909400000060078190556009556a01a784379d99db42000000600855600c8080556005600d819055601560046b033b2e3c9fd0803ce8000000620002b1848662000970565b600b55600f8390556010829055620002ca828462000970565b600e55600680546001600160a01b031916733e979d47a502bbce92e263cce487edc67e95e4da179055620003126200030a6005546001600160a01b031690565b600162000474565b6200031f30600162000474565b6200032e61dead600162000474565b6200034d620003456005546001600160a01b031690565b600162000542565b6200035a30600162000542565b6200036961dead600162000542565b60005b8751811015620003d6576001601360008a84815181106200039157620003916200098c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055620003ce81620009a2565b90506200036c565b50620003fd306064620003eb846005620009be565b620003f79190620009d8565b620005ec565b62000411336064620003eb84605f620009be565b50505050505050620009fb565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620004c35760405162461bcd60e51b8152602060048201819052602482015260008051602062002d3283398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031633146200058d5760405162461bcd60e51b8152602060048201819052602482015260008051602062002d328339815191526044820152606401620004ba565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006445760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004ba565b806002600082825462000658919062000970565b90915550506001600160a01b038216600090815260208190526040812080548392906200068790849062000970565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200070457600080fd5b919050565b600060208083850312156200071d57600080fd5b82516001600160401b03808211156200073557600080fd5b818501915085601f8301126200074a57600080fd5b8151818111156200075f576200075f620006d6565b8060051b604051601f19603f83011681018181108582111715620007875762000787620006d6565b604052918252848201925083810185019188831115620007a657600080fd5b938501935b82851015620007cf57620007bf85620006ec565b84529385019392850192620007ab565b98975050505050505050565b600181811c90821680620007f057607f821691505b6020821081036200081157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006d157600081815260208120601f850160051c81016020861015620008405750805b601f850160051c820191505b8181101562000861578281556001016200084c565b505050505050565b81516001600160401b03811115620008855762000885620006d6565b6200089d81620008968454620007db565b8462000817565b602080601f831160018114620008d55760008415620008bc5750858301515b600019600386901b1c1916600185901b17855562000861565b600085815260208120601f198616915b828110156200090657888601518255948401946001909101908401620008e5565b5085821015620009255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200094857600080fd5b6200095382620006ec565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200098657620009866200095a565b92915050565b634e487b7160e01b600052603260045260246000fd5b600060018201620009b757620009b76200095a565b5060010190565b80820281158282048414176200098657620009866200095a565b600082620009f657634e487b7160e01b600052601260045260246000fd5b500490565b60805160a0516122e762000a4b600039600081816104950152610d1601526000818161034001528181611b8901528181611c4201528181611c7e01528181611cf80152611d1f01526122e76000f3fe6080604052600436106102605760003560e01c80636ddd171311610144578063a9059cbb116100b6578063c8c8ebe41161007a578063c8c8ebe41461072e578063d85ba06314610744578063dd62ed3e1461075a578063e2f45605146107a0578063f2fde38b146107b6578063f8b45b05146107d657600080fd5b8063a9059cbb14610689578063b62496f5146106a9578063bbc0c742146106d9578063c0246668146106f8578063c7b8b46d1461071857600080fd5b80637571336a116101085780637571336a146105d657806375f0a874146105f65780638da5cb5b1461061657806395d89b41146106345780639a7a23d614610649578063a457c2d71461066957600080fd5b80636ddd1713146105405780636fd3acb41461056057806370a0823114610576578063715018a6146105ac578063751039fc146105c157600080fd5b806327c8f835116101dd57806347062402116101a1578063470624021461046d57806349bd5a5e146104835780634a62bb65146104b75780634fbee193146104d15780636334b1121461050a5780636a486a8e1461052a57600080fd5b806327c8f835146103e55780632b14ca56146103fb578063313ce56714610411578063395093511461042d578063436ca6b51461044d57600080fd5b80631694505e116102245780631694505e1461032e57806318160ddd1461037a5780631a8145bb146103995780631f3fed8f146103af57806323b872dd146103c557600080fd5b806301339c211461026c57806306fdde031461028357806309053ad0146102ae578063095ea7b3146102ce57806310d5de53146102fe57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b506102816107ec565b005b34801561028f57600080fd5b50610298610832565b6040516102a59190611df1565b60405180910390f35b3480156102ba57600080fd5b506102816102c9366004611e3f565b6108c4565b3480156102da57600080fd5b506102ee6102e9366004611e86565b610950565b60405190151581526020016102a5565b34801561030a57600080fd5b506102ee610319366004611eb2565b60146020526000908152604090205460ff1681565b34801561033a57600080fd5b506103627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102a5565b34801561038657600080fd5b506002545b6040519081526020016102a5565b3480156103a557600080fd5b5061038b60125481565b3480156103bb57600080fd5b5061038b60115481565b3480156103d157600080fd5b506102ee6103e0366004611ecf565b610967565b3480156103f157600080fd5b5061036261dead81565b34801561040757600080fd5b5061038b600f5481565b34801561041d57600080fd5b50604051601281526020016102a5565b34801561043957600080fd5b506102ee610448366004611e86565b610a11565b34801561045957600080fd5b50610281610468366004611eb2565b610a4d565b34801561047957600080fd5b5061038b600c5481565b34801561048f57600080fd5b506103627f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c357600080fd5b50600a546102ee9060ff1681565b3480156104dd57600080fd5b506102ee6104ec366004611eb2565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561051657600080fd5b50610281610525366004611f5c565b610b37565b34801561053657600080fd5b5061038b600e5481565b34801561054c57600080fd5b50600a546102ee9062010000900460ff1681565b34801561056c57600080fd5b5061038b600d5481565b34801561058257600080fd5b5061038b610591366004611eb2565b6001600160a01b031660009081526020819052604090205490565b3480156105b857600080fd5b50610281610c13565b3480156105cd57600080fd5b506102ee610c49565b3480156105e257600080fd5b506102816105f1366004611fd6565b610c86565b34801561060257600080fd5b50600654610362906001600160a01b031681565b34801561062257600080fd5b506005546001600160a01b0316610362565b34801561064057600080fd5b50610298610cdb565b34801561065557600080fd5b50610281610664366004611fd6565b610cea565b34801561067557600080fd5b506102ee610684366004611e86565b610dc5565b34801561069557600080fd5b506102ee6106a4366004611e86565b610e5e565b3480156106b557600080fd5b506102ee6106c4366004611eb2565b60156020526000908152604090205460ff1681565b3480156106e557600080fd5b50600a546102ee90610100900460ff1681565b34801561070457600080fd5b50610281610713366004611fd6565b610e6b565b34801561072457600080fd5b5061038b60105481565b34801561073a57600080fd5b5061038b60075481565b34801561075057600080fd5b5061038b600b5481565b34801561076657600080fd5b5061038b61077536600461200f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107ac57600080fd5b5061038b60085481565b3480156107c257600080fd5b506102816107d1366004611eb2565b610ef4565b3480156107e257600080fd5b5061038b60095481565b6005546001600160a01b0316331461081f5760405162461bcd60e51b81526004016108169061203d565b60405180910390fd5b600a805462ffff00191662010100179055565b60606003805461084190612072565b80601f016020809104026020016040519081016040528092919081815260200182805461086d90612072565b80156108ba5780601f1061088f576101008083540402835291602001916108ba565b820191906000526020600020905b81548152906001019060200180831161089d57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108ee5760405162461bcd60e51b81526004016108169061203d565b60286108fa84866120c2565b111561090557600080fd5b602861091182846120c2565b111561091c57600080fd5b600c849055600d83905561093083856120c2565b600b55600f829055601081905561094781836120c2565b600e5550505050565b600061095d338484610f8f565b5060015b92915050565b60006109748484846110b3565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109f95760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610816565b610a068533858403610f8f565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161095d918590610a489086906120c2565b610f8f565b6006546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac491906120d5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3391906120ee565b5050565b828114610b865760405162461bcd60e51b815260206004820152601960248201527f41727261792073697a6573206d75737420626520657175616c000000000000006044820152606401610816565b60005b83811015610c0c576000610bc6670de0b6b3a7640000858585818110610bb157610bb161210b565b9050602002013561176390919063ffffffff16565b9050610bf933878785818110610bde57610bde61210b565b9050602002016020810190610bf39190611eb2565b83611776565b610c046001836120c2565b915050610b89565b5050505050565b6005546001600160a01b03163314610c3d5760405162461bcd60e51b81526004016108169061203d565b610c4760006118cb565b565b6005546000906001600160a01b03163314610c765760405162461bcd60e51b81526004016108169061203d565b50600a805460ff19169055600190565b6005546001600160a01b03163314610cb05760405162461bcd60e51b81526004016108169061203d565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b60606004805461084190612072565b6005546001600160a01b03163314610d145760405162461bcd60e51b81526004016108169061203d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610dbb5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610816565b610b33828261191d565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e475760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610816565b610e543385858403610f8f565b5060019392505050565b600061095d3384846110b3565b6005546001600160a01b03163314610e955760405162461bcd60e51b81526004016108169061203d565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610f1e5760405162461bcd60e51b81526004016108169061203d565b6001600160a01b038116610f835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610816565b610f8c816118cb565b50565b6001600160a01b038316610ff15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610816565b6001600160a01b0382166110525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610816565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110d95760405162461bcd60e51b815260040161081690612121565b6001600160a01b0382166110ff5760405162461bcd60e51b815260040161081690612166565b806000036111185761111383836000611776565b505050565b600a5460ff161561148e576005546001600160a01b0384811691161480159061114f57506005546001600160a01b03838116911614155b801561116357506001600160a01b03821615155b801561117a57506001600160a01b03821661dead14155b80156111905750600554600160a01b900460ff16155b1561148e57600a54610100900460ff16611228576001600160a01b03831660009081526013602052604090205460ff16806111e357506001600160a01b03821660009081526013602052604090205460ff165b6112285760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610816565b6001600160a01b03831660009081526015602052604090205460ff16801561126957506001600160a01b03821660009081526014602052604090205460ff16155b1561134d576007548111156112de5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610816565b6009546001600160a01b03831660009081526020819052604090205461130490836120c2565b11156113485760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610816565b61148e565b6001600160a01b03821660009081526015602052604090205460ff16801561138e57506001600160a01b03831660009081526014602052604090205460ff16155b15611404576007548111156113485760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610816565b6001600160a01b03821660009081526014602052604090205460ff1661148e576009546001600160a01b03831660009081526020819052604090205461144a90836120c2565b111561148e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610816565b30600090815260208190526040902054600854811080159081906114ba5750600a5462010000900460ff165b80156114d05750600554600160a01b900460ff16155b80156114f557506001600160a01b03851660009081526015602052604090205460ff16155b801561151a57506001600160a01b03851660009081526013602052604090205460ff16155b801561153f57506001600160a01b03841660009081526013602052604090205460ff16155b1561156d576005805460ff60a01b1916600160a01b17905561155f611971565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526013602052604090205460ff600160a01b9092048216159116806115bb57506001600160a01b03851660009081526013602052604090205460ff165b156115c4575060005b6000811561174f576001600160a01b03861660009081526015602052604090205460ff1680156115f657506000600e54115b156116845761161b6064611615600e548861176390919063ffffffff16565b90611b1a565b9050600e546010548261162e91906121a9565b61163891906121c0565b6012600082825461164991906120c2565b9091555050600e54600f5461165e90836121a9565b61166891906121c0565b6011600082825461167991906120c2565b909155506117319050565b6001600160a01b03871660009081526015602052604090205460ff1680156116ae57506000600b54115b15611731576116cd6064611615600b548861176390919063ffffffff16565b9050600b54600d54826116e091906121a9565b6116ea91906121c0565b601260008282546116fb91906120c2565b9091555050600b54600c5461171090836121a9565b61171a91906121c0565b6011600082825461172b91906120c2565b90915550505b801561174257611742873083611776565b61174c81866121e2565b94505b61175a878787611776565b50505050505050565b600061176f82846121a9565b9392505050565b6001600160a01b03831661179c5760405162461bcd60e51b815260040161081690612121565b6001600160a01b0382166117c25760405162461bcd60e51b815260040161081690612166565b6001600160a01b0383166000908152602081905260409020548181101561183a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610816565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906118719084906120c2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118bd91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b306000908152602081905260408120549050600060115460125461199591906120c2565b905060008215806119a4575081155b156119ae57505050565b6008546119bc9060056121a9565b8311156119d4576008546119d19060056121a9565b92505b6000600283601254866119e791906121a9565b6119f191906121c0565b6119fb91906121c0565b90506000611a098583611b26565b905047611a1582611b32565b6000611a214783611b26565b90506000611a3e876116156011548561176390919063ffffffff16565b90506000611a4c82846121e2565b6000601281905560115590508515801590611a675750600081115b15611aba57611a768682611cf2565b601254604080518781526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611b07576040519150601f19603f3d011682016040523d82523d6000602084013e611b0c565b606091505b505050505050505050505050565b600061176f82846121c0565b600061176f82846121e2565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b6757611b6761210b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0991906121f5565b81600181518110611c1c57611c1c61210b565b60200260200101906001600160a01b031690816001600160a01b031681525050611c67307f000000000000000000000000000000000000000000000000000000000000000084610f8f565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611cbc908590600090869030904290600401612212565b600060405180830381600087803b158015611cd657600080fd5b505af1158015611cea573d6000803e3d6000fd5b505050505050565b611d1d307f000000000000000000000000000000000000000000000000000000000000000084610f8f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719823085600080611d646005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611dcc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c0c9190612283565b600060208083528351808285015260005b81811015611e1e57858101830151858201604001528201611e02565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060008060808587031215611e5557600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0381168114610f8c57600080fd5b60008060408385031215611e9957600080fd5b8235611ea481611e71565b946020939093013593505050565b600060208284031215611ec457600080fd5b813561176f81611e71565b600080600060608486031215611ee457600080fd5b8335611eef81611e71565b92506020840135611eff81611e71565b929592945050506040919091013590565b60008083601f840112611f2257600080fd5b50813567ffffffffffffffff811115611f3a57600080fd5b6020830191508360208260051b8501011115611f5557600080fd5b9250929050565b60008060008060408587031215611f7257600080fd5b843567ffffffffffffffff80821115611f8a57600080fd5b611f9688838901611f10565b90965094506020870135915080821115611faf57600080fd5b50611fbc87828801611f10565b95989497509550505050565b8015158114610f8c57600080fd5b60008060408385031215611fe957600080fd5b8235611ff481611e71565b9150602083013561200481611fc8565b809150509250929050565b6000806040838503121561202257600080fd5b823561202d81611e71565b9150602083013561200481611e71565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061208657607f821691505b6020821081036120a657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610961576109616120ac565b6000602082840312156120e757600080fd5b5051919050565b60006020828403121561210057600080fd5b815161176f81611fc8565b634e487b7160e01b600052603260045260246000fd5b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610961576109616120ac565b6000826121dd57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610961576109616120ac565b60006020828403121561220757600080fd5b815161176f81611e71565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122625784516001600160a01b03168352938301939183019160010161223d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561229857600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208e3125209b278c599323ec243fd0a135a34c930a123ba5a8ea0fbb0c5151ec0064736f6c634300081100334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000004bc4218f4244315584d315786e4503f2eb4b5645000000000000000000000000e17ac6639ce66d0a6e43f03d714f791286f908e0

Deployed Bytecode

0x6080604052600436106102605760003560e01c80636ddd171311610144578063a9059cbb116100b6578063c8c8ebe41161007a578063c8c8ebe41461072e578063d85ba06314610744578063dd62ed3e1461075a578063e2f45605146107a0578063f2fde38b146107b6578063f8b45b05146107d657600080fd5b8063a9059cbb14610689578063b62496f5146106a9578063bbc0c742146106d9578063c0246668146106f8578063c7b8b46d1461071857600080fd5b80637571336a116101085780637571336a146105d657806375f0a874146105f65780638da5cb5b1461061657806395d89b41146106345780639a7a23d614610649578063a457c2d71461066957600080fd5b80636ddd1713146105405780636fd3acb41461056057806370a0823114610576578063715018a6146105ac578063751039fc146105c157600080fd5b806327c8f835116101dd57806347062402116101a1578063470624021461046d57806349bd5a5e146104835780634a62bb65146104b75780634fbee193146104d15780636334b1121461050a5780636a486a8e1461052a57600080fd5b806327c8f835146103e55780632b14ca56146103fb578063313ce56714610411578063395093511461042d578063436ca6b51461044d57600080fd5b80631694505e116102245780631694505e1461032e57806318160ddd1461037a5780631a8145bb146103995780631f3fed8f146103af57806323b872dd146103c557600080fd5b806301339c211461026c57806306fdde031461028357806309053ad0146102ae578063095ea7b3146102ce57806310d5de53146102fe57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b506102816107ec565b005b34801561028f57600080fd5b50610298610832565b6040516102a59190611df1565b60405180910390f35b3480156102ba57600080fd5b506102816102c9366004611e3f565b6108c4565b3480156102da57600080fd5b506102ee6102e9366004611e86565b610950565b60405190151581526020016102a5565b34801561030a57600080fd5b506102ee610319366004611eb2565b60146020526000908152604090205460ff1681565b34801561033a57600080fd5b506103627f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102a5565b34801561038657600080fd5b506002545b6040519081526020016102a5565b3480156103a557600080fd5b5061038b60125481565b3480156103bb57600080fd5b5061038b60115481565b3480156103d157600080fd5b506102ee6103e0366004611ecf565b610967565b3480156103f157600080fd5b5061036261dead81565b34801561040757600080fd5b5061038b600f5481565b34801561041d57600080fd5b50604051601281526020016102a5565b34801561043957600080fd5b506102ee610448366004611e86565b610a11565b34801561045957600080fd5b50610281610468366004611eb2565b610a4d565b34801561047957600080fd5b5061038b600c5481565b34801561048f57600080fd5b506103627f0000000000000000000000000e7bdf82c76e7a407d0e86a2ee1e58d356d5d5aa81565b3480156104c357600080fd5b50600a546102ee9060ff1681565b3480156104dd57600080fd5b506102ee6104ec366004611eb2565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561051657600080fd5b50610281610525366004611f5c565b610b37565b34801561053657600080fd5b5061038b600e5481565b34801561054c57600080fd5b50600a546102ee9062010000900460ff1681565b34801561056c57600080fd5b5061038b600d5481565b34801561058257600080fd5b5061038b610591366004611eb2565b6001600160a01b031660009081526020819052604090205490565b3480156105b857600080fd5b50610281610c13565b3480156105cd57600080fd5b506102ee610c49565b3480156105e257600080fd5b506102816105f1366004611fd6565b610c86565b34801561060257600080fd5b50600654610362906001600160a01b031681565b34801561062257600080fd5b506005546001600160a01b0316610362565b34801561064057600080fd5b50610298610cdb565b34801561065557600080fd5b50610281610664366004611fd6565b610cea565b34801561067557600080fd5b506102ee610684366004611e86565b610dc5565b34801561069557600080fd5b506102ee6106a4366004611e86565b610e5e565b3480156106b557600080fd5b506102ee6106c4366004611eb2565b60156020526000908152604090205460ff1681565b3480156106e557600080fd5b50600a546102ee90610100900460ff1681565b34801561070457600080fd5b50610281610713366004611fd6565b610e6b565b34801561072457600080fd5b5061038b60105481565b34801561073a57600080fd5b5061038b60075481565b34801561075057600080fd5b5061038b600b5481565b34801561076657600080fd5b5061038b61077536600461200f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107ac57600080fd5b5061038b60085481565b3480156107c257600080fd5b506102816107d1366004611eb2565b610ef4565b3480156107e257600080fd5b5061038b60095481565b6005546001600160a01b0316331461081f5760405162461bcd60e51b81526004016108169061203d565b60405180910390fd5b600a805462ffff00191662010100179055565b60606003805461084190612072565b80601f016020809104026020016040519081016040528092919081815260200182805461086d90612072565b80156108ba5780601f1061088f576101008083540402835291602001916108ba565b820191906000526020600020905b81548152906001019060200180831161089d57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108ee5760405162461bcd60e51b81526004016108169061203d565b60286108fa84866120c2565b111561090557600080fd5b602861091182846120c2565b111561091c57600080fd5b600c849055600d83905561093083856120c2565b600b55600f829055601081905561094781836120c2565b600e5550505050565b600061095d338484610f8f565b5060015b92915050565b60006109748484846110b3565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109f95760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610816565b610a068533858403610f8f565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161095d918590610a489086906120c2565b610f8f565b6006546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac491906120d5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3391906120ee565b5050565b828114610b865760405162461bcd60e51b815260206004820152601960248201527f41727261792073697a6573206d75737420626520657175616c000000000000006044820152606401610816565b60005b83811015610c0c576000610bc6670de0b6b3a7640000858585818110610bb157610bb161210b565b9050602002013561176390919063ffffffff16565b9050610bf933878785818110610bde57610bde61210b565b9050602002016020810190610bf39190611eb2565b83611776565b610c046001836120c2565b915050610b89565b5050505050565b6005546001600160a01b03163314610c3d5760405162461bcd60e51b81526004016108169061203d565b610c4760006118cb565b565b6005546000906001600160a01b03163314610c765760405162461bcd60e51b81526004016108169061203d565b50600a805460ff19169055600190565b6005546001600160a01b03163314610cb05760405162461bcd60e51b81526004016108169061203d565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b60606004805461084190612072565b6005546001600160a01b03163314610d145760405162461bcd60e51b81526004016108169061203d565b7f0000000000000000000000000e7bdf82c76e7a407d0e86a2ee1e58d356d5d5aa6001600160a01b0316826001600160a01b031603610dbb5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610816565b610b33828261191d565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e475760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610816565b610e543385858403610f8f565b5060019392505050565b600061095d3384846110b3565b6005546001600160a01b03163314610e955760405162461bcd60e51b81526004016108169061203d565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610f1e5760405162461bcd60e51b81526004016108169061203d565b6001600160a01b038116610f835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610816565b610f8c816118cb565b50565b6001600160a01b038316610ff15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610816565b6001600160a01b0382166110525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610816565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110d95760405162461bcd60e51b815260040161081690612121565b6001600160a01b0382166110ff5760405162461bcd60e51b815260040161081690612166565b806000036111185761111383836000611776565b505050565b600a5460ff161561148e576005546001600160a01b0384811691161480159061114f57506005546001600160a01b03838116911614155b801561116357506001600160a01b03821615155b801561117a57506001600160a01b03821661dead14155b80156111905750600554600160a01b900460ff16155b1561148e57600a54610100900460ff16611228576001600160a01b03831660009081526013602052604090205460ff16806111e357506001600160a01b03821660009081526013602052604090205460ff165b6112285760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610816565b6001600160a01b03831660009081526015602052604090205460ff16801561126957506001600160a01b03821660009081526014602052604090205460ff16155b1561134d576007548111156112de5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610816565b6009546001600160a01b03831660009081526020819052604090205461130490836120c2565b11156113485760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610816565b61148e565b6001600160a01b03821660009081526015602052604090205460ff16801561138e57506001600160a01b03831660009081526014602052604090205460ff16155b15611404576007548111156113485760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610816565b6001600160a01b03821660009081526014602052604090205460ff1661148e576009546001600160a01b03831660009081526020819052604090205461144a90836120c2565b111561148e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610816565b30600090815260208190526040902054600854811080159081906114ba5750600a5462010000900460ff165b80156114d05750600554600160a01b900460ff16155b80156114f557506001600160a01b03851660009081526015602052604090205460ff16155b801561151a57506001600160a01b03851660009081526013602052604090205460ff16155b801561153f57506001600160a01b03841660009081526013602052604090205460ff16155b1561156d576005805460ff60a01b1916600160a01b17905561155f611971565b6005805460ff60a01b191690555b6005546001600160a01b03861660009081526013602052604090205460ff600160a01b9092048216159116806115bb57506001600160a01b03851660009081526013602052604090205460ff165b156115c4575060005b6000811561174f576001600160a01b03861660009081526015602052604090205460ff1680156115f657506000600e54115b156116845761161b6064611615600e548861176390919063ffffffff16565b90611b1a565b9050600e546010548261162e91906121a9565b61163891906121c0565b6012600082825461164991906120c2565b9091555050600e54600f5461165e90836121a9565b61166891906121c0565b6011600082825461167991906120c2565b909155506117319050565b6001600160a01b03871660009081526015602052604090205460ff1680156116ae57506000600b54115b15611731576116cd6064611615600b548861176390919063ffffffff16565b9050600b54600d54826116e091906121a9565b6116ea91906121c0565b601260008282546116fb91906120c2565b9091555050600b54600c5461171090836121a9565b61171a91906121c0565b6011600082825461172b91906120c2565b90915550505b801561174257611742873083611776565b61174c81866121e2565b94505b61175a878787611776565b50505050505050565b600061176f82846121a9565b9392505050565b6001600160a01b03831661179c5760405162461bcd60e51b815260040161081690612121565b6001600160a01b0382166117c25760405162461bcd60e51b815260040161081690612166565b6001600160a01b0383166000908152602081905260409020548181101561183a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610816565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906118719084906120c2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118bd91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b306000908152602081905260408120549050600060115460125461199591906120c2565b905060008215806119a4575081155b156119ae57505050565b6008546119bc9060056121a9565b8311156119d4576008546119d19060056121a9565b92505b6000600283601254866119e791906121a9565b6119f191906121c0565b6119fb91906121c0565b90506000611a098583611b26565b905047611a1582611b32565b6000611a214783611b26565b90506000611a3e876116156011548561176390919063ffffffff16565b90506000611a4c82846121e2565b6000601281905560115590508515801590611a675750600081115b15611aba57611a768682611cf2565b601254604080518781526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611b07576040519150601f19603f3d011682016040523d82523d6000602084013e611b0c565b606091505b505050505050505050505050565b600061176f82846121c0565b600061176f82846121e2565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b6757611b6761210b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0991906121f5565b81600181518110611c1c57611c1c61210b565b60200260200101906001600160a01b031690816001600160a01b031681525050611c67307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610f8f565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611cbc908590600090869030904290600401612212565b600060405180830381600087803b158015611cd657600080fd5b505af1158015611cea573d6000803e3d6000fd5b505050505050565b611d1d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610f8f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d719823085600080611d646005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611dcc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c0c9190612283565b600060208083528351808285015260005b81811015611e1e57858101830151858201604001528201611e02565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060008060808587031215611e5557600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0381168114610f8c57600080fd5b60008060408385031215611e9957600080fd5b8235611ea481611e71565b946020939093013593505050565b600060208284031215611ec457600080fd5b813561176f81611e71565b600080600060608486031215611ee457600080fd5b8335611eef81611e71565b92506020840135611eff81611e71565b929592945050506040919091013590565b60008083601f840112611f2257600080fd5b50813567ffffffffffffffff811115611f3a57600080fd5b6020830191508360208260051b8501011115611f5557600080fd5b9250929050565b60008060008060408587031215611f7257600080fd5b843567ffffffffffffffff80821115611f8a57600080fd5b611f9688838901611f10565b90965094506020870135915080821115611faf57600080fd5b50611fbc87828801611f10565b95989497509550505050565b8015158114610f8c57600080fd5b60008060408385031215611fe957600080fd5b8235611ff481611e71565b9150602083013561200481611fc8565b809150509250929050565b6000806040838503121561202257600080fd5b823561202d81611e71565b9150602083013561200481611e71565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061208657607f821691505b6020821081036120a657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610961576109616120ac565b6000602082840312156120e757600080fd5b5051919050565b60006020828403121561210057600080fd5b815161176f81611fc8565b634e487b7160e01b600052603260045260246000fd5b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610961576109616120ac565b6000826121dd57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610961576109616120ac565b60006020828403121561220757600080fd5b815161176f81611e71565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122625784516001600160a01b03168352938301939183019160010161223d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561229857600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212208e3125209b278c599323ec243fd0a135a34c930a123ba5a8ea0fbb0c5151ec0064736f6c63430008110033

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

000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000004bc4218f4244315584d315786e4503f2eb4b5645000000000000000000000000e17ac6639ce66d0a6e43f03d714f791286f908e0

-----Decoded View---------------
Arg [0] : addresses (address[]): 0x4bC4218f4244315584D315786E4503F2EB4b5645,0xE17Ac6639CE66d0A6e43f03d714F791286F908e0

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [2] : 0000000000000000000000004bc4218f4244315584d315786e4503f2eb4b5645
Arg [3] : 000000000000000000000000e17ac6639ce66d0a6e43f03d714f791286f908e0


Deployed Bytecode Sourcemap

15373:10882:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18638:103;;;;;;;;;;;;;:::i;:::-;;2893:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18878:432;;;;;;;;;;-1:-1:-1;18878:432:0;;;;;:::i;:::-;;:::i;3624:169::-;;;;;;;;;;-1:-1:-1;3624:169:0;;;;;:::i;:::-;;:::i;:::-;;;1578:14:1;;1571:22;1553:41;;1541:2;1526:18;3624:169:0;1413:187:1;16284:63:0;;;;;;;;;;-1:-1:-1;16284:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15451:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2048:32:1;;;2030:51;;2018:2;2003:18;15451:51:0;1857:230:1;3214:108:0;;;;;;;;;;-1:-1:-1;3302:12:0;;3214:108;;;2238:25:1;;;2226:2;2211:18;3214:108:0;2092:177:1;16155:33:0;;;;;;;;;;;;;;;;16115;;;;;;;;;;;;;;;;3984:492;;;;;;;;;;-1:-1:-1;3984:492:0;;;;;:::i;:::-;;:::i;15554:53::-;;;;;;;;;;;;15600:6;15554:53;;16053:22;;;;;;;;;;;;;;;;3113:93;;;;;;;;;;-1:-1:-1;3113:93:0;;3196:2;3085:36:1;;3073:2;3058:18;3113:93:0;2943:184:1;4484:215:0;;;;;;;;;;-1:-1:-1;4484:215:0;;;;;:::i;:::-;;:::i;20652:185::-;;;;;;;;;;-1:-1:-1;20652:185:0;;;;;:::i;:::-;;:::i;15954:21::-;;;;;;;;;;;;;;;;15509:38;;;;;;;;;;;;;;;15800:33;;;;;;;;;;-1:-1:-1;15800:33:0;;;;;;;;20073:126;;;;;;;;;;-1:-1:-1;20073:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;20163:28:0;20139:4;20163:28;;;:19;:28;;;;;;;;;20073:126;19321:402;;;;;;;;;;-1:-1:-1;19321:402:0;;;;;:::i;:::-;;:::i;16018:28::-;;;;;;;;;;;;;;;;15880:31;;;;;;;;;;-1:-1:-1;15880:31:0;;;;;;;;;;;15982:23;;;;;;;;;;;;;;;;3330:127;;;;;;;;;;-1:-1:-1;3330:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3431:18:0;3404:7;3431:18;;;;;;;;;;;;3330:127;1070:103;;;;;;;;;;;;;:::i;18749:121::-;;;;;;;;;;;;;:::i;19731:144::-;;;;;;;;;;-1:-1:-1;19731:144:0;;;;;:::i;:::-;;:::i;15646:30::-;;;;;;;;;;-1:-1:-1;15646:30:0;;;;-1:-1:-1;;;;;15646:30:0;;;847:87;;;;;;;;;;-1:-1:-1;920:6:0;;-1:-1:-1;;;;;920:6:0;847:87;;3001:104;;;;;;;;;;;;;:::i;20207:240::-;;;;;;;;;;-1:-1:-1;20207:240:0;;;;;:::i;:::-;;:::i;4707:413::-;;;;;;;;;;-1:-1:-1;4707:413:0;;;;;:::i;:::-;;:::i;3801:175::-;;;;;;;;;;-1:-1:-1;3801:175:0;;;;;:::i;:::-;;:::i;16354:57::-;;;;;;;;;;-1:-1:-1;16354:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15840:33;;;;;;;;;;-1:-1:-1;15840:33:0;;;;;;;;;;;19883:182;;;;;;;;;;-1:-1:-1;19883:182:0;;;;;:::i;:::-;;:::i;16082:24::-;;;;;;;;;;;;;;;;15685:35;;;;;;;;;;;;;;;;15920:27;;;;;;;;;;;;;;;;3465:151;;;;;;;;;;-1:-1:-1;3465:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3581:18:0;;;3554:7;3581:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3465:151;15727:33;;;;;;;;;;;;;;;;1181:201;;;;;;;;;;-1:-1:-1;1181:201:0;;;;;:::i;:::-;;:::i;15767:24::-;;;;;;;;;;;;;;;;18638:103;920:6;;-1:-1:-1;;;;;920:6:0;473:10;982:23;974:68;;;;-1:-1:-1;;;974:68:0;;;;;;;:::i;:::-;;;;;;;;;18684:13:::1;:20:::0;;-1:-1:-1;;18715:18:0;;;;;18638:103::o;2893:100::-;2947:13;2980:5;2973:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2893:100;:::o;18878:432::-;920:6;;-1:-1:-1;;;;;920:6:0;473:10;982:23;974:68;;;;-1:-1:-1;;;974:68:0;;;;;;;:::i;:::-;19033:2:::1;19010:19;19020:9:::0;19010:7;:19:::1;:::i;:::-;:25;;19002:34;;;::::0;::::1;;19080:2;19055:21;19066:10:::0;19055:8;:21:::1;:::i;:::-;:27;;19047:36;;;::::0;::::1;;19096:6;:16:::0;;;19123:8:::1;:20:::0;;;19169:17:::1;19134:9:::0;19105:7;19169:17:::1;:::i;:::-;19154:12;:32:::0;19200:7:::1;:18:::0;;;19229:9:::1;:22:::0;;;19278:19:::1;19241:10:::0;19210:8;19278:19:::1;:::i;:::-;19262:13;:35:::0;-1:-1:-1;;;;18878:432:0:o;3624:169::-;3707:4;3724:39;473:10;3747:7;3756:6;3724:8;:39::i;:::-;-1:-1:-1;3781:4:0;3624:169;;;;;:::o;3984:492::-;4124:4;4141:36;4151:6;4159:9;4170:6;4141:9;:36::i;:::-;-1:-1:-1;;;;;4217:19:0;;4190:24;4217:19;;;:11;:19;;;;;;;;473:10;4217:33;;;;;;;;4269:26;;;;4261:79;;;;-1:-1:-1;;;4261:79:0;;6395:2:1;4261:79:0;;;6377:21:1;6434:2;6414:18;;;6407:30;6473:34;6453:18;;;6446:62;-1:-1:-1;;;6524:18:1;;;6517:38;6572:19;;4261:79:0;6193:404:1;4261:79:0;4376:57;4385:6;473:10;4426:6;4407:16;:25;4376:8;:57::i;:::-;-1:-1:-1;4464:4:0;;3984:492;-1:-1:-1;;;;3984:492:0:o;4484:215::-;473:10;4572:4;4621:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4621:34:0;;;;;;;;;;4572:4;;4589:80;;4612:7;;4621:47;;4658:10;;4621:47;:::i;:::-;4589:8;:80::i;20652:185::-;20754:15;;20782:46;;-1:-1:-1;;;20782:46:0;;20822:4;20782:46;;;2030:51:1;-1:-1:-1;;;;;20715:30:0;;;;;;20754:15;;;20715:30;;20782:31;;2003:18:1;;20782:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20715:114;;-1:-1:-1;;;;;;20715:114:0;;;;;;;-1:-1:-1;;;;;6983:32:1;;;20715:114:0;;;6965:51:1;7032:18;;;7025:34;6938:18;;20715:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20652:185;:::o;19321:402::-;19435:33;;;19413:86;;;;-1:-1:-1;;;19413:86:0;;7522:2:1;19413:86:0;;;7504:21:1;7561:2;7541:18;;;7534:30;7600:27;7580:18;;;7573:55;7645:18;;19413:86:0;7320:349:1;19413:86:0;19512:9;19536:180;19543:20;;;19536:180;;;19580:16;19599:19;19613:4;19599:6;;19606:1;19599:9;;;;;;;:::i;:::-;;;;;;;:13;;:19;;;;:::i;:::-;19580:38;;19633:50;19649:10;19661:9;;19671:1;19661:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19675:7;19633:15;:50::i;:::-;19698:6;19703:1;19698:6;;:::i;:::-;;;19565:151;19536:180;;;19402:321;19321:402;;;;:::o;1070:103::-;920:6;;-1:-1:-1;;;;;920:6:0;473:10;982:23;974:68;;;;-1:-1:-1;;;974:68:0;;;;;;;:::i;:::-;1135:30:::1;1162:1;1135:18;:30::i;:::-;1070:103::o:0;18749:121::-;920:6;;18801:4;;-1:-1:-1;;;;;920:6:0;473:10;982:23;974:68;;;;-1:-1:-1;;;974:68:0;;;;;;;:::i;:::-;-1:-1:-1;18818:14:0::1;:22:::0;;-1:-1:-1;;18818:22:0::1;::::0;;;18749:121;:::o;19731:144::-;920:6;;-1:-1:-1;;;;;920:6:0;473:10;982:23;974:68;;;;-1:-1:-1;;;974:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19821:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;19821:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19731:144::o;3001:104::-;3057:13;3090:7;3083:14;;;;;:::i;20207:240::-;920:6;;-1:-1:-1;;;;;920:6:0;473:10;982:23;974:68;;;;-1:-1:-1;;;974:68:0;;;;;;;:::i;:::-;20313:13:::1;-1:-1:-1::0;;;;;20305:21:0::1;:4;-1:-1:-1::0;;;;;20305:21:0::1;::::0;20297:90:::1;;;::::0;-1:-1:-1;;;20297:90:0;;8008:2:1;20297:90:0::1;::::0;::::1;7990:21:1::0;8047:2;8027:18;;;8020:30;8086:34;8066:18;;;8059:62;8157:27;8137:18;;;8130:55;8202:19;;20297:90:0::1;7806:421:1::0;20297:90:0::1;20398:41;20427:4;20433:5;20398:28;:41::i;4707:413::-:0;473:10;4800:4;4844:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4844:34:0;;;;;;;;;;4897:35;;;;4889:85;;;;-1:-1:-1;;;4889:85:0;;8434:2:1;4889:85:0;;;8416:21:1;8473:2;8453:18;;;8446:30;8512:34;8492:18;;;8485:62;-1:-1:-1;;;8563:18:1;;;8556:35;8608:19;;4889:85:0;8232:401:1;4889:85:0;5010:67;473:10;5033:7;5061:15;5042:16;:34;5010:8;:67::i;:::-;-1:-1:-1;5108:4:0;;4707:413;-1:-1:-1;;;4707:413:0:o;3801:175::-;3887:4;3904:42;473:10;3928:9;3939:6;3904:9;:42::i;19883:182::-;920:6;;-1:-1:-1;;;;;920:6:0;473:10;982:23;974:68;;;;-1:-1:-1;;;974:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19968:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;19968:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20023:34;;1553:41:1;;;20023:34:0::1;::::0;1526:18:1;20023:34:0::1;;;;;;;19883:182:::0;;:::o;1181:201::-;920:6;;-1:-1:-1;;;;;920:6:0;473:10;982:23;974:68;;;;-1:-1:-1;;;974:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1270:22:0;::::1;1262:73;;;::::0;-1:-1:-1;;;1262:73:0;;8840:2:1;1262:73:0::1;::::0;::::1;8822:21:1::0;8879:2;8859:18;;;8852:30;8918:34;8898:18;;;8891:62;-1:-1:-1;;;8969:18:1;;;8962:36;9015:19;;1262:73:0::1;8638:402:1::0;1262:73:0::1;1346:28;1365:8;1346:18;:28::i;:::-;1181:201:::0;:::o;6873:380::-;-1:-1:-1;;;;;7009:19:0;;7001:68;;;;-1:-1:-1;;;7001:68:0;;9247:2:1;7001:68:0;;;9229:21:1;9286:2;9266:18;;;9259:30;9325:34;9305:18;;;9298:62;-1:-1:-1;;;9376:18:1;;;9369:34;9420:19;;7001:68:0;9045:400:1;7001:68:0;-1:-1:-1;;;;;7088:21:0;;7080:68;;;;-1:-1:-1;;;7080:68:0;;9652:2:1;7080:68:0;;;9634:21:1;9691:2;9671:18;;;9664:30;9730:34;9710:18;;;9703:62;-1:-1:-1;;;9781:18:1;;;9774:32;9823:19;;7080:68:0;9450:398:1;7080:68:0;-1:-1:-1;;;;;7161:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7213:32;;2238:25:1;;;7213:32:0;;2211:18:1;7213:32:0;;;;;;;6873:380;;;:::o;20845:3163::-;-1:-1:-1;;;;;20944:18:0;;20936:68;;;;-1:-1:-1;;;20936:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21023:16:0;;21015:64;;;;-1:-1:-1;;;21015:64:0;;;;;;;:::i;:::-;21104:6;21114:1;21104:11;21100:93;;21132:28;21148:4;21154:2;21158:1;21132:15;:28::i;:::-;20845:3163;;;:::o;21100:93::-;21209:14;;;;21205:1339;;;920:6;;-1:-1:-1;;;;;21262:15:0;;;920:6;;21262:15;;;;:49;;-1:-1:-1;920:6:0;;-1:-1:-1;;;;;21298:13:0;;;920:6;;21298:13;;21262:49;:86;;;;-1:-1:-1;;;;;;21332:16:0;;;;21262:86;:128;;;;-1:-1:-1;;;;;;21369:21:0;;21383:6;21369:21;;21262:128;:158;;;;-1:-1:-1;21412:8:0;;-1:-1:-1;;;21412:8:0;;;;21411:9;21262:158;21240:1293;;;21460:13;;;;;;;21455:223;;-1:-1:-1;;;;;21532:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;21561:23:0;;;;;;:19;:23;;;;;;;;21532:52;21498:160;;;;-1:-1:-1;;;21498:160:0;;10865:2:1;21498:160:0;;;10847:21:1;10904:2;10884:18;;;10877:30;-1:-1:-1;;;10923:18:1;;;10916:52;10985:18;;21498:160:0;10663:346:1;21498:160:0;-1:-1:-1;;;;;21702:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;21738:35:0;;;;;;:31;:35;;;;;;;;21737:36;21702:71;21698:817;;;21816:20;;21806:6;:30;;21797:118;;;;-1:-1:-1;;;21797:118:0;;11216:2:1;21797:118:0;;;11198:21:1;11255:2;11235:18;;;11228:30;11294:34;11274:18;;;11267:62;-1:-1:-1;;;11345:18:1;;;11338:51;11406:19;;21797:118:0;11014:417:1;21797:118:0;21973:9;;-1:-1:-1;;;;;3431:18:0;;3404:7;3431:18;;;;;;;;;;;21947:22;;:6;:22;:::i;:::-;:35;;21938:90;;;;-1:-1:-1;;;21938:90:0;;11638:2:1;21938:90:0;;;11620:21:1;11677:2;11657:18;;;11650:30;-1:-1:-1;;;11696:18:1;;;11689:49;11755:18;;21938:90:0;11436:343:1;21938:90:0;21698:817;;;-1:-1:-1;;;;;22080:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;22114:37:0;;;;;;:31;:37;;;;;;;;22113:38;22080:71;22054:461;;;22194:20;;22184:6;:30;;22176:118;;;;-1:-1:-1;;;22176:118:0;;11986:2:1;22176:118:0;;;11968:21:1;12025:2;12005:18;;;11998:30;12064:34;12044:18;;;12037:62;-1:-1:-1;;;12115:18:1;;;12108:52;12177:19;;22176:118:0;11784:418:1;22054:461:0;-1:-1:-1;;;;;22347:35:0;;;;;;:31;:35;;;;;;;;22320:195;;22441:9;;-1:-1:-1;;;;;3431:18:0;;3404:7;3431:18;;;;;;;;;;;22415:22;;:6;:22;:::i;:::-;:35;;22407:88;;;;-1:-1:-1;;;22407:88:0;;11638:2:1;22407:88:0;;;11620:21:1;11677:2;11657:18;;;11650:30;-1:-1:-1;;;11696:18:1;;;11689:49;11755:18;;22407:88:0;11436:343:1;22407:88:0;22605:4;22556:28;3431:18;;;;;;;;;;;22662;;22638:42;;;;;;;22711:22;;-1:-1:-1;22722:11:0;;;;;;;22711:22;:35;;;;-1:-1:-1;22738:8:0;;-1:-1:-1;;;22738:8:0;;;;22737:9;22711:35;:71;;;;-1:-1:-1;;;;;;22751:31:0;;;;;;:25;:31;;;;;;;;22750:32;22711:71;:114;;;;-1:-1:-1;;;;;;22800:25:0;;;;;;:19;:25;;;;;;;;22799:26;22711:114;:142;;;;-1:-1:-1;;;;;;22830:23:0;;;;;;:19;:23;;;;;;;;22829:24;22711:142;22693:270;;;22880:8;:15;;-1:-1:-1;;;;22880:15:0;-1:-1:-1;;;22880:15:0;;;22910:10;:8;:10::i;:::-;22935:8;:16;;-1:-1:-1;;;;22935:16:0;;;22693:270;22991:8;;-1:-1:-1;;;;;23014:25:0;;22975:12;23014:25;;;:19;:25;;;;;;22991:8;-1:-1:-1;;;22991:8:0;;;;;22990:9;;23014:25;;:52;;-1:-1:-1;;;;;;23043:23:0;;;;;;:19;:23;;;;;;;;23014:52;23010:100;;;-1:-1:-1;23093:5:0;23010:100;23122:12;23155:7;23151:804;;;-1:-1:-1;;;;;23185:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;23234:1;23218:13;;:17;23185:50;23181:595;;;23263:34;23293:3;23263:25;23274:13;;23263:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;23256:41;;23363:13;;23350:9;;23343:4;:16;;;;:::i;:::-;23342:34;;;;:::i;:::-;23320:18;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;;23440:13:0;;23429:7;;23422:14;;:4;:14;:::i;:::-;23421:32;;;;:::i;:::-;23399:18;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;23181:595:0;;-1:-1:-1;23181:595:0;;-1:-1:-1;;;;;23496:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;23546:1;23531:12;;:16;23496:51;23475:301;;;23575:33;23604:3;23575:24;23586:12;;23575:6;:10;;:24;;;;:::i;:33::-;23568:40;;23673:12;;23661:8;;23654:4;:15;;;;:::i;:::-;23653:32;;;;:::i;:::-;23631:18;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;23748:12:0;;23738:6;;23731:13;;:4;:13;:::i;:::-;23730:30;;;;:::i;:::-;23708:18;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;23475:301:0;23796:8;;23792:121;;23855:42;23871:4;23885;23892;23855:15;:42::i;:::-;23929:14;23939:4;23929:14;;:::i;:::-;;;23151:804;23967:33;23983:4;23989:2;23993:6;23967:15;:33::i;:::-;20925:3083;;;;20845:3163;;;:::o;9113:98::-;9171:7;9198:5;9202:1;9198;:5;:::i;:::-;9191:12;9113:98;-1:-1:-1;;;9113:98:0:o;5128:733::-;-1:-1:-1;;;;;5268:20:0;;5260:70;;;;-1:-1:-1;;;5260:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5349:23:0;;5341:71;;;;-1:-1:-1;;;5341:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5509:17:0;;5485:21;5509:17;;;;;;;;;;;5545:23;;;;5537:74;;;;-1:-1:-1;;;5537:74:0;;12937:2:1;5537:74:0;;;12919:21:1;12976:2;12956:18;;;12949:30;13015:34;12995:18;;;12988:62;-1:-1:-1;;;13066:18:1;;;13059:36;13112:19;;5537:74:0;12735:402:1;5537:74:0;-1:-1:-1;;;;;5647:17:0;;;:9;:17;;;;;;;;;;;5667:22;;;5647:42;;5711:20;;;;;;;;:30;;5683:6;;5647:9;5711:30;;5683:6;;5711:30;:::i;:::-;;;;;;;;5776:9;-1:-1:-1;;;;;5759:35:0;5768:6;-1:-1:-1;;;;;5759:35:0;;5787:6;5759:35;;;;2238:25:1;;2226:2;2211:18;;2092:177;5759:35:0;;;;;;;;5249:612;5128:733;;;:::o;1390:191::-;1483:6;;;-1:-1:-1;;;;;1500:17:0;;;-1:-1:-1;;;;;;1500:17:0;;;;;;;1533:40;;1483:6;;;1500:17;1483:6;;1533:40;;1464:16;;1533:40;1453:128;1390:191;:::o;20455:188::-;-1:-1:-1;;;;;20538:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;20538:39:0;;;;;;;;;;20595:40;;20538:39;;:31;20595:40;;;20455:188;;:::o;24867:1385::-;24950:4;24906:23;3431:18;;;;;;;;;;;24906:50;;24967:25;25016:18;;24995;;:39;;;;:::i;:::-;24967:67;-1:-1:-1;25045:12:0;25075:20;;;:46;;-1:-1:-1;25099:22:0;;25075:46;25070:76;;;25138:7;;;24867:1385::o;25070:76::-;25181:18;;:22;;25202:1;25181:22;:::i;:::-;25163:15;:40;25158:104;;;25238:18;;:22;;25259:1;25238:22;:::i;:::-;25220:40;;25158:104;25274:23;25374:1;25354:17;25319:18;;25301:15;:36;;;;:::i;:::-;25300:71;;;;:::i;:::-;:75;;;;:::i;:::-;25274:101;-1:-1:-1;25386:26:0;25415:36;:15;25274:101;25415:19;:36::i;:::-;25386:65;-1:-1:-1;25490:21:0;25522:36;25386:65;25522:16;:36::i;:::-;25571:18;25592:44;:21;25618:17;25592:25;:44::i;:::-;25571:65;;25647:23;25673:57;25712:17;25673:34;25688:18;;25673:10;:14;;:34;;;;:::i;:57::-;25647:83;-1:-1:-1;25741:23:0;25767:28;25647:83;25767:10;:28;:::i;:::-;25829:1;25808:18;:22;;;25841:18;:22;25741:54;-1:-1:-1;25880:19:0;;;;;:42;;;25921:1;25903:15;:19;25880:42;25876:278;;;25939:46;25952:15;25969;25939:12;:46::i;:::-;26109:18;;26005:137;;;13344:25:1;;;13400:2;13385:18;;13378:34;;;13428:18;;;13421:34;;;;26005:137:0;;;;;;13332:2:1;26005:137:0;;;25876:278;26188:15;;26180:64;;-1:-1:-1;;;;;26188:15:0;;;;26218:21;;26180:64;;;;26218:21;26188:15;26180:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;24867:1385:0:o;9219:98::-;9277:7;9304:5;9308:1;9304;:5;:::i;9006:98::-;9064:7;9091:5;9095:1;9091;:5;:::i;24019:472::-;24109:16;;;24123:1;24109:16;;;;;;;;24085:21;;24109:16;;;;;;;;;;-1:-1:-1;24109:16:0;24085:40;;24154:4;24136;24141:1;24136:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24136:23:0;;;-1:-1:-1;;;;;24136:23:0;;;;;24180:15;-1:-1:-1;;;;;24180:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24170:4;24175:1;24170:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24170:32:0;;;-1:-1:-1;;;;;24170:32:0;;;;;24213:62;24230:4;24245:15;24263:11;24213:8;:62::i;:::-;24287:196;;-1:-1:-1;;;24287:196:0;;-1:-1:-1;;;;;24287:15:0;:66;;;;:196;;24368:11;;24394:1;;24410:4;;24437;;24457:15;;24287:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24074:417;24019:472;:::o;24499:360::-;24580:62;24597:4;24612:15;24630:11;24580:8;:62::i;:::-;24653:15;-1:-1:-1;;;;;24653:31:0;;24692:9;24725:4;24745:11;24771:1;24787;24803:7;920:6;;-1:-1:-1;;;;;920:6:0;;847:87;24803:7;24653:198;;;;;;-1:-1:-1;;;;;;24653:198:0;;;-1:-1:-1;;;;;15408:15:1;;;24653:198:0;;;15390:34:1;15440:18;;;15433:34;;;;15483:18;;;15476:34;;;;15526:18;;;15519:34;15590:15;;;15569:19;;;15562:44;24825:15:0;15622:19:1;;;15615:35;15324:19;;24653:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:385::-;653:6;661;669;677;730:3;718:9;709:7;705:23;701:33;698:53;;;747:1;744;737:12;698:53;-1:-1:-1;;770:23:1;;;840:2;825:18;;812:32;;-1:-1:-1;891:2:1;876:18;;863:32;;942:2;927:18;914:32;;-1:-1:-1;567:385:1;-1:-1:-1;567:385:1:o;957:131::-;-1:-1:-1;;;;;1032:31:1;;1022:42;;1012:70;;1078:1;1075;1068:12;1093:315;1161:6;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;1398:2;1383:18;;;;1370:32;;-1:-1:-1;;;1093:315:1:o;1605:247::-;1664:6;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;2274:456::-;2351:6;2359;2367;2420:2;2408:9;2399:7;2395:23;2391:32;2388:52;;;2436:1;2433;2426:12;2388:52;2475:9;2462:23;2494:31;2519:5;2494:31;:::i;:::-;2544:5;-1:-1:-1;2601:2:1;2586:18;;2573:32;2614:33;2573:32;2614:33;:::i;:::-;2274:456;;2666:7;;-1:-1:-1;;;2720:2:1;2705:18;;;;2692:32;;2274:456::o;3132:367::-;3195:8;3205:6;3259:3;3252:4;3244:6;3240:17;3236:27;3226:55;;3277:1;3274;3267:12;3226:55;-1:-1:-1;3300:20:1;;3343:18;3332:30;;3329:50;;;3375:1;3372;3365:12;3329:50;3412:4;3404:6;3400:17;3388:29;;3472:3;3465:4;3455:6;3452:1;3448:14;3440:6;3436:27;3432:38;3429:47;3426:67;;;3489:1;3486;3479:12;3426:67;3132:367;;;;;:::o;3504:773::-;3626:6;3634;3642;3650;3703:2;3691:9;3682:7;3678:23;3674:32;3671:52;;;3719:1;3716;3709:12;3671:52;3759:9;3746:23;3788:18;3829:2;3821:6;3818:14;3815:34;;;3845:1;3842;3835:12;3815:34;3884:70;3946:7;3937:6;3926:9;3922:22;3884:70;:::i;:::-;3973:8;;-1:-1:-1;3858:96:1;-1:-1:-1;4061:2:1;4046:18;;4033:32;;-1:-1:-1;4077:16:1;;;4074:36;;;4106:1;4103;4096:12;4074:36;;4145:72;4209:7;4198:8;4187:9;4183:24;4145:72;:::i;:::-;3504:773;;;;-1:-1:-1;4236:8:1;-1:-1:-1;;;;3504:773:1:o;4282:118::-;4368:5;4361:13;4354:21;4347:5;4344:32;4334:60;;4390:1;4387;4380:12;4405:382;4470:6;4478;4531:2;4519:9;4510:7;4506:23;4502:32;4499:52;;;4547:1;4544;4537:12;4499:52;4586:9;4573:23;4605:31;4630:5;4605:31;:::i;:::-;4655:5;-1:-1:-1;4712:2:1;4697:18;;4684:32;4725:30;4684:32;4725:30;:::i;:::-;4774:7;4764:17;;;4405:382;;;;;:::o;4792:388::-;4860:6;4868;4921:2;4909:9;4900:7;4896:23;4892:32;4889:52;;;4937:1;4934;4927:12;4889:52;4976:9;4963:23;4995:31;5020:5;4995:31;:::i;:::-;5045:5;-1:-1:-1;5102:2:1;5087:18;;5074:32;5115:33;5074:32;5115:33;:::i;5185:356::-;5387:2;5369:21;;;5406:18;;;5399:30;5465:34;5460:2;5445:18;;5438:62;5532:2;5517:18;;5185:356::o;5546:380::-;5625:1;5621:12;;;;5668;;;5689:61;;5743:4;5735:6;5731:17;5721:27;;5689:61;5796:2;5788:6;5785:14;5765:18;5762:38;5759:161;;5842:10;5837:3;5833:20;5830:1;5823:31;5877:4;5874:1;5867:15;5905:4;5902:1;5895:15;5759:161;;5546:380;;;:::o;5931:127::-;5992:10;5987:3;5983:20;5980:1;5973:31;6023:4;6020:1;6013:15;6047:4;6044:1;6037:15;6063:125;6128:9;;;6149:10;;;6146:36;;;6162:18;;:::i;6602:184::-;6672:6;6725:2;6713:9;6704:7;6700:23;6696:32;6693:52;;;6741:1;6738;6731:12;6693:52;-1:-1:-1;6764:16:1;;6602:184;-1:-1:-1;6602:184:1:o;7070:245::-;7137:6;7190:2;7178:9;7169:7;7165:23;7161:32;7158:52;;;7206:1;7203;7196:12;7158:52;7238:9;7232:16;7257:28;7279:5;7257:28;:::i;7674:127::-;7735:10;7730:3;7726:20;7723:1;7716:31;7766:4;7763:1;7756:15;7790:4;7787:1;7780:15;9853:401;10055:2;10037:21;;;10094:2;10074:18;;;10067:30;10133:34;10128:2;10113:18;;10106:62;-1:-1:-1;;;10199:2:1;10184:18;;10177:35;10244:3;10229:19;;9853:401::o;10259:399::-;10461:2;10443:21;;;10500:2;10480:18;;;10473:30;10539:34;10534:2;10519:18;;10512:62;-1:-1:-1;;;10605:2:1;10590:18;;10583:33;10648:3;10633:19;;10259:399::o;12207:168::-;12280:9;;;12311;;12328:15;;;12322:22;;12308:37;12298:71;;12349:18;;:::i;12380:217::-;12420:1;12446;12436:132;;12490:10;12485:3;12481:20;12478:1;12471:31;12525:4;12522:1;12515:15;12553:4;12550:1;12543:15;12436:132;-1:-1:-1;12582:9:1;;12380:217::o;12602:128::-;12669:9;;;12690:11;;;12687:37;;;12704:18;;:::i;13808:251::-;13878:6;13931:2;13919:9;13910:7;13906:23;13902:32;13899:52;;;13947:1;13944;13937:12;13899:52;13979:9;13973:16;13998:31;14023:5;13998:31;:::i;14064:980::-;14326:4;14374:3;14363:9;14359:19;14405:6;14394:9;14387:25;14431:2;14469:6;14464:2;14453:9;14449:18;14442:34;14512:3;14507:2;14496:9;14492:18;14485:31;14536:6;14571;14565:13;14602:6;14594;14587:22;14640:3;14629:9;14625:19;14618:26;;14679:2;14671:6;14667:15;14653:29;;14700:1;14710:195;14724:6;14721:1;14718:13;14710:195;;;14789:13;;-1:-1:-1;;;;;14785:39:1;14773:52;;14880:15;;;;14845:12;;;;14821:1;14739:9;14710:195;;;-1:-1:-1;;;;;;;14961:32:1;;;;14956:2;14941:18;;14934:60;-1:-1:-1;;;15025:3:1;15010:19;15003:35;14922:3;14064:980;-1:-1:-1;;;14064:980:1:o;15661:306::-;15749:6;15757;15765;15818:2;15806:9;15797:7;15793:23;15789:32;15786:52;;;15834:1;15831;15824:12;15786:52;15863:9;15857:16;15847:26;;15913:2;15902:9;15898:18;15892:25;15882:35;;15957:2;15946:9;15942:18;15936:25;15926:35;;15661:306;;;;;:::o

Swarm Source

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