ETH Price: $3,304.90 (-1.86%)
Gas: 1 Gwei

Token

Tired of Pepe (TOP)
 

Overview

Max Total Supply

100,000,000 TOP

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000231527873 TOP

Value
$0.00
0xc1f2b13e5cf3cb83d99dce326f5179a58f780a6a
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:
TOP

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : TOP.sol
/*

$TOP - Tired of Pepe

$$$$$$$$\ $$$$$$\ $$$$$$$\  $$$$$$$$\ $$$$$$$\         $$$$$$\  $$$$$$$$\       $$$$$$$\  $$$$$$$$\ $$$$$$$\  $$$$$$$$\ 
\__$$  __|\_$$  _|$$  __$$\ $$  _____|$$  __$$\       $$  __$$\ $$  _____|      $$  __$$\ $$  _____|$$  __$$\ $$  _____|
   $$ |     $$ |  $$ |  $$ |$$ |      $$ |  $$ |      $$ /  $$ |$$ |            $$ |  $$ |$$ |      $$ |  $$ |$$ |      
   $$ |     $$ |  $$$$$$$  |$$$$$\    $$ |  $$ |      $$ |  $$ |$$$$$\          $$$$$$$  |$$$$$\    $$$$$$$  |$$$$$\    
   $$ |     $$ |  $$  __$$< $$  __|   $$ |  $$ |      $$ |  $$ |$$  __|         $$  ____/ $$  __|   $$  ____/ $$  __|   
   $$ |     $$ |  $$ |  $$ |$$ |      $$ |  $$ |      $$ |  $$ |$$ |            $$ |      $$ |      $$ |      $$ |      
   $$ |   $$$$$$\ $$ |  $$ |$$$$$$$$\ $$$$$$$  |       $$$$$$  |$$ |            $$ |      $$$$$$$$\ $$ |      $$$$$$$$\ 
   \__|   \______|\__|  \__|\________|\_______/        \______/ \__|            \__|      \________|\__|      \________|
                                                                                                                        

Over 100,000 Pepe projects have launched this year. It’s time for Pepe to find a new home. A retirement home.

Website: https://www.tiredofpepe.com/
Twitter: https://twitter.com/TiredOfPepe
Portal: https://t.me/tiredofpepe

*/
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.0;

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

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

// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

pragma solidity ^0.8.19;

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

    function WETH() external pure returns (address);

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address UNISWAP_V2_PAIR);
}

