ETH Price: $3,030.09 (+3.37%)
Gas: 1 Gwei

Token

Xchange Games (X7G)
 

Overview

Max Total Supply

100,000,000 X7G

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
supawah.eth
Balance
441,291.404375754896451518 X7G

Value
$0.00
0xdc54b6c74eb571dbcfcc19c4e573f91b091d0c17
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
X7G

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : X7G.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/*
  __  __     ____   _   _      _      _   _     ____  U _____ u
  \ \/"/  U /"___| |'| |'| U  /"\  u | \ |"| U /"___|u\| ___"|/
  /\  /\  \| | u  /| |_| |\ \/ _ \/ <|  \| |>\| |  _ / |  _|"
 U /  \ u  | |/__ U|  _  |u / ___ \ U| |\  |u | |_| |  | |___
  /_/\_\    \____| |_| |_| /_/   \_\ |_| \_|   \____|  |_____|
,-,>> \\_  _// \\  //   \\  \\    >> ||   \\,-._)(|_   <<   >>
 \_)  (__)(__)(__)(_") ("_)(__)  (__)(_")  (_/(__)__) (__) (__)
           ____      _      __  __  U _____ u ____
        U /"___|uU  /"\  uU|' \/ '|u\| ___"|// __"| u
        \| |  _ / \/ _ \/ \| |\/| |/ |  _|" <\___ \/
         | |_| |  / ___ \  | |  | |  | |___  u___) |
          \____| /_/   \_\ |_|  |_|  |_____| |____/>>
          _)(|_   \\    >><<,-,,-.   <<   >>  )(  (__)
         (__)__) (__)  (__)(./  \.) (__) (__)(__)

 Contract: X7G token
 Created by: https://t.me/smart_bart
*/

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

interface IRouter {
    function factory() external view returns (address);

    function WETH() external view returns (address);

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

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

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

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

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

interface IWETH is IERC20 {
    function withdraw(uint256) external;
}

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
    unchecked {
        _balances[from] = fromBalance - amount;
        _balances[to] += amount;
    }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
        unchecked {
            _approve(owner, spender, currentAllowance - amount);
        }
        }
    }

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

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

