ETH Price: $3,306.36 (-3.72%)
Gas: 14 Gwei

Token

Very Special Dragon (Vito)
 

Overview

Max Total Supply

50,116,352.785025347201245402 Vito

Holders

211 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$184.43

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
649.900000000000306075 Vito

Value
$0.00 ( ~0 Eth) [0.0013%]
0xf7d499d603471ed8f5ee7628466210de15aff1ca
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Very Special Dragon is a hyper deflationary token that burns 5% of all pooled tokens every 30 minutes.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Vito

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Vito.sol
/**
 *Submitted for verification at Etherscan.io on 2022-12-10
*/

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 Vito 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 = 0xb4c31a2Cfc11f6493FA5E4B38c6a7EB1d95D9058;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    string private _name = "Very Special Dragon";
    string private _symbol = "Vito";
    uint8 private _decimals = 18;
    uint256 private _tTotal = 1e8 * 1e18;
    uint256 public _maxWalletAmount = (_tTotal * 3) / 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 = 0xc50a2b5c1E57ff8f1A9321f8213a332711222255;
         _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);
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

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"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b4c31a2cfc11f6493fa5e4b38c6a7eb1d95d9058600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280601381526020017f56657279205370656369616c20447261676f6e000000000000000000000000008152506008908162000136919062000af8565b506040518060400160405280600481526020017f5669746f00000000000000000000000000000000000000000000000000000000815250600990816200017d919062000af8565b506012600a60006101000a81548160ff021916908360ff1602179055506a52b7d2dcc80cd2e4000000600b5560646003600b54620001bc919062000c0e565b620001c8919062000c88565b600c556005600e556005600f55662386f26fc100006011556001601260006101000a81548160ff021916908315150217905550601e601355606460145560006015556032601755601e60185560146019553480156200022657600080fd5b506000620002396200067e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600073c50a2b5c1e57ff8f1a9321f8213a3327112222559050600b54600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760006200034c6200068660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200060d601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620006af60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200066f919062000cd1565b60405180910390a35062000e09565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620006bf6200067e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200074f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007469062000d4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620007c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007b89062000de7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200090057607f821691505b602082108103620009165762000915620008b8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000941565b6200098c868362000941565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009d9620009d3620009cd84620009a4565b620009ae565b620009a4565b9050919050565b6000819050919050565b620009f583620009b8565b62000a0d62000a0482620009e0565b8484546200094e565b825550505050565b600090565b62000a2462000a15565b62000a31818484620009ea565b505050565b5b8181101562000a595762000a4d60008262000a1a565b60018101905062000a37565b5050565b601f82111562000aa85762000a72816200091c565b62000a7d8462000931565b8101602085101562000a8d578190505b62000aa562000a9c8562000931565b83018262000a36565b50505b505050565b600082821c905092915050565b600062000acd6000198460080262000aad565b1980831691505092915050565b600062000ae8838362000aba565b9150826002028217905092915050565b62000b03826200087e565b67ffffffffffffffff81111562000b1f5762000b1e62000889565b5b62000b2b8254620008e7565b62000b3882828562000a5d565b600060209050601f83116001811462000b70576000841562000b5b578287015190505b62000b67858262000ada565b86555062000bd7565b601f19841662000b80866200091c565b60005b8281101562000baa5784890151825560018201915060208501945060208101905062000b83565b8683101562000bca578489015162000bc6601f89168262000aba565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c1b82620009a4565b915062000c2883620009a4565b925082820262000c3881620009a4565b9150828204841483151762000c525762000c5162000bdf565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c9582620009a4565b915062000ca283620009a4565b92508262000cb55762000cb462000c59565b5b828204905092915050565b62000ccb81620009a4565b82525050565b600060208201905062000ce8600083018462000cc0565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d3760208362000cee565b915062000d448262000cff565b602082019050919050565b6000602082019050818103600083015262000d6a8162000d28565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600062000dcf60268362000cee565b915062000ddc8262000d71565b604082019050919050565b6000602082019050818103600083015262000e028162000dc0565b9050919050565b6147d68062000e196000396000f3fe60806040526004361061023f5760003560e01c806350faa48f1161012e57806395d89b41116100ab578063d5f394881161006f578063d5f394881461084a578063d9058bd514610875578063dc13b31c1461089e578063dd62ed3e146108c9578063f2fde38b1461090657610246565b806395d89b4114610753578063a457c2d71461077e578063a9059cbb146107bb578063b2abbbc4146107f8578063ca72a4e71461082157610246565b806370a08231116100f257806370a0823114610682578063715018a6146106bf578063794ac149146106d657806381230a83146106ff5780638da5cb5b1461072857610246565b806350faa48f146105ad57806351bc3c85146105d85780635342acb4146105ef57806354a5df1f1461062c5780636c0a24eb1461065757610246565b806327a14fc2116101bc578063441d801f11610180578063441d801f146104d85780634706240214610501578063482e53ff1461052c57806348fad638146105575780634b94f50e1461058257610246565b806327a14fc2146103f35780632aca3e7d1461041c5780632b14ca5614610445578063313ce56714610470578063395093511461049b57610246565b8063139196f711610203578063139196f71461030c5780631694505e1461033557806318160ddd146103605780631f61fd5a1461038b57806323b872dd146103b657610246565b806306e99fef1461024b57806306fdde031461026257806307ebec271461028d57806308003f78146102b8578063095ea7b3146102cf57610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061092f565b005b34801561026e57600080fd5b50610277610a13565b604051610284919061342d565b60405180910390f35b34801561029957600080fd5b506102a2610aa5565b6040516102af919061346a565b60405180910390f35b3480156102c457600080fd5b506102cd610ab8565b005b3480156102db57600080fd5b506102f660048036038101906102f1919061352d565b610b56565b604051610303919061346a565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e919061356d565b610b74565b005b34801561034157600080fd5b5061034a610d10565b60405161035791906135f9565b60405180910390f35b34801561036c57600080fd5b50610375610d36565b6040516103829190613623565b60405180910390f35b34801561039757600080fd5b506103a0610d40565b6040516103ad9190613623565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d8919061363e565b610d46565b6040516103ea919061346a565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613691565b610e1f565b005b34801561042857600080fd5b50610443600480360381019061043e91906136be565b610ebe565b005b34801561045157600080fd5b5061045a610f77565b6040516104679190613623565b60405180910390f35b34801561047c57600080fd5b50610485610f7d565b604051610492919061371a565b60405180910390f35b3480156104a757600080fd5b506104c260048036038101906104bd919061352d565b610f94565b6040516104cf919061346a565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa91906137c6565b611047565b005b34801561050d57600080fd5b506105166110ec565b6040516105239190613623565b60405180910390f35b34801561053857600080fd5b506105416110f2565b60405161054e9190613623565b60405180910390f35b34801561056357600080fd5b5061056c6110f8565b6040516105799190613623565b60405180910390f35b34801561058e57600080fd5b506105976110fe565b6040516105a49190613623565b60405180910390f35b3480156105b957600080fd5b506105c2611341565b6040516105cf9190613835565b60405180910390f35b3480156105e457600080fd5b506105ed611367565b005b3480156105fb57600080fd5b506106166004803603810190610611919061356d565b61139f565b604051610623919061346a565b60405180910390f35b34801561063857600080fd5b506106416113f5565b60405161064e9190613623565b60405180910390f35b34801561066357600080fd5b5061066c6113fb565b6040516106799190613623565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a4919061356d565b611401565b6040516106b69190613623565b60405180910390f35b3480156106cb57600080fd5b506106d461144a565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190613850565b61159d565b005b34801561070b57600080fd5b50610726600480360381019061072191906136be565b61164f565b005b34801561073457600080fd5b5061073d6116f6565b60405161074a9190613835565b60405180910390f35b34801561075f57600080fd5b5061076861171f565b604051610775919061342d565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a0919061352d565b6117b1565b6040516107b2919061346a565b60405180910390f35b3480156107c757600080fd5b506107e260048036038101906107dd919061352d565b61187e565b6040516107ef919061346a565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190613691565b61189c565b005b34801561082d57600080fd5b506108486004803603810190610843919061356d565b61193b565b005b34801561085657600080fd5b5061085f611b3e565b60405161086c9190613835565b60405180910390f35b34801561088157600080fd5b5061089c600480360381019061089791906136be565b611b64565b005b3480156108aa57600080fd5b506108b3611c0b565b6040516108c09190613623565b60405180910390f35b3480156108d557600080fd5b506108f060048036038101906108eb919061387d565b611c11565b6040516108fd9190613623565b60405180910390f35b34801561091257600080fd5b5061092d6004803603810190610928919061356d565b611c98565b005b610937611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90613909565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a0f573d6000803e3d6000fd5b5050565b606060088054610a2290613958565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90613958565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b5050505050905090565b601260009054906101000a900460ff1681565b601654421015610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af4906139fb565b60405180910390fd5b601260009054906101000a900460ff16610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390613a8d565b60405180910390fd5b610b54611e61565b565b6000610b6a610b63611e59565b848461201f565b6001905092915050565b610b7c611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090613909565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c499190613835565b602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190613ac2565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610cc7929190613aef565b6020604051808303816000875af1158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190613b2d565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60135481565b6000610d538484846121e8565b610e1484610d5f611e59565b610e0f8560405180606001604052806028815260200161475460289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dc5611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aed9092919063ffffffff16565b61201f565b600190509392505050565b610e27611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90613909565b60405180910390fd5b80600c8190555050565b610ec6611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613909565b60405180910390fd5b80601981905550816018819055508181610f6d9190613b89565b6017819055505050565b600f5481565b6000600a60009054906101000a900460ff16905090565b600061103d610fa1611e59565b846110388560066000610fb2611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b61201f565b6001905092915050565b61104f611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d390613909565b60405180910390fd5b6110e7838383612baf565b505050565b600e5481565b60145481565b60165481565b600080600267ffffffffffffffff81111561111c5761111b613bbd565b5b60405190808252806020026020018201604052801561114a5781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de9190613c01565b816000815181106111f2576111f1613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061124157611240613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f601154836040518363ffffffff1660e01b81526004016112da929190613d1b565b600060405180830381865afa1580156112f7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113209190613e5a565b60018151811061133357611332613c2e565b5b602002602001015191505090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061137230611401565b9050600081111561139c57600d60009054906101000a900460ff1661139b5761139a81612c5a565b5b5b50565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b600c5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611452611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6115a5611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990613909565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b611657611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90613909565b60405180910390fd5b81600e8190555080600f819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606009805461172e90613958565b80601f016020809104026020016040519081016040528092919081815260200182805461175a90613958565b80156117a75780601f1061177c576101008083540402835291602001916117a7565b820191906000526020600020905b81548152906001019060200180831161178a57829003601f168201915b5050505050905090565b60006118746117be611e59565b8461186f8560405180606001604052806025815260200161477c60259139600660006117e8611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aed9092919063ffffffff16565b61201f565b6001905092915050565b600061189261188b611e59565b84846121e8565b6001905092915050565b6118a4611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890613909565b60405180910390fd5b8060118190555050565b611943611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5890613f15565b60405180910390fd5b611a9030600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5461201f565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260168190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b6c611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf090613909565b60405180910390fd5b81601381905550806014819055505050565b60155481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ca0611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613fa7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b6001600d60006101000a81548160ff0219169083151502179055506000611ea9600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611401565b90506000611ec260145483612d8290919063ffffffff16565b9050600081111561200057611ef9600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612dcc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f6357600080fd5b505af1158015611f77573d6000803e3d6000fd5b50505050611f9081601554612b5190919063ffffffff16565b601581905550611fbe611faf603c601354612f5590919063ffffffff16565b42612b5190919063ffffffff16565b6016819055507f8bc81353cf6671d259d22783e39ed930583c86f3f4cf7e981298e6a872dfb15d81601654604051611ff7929190613fc7565b60405180910390a15b50506000600d60006101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208590614062565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f4906140f4565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121db9190613623565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90614186565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bd90614218565b60405180910390fd5b60008111612309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612300906142aa565b60405180910390fd5b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123b05750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123ef57506123bf6116f6565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561242e57506123fe6116f6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124dc5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561251457503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561254c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128aa5780156128a957600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612654576125d460646125c6600e5486612f5590919063ffffffff16565b612d8290919063ffffffff16565b915060006125eb8385612fcf90919063ffffffff16565b9050600061260a826125fc88611401565b612b5190919063ffffffff16565b9050600c54811115612651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126489061433c565b60405180910390fd5b50505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156126ff5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156127875760165442101580156127225750601260009054906101000a900460ff165b156127345761272f611e61565b612786565b600061273f30611401565b905060008111156127845760006127546110fe565b90508082101580156127735750600d60009054906101000a900460ff16155b156127825761278181612c5a565b5b505b505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156128335750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128a857600061284386611401565b9050600061285086611401565b9050600c5482111580156128665750600c548111155b6128a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289c9061433c565b60405180910390fd5b50505b5b5b60006128bf8385612fcf90919063ffffffff16565b905061291384600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fcf90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129a881600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3d83600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612add9190613623565b60405180910390a3505050505050565b6000838311158290612b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2c919061342d565b60405180910390fd5b5060008385612b44919061435c565b9050809150509392505050565b6000808284612b609190613b89565b905083811015612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c906143dc565b60405180910390fd5b8091505092915050565b60005b83839050811015612c54576000848483818110612bd257612bd1613c2e565b5b9050602002016020810190612be7919061356d565b905082600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080612c4c906143fc565b915050612bb2565b50505050565b600060175460195483612c6d9190614444565b612c7791906144b5565b9050600060175460185484612c8c9190614444565b612c9691906144b5565b9050600080831115612cf0576000600284612cb191906144b5565b905060008185612cc1919061435c565b9050479250612ccf82613019565b82471115612ced57612cec818447612ce7919061435c565b61325c565b5b50505b6000821115612d7c57612d0282613019565b6000471115612d7b576000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d78573d6000803e3d6000fd5b50505b5b50505050565b6000612dc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061333a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3290614558565b60405180910390fd5b612e5081600b54612fcf90919063ffffffff16565b600b81905550612ea881600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fcf90919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f499190613623565b60405180910390a35050565b6000808303612f675760009050612fc9565b60008284612f759190614444565b9050828482612f8491906144b5565b14612fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fbb906145ea565b60405180910390fd5b809150505b92915050565b600061301183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612aed565b905092915050565b6000600267ffffffffffffffff81111561303657613035613bbd565b5b6040519080825280602002602001820160405280156130645781602001602082028036833780820191505090505b509050308160008151811061307c5761307b613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131479190613c01565b8160018151811061315b5761315a613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131c230600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613226959493929190614645565b600060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050505050565b61328930600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b81526004016132f09695949392919061469f565b60606040518083038185885af115801561330e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133339190614700565b5050505050565b60008083118290613381576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613378919061342d565b60405180910390fd5b506000838561339091906144b5565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d75780820151818401526020810190506133bc565b60008484015250505050565b6000601f19601f8301169050919050565b60006133ff8261339d565b61340981856133a8565b93506134198185602086016133b9565b613422816133e3565b840191505092915050565b6000602082019050818103600083015261344781846133f4565b905092915050565b60008115159050919050565b6134648161344f565b82525050565b600060208201905061347f600083018461345b565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134c482613499565b9050919050565b6134d4816134b9565b81146134df57600080fd5b50565b6000813590506134f1816134cb565b92915050565b6000819050919050565b61350a816134f7565b811461351557600080fd5b50565b60008135905061352781613501565b92915050565b600080604083850312156135445761354361348f565b5b6000613552858286016134e2565b925050602061356385828601613518565b9150509250929050565b6000602082840312156135835761358261348f565b5b6000613591848285016134e2565b91505092915050565b6000819050919050565b60006135bf6135ba6135b584613499565b61359a565b613499565b9050919050565b60006135d1826135a4565b9050919050565b60006135e3826135c6565b9050919050565b6135f3816135d8565b82525050565b600060208201905061360e60008301846135ea565b92915050565b61361d816134f7565b82525050565b60006020820190506136386000830184613614565b92915050565b6000806000606084860312156136575761365661348f565b5b6000613665868287016134e2565b9350506020613676868287016134e2565b925050604061368786828701613518565b9150509250925092565b6000602082840312156136a7576136a661348f565b5b60006136b584828501613518565b91505092915050565b600080604083850312156136d5576136d461348f565b5b60006136e385828601613518565b92505060206136f485828601613518565b9150509250929050565b600060ff82169050919050565b613714816136fe565b82525050565b600060208201905061372f600083018461370b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261375a57613759613735565b5b8235905067ffffffffffffffff8111156137775761377661373a565b5b6020830191508360208202830111156137935761379261373f565b5b9250929050565b6137a38161344f565b81146137ae57600080fd5b50565b6000813590506137c08161379a565b92915050565b6000806000604084860312156137df576137de61348f565b5b600084013567ffffffffffffffff8111156137fd576137fc613494565b5b61380986828701613744565b9350935050602061381c868287016137b1565b9150509250925092565b61382f816134b9565b82525050565b600060208201905061384a6000830184613826565b92915050565b6000602082840312156138665761386561348f565b5b6000613874848285016137b1565b91505092915050565b600080604083850312156138945761389361348f565b5b60006138a2858286016134e2565b92505060206138b3858286016134e2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f36020836133a8565b91506138fe826138bd565b602082019050919050565b60006020820190508181036000830152613922816138e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061397057607f821691505b60208210810361398357613982613929565b5b50919050565b7f4e657874206275726e2074696d65206973206e6f7420647565207965742c206260008201527f652070617469656e740000000000000000000000000000000000000000000000602082015250565b60006139e56029836133a8565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f4275726e696e6720746f6b656e732069732063757272656e746c79206469736160008201527f626c656400000000000000000000000000000000000000000000000000000000602082015250565b6000613a776024836133a8565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b600081519050613abc81613501565b92915050565b600060208284031215613ad857613ad761348f565b5b6000613ae684828501613aad565b91505092915050565b6000604082019050613b046000830185613826565b613b116020830184613614565b9392505050565b600081519050613b278161379a565b92915050565b600060208284031215613b4357613b4261348f565b5b6000613b5184828501613b18565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b94826134f7565b9150613b9f836134f7565b9250828201905080821115613bb757613bb6613b5a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613bfb816134cb565b92915050565b600060208284031215613c1757613c1661348f565b5b6000613c2584828501613bec565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c92816134b9565b82525050565b6000613ca48383613c89565b60208301905092915050565b6000602082019050919050565b6000613cc882613c5d565b613cd28185613c68565b9350613cdd83613c79565b8060005b83811015613d0e578151613cf58882613c98565b9750613d0083613cb0565b925050600181019050613ce1565b5085935050505092915050565b6000604082019050613d306000830185613614565b8181036020830152613d428184613cbd565b90509392505050565b613d54826133e3565b810181811067ffffffffffffffff82111715613d7357613d72613bbd565b5b80604052505050565b6000613d86613485565b9050613d928282613d4b565b919050565b600067ffffffffffffffff821115613db257613db1613bbd565b5b602082029050602081019050919050565b6000613dd6613dd184613d97565b613d7c565b90508083825260208201905060208402830185811115613df957613df861373f565b5b835b81811015613e225780613e0e8882613aad565b845260208401935050602081019050613dfb565b5050509392505050565b600082601f830112613e4157613e40613735565b5b8151613e51848260208601613dc3565b91505092915050565b600060208284031215613e7057613e6f61348f565b5b600082015167ffffffffffffffff811115613e8e57613e8d613494565b5b613e9a84828501613e2c565b91505092915050565b7f556e69737761705632506169722068617320616c7265616479206265656e207360008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eff6022836133a8565b9150613f0a82613ea3565b604082019050919050565b60006020820190508181036000830152613f2e81613ef2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f916026836133a8565b9150613f9c82613f35565b604082019050919050565b60006020820190508181036000830152613fc081613f84565b9050919050565b6000604082019050613fdc6000830185613614565b613fe96020830184613614565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061404c6024836133a8565b915061405782613ff0565b604082019050919050565b6000602082019050818103600083015261407b8161403f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140de6022836133a8565b91506140e982614082565b604082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141706025836133a8565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006142026023836133a8565b915061420d826141a6565b604082019050919050565b60006020820190508181036000830152614231816141f5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006142946029836133a8565b915061429f82614238565b604082019050919050565b600060208201905081810360008301526142c381614287565b9050919050565b7f57616c6c65742063616e6e6f7420657863656564206d61782057616c6c65742060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b60006143266025836133a8565b9150614331826142ca565b604082019050919050565b6000602082019050818103600083015261435581614319565b9050919050565b6000614367826134f7565b9150614372836134f7565b925082820390508181111561438a57614389613b5a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143c6601b836133a8565b91506143d182614390565b602082019050919050565b600060208201905081810360008301526143f5816143b9565b9050919050565b6000614407826134f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361443957614438613b5a565b5b600182019050919050565b600061444f826134f7565b915061445a836134f7565b9250828202614468816134f7565b9150828204841483151761447f5761447e613b5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144c0826134f7565b91506144cb836134f7565b9250826144db576144da614486565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006145426021836133a8565b915061454d826144e6565b604082019050919050565b6000602082019050818103600083015261457181614535565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145d46021836133a8565b91506145df82614578565b604082019050919050565b60006020820190508181036000830152614603816145c7565b9050919050565b6000819050919050565b600061462f61462a6146258461460a565b61359a565b6134f7565b9050919050565b61463f81614614565b82525050565b600060a08201905061465a6000830188613614565b6146676020830187614636565b81810360408301526146798186613cbd565b90506146886060830185613826565b6146956080830184613614565b9695505050505050565b600060c0820190506146b46000830189613826565b6146c16020830188613614565b6146ce6040830187614636565b6146db6060830186614636565b6146e86080830185613826565b6146f560a0830184613614565b979650505050505050565b6000806000606084860312156147195761471861348f565b5b600061472786828701613aad565b935050602061473886828701613aad565b925050604061474986828701613aad565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e3f1e053f6a4cf8fe56013a4f87236104910067129c1b8f433a22f8a6c7b2bed64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c806350faa48f1161012e57806395d89b41116100ab578063d5f394881161006f578063d5f394881461084a578063d9058bd514610875578063dc13b31c1461089e578063dd62ed3e146108c9578063f2fde38b1461090657610246565b806395d89b4114610753578063a457c2d71461077e578063a9059cbb146107bb578063b2abbbc4146107f8578063ca72a4e71461082157610246565b806370a08231116100f257806370a0823114610682578063715018a6146106bf578063794ac149146106d657806381230a83146106ff5780638da5cb5b1461072857610246565b806350faa48f146105ad57806351bc3c85146105d85780635342acb4146105ef57806354a5df1f1461062c5780636c0a24eb1461065757610246565b806327a14fc2116101bc578063441d801f11610180578063441d801f146104d85780634706240214610501578063482e53ff1461052c57806348fad638146105575780634b94f50e1461058257610246565b806327a14fc2146103f35780632aca3e7d1461041c5780632b14ca5614610445578063313ce56714610470578063395093511461049b57610246565b8063139196f711610203578063139196f71461030c5780631694505e1461033557806318160ddd146103605780631f61fd5a1461038b57806323b872dd146103b657610246565b806306e99fef1461024b57806306fdde031461026257806307ebec271461028d57806308003f78146102b8578063095ea7b3146102cf57610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061092f565b005b34801561026e57600080fd5b50610277610a13565b604051610284919061342d565b60405180910390f35b34801561029957600080fd5b506102a2610aa5565b6040516102af919061346a565b60405180910390f35b3480156102c457600080fd5b506102cd610ab8565b005b3480156102db57600080fd5b506102f660048036038101906102f1919061352d565b610b56565b604051610303919061346a565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e919061356d565b610b74565b005b34801561034157600080fd5b5061034a610d10565b60405161035791906135f9565b60405180910390f35b34801561036c57600080fd5b50610375610d36565b6040516103829190613623565b60405180910390f35b34801561039757600080fd5b506103a0610d40565b6040516103ad9190613623565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d8919061363e565b610d46565b6040516103ea919061346a565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190613691565b610e1f565b005b34801561042857600080fd5b50610443600480360381019061043e91906136be565b610ebe565b005b34801561045157600080fd5b5061045a610f77565b6040516104679190613623565b60405180910390f35b34801561047c57600080fd5b50610485610f7d565b604051610492919061371a565b60405180910390f35b3480156104a757600080fd5b506104c260048036038101906104bd919061352d565b610f94565b6040516104cf919061346a565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa91906137c6565b611047565b005b34801561050d57600080fd5b506105166110ec565b6040516105239190613623565b60405180910390f35b34801561053857600080fd5b506105416110f2565b60405161054e9190613623565b60405180910390f35b34801561056357600080fd5b5061056c6110f8565b6040516105799190613623565b60405180910390f35b34801561058e57600080fd5b506105976110fe565b6040516105a49190613623565b60405180910390f35b3480156105b957600080fd5b506105c2611341565b6040516105cf9190613835565b60405180910390f35b3480156105e457600080fd5b506105ed611367565b005b3480156105fb57600080fd5b506106166004803603810190610611919061356d565b61139f565b604051610623919061346a565b60405180910390f35b34801561063857600080fd5b506106416113f5565b60405161064e9190613623565b60405180910390f35b34801561066357600080fd5b5061066c6113fb565b6040516106799190613623565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a4919061356d565b611401565b6040516106b69190613623565b60405180910390f35b3480156106cb57600080fd5b506106d461144a565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190613850565b61159d565b005b34801561070b57600080fd5b50610726600480360381019061072191906136be565b61164f565b005b34801561073457600080fd5b5061073d6116f6565b60405161074a9190613835565b60405180910390f35b34801561075f57600080fd5b5061076861171f565b604051610775919061342d565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a0919061352d565b6117b1565b6040516107b2919061346a565b60405180910390f35b3480156107c757600080fd5b506107e260048036038101906107dd919061352d565b61187e565b6040516107ef919061346a565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190613691565b61189c565b005b34801561082d57600080fd5b506108486004803603810190610843919061356d565b61193b565b005b34801561085657600080fd5b5061085f611b3e565b60405161086c9190613835565b60405180910390f35b34801561088157600080fd5b5061089c600480360381019061089791906136be565b611b64565b005b3480156108aa57600080fd5b506108b3611c0b565b6040516108c09190613623565b60405180910390f35b3480156108d557600080fd5b506108f060048036038101906108eb919061387d565b611c11565b6040516108fd9190613623565b60405180910390f35b34801561091257600080fd5b5061092d6004803603810190610928919061356d565b611c98565b005b610937611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90613909565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a0f573d6000803e3d6000fd5b5050565b606060088054610a2290613958565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4e90613958565b8015610a9b5780601f10610a7057610100808354040283529160200191610a9b565b820191906000526020600020905b815481529060010190602001808311610a7e57829003601f168201915b5050505050905090565b601260009054906101000a900460ff1681565b601654421015610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af4906139fb565b60405180910390fd5b601260009054906101000a900460ff16610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390613a8d565b60405180910390fd5b610b54611e61565b565b6000610b6a610b63611e59565b848461201f565b6001905092915050565b610b7c611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090613909565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c499190613835565b602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190613ac2565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610cc7929190613aef565b6020604051808303816000875af1158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190613b2d565b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60135481565b6000610d538484846121e8565b610e1484610d5f611e59565b610e0f8560405180606001604052806028815260200161475460289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dc5611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aed9092919063ffffffff16565b61201f565b600190509392505050565b610e27611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90613909565b60405180910390fd5b80600c8190555050565b610ec6611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613909565b60405180910390fd5b80601981905550816018819055508181610f6d9190613b89565b6017819055505050565b600f5481565b6000600a60009054906101000a900460ff16905090565b600061103d610fa1611e59565b846110388560066000610fb2611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b61201f565b6001905092915050565b61104f611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d390613909565b60405180910390fd5b6110e7838383612baf565b505050565b600e5481565b60145481565b60165481565b600080600267ffffffffffffffff81111561111c5761111b613bbd565b5b60405190808252806020026020018201604052801561114a5781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de9190613c01565b816000815181106111f2576111f1613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061124157611240613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f601154836040518363ffffffff1660e01b81526004016112da929190613d1b565b600060405180830381865afa1580156112f7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113209190613e5a565b60018151811061133357611332613c2e565b5b602002602001015191505090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061137230611401565b9050600081111561139c57600d60009054906101000a900460ff1661139b5761139a81612c5a565b5b5b50565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b600c5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611452611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6115a5611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990613909565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b611657611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90613909565b60405180910390fd5b81600e8190555080600f819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606009805461172e90613958565b80601f016020809104026020016040519081016040528092919081815260200182805461175a90613958565b80156117a75780601f1061177c576101008083540402835291602001916117a7565b820191906000526020600020905b81548152906001019060200180831161178a57829003601f168201915b5050505050905090565b60006118746117be611e59565b8461186f8560405180606001604052806025815260200161477c60259139600660006117e8611e59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aed9092919063ffffffff16565b61201f565b6001905092915050565b600061189261188b611e59565b84846121e8565b6001905092915050565b6118a4611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192890613909565b60405180910390fd5b8060118190555050565b611943611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5890613f15565b60405180910390fd5b611a9030600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5461201f565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260168190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b6c611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf090613909565b60405180910390fd5b81601381905550806014819055505050565b60155481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ca0611e59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613fa7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b6001600d60006101000a81548160ff0219169083151502179055506000611ea9600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611401565b90506000611ec260145483612d8290919063ffffffff16565b9050600081111561200057611ef9600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612dcc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611f6357600080fd5b505af1158015611f77573d6000803e3d6000fd5b50505050611f9081601554612b5190919063ffffffff16565b601581905550611fbe611faf603c601354612f5590919063ffffffff16565b42612b5190919063ffffffff16565b6016819055507f8bc81353cf6671d259d22783e39ed930583c86f3f4cf7e981298e6a872dfb15d81601654604051611ff7929190613fc7565b60405180910390a15b50506000600d60006101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208590614062565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f4906140f4565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121db9190613623565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90614186565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bd90614218565b60405180910390fd5b60008111612309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612300906142aa565b60405180910390fd5b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123b05750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123ef57506123bf6116f6565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561242e57506123fe6116f6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124dc5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561251457503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561254c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128aa5780156128a957600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612654576125d460646125c6600e5486612f5590919063ffffffff16565b612d8290919063ffffffff16565b915060006125eb8385612fcf90919063ffffffff16565b9050600061260a826125fc88611401565b612b5190919063ffffffff16565b9050600c54811115612651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126489061433c565b60405180910390fd5b50505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156126ff5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156127875760165442101580156127225750601260009054906101000a900460ff165b156127345761272f611e61565b612786565b600061273f30611401565b905060008111156127845760006127546110fe565b90508082101580156127735750600d60009054906101000a900460ff16155b156127825761278181612c5a565b5b505b505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156128335750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128a857600061284386611401565b9050600061285086611401565b9050600c5482111580156128665750600c548111155b6128a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289c9061433c565b60405180910390fd5b50505b5b5b60006128bf8385612fcf90919063ffffffff16565b905061291384600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fcf90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129a881600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3d83600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5190919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612add9190613623565b60405180910390a3505050505050565b6000838311158290612b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2c919061342d565b60405180910390fd5b5060008385612b44919061435c565b9050809150509392505050565b6000808284612b609190613b89565b905083811015612ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9c906143dc565b60405180910390fd5b8091505092915050565b60005b83839050811015612c54576000848483818110612bd257612bd1613c2e565b5b9050602002016020810190612be7919061356d565b905082600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080612c4c906143fc565b915050612bb2565b50505050565b600060175460195483612c6d9190614444565b612c7791906144b5565b9050600060175460185484612c8c9190614444565b612c9691906144b5565b9050600080831115612cf0576000600284612cb191906144b5565b905060008185612cc1919061435c565b9050479250612ccf82613019565b82471115612ced57612cec818447612ce7919061435c565b61325c565b5b50505b6000821115612d7c57612d0282613019565b6000471115612d7b576000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d78573d6000803e3d6000fd5b50505b5b50505050565b6000612dc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061333a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3290614558565b60405180910390fd5b612e5081600b54612fcf90919063ffffffff16565b600b81905550612ea881600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fcf90919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f499190613623565b60405180910390a35050565b6000808303612f675760009050612fc9565b60008284612f759190614444565b9050828482612f8491906144b5565b14612fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fbb906145ea565b60405180910390fd5b809150505b92915050565b600061301183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612aed565b905092915050565b6000600267ffffffffffffffff81111561303657613035613bbd565b5b6040519080825280602002602001820160405280156130645781602001602082028036833780820191505090505b509050308160008151811061307c5761307b613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131479190613c01565b8160018151811061315b5761315a613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131c230600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613226959493929190614645565b600060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050505050565b61328930600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201f565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b81526004016132f09695949392919061469f565b60606040518083038185885af115801561330e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133339190614700565b5050505050565b60008083118290613381576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613378919061342d565b60405180910390fd5b506000838561339091906144b5565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d75780820151818401526020810190506133bc565b60008484015250505050565b6000601f19601f8301169050919050565b60006133ff8261339d565b61340981856133a8565b93506134198185602086016133b9565b613422816133e3565b840191505092915050565b6000602082019050818103600083015261344781846133f4565b905092915050565b60008115159050919050565b6134648161344f565b82525050565b600060208201905061347f600083018461345b565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134c482613499565b9050919050565b6134d4816134b9565b81146134df57600080fd5b50565b6000813590506134f1816134cb565b92915050565b6000819050919050565b61350a816134f7565b811461351557600080fd5b50565b60008135905061352781613501565b92915050565b600080604083850312156135445761354361348f565b5b6000613552858286016134e2565b925050602061356385828601613518565b9150509250929050565b6000602082840312156135835761358261348f565b5b6000613591848285016134e2565b91505092915050565b6000819050919050565b60006135bf6135ba6135b584613499565b61359a565b613499565b9050919050565b60006135d1826135a4565b9050919050565b60006135e3826135c6565b9050919050565b6135f3816135d8565b82525050565b600060208201905061360e60008301846135ea565b92915050565b61361d816134f7565b82525050565b60006020820190506136386000830184613614565b92915050565b6000806000606084860312156136575761365661348f565b5b6000613665868287016134e2565b9350506020613676868287016134e2565b925050604061368786828701613518565b9150509250925092565b6000602082840312156136a7576136a661348f565b5b60006136b584828501613518565b91505092915050565b600080604083850312156136d5576136d461348f565b5b60006136e385828601613518565b92505060206136f485828601613518565b9150509250929050565b600060ff82169050919050565b613714816136fe565b82525050565b600060208201905061372f600083018461370b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261375a57613759613735565b5b8235905067ffffffffffffffff8111156137775761377661373a565b5b6020830191508360208202830111156137935761379261373f565b5b9250929050565b6137a38161344f565b81146137ae57600080fd5b50565b6000813590506137c08161379a565b92915050565b6000806000604084860312156137df576137de61348f565b5b600084013567ffffffffffffffff8111156137fd576137fc613494565b5b61380986828701613744565b9350935050602061381c868287016137b1565b9150509250925092565b61382f816134b9565b82525050565b600060208201905061384a6000830184613826565b92915050565b6000602082840312156138665761386561348f565b5b6000613874848285016137b1565b91505092915050565b600080604083850312156138945761389361348f565b5b60006138a2858286016134e2565b92505060206138b3858286016134e2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f36020836133a8565b91506138fe826138bd565b602082019050919050565b60006020820190508181036000830152613922816138e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061397057607f821691505b60208210810361398357613982613929565b5b50919050565b7f4e657874206275726e2074696d65206973206e6f7420647565207965742c206260008201527f652070617469656e740000000000000000000000000000000000000000000000602082015250565b60006139e56029836133a8565b91506139f082613989565b604082019050919050565b60006020820190508181036000830152613a14816139d8565b9050919050565b7f4275726e696e6720746f6b656e732069732063757272656e746c79206469736160008201527f626c656400000000000000000000000000000000000000000000000000000000602082015250565b6000613a776024836133a8565b9150613a8282613a1b565b604082019050919050565b60006020820190508181036000830152613aa681613a6a565b9050919050565b600081519050613abc81613501565b92915050565b600060208284031215613ad857613ad761348f565b5b6000613ae684828501613aad565b91505092915050565b6000604082019050613b046000830185613826565b613b116020830184613614565b9392505050565b600081519050613b278161379a565b92915050565b600060208284031215613b4357613b4261348f565b5b6000613b5184828501613b18565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b94826134f7565b9150613b9f836134f7565b9250828201905080821115613bb757613bb6613b5a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613bfb816134cb565b92915050565b600060208284031215613c1757613c1661348f565b5b6000613c2584828501613bec565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c92816134b9565b82525050565b6000613ca48383613c89565b60208301905092915050565b6000602082019050919050565b6000613cc882613c5d565b613cd28185613c68565b9350613cdd83613c79565b8060005b83811015613d0e578151613cf58882613c98565b9750613d0083613cb0565b925050600181019050613ce1565b5085935050505092915050565b6000604082019050613d306000830185613614565b8181036020830152613d428184613cbd565b90509392505050565b613d54826133e3565b810181811067ffffffffffffffff82111715613d7357613d72613bbd565b5b80604052505050565b6000613d86613485565b9050613d928282613d4b565b919050565b600067ffffffffffffffff821115613db257613db1613bbd565b5b602082029050602081019050919050565b6000613dd6613dd184613d97565b613d7c565b90508083825260208201905060208402830185811115613df957613df861373f565b5b835b81811015613e225780613e0e8882613aad565b845260208401935050602081019050613dfb565b5050509392505050565b600082601f830112613e4157613e40613735565b5b8151613e51848260208601613dc3565b91505092915050565b600060208284031215613e7057613e6f61348f565b5b600082015167ffffffffffffffff811115613e8e57613e8d613494565b5b613e9a84828501613e2c565b91505092915050565b7f556e69737761705632506169722068617320616c7265616479206265656e207360008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eff6022836133a8565b9150613f0a82613ea3565b604082019050919050565b60006020820190508181036000830152613f2e81613ef2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f916026836133a8565b9150613f9c82613f35565b604082019050919050565b60006020820190508181036000830152613fc081613f84565b9050919050565b6000604082019050613fdc6000830185613614565b613fe96020830184613614565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061404c6024836133a8565b915061405782613ff0565b604082019050919050565b6000602082019050818103600083015261407b8161403f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006140de6022836133a8565b91506140e982614082565b604082019050919050565b6000602082019050818103600083015261410d816140d1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141706025836133a8565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006142026023836133a8565b915061420d826141a6565b604082019050919050565b60006020820190508181036000830152614231816141f5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006142946029836133a8565b915061429f82614238565b604082019050919050565b600060208201905081810360008301526142c381614287565b9050919050565b7f57616c6c65742063616e6e6f7420657863656564206d61782057616c6c65742060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b60006143266025836133a8565b9150614331826142ca565b604082019050919050565b6000602082019050818103600083015261435581614319565b9050919050565b6000614367826134f7565b9150614372836134f7565b925082820390508181111561438a57614389613b5a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143c6601b836133a8565b91506143d182614390565b602082019050919050565b600060208201905081810360008301526143f5816143b9565b9050919050565b6000614407826134f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361443957614438613b5a565b5b600182019050919050565b600061444f826134f7565b915061445a836134f7565b9250828202614468816134f7565b9150828204841483151761447f5761447e613b5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144c0826134f7565b91506144cb836134f7565b9250826144db576144da614486565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006145426021836133a8565b915061454d826144e6565b604082019050919050565b6000602082019050818103600083015261457181614535565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145d46021836133a8565b91506145df82614578565b604082019050919050565b60006020820190508181036000830152614603816145c7565b9050919050565b6000819050919050565b600061462f61462a6146258461460a565b61359a565b6134f7565b9050919050565b61463f81614614565b82525050565b600060a08201905061465a6000830188613614565b6146676020830187614636565b81810360408301526146798186613cbd565b90506146886060830185613826565b6146956080830184613614565b9695505050505050565b600060c0820190506146b46000830189613826565b6146c16020830188613614565b6146ce6040830187614636565b6146db6060830186614636565b6146e86080830185613826565b6146f560a0830184613614565b979650505050505050565b6000806000606084860312156147195761471861348f565b5b600061472786828701613aad565b935050602061473886828701613aad565b925050604061474986828701613aad565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e3f1e053f6a4cf8fe56013a4f87236104910067129c1b8f433a22f8a6c7b2bed64736f6c63430008110033

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.