ETH Price: $2,905.97 (-4.10%)
Gas: 1 Gwei

Token

ETH FIRE (EFIRE)
 

Overview

Max Total Supply

39,980,011.391717266470096729 EFIRE

Holders

178

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
49,525.106538760743108405 EFIRE

Value
$0.00
0x3d412245fa3e913f4c6a0324f00316a798d31dcc
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:
ETHFIRE

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-20
*/

pragma solidity ^0.8.17;
// SPDX-License-Identifier: Unlicensed
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);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

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

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{value : weiValue}(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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



interface 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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address token0, address token1) external view returns (address);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
    external payable returns (uint[] memory amounts);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function WETH() external pure returns (address);
}

contract ETHFIRE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    event TokensBurned(uint256, uint256);
    IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public marketPair = address(0);
    IUniswapV2Pair private v2Pair;
    address private feeOne = 0x82f1dDa2aaE8E086600da180FE6Fa87C423e0B87;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    string private _name = "ETH FIRE";
    string private _symbol = "EFIRE";
    uint8 private _decimals = 18;
    uint256 private _tTotal = 1e8 * 1e18;
    uint256 public _maxWalletAmount = (_tTotal * 2) / 100;
    bool inSwapAndLiquify;
    uint256 public buyFee = 5;
    uint256 public sellFee = 5;
    address public deployer;
    uint256 public ethPriceToSwap = 0.01 ether; 
    bool public isBurnEnabled = true;
    uint256 public burnFrequencynMinutes = 30;  
    uint256 public burnRateInBasePoints = 100;  //100 = 1%
    uint256 public tokensBurnedSinceLaunch = 0;
    uint public nextLiquidityBurnTimeStamp;

    uint256 totalShare = 50;
    uint256 feeShare = 30;
    uint256 lpShare = 20;
   
    constructor () {
        address tokenOwner = 0x6B72750Fdae81972A095b8600FE69683C1E19c74;
         _balances[tokenOwner] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[tokenOwner] = true;
        _isExcludedFromFee[feeOne] = true;

        deployer = tokenOwner;
        transferOwnership(deployer);
        emit Transfer(address(0), tokenOwner, _tTotal);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

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

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

    function setShares(uint256 _feeShar, uint256 _lpShare) public onlyOwner{
        lpShare = _lpShare;
        feeShare = _feeShar;
        totalShare = _lpShare + _feeShar;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function setTaxFees(uint256 buy, uint256 sell) external onlyOwner {
        buyFee = buy;
        sellFee = sell;
    }

   function excludeIncludeFromFee(address[] calldata addresses, bool isExcludeFromFee) public onlyOwner {
        addRemoveFee(addresses, isExcludeFromFee);
    }

   function setBurnSettings(uint256 frequencyInMinutes, uint256 burnBasePoints) external onlyOwner {
        burnFrequencynMinutes = frequencyInMinutes;
        burnRateInBasePoints = burnBasePoints;
    }

    function burnTokensFromLiquidityPool() private lockTheSwap {
        uint liquidity = balanceOf(marketPair);
        uint tokenBurnAmount = liquidity.div(burnRateInBasePoints);
        if(tokenBurnAmount > 0) {
            //burn tokens from LP and update liquidity pool price
            _burn(marketPair, tokenBurnAmount);
            v2Pair.sync();
            tokensBurnedSinceLaunch = tokensBurnedSinceLaunch.add(tokenBurnAmount);
            nextLiquidityBurnTimeStamp = block.timestamp.add(burnFrequencynMinutes.mul(60));
            emit TokensBurned(tokenBurnAmount, nextLiquidityBurnTimeStamp);
        }
    }

    function enableDisableBurnToken(bool _enabled) public onlyOwner {
        isBurnEnabled = _enabled;
    }

    function burnTokens() external {
        require(block.timestamp >= nextLiquidityBurnTimeStamp, "Next burn time is not due yet, be patient");
        require(isBurnEnabled, "Burning tokens is currently disabled");
        burnTokensFromLiquidityPool();
    }

    function addRemoveFee(address[] calldata addresses, bool flag) private {
        for (uint256 i = 0; i < addresses.length; i++) {
            address addr = addresses[i];
            _isExcludedFromFee[addr] = flag;
        }
    }

    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");
        _tTotal = _tTotal.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }
    
    function openTrading(address _pair) external onlyOwner() {
        require(marketPair == address(0),"UniswapV2Pair has already been set");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        marketPair = _pair; 
        v2Pair = IUniswapV2Pair(marketPair);
        nextLiquidityBurnTimeStamp = block.timestamp;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function setMaxWalletAmount(uint256 maxWalletAmount) external onlyOwner() {
        _maxWalletAmount = maxWalletAmount;
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        bool takeFees = !_isExcludedFromFee[from] && !_isExcludedFromFee[to] && from != owner() && to != owner();
        if(from != deployer && to != deployer && from != address(this) && to != address(this)) {
            if(takeFees) {
                if (from == marketPair) {
                    taxAmount = amount.mul(buyFee).div(100);
                    uint256 amountToHolder = amount.sub(taxAmount);
                    uint256 holderBalance = balanceOf(to).add(amountToHolder);
                    require(holderBalance <= _maxWalletAmount, "Wallet cannot exceed max Wallet limit");
                }
                if (from != marketPair && to == marketPair) {
                    if(block.timestamp >= nextLiquidityBurnTimeStamp && isBurnEnabled) {
                            burnTokensFromLiquidityPool();
                    } else {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (contractTokenBalance > 0) {
                            
                                uint256 tokenAmount = getTokenPrice();
                                if (contractTokenBalance >= tokenAmount && !inSwapAndLiquify) {
                                    swapTokensForEth(tokenAmount);
                                }
                            }
                        }
                }
                if (from != marketPair && to != marketPair) {
                    uint256 fromBalance = balanceOf(from);
                    uint256 toBalance = balanceOf(to);
                    require(fromBalance <= _maxWalletAmount && toBalance <= _maxWalletAmount, "Wallet cannot exceed max Wallet limit");
                }
            }
        }       
        uint256 transferAmount = amount.sub(taxAmount);
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(transferAmount);
        _balances[address(this)] = _balances[address(this)].add(taxAmount);
        emit Transfer(from, to, transferAmount);
    }

    function manualSwap() external {
        uint256 contractTokenBalance = balanceOf(address(this));
        if (contractTokenBalance > 0) {
            if (!inSwapAndLiquify) {
                swapTokensForEth(contractTokenBalance);
            }
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth

        uint256 lpTokens = (tokenAmount * lpShare) / totalShare;
        uint256 feeTokens = (tokenAmount * feeShare) / totalShare;

        uint256 beforeBalance;

        if(lpTokens > 0){
            uint256 firstHalf = lpTokens / 2;
            uint256 secondHalf = lpTokens - firstHalf;
            beforeBalance = address(this).balance;
            swapToETH(firstHalf);
            if(address(this).balance > beforeBalance){
                addLiquidity(secondHalf, address(this).balance - beforeBalance);
            }
        }          

        if(feeTokens > 0) {
            swapToETH(feeTokens);
            if(address(this).balance > 0) {
                uint256 ethBalance = address(this).balance;
                payable(feeOne).transfer(ethBalance);
            }
        }
   }

    function swapToETH(uint256 tokensAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokensAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokensAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);
 
        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(this),
            block.timestamp
        );
    }

    function getTokenPrice() public view returns (uint256)  {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        return uniswapV2Router.getAmountsOut(ethPriceToSwap, path)[1];
    }

    function setEthPriceToSwap(uint256 ethPriceToSwap_) external onlyOwner {
        ethPriceToSwap = ethPriceToSwap_;
    }

    receive() external payable {}

    function sendEth() external onlyOwner {
        uint256 ethBalance = address(this).balance;
        payable(msg.sender).transfer(ethBalance);
    }

    function sendERC20Tokens(address contractAddress) external onlyOwner {
        IERC20 erc20Token = IERC20(contractAddress);
        uint256 balance = erc20Token.balanceOf(address(this));
        erc20Token.transfer(msg.sender, balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFrequencynMinutes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnRateInBasePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"enableDisableBurnToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethPriceToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"isExcludeFromFee","type":"bool"}],"name":"excludeIncludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextLiquidityBurnTimeStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"sendERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"frequencyInMinutes","type":"uint256"},{"internalType":"uint256","name":"burnBasePoints","type":"uint256"}],"name":"setBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethPriceToSwap_","type":"uint256"}],"name":"setEthPriceToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeShar","type":"uint256"},{"internalType":"uint256","name":"_lpShare","type":"uint256"}],"name":"setShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensBurnedSinceLaunch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805482169055600480549091167382f1dda2aae8e086600da180fe6fa87c423e0b8717905560c06040526008608081815267455448204649524560c01b60a05262000076908262000477565b50604080518082019091526005815264454649524560d81b6020820152600990620000a2908262000477565b50600a805460ff191660121790556a52b7d2dcc80cd2e4000000600b819055606490620000d190600262000543565b620000dd91906200056f565b600c556005600e819055600f55662386f26fc100006011556012805460ff19166001179055601e601381905560646014908155600060155560326017556018919091556019553480156200013057600080fd5b50600080546001600160a01b031916339081178255604051909182916000805160206200291e833981519152908290a350600b54736b72750fdae81972a095b8600fe69683c1e19c74600081815260056020527fb09f12bebda4d096fc361604af9324a6743c0f9307d415467e82a7b3de9989d59290925590600190600790620001c26000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553381526007909352818320805485166001908117909155805482168452828420805486168217905530845282842080548616821790558582168085528385208054871683179055600454909216845291909220805490931617909155601080546001600160a01b031916821790556200026990620002c1565b806001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620002b291815260200190565b60405180910390a35062000592565b6000546001600160a01b03163314620003215760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620003885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000318565b600080546040516001600160a01b03808516939216916000805160206200291e83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003fd57607f821691505b6020821081036200041e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200047257600081815260208120601f850160051c810160208610156200044d5750805b601f850160051c820191505b818110156200046e5782815560010162000459565b5050505b505050565b81516001600160401b03811115620004935762000493620003d2565b620004ab81620004a48454620003e8565b8462000424565b602080601f831160018114620004e35760008415620004ca5750858301515b600019600386901b1c1916600185901b1785556200046e565b600085815260208120601f198616915b828110156200051457888601518255948401946001909101908401620004f3565b5085821015620005335787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200056957634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200058d57634e487b7160e01b600052601260045260246000fd5b500490565b61237c80620005a26000396000f3fe60806040526004361061023f5760003560e01c806350faa48f1161012e57806395d89b41116100ab578063d5f394881161006f578063d5f394881461066a578063d9058bd51461068a578063dc13b31c146106aa578063dd62ed3e146106c0578063f2fde38b1461070657600080fd5b806395d89b41146105d5578063a457c2d7146105ea578063a9059cbb1461060a578063b2abbbc41461062a578063ca72a4e71461064a57600080fd5b806370a08231116100f257806370a0823114610542578063715018a614610562578063794ac1491461057757806381230a83146105975780638da5cb5b146105b757600080fd5b806350faa48f146104a857806351bc3c85146104c85780635342acb4146104dd57806354a5df1f146105165780636c0a24eb1461052c57600080fd5b806327a14fc2116101bc578063441d801f11610180578063441d801f146104315780634706240214610451578063482e53ff1461046757806348fad6381461047d5780634b94f50e1461049357600080fd5b806327a14fc2146103995780632aca3e7d146103b95780632b14ca56146103d9578063313ce567146103ef578063395093511461041157600080fd5b8063139196f711610203578063139196f7146102ec5780631694505e1461030c57806318160ddd146103445780631f61fd5a1461036357806323b872dd1461037957600080fd5b806306e99fef1461024b57806306fdde031461026257806307ebec271461028d57806308003f78146102b7578063095ea7b3146102cc57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610726565b005b34801561026e57600080fd5b5061027761078c565b6040516102849190611d99565b60405180910390f35b34801561029957600080fd5b506012546102a79060ff1681565b6040519015158152602001610284565b3480156102c357600080fd5b5061026061081e565b3480156102d857600080fd5b506102a76102e7366004611dfc565b6108ea565b3480156102f857600080fd5b50610260610307366004611e28565b610901565b34801561031857600080fd5b5060015461032c906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561035057600080fd5b50600b545b604051908152602001610284565b34801561036f57600080fd5b5061035560135481565b34801561038557600080fd5b506102a7610394366004611e45565b610a12565b3480156103a557600080fd5b506102606103b4366004611e86565b610a7b565b3480156103c557600080fd5b506102606103d4366004611e9f565b610aaa565b3480156103e557600080fd5b50610355600f5481565b3480156103fb57600080fd5b50600a5460405160ff9091168152602001610284565b34801561041d57600080fd5b506102a761042c366004611dfc565b610aef565b34801561043d57600080fd5b5061026061044c366004611ecf565b610b25565b34801561045d57600080fd5b50610355600e5481565b34801561047357600080fd5b5061035560145481565b34801561048957600080fd5b5061035560165481565b34801561049f57600080fd5b50610355610b5f565b3480156104b457600080fd5b5060025461032c906001600160a01b031681565b3480156104d457600080fd5b50610260610ce0565b3480156104e957600080fd5b506102a76104f8366004611e28565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561052257600080fd5b5061035560115481565b34801561053857600080fd5b50610355600c5481565b34801561054e57600080fd5b5061035561055d366004611e28565b610d09565b34801561056e57600080fd5b50610260610d24565b34801561058357600080fd5b50610260610592366004611f55565b610d98565b3480156105a357600080fd5b506102606105b2366004611e9f565b610dd5565b3480156105c357600080fd5b506000546001600160a01b031661032c565b3480156105e157600080fd5b50610277610e0a565b3480156105f657600080fd5b506102a7610605366004611dfc565b610e19565b34801561061657600080fd5b506102a7610625366004611dfc565b610e68565b34801561063657600080fd5b50610260610645366004611e86565b610e75565b34801561065657600080fd5b50610260610665366004611e28565b610ea4565b34801561067657600080fd5b5060105461032c906001600160a01b031681565b34801561069657600080fd5b506102606106a5366004611e9f565b610f7f565b3480156106b657600080fd5b5061035560155481565b3480156106cc57600080fd5b506103556106db366004611f72565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561071257600080fd5b50610260610721366004611e28565b610fb4565b6000546001600160a01b031633146107595760405162461bcd60e51b815260040161075090611fab565b60405180910390fd5b6040514790339082156108fc029083906000818181858888f19350505050158015610788573d6000803e3d6000fd5b5050565b60606008805461079b90611fe0565b80601f01602080910402602001604051908101604052809291908181526020018280546107c790611fe0565b80156108145780601f106107e957610100808354040283529160200191610814565b820191906000526020600020905b8154815290600101906020018083116107f757829003601f168201915b5050505050905090565b6016544210156108825760405162461bcd60e51b815260206004820152602960248201527f4e657874206275726e2074696d65206973206e6f7420647565207965742c206260448201526819481c185d1a595b9d60ba1b6064820152608401610750565b60125460ff166108e05760405162461bcd60e51b8152602060048201526024808201527f4275726e696e6720746f6b656e732069732063757272656e746c792064697361604482015263189b195960e21b6064820152608401610750565b6108e861109e565b565b60006108f73384846111da565b5060015b92915050565b6000546001600160a01b0316331461092b5760405162461bcd60e51b815260040161075090611fab565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610998919061201a565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c9190612033565b50505050565b6000610a1f8484846112fe565b610a718433610a6c856040518060600160405280602881526020016122fa602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611787565b6111da565b5060019392505050565b6000546001600160a01b03163314610aa55760405162461bcd60e51b815260040161075090611fab565b600c55565b6000546001600160a01b03163314610ad45760405162461bcd60e51b815260040161075090611fab565b60198190556018829055610ae88282612066565b6017555050565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108f7918590610a6c90866117c1565b6000546001600160a01b03163314610b4f5760405162461bcd60e51b815260040161075090611fab565b610b5a838383611827565b505050565b604080516002808252606082018352600092839291906020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf1919061208f565b81600081518110610c0457610c046120ac565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610c3857610c386120ac565b6001600160a01b03928316602091820292909201015260015460115460405163d06ca61f60e01b8152919092169163d06ca61f91610c7b91908590600401612106565b600060405180830381865afa158015610c98573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cc09190810190612127565b600181518110610cd257610cd26120ac565b602002602001015191505090565b6000610ceb30610d09565b90508015610d0657600d5460ff16610d0657610d0681611891565b50565b6001600160a01b031660009081526005602052604090205490565b6000546001600160a01b03163314610d4e5760405162461bcd60e51b815260040161075090611fab565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610dc25760405162461bcd60e51b815260040161075090611fab565b6012805460ff1916911515919091179055565b6000546001600160a01b03163314610dff5760405162461bcd60e51b815260040161075090611fab565b600e91909155600f55565b60606009805461079b90611fe0565b60006108f73384610a6c85604051806060016040528060258152602001612322602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611787565b60006108f73384846112fe565b6000546001600160a01b03163314610e9f5760405162461bcd60e51b815260040161075090611fab565b601155565b6000546001600160a01b03163314610ece5760405162461bcd60e51b815260040161075090611fab565b6002546001600160a01b031615610f325760405162461bcd60e51b815260206004820152602260248201527f556e69737761705632506169722068617320616c7265616479206265656e2073604482015261195d60f21b6064820152608401610750565b600154600b54610f4f9130916001600160a01b03909116906111da565b600280546001600160a01b039092166001600160a01b031992831681179091556003805490921617905542601655565b6000546001600160a01b03163314610fa95760405162461bcd60e51b815260040161075090611fab565b601391909155601455565b6000546001600160a01b03163314610fde5760405162461bcd60e51b815260040161075090611fab565b6001600160a01b0381166110435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610750565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600d805460ff191660011790556002546000906110c3906001600160a01b0316610d09565b905060006110dc6014548361197590919063ffffffff16565b905080156111cc576002546110fa906001600160a01b0316826119b7565b600360009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561114a57600080fd5b505af115801561115e573d6000803e3d6000fd5b505060155461117092509050826117c1565b60155560135461118c9061118590603c611aa4565b42906117c1565b60168190556040805183815260208101929092527f8bc81353cf6671d259d22783e39ed930583c86f3f4cf7e981298e6a872dfb15d910160405180910390a15b5050600d805460ff19169055565b6001600160a01b03831661123c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610750565b6001600160a01b03821661129d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610750565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610750565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610750565b600081116114265760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610750565b6001600160a01b038316600090815260076020526040812054819060ff1615801561146a57506001600160a01b03841660009081526007602052604090205460ff16155b801561148457506000546001600160a01b03868116911614155b801561149e57506000546001600160a01b03858116911614155b6010549091506001600160a01b038681169116148015906114cd57506010546001600160a01b03858116911614155b80156114e257506001600160a01b0385163014155b80156114f757506001600160a01b0384163014155b1561169c57801561169c576002546001600160a01b0390811690861603611584576115386064611532600e5486611aa490919063ffffffff16565b90611975565b915060006115468484611b26565b9050600061155d8261155788610d09565b906117c1565b9050600c548111156115815760405162461bcd60e51b8152600401610750906121e5565b50505b6002546001600160a01b038681169116148015906115af57506002546001600160a01b038581169116145b1561161e5760165442101580156115c8575060125460ff165b156115da576115d561109e565b61161e565b60006115e530610d09565b9050801561161c5760006115f7610b5f565b905080821015801561160c5750600d5460ff16155b1561161a5761161a81611891565b505b505b6002546001600160a01b0386811691161480159061164a57506002546001600160a01b03858116911614155b1561169c57600061165a86610d09565b9050600061166786610d09565b9050600c54821115801561167d5750600c548111155b6116995760405162461bcd60e51b8152600401610750906121e5565b50505b60006116a88484611b26565b6001600160a01b0387166000908152600560205260409020549091506116ce9085611b26565b6001600160a01b0380881660009081526005602052604080822093909355908716815220546116fd90826117c1565b6001600160a01b03861660009081526005602052604080822092909255308152205461172990846117c1565b3060009081526005602090815260409182902092909255518281526001600160a01b0387811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050565b600081848411156117ab5760405162461bcd60e51b81526004016107509190611d99565b5060006117b8848661222a565b95945050505050565b6000806117ce8385612066565b9050838110156118205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610750565b9392505050565b60005b82811015610a0c576000848483818110611846576118466120ac565b905060200201602081019061185b9190611e28565b6001600160a01b03166000908152600760205260409020805460ff191684151517905550806118898161223d565b91505061182a565b6000601754601954836118a49190612256565b6118ae919061226d565b90506000601754601854846118c39190612256565b6118cd919061226d565b90506000821561191e5760006118e460028561226d565b905060006118f2828661222a565b905047925061190082611b68565b8247111561191b5761191b81611916854761222a565b611cba565b50505b8115610a0c5761192d82611b68565b4715610a0c5760045460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561196d573d6000803e3d6000fd5b505050505050565b600061182083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6b565b6001600160a01b038216611a175760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610750565b600b54611a249082611b26565b600b556001600160a01b038216600090815260056020526040902054611a4a9082611b26565b6001600160a01b0383166000818152600560205260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a989085815260200190565b60405180910390a35050565b600082600003611ab6575060006108fb565b6000611ac28385612256565b905082611acf858361226d565b146118205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610750565b600061182083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611787565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b9d57611b9d6120ac565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1a919061208f565b81600181518110611c2d57611c2d6120ac565b6001600160a01b039283166020918202929092010152600154611c5391309116846111da565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c8c90859060009086903090429060040161228f565b600060405180830381600087803b158015611ca657600080fd5b505af115801561196d573d6000803e3d6000fd5b600154611cd29030906001600160a01b0316846111da565b60015460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611d3f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d6491906122cb565b5050505050565b60008183611d8c5760405162461bcd60e51b81526004016107509190611d99565b5060006117b8848661226d565b600060208083528351808285015260005b81811015611dc657858101830151858201604001528201611daa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d0657600080fd5b60008060408385031215611e0f57600080fd5b8235611e1a81611de7565b946020939093013593505050565b600060208284031215611e3a57600080fd5b813561182081611de7565b600080600060608486031215611e5a57600080fd5b8335611e6581611de7565b92506020840135611e7581611de7565b929592945050506040919091013590565b600060208284031215611e9857600080fd5b5035919050565b60008060408385031215611eb257600080fd5b50508035926020909101359150565b8015158114610d0657600080fd5b600080600060408486031215611ee457600080fd5b833567ffffffffffffffff80821115611efc57600080fd5b818601915086601f830112611f1057600080fd5b813581811115611f1f57600080fd5b8760208260051b8501011115611f3457600080fd5b60209283019550935050840135611f4a81611ec1565b809150509250925092565b600060208284031215611f6757600080fd5b813561182081611ec1565b60008060408385031215611f8557600080fd5b8235611f9081611de7565b91506020830135611fa081611de7565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611ff457607f821691505b60208210810361201457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561202c57600080fd5b5051919050565b60006020828403121561204557600080fd5b815161182081611ec1565b634e487b7160e01b600052601160045260246000fd5b808201808211156108fb576108fb612050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156120a157600080fd5b815161182081611de7565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156120fb5781516001600160a01b0316875295820195908201906001016120d6565b509495945050505050565b82815260406020820152600061211f60408301846120c2565b949350505050565b6000602080838503121561213a57600080fd5b825167ffffffffffffffff8082111561215257600080fd5b818501915085601f83011261216657600080fd5b81518181111561217857612178612079565b8060051b604051601f19603f8301168101818110858211171561219d5761219d612079565b6040529182528482019250838101850191888311156121bb57600080fd5b938501935b828510156121d9578451845293850193928501926121c0565b98975050505050505050565b60208082526025908201527f57616c6c65742063616e6e6f7420657863656564206d61782057616c6c6574206040820152641b1a5b5a5d60da1b606082015260800190565b818103818111156108fb576108fb612050565b60006001820161224f5761224f612050565b5060010190565b80820281158282048414176108fb576108fb612050565b60008261228a57634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a0604082015260006122ae60a08301866120c2565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156122e057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e16efb6bde6298dfc6b32f8bb3f8625fb8776a97ba98bf6876b833517859b68b64736f6c634300081100338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x60806040526004361061023f5760003560e01c806350faa48f1161012e57806395d89b41116100ab578063d5f394881161006f578063d5f394881461066a578063d9058bd51461068a578063dc13b31c146106aa578063dd62ed3e146106c0578063f2fde38b1461070657600080fd5b806395d89b41146105d5578063a457c2d7146105ea578063a9059cbb1461060a578063b2abbbc41461062a578063ca72a4e71461064a57600080fd5b806370a08231116100f257806370a0823114610542578063715018a614610562578063794ac1491461057757806381230a83146105975780638da5cb5b146105b757600080fd5b806350faa48f146104a857806351bc3c85146104c85780635342acb4146104dd57806354a5df1f146105165780636c0a24eb1461052c57600080fd5b806327a14fc2116101bc578063441d801f11610180578063441d801f146104315780634706240214610451578063482e53ff1461046757806348fad6381461047d5780634b94f50e1461049357600080fd5b806327a14fc2146103995780632aca3e7d146103b95780632b14ca56146103d9578063313ce567146103ef578063395093511461041157600080fd5b8063139196f711610203578063139196f7146102ec5780631694505e1461030c57806318160ddd146103445780631f61fd5a1461036357806323b872dd1461037957600080fd5b806306e99fef1461024b57806306fdde031461026257806307ebec271461028d57806308003f78146102b7578063095ea7b3146102cc57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610726565b005b34801561026e57600080fd5b5061027761078c565b6040516102849190611d99565b60405180910390f35b34801561029957600080fd5b506012546102a79060ff1681565b6040519015158152602001610284565b3480156102c357600080fd5b5061026061081e565b3480156102d857600080fd5b506102a76102e7366004611dfc565b6108ea565b3480156102f857600080fd5b50610260610307366004611e28565b610901565b34801561031857600080fd5b5060015461032c906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561035057600080fd5b50600b545b604051908152602001610284565b34801561036f57600080fd5b5061035560135481565b34801561038557600080fd5b506102a7610394366004611e45565b610a12565b3480156103a557600080fd5b506102606103b4366004611e86565b610a7b565b3480156103c557600080fd5b506102606103d4366004611e9f565b610aaa565b3480156103e557600080fd5b50610355600f5481565b3480156103fb57600080fd5b50600a5460405160ff9091168152602001610284565b34801561041d57600080fd5b506102a761042c366004611dfc565b610aef565b34801561043d57600080fd5b5061026061044c366004611ecf565b610b25565b34801561045d57600080fd5b50610355600e5481565b34801561047357600080fd5b5061035560145481565b34801561048957600080fd5b5061035560165481565b34801561049f57600080fd5b50610355610b5f565b3480156104b457600080fd5b5060025461032c906001600160a01b031681565b3480156104d457600080fd5b50610260610ce0565b3480156104e957600080fd5b506102a76104f8366004611e28565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561052257600080fd5b5061035560115481565b34801561053857600080fd5b50610355600c5481565b34801561054e57600080fd5b5061035561055d366004611e28565b610d09565b34801561056e57600080fd5b50610260610d24565b34801561058357600080fd5b50610260610592366004611f55565b610d98565b3480156105a357600080fd5b506102606105b2366004611e9f565b610dd5565b3480156105c357600080fd5b506000546001600160a01b031661032c565b3480156105e157600080fd5b50610277610e0a565b3480156105f657600080fd5b506102a7610605366004611dfc565b610e19565b34801561061657600080fd5b506102a7610625366004611dfc565b610e68565b34801561063657600080fd5b50610260610645366004611e86565b610e75565b34801561065657600080fd5b50610260610665366004611e28565b610ea4565b34801561067657600080fd5b5060105461032c906001600160a01b031681565b34801561069657600080fd5b506102606106a5366004611e9f565b610f7f565b3480156106b657600080fd5b5061035560155481565b3480156106cc57600080fd5b506103556106db366004611f72565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561071257600080fd5b50610260610721366004611e28565b610fb4565b6000546001600160a01b031633146107595760405162461bcd60e51b815260040161075090611fab565b60405180910390fd5b6040514790339082156108fc029083906000818181858888f19350505050158015610788573d6000803e3d6000fd5b5050565b60606008805461079b90611fe0565b80601f01602080910402602001604051908101604052809291908181526020018280546107c790611fe0565b80156108145780601f106107e957610100808354040283529160200191610814565b820191906000526020600020905b8154815290600101906020018083116107f757829003601f168201915b5050505050905090565b6016544210156108825760405162461bcd60e51b815260206004820152602960248201527f4e657874206275726e2074696d65206973206e6f7420647565207965742c206260448201526819481c185d1a595b9d60ba1b6064820152608401610750565b60125460ff166108e05760405162461bcd60e51b8152602060048201526024808201527f4275726e696e6720746f6b656e732069732063757272656e746c792064697361604482015263189b195960e21b6064820152608401610750565b6108e861109e565b565b60006108f73384846111da565b5060015b92915050565b6000546001600160a01b0316331461092b5760405162461bcd60e51b815260040161075090611fab565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610998919061201a565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c9190612033565b50505050565b6000610a1f8484846112fe565b610a718433610a6c856040518060600160405280602881526020016122fa602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611787565b6111da565b5060019392505050565b6000546001600160a01b03163314610aa55760405162461bcd60e51b815260040161075090611fab565b600c55565b6000546001600160a01b03163314610ad45760405162461bcd60e51b815260040161075090611fab565b60198190556018829055610ae88282612066565b6017555050565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108f7918590610a6c90866117c1565b6000546001600160a01b03163314610b4f5760405162461bcd60e51b815260040161075090611fab565b610b5a838383611827565b505050565b604080516002808252606082018352600092839291906020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf1919061208f565b81600081518110610c0457610c046120ac565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610c3857610c386120ac565b6001600160a01b03928316602091820292909201015260015460115460405163d06ca61f60e01b8152919092169163d06ca61f91610c7b91908590600401612106565b600060405180830381865afa158015610c98573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cc09190810190612127565b600181518110610cd257610cd26120ac565b602002602001015191505090565b6000610ceb30610d09565b90508015610d0657600d5460ff16610d0657610d0681611891565b50565b6001600160a01b031660009081526005602052604090205490565b6000546001600160a01b03163314610d4e5760405162461bcd60e51b815260040161075090611fab565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610dc25760405162461bcd60e51b815260040161075090611fab565b6012805460ff1916911515919091179055565b6000546001600160a01b03163314610dff5760405162461bcd60e51b815260040161075090611fab565b600e91909155600f55565b60606009805461079b90611fe0565b60006108f73384610a6c85604051806060016040528060258152602001612322602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611787565b60006108f73384846112fe565b6000546001600160a01b03163314610e9f5760405162461bcd60e51b815260040161075090611fab565b601155565b6000546001600160a01b03163314610ece5760405162461bcd60e51b815260040161075090611fab565b6002546001600160a01b031615610f325760405162461bcd60e51b815260206004820152602260248201527f556e69737761705632506169722068617320616c7265616479206265656e2073604482015261195d60f21b6064820152608401610750565b600154600b54610f4f9130916001600160a01b03909116906111da565b600280546001600160a01b039092166001600160a01b031992831681179091556003805490921617905542601655565b6000546001600160a01b03163314610fa95760405162461bcd60e51b815260040161075090611fab565b601391909155601455565b6000546001600160a01b03163314610fde5760405162461bcd60e51b815260040161075090611fab565b6001600160a01b0381166110435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610750565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600d805460ff191660011790556002546000906110c3906001600160a01b0316610d09565b905060006110dc6014548361197590919063ffffffff16565b905080156111cc576002546110fa906001600160a01b0316826119b7565b600360009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561114a57600080fd5b505af115801561115e573d6000803e3d6000fd5b505060155461117092509050826117c1565b60155560135461118c9061118590603c611aa4565b42906117c1565b60168190556040805183815260208101929092527f8bc81353cf6671d259d22783e39ed930583c86f3f4cf7e981298e6a872dfb15d910160405180910390a15b5050600d805460ff19169055565b6001600160a01b03831661123c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610750565b6001600160a01b03821661129d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610750565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610750565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610750565b600081116114265760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610750565b6001600160a01b038316600090815260076020526040812054819060ff1615801561146a57506001600160a01b03841660009081526007602052604090205460ff16155b801561148457506000546001600160a01b03868116911614155b801561149e57506000546001600160a01b03858116911614155b6010549091506001600160a01b038681169116148015906114cd57506010546001600160a01b03858116911614155b80156114e257506001600160a01b0385163014155b80156114f757506001600160a01b0384163014155b1561169c57801561169c576002546001600160a01b0390811690861603611584576115386064611532600e5486611aa490919063ffffffff16565b90611975565b915060006115468484611b26565b9050600061155d8261155788610d09565b906117c1565b9050600c548111156115815760405162461bcd60e51b8152600401610750906121e5565b50505b6002546001600160a01b038681169116148015906115af57506002546001600160a01b038581169116145b1561161e5760165442101580156115c8575060125460ff165b156115da576115d561109e565b61161e565b60006115e530610d09565b9050801561161c5760006115f7610b5f565b905080821015801561160c5750600d5460ff16155b1561161a5761161a81611891565b505b505b6002546001600160a01b0386811691161480159061164a57506002546001600160a01b03858116911614155b1561169c57600061165a86610d09565b9050600061166786610d09565b9050600c54821115801561167d5750600c548111155b6116995760405162461bcd60e51b8152600401610750906121e5565b50505b60006116a88484611b26565b6001600160a01b0387166000908152600560205260409020549091506116ce9085611b26565b6001600160a01b0380881660009081526005602052604080822093909355908716815220546116fd90826117c1565b6001600160a01b03861660009081526005602052604080822092909255308152205461172990846117c1565b3060009081526005602090815260409182902092909255518281526001600160a01b0387811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050565b600081848411156117ab5760405162461bcd60e51b81526004016107509190611d99565b5060006117b8848661222a565b95945050505050565b6000806117ce8385612066565b9050838110156118205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610750565b9392505050565b60005b82811015610a0c576000848483818110611846576118466120ac565b905060200201602081019061185b9190611e28565b6001600160a01b03166000908152600760205260409020805460ff191684151517905550806118898161223d565b91505061182a565b6000601754601954836118a49190612256565b6118ae919061226d565b90506000601754601854846118c39190612256565b6118cd919061226d565b90506000821561191e5760006118e460028561226d565b905060006118f2828661222a565b905047925061190082611b68565b8247111561191b5761191b81611916854761222a565b611cba565b50505b8115610a0c5761192d82611b68565b4715610a0c5760045460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561196d573d6000803e3d6000fd5b505050505050565b600061182083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6b565b6001600160a01b038216611a175760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610750565b600b54611a249082611b26565b600b556001600160a01b038216600090815260056020526040902054611a4a9082611b26565b6001600160a01b0383166000818152600560205260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a989085815260200190565b60405180910390a35050565b600082600003611ab6575060006108fb565b6000611ac28385612256565b905082611acf858361226d565b146118205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610750565b600061182083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611787565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b9d57611b9d6120ac565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1a919061208f565b81600181518110611c2d57611c2d6120ac565b6001600160a01b039283166020918202929092010152600154611c5391309116846111da565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c8c90859060009086903090429060040161228f565b600060405180830381600087803b158015611ca657600080fd5b505af115801561196d573d6000803e3d6000fd5b600154611cd29030906001600160a01b0316846111da565b60015460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611d3f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d6491906122cb565b5050505050565b60008183611d8c5760405162461bcd60e51b81526004016107509190611d99565b5060006117b8848661226d565b600060208083528351808285015260005b81811015611dc657858101830151858201604001528201611daa565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d0657600080fd5b60008060408385031215611e0f57600080fd5b8235611e1a81611de7565b946020939093013593505050565b600060208284031215611e3a57600080fd5b813561182081611de7565b600080600060608486031215611e5a57600080fd5b8335611e6581611de7565b92506020840135611e7581611de7565b929592945050506040919091013590565b600060208284031215611e9857600080fd5b5035919050565b60008060408385031215611eb257600080fd5b50508035926020909101359150565b8015158114610d0657600080fd5b600080600060408486031215611ee457600080fd5b833567ffffffffffffffff80821115611efc57600080fd5b818601915086601f830112611f1057600080fd5b813581811115611f1f57600080fd5b8760208260051b8501011115611f3457600080fd5b60209283019550935050840135611f4a81611ec1565b809150509250925092565b600060208284031215611f6757600080fd5b813561182081611ec1565b60008060408385031215611f8557600080fd5b8235611f9081611de7565b91506020830135611fa081611de7565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611ff457607f821691505b60208210810361201457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561202c57600080fd5b5051919050565b60006020828403121561204557600080fd5b815161182081611ec1565b634e487b7160e01b600052601160045260246000fd5b808201808211156108fb576108fb612050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156120a157600080fd5b815161182081611de7565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156120fb5781516001600160a01b0316875295820195908201906001016120d6565b509495945050505050565b82815260406020820152600061211f60408301846120c2565b949350505050565b6000602080838503121561213a57600080fd5b825167ffffffffffffffff8082111561215257600080fd5b818501915085601f83011261216657600080fd5b81518181111561217857612178612079565b8060051b604051601f19603f8301168101818110858211171561219d5761219d612079565b6040529182528482019250838101850191888311156121bb57600080fd5b938501935b828510156121d9578451845293850193928501926121c0565b98975050505050505050565b60208082526025908201527f57616c6c65742063616e6e6f7420657863656564206d61782057616c6c6574206040820152641b1a5b5a5d60da1b606082015260800190565b818103818111156108fb576108fb612050565b60006001820161224f5761224f612050565b5060010190565b80820281158282048414176108fb576108fb612050565b60008261228a57634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a0604082015260006122ae60a08301866120c2565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156122e057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e16efb6bde6298dfc6b32f8bb3f8625fb8776a97ba98bf6876b833517859b68b64736f6c63430008110033

Deployed Bytecode Sourcemap

11432:12558:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23583:150;;;;;;;;;;;;;:::i;:::-;;13460:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12550:32;;;;;;;;;;-1:-1:-1;12550:32:0;;;;;;;;;;;732:14:1;;725:22;707:41;;695:2;680:18;12550:32:0;567:187:1;16739:262:0;;;;;;;;;;;;;:::i;14293:161::-;;;;;;;;;;-1:-1:-1;14293:161:0;;;;;:::i;:::-;;:::i;23741:246::-;;;;;;;;;;-1:-1:-1;23741:246:0;;;;;:::i;:::-;;:::i;11708:106::-;;;;;;;;;;-1:-1:-1;11708:106:0;;;;-1:-1:-1;;;;;11708:106:0;;;;;;-1:-1:-1;;;;;1657:32:1;;;1639:51;;1627:2;1612:18;11708:106:0;1467:229:1;13737:95:0;;;;;;;;;;-1:-1:-1;13817:7:0;;13737:95;;;1847:25:1;;;1835:2;1820:18;13737:95:0;1701:177:1;12589:41:0;;;;;;;;;;;;;;;;14651:313;;;;;;;;;;-1:-1:-1;14651:313:0;;;;;:::i;:::-;;:::i;18045:127::-;;;;;;;;;;-1:-1:-1;18045:127:0;;;;;:::i;:::-;;:::i;14462:181::-;;;;;;;;;;-1:-1:-1;14462:181:0;;;;;:::i;:::-;;:::i;12437:26::-;;;;;;;;;;;;;;;;13646:83;;;;;;;;;;-1:-1:-1;13712:9:0;;13646:83;;13712:9;;;;2924:36:1;;2912:2;2897:18;13646:83:0;2782:184:1;14972:218:0;;;;;;;;;;-1:-1:-1;14972:218:0;;;;;:::i;:::-;;:::i;15604:161::-;;;;;;;;;;-1:-1:-1;15604:161:0;;;;;:::i;:::-;;:::i;12405:25::-;;;;;;;;;;;;;;;;12639:41;;;;;;;;;;;;;;;;12748:38;;;;;;;;;;;;;;;;23144:264;;;;;;;;;;;;;:::i;11821:38::-;;;;;;;;;;-1:-1:-1;11821:38:0;;;;-1:-1:-1;;;;;11821:38:0;;;20920:267;;;;;;;;;;;;;:::i;17913:124::-;;;;;;;;;;-1:-1:-1;17913:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;18002:27:0;17978:4;18002:27;;;:18;:27;;;;;;;;;17913:124;12500:42;;;;;;;;;;;;;;;;12317:53;;;;;;;;;;;;;;;;13840:119;;;;;;;;;;-1:-1:-1;13840:119:0;;;;;:::i;:::-;;:::i;6506:148::-;;;;;;;;;;;;;:::i;16624:107::-;;;;;;;;;;-1:-1:-1;16624:107:0;;;;;:::i;:::-;;:::i;15475:122::-;;;;;;;;;;-1:-1:-1;15475:122:0;;;;;:::i;:::-;;:::i;6292:79::-;;;;;;;;;;-1:-1:-1;6330:7:0;6357:6;-1:-1:-1;;;;;6357:6:0;6292:79;;13551:87;;;;;;;;;;;;;:::i;15198:269::-;;;;;;;;;;-1:-1:-1;15198:269:0;;;;;:::i;:::-;;:::i;13967:167::-;;;;;;;;;;-1:-1:-1;13967:167:0;;;;;:::i;:::-;;:::i;23416:122::-;;;;;;;;;;-1:-1:-1;23416:122:0;;;;;:::i;:::-;;:::i;17559:346::-;;;;;;;;;;-1:-1:-1;17559:346:0;;;;;:::i;:::-;;:::i;12470:23::-;;;;;;;;;;-1:-1:-1;12470:23:0;;;;-1:-1:-1;;;;;12470:23:0;;;15772:205;;;;;;;;;;-1:-1:-1;15772:205:0;;;;;:::i;:::-;;:::i;12699:42::-;;;;;;;;;;;;;;;;14142:143;;;;;;;;;;-1:-1:-1;14142:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14250:18:0;;;14223:7;14250:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14142:143;6662:244;;;;;;;;;;-1:-1:-1;6662:244:0;;;;;:::i;:::-;;:::i;23583:150::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;;;;;;;;;23685:40:::1;::::0;23653:21:::1;::::0;23693:10:::1;::::0;23685:40;::::1;;;::::0;23653:21;;23632:18:::1;23685:40:::0;23632:18;23685:40;23653:21;23693:10;23685:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23621:112;23583:150::o:0;13460:83::-;13497:13;13530:5;13523:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13460:83;:::o;16739:262::-;16808:26;;16789:15;:45;;16781:99;;;;-1:-1:-1;;;16781:99:0;;5644:2:1;16781:99:0;;;5626:21:1;5683:2;5663:18;;;5656:30;5722:34;5702:18;;;5695:62;-1:-1:-1;;;5773:18:1;;;5766:39;5822:19;;16781:99:0;5442:405:1;16781:99:0;16899:13;;;;16891:62;;;;-1:-1:-1;;;16891:62:0;;6054:2:1;16891:62:0;;;6036:21:1;6093:2;6073:18;;;6066:30;6132:34;6112:18;;;6105:62;-1:-1:-1;;;6183:18:1;;;6176:34;6227:19;;16891:62:0;5852:400:1;16891:62:0;16964:29;:27;:29::i;:::-;16739:262::o;14293:161::-;14368:4;14385:39;2714:10;14408:7;14417:6;14385:8;:39::i;:::-;-1:-1:-1;14442:4:0;14293:161;;;;;:::o;23741:246::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;23893:35:::1;::::0;-1:-1:-1;;;23893:35:0;;23922:4:::1;23893:35;::::0;::::1;1639:51:1::0;23848:15:0;;23821:17:::1;::::0;-1:-1:-1;;;;;23893:20:0;::::1;::::0;::::1;::::0;1612:18:1;;23893:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23939:40;::::0;-1:-1:-1;;;23939:40:0;;23959:10:::1;23939:40;::::0;::::1;6620:51:1::0;6687:18;;;6680:34;;;23875:53:0;;-1:-1:-1;;;;;;23939:19:0;::::1;::::0;::::1;::::0;6593:18:1;;23939:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23810:177;;23741:246:::0;:::o;14651:313::-;14749:4;14766:36;14776:6;14784:9;14795:6;14766:9;:36::i;:::-;14813:121;14822:6;2714:10;14844:89;14882:6;14844:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14844:19:0;;;;;;:11;:19;;;;;;;;2714:10;14844:33;;;;;;;;;;:37;:89::i;:::-;14813:8;:121::i;:::-;-1:-1:-1;14952:4:0;14651:313;;;;;:::o;18045:127::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;18130:16:::1;:34:::0;18045:127::o;14462:181::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;14544:7:::1;:18:::0;;;14573:8:::1;:19:::0;;;14616::::1;14584:8:::0;14554;14616:19:::1;:::i;:::-;14603:10;:32:::0;-1:-1:-1;;14462:181:0:o;14972:218::-;2714:10;15060:4;15109:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15109:34:0;;;;;;;;;;15060:4;;15077:83;;15100:7;;15109:50;;15148:10;15109:38;:50::i;15604:161::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;15716:41:::1;15729:9;;15740:16;15716:12;:41::i;:::-;15604:161:::0;;;:::o;23144:264::-;23235:16;;;23249:1;23235:16;;;;;;;;23190:7;;;;23235:16;23249:1;23235:16;;;;;;;;-1:-1:-1;;23272:15:0;;:22;;;-1:-1:-1;;;23272:22:0;;;;23211:40;;-1:-1:-1;;;;;;23272:15:0;;;;:20;;-1:-1:-1;23272:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23262:4;23267:1;23262:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;23262:32:0;;;-1:-1:-1;;;;;23262:32:0;;;;;23323:4;23305;23310:1;23305:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23305:23:0;;;:7;;;;;;;;;:23;23346:15;;23376:14;;23346:51;;-1:-1:-1;;;23346:51:0;;:15;;;;;:29;;:51;;23376:14;23392:4;;23346:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23346:51:0;;;;;;;;;;;;:::i;:::-;23398:1;23346:54;;;;;;;;:::i;:::-;;;;;;;23339:61;;;23144:264;:::o;20920:267::-;20962:28;20993:24;21011:4;20993:9;:24::i;:::-;20962:55;-1:-1:-1;21032:24:0;;21028:152;;21078:16;;;;21073:96;;21115:38;21132:20;21115:16;:38::i;:::-;20951:236;20920:267::o;13840:119::-;-1:-1:-1;;;;;13933:18:0;13906:7;13933:18;;;:9;:18;;;;;;;13840:119::o;6506:148::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;6613:1:::1;6597:6:::0;;6576:40:::1;::::0;-1:-1:-1;;;;;6597:6:0;;::::1;::::0;6576:40:::1;::::0;6613:1;;6576:40:::1;6644:1;6627:19:::0;;-1:-1:-1;;;;;;6627:19:0::1;::::0;;6506:148::o;16624:107::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;16699:13:::1;:24:::0;;-1:-1:-1;;16699:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16624:107::o;15475:122::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;15552:6:::1;:12:::0;;;;15575:7:::1;:14:::0;15475:122::o;13551:87::-;13590:13;13623:7;13616:14;;;;;:::i;15198:269::-;15291:4;15308:129;2714:10;15331:7;15340:96;15379:15;15340:96;;;;;;;;;;;;;;;;;2714:10;15340:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15340:34:0;;;;;;;;;;;;:38;:96::i;13967:167::-;14045:4;14062:42;2714:10;14086:9;14097:6;14062:9;:42::i;23416:122::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;23498:14:::1;:32:::0;23416:122::o;17559:346::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;17635:10:::1;::::0;-1:-1:-1;;;;;17635:10:0::1;:24:::0;17627:70:::1;;;::::0;-1:-1:-1;;;17627:70:0;;9872:2:1;17627:70:0::1;::::0;::::1;9854:21:1::0;9911:2;9891:18;;;9884:30;9950:34;9930:18;;;9923:62;-1:-1:-1;;;10001:18:1;;;9994:32;10043:19;;17627:70:0::1;9670:398:1::0;17627:70:0::1;17740:15;::::0;17758:7:::1;::::0;17708:58:::1;::::0;17725:4:::1;::::0;-1:-1:-1;;;;;17740:15:0;;::::1;::::0;17708:8:::1;:58::i;:::-;17777:10;:18:::0;;-1:-1:-1;;;;;17777:18:0;;::::1;-1:-1:-1::0;;;;;;17777:18:0;;::::1;::::0;::::1;::::0;;;17807:6:::1;:35:::0;;;;::::1;;::::0;;17882:15:::1;17853:26;:44:::0;17559:346::o;15772:205::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;15879:21:::1;:42:::0;;;;15932:20:::1;:37:::0;15772:205::o;6662:244::-;6419:6;;-1:-1:-1;;;;;6419:6:0;2714:10;6419:22;6411:67;;;;-1:-1:-1;;;6411:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6751:22:0;::::1;6743:73;;;::::0;-1:-1:-1;;;6743:73:0;;10275:2:1;6743:73:0::1;::::0;::::1;10257:21:1::0;10314:2;10294:18;;;10287:30;10353:34;10333:18;;;10326:62;-1:-1:-1;;;10404:18:1;;;10397:36;10450:19;;6743:73:0::1;10073:402:1::0;6743:73:0::1;6853:6;::::0;;6832:38:::1;::::0;-1:-1:-1;;;;;6832:38:0;;::::1;::::0;6853:6;::::1;::::0;6832:38:::1;::::0;::::1;6881:6;:17:::0;;-1:-1:-1;;;;;;6881:17:0::1;-1:-1:-1::0;;;;;6881:17:0;;;::::1;::::0;;;::::1;::::0;;6662:244::o;15985:631::-;11581:16;:23;;-1:-1:-1;;11581:23:0;11600:4;11581:23;;;16082:10:::1;::::0;11581:16;;16072:21:::1;::::0;-1:-1:-1;;;;;16082:10:0::1;16072:9;:21::i;:::-;16055:38;;16104:20;16127:35;16141:20;;16127:9;:13;;:35;;;;:::i;:::-;16104:58:::0;-1:-1:-1;16176:19:0;;16173:436:::1;;16285:10;::::0;16279:34:::1;::::0;-1:-1:-1;;;;;16285:10:0::1;16297:15:::0;16279:5:::1;:34::i;:::-;16328:6;;;;;;;;;-1:-1:-1::0;;;;;16328:6:0::1;-1:-1:-1::0;;;;;16328:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;16382:23:0::1;::::0;:44:::1;::::0;-1:-1:-1;16382:23:0;-1:-1:-1;16410:15:0;16382:27:::1;:44::i;:::-;16356:23;:70:::0;16490:21:::1;::::0;16470:50:::1;::::0;16490:29:::1;::::0;16516:2:::1;16490:25;:29::i;:::-;16470:15;::::0;:19:::1;:50::i;:::-;16441:26;:79:::0;;;16540:57:::1;::::0;;10654:25:1;;;10710:2;10695:18;;10688:34;;;;16540:57:0::1;::::0;10627:18:1;16540:57:0::1;;;;;;;16173:436;-1:-1:-1::0;;11627:16:0;:24;;-1:-1:-1;;11627:24:0;;;15985:631::o;18180:337::-;-1:-1:-1;;;;;18273:19:0;;18265:68;;;;-1:-1:-1;;;18265:68:0;;10935:2:1;18265:68:0;;;10917:21:1;10974:2;10954:18;;;10947:30;11013:34;10993:18;;;10986:62;-1:-1:-1;;;11064:18:1;;;11057:34;11108:19;;18265:68:0;10733:400:1;18265:68:0;-1:-1:-1;;;;;18352:21:0;;18344:68;;;;-1:-1:-1;;;18344:68:0;;11340:2:1;18344:68:0;;;11322:21:1;11379:2;11359:18;;;11352:30;11418:34;11398:18;;;11391:62;-1:-1:-1;;;11469:18:1;;;11462:32;11511:19;;18344:68:0;11138:398:1;18344:68:0;-1:-1:-1;;;;;18425:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18477:32;;1847:25:1;;;18477:32:0;;1820:18:1;18477:32:0;;;;;;;18180:337;;;:::o;18525:2387::-;-1:-1:-1;;;;;18613:18:0;;18605:68;;;;-1:-1:-1;;;18605:68:0;;11743:2:1;18605:68:0;;;11725:21:1;11782:2;11762:18;;;11755:30;11821:34;11801:18;;;11794:62;-1:-1:-1;;;11872:18:1;;;11865:35;11917:19;;18605:68:0;11541:401:1;18605:68:0;-1:-1:-1;;;;;18692:16:0;;18684:64;;;;-1:-1:-1;;;18684:64:0;;12149:2:1;18684:64:0;;;12131:21:1;12188:2;12168:18;;;12161:30;12227:34;12207:18;;;12200:62;-1:-1:-1;;;12278:18:1;;;12271:33;12321:19;;18684:64:0;11947:399:1;18684:64:0;18776:1;18767:6;:10;18759:64;;;;-1:-1:-1;;;18759:64:0;;12553:2:1;18759:64:0;;;12535:21:1;12592:2;12572:18;;;12565:30;12631:34;12611:18;;;12604:62;-1:-1:-1;;;12682:18:1;;;12675:39;12731:19;;18759:64:0;12351:405:1;18759:64:0;-1:-1:-1;;;;;18883:24:0;;18834:17;18883:24;;;:18;:24;;;;;;18834:17;;18883:24;;18882:25;:52;;;;-1:-1:-1;;;;;;18912:22:0;;;;;;:18;:22;;;;;;;;18911:23;18882:52;:71;;;;-1:-1:-1;6330:7:0;6357:6;-1:-1:-1;;;;;18938:15:0;;;6357:6;;18938:15;;18882:71;:88;;;;-1:-1:-1;6330:7:0;6357:6;-1:-1:-1;;;;;18957:13:0;;;6357:6;;18957:13;;18882:88;18992:8;;18866:104;;-1:-1:-1;;;;;;18984:16:0;;;18992:8;;18984:16;;;;:34;;-1:-1:-1;19010:8:0;;-1:-1:-1;;;;;19004:14:0;;;19010:8;;19004:14;;18984:34;:59;;;;-1:-1:-1;;;;;;19022:21:0;;19038:4;19022:21;;18984:59;:82;;;;-1:-1:-1;;;;;;19047:19:0;;19061:4;19047:19;;18984:82;18981:1617;;;19086:8;19083:1504;;;19127:10;;-1:-1:-1;;;;;19127:10:0;;;19119:18;;;;19115:361;;19174:27;19197:3;19174:18;19185:6;;19174;:10;;:18;;;;:::i;:::-;:22;;:27::i;:::-;19162:39;-1:-1:-1;19224:22:0;19249:21;:6;19162:39;19249:10;:21::i;:::-;19224:46;;19293:21;19317:33;19335:14;19317:13;19327:2;19317:9;:13::i;:::-;:17;;:33::i;:::-;19293:57;;19398:16;;19381:13;:33;;19373:83;;;;-1:-1:-1;;;19373:83:0;;;;;;;:::i;:::-;19139:337;;19115:361;19506:10;;-1:-1:-1;;;;;19498:18:0;;;19506:10;;19498:18;;;;:38;;-1:-1:-1;19526:10:0;;-1:-1:-1;;;;;19520:16:0;;;19526:10;;19520:16;19498:38;19494:743;;;19583:26;;19564:15;:45;;:62;;;;-1:-1:-1;19613:13:0;;;;19564:62;19561:657;;;19659:29;:27;:29::i;:::-;19561:657;;;19745:28;19776:24;19794:4;19776:9;:24::i;:::-;19745:55;-1:-1:-1;19831:24:0;;19827:364;;19922:19;19944:15;:13;:15::i;:::-;19922:37;;20022:11;19998:20;:35;;:56;;;;-1:-1:-1;20038:16:0;;;;20037:17;19998:56;19994:166;;;20095:29;20112:11;20095:16;:29::i;:::-;19857:334;19827:364;19718:500;19561:657;20267:10;;-1:-1:-1;;;;;20259:18:0;;;20267:10;;20259:18;;;;:38;;-1:-1:-1;20287:10:0;;-1:-1:-1;;;;;20281:16:0;;;20287:10;;20281:16;;20259:38;20255:317;;;20322:19;20344:15;20354:4;20344:9;:15::i;:::-;20322:37;;20382:17;20402:13;20412:2;20402:9;:13::i;:::-;20382:33;;20461:16;;20446:11;:31;;:64;;;;;20494:16;;20481:9;:29;;20446:64;20438:114;;;;-1:-1:-1;;;20438:114:0;;;;;;;:::i;:::-;20299:273;;20255:317;20615:22;20640:21;:6;20651:9;20640:10;:21::i;:::-;-1:-1:-1;;;;;20690:15:0;;;;;;:9;:15;;;;;;20615:46;;-1:-1:-1;20690:27:0;;20710:6;20690:19;:27::i;:::-;-1:-1:-1;;;;;20672:15:0;;;;;;;:9;:15;;;;;;:45;;;;20744:13;;;;;;;:33;;20762:14;20744:17;:33::i;:::-;-1:-1:-1;;;;;20728:13:0;;;;;;:9;:13;;;;;;:49;;;;20833:4;20815:24;;;;:39;;20844:9;20815:28;:39::i;:::-;20806:4;20788:24;;;;:9;:24;;;;;;;;;:66;;;;20870:34;1847:25:1;;;-1:-1:-1;;;;;20870:34:0;;;;;;;;;;1820:18:1;20870:34:0;;;;;;;18594:2318;;;18525:2387;;;:::o;1106:192::-;1192:7;1228:12;1220:6;;;;1212:29;;;;-1:-1:-1;;;1212:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1252:9:0;1264:5;1268:1;1264;:5;:::i;:::-;1252:17;1106:192;-1:-1:-1;;;;;1106:192:0:o;773:181::-;831:7;;863:5;867:1;863;:5;:::i;:::-;851:17;;892:1;887;:6;;879:46;;;;-1:-1:-1;;;879:46:0;;13502:2:1;879:46:0;;;13484:21:1;13541:2;13521:18;;;13514:30;13580:29;13560:18;;;13553:57;13627:18;;879:46:0;13300:351:1;879:46:0;945:1;773:181;-1:-1:-1;;;773:181:0:o;17009:236::-;17096:9;17091:147;17111:20;;;17091:147;;;17153:12;17168:9;;17178:1;17168:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17195:24:0;;;;;:18;:24;;;;;:31;;-1:-1:-1;;17195:31:0;;;;;;;-1:-1:-1;17133:3:0;;;;:::i;:::-;;;;17091:147;;21195:938;21323:16;21368:10;;21357:7;;21343:11;:21;;;;:::i;:::-;21342:36;;;;:::i;:::-;21323:55;;21389:17;21436:10;;21424:8;;21410:11;:22;;;;:::i;:::-;21409:37;;;;:::i;:::-;21389:57;-1:-1:-1;21459:21:0;21496:12;;21493:371;;21524:17;21544:12;21555:1;21544:8;:12;:::i;:::-;21524:32;-1:-1:-1;21571:18:0;21592:20;21524:32;21592:8;:20;:::i;:::-;21571:41;;21643:21;21627:37;;21679:20;21689:9;21679;:20::i;:::-;21741:13;21717:21;:37;21714:139;;;21774:63;21787:10;21799:37;21823:13;21799:21;:37;:::i;:::-;21774:12;:63::i;:::-;21509:355;;21493:371;21889:13;;21886:241;;21919:20;21929:9;21919;:20::i;:::-;21957:21;:25;21954:162;;22072:6;;22064:36;;22024:21;;-1:-1:-1;;;;;22072:6:0;;22064:36;;;;;22024:21;;22003:18;22064:36;22003:18;22064:36;22024:21;22072:6;22064:36;;;;;;;;;;;;;;;;;;;;;21984:132;21250:883;;;21195:938;:::o;1785:132::-;1843:7;1870:39;1874:1;1877;1870:39;;;;;;;;;;;;;;;;;:3;:39::i;17253:294::-;-1:-1:-1;;;;;17328:21:0;;17320:67;;;;-1:-1:-1;;;17320:67:0;;14393:2:1;17320:67:0;;;14375:21:1;14432:2;14412:18;;;14405:30;14471:34;14451:18;;;14444:62;-1:-1:-1;;;14522:18:1;;;14515:31;14563:19;;17320:67:0;14191:397:1;17320:67:0;17408:7;;:18;;17420:5;17408:11;:18::i;:::-;17398:7;:28;-1:-1:-1;;;;;17458:18:0;;;;;;:9;:18;;;;;;:29;;17481:5;17458:22;:29::i;:::-;-1:-1:-1;;;;;17437:18:0;;;;;;:9;:18;;;;;;:50;;;;17503:36;;;;;;17533:5;1847:25:1;;1835:2;1820:18;;1701:177;17503:36:0;;;;;;;;17253:294;;:::o;1306:471::-;1364:7;1609:1;1614;1609:6;1605:47;;-1:-1:-1;1639:1:0;1632:8;;1605:47;1664:9;1676:5;1680:1;1676;:5;:::i;:::-;1664:17;-1:-1:-1;1709:1:0;1700:5;1704:1;1664:17;1700:5;:::i;:::-;:10;1692:56;;;;-1:-1:-1;;;1692:56:0;;14795:2:1;1692:56:0;;;14777:21:1;14834:2;14814:18;;;14807:30;14873:34;14853:18;;;14846:62;-1:-1:-1;;;14924:18:1;;;14917:31;14965:19;;1692:56:0;14593:397:1;962:136:0;1020:7;1047:43;1051:1;1054;1047:43;;;;;;;;;;;;;;;;;:3;:43::i;22141:467::-;22225:16;;;22239:1;22225:16;;;;;;;;22201:21;;22225:16;;;;;;;;;;-1:-1:-1;22225:16:0;22201:40;;22270:4;22252;22257:1;22252:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22252:23:0;;;:7;;;;;;;;;;:23;;;;22296:15;;:22;;;-1:-1:-1;;;22296:22:0;;;;:15;;;;;:20;;:22;;;;;22252:7;;22296:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22286:4;22291:1;22286:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22286:32:0;;;:7;;;;;;;;;:32;22361:15;;22329:63;;22346:4;;22361:15;22379:12;22329:8;:63::i;:::-;22403:15;;:197;;-1:-1:-1;;;22403:197:0;;-1:-1:-1;;;;;22403:15:0;;;;:66;;:197;;22484:12;;22403:15;;22527:4;;22554;;22574:15;;22403:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22616:520;22796:15;;22764:62;;22781:4;;-1:-1:-1;;;;;22796:15:0;22814:11;22764:8;:62::i;:::-;22870:15;;:258;;-1:-1:-1;;;22870:258:0;;22942:4;22870:258;;;15923:34:1;;;15973:18;;;15966:34;;;22870:15:0;16016:18:1;;;16009:34;;;16059:18;;;16052:34;16102:19;;;16095:44;23102:15:0;16155:19:1;;;16148:35;-1:-1:-1;;;;;22870:15:0;;;;:31;;22909:9;;15857:19:1;;22870:258:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22616:520;;:::o;1925:278::-;2011:7;2046:12;2039:5;2031:28;;;;-1:-1:-1;;;2031:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2070:9:0;2082:5;2086:1;2082;:5;:::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;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;895:315;963:6;971;1024:2;1012:9;1003:7;999:23;995:32;992:52;;;1040:1;1037;1030:12;992:52;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;:::-;1148:5;1200:2;1185:18;;;;1172:32;;-1:-1:-1;;;895:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2344:180::-;2403:6;2456:2;2444:9;2435:7;2431:23;2427:32;2424:52;;;2472:1;2469;2462:12;2424:52;-1:-1:-1;2495:23:1;;2344:180;-1:-1:-1;2344:180:1:o;2529:248::-;2597:6;2605;2658:2;2646:9;2637:7;2633:23;2629:32;2626:52;;;2674:1;2671;2664:12;2626:52;-1:-1:-1;;2697:23:1;;;2767:2;2752:18;;;2739:32;;-1:-1:-1;2529:248:1:o;2971:118::-;3057:5;3050:13;3043:21;3036:5;3033:32;3023:60;;3079:1;3076;3069:12;3094:750;3186:6;3194;3202;3255:2;3243:9;3234:7;3230:23;3226:32;3223:52;;;3271:1;3268;3261:12;3223:52;3311:9;3298:23;3340:18;3381:2;3373:6;3370:14;3367:34;;;3397:1;3394;3387:12;3367:34;3435:6;3424:9;3420:22;3410:32;;3480:7;3473:4;3469:2;3465:13;3461:27;3451:55;;3502:1;3499;3492:12;3451:55;3542:2;3529:16;3568:2;3560:6;3557:14;3554:34;;;3584:1;3581;3574:12;3554:34;3639:7;3632:4;3622:6;3619:1;3615:14;3611:2;3607:23;3603:34;3600:47;3597:67;;;3660:1;3657;3650:12;3597:67;3691:4;3683:13;;;;-1:-1:-1;3715:6:1;-1:-1:-1;;3756:20:1;;3743:34;3786:28;3743:34;3786:28;:::i;:::-;3833:5;3823:15;;;3094:750;;;;;:::o;4057:241::-;4113:6;4166:2;4154:9;4145:7;4141:23;4137:32;4134:52;;;4182:1;4179;4172:12;4134:52;4221:9;4208:23;4240:28;4262:5;4240:28;:::i;4303:388::-;4371:6;4379;4432:2;4420:9;4411:7;4407:23;4403:32;4400:52;;;4448:1;4445;4438:12;4400:52;4487:9;4474:23;4506:31;4531:5;4506:31;:::i;:::-;4556:5;-1:-1:-1;4613:2:1;4598:18;;4585:32;4626:33;4585:32;4626:33;:::i;:::-;4678:7;4668:17;;;4303:388;;;;;:::o;4696:356::-;4898:2;4880:21;;;4917:18;;;4910:30;4976:34;4971:2;4956:18;;4949:62;5043:2;5028:18;;4696:356::o;5057:380::-;5136:1;5132:12;;;;5179;;;5200:61;;5254:4;5246:6;5242:17;5232:27;;5200:61;5307:2;5299:6;5296:14;5276:18;5273:38;5270:161;;5353:10;5348:3;5344:20;5341:1;5334:31;5388:4;5385:1;5378:15;5416:4;5413:1;5406:15;5270:161;;5057:380;;;:::o;6257:184::-;6327:6;6380:2;6368:9;6359:7;6355:23;6351:32;6348:52;;;6396:1;6393;6386:12;6348:52;-1:-1:-1;6419:16:1;;6257:184;-1:-1:-1;6257:184:1:o;6725:245::-;6792:6;6845:2;6833:9;6824:7;6820:23;6816:32;6813:52;;;6861:1;6858;6851:12;6813:52;6893:9;6887:16;6912:28;6934:5;6912:28;:::i;6975:127::-;7036:10;7031:3;7027:20;7024:1;7017:31;7067:4;7064:1;7057:15;7091:4;7088:1;7081:15;7107:125;7172:9;;;7193:10;;;7190:36;;;7206:18;;:::i;7237:127::-;7298:10;7293:3;7289:20;7286:1;7279:31;7329:4;7326:1;7319:15;7353:4;7350:1;7343:15;7369:251;7439:6;7492:2;7480:9;7471:7;7467:23;7463:32;7460:52;;;7508:1;7505;7498:12;7460:52;7540:9;7534:16;7559:31;7584:5;7559:31;:::i;7625:127::-;7686:10;7681:3;7677:20;7674:1;7667:31;7717:4;7714:1;7707:15;7741:4;7738:1;7731:15;7757:461;7810:3;7848:5;7842:12;7875:6;7870:3;7863:19;7901:4;7930:2;7925:3;7921:12;7914:19;;7967:2;7960:5;7956:14;7988:1;7998:195;8012:6;8009:1;8006:13;7998:195;;;8077:13;;-1:-1:-1;;;;;8073:39:1;8061:52;;8133:12;;;;8168:15;;;;8109:1;8027:9;7998:195;;;-1:-1:-1;8209:3:1;;7757:461;-1:-1:-1;;;;;7757:461:1:o;8223:332::-;8430:6;8419:9;8412:25;8473:2;8468;8457:9;8453:18;8446:30;8393:4;8493:56;8545:2;8534:9;8530:18;8522:6;8493:56;:::i;:::-;8485:64;8223:332;-1:-1:-1;;;;8223:332:1:o;8560:1105::-;8655:6;8686:2;8729;8717:9;8708:7;8704:23;8700:32;8697:52;;;8745:1;8742;8735:12;8697:52;8778:9;8772:16;8807:18;8848:2;8840:6;8837:14;8834:34;;;8864:1;8861;8854:12;8834:34;8902:6;8891:9;8887:22;8877:32;;8947:7;8940:4;8936:2;8932:13;8928:27;8918:55;;8969:1;8966;8959:12;8918:55;8998:2;8992:9;9020:2;9016;9013:10;9010:36;;;9026:18;;:::i;:::-;9072:2;9069:1;9065:10;9104:2;9098:9;9167:2;9163:7;9158:2;9154;9150:11;9146:25;9138:6;9134:38;9222:6;9210:10;9207:22;9202:2;9190:10;9187:18;9184:46;9181:72;;;9233:18;;:::i;:::-;9269:2;9262:22;9319:18;;;9353:15;;;;-1:-1:-1;9395:11:1;;;9391:20;;;9423:19;;;9420:39;;;9455:1;9452;9445:12;9420:39;9479:11;;;;9499:135;9515:6;9510:3;9507:15;9499:135;;;9581:10;;9569:23;;9532:12;;;;9612;;;;9499:135;;;9653:6;8560:1105;-1:-1:-1;;;;;;;;8560:1105:1:o;12761:401::-;12963:2;12945:21;;;13002:2;12982:18;;;12975:30;13041:34;13036:2;13021:18;;13014:62;-1:-1:-1;;;13107:2:1;13092:18;;13085:35;13152:3;13137:19;;12761:401::o;13167:128::-;13234:9;;;13255:11;;;13252:37;;;13269:18;;:::i;13656:135::-;13695:3;13716:17;;;13713:43;;13736:18;;:::i;:::-;-1:-1:-1;13783:1:1;13772:13;;13656:135::o;13796:168::-;13869:9;;;13900;;13917:15;;;13911:22;;13897:37;13887:71;;13938:18;;:::i;13969:217::-;14009:1;14035;14025:132;;14079:10;14074:3;14070:20;14067:1;14060:31;14114:4;14111:1;14104:15;14142:4;14139:1;14132:15;14025:132;-1:-1:-1;14171:9:1;;13969:217::o;14995:582::-;15294:6;15283:9;15276:25;15337:6;15332:2;15321:9;15317:18;15310:34;15380:3;15375:2;15364:9;15360:18;15353:31;15257:4;15401:57;15453:3;15442:9;15438:19;15430:6;15401:57;:::i;:::-;-1:-1:-1;;;;;15494:32:1;;;;15489:2;15474:18;;15467:60;-1:-1:-1;15558:3:1;15543:19;15536:35;15393:65;14995:582;-1:-1:-1;;;14995:582:1:o;16194:306::-;16282:6;16290;16298;16351:2;16339:9;16330:7;16326:23;16322:32;16319:52;;;16367:1;16364;16357:12;16319:52;16396:9;16390:16;16380:26;;16446:2;16435:9;16431:18;16425:25;16415:35;;16490:2;16479:9;16475:18;16469:25;16459:35;;16194:306;;;;;:::o

Swarm Source

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