contract X7G is ERC20, Ownable {
    modifier lockTheSwap() {
        processingFees = true;
        _;
        processingFees = false;
    }

    bool private processingFees = false;

    IRouter public router;
    address public automatedMarketMakerAddress;
    mapping(address => bool) public automatedMarketMakerPair;

    uint256 private _maxFee = 7000;
    uint256 public fee;
    uint256 public burnAndLiquidityShare;
    uint256 public treasuryShare;
    uint256 public operationsShare;

    uint256 public maxWallet;
    uint256 public thresholdToProcessFees;

    address public treasury;
    address public operations;
    address public x7rContract;

    mapping(address => bool) excludedAddresses;

    bool public tradingEnabled = false;

    event AMMSet(address indexed pairAddress, bool isAMM);
    event TradingEnabled();
    event NewTreasurySet(address newTreasury);
    event NewOperationsWalletSet(address newOperationsWallet);
    event ThresholdToProcessFeesSet(uint256 oldThreshold, uint256 newThreshold);
    event MaxWalletSet(uint256 oldMaxWallet, uint256 newMaxWallet);
    event FeeSet(uint256 oldFee, uint256 newFee);
    event FeeSharesSet(
        uint256 newBurnAndLiquidityShare,
        uint256 newTreasuryShare,
        uint256 newOpsShare
    );
    event FeesProcessed();
    event ExcludedAddressSet(address indexed excludedAddress, bool isExcluded);
    event Launched();

    constructor()
    ERC20("Xchange Games", "X7G")
    {
        _mint(_msgSender(), 100000000 * 1e18);

        excludedAddresses[address(_msgSender())] = true;
        excludedAddresses[address(0x740015c39da5D148fcA25A467399D00bcE10c001)] = true;
        x7rContract = address(0x70008F18Fc58928dcE982b0A69C2c21ff80Dca54);
    }

    receive() external payable {}

    function launch() public onlyOwner {
        // Create Xchange pair and set AMM in contract
        router = IRouter(0x7DE8063E9fB43321d2100e8Ddae5167F56A50060);
        address _pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        setAMM(address(_pair), true);

        // Set wallet addresses
        treasury = address(0x47689fbAE45816Ea67c3C29BC46D2ff0961cb513);
        operations = address(0x87b49D6A6910547493f841A95b4Ed94d2A5942DD);

        // exclude router, lending pool, treasury and operations addresses
        excludedAddresses[address(router)] = true;
        excludedAddresses[address(treasury)] = true;
        excludedAddresses[address(operations)] = true;

        // set fee and fee shares
        fee = 3000;
        burnAndLiquidityShare = 33333;
        treasuryShare = 33333;
        operationsShare = 33334;

        // set maxWallet and thresholdToProcessFees
        maxWallet = 1000000 * 1e18;
        thresholdToProcessFees = 50000 * 1e18;

        emit Launched();
    }

    function setExcludedAddress(address excludedAddress, bool isExcluded) public onlyOwner {
        require(excludedAddress != address(0), "X7G: (New) excluded address can not be address 0x");
        excludedAddresses[excludedAddress] = isExcluded;
        emit ExcludedAddressSet(excludedAddress, isExcluded);
    }

    function setAMM(address ammAddress, bool isAMM) public onlyOwner {
        require(ammAddress != address(0), "X7G: (New) AMM address can not be address 0x");
        automatedMarketMakerPair[ammAddress] = isAMM;
        automatedMarketMakerAddress = ammAddress;
        emit AMMSet(ammAddress, isAMM);
    }

    function setThresholdToProcessFees(uint256 newThreshold) external onlyOwner {
        require(newThreshold >= 1000 * 1e18, "X7G: 1000 X7G is the minmum");
        uint256 _oldThreshold = thresholdToProcessFees;
        thresholdToProcessFees = newThreshold;
        emit ThresholdToProcessFeesSet(_oldThreshold, newThreshold);
    }

    function setMaxWallet(uint256 _newMaxWallet) external onlyOwner {
        require(_newMaxWallet >= 500000 * 1e18, "X7G: Max wallet is less the minimum then 0,5% of totalSupply");
        require(_newMaxWallet <= 25000000 * 1e18, "X7G: Max wallet is more the maximum than 25% of totalSupply");

        uint256 oldMaxWallet = maxWallet;
        maxWallet = _newMaxWallet;
        emit MaxWalletSet(oldMaxWallet, _newMaxWallet);
    }

    function setFee(uint256 newFee) external onlyOwner {
        require(newFee <= _maxFee, "X7G: Fee can not be set higher then the maximum of 7%");
        require(newFee >= 0, "X7G: Fee is less than 0");
        require(newFee != fee, "X7G: Fee is already that percentage");

        uint256 _oldFee = fee;
        fee = newFee;
        emit FeeSet(_oldFee, fee);
    }

    function setFeeShares(uint256 _newBurnAndLiquidityShare, uint256 _newTreasuryShare, uint256 _newOperationsShare) external onlyOwner {
        require(_newBurnAndLiquidityShare + _newTreasuryShare + _newOperationsShare == 100000,
            "X7G: Summed fee shares are not 100% (100000)!"
        );

        burnAndLiquidityShare = _newBurnAndLiquidityShare;
        treasuryShare = _newTreasuryShare;
        operationsShare = _newOperationsShare;

        emit FeeSharesSet(
            _newBurnAndLiquidityShare,
            _newTreasuryShare,
            _newOperationsShare
        );
    }

    function setTreasuryWallet(address _newTreasury) public onlyOwner {
        require(_newTreasury != address(0), "X7G: New treasury can not be address 0x");
        excludedAddresses[address(treasury)] = false;
        treasury = _newTreasury;
        excludedAddresses[address(_newTreasury)] = true;
        emit NewTreasurySet(_newTreasury);
    }

    function setOperationsWallet(address _newOperationsWallet) public onlyOwner {
        require(_newOperationsWallet != address(0), "X7G: New operations wallet can not be address 0x");
        excludedAddresses[address(treasury)] = false;
        operations = _newOperationsWallet;
        excludedAddresses[address(_newOperationsWallet)] = true;
        emit NewOperationsWalletSet(_newOperationsWallet);
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "X7G: Trading is already enabled");
        tradingEnabled = true;
        emit TradingEnabled();
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(tradingEnabled || from == owner(), "X7G: Trading will be enabled when the amm pair is set.");

        if (excludedAddresses[from] || excludedAddresses[to]) {
            super._transfer(from, to, amount);
            return;
        }

        uint256 _transferAmount = amount;

        if (automatedMarketMakerPair[from] || automatedMarketMakerPair[to]) {
            uint256 txnFee = (_transferAmount * fee) / 100000;

            _transferAmount = _transferAmount - txnFee;

            if (automatedMarketMakerPair[from]) {
                require(balanceOf(automatedMarketMakerPair[from] ? to : from) + _transferAmount <= maxWallet,
                    "X7G: transaction exceeds max wallet");
            }

            super._transfer(from, address(this), txnFee);
        }

        if (automatedMarketMakerPair[to] && !processingFees && balanceOf(address(this)) >= thresholdToProcessFees) {
            processFees();
        }

        super._transfer(from, to, _transferAmount);
    }

    function processFees() public lockTheSwap {
        uint256 _contractBalance = balanceOf(address(this));

        require(_contractBalance != 0, "X7G: cannot process fees if X7G balance is 0");

        // Calculate number of tokens
        uint256 _X7GLiquidityTokens = (_contractBalance * (((burnAndLiquidityShare / 2) / 2))) / 100000;

        // Swap for ETH
        _swapTokensForEth(_contractBalance - _X7GLiquidityTokens);

        // Calculate ETH balances
        uint256 _balance = address(this).balance;

        require(_balance != 0, "X7G: cannot process fees if ETH balance is 0");

        uint256 _ethForTreasury = (_balance * (treasuryShare / 4)) / 100000;
        uint256 _ethForOperations = (_balance * operationsShare) / 100000;
        uint256 _ethForX7GLiquidity = (_balance * (burnAndLiquidityShare / 2)) / 100000;
        uint256 _ethForX7RBurn = (_balance * (burnAndLiquidityShare / 2)) / 100000;
        uint256 _ethForX7RBuy = (_balance * (treasuryShare / 4) * 3) / 100000;

        // Add liquidity
        _addLiquidityETH(
            address(this),
            _X7GLiquidityTokens,
            _ethForX7GLiquidity
        );

        // Swap ETH for X7R and burn some and send some to the treasury
        _swapEthForTokens(
            _ethForX7RBurn + _ethForX7RBuy,
            address(x7rContract)
        );

        uint256 _x7rBalance = IERC20(x7rContract).balanceOf(address(this));
        uint256 _total = _ethForX7RBurn + _ethForX7RBuy;
        uint256 _burnRatio;
        uint256 _treasuryRatio;

        if (_total > 0) {
            _burnRatio = (_ethForX7RBurn * 1e18 / _total);
            _treasuryRatio = (_ethForX7RBuy * 1e18 / _total);
        }

        uint256 _x7rForBurn = (_x7rBalance * _burnRatio) / 1e18;
        uint256 _x7rForTreasury = (_x7rBalance * _treasuryRatio) / 1e18;

        IERC20(x7rContract).transfer(address(0x000000000000000000000000000000000000dEaD), _x7rForBurn);
        IERC20(x7rContract).transfer(address(treasury), _x7rForTreasury);

        // Send ETH to treasury, dev and marketing
        (bool treasurySendSuccess,) = treasury.call{value : _ethForTreasury}("");
        require(treasurySendSuccess, "X7G: Transfer to treasury wallet failed.");
        (bool operationsWalletSendSuccess,) = operations.call{value : _ethForOperations}("");
        require(operationsWalletSendSuccess, "X7G: Transfer to dev wallet failed.");

        emit FeesProcessed();
    }

    function _swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _swapEthForTokens(uint256 ethAmount, address tokenAddress) internal {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = tokenAddress;
        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value : ethAmount}(
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _addLiquidityETH(address token, uint256 tokenAmount, uint256 ethAmount) internal {
        IERC20(token).approve(address(router), tokenAmount);
        router.addLiquidityETH{value : ethAmount}(
            token,
            tokenAmount,
            0,
            0,
            address(0),
            block.timestamp
        );
    }

    function rescueWETH() external {
        address _weth = router.WETH();
        IWETH(_weth).withdraw(
            IERC20(_weth).balanceOf(address(this))
        );
    }

    function rescueETH() external {
        uint256 _balance = address(this).balance;
        require(_balance > 0, "X7G: No ETH to withdraw");

        (bool success,) = msg.sender.call{value : _balance}("");
        require(success, "X7G: ETH transfer failed");
    }

}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pairAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isAMM","type":"bool"}],"name":"AMMSet","type":"event"},{"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":"excludedAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"FeeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBurnAndLiquidityShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTreasuryShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newOpsShare","type":"uint256"}],"name":"FeeSharesSet","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesProcessed","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMaxWallet","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"MaxWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOperationsWallet","type":"address"}],"name":"NewOperationsWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newTreasury","type":"address"}],"name":"NewTreasurySet","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":"oldThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"ThresholdToProcessFeesSet","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingEnabled","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":[{"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":[],"name":"automatedMarketMakerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAndLiquidityShare","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","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":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operations","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueWETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBurnAndLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"_newTreasuryShare","type":"uint256"},{"internalType":"uint256","name":"_newOperationsShare","type":"uint256"}],"name":"setFeeShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOperationsWallet","type":"address"}],"name":"setOperationsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"setThresholdToProcessFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTreasury","type":"address"}],"name":"setTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thresholdToProcessFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"x7rContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600560146101000a81548160ff021916908315150217905550611b586009556000601460006101000a81548160ff0219169083151502179055503480156200004d57600080fd5b506040518060400160405280600d81526020017f586368616e67652047616d6573000000000000000000000000000000000000008152506040518060400160405280600381526020017f58374700000000000000000000000000000000000000000000000000000000008152508160039081620000cb919062000719565b508060049081620000dd919062000719565b50505062000100620000f46200025a60201b60201c565b6200026260201b60201c565b6200012c620001146200025a60201b60201c565b6a52b7d2dcc80cd2e40000006200032860201b60201c565b600160136000620001426200025a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600073740015c39da5d148fca25a467399d00bce10c00173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507370008f18fc58928dce982b0a69c2c21ff80dca54601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200091b565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200039a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003919062000861565b60405180910390fd5b620003ae600083836200049560201b60201c565b8060026000828254620003c29190620008b2565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004759190620008fe565b60405180910390a362000491600083836200049a60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200052157607f821691505b602082108103620005375762000536620004d9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000562565b620005ad868362000562565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005fa620005f4620005ee84620005c5565b620005cf565b620005c5565b9050919050565b6000819050919050565b6200061683620005d9565b6200062e620006258262000601565b8484546200056f565b825550505050565b600090565b6200064562000636565b620006528184846200060b565b505050565b5b818110156200067a576200066e6000826200063b565b60018101905062000658565b5050565b601f821115620006c95762000693816200053d565b6200069e8462000552565b81016020851015620006ae578190505b620006c6620006bd8562000552565b83018262000657565b50505b505050565b600082821c905092915050565b6000620006ee60001984600802620006ce565b1980831691505092915050565b6000620007098383620006db565b9150826002028217905092915050565b62000724826200049f565b67ffffffffffffffff81111562000740576200073f620004aa565b5b6200074c825462000508565b620007598282856200067e565b600060209050601f8311600181146200079157600084156200077c578287015190505b620007888582620006fb565b865550620007f8565b601f198416620007a1866200053d565b60005b82811015620007cb57848901518255600182019150602085019450602081019050620007a4565b86831015620007eb5784890151620007e7601f891682620006db565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000849601f8362000800565b9150620008568262000811565b602082019050919050565b600060208201905081810360008301526200087c816200083a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008bf82620005c5565b9150620008cc83620005c5565b9250828201905080821115620008e757620008e662000883565b5b92915050565b620008f881620005c5565b82525050565b6000602082019050620009156000830184620008ed565b92915050565b614fa5806200092b6000396000f3fe60806040526004361061023f5760003560e01c80638da5cb5b1161012e578063d368371e116100ab578063f196782c1161006f578063f196782c14610838578063f28f797214610861578063f2fde38b1461088a578063f887ea40146108b3578063f8b45b05146108de57610246565b8063d368371e14610751578063dd4f61801461077c578063dd62ed3e146107a7578063ddca3f43146107e4578063ee5ecc891461080f57610246565b8063a8602fea116100f2578063a8602fea14610694578063a9059cbb146106bd578063a9d3cd8a146106fa578063ba69ebed14610723578063c38ec0b61461073a57610246565b80638da5cb5b1461059957806390aa2ea6146105c457806395937a491461060157806395d89b411461062c578063a457c2d71461065757610246565b80634ada218b116101bc57806370a082311161018057806370a08231146104d8578063715018a6146105155780637796ff371461052c5780638a8c523c146105575780638b33b4b21461056e57610246565b80634ada218b1461040757806350b9a9f5146104325780635d0044ca1461045b57806361d027b31461048457806369fe0e2d146104af57610246565b806318160ddd1161020357806318160ddd1461032057806320800a001461034b57806323b872dd14610362578063313ce5671461039f57806339509351146103ca57610246565b806301339c211461024b57806306fdde0314610262578063095ea7b31461028d5780630ac249d5146102ca5780630daa9205146102f557610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610909565b005b34801561026e57600080fd5b50610277610da0565b6040516102849190613605565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af91906136c0565b610e32565b6040516102c1919061371b565b60405180910390f35b3480156102d657600080fd5b506102df610e55565b6040516102ec9190613745565b60405180910390f35b34801561030157600080fd5b5061030a610e7b565b604051610317919061376f565b60405180910390f35b34801561032c57600080fd5b50610335610e81565b604051610342919061376f565b60405180910390f35b34801561035757600080fd5b50610360610e8b565b005b34801561036e57600080fd5b506103896004803603810190610384919061378a565b610f83565b604051610396919061371b565b60405180910390f35b3480156103ab57600080fd5b506103b4610fb2565b6040516103c191906137f9565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec91906136c0565b610fbb565b6040516103fe919061371b565b60405180910390f35b34801561041357600080fd5b5061041c610ff2565b604051610429919061371b565b60405180910390f35b34801561043e57600080fd5b5061045960048036038101906104549190613814565b611005565b005b34801561046757600080fd5b50610482600480360381019061047d9190613814565b6110a4565b005b34801561049057600080fd5b50610499611192565b6040516104a69190613745565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d19190613814565b6111b8565b005b3480156104e457600080fd5b506104ff60048036038101906104fa9190613841565b6112da565b60405161050c919061376f565b60405180910390f35b34801561052157600080fd5b5061052a611322565b005b34801561053857600080fd5b50610541611336565b60405161054e919061376f565b60405180910390f35b34801561056357600080fd5b5061056c61133c565b005b34801561057a57600080fd5b506105836113dd565b6040516105909190613745565b60405180910390f35b3480156105a557600080fd5b506105ae611403565b6040516105bb9190613745565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190613841565b61142d565b6040516105f8919061371b565b60405180910390f35b34801561060d57600080fd5b5061061661144d565b6040516106239190613745565b60405180910390f35b34801561063857600080fd5b50610641611473565b60405161064e9190613605565b60405180910390f35b34801561066357600080fd5b5061067e600480360381019061067991906136c0565b611505565b60405161068b919061371b565b60405180910390f35b3480156106a057600080fd5b506106bb60048036038101906106b69190613841565b61157c565b005b3480156106c957600080fd5b506106e460048036038101906106df91906136c0565b611740565b6040516106f1919061371b565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c919061389a565b611763565b005b34801561072f57600080fd5b506107386118c4565b005b34801561074657600080fd5b5061074f611f80565b005b34801561075d57600080fd5b506107666120fc565b604051610773919061376f565b60405180910390f35b34801561078857600080fd5b50610791612102565b60405161079e919061376f565b60405180910390f35b3480156107b357600080fd5b506107ce60048036038101906107c991906138da565b612108565b6040516107db919061376f565b60405180910390f35b3480156107f057600080fd5b506107f961218f565b604051610806919061376f565b60405180910390f35b34801561081b57600080fd5b5061083660048036038101906108319190613841565b612195565b005b34801561084457600080fd5b5061085f600480360381019061085a919061389a565b612359565b005b34801561086d57600080fd5b506108886004803603810190610883919061391a565b612479565b005b34801561089657600080fd5b506108b160048036038101906108ac9190613841565b612531565b005b3480156108bf57600080fd5b506108c86125b4565b6040516108d591906139cc565b60405180910390f35b3480156108ea57600080fd5b506108f36125da565b604051610900919061376f565b60405180910390f35b6109116125e0565b737de8063e9fb43321d2100e8ddae5167f56a50060600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f991906139fc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa691906139fc565b6040518363ffffffff1660e01b8152600401610ac3929190613a29565b6020604051808303816000875af1158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0691906139fc565b9050610b13816001611763565b7347689fbae45816ea67c3c29bc46d2ff0961cb513601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507387b49d6a6910547493f841a95b4ed94d2a5942dd601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160136000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610bb8600a81905550618235600b81905550618235600c81905550618236600d8190555069d3c21bcecceda1000000600e81905550690a968163f0a57b400000600f819055507fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c860405160405180910390a150565b606060038054610daf90613a81565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddb90613a81565b8015610e285780601f10610dfd57610100808354040283529160200191610e28565b820191906000526020600020905b815481529060010190602001808311610e0b57829003601f168201915b5050505050905090565b600080610e3d61265e565b9050610e4a818585612666565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600254905090565b600047905060008111610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90613afe565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1682604051610ef990613b4f565b60006040518083038185875af1925050503d8060008114610f36576040519150601f19603f3d011682016040523d82523d6000602084013e610f3b565b606091505b5050905080610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690613bb0565b60405180910390fd5b5050565b600080610f8e61265e565b9050610f9b85828561282f565b610fa68585856128bb565b60019150509392505050565b60006012905090565b600080610fc661265e565b9050610fe7818585610fd88589612108565b610fe29190613bff565b612666565b600191505092915050565b601460009054906101000a900460ff1681565b61100d6125e0565b683635c9adc5dea00000811015611059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105090613c7f565b60405180910390fd5b6000600f54905081600f819055507f046078a3b350ab7ef8b49720ee84ad777c5172459d33cff8e353c3b9b04757ea8183604051611098929190613c9f565b60405180910390a15050565b6110ac6125e0565b6969e10de76676d08000008110156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f090613d3a565b60405180910390fd5b6a14adf4b7320334b9000000811115611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90613dcc565b60405180910390fd5b6000600e54905081600e819055507f35f2577625659032d553fbc001320996b756a5dae410a0b74e931934e020464b8183604051611186929190613c9f565b60405180910390a15050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c06125e0565b600954811115611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc90613e5e565b60405180910390fd5b6000811015611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090613eca565b60405180910390fd5b600a54810361128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490613f5c565b60405180910390fd5b6000600a54905081600a819055507f74dbbbe280ef27b79a8a0c449d5ae2ba7a31849103241d0f98df70bbc9d03e3781600a546040516112ce929190613c9f565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61132a6125e0565b6113346000612c82565b565b600c5481565b6113446125e0565b601460009054906101000a900460ff1615611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90613fc8565b60405180910390fd5b6001601460006101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60086020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461148290613a81565b80601f01602080910402602001604051908101604052809291908181526020018280546114ae90613a81565b80156114fb5780601f106114d0576101008083540402835291602001916114fb565b820191906000526020600020905b8154815290600101906020018083116114de57829003601f168201915b5050505050905090565b60008061151061265e565b9050600061151e8286612108565b905083811015611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a9061405a565b60405180910390fd5b6115708286868403612666565b60019250505092915050565b6115846125e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea906140ec565b60405180910390fd5b600060136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fa74e71df5980104def7b321d0fa7d4b885191d40a2ae420acb543c3eba542532816040516117359190613745565b60405180910390a150565b60008061174b61265e565b90506117588185856128bb565b600191505092915050565b61176b6125e0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d19061417e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87826040516118b8919061371b565b60405180910390a25050565b6001600560146101000a81548160ff02191690831515021790555060006118ea306112da565b90506000810361192f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192690614210565b60405180910390fd5b6000620186a0600280600b54611945919061425f565b61194f919061425f565b8361195a9190614290565b611964919061425f565b905061197a818361197591906142d2565b612d48565b6000479050600081036119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990614378565b60405180910390fd5b6000620186a06004600c546119d7919061425f565b836119e29190614290565b6119ec919061425f565b90506000620186a0600d5484611a029190614290565b611a0c919061425f565b90506000620186a06002600b54611a23919061425f565b85611a2e9190614290565b611a38919061425f565b90506000620186a06002600b54611a4f919061425f565b86611a5a9190614290565b611a64919061425f565b90506000620186a060036004600c54611a7d919061425f565b88611a889190614290565b611a929190614290565b611a9c919061425f565b9050611aa9308885612f8b565b611ae08183611ab89190613bff565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166130df565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b3d9190613745565b602060405180830381865afa158015611b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7e91906143ad565b905060008284611b8e9190613bff565b90506000806000831115611bdf5782670de0b6b3a764000087611bb19190614290565b611bbb919061425f565b915082670de0b6b3a764000086611bd29190614290565b611bdc919061425f565b90505b6000670de0b6b3a76400008386611bf69190614290565b611c00919061425f565b90506000670de0b6b3a76400008387611c199190614290565b611c23919061425f565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead846040518363ffffffff1660e01b8152600401611c849291906143da565b6020604051808303816000875af1158015611ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc79190614418565b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611d479291906143da565b6020604051808303816000875af1158015611d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8a9190614418565b506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c604051611dd390613b4f565b60006040518083038185875af1925050503d8060008114611e10576040519150601f19603f3d011682016040523d82523d6000602084013e611e15565b606091505b5050905080611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e50906144b7565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c604051611ea190613b4f565b60006040518083038185875af1925050503d8060008114611ede576040519150601f19603f3d011682016040523d82523d6000602084013e611ee3565b606091505b5050905080611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614549565b60405180910390fd5b7f073f67f6b2a495a773c8f33582c762d9c1a89fec310d1e2ce2808b4ff65d829060405160405180910390a1505050505050505050505050505050506000600560146101000a81548160ff021916908315150217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201391906139fc565b90508073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161206a9190613745565b602060405180830381865afa158015612087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ab91906143ad565b6040518263ffffffff1660e01b81526004016120c7919061376f565b600060405180830381600087803b1580156120e157600080fd5b505af11580156120f5573d6000803e3d6000fd5b5050505050565b600f5481565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b61219d6125e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361220c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612203906145db565b60405180910390fd5b600060136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fdccc025e6e980de101657e1295cfa32a304434c2ca37130de5942fb8fb2b390a8160405161234e9190613745565b60405180910390a150565b6123616125e0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c79061466d565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f33e99dbd8a2fdf021abaf8531c98838a37f8e85fd3cbf0e897047074f9c4ecf48260405161246d919061371b565b60405180910390a25050565b6124816125e0565b620186a08183856124929190613bff565b61249c9190613bff565b146124dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d3906146ff565b60405180910390fd5b82600b8190555081600c8190555080600d819055507f192b126d6d86e50716742827858f2c3edda14906a341f1fc234c27fc1e4c8f8b8383836040516125249392919061471f565b60405180910390a1505050565b6125396125e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259f906147c8565b60405180910390fd5b6125b181612c82565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6125e861265e565b73ffffffffffffffffffffffffffffffffffffffff16612606611403565b73ffffffffffffffffffffffffffffffffffffffff161461265c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265390614834565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cc906148c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273b90614958565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612822919061376f565b60405180910390a3505050565b600061283b8484612108565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146128b557818110156128a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289e906149c4565b60405180910390fd5b6128b48484848403612666565b5b50505050565b601460009054906101000a900460ff168061290857506128d9611403565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b612947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293e90614a56565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129e85750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129fd576129f88383836132f5565b612c7d565b6000819050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aa35750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612be6576000620186a0600a5483612abc9190614290565b612ac6919061425f565b90508082612ad491906142d2565b9150600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bd957600e5482612b8d600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b865787612b88565b865b6112da565b612b979190613bff565b1115612bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bcf90614ae8565b60405180910390fd5b5b612be48530836132f5565b505b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c4c5750600560149054906101000a900460ff16155b8015612c625750600f54612c5f306112da565b10155b15612c7057612c6f6118c4565b5b612c7b8484836132f5565b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff811115612d6557612d64614b08565b5b604051908082528060200260200182016040528015612d935781602001602082028036833780820191505090505b5090503081600081518110612dab57612daa614b37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7691906139fc565b81600181518110612e8a57612e89614b37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ef130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612666565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f55959493929190614c5f565b600060405180830381600087803b158015612f6f57600080fd5b505af1158015612f83573d6000803e3d6000fd5b505050505050565b8273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612fe89291906143da565b6020604051808303816000875af1158015613007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302b9190614418565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198285856000806000426040518863ffffffff1660e01b815260040161309496959493929190614cb9565b60606040518083038185885af11580156130b2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130d79190614d1a565b505050505050565b6000600267ffffffffffffffff8111156130fc576130fb614b08565b5b60405190808252806020026020018201604052801561312a5781602001602082028036833780820191505090505b509050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561319a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131be91906139fc565b816000815181106131d2576131d1614b37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061322157613220614b37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008430426040518663ffffffff1660e01b81526004016132be9493929190614d6d565b6000604051808303818588803b1580156132d757600080fd5b505af11580156132eb573d6000803e3d6000fd5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335b90614e2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ca90614ebd565b60405180910390fd5b6133de83838361356b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345b90614f4f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613552919061376f565b60405180910390a3613565848484613570565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135af578082015181840152602081019050613594565b60008484015250505050565b6000601f19601f8301169050919050565b60006135d782613575565b6135e18185613580565b93506135f1818560208601613591565b6135fa816135bb565b840191505092915050565b6000602082019050818103600083015261361f81846135cc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136578261362c565b9050919050565b6136678161364c565b811461367257600080fd5b50565b6000813590506136848161365e565b92915050565b6000819050919050565b61369d8161368a565b81146136a857600080fd5b50565b6000813590506136ba81613694565b92915050565b600080604083850312156136d7576136d6613627565b5b60006136e585828601613675565b92505060206136f6858286016136ab565b9150509250929050565b60008115159050919050565b61371581613700565b82525050565b6000602082019050613730600083018461370c565b92915050565b61373f8161364c565b82525050565b600060208201905061375a6000830184613736565b92915050565b6137698161368a565b82525050565b60006020820190506137846000830184613760565b92915050565b6000806000606084860312156137a3576137a2613627565b5b60006137b186828701613675565b93505060206137c286828701613675565b92505060406137d3868287016136ab565b9150509250925092565b600060ff82169050919050565b6137f3816137dd565b82525050565b600060208201905061380e60008301846137ea565b92915050565b60006020828403121561382a57613829613627565b5b6000613838848285016136ab565b91505092915050565b60006020828403121561385757613856613627565b5b600061386584828501613675565b91505092915050565b61387781613700565b811461388257600080fd5b50565b6000813590506138948161386e565b92915050565b600080604083850312156138b1576138b0613627565b5b60006138bf85828601613675565b92505060206138d085828601613885565b9150509250929050565b600080604083850312156138f1576138f0613627565b5b60006138ff85828601613675565b925050602061391085828601613675565b9150509250929050565b60008060006060848603121561393357613932613627565b5b6000613941868287016136ab565b9350506020613952868287016136ab565b9250506040613963868287016136ab565b9150509250925092565b6000819050919050565b600061399261398d6139888461362c565b61396d565b61362c565b9050919050565b60006139a482613977565b9050919050565b60006139b682613999565b9050919050565b6139c6816139ab565b82525050565b60006020820190506139e160008301846139bd565b92915050565b6000815190506139f68161365e565b92915050565b600060208284031215613a1257613a11613627565b5b6000613a20848285016139e7565b91505092915050565b6000604082019050613a3e6000830185613736565b613a4b6020830184613736565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a9957607f821691505b602082108103613aac57613aab613a52565b5b50919050565b7f5837473a204e6f2045544820746f207769746864726177000000000000000000600082015250565b6000613ae8601783613580565b9150613af382613ab2565b602082019050919050565b60006020820190508181036000830152613b1781613adb565b9050919050565b600081905092915050565b50565b6000613b39600083613b1e565b9150613b4482613b29565b600082019050919050565b6000613b5a82613b2c565b9150819050919050565b7f5837473a20455448207472616e73666572206661696c65640000000000000000600082015250565b6000613b9a601883613580565b9150613ba582613b64565b602082019050919050565b60006020820190508181036000830152613bc981613b8d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c0a8261368a565b9150613c158361368a565b9250828201905080821115613c2d57613c2c613bd0565b5b92915050565b7f5837473a20313030302058374720697320746865206d696e6d756d0000000000600082015250565b6000613c69601b83613580565b9150613c7482613c33565b602082019050919050565b60006020820190508181036000830152613c9881613c5c565b9050919050565b6000604082019050613cb46000830185613760565b613cc16020830184613760565b9392505050565b7f5837473a204d61782077616c6c6574206973206c65737320746865206d696e6960008201527f6d756d207468656e20302c3525206f6620746f74616c537570706c7900000000602082015250565b6000613d24603c83613580565b9150613d2f82613cc8565b604082019050919050565b60006020820190508181036000830152613d5381613d17565b9050919050565b7f5837473a204d61782077616c6c6574206973206d6f726520746865206d61786960008201527f6d756d207468616e20323525206f6620746f74616c537570706c790000000000602082015250565b6000613db6603b83613580565b9150613dc182613d5a565b604082019050919050565b60006020820190508181036000830152613de581613da9565b9050919050565b7f5837473a204665652063616e206e6f742062652073657420686967686572207460008201527f68656e20746865206d6178696d756d206f662037250000000000000000000000602082015250565b6000613e48603583613580565b9150613e5382613dec565b604082019050919050565b60006020820190508181036000830152613e7781613e3b565b9050919050565b7f5837473a20466565206973206c657373207468616e2030000000000000000000600082015250565b6000613eb4601783613580565b9150613ebf82613e7e565b602082019050919050565b60006020820190508181036000830152613ee381613ea7565b9050919050565b7f5837473a2046656520697320616c726561647920746861742070657263656e7460008201527f6167650000000000000000000000000000000000000000000000000000000000602082015250565b6000613f46602383613580565b9150613f5182613eea565b604082019050919050565b60006020820190508181036000830152613f7581613f39565b9050919050565b7f5837473a2054726164696e6720697320616c726561647920656e61626c656400600082015250565b6000613fb2601f83613580565b9150613fbd82613f7c565b602082019050919050565b60006020820190508181036000830152613fe181613fa5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614044602583613580565b915061404f82613fe8565b604082019050919050565b6000602082019050818103600083015261407381614037565b9050919050565b7f5837473a204e65772074726561737572792063616e206e6f742062652061646460008201527f7265737320307800000000000000000000000000000000000000000000000000602082015250565b60006140d6602783613580565b91506140e18261407a565b604082019050919050565b60006020820190508181036000830152614105816140c9565b9050919050565b7f5837473a20284e65772920414d4d20616464726573732063616e206e6f74206260008201527f6520616464726573732030780000000000000000000000000000000000000000602082015250565b6000614168602c83613580565b91506141738261410c565b604082019050919050565b600060208201905081810360008301526141978161415b565b9050919050565b7f5837473a2063616e6e6f742070726f636573732066656573206966205837472060008201527f62616c616e636520697320300000000000000000000000000000000000000000602082015250565b60006141fa602c83613580565b91506142058261419e565b604082019050919050565b60006020820190508181036000830152614229816141ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061426a8261368a565b91506142758361368a565b92508261428557614284614230565b5b828204905092915050565b600061429b8261368a565b91506142a68361368a565b92508282026142b48161368a565b915082820484148315176142cb576142ca613bd0565b5b5092915050565b60006142dd8261368a565b91506142e88361368a565b9250828203905081811115614300576142ff613bd0565b5b92915050565b7f5837473a2063616e6e6f742070726f636573732066656573206966204554482060008201527f62616c616e636520697320300000000000000000000000000000000000000000602082015250565b6000614362602c83613580565b915061436d82614306565b604082019050919050565b6000602082019050818103600083015261439181614355565b9050919050565b6000815190506143a781613694565b92915050565b6000602082840312156143c3576143c2613627565b5b60006143d184828501614398565b91505092915050565b60006040820190506143ef6000830185613736565b6143fc6020830184613760565b9392505050565b6000815190506144128161386e565b92915050565b60006020828403121561442e5761442d613627565b5b600061443c84828501614403565b91505092915050565b7f5837473a205472616e7366657220746f2074726561737572792077616c6c657460008201527f206661696c65642e000000000000000000000000000000000000000000000000602082015250565b60006144a1602883613580565b91506144ac82614445565b604082019050919050565b600060208201905081810360008301526144d081614494565b9050919050565b7f5837473a205472616e7366657220746f206465762077616c6c6574206661696c60008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000614533602383613580565b915061453e826144d7565b604082019050919050565b6000602082019050818103600083015261456281614526565b9050919050565b7f5837473a204e6577206f7065726174696f6e732077616c6c65742063616e206e60008201527f6f74206265206164647265737320307800000000000000000000000000000000602082015250565b60006145c5603083613580565b91506145d082614569565b604082019050919050565b600060208201905081810360008301526145f4816145b8565b9050919050565b7f5837473a20284e657729206578636c7564656420616464726573732063616e2060008201527f6e6f742062652061646472657373203078000000000000000000000000000000602082015250565b6000614657603183613580565b9150614662826145fb565b604082019050919050565b600060208201905081810360008301526146868161464a565b9050919050565b7f5837473a2053756d6d6564206665652073686172657320617265206e6f74203160008201527f3030252028313030303030292100000000000000000000000000000000000000602082015250565b60006146e9602d83613580565b91506146f48261468d565b604082019050919050565b60006020820190508181036000830152614718816146dc565b9050919050565b60006060820190506147346000830186613760565b6147416020830185613760565b61474e6040830184613760565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147b2602683613580565b91506147bd82614756565b604082019050919050565b600060208201905081810360008301526147e1816147a5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061481e602083613580565b9150614829826147e8565b602082019050919050565b6000602082019050818103600083015261484d81614811565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148b0602483613580565b91506148bb82614854565b604082019050919050565b600060208201905081810360008301526148df816148a3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614942602283613580565b915061494d826148e6565b604082019050919050565b6000602082019050818103600083015261497181614935565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006149ae601d83613580565b91506149b982614978565b602082019050919050565b600060208201905081810360008301526149dd816149a1565b9050919050565b7f5837473a2054726164696e672077696c6c20626520656e61626c65642077686560008201527f6e2074686520616d6d2070616972206973207365742e00000000000000000000602082015250565b6000614a40603683613580565b9150614a4b826149e4565b604082019050919050565b60006020820190508181036000830152614a6f81614a33565b9050919050565b7f5837473a207472616e73616374696f6e2065786365656473206d61782077616c60008201527f6c65740000000000000000000000000000000000000000000000000000000000602082015250565b6000614ad2602383613580565b9150614add82614a76565b604082019050919050565b60006020820190508181036000830152614b0181614ac5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614b8b614b86614b8184614b66565b61396d565b61368a565b9050919050565b614b9b81614b70565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614bd68161364c565b82525050565b6000614be88383614bcd565b60208301905092915050565b6000602082019050919050565b6000614c0c82614ba1565b614c168185614bac565b9350614c2183614bbd565b8060005b83811015614c52578151614c398882614bdc565b9750614c4483614bf4565b925050600181019050614c25565b5085935050505092915050565b600060a082019050614c746000830188613760565b614c816020830187614b92565b8181036040830152614c938186614c01565b9050614ca26060830185613736565b614caf6080830184613760565b9695505050505050565b600060c082019050614cce6000830189613736565b614cdb6020830188613760565b614ce86040830187614b92565b614cf56060830186614b92565b614d026080830185613736565b614d0f60a0830184613760565b979650505050505050565b600080600060608486031215614d3357614d32613627565b5b6000614d4186828701614398565b9350506020614d5286828701614398565b9250506040614d6386828701614398565b9150509250925092565b6000608082019050614d826000830187614b92565b8181036020830152614d948186614c01565b9050614da36040830185613736565b614db06060830184613760565b95945050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614e15602583613580565b9150614e2082614db9565b604082019050919050565b60006020820190508181036000830152614e4481614e08565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ea7602383613580565b9150614eb282614e4b565b604082019050919050565b60006020820190508181036000830152614ed681614e9a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614f39602683613580565b9150614f4482614edd565b604082019050919050565b60006020820190508181036000830152614f6881614f2c565b905091905056fea26469706673582212203ae418932636ff8ebcfd9e8758aedd92ffe3105584b11f65f0b57608f38ad57064736f6c63430008140033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80638da5cb5b1161012e578063d368371e116100ab578063f196782c1161006f578063f196782c14610838578063f28f797214610861578063f2fde38b1461088a578063f887ea40146108b3578063f8b45b05146108de57610246565b8063d368371e14610751578063dd4f61801461077c578063dd62ed3e146107a7578063ddca3f43146107e4578063ee5ecc891461080f57610246565b8063a8602fea116100f2578063a8602fea14610694578063a9059cbb146106bd578063a9d3cd8a146106fa578063ba69ebed14610723578063c38ec0b61461073a57610246565b80638da5cb5b1461059957806390aa2ea6146105c457806395937a491461060157806395d89b411461062c578063a457c2d71461065757610246565b80634ada218b116101bc57806370a082311161018057806370a08231146104d8578063715018a6146105155780637796ff371461052c5780638a8c523c146105575780638b33b4b21461056e57610246565b80634ada218b1461040757806350b9a9f5146104325780635d0044ca1461045b57806361d027b31461048457806369fe0e2d146104af57610246565b806318160ddd1161020357806318160ddd1461032057806320800a001461034b57806323b872dd14610362578063313ce5671461039f57806339509351146103ca57610246565b806301339c211461024b57806306fdde0314610262578063095ea7b31461028d5780630ac249d5146102ca5780630daa9205146102f557610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610909565b005b34801561026e57600080fd5b50610277610da0565b6040516102849190613605565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af91906136c0565b610e32565b6040516102c1919061371b565b60405180910390f35b3480156102d657600080fd5b506102df610e55565b6040516102ec9190613745565b60405180910390f35b34801561030157600080fd5b5061030a610e7b565b604051610317919061376f565b60405180910390f35b34801561032c57600080fd5b50610335610e81565b604051610342919061376f565b60405180910390f35b34801561035757600080fd5b50610360610e8b565b005b34801561036e57600080fd5b506103896004803603810190610384919061378a565b610f83565b604051610396919061371b565b60405180910390f35b3480156103ab57600080fd5b506103b4610fb2565b6040516103c191906137f9565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec91906136c0565b610fbb565b6040516103fe919061371b565b60405180910390f35b34801561041357600080fd5b5061041c610ff2565b604051610429919061371b565b60405180910390f35b34801561043e57600080fd5b5061045960048036038101906104549190613814565b611005565b005b34801561046757600080fd5b50610482600480360381019061047d9190613814565b6110a4565b005b34801561049057600080fd5b50610499611192565b6040516104a69190613745565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d19190613814565b6111b8565b005b3480156104e457600080fd5b506104ff60048036038101906104fa9190613841565b6112da565b60405161050c919061376f565b60405180910390f35b34801561052157600080fd5b5061052a611322565b005b34801561053857600080fd5b50610541611336565b60405161054e919061376f565b60405180910390f35b34801561056357600080fd5b5061056c61133c565b005b34801561057a57600080fd5b506105836113dd565b6040516105909190613745565b60405180910390f35b3480156105a557600080fd5b506105ae611403565b6040516105bb9190613745565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190613841565b61142d565b6040516105f8919061371b565b60405180910390f35b34801561060d57600080fd5b5061061661144d565b6040516106239190613745565b60405180910390f35b34801561063857600080fd5b50610641611473565b60405161064e9190613605565b60405180910390f35b34801561066357600080fd5b5061067e600480360381019061067991906136c0565b611505565b60405161068b919061371b565b60405180910390f35b3480156106a057600080fd5b506106bb60048036038101906106b69190613841565b61157c565b005b3480156106c957600080fd5b506106e460048036038101906106df91906136c0565b611740565b6040516106f1919061371b565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c919061389a565b611763565b005b34801561072f57600080fd5b506107386118c4565b005b34801561074657600080fd5b5061074f611f80565b005b34801561075d57600080fd5b506107666120fc565b604051610773919061376f565b60405180910390f35b34801561078857600080fd5b50610791612102565b60405161079e919061376f565b60405180910390f35b3480156107b357600080fd5b506107ce60048036038101906107c991906138da565b612108565b6040516107db919061376f565b60405180910390f35b3480156107f057600080fd5b506107f961218f565b604051610806919061376f565b60405180910390f35b34801561081b57600080fd5b5061083660048036038101906108319190613841565b612195565b005b34801561084457600080fd5b5061085f600480360381019061085a919061389a565b612359565b005b34801561086d57600080fd5b506108886004803603810190610883919061391a565b612479565b005b34801561089657600080fd5b506108b160048036038101906108ac9190613841565b612531565b005b3480156108bf57600080fd5b506108c86125b4565b6040516108d591906139cc565b60405180910390f35b3480156108ea57600080fd5b506108f36125da565b604051610900919061376f565b60405180910390f35b6109116125e0565b737de8063e9fb43321d2100e8ddae5167f56a50060600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f991906139fc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa691906139fc565b6040518363ffffffff1660e01b8152600401610ac3929190613a29565b6020604051808303816000875af1158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0691906139fc565b9050610b13816001611763565b7347689fbae45816ea67c3c29bc46d2ff0961cb513601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507387b49d6a6910547493f841a95b4ed94d2a5942dd601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160136000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610bb8600a81905550618235600b81905550618235600c81905550618236600d8190555069d3c21bcecceda1000000600e81905550690a968163f0a57b400000600f819055507fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c860405160405180910390a150565b606060038054610daf90613a81565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddb90613a81565b8015610e285780601f10610dfd57610100808354040283529160200191610e28565b820191906000526020600020905b815481529060010190602001808311610e0b57829003601f168201915b5050505050905090565b600080610e3d61265e565b9050610e4a818585612666565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600254905090565b600047905060008111610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90613afe565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1682604051610ef990613b4f565b60006040518083038185875af1925050503d8060008114610f36576040519150601f19603f3d011682016040523d82523d6000602084013e610f3b565b606091505b5050905080610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690613bb0565b60405180910390fd5b5050565b600080610f8e61265e565b9050610f9b85828561282f565b610fa68585856128bb565b60019150509392505050565b60006012905090565b600080610fc661265e565b9050610fe7818585610fd88589612108565b610fe29190613bff565b612666565b600191505092915050565b601460009054906101000a900460ff1681565b61100d6125e0565b683635c9adc5dea00000811015611059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105090613c7f565b60405180910390fd5b6000600f54905081600f819055507f046078a3b350ab7ef8b49720ee84ad777c5172459d33cff8e353c3b9b04757ea8183604051611098929190613c9f565b60405180910390a15050565b6110ac6125e0565b6969e10de76676d08000008110156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f090613d3a565b60405180910390fd5b6a14adf4b7320334b9000000811115611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90613dcc565b60405180910390fd5b6000600e54905081600e819055507f35f2577625659032d553fbc001320996b756a5dae410a0b74e931934e020464b8183604051611186929190613c9f565b60405180910390a15050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c06125e0565b600954811115611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc90613e5e565b60405180910390fd5b6000811015611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090613eca565b60405180910390fd5b600a54810361128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490613f5c565b60405180910390fd5b6000600a54905081600a819055507f74dbbbe280ef27b79a8a0c449d5ae2ba7a31849103241d0f98df70bbc9d03e3781600a546040516112ce929190613c9f565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61132a6125e0565b6113346000612c82565b565b600c5481565b6113446125e0565b601460009054906101000a900460ff1615611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90613fc8565b60405180910390fd5b6001601460006101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60086020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461148290613a81565b80601f01602080910402602001604051908101604052809291908181526020018280546114ae90613a81565b80156114fb5780601f106114d0576101008083540402835291602001916114fb565b820191906000526020600020905b8154815290600101906020018083116114de57829003601f168201915b5050505050905090565b60008061151061265e565b9050600061151e8286612108565b905083811015611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a9061405a565b60405180910390fd5b6115708286868403612666565b60019250505092915050565b6115846125e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea906140ec565b60405180910390fd5b600060136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fa74e71df5980104def7b321d0fa7d4b885191d40a2ae420acb543c3eba542532816040516117359190613745565b60405180910390a150565b60008061174b61265e565b90506117588185856128bb565b600191505092915050565b61176b6125e0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d19061417e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87826040516118b8919061371b565b60405180910390a25050565b6001600560146101000a81548160ff02191690831515021790555060006118ea306112da565b90506000810361192f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192690614210565b60405180910390fd5b6000620186a0600280600b54611945919061425f565b61194f919061425f565b8361195a9190614290565b611964919061425f565b905061197a818361197591906142d2565b612d48565b6000479050600081036119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990614378565b60405180910390fd5b6000620186a06004600c546119d7919061425f565b836119e29190614290565b6119ec919061425f565b90506000620186a0600d5484611a029190614290565b611a0c919061425f565b90506000620186a06002600b54611a23919061425f565b85611a2e9190614290565b611a38919061425f565b90506000620186a06002600b54611a4f919061425f565b86611a5a9190614290565b611a64919061425f565b90506000620186a060036004600c54611a7d919061425f565b88611a889190614290565b611a929190614290565b611a9c919061425f565b9050611aa9308885612f8b565b611ae08183611ab89190613bff565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166130df565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b3d9190613745565b602060405180830381865afa158015611b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7e91906143ad565b905060008284611b8e9190613bff565b90506000806000831115611bdf5782670de0b6b3a764000087611bb19190614290565b611bbb919061425f565b915082670de0b6b3a764000086611bd29190614290565b611bdc919061425f565b90505b6000670de0b6b3a76400008386611bf69190614290565b611c00919061425f565b90506000670de0b6b3a76400008387611c199190614290565b611c23919061425f565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead846040518363ffffffff1660e01b8152600401611c849291906143da565b6020604051808303816000875af1158015611ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc79190614418565b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611d479291906143da565b6020604051808303816000875af1158015611d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8a9190614418565b506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c604051611dd390613b4f565b60006040518083038185875af1925050503d8060008114611e10576040519150601f19603f3d011682016040523d82523d6000602084013e611e15565b606091505b5050905080611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e50906144b7565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c604051611ea190613b4f565b60006040518083038185875af1925050503d8060008114611ede576040519150601f19603f3d011682016040523d82523d6000602084013e611ee3565b606091505b5050905080611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614549565b60405180910390fd5b7f073f67f6b2a495a773c8f33582c762d9c1a89fec310d1e2ce2808b4ff65d829060405160405180910390a1505050505050505050505050505050506000600560146101000a81548160ff021916908315150217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201391906139fc565b90508073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161206a9190613745565b602060405180830381865afa158015612087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ab91906143ad565b6040518263ffffffff1660e01b81526004016120c7919061376f565b600060405180830381600087803b1580156120e157600080fd5b505af11580156120f5573d6000803e3d6000fd5b5050505050565b600f5481565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b61219d6125e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361220c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612203906145db565b60405180910390fd5b600060136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fdccc025e6e980de101657e1295cfa32a304434c2ca37130de5942fb8fb2b390a8160405161234e9190613745565b60405180910390a150565b6123616125e0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c79061466d565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f33e99dbd8a2fdf021abaf8531c98838a37f8e85fd3cbf0e897047074f9c4ecf48260405161246d919061371b565b60405180910390a25050565b6124816125e0565b620186a08183856124929190613bff565b61249c9190613bff565b146124dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d3906146ff565b60405180910390fd5b82600b8190555081600c8190555080600d819055507f192b126d6d86e50716742827858f2c3edda14906a341f1fc234c27fc1e4c8f8b8383836040516125249392919061471f565b60405180910390a1505050565b6125396125e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259f906147c8565b60405180910390fd5b6125b181612c82565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6125e861265e565b73ffffffffffffffffffffffffffffffffffffffff16612606611403565b73ffffffffffffffffffffffffffffffffffffffff161461265c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265390614834565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cc906148c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273b90614958565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612822919061376f565b60405180910390a3505050565b600061283b8484612108565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146128b557818110156128a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289e906149c4565b60405180910390fd5b6128b48484848403612666565b5b50505050565b601460009054906101000a900460ff168061290857506128d9611403565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b612947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293e90614a56565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129e85750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156129fd576129f88383836132f5565b612c7d565b6000819050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aa35750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612be6576000620186a0600a5483612abc9190614290565b612ac6919061425f565b90508082612ad491906142d2565b9150600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bd957600e5482612b8d600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b865787612b88565b865b6112da565b612b979190613bff565b1115612bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bcf90614ae8565b60405180910390fd5b5b612be48530836132f5565b505b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c4c5750600560149054906101000a900460ff16155b8015612c625750600f54612c5f306112da565b10155b15612c7057612c6f6118c4565b5b612c7b8484836132f5565b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff811115612d6557612d64614b08565b5b604051908082528060200260200182016040528015612d935781602001602082028036833780820191505090505b5090503081600081518110612dab57612daa614b37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7691906139fc565b81600181518110612e8a57612e89614b37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ef130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612666565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f55959493929190614c5f565b600060405180830381600087803b158015612f6f57600080fd5b505af1158015612f83573d6000803e3d6000fd5b505050505050565b8273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612fe89291906143da565b6020604051808303816000875af1158015613007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302b9190614418565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198285856000806000426040518863ffffffff1660e01b815260040161309496959493929190614cb9565b60606040518083038185885af11580156130b2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130d79190614d1a565b505050505050565b6000600267ffffffffffffffff8111156130fc576130fb614b08565b5b60405190808252806020026020018201604052801561312a5781602001602082028036833780820191505090505b509050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561319a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131be91906139fc565b816000815181106131d2576131d1614b37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061322157613220614b37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008430426040518663ffffffff1660e01b81526004016132be9493929190614d6d565b6000604051808303818588803b1580156132d757600080fd5b505af11580156132eb573d6000803e3d6000fd5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335b90614e2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ca90614ebd565b60405180910390fd5b6133de83838361356b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345b90614f4f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613552919061376f565b60405180910390a3613565848484613570565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135af578082015181840152602081019050613594565b60008484015250505050565b6000601f19601f8301169050919050565b60006135d782613575565b6135e18185613580565b93506135f1818560208601613591565b6135fa816135bb565b840191505092915050565b6000602082019050818103600083015261361f81846135cc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136578261362c565b9050919050565b6136678161364c565b811461367257600080fd5b50565b6000813590506136848161365e565b92915050565b6000819050919050565b61369d8161368a565b81146136a857600080fd5b50565b6000813590506136ba81613694565b92915050565b600080604083850312156136d7576136d6613627565b5b60006136e585828601613675565b92505060206136f6858286016136ab565b9150509250929050565b60008115159050919050565b61371581613700565b82525050565b6000602082019050613730600083018461370c565b92915050565b61373f8161364c565b82525050565b600060208201905061375a6000830184613736565b92915050565b6137698161368a565b82525050565b60006020820190506137846000830184613760565b92915050565b6000806000606084860312156137a3576137a2613627565b5b60006137b186828701613675565b93505060206137c286828701613675565b92505060406137d3868287016136ab565b9150509250925092565b600060ff82169050919050565b6137f3816137dd565b82525050565b600060208201905061380e60008301846137ea565b92915050565b60006020828403121561382a57613829613627565b5b6000613838848285016136ab565b91505092915050565b60006020828403121561385757613856613627565b5b600061386584828501613675565b91505092915050565b61387781613700565b811461388257600080fd5b50565b6000813590506138948161386e565b92915050565b600080604083850312156138b1576138b0613627565b5b60006138bf85828601613675565b92505060206138d085828601613885565b9150509250929050565b600080604083850312156138f1576138f0613627565b5b60006138ff85828601613675565b925050602061391085828601613675565b9150509250929050565b60008060006060848603121561393357613932613627565b5b6000613941868287016136ab565b9350506020613952868287016136ab565b9250506040613963868287016136ab565b9150509250925092565b6000819050919050565b600061399261398d6139888461362c565b61396d565b61362c565b9050919050565b60006139a482613977565b9050919050565b60006139b682613999565b9050919050565b6139c6816139ab565b82525050565b60006020820190506139e160008301846139bd565b92915050565b6000815190506139f68161365e565b92915050565b600060208284031215613a1257613a11613627565b5b6000613a20848285016139e7565b91505092915050565b6000604082019050613a3e6000830185613736565b613a4b6020830184613736565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613a9957607f821691505b602082108103613aac57613aab613a52565b5b50919050565b7f5837473a204e6f2045544820746f207769746864726177000000000000000000600082015250565b6000613ae8601783613580565b9150613af382613ab2565b602082019050919050565b60006020820190508181036000830152613b1781613adb565b9050919050565b600081905092915050565b50565b6000613b39600083613b1e565b9150613b4482613b29565b600082019050919050565b6000613b5a82613b2c565b9150819050919050565b7f5837473a20455448207472616e73666572206661696c65640000000000000000600082015250565b6000613b9a601883613580565b9150613ba582613b64565b602082019050919050565b60006020820190508181036000830152613bc981613b8d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c0a8261368a565b9150613c158361368a565b9250828201905080821115613c2d57613c2c613bd0565b5b92915050565b7f5837473a20313030302058374720697320746865206d696e6d756d0000000000600082015250565b6000613c69601b83613580565b9150613c7482613c33565b602082019050919050565b60006020820190508181036000830152613c9881613c5c565b9050919050565b6000604082019050613cb46000830185613760565b613cc16020830184613760565b9392505050565b7f5837473a204d61782077616c6c6574206973206c65737320746865206d696e6960008201527f6d756d207468656e20302c3525206f6620746f74616c537570706c7900000000602082015250565b6000613d24603c83613580565b9150613d2f82613cc8565b604082019050919050565b60006020820190508181036000830152613d5381613d17565b9050919050565b7f5837473a204d61782077616c6c6574206973206d6f726520746865206d61786960008201527f6d756d207468616e20323525206f6620746f74616c537570706c790000000000602082015250565b6000613db6603b83613580565b9150613dc182613d5a565b604082019050919050565b60006020820190508181036000830152613de581613da9565b9050919050565b7f5837473a204665652063616e206e6f742062652073657420686967686572207460008201527f68656e20746865206d6178696d756d206f662037250000000000000000000000602082015250565b6000613e48603583613580565b9150613e5382613dec565b604082019050919050565b60006020820190508181036000830152613e7781613e3b565b9050919050565b7f5837473a20466565206973206c657373207468616e2030000000000000000000600082015250565b6000613eb4601783613580565b9150613ebf82613e7e565b602082019050919050565b60006020820190508181036000830152613ee381613ea7565b9050919050565b7f5837473a2046656520697320616c726561647920746861742070657263656e7460008201527f6167650000000000000000000000000000000000000000000000000000000000602082015250565b6000613f46602383613580565b9150613f5182613eea565b604082019050919050565b60006020820190508181036000830152613f7581613f39565b9050919050565b7f5837473a2054726164696e6720697320616c726561647920656e61626c656400600082015250565b6000613fb2601f83613580565b9150613fbd82613f7c565b602082019050919050565b60006020820190508181036000830152613fe181613fa5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614044602583613580565b915061404f82613fe8565b604082019050919050565b6000602082019050818103600083015261407381614037565b9050919050565b7f5837473a204e65772074726561737572792063616e206e6f742062652061646460008201527f7265737320307800000000000000000000000000000000000000000000000000602082015250565b60006140d6602783613580565b91506140e18261407a565b604082019050919050565b60006020820190508181036000830152614105816140c9565b9050919050565b7f5837473a20284e65772920414d4d20616464726573732063616e206e6f74206260008201527f6520616464726573732030780000000000000000000000000000000000000000602082015250565b6000614168602c83613580565b91506141738261410c565b604082019050919050565b600060208201905081810360008301526141978161415b565b9050919050565b7f5837473a2063616e6e6f742070726f636573732066656573206966205837472060008201527f62616c616e636520697320300000000000000000000000000000000000000000602082015250565b60006141fa602c83613580565b91506142058261419e565b604082019050919050565b60006020820190508181036000830152614229816141ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061426a8261368a565b91506142758361368a565b92508261428557614284614230565b5b828204905092915050565b600061429b8261368a565b91506142a68361368a565b92508282026142b48161368a565b915082820484148315176142cb576142ca613bd0565b5b5092915050565b60006142dd8261368a565b91506142e88361368a565b9250828203905081811115614300576142ff613bd0565b5b92915050565b7f5837473a2063616e6e6f742070726f636573732066656573206966204554482060008201527f62616c616e636520697320300000000000000000000000000000000000000000602082015250565b6000614362602c83613580565b915061436d82614306565b604082019050919050565b6000602082019050818103600083015261439181614355565b9050919050565b6000815190506143a781613694565b92915050565b6000602082840312156143c3576143c2613627565b5b60006143d184828501614398565b91505092915050565b60006040820190506143ef6000830185613736565b6143fc6020830184613760565b9392505050565b6000815190506144128161386e565b92915050565b60006020828403121561442e5761442d613627565b5b600061443c84828501614403565b91505092915050565b7f5837473a205472616e7366657220746f2074726561737572792077616c6c657460008201527f206661696c65642e000000000000000000000000000000000000000000000000602082015250565b60006144a1602883613580565b91506144ac82614445565b604082019050919050565b600060208201905081810360008301526144d081614494565b9050919050565b7f5837473a205472616e7366657220746f206465762077616c6c6574206661696c60008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000614533602383613580565b915061453e826144d7565b604082019050919050565b6000602082019050818103600083015261456281614526565b9050919050565b7f5837473a204e6577206f7065726174696f6e732077616c6c65742063616e206e60008201527f6f74206265206164647265737320307800000000000000000000000000000000602082015250565b60006145c5603083613580565b91506145d082614569565b604082019050919050565b600060208201905081810360008301526145f4816145b8565b9050919050565b7f5837473a20284e657729206578636c7564656420616464726573732063616e2060008201527f6e6f742062652061646472657373203078000000000000000000000000000000602082015250565b6000614657603183613580565b9150614662826145fb565b604082019050919050565b600060208201905081810360008301526146868161464a565b9050919050565b7f5837473a2053756d6d6564206665652073686172657320617265206e6f74203160008201527f3030252028313030303030292100000000000000000000000000000000000000602082015250565b60006146e9602d83613580565b91506146f48261468d565b604082019050919050565b60006020820190508181036000830152614718816146dc565b9050919050565b60006060820190506147346000830186613760565b6147416020830185613760565b61474e6040830184613760565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147b2602683613580565b91506147bd82614756565b604082019050919050565b600060208201905081810360008301526147e1816147a5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061481e602083613580565b9150614829826147e8565b602082019050919050565b6000602082019050818103600083015261484d81614811565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148b0602483613580565b91506148bb82614854565b604082019050919050565b600060208201905081810360008301526148df816148a3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614942602283613580565b915061494d826148e6565b604082019050919050565b6000602082019050818103600083015261497181614935565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006149ae601d83613580565b91506149b982614978565b602082019050919050565b600060208201905081810360008301526149dd816149a1565b9050919050565b7f5837473a2054726164696e672077696c6c20626520656e61626c65642077686560008201527f6e2074686520616d6d2070616972206973207365742e00000000000000000000602082015250565b6000614a40603683613580565b9150614a4b826149e4565b604082019050919050565b60006020820190508181036000830152614a6f81614a33565b9050919050565b7f5837473a207472616e73616374696f6e2065786365656473206d61782077616c60008201527f6c65740000000000000000000000000000000000000000000000000000000000602082015250565b6000614ad2602383613580565b9150614add82614a76565b604082019050919050565b60006020820190508181036000830152614b0181614ac5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614b8b614b86614b8184614b66565b61396d565b61368a565b9050919050565b614b9b81614b70565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614bd68161364c565b82525050565b6000614be88383614bcd565b60208301905092915050565b6000602082019050919050565b6000614c0c82614ba1565b614c168185614bac565b9350614c2183614bbd565b8060005b83811015614c52578151614c398882614bdc565b9750614c4483614bf4565b925050600181019050614c25565b5085935050505092915050565b600060a082019050614c746000830188613760565b614c816020830187614b92565b8181036040830152614c938186614c01565b9050614ca26060830185613736565b614caf6080830184613760565b9695505050505050565b600060c082019050614cce6000830189613736565b614cdb6020830188613760565b614ce86040830187614b92565b614cf56060830186614b92565b614d026080830185613736565b614d0f60a0830184613760565b979650505050505050565b600080600060608486031215614d3357614d32613627565b5b6000614d4186828701614398565b9350506020614d5286828701614398565b9250506040614d6386828701614398565b9150509250925092565b6000608082019050614d826000830187614b92565b8181036020830152614d948186614c01565b9050614da36040830185613736565b614db06060830184613760565b95945050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614e15602583613580565b9150614e2082614db9565b604082019050919050565b60006020820190508181036000830152614e4481614e08565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ea7602383613580565b9150614eb282614e4b565b604082019050919050565b60006020820190508181036000830152614ed681614e9a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614f39602683613580565b9150614f4482614edd565b604082019050919050565b60006020820190508181036000830152614f6881614f2c565b905091905056fea26469706673582212203ae418932636ff8ebcfd9e8758aedd92ffe3105584b11f65f0b57608f38ad57064736f6c63430008140033

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.