contract TOP is IERC20, Ownable {

    event Reflect(uint256 amountReflected, uint256 newTotalProportion);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    uint256 constant MAX_FEE = 10;

    IUniswapV2Router02 public constant UNISWAP_V2_ROUTER =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable UNISWAP_V2_PAIR;
    mapping(address => bool) public automatedMarketMakerPairs;

    struct Fee {
        uint8 reflection;
        uint8 marketing;
        uint8 lp;
        uint8 buyback;
        uint8 burn;
        uint128 total;
    }

    string _name = "Tired of Pepe";
    string _symbol = "TOP";

    uint256 _totalSupply = 100_000_000 ether;
    uint256 public _maxTxAmount = _totalSupply * 3 / 100;
    uint256 public _maxWalletAmount = _totalSupply * 3 / 100;

    /* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */
    mapping(address => uint256) public _rOwned;
    uint256 public _totalProportion = _totalSupply;

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

    bool public tradingActive = false;
    bool public transferDelayEnabled = false;
    bool public limitsEnabled = true;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isLimitExempt;

    Fee public buyFee = Fee({reflection: 0, marketing: 20, lp: 0, buyback: 0, burn: 0, total: 20});
    Fee public sellFee = Fee({reflection: 0, marketing: 30, lp: 0, buyback: 0, burn: 0, total: 30});

    address private marketingFeeReceiver;
    address private lpFeeReceiver;
    address private buybackFeeReceiver;

    bool public claimingFees = false;
    uint256 public swapThreshold = (_totalSupply * 5) / 1000;
    bool inSwap;
    mapping(address => bool) public blacklists;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        // create uniswap pair
        address _uniswapPair =
            IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH());
        UNISWAP_V2_PAIR = _uniswapPair;
        _setAutomatedMarketMakerPair(address(_uniswapPair), true);

        _allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max;
        _allowances[address(this)][owner()] = type(uint256).max;

        isLimitExempt[address(this)] = true;
        isLimitExempt[DEAD] = true;
        isLimitExempt[owner()] = true;
        isLimitExempt[UNISWAP_V2_PAIR] = true;
        
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[owner()] = true;

        marketingFeeReceiver = 0x6dAD7d05FC743C730E78947fE2beF8435745946b;
        lpFeeReceiver = 0x6dAD7d05FC743C730E78947fE2beF8435745946b;
        buybackFeeReceiver = 0x6dAD7d05FC743C730E78947fE2beF8435745946b;

        _rOwned[tx.origin] = _totalSupply;
        emit Transfer(address(0), tx.origin, _totalSupply);
    }

    receive() external payable {}

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(_allowances[sender][msg.sender] >= amount, "ERC20: insufficient allowance");
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

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

    function decimals() external pure returns (uint8) {
        return 18;
    }

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

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

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

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

    function tokensToProportion(uint256 tokens) public view returns (uint256) {
        return tokens * _totalProportion / _totalSupply;
    }

    function tokenFromReflection(uint256 proportion) public view returns (uint256) {
        return proportion * _totalSupply / _totalProportion;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    function enableTrading() external onlyOwner {
        tradingActive = true;
        claimingFees = true;
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((_totalSupply * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        _maxTxAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((_totalSupply * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        _maxWalletAmount = newNum * (10**18);
    }

    function clearStuckBalance() external onlyOwner {
        (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
        require(success);
    }

    function clearStuckToken() external onlyOwner {
        _transferFrom(address(this), msg.sender, balanceOf(address(this)));
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        claimingFees = _enabled;
        swapThreshold = _amount;
    }

    function changeFees(
        uint8 reflectionFeeBuy,
        uint8 marketingFeeBuy,
        uint8 lpFeeBuy,
        uint8 buybackFeeBuy,
        uint8 burnFeeBuy,
        uint8 reflectionFeeSell,
        uint8 marketingFeeSell,
        uint8 lpFeeSell,
        uint8 buybackFeeSell,
        uint8 burnFeeSell
    ) external onlyOwner {
        uint128 __totalBuyFee = reflectionFeeBuy + marketingFeeBuy + lpFeeBuy + buybackFeeBuy + burnFeeBuy;
        uint128 __totalSellFee = reflectionFeeSell + marketingFeeSell + lpFeeSell + buybackFeeSell + burnFeeSell;

        buyFee = Fee({
            reflection: reflectionFeeBuy,
            marketing: marketingFeeBuy,
            lp: lpFeeBuy,
            buyback: buybackFeeBuy,
            burn: burnFeeBuy,
            total: __totalBuyFee
        });

        sellFee = Fee({
            reflection: reflectionFeeSell,
            marketing: marketingFeeSell,
            lp: lpFeeSell,
            buyback: buybackFeeSell,
            burn: burnFeeSell,
            total: __totalSellFee
        });
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setisLimitExempt(address holder, bool exempt) external onlyOwner {
        isLimitExempt[holder] = exempt;
    }

    function setFeeReceivers(address m_, address lp_, address b_) external onlyOwner {
        marketingFeeReceiver = m_;
        lpFeeReceiver = lp_;
        buybackFeeReceiver = b_;
    }

    function setLimitsEnabled(bool e_) external onlyOwner {
        limitsEnabled = e_;
    }

    // Set Transfer delay
    function disableTransferDelay(bool e_) external onlyOwner returns (bool) {
        transferDelayEnabled = e_;
        return true;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!blacklists[recipient] && !blacklists[sender], "Blacklisted");

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (limitsEnabled) {
            if (!tradingActive) 
            {
                require(
                    isFeeExempt[sender] || isFeeExempt[recipient],
                    "Trading is not active."
                );
            }

            //when buy
            if (automatedMarketMakerPairs[sender] && !isLimitExempt[recipient]) 
            {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
                require(amount + balanceOf(recipient) <= _maxWalletAmount, "Max wallet exceeded");
            }
            //when sell
            else if (automatedMarketMakerPairs[recipient] && !isLimitExempt[sender])
            {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            else if (!isLimitExempt[recipient]) 
            {
                require(amount + balanceOf(recipient) <= _maxWalletAmount, "Max wallet exceeded");
            }
            
            // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
            if (transferDelayEnabled) {
                if (
                    recipient != owner() &&
                    recipient != address(UNISWAP_V2_ROUTER) &&
                    recipient != UNISWAP_V2_PAIR
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] + 1 <
                            block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per two blocks allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }
        }

        if (_shouldSwapBack()) {
            _swapBack();
        }

        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;

        uint256 proportionReceived = _shouldTakeFee(sender, recipient)
            ? _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, proportionAmount)
            : proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionReceived;

        emit Transfer(sender, recipient, tokenFromReflection(proportionReceived));
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 proportionAmount = tokensToProportion(amount);
        require(_rOwned[sender] >= proportionAmount, "Insufficient Balance");
        _rOwned[sender] = _rOwned[sender] - proportionAmount;
        _rOwned[recipient] = _rOwned[recipient] + proportionAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _takeFeeInProportions(bool buying, address sender, uint256 proportionAmount) internal returns (uint256) {
        Fee memory __buyFee = buyFee;
        Fee memory __sellFee = sellFee;

        uint256 proportionFeeAmount =
            buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100;

        // reflect
        uint256 proportionReflected = buying == true
            ? proportionFeeAmount * __buyFee.reflection / __buyFee.total
            : proportionFeeAmount * __sellFee.reflection / __sellFee.total;

        _totalProportion = _totalProportion - proportionReflected;

        // take fees
        uint256 _proportionToContract = proportionFeeAmount - proportionReflected;
        if (_proportionToContract > 0) {
            _rOwned[address(this)] = _rOwned[address(this)] + _proportionToContract;

            emit Transfer(sender, address(this), tokenFromReflection(_proportionToContract));
        }
        emit Reflect(proportionReflected, _totalProportion);
        return proportionAmount - proportionFeeAmount;
    }

    function _shouldSwapBack() internal view returns (bool) {
        return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold;
    }

    function _swapBack() internal swapping {
        Fee memory __sellFee = sellFee;

        uint256 __swapThreshold = swapThreshold;
        uint256 amountToBurn = __swapThreshold * __sellFee.burn / __sellFee.total;
        uint256 amountToSwap = __swapThreshold - amountToBurn;
        approve(address(UNISWAP_V2_ROUTER), amountToSwap);

        if(amountToBurn > 0)
        {
            // burn
            _transferFrom(address(this), DEAD, amountToBurn);
        }

        // swap
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = UNISWAP_V2_ROUTER.WETH();

        UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap, 0, path, address(this), block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalSwapFee = __sellFee.total - __sellFee.reflection - __sellFee.burn;
        //uint256 amountETHMarketing = amountETH * __sellFee.marketing / totalSwapFee;
        uint256 amountETHLP = amountETH * __sellFee.lp / totalSwapFee;
        uint256 amountETHBuyback = amountETH * __sellFee.buyback / totalSwapFee;

        // send
        (bool tmpSuccess,) = payable(lpFeeReceiver).call{value: amountETHLP}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}("");
        (tmpSuccess,) = address(marketingFeeReceiver).call{value: address(this).balance}("");
    }

    function _shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"reflectionFeeBuy","type":"uint8"},{"internalType":"uint8","name":"marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"lpFeeBuy","type":"uint8"},{"internalType":"uint8","name":"buybackFeeBuy","type":"uint8"},{"internalType":"uint8","name":"burnFeeBuy","type":"uint8"},{"internalType":"uint8","name":"reflectionFeeSell","type":"uint8"},{"internalType":"uint8","name":"marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"lpFeeSell","type":"uint8"},{"internalType":"uint8","name":"buybackFeeSell","type":"uint8"},{"internalType":"uint8","name":"burnFeeSell","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"},{"internalType":"address","name":"lp_","type":"address"},{"internalType":"address","name":"b_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"}],"name":"setLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600d81526020017f5469726564206f66205065706500000000000000000000000000000000000000815250600290816200004a919062000faf565b506040518060400160405280600381526020017f544f5000000000000000000000000000000000000000000000000000000000008152506003908162000091919062000faf565b506a52b7d2dcc80cd2e400000060045560646003600454620000b49190620010c5565b620000c091906200113f565b60055560646003600454620000d69190620010c5565b620000e291906200113f565b6006556004546008556000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff0219169083151502179055506040518060c00160405280600060ff168152602001601460ff168152602001600060ff168152602001600060ff168152602001600060ff16815260200160146fffffffffffffffffffffffffffffffff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506040518060c00160405280600060ff168152602001601e60ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001601e6fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050506000601160146101000a81548160ff0219169083151502179055506103e86005600454620003e39190620010c5565b620003ef91906200113f565b601255348015620003ff57600080fd5b50620004206200041462000b9f60201b60201c565b62000ba760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000482573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a89190620011e1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200054a9190620011e1565b6040518363ffffffff1660e01b81526004016200056992919062001224565b6020604051808303816000875af115801562000589573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005af9190620011e1565b90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620005f881600162000c6b60201b60201c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006200071f62000d0c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200082562000d0c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200099862000d0c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550736dad7d05fc743c730e78947fe2bef8435745946b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736dad7d05fc743c730e78947fe2bef8435745946b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736dad7d05fc743c730e78947fe2bef8435745946b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000b90919062001262565b60405180910390a3506200127f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000db757607f821691505b60208210810362000dcd5762000dcc62000d6f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000e377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000df8565b62000e43868362000df8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e9062000e8a62000e848462000e5b565b62000e65565b62000e5b565b9050919050565b6000819050919050565b62000eac8362000e6f565b62000ec462000ebb8262000e97565b84845462000e05565b825550505050565b600090565b62000edb62000ecc565b62000ee881848462000ea1565b505050565b5b8181101562000f105762000f0460008262000ed1565b60018101905062000eee565b5050565b601f82111562000f5f5762000f298162000dd3565b62000f348462000de8565b8101602085101562000f44578190505b62000f5c62000f538562000de8565b83018262000eed565b50505b505050565b600082821c905092915050565b600062000f846000198460080262000f64565b1980831691505092915050565b600062000f9f838362000f71565b9150826002028217905092915050565b62000fba8262000d35565b67ffffffffffffffff81111562000fd65762000fd562000d40565b5b62000fe2825462000d9e565b62000fef82828562000f14565b600060209050601f83116001811462001027576000841562001012578287015190505b6200101e858262000f91565b8655506200108e565b601f198416620010378662000dd3565b60005b8281101562001061578489015182556001820191506020850194506020810190506200103a565b868310156200108157848901516200107d601f89168262000f71565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010d28262000e5b565b9150620010df8362000e5b565b9250828202620010ef8162000e5b565b9150828204841483151762001109576200110862001096565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200114c8262000e5b565b9150620011598362000e5b565b9250826200116c576200116b62001110565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011a9826200117c565b9050919050565b620011bb816200119c565b8114620011c757600080fd5b50565b600081519050620011db81620011b0565b92915050565b600060208284031215620011fa57620011f962001177565b5b60006200120a84828501620011ca565b91505092915050565b6200121e816200119c565b82525050565b60006040820190506200123b600083018562001213565b6200124a602083018462001213565b9392505050565b6200125c8162000e5b565b82525050565b600060208201905062001279600083018462001251565b92915050565b6080516145df620012b7600039600081816114c001528181611b89015281816121c80152818161243e015261293a01526145df6000f3fe6080604052600436106102765760003560e01c8063658d4b7f1161014f578063b0f7ec38116100c1578063d7c010321161007a578063d7c0103214610993578063d85a2828146109bc578063dd62ed3e146109d3578063df20fd4914610a10578063f2fde38b14610a39578063f40acc3d14610a625761027d565b8063b0f7ec3814610883578063b62496f5146108ae578063bbc0c742146108eb578063c18bc19514610916578063c38a31de1461093f578063c876d0b9146109685761027d565b80638a8c523c116101135780638a8c523c146107855780638da5cb5b1461079c57806395d89b41146107c75780639a7a23d6146107f2578063a82ed9ec1461081b578063a9059cbb146108465761027d565b8063658d4b7f146106b25780636c0a24eb146106db57806370a0823114610706578063715018a6146107435780637d1db4a51461075a5761027d565b80632b14ca56116101e8578063364333f4116101ac578063364333f41461059f578063404e5129146105b657806341aea9de146105df57806345ce5365146106085780634706240214610645578063571ac8b0146106755761027d565b80632b14ca561461049f5780632d838119146104cf578063313ce5671461050c57806334b86560146105375780633582ad23146105745761027d565b8063178002871161023a578063178002871461038f57806318160ddd146103ba578063203e727e146103e557806323b872dd1461040e57806324c390231461044b5780632b112e49146104745761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d85780630cfc15f91461031557806316c02129146103525761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a8d565b6040516102a491906134be565b60405180910390f35b3480156102b957600080fd5b506102c2610a93565b6040516102cf9190613569565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061361a565b610b25565b60405161030c9190613675565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613690565b610c17565b60405161034991906134be565b60405180910390f35b34801561035e57600080fd5b5061037960048036038101906103749190613690565b610c2f565b6040516103869190613675565b60405180910390f35b34801561039b57600080fd5b506103a4610c4f565b6040516103b191906134be565b60405180910390f35b3480156103c657600080fd5b506103cf610c55565b6040516103dc91906134be565b60405180910390f35b3480156103f157600080fd5b5061040c600480360381019061040791906136bd565b610c5f565b005b34801561041a57600080fd5b50610435600480360381019061043091906136ea565b610cf5565b6040516104429190613675565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190613769565b610f76565b005b34801561048057600080fd5b50610489610fd9565b60405161049691906134be565b60405180910390f35b3480156104ab57600080fd5b506104b461100c565b6040516104c6969594939291906137f0565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f191906136bd565b611093565b60405161050391906134be565b60405180910390f35b34801561051857600080fd5b506105216110b7565b60405161052e9190613851565b60405180910390f35b34801561054357600080fd5b5061055e6004803603810190610559919061386c565b6110c0565b60405161056b9190613675565b60405180910390f35b34801561058057600080fd5b506105896110ed565b6040516105969190613675565b60405180910390f35b3480156105ab57600080fd5b506105b4611100565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190613769565b611181565b005b3480156105eb57600080fd5b506106066004803603810190610601919061386c565b6111e4565b005b34801561061457600080fd5b5061062f600480360381019061062a91906136bd565b611209565b60405161063c91906134be565b60405180910390f35b34801561065157600080fd5b5061065a61122d565b60405161066c969594939291906137f0565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190613690565b6112b4565b6040516106a99190613675565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190613769565b6112e7565b005b3480156106e757600080fd5b506106f061134a565b6040516106fd91906134be565b60405180910390f35b34801561071257600080fd5b5061072d60048036038101906107289190613690565b611350565b60405161073a91906134be565b60405180910390f35b34801561074f57600080fd5b506107586113a1565b005b34801561076657600080fd5b5061076f6113b5565b60405161077c91906134be565b60405180910390f35b34801561079157600080fd5b5061079a6113bb565b005b3480156107a857600080fd5b506107b16113fb565b6040516107be91906138a8565b60405180910390f35b3480156107d357600080fd5b506107dc611424565b6040516107e99190613569565b60405180910390f35b3480156107fe57600080fd5b5061081960048036038101906108149190613769565b6114b6565b005b34801561082757600080fd5b5061083061155a565b60405161083d9190613922565b60405180910390f35b34801561085257600080fd5b5061086d6004803603810190610868919061361a565b611572565b60405161087a9190613675565b60405180910390f35b34801561088f57600080fd5b50610898611587565b6040516108a59190613675565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d09190613690565b61159a565b6040516108e29190613675565b60405180910390f35b3480156108f757600080fd5b506109006115ba565b60405161090d9190613675565b60405180910390f35b34801561092257600080fd5b5061093d600480360381019061093891906136bd565b6115cd565b005b34801561094b57600080fd5b5061096660048036038101906109619190613969565b611663565b005b34801561097457600080fd5b5061097d61194f565b60405161098a9190613675565b60405180910390f35b34801561099f57600080fd5b506109ba60048036038101906109b59190613a48565b611962565b005b3480156109c857600080fd5b506109d1611a32565b005b3480156109df57600080fd5b506109fa60048036038101906109f59190613a9b565b611a50565b604051610a0791906134be565b60405180910390f35b348015610a1c57600080fd5b50610a376004803603810190610a329190613adb565b611ad7565b005b348015610a4557600080fd5b50610a606004803603810190610a5b9190613690565b611b04565b005b348015610a6e57600080fd5b50610a77611b87565b604051610a8491906138a8565b60405180910390f35b60125481565b606060028054610aa290613b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ace90613b4a565b8015610b1b5780601f10610af057610100808354040283529160200191610b1b565b820191906000526020600020905b815481529060010190602001808311610afe57829003601f168201915b5050505050905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c0591906134be565b60405180910390a36001905092915050565b60076020528060005260406000206000915090505481565b60146020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600454905090565b610c67611bab565b670de0b6b3a76400006103e86001600454610c829190613baa565b610c8c9190613c1b565b610c969190613c1b565b811015610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf90613cbe565b60405180910390fd5b670de0b6b3a764000081610cec9190613baa565b60058190555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f625781600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090613d2a565b60405180910390fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ee19190613d4a565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f6d848484611c29565b90509392505050565b610f7e611bab565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610fe56000611350565b610ff061dead611350565b600454610ffd9190613d4a565b6110079190613d4a565b905090565b600e8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b6000600854600454836110a69190613baa565b6110b09190613c1b565b9050919050565b60006012905090565b60006110ca611bab565b81600a60016101000a81548160ff02191690831515021790555060019050919050565b600a60029054906101000a900460ff1681565b611108611bab565b60003373ffffffffffffffffffffffffffffffffffffffff164760405161112e90613daf565b60006040518083038185875af1925050503d806000811461116b576040519150601f19603f3d011682016040523d82523d6000602084013e611170565b606091505b505090508061117e57600080fd5b50565b611189611bab565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6111ec611bab565b80600a60026101000a81548160ff02191690831515021790555050565b60006004546008548361121c9190613baa565b6112269190613c1b565b9050919050565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b60006112e0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b25565b9050919050565b6112ef611bab565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60065481565b600061139a600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611093565b9050919050565b6113a9611bab565b6113b360006125ac565b565b60055481565b6113c3611bab565b6001600a60006101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461143390613b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461145f90613b4a565b80156114ac5780601f10611481576101008083540402835291602001916114ac565b820191906000526020600020905b81548152906001019060200180831161148f57829003601f168201915b5050505050905090565b6114be611bab565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390613e36565b60405180910390fd5b6115568282612670565b5050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600061157f338484611c29565b905092915050565b601160149054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b6115d5611bab565b670de0b6b3a76400006103e860056004546115f09190613baa565b6115fa9190613c1b565b6116049190613c1b565b811015611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d90613ec8565b60405180910390fd5b670de0b6b3a76400008161165a9190613baa565b60068190555050565b61166b611bab565b600086888a8c8e61167c9190613ee8565b6116869190613ee8565b6116909190613ee8565b61169a9190613ee8565b60ff1690506000828486888a6116b09190613ee8565b6116ba9190613ee8565b6116c49190613ee8565b6116ce9190613ee8565b60ff1690506040518060c001604052808d60ff1681526020018c60ff1681526020018b60ff1681526020018a60ff1681526020018960ff168152602001836fffffffffffffffffffffffffffffffff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506040518060c001604052808860ff1681526020018760ff1681526020018660ff1681526020018560ff1681526020018460ff168152602001826fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050505050505050505050505050565b600a60019054906101000a900460ff1681565b61196a611bab565b82600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611a3a611bab565b611a4d3033611a4830611350565b611c29565b50565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611adf611bab565b81601160146101000a81548160ff021916908315150217905550806012819055505050565b611b0c611bab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7290613f8f565b60405180910390fd5b611b84816125ac565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b611bb3612711565b73ffffffffffffffffffffffffffffffffffffffff16611bd16113fb565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613ffb565b60405180910390fd5b565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ccf5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590614067565b60405180910390fd5b601360009054906101000a900460ff1615611d3557611d2e848484612719565b90506125a5565b600a60029054906101000a900460ff16156122f057600a60009054906101000a900460ff16611e3f57600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dff5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e35906140d3565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee25750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f8957600554821115611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614165565b60405180910390fd5b600654611f3884611350565b83611f439190614185565b1115611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b90614205565b60405180910390fd5b612127565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561202c5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207b57600554821115612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d90614165565b60405180910390fd5b612126565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612125576006546120d884611350565b836120e39190614185565b1115612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90614205565b60405180910390fd5b5b5b5b600a60019054906101000a900460ff16156122ef576121446113fb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121bf5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561221757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ee57436001601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122699190614185565b106122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a0906142bd565b60405180910390fd5b43601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b6122f8612936565b15612306576123056129d4565b5b600061231183611209565b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c90614329565b60405180910390fd5b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e09190613d4a565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061242f8686612fb0565b61243957816124a1565b6124a07f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612496576000612499565b60015b878461305e565b5b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ee9190614185565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61258984611093565b60405161259691906134be565b60405180910390a36001925050505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600033905090565b60008061272583611209565b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156127a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a090614329565b60405180910390fd5b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127f49190613d4a565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128829190614185565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161292291906134be565b60405180910390a360019150509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156129a15750601360009054906101000a900460ff16155b80156129b95750601160149054906101000a900460ff165b80156129cf57506012546129cc30611350565b10155b905090565b6001601360006101000a81548160ff0219169083151502179055506000600e6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000601254905060008260a001516fffffffffffffffffffffffffffffffff16836080015160ff1683612b0e9190613baa565b612b189190613c1b565b905060008183612b289190613d4a565b9050612b48737a250d5630b4cf539739df2c5dacb4c659f2488d82610b25565b506000821115612b6157612b5f3061dead84611c29565b505b6000600267ffffffffffffffff811115612b7e57612b7d614349565b5b604051908082528060200260200182016040528015612bac5781602001602082028036833780820191505090505b5090503081600081518110612bc457612bc3614378565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8191906143bc565b81600181518110612c9557612c94614378565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d259594939291906144e2565b600060405180830381600087803b158015612d3f57600080fd5b505af1158015612d53573d6000803e3d6000fd5b5050505060004790506000866080015160ff16876000015160ff168860a00151612d7d919061453c565b612d87919061453c565b6fffffffffffffffffffffffffffffffff169050600081886040015160ff1684612db19190613baa565b612dbb9190613c1b565b9050600082896060015160ff1685612dd39190613baa565b612ddd9190613c1b565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e2790613daf565b60006040518083038185875af1925050503d8060008114612e64576040519150601f19603f3d011682016040523d82523d6000602084013e612e69565b606091505b50509050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612eb390613daf565b60006040518083038185875af1925050503d8060008114612ef0576040519150601f19603f3d011682016040523d82523d6000602084013e612ef5565b606091505b505080915050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612f4190613daf565b60006040518083038185875af1925050503d8060008114612f7e576040519150601f19603f3d011682016040523d82523d6000602084013e612f83565b606091505b505080915050505050505050505050506000601360006101000a81548160ff021916908315150217905550565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130565750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080600d6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000600e6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600060011515871515146132785760648260a001516fffffffffffffffffffffffffffffffff16866132699190613baa565b6132739190613c1b565b6132a7565b60648360a001516fffffffffffffffffffffffffffffffff168661329c9190613baa565b6132a69190613c1b565b5b9050600060011515881515146132f0578260a001516fffffffffffffffffffffffffffffffff16836000015160ff16836132e19190613baa565b6132eb9190613c1b565b613325565b8360a001516fffffffffffffffffffffffffffffffff16846000015160ff168361331a9190613baa565b6133249190613c1b565b5b9050806008546133359190613d4a565b600881905550600081836133499190613d4a565b905060008111156134505780600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461339f9190614185565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61343a84611093565b60405161344791906134be565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac82600854604051613483929190614580565b60405180910390a182876134979190613d4a565b955050505050509392505050565b6000819050919050565b6134b8816134a5565b82525050565b60006020820190506134d360008301846134af565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135135780820151818401526020810190506134f8565b60008484015250505050565b6000601f19601f8301169050919050565b600061353b826134d9565b61354581856134e4565b93506135558185602086016134f5565b61355e8161351f565b840191505092915050565b600060208201905081810360008301526135838184613530565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135bb82613590565b9050919050565b6135cb816135b0565b81146135d657600080fd5b50565b6000813590506135e8816135c2565b92915050565b6135f7816134a5565b811461360257600080fd5b50565b600081359050613614816135ee565b92915050565b600080604083850312156136315761363061358b565b5b600061363f858286016135d9565b925050602061365085828601613605565b9150509250929050565b60008115159050919050565b61366f8161365a565b82525050565b600060208201905061368a6000830184613666565b92915050565b6000602082840312156136a6576136a561358b565b5b60006136b4848285016135d9565b91505092915050565b6000602082840312156136d3576136d261358b565b5b60006136e184828501613605565b91505092915050565b6000806000606084860312156137035761370261358b565b5b6000613711868287016135d9565b9350506020613722868287016135d9565b925050604061373386828701613605565b9150509250925092565b6137468161365a565b811461375157600080fd5b50565b6000813590506137638161373d565b92915050565b600080604083850312156137805761377f61358b565b5b600061378e858286016135d9565b925050602061379f85828601613754565b9150509250929050565b600060ff82169050919050565b6137bf816137a9565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6137ea816137c5565b82525050565b600060c08201905061380560008301896137b6565b61381260208301886137b6565b61381f60408301876137b6565b61382c60608301866137b6565b61383960808301856137b6565b61384660a08301846137e1565b979650505050505050565b600060208201905061386660008301846137b6565b92915050565b6000602082840312156138825761388161358b565b5b600061389084828501613754565b91505092915050565b6138a2816135b0565b82525050565b60006020820190506138bd6000830184613899565b92915050565b6000819050919050565b60006138e86138e36138de84613590565b6138c3565b613590565b9050919050565b60006138fa826138cd565b9050919050565b600061390c826138ef565b9050919050565b61391c81613901565b82525050565b60006020820190506139376000830184613913565b92915050565b613946816137a9565b811461395157600080fd5b50565b6000813590506139638161393d565b92915050565b6000806000806000806000806000806101408b8d03121561398d5761398c61358b565b5b600061399b8d828e01613954565b9a505060206139ac8d828e01613954565b99505060406139bd8d828e01613954565b98505060606139ce8d828e01613954565b97505060806139df8d828e01613954565b96505060a06139f08d828e01613954565b95505060c0613a018d828e01613954565b94505060e0613a128d828e01613954565b935050610100613a248d828e01613954565b925050610120613a368d828e01613954565b9150509295989b9194979a5092959850565b600080600060608486031215613a6157613a6061358b565b5b6000613a6f868287016135d9565b9350506020613a80868287016135d9565b9250506040613a91868287016135d9565b9150509250925092565b60008060408385031215613ab257613ab161358b565b5b6000613ac0858286016135d9565b9250506020613ad1858286016135d9565b9150509250929050565b60008060408385031215613af257613af161358b565b5b6000613b0085828601613754565b9250506020613b1185828601613605565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b6257607f821691505b602082108103613b7557613b74613b1b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bb5826134a5565b9150613bc0836134a5565b9250828202613bce816134a5565b91508282048414831517613be557613be4613b7b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c26826134a5565b9150613c31836134a5565b925082613c4157613c40613bec565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613ca8602f836134e4565b9150613cb382613c4c565b604082019050919050565b60006020820190508181036000830152613cd781613c9b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613d14601d836134e4565b9150613d1f82613cde565b602082019050919050565b60006020820190508181036000830152613d4381613d07565b9050919050565b6000613d55826134a5565b9150613d60836134a5565b9250828203905081811115613d7857613d77613b7b565b5b92915050565b600081905092915050565b50565b6000613d99600083613d7e565b9150613da482613d89565b600082019050919050565b6000613dba82613d8c565b9150819050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613e206039836134e4565b9150613e2b82613dc4565b604082019050919050565b60006020820190508181036000830152613e4f81613e13565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613eb26024836134e4565b9150613ebd82613e56565b604082019050919050565b60006020820190508181036000830152613ee181613ea5565b9050919050565b6000613ef3826137a9565b9150613efe836137a9565b9250828201905060ff811115613f1757613f16613b7b565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f796026836134e4565b9150613f8482613f1d565b604082019050919050565b60006020820190508181036000830152613fa881613f6c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fe56020836134e4565b9150613ff082613faf565b602082019050919050565b6000602082019050818103600083015261401481613fd8565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614051600b836134e4565b915061405c8261401b565b602082019050919050565b6000602082019050818103600083015261408081614044565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006140bd6016836134e4565b91506140c882614087565b602082019050919050565b600060208201905081810360008301526140ec816140b0565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061414f6028836134e4565b915061415a826140f3565b604082019050919050565b6000602082019050818103600083015261417e81614142565b9050919050565b6000614190826134a5565b915061419b836134a5565b92508282019050808211156141b3576141b2613b7b565b5b92915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006141ef6013836134e4565b91506141fa826141b9565b602082019050919050565b6000602082019050818103600083015261421e816141e2565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260208201527f6c6f636b7320616c6c6f7765642e000000000000000000000000000000000000604082015250565b60006142a7604e836134e4565b91506142b282614225565b606082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b60006143136014836134e4565b915061431e826142dd565b602082019050919050565b6000602082019050818103600083015261434281614306565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143b6816135c2565b92915050565b6000602082840312156143d2576143d161358b565b5b60006143e0848285016143a7565b91505092915050565b6000819050919050565b600061440e614409614404846143e9565b6138c3565b6134a5565b9050919050565b61441e816143f3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614459816135b0565b82525050565b600061446b8383614450565b60208301905092915050565b6000602082019050919050565b600061448f82614424565b614499818561442f565b93506144a483614440565b8060005b838110156144d55781516144bc888261445f565b97506144c783614477565b9250506001810190506144a8565b5085935050505092915050565b600060a0820190506144f760008301886134af565b6145046020830187614415565b81810360408301526145168186614484565b90506145256060830185613899565b61453260808301846134af565b9695505050505050565b6000614547826137c5565b9150614552836137c5565b925082820390506fffffffffffffffffffffffffffffffff81111561457a57614579613b7b565b5b92915050565b600060408201905061459560008301856134af565b6145a260208301846134af565b939250505056fea2646970667358221220703a44a333b769ab885e28713d43145355ec21837c2434823bc9f5d42e636a6264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102765760003560e01c8063658d4b7f1161014f578063b0f7ec38116100c1578063d7c010321161007a578063d7c0103214610993578063d85a2828146109bc578063dd62ed3e146109d3578063df20fd4914610a10578063f2fde38b14610a39578063f40acc3d14610a625761027d565b8063b0f7ec3814610883578063b62496f5146108ae578063bbc0c742146108eb578063c18bc19514610916578063c38a31de1461093f578063c876d0b9146109685761027d565b80638a8c523c116101135780638a8c523c146107855780638da5cb5b1461079c57806395d89b41146107c75780639a7a23d6146107f2578063a82ed9ec1461081b578063a9059cbb146108465761027d565b8063658d4b7f146106b25780636c0a24eb146106db57806370a0823114610706578063715018a6146107435780637d1db4a51461075a5761027d565b80632b14ca56116101e8578063364333f4116101ac578063364333f41461059f578063404e5129146105b657806341aea9de146105df57806345ce5365146106085780634706240214610645578063571ac8b0146106755761027d565b80632b14ca561461049f5780632d838119146104cf578063313ce5671461050c57806334b86560146105375780633582ad23146105745761027d565b8063178002871161023a578063178002871461038f57806318160ddd146103ba578063203e727e146103e557806323b872dd1461040e57806324c390231461044b5780632b112e49146104745761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d85780630cfc15f91461031557806316c02129146103525761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a8d565b6040516102a491906134be565b60405180910390f35b3480156102b957600080fd5b506102c2610a93565b6040516102cf9190613569565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa919061361a565b610b25565b60405161030c9190613675565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613690565b610c17565b60405161034991906134be565b60405180910390f35b34801561035e57600080fd5b5061037960048036038101906103749190613690565b610c2f565b6040516103869190613675565b60405180910390f35b34801561039b57600080fd5b506103a4610c4f565b6040516103b191906134be565b60405180910390f35b3480156103c657600080fd5b506103cf610c55565b6040516103dc91906134be565b60405180910390f35b3480156103f157600080fd5b5061040c600480360381019061040791906136bd565b610c5f565b005b34801561041a57600080fd5b50610435600480360381019061043091906136ea565b610cf5565b6040516104429190613675565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190613769565b610f76565b005b34801561048057600080fd5b50610489610fd9565b60405161049691906134be565b60405180910390f35b3480156104ab57600080fd5b506104b461100c565b6040516104c6969594939291906137f0565b60405180910390f35b3480156104db57600080fd5b506104f660048036038101906104f191906136bd565b611093565b60405161050391906134be565b60405180910390f35b34801561051857600080fd5b506105216110b7565b60405161052e9190613851565b60405180910390f35b34801561054357600080fd5b5061055e6004803603810190610559919061386c565b6110c0565b60405161056b9190613675565b60405180910390f35b34801561058057600080fd5b506105896110ed565b6040516105969190613675565b60405180910390f35b3480156105ab57600080fd5b506105b4611100565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190613769565b611181565b005b3480156105eb57600080fd5b506106066004803603810190610601919061386c565b6111e4565b005b34801561061457600080fd5b5061062f600480360381019061062a91906136bd565b611209565b60405161063c91906134be565b60405180910390f35b34801561065157600080fd5b5061065a61122d565b60405161066c969594939291906137f0565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190613690565b6112b4565b6040516106a99190613675565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190613769565b6112e7565b005b3480156106e757600080fd5b506106f061134a565b6040516106fd91906134be565b60405180910390f35b34801561071257600080fd5b5061072d60048036038101906107289190613690565b611350565b60405161073a91906134be565b60405180910390f35b34801561074f57600080fd5b506107586113a1565b005b34801561076657600080fd5b5061076f6113b5565b60405161077c91906134be565b60405180910390f35b34801561079157600080fd5b5061079a6113bb565b005b3480156107a857600080fd5b506107b16113fb565b6040516107be91906138a8565b60405180910390f35b3480156107d357600080fd5b506107dc611424565b6040516107e99190613569565b60405180910390f35b3480156107fe57600080fd5b5061081960048036038101906108149190613769565b6114b6565b005b34801561082757600080fd5b5061083061155a565b60405161083d9190613922565b60405180910390f35b34801561085257600080fd5b5061086d6004803603810190610868919061361a565b611572565b60405161087a9190613675565b60405180910390f35b34801561088f57600080fd5b50610898611587565b6040516108a59190613675565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d09190613690565b61159a565b6040516108e29190613675565b60405180910390f35b3480156108f757600080fd5b506109006115ba565b60405161090d9190613675565b60405180910390f35b34801561092257600080fd5b5061093d600480360381019061093891906136bd565b6115cd565b005b34801561094b57600080fd5b5061096660048036038101906109619190613969565b611663565b005b34801561097457600080fd5b5061097d61194f565b60405161098a9190613675565b60405180910390f35b34801561099f57600080fd5b506109ba60048036038101906109b59190613a48565b611962565b005b3480156109c857600080fd5b506109d1611a32565b005b3480156109df57600080fd5b506109fa60048036038101906109f59190613a9b565b611a50565b604051610a0791906134be565b60405180910390f35b348015610a1c57600080fd5b50610a376004803603810190610a329190613adb565b611ad7565b005b348015610a4557600080fd5b50610a606004803603810190610a5b9190613690565b611b04565b005b348015610a6e57600080fd5b50610a77611b87565b604051610a8491906138a8565b60405180910390f35b60125481565b606060028054610aa290613b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ace90613b4a565b8015610b1b5780601f10610af057610100808354040283529160200191610b1b565b820191906000526020600020905b815481529060010190602001808311610afe57829003601f168201915b5050505050905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c0591906134be565b60405180910390a36001905092915050565b60076020528060005260406000206000915090505481565b60146020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600454905090565b610c67611bab565b670de0b6b3a76400006103e86001600454610c829190613baa565b610c8c9190613c1b565b610c969190613c1b565b811015610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf90613cbe565b60405180910390fd5b670de0b6b3a764000081610cec9190613baa565b60058190555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f625781600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090613d2a565b60405180910390fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ee19190613d4a565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f6d848484611c29565b90509392505050565b610f7e611bab565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610fe56000611350565b610ff061dead611350565b600454610ffd9190613d4a565b6110079190613d4a565b905090565b600e8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b6000600854600454836110a69190613baa565b6110b09190613c1b565b9050919050565b60006012905090565b60006110ca611bab565b81600a60016101000a81548160ff02191690831515021790555060019050919050565b600a60029054906101000a900460ff1681565b611108611bab565b60003373ffffffffffffffffffffffffffffffffffffffff164760405161112e90613daf565b60006040518083038185875af1925050503d806000811461116b576040519150601f19603f3d011682016040523d82523d6000602084013e611170565b606091505b505090508061117e57600080fd5b50565b611189611bab565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6111ec611bab565b80600a60026101000a81548160ff02191690831515021790555050565b60006004546008548361121c9190613baa565b6112269190613c1b565b9050919050565b600d8060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a90046fffffffffffffffffffffffffffffffff16905086565b60006112e0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b25565b9050919050565b6112ef611bab565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60065481565b600061139a600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611093565b9050919050565b6113a9611bab565b6113b360006125ac565b565b60055481565b6113c3611bab565b6001600a60006101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461143390613b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461145f90613b4a565b80156114ac5780601f10611481576101008083540402835291602001916114ac565b820191906000526020600020905b81548152906001019060200180831161148f57829003601f168201915b5050505050905090565b6114be611bab565b7f0000000000000000000000003664092b3707388e0e8b997e98ad875f751d488c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390613e36565b60405180910390fd5b6115568282612670565b5050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600061157f338484611c29565b905092915050565b601160149054906101000a900460ff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b6115d5611bab565b670de0b6b3a76400006103e860056004546115f09190613baa565b6115fa9190613c1b565b6116049190613c1b565b811015611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d90613ec8565b60405180910390fd5b670de0b6b3a76400008161165a9190613baa565b60068190555050565b61166b611bab565b600086888a8c8e61167c9190613ee8565b6116869190613ee8565b6116909190613ee8565b61169a9190613ee8565b60ff1690506000828486888a6116b09190613ee8565b6116ba9190613ee8565b6116c49190613ee8565b6116ce9190613ee8565b60ff1690506040518060c001604052808d60ff1681526020018c60ff1681526020018b60ff1681526020018a60ff1681526020018960ff168152602001836fffffffffffffffffffffffffffffffff16815250600d60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050506040518060c001604052808860ff1681526020018760ff1681526020018660ff1681526020018560ff1681526020018460ff168152602001826fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050505050505050505050505050565b600a60019054906101000a900460ff1681565b61196a611bab565b82600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611a3a611bab565b611a4d3033611a4830611350565b611c29565b50565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611adf611bab565b81601160146101000a81548160ff021916908315150217905550806012819055505050565b611b0c611bab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7290613f8f565b60405180910390fd5b611b84816125ac565b50565b7f0000000000000000000000003664092b3707388e0e8b997e98ad875f751d488c81565b611bb3612711565b73ffffffffffffffffffffffffffffffffffffffff16611bd16113fb565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613ffb565b60405180910390fd5b565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ccf5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590614067565b60405180910390fd5b601360009054906101000a900460ff1615611d3557611d2e848484612719565b90506125a5565b600a60029054906101000a900460ff16156122f057600a60009054906101000a900460ff16611e3f57600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dff5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e35906140d3565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee25750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f8957600554821115611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614165565b60405180910390fd5b600654611f3884611350565b83611f439190614185565b1115611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b90614205565b60405180910390fd5b612127565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561202c5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207b57600554821115612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206d90614165565b60405180910390fd5b612126565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612125576006546120d884611350565b836120e39190614185565b1115612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90614205565b60405180910390fd5b5b5b5b600a60019054906101000a900460ff16156122ef576121446113fb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121bf5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561221757507f0000000000000000000000003664092b3707388e0e8b997e98ad875f751d488c73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122ee57436001601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122699190614185565b106122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a0906142bd565b60405180910390fd5b43601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b6122f8612936565b15612306576123056129d4565b5b600061231183611209565b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c90614329565b60405180910390fd5b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e09190613d4a565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061242f8686612fb0565b61243957816124a1565b6124a07f0000000000000000000000003664092b3707388e0e8b997e98ad875f751d488c73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612496576000612499565b60015b878461305e565b5b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ee9190614185565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61258984611093565b60405161259691906134be565b60405180910390a36001925050505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600033905090565b60008061272583611209565b905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156127a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a090614329565b60405180910390fd5b80600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127f49190613d4a565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128829190614185565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161292291906134be565b60405180910390a360019150509392505050565b60007f0000000000000000000000003664092b3707388e0e8b997e98ad875f751d488c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156129a15750601360009054906101000a900460ff16155b80156129b95750601160149054906101000a900460ff165b80156129cf57506012546129cc30611350565b10155b905090565b6001601360006101000a81548160ff0219169083151502179055506000600e6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000601254905060008260a001516fffffffffffffffffffffffffffffffff16836080015160ff1683612b0e9190613baa565b612b189190613c1b565b905060008183612b289190613d4a565b9050612b48737a250d5630b4cf539739df2c5dacb4c659f2488d82610b25565b506000821115612b6157612b5f3061dead84611c29565b505b6000600267ffffffffffffffff811115612b7e57612b7d614349565b5b604051908082528060200260200182016040528015612bac5781602001602082028036833780820191505090505b5090503081600081518110612bc457612bc3614378565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8191906143bc565b81600181518110612c9557612c94614378565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d259594939291906144e2565b600060405180830381600087803b158015612d3f57600080fd5b505af1158015612d53573d6000803e3d6000fd5b5050505060004790506000866080015160ff16876000015160ff168860a00151612d7d919061453c565b612d87919061453c565b6fffffffffffffffffffffffffffffffff169050600081886040015160ff1684612db19190613baa565b612dbb9190613c1b565b9050600082896060015160ff1685612dd39190613baa565b612ddd9190613c1b565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612e2790613daf565b60006040518083038185875af1925050503d8060008114612e64576040519150601f19603f3d011682016040523d82523d6000602084013e612e69565b606091505b50509050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612eb390613daf565b60006040518083038185875af1925050503d8060008114612ef0576040519150601f19603f3d011682016040523d82523d6000602084013e612ef5565b606091505b505080915050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612f4190613daf565b60006040518083038185875af1925050503d8060008114612f7e576040519150601f19603f3d011682016040523d82523d6000602084013e612f83565b606091505b505080915050505050505050505050506000601360006101000a81548160ff021916908315150217905550565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130565750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080600d6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000600e6040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600060011515871515146132785760648260a001516fffffffffffffffffffffffffffffffff16866132699190613baa565b6132739190613c1b565b6132a7565b60648360a001516fffffffffffffffffffffffffffffffff168661329c9190613baa565b6132a69190613c1b565b5b9050600060011515881515146132f0578260a001516fffffffffffffffffffffffffffffffff16836000015160ff16836132e19190613baa565b6132eb9190613c1b565b613325565b8360a001516fffffffffffffffffffffffffffffffff16846000015160ff168361331a9190613baa565b6133249190613c1b565b5b9050806008546133359190613d4a565b600881905550600081836133499190613d4a565b905060008111156134505780600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461339f9190614185565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61343a84611093565b60405161344791906134be565b60405180910390a35b7fc3b3cc73ac1faef58c428c22be6cb344acfd92a699c8cd758c753af27071b5ac82600854604051613483929190614580565b60405180910390a182876134979190613d4a565b955050505050509392505050565b6000819050919050565b6134b8816134a5565b82525050565b60006020820190506134d360008301846134af565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135135780820151818401526020810190506134f8565b60008484015250505050565b6000601f19601f8301169050919050565b600061353b826134d9565b61354581856134e4565b93506135558185602086016134f5565b61355e8161351f565b840191505092915050565b600060208201905081810360008301526135838184613530565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006135bb82613590565b9050919050565b6135cb816135b0565b81146135d657600080fd5b50565b6000813590506135e8816135c2565b92915050565b6135f7816134a5565b811461360257600080fd5b50565b600081359050613614816135ee565b92915050565b600080604083850312156136315761363061358b565b5b600061363f858286016135d9565b925050602061365085828601613605565b9150509250929050565b60008115159050919050565b61366f8161365a565b82525050565b600060208201905061368a6000830184613666565b92915050565b6000602082840312156136a6576136a561358b565b5b60006136b4848285016135d9565b91505092915050565b6000602082840312156136d3576136d261358b565b5b60006136e184828501613605565b91505092915050565b6000806000606084860312156137035761370261358b565b5b6000613711868287016135d9565b9350506020613722868287016135d9565b925050604061373386828701613605565b9150509250925092565b6137468161365a565b811461375157600080fd5b50565b6000813590506137638161373d565b92915050565b600080604083850312156137805761377f61358b565b5b600061378e858286016135d9565b925050602061379f85828601613754565b9150509250929050565b600060ff82169050919050565b6137bf816137a9565b82525050565b60006fffffffffffffffffffffffffffffffff82169050919050565b6137ea816137c5565b82525050565b600060c08201905061380560008301896137b6565b61381260208301886137b6565b61381f60408301876137b6565b61382c60608301866137b6565b61383960808301856137b6565b61384660a08301846137e1565b979650505050505050565b600060208201905061386660008301846137b6565b92915050565b6000602082840312156138825761388161358b565b5b600061389084828501613754565b91505092915050565b6138a2816135b0565b82525050565b60006020820190506138bd6000830184613899565b92915050565b6000819050919050565b60006138e86138e36138de84613590565b6138c3565b613590565b9050919050565b60006138fa826138cd565b9050919050565b600061390c826138ef565b9050919050565b61391c81613901565b82525050565b60006020820190506139376000830184613913565b92915050565b613946816137a9565b811461395157600080fd5b50565b6000813590506139638161393d565b92915050565b6000806000806000806000806000806101408b8d03121561398d5761398c61358b565b5b600061399b8d828e01613954565b9a505060206139ac8d828e01613954565b99505060406139bd8d828e01613954565b98505060606139ce8d828e01613954565b97505060806139df8d828e01613954565b96505060a06139f08d828e01613954565b95505060c0613a018d828e01613954565b94505060e0613a128d828e01613954565b935050610100613a248d828e01613954565b925050610120613a368d828e01613954565b9150509295989b9194979a5092959850565b600080600060608486031215613a6157613a6061358b565b5b6000613a6f868287016135d9565b9350506020613a80868287016135d9565b9250506040613a91868287016135d9565b9150509250925092565b60008060408385031215613ab257613ab161358b565b5b6000613ac0858286016135d9565b9250506020613ad1858286016135d9565b9150509250929050565b60008060408385031215613af257613af161358b565b5b6000613b0085828601613754565b9250506020613b1185828601613605565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b6257607f821691505b602082108103613b7557613b74613b1b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bb5826134a5565b9150613bc0836134a5565b9250828202613bce816134a5565b91508282048414831517613be557613be4613b7b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c26826134a5565b9150613c31836134a5565b925082613c4157613c40613bec565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613ca8602f836134e4565b9150613cb382613c4c565b604082019050919050565b60006020820190508181036000830152613cd781613c9b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613d14601d836134e4565b9150613d1f82613cde565b602082019050919050565b60006020820190508181036000830152613d4381613d07565b9050919050565b6000613d55826134a5565b9150613d60836134a5565b9250828203905081811115613d7857613d77613b7b565b5b92915050565b600081905092915050565b50565b6000613d99600083613d7e565b9150613da482613d89565b600082019050919050565b6000613dba82613d8c565b9150819050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613e206039836134e4565b9150613e2b82613dc4565b604082019050919050565b60006020820190508181036000830152613e4f81613e13565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613eb26024836134e4565b9150613ebd82613e56565b604082019050919050565b60006020820190508181036000830152613ee181613ea5565b9050919050565b6000613ef3826137a9565b9150613efe836137a9565b9250828201905060ff811115613f1757613f16613b7b565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f796026836134e4565b9150613f8482613f1d565b604082019050919050565b60006020820190508181036000830152613fa881613f6c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fe56020836134e4565b9150613ff082613faf565b602082019050919050565b6000602082019050818103600083015261401481613fd8565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614051600b836134e4565b915061405c8261401b565b602082019050919050565b6000602082019050818103600083015261408081614044565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006140bd6016836134e4565b91506140c882614087565b602082019050919050565b600060208201905081810360008301526140ec816140b0565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061414f6028836134e4565b915061415a826140f3565b604082019050919050565b6000602082019050818103600083015261417e81614142565b9050919050565b6000614190826134a5565b915061419b836134a5565b92508282019050808211156141b3576141b2613b7b565b5b92915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006141ef6013836134e4565b91506141fa826141b9565b602082019050919050565b6000602082019050818103600083015261421e816141e2565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e65207075726368617365207065722074776f206260208201527f6c6f636b7320616c6c6f7765642e000000000000000000000000000000000000604082015250565b60006142a7604e836134e4565b91506142b282614225565b606082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b60006143136014836134e4565b915061431e826142dd565b602082019050919050565b6000602082019050818103600083015261434281614306565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506143b6816135c2565b92915050565b6000602082840312156143d2576143d161358b565b5b60006143e0848285016143a7565b91505092915050565b6000819050919050565b600061440e614409614404846143e9565b6138c3565b6134a5565b9050919050565b61441e816143f3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614459816135b0565b82525050565b600061446b8383614450565b60208301905092915050565b6000602082019050919050565b600061448f82614424565b614499818561442f565b93506144a483614440565b8060005b838110156144d55781516144bc888261445f565b97506144c783614477565b9250506001810190506144a8565b5085935050505092915050565b600060a0820190506144f760008301886134af565b6145046020830187614415565b81810360408301526145168186614484565b90506145256060830185613899565b61453260808301846134af565b9695505050505050565b6000614547826137c5565b9150614552836137c5565b925082820390506fffffffffffffffffffffffffffffffff81111561457a57614579613b7b565b5b92915050565b600060408201905061459560008301856134af565b6145a260208301846134af565b939250505056fea2646970667358221220703a44a333b769ab885e28713d43145355ec21837c2434823bc9f5d42e636a6264736f6c63430008130033

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.