ETH Price: $3,324.13 (-1.93%)
 

Overview

Max Total Supply

100,000,000 QUEAI

Holders

230 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
49,108.100459727950538278 QUEAI

Value
$0.00
0x3ce98470b6c9add62563124a4d7f59603c9e6a62
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

QuestAI a game-changing tool that combines the power of analyzing real groups and top shillers. Discover calls, track influencers, and gain insights like never before. Simple, transparent, and built to help you stay ahead in the fast-paced world of crypto.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
QUESTAI

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : QUESTAI.sol
//
//   ___  _   _ _____ ____ _____      _    ___
//  / _ \| | | | ____/ ___|_   _|    / \  |_ _|
// | | | | | | |  _| \___ \ | |     / _ \  | |
// | |_| | |_| | |___ ___) || |    / ___ \ | |
//  \__\_\\___/|_____|____/ |_|   /_/   \_\___|
//
//
//    Telegram: https://t.me/questai_app
//
//    Website: https://queai.app/
//    X: https://x.com/QuestAI_app
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

interface IRouter {
    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;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable;
}

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

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

contract QUESTAI is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public blacklisted;

    mapping(address => bool) private isFeeExempt;
    mapping(address => bool) private liquidityCreator;
    mapping(address => bool) private isMaxBuyExempt;
    mapping(address => bool) private liquidityPools;

    address immutable public pair;
    IRouter public router;

    string private constant _name = "QUEST AI";
    string private constant _symbol = "QUEAI";
    uint8 private constant _decimals = 18;

    uint256 private constant _totalSupply = 100_000_000 * (10 ** _decimals);

    uint256 private totalFee = 5000;
    uint256 private feeDenominator = 10000;

    // 1% of total supply
    uint256 private maxBuyNumerator = 100;
    uint256 private maxBuyDenominator = 10000;

    uint256 public launchedAt;
    bool private isTradingAllowed;

    bool private swapBackEnabled;
    bool private inSwap;

    address private constant routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    address public devWallet;
    address public marketingWallet;

    uint8 public devWalletSupplyPercentage = 5;
    uint8 public marketingWalletSupplyPercentage = 15;

    uint256 private _devWalletSupply = _totalSupply * devWalletSupplyPercentage / 100;
    uint256 private _marketingWalletSupply = _totalSupply * marketingWalletSupplyPercentage / 100;
    uint256 private _ownerWalletSupply = _totalSupply - _devWalletSupply - _marketingWalletSupply;

    address private constant zeroAddress = 0x0000000000000000000000000000000000000000;
    address private constant deadAddress = 0x000000000000000000000000000000000000dEaD;

     modifier onlyDev() {
        require(_msgSender() == devWallet, "QUEST AI: caller is not a team member");
        _;
    }

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

    event DistributedFees(uint256 fee);

    constructor(address _devWallet, address _marketingWallet) {
        router = IRouter(routerAddress);
        pair = IFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        devWallet = _devWallet;
        marketingWallet = _marketingWallet;

        isFeeExempt[owner()] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[devWallet] = true;
        isFeeExempt[marketingWallet] = true;

        liquidityCreator[owner()] = true;

        _balances[owner()] = _ownerWalletSupply;
        _balances[devWallet] = _devWalletSupply;
        _balances[marketingWallet] = _marketingWalletSupply;

        isMaxBuyExempt[owner()] = true;
        isMaxBuyExempt[address(this)] = true;
        isMaxBuyExempt[pair] = true;
        isMaxBuyExempt[routerAddress] = true;

        isTradingAllowed = false;
        swapBackEnabled = true;

        emit Transfer(address(0), owner(), _ownerWalletSupply);
        emit Transfer(address(0), devWallet, _devWalletSupply);
        emit Transfer(address(0), marketingWallet, _marketingWalletSupply);
    }

    receive() external payable {}

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

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

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

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

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

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

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

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

    function decreaseFee(uint256 _newFee) external onlyDev {
        require(_newFee <= totalFee, "QUEST AI: Can't increase fee.");
        totalFee = _newFee;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        require(devWallet != newWallet ,'Wallet already set');
        devWallet = newWallet;
        isFeeExempt[devWallet] = true;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(marketingWallet != newWallet ,'Wallet already set');
        marketingWallet = newWallet;
        isFeeExempt[marketingWallet] = true;
    }

    function feeWithdrawal(uint256 amount) external onlyDev {
        uint256 amountETH = address(this).balance;
        payable(devWallet).transfer((amountETH * amount) / 100);
    }

    function startTrading() external onlyOwner {
        require(!isTradingAllowed);
        isTradingAllowed = true;
        launchedAt = block.number;
    }

    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) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(sender != address(0), "QUEST AI: Transfer from the zero address.");
        require(recipient != address(0), "QUEST AI: Transfer to the zero address.");
        require(amount > 0, "QUEST AI: Transfer amount must be greater than zero.");
        require(_balances[sender] >= amount, "QUEST AI: You are trying to transfer more than your balance.");
        require(!blacklisted[sender] && !blacklisted[recipient], "QUEST AI: Address is blacklisted.");

        if (!launched() && liquidityPools[recipient]) {
            require(
                liquidityCreator[sender],
                "QUEST AI: Liquidity not added yet."
            );
            launch();
        }

        if (!isTradingAllowed) {
            require(
                liquidityCreator[sender] || liquidityCreator[recipient],
                "QUEST AI: Trading is currently disabled."
            );
        }

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

        if (liquidityPools[sender] && !isMaxBuyExempt[recipient]) {
            // we are buying tokens
            uint256 maxAmount = (_totalSupply * maxBuyNumerator) /
                maxBuyDenominator;
            require(
                amount <= maxAmount,
                "QUEST AI: Max buy amount exceeded. Try a lower amount."
            );
        }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = feeExcluded(sender)
            ? receiveFee(recipient, amount)
            : amount;

        if (shouldSwapBack(recipient)) {
            if (amount > 0) swapBack();
        }

        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function feeExcluded(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function receiveFee(
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        bool sellingOrBuying = liquidityPools[recipient] ||
            liquidityPools[msg.sender];

        if (!sellingOrBuying) {
            return amount;
        }

        uint256 feeAmount = (amount * totalFee) / feeDenominator;
        _balances[address(this)] += feeAmount;

        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return
            !liquidityPools[msg.sender] && !inSwap && liquidityPools[recipient] && swapBackEnabled;
    }

    function setProvideLiquidity(address lp, bool isPool) external onlyDev {
        require(lp != pair, "QUEST AI: Can't alter current liquidity pair.");
        liquidityPools[lp] = isPool;
    }

    function setSwapBackEnabled(bool _enabled) external onlyDev {
        swapBackEnabled = _enabled;
    }

    function setMaxBuyExempt(address _address, bool _isExempt) external onlyDev {
        isMaxBuyExempt[_address] = _isExempt;
    }

    function setBlacklist(address _address, bool _isBlacklisted) external onlyOwner {
        blacklisted[_address] = _isBlacklisted;
    }

    function swapBack() internal swapping {
        uint256 myBalance = _balances[address(this)];

        if (myBalance == 0) return;

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            myBalance,
            0,
            path,
            address(this),
            block.timestamp
        );

        emit DistributedFees(myBalance);
    }

    function addLiquidityCreator(address _liquidityCreator) external onlyOwner {
        liquidityCreator[_liquidityCreator] = true;
    }

    function getCurrentSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(deadAddress) - balanceOf(zeroAddress);
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"DistributedFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_liquidityCreator","type":"address"}],"name":"addLiquidityCreator","outputs":[],"stateMutability":"nonpayable","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":"approveMaximum","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"decreaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWalletSupplyPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"feeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletSupplyPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisted","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setMaxBuyExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"setProvideLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052611388600955612710600a556064600b55612710600c556005600f60146101000a81548160ff021916908360ff160217905550600f8060156101000a81548160ff021916908360ff1602179055506064600f60149054906101000a900460ff1660ff166012600a62000077919062000efd565b6305f5e10062000088919062000f4e565b62000094919062000f4e565b620000a0919062000fc8565b6010556064600f60159054906101000a900460ff1660ff166012600a620000c8919062000efd565b6305f5e100620000d9919062000f4e565b620000e5919062000f4e565b620000f1919062000fc8565b6011556011546010546012600a6200010a919062000efd565b6305f5e1006200011b919062000f4e565b62000127919062001000565b62000133919062001000565b6012553480156200014357600080fd5b5060405162004d0638038062004d068339818101604052810190620001699190620010a5565b60006200017b62000d3260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003029190620010ec565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b19190620010ec565b306040518363ffffffff1660e01b8152600401620003d19291906200112f565b6020604051808303816000875af1158015620003f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004179190620010ec565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060016007600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60026000620004d962000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620006b562000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200086862000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060125460016000620008d062000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060105460016000600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060115460016000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160066000620009f462000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600e60006101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff02191690831515021790555062000ba962000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60125460405162000c0a91906200116d565b60405180910390a3600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60105460405162000c9691906200116d565b60405180910390a3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60115460405162000d2291906200116d565b60405180910390a350506200118a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000df15780860481111562000dc95762000dc862000d63565b5b600185161562000dd95780820291505b808102905062000de98562000d92565b945062000da9565b94509492505050565b60008262000e0c576001905062000edf565b8162000e1c576000905062000edf565b816001811462000e35576002811462000e405762000e76565b600191505062000edf565b60ff84111562000e555762000e5462000d63565b5b8360020a91508482111562000e6f5762000e6e62000d63565b5b5062000edf565b5060208310610133831016604e8410600b841016171562000eb05782820a90508381111562000eaa5762000ea962000d63565b5b62000edf565b62000ebf848484600162000d9f565b9250905081840481111562000ed95762000ed862000d63565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f0a8262000ee6565b915062000f178362000ef0565b925062000f467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dfa565b905092915050565b600062000f5b8262000ee6565b915062000f688362000ee6565b925082820262000f788162000ee6565b9150828204841483151762000f925762000f9162000d63565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fd58262000ee6565b915062000fe28362000ee6565b92508262000ff55762000ff462000f99565b5b828204905092915050565b60006200100d8262000ee6565b91506200101a8362000ee6565b925082820390508181111562001035576200103462000d63565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200106d8262001040565b9050919050565b6200107f8162001060565b81146200108b57600080fd5b50565b6000815190506200109f8162001074565b92915050565b60008060408385031215620010bf57620010be6200103b565b5b6000620010cf858286016200108e565b9250506020620010e2858286016200108e565b9150509250929050565b6000602082840312156200110557620011046200103b565b5b600062001115848285016200108e565b91505092915050565b620011298162001060565b82525050565b60006040820190506200114660008301856200111e565b6200115560208301846200111e565b9392505050565b620011678162000ee6565b82525050565b60006020820190506200118460008301846200115c565b92915050565b608051613b59620011ad600039600081816114000152611b320152613b596000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063bf56b37111610095578063e3acfb9111610064578063e3acfb91146106ef578063f2fde38b14610718578063f887ea4014610741578063fdad93021461076c576101ee565b8063bf56b37114610621578063c5730d9d1461064c578063dbac26e914610675578063dd62ed3e146106b2576101ee565b8063a8aa1b31116100d1578063a8aa1b3114610565578063a9059cbb14610590578063aacebbe3146105cd578063aea2d205146105f6576101ee565b80638da5cb5b146104b95780638ea5220f146104e457806391546ab41461050f57806395d89b411461053a576101ee565b8063293230b81161017a57806370a082311161014957806370a08231146103fd578063715018a61461043a57806375f0a874146104515780637c6e0a5e1461047c576101ee565b8063293230b814610367578063313ce5671461037e5780633c8f81d0146103a95780634f3e1efc146103d2576101ee565b806318160ddd116101b657806318160ddd146102ad5780631816467f146102d85780631e53dbe91461030157806323b872dd1461032a576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630961fbf71461025b578063153b0d1e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610795565b6040516102159190612b33565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612bee565b6107d2565b6040516102529190612c49565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612c64565b6108c4565b005b34801561029057600080fd5b506102ab60048036038101906102a69190612cbd565b6109e4565b005b3480156102b957600080fd5b506102c2610ad4565b6040516102cf9190612d0c565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190612d27565b610af8565b005b34801561030d57600080fd5b5061032860048036038101906103239190612d54565b610cdb565b005b34801561033657600080fd5b50610351600480360381019061034c9190612d81565b610d8f565b60405161035e9190612c49565b60405180910390f35b34801561037357600080fd5b5061037c610f51565b005b34801561038a57600080fd5b50610393611024565b6040516103a09190612df0565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb9190612d27565b61102d565b005b3480156103de57600080fd5b506103e761111d565b6040516103f49190612d0c565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f9190612d27565b61116a565b6040516104319190612d0c565b60405180910390f35b34801561044657600080fd5b5061044f6111b3565b005b34801561045d57600080fd5b50610466611306565b6040516104739190612e1a565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190612d27565b61132c565b6040516104b09190612c49565b60405180910390f35b3480156104c557600080fd5b506104ce61135f565b6040516104db9190612e1a565b60405180910390f35b3480156104f057600080fd5b506104f9611388565b6040516105069190612e1a565b60405180910390f35b34801561051b57600080fd5b506105246113ae565b6040516105319190612df0565b60405180910390f35b34801561054657600080fd5b5061054f6113c1565b60405161055c9190612b33565b60405180910390f35b34801561057157600080fd5b5061057a6113fe565b6040516105879190612e1a565b60405180910390f35b34801561059c57600080fd5b506105b760048036038101906105b29190612bee565b611422565b6040516105c49190612c49565b60405180910390f35b3480156105d957600080fd5b506105f460048036038101906105ef9190612d27565b611437565b005b34801561060257600080fd5b5061060b61161a565b6040516106189190612df0565b60405180910390f35b34801561062d57600080fd5b5061063661162d565b6040516106439190612d0c565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e9190612c64565b611633565b005b34801561068157600080fd5b5061069c60048036038101906106979190612d27565b611719565b6040516106a99190612c49565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612e35565b611739565b6040516106e69190612d0c565b60405180910390f35b3480156106fb57600080fd5b5061071660048036038101906107119190612cbd565b6117c0565b005b34801561072457600080fd5b5061073f600480360381019061073a9190612d27565b6118b2565b005b34801561074d57600080fd5b50610756611a73565b6040516107639190612ed4565b60405180910390f35b34801561077857600080fd5b50610793600480360381019061078e9190612cbd565b611a99565b005b60606040518060400160405280600881526020017f5155455354204149000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108b29190612d0c565b60405180910390a36001905092915050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610905611c19565b73ffffffffffffffffffffffffffffffffffffffff161461095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290612f61565b60405180910390fd5b6000479050600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606484846109aa9190612fb0565b6109b49190613021565b9081150290604051600060405180830381858888f193505050501580156109df573d6000803e3d6000fd5b505050565b6109ec611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a709061309e565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012600a610ae491906131f1565b6305f5e100610af39190612fb0565b905090565b610b00611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b849061309e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490613288565b60405180910390fd5b80600e60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1c611c19565b73ffffffffffffffffffffffffffffffffffffffff1614610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990612f61565b60405180910390fd5b80600e60016101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f3d5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebc91906132a8565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f48848484611c21565b90509392505050565b610f59611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd9061309e565b60405180910390fd5b600e60009054906101000a900460ff161561100057600080fd5b6001600e60006101000a81548160ff02191690831515021790555043600d81905550565b60006012905090565b611035611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061309e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611129600061116a565b61113461dead61116a565b6012600a61114291906131f1565b6305f5e1006111519190612fb0565b61115b91906132a8565b61116591906132a8565b905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111bb611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f9061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611358827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107d2565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60159054906101000a900460ff1681565b60606040518060400160405280600581526020017f5155454149000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061142f338484611c21565b905092915050565b61143f611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061309e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390613288565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60149054906101000a900460ff1681565b600d5481565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611674611c19565b73ffffffffffffffffffffffffffffffffffffffff16146116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612f61565b60405180910390fd5b60095481111561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690613328565b60405180910390fd5b8060098190555050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611801611c19565b73ffffffffffffffffffffffffffffffffffffffff1614611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f61565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118ba611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e9061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ad906133ba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ada611c19565b73ffffffffffffffffffffffffffffffffffffffff1614611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790612f61565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb59061344c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c88906134de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613570565b60405180910390fd5b60008211611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a90613602565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc90613694565b60405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e695750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f90613726565b60405180910390fd5b611eb06123b5565b158015611f065750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fa057600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e906137b8565b60405180910390fd5b611f9f6123c2565b5b600e60009054906101000a900460ff1661209557600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120555750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b9061384a565b60405180910390fd5b5b600e60029054906101000a900460ff16156120bc576120b58484846123cb565b90506123ae565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561215f5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e4576000600c54600b546012600a61217a91906131f1565b6305f5e1006121899190612fb0565b6121939190612fb0565b61219d9190613021565b9050808311156121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d9906138dc565b60405180910390fd5b505b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222f91906132a8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061227d85612559565b6122875782612292565b61229184846125b0565b5b905061229d846126f0565b156122b55760008311156122b4576122b36127cd565b5b5b80600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230091906138fc565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123a09190612d0c565b60405180910390a360019150505b9392505050565b600080600d541415905090565b43600d81905550565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241891906132a8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a691906138fc565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125469190612d0c565b60405180910390a3600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126545750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508061266457829150506126ea565b6000600a54600954856126779190612fb0565b6126819190613021565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126d291906138fc565b9250508190555080846126e591906132a8565b925050505b92915050565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127595750600e60029054906101000a900460ff16155b80156127ae5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156127c65750600e60019054906101000a900460ff165b9050919050565b6001600e60026101000a81548160ff0219169083151502179055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361283a5750612a86565b6000600267ffffffffffffffff81111561285757612856613930565b5b6040519080825280602002602001820160405280156128855781602001602082028036833780820191505090505b509050308160008151811061289d5761289c61395f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612944573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296891906139a3565b8160018151811061297c5761297b61395f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a1a959493929190613ac9565b600060405180830381600087803b158015612a3457600080fd5b505af1158015612a48573d6000803e3d6000fd5b505050507f6730af06a7a0b552d900fed41c1d468b459eaa290e6eefe61a94a339eabbec1c82604051612a7b9190612d0c565b60405180910390a150505b6000600e60026101000a81548160ff021916908315150217905550565b600081519050919050565b600082825260208201905092915050565b60005b83811015612add578082015181840152602081019050612ac2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b0582612aa3565b612b0f8185612aae565b9350612b1f818560208601612abf565b612b2881612ae9565b840191505092915050565b60006020820190508181036000830152612b4d8184612afa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8582612b5a565b9050919050565b612b9581612b7a565b8114612ba057600080fd5b50565b600081359050612bb281612b8c565b92915050565b6000819050919050565b612bcb81612bb8565b8114612bd657600080fd5b50565b600081359050612be881612bc2565b92915050565b60008060408385031215612c0557612c04612b55565b5b6000612c1385828601612ba3565b9250506020612c2485828601612bd9565b9150509250929050565b60008115159050919050565b612c4381612c2e565b82525050565b6000602082019050612c5e6000830184612c3a565b92915050565b600060208284031215612c7a57612c79612b55565b5b6000612c8884828501612bd9565b91505092915050565b612c9a81612c2e565b8114612ca557600080fd5b50565b600081359050612cb781612c91565b92915050565b60008060408385031215612cd457612cd3612b55565b5b6000612ce285828601612ba3565b9250506020612cf385828601612ca8565b9150509250929050565b612d0681612bb8565b82525050565b6000602082019050612d216000830184612cfd565b92915050565b600060208284031215612d3d57612d3c612b55565b5b6000612d4b84828501612ba3565b91505092915050565b600060208284031215612d6a57612d69612b55565b5b6000612d7884828501612ca8565b91505092915050565b600080600060608486031215612d9a57612d99612b55565b5b6000612da886828701612ba3565b9350506020612db986828701612ba3565b9250506040612dca86828701612bd9565b9150509250925092565b600060ff82169050919050565b612dea81612dd4565b82525050565b6000602082019050612e056000830184612de1565b92915050565b612e1481612b7a565b82525050565b6000602082019050612e2f6000830184612e0b565b92915050565b60008060408385031215612e4c57612e4b612b55565b5b6000612e5a85828601612ba3565b9250506020612e6b85828601612ba3565b9150509250929050565b6000819050919050565b6000612e9a612e95612e9084612b5a565b612e75565b612b5a565b9050919050565b6000612eac82612e7f565b9050919050565b6000612ebe82612ea1565b9050919050565b612ece81612eb3565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b7f51554553542041493a2063616c6c6572206973206e6f742061207465616d206d60008201527f656d626572000000000000000000000000000000000000000000000000000000602082015250565b6000612f4b602583612aae565b9150612f5682612eef565b604082019050919050565b60006020820190508181036000830152612f7a81612f3e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fbb82612bb8565b9150612fc683612bb8565b9250828202612fd481612bb8565b91508282048414831517612feb57612fea612f81565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061302c82612bb8565b915061303783612bb8565b92508261304757613046612ff2565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613088602083612aae565b915061309382613052565b602082019050919050565b600060208201905081810360008301526130b78161307b565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613115578086048111156130f1576130f0612f81565b5b60018516156131005780820291505b808102905061310e856130be565b94506130d5565b94509492505050565b60008261312e57600190506131ea565b8161313c57600090506131ea565b8160018114613152576002811461315c5761318b565b60019150506131ea565b60ff84111561316e5761316d612f81565b5b8360020a91508482111561318557613184612f81565b5b506131ea565b5060208310610133831016604e8410600b84101617156131c05782820a9050838111156131bb576131ba612f81565b5b6131ea565b6131cd84848460016130cb565b925090508184048111156131e4576131e3612f81565b5b81810290505b9392505050565b60006131fc82612bb8565b915061320783612dd4565b92506132347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461311e565b905092915050565b7f57616c6c657420616c7265616479207365740000000000000000000000000000600082015250565b6000613272601283612aae565b915061327d8261323c565b602082019050919050565b600060208201905081810360008301526132a181613265565b9050919050565b60006132b382612bb8565b91506132be83612bb8565b92508282039050818111156132d6576132d5612f81565b5b92915050565b7f51554553542041493a2043616e277420696e637265617365206665652e000000600082015250565b6000613312601d83612aae565b915061331d826132dc565b602082019050919050565b6000602082019050818103600083015261334181613305565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133a4602683612aae565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f51554553542041493a2043616e277420616c7465722063757272656e74206c6960008201527f7175696469747920706169722e00000000000000000000000000000000000000602082015250565b6000613436602d83612aae565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b7f51554553542041493a205472616e736665722066726f6d20746865207a65726f60008201527f20616464726573732e0000000000000000000000000000000000000000000000602082015250565b60006134c8602983612aae565b91506134d38261346c565b604082019050919050565b600060208201905081810360008301526134f7816134bb565b9050919050565b7f51554553542041493a205472616e7366657220746f20746865207a65726f206160008201527f6464726573732e00000000000000000000000000000000000000000000000000602082015250565b600061355a602783612aae565b9150613565826134fe565b604082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f51554553542041493a205472616e7366657220616d6f756e74206d757374206260008201527f652067726561746572207468616e207a65726f2e000000000000000000000000602082015250565b60006135ec603483612aae565b91506135f782613590565b604082019050919050565b6000602082019050818103600083015261361b816135df565b9050919050565b7f51554553542041493a20596f752061726520747279696e6720746f207472616e60008201527f73666572206d6f7265207468616e20796f75722062616c616e63652e00000000602082015250565b600061367e603c83612aae565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f51554553542041493a204164647265737320697320626c61636b6c697374656460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613710602183612aae565b915061371b826136b4565b604082019050919050565b6000602082019050818103600083015261373f81613703565b9050919050565b7f51554553542041493a204c6971756964697479206e6f7420616464656420796560008201527f742e000000000000000000000000000000000000000000000000000000000000602082015250565b60006137a2602283612aae565b91506137ad82613746565b604082019050919050565b600060208201905081810360008301526137d181613795565b9050919050565b7f51554553542041493a2054726164696e672069732063757272656e746c79206460008201527f697361626c65642e000000000000000000000000000000000000000000000000602082015250565b6000613834602883612aae565b915061383f826137d8565b604082019050919050565b6000602082019050818103600083015261386381613827565b9050919050565b7f51554553542041493a204d61782062757920616d6f756e74206578636565646560008201527f642e205472792061206c6f77657220616d6f756e742e00000000000000000000602082015250565b60006138c6603683612aae565b91506138d18261386a565b604082019050919050565b600060208201905081810360008301526138f5816138b9565b9050919050565b600061390782612bb8565b915061391283612bb8565b925082820190508082111561392a57613929612f81565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061399d81612b8c565b92915050565b6000602082840312156139b9576139b8612b55565b5b60006139c78482850161398e565b91505092915050565b6000819050919050565b60006139f56139f06139eb846139d0565b612e75565b612bb8565b9050919050565b613a05816139da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a4081612b7a565b82525050565b6000613a528383613a37565b60208301905092915050565b6000602082019050919050565b6000613a7682613a0b565b613a808185613a16565b9350613a8b83613a27565b8060005b83811015613abc578151613aa38882613a46565b9750613aae83613a5e565b925050600181019050613a8f565b5085935050505092915050565b600060a082019050613ade6000830188612cfd565b613aeb60208301876139fc565b8181036040830152613afd8186613a6b565b9050613b0c6060830185612e0b565b613b196080830184612cfd565b969550505050505056fea2646970667358221220e0652fd087003b4073bce9f0f17279cc997c0fdfb9395442b3f14f89decdcf0e64736f6c634300081800330000000000000000000000009039ac98bab897072a5f75f9abaf53805472238a00000000000000000000000003ba718c593a1e14f3c6c16b37119a09a23a3c6a

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063bf56b37111610095578063e3acfb9111610064578063e3acfb91146106ef578063f2fde38b14610718578063f887ea4014610741578063fdad93021461076c576101ee565b8063bf56b37114610621578063c5730d9d1461064c578063dbac26e914610675578063dd62ed3e146106b2576101ee565b8063a8aa1b31116100d1578063a8aa1b3114610565578063a9059cbb14610590578063aacebbe3146105cd578063aea2d205146105f6576101ee565b80638da5cb5b146104b95780638ea5220f146104e457806391546ab41461050f57806395d89b411461053a576101ee565b8063293230b81161017a57806370a082311161014957806370a08231146103fd578063715018a61461043a57806375f0a874146104515780637c6e0a5e1461047c576101ee565b8063293230b814610367578063313ce5671461037e5780633c8f81d0146103a95780634f3e1efc146103d2576101ee565b806318160ddd116101b657806318160ddd146102ad5780631816467f146102d85780631e53dbe91461030157806323b872dd1461032a576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630961fbf71461025b578063153b0d1e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610795565b6040516102159190612b33565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612bee565b6107d2565b6040516102529190612c49565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612c64565b6108c4565b005b34801561029057600080fd5b506102ab60048036038101906102a69190612cbd565b6109e4565b005b3480156102b957600080fd5b506102c2610ad4565b6040516102cf9190612d0c565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190612d27565b610af8565b005b34801561030d57600080fd5b5061032860048036038101906103239190612d54565b610cdb565b005b34801561033657600080fd5b50610351600480360381019061034c9190612d81565b610d8f565b60405161035e9190612c49565b60405180910390f35b34801561037357600080fd5b5061037c610f51565b005b34801561038a57600080fd5b50610393611024565b6040516103a09190612df0565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb9190612d27565b61102d565b005b3480156103de57600080fd5b506103e761111d565b6040516103f49190612d0c565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f9190612d27565b61116a565b6040516104319190612d0c565b60405180910390f35b34801561044657600080fd5b5061044f6111b3565b005b34801561045d57600080fd5b50610466611306565b6040516104739190612e1a565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190612d27565b61132c565b6040516104b09190612c49565b60405180910390f35b3480156104c557600080fd5b506104ce61135f565b6040516104db9190612e1a565b60405180910390f35b3480156104f057600080fd5b506104f9611388565b6040516105069190612e1a565b60405180910390f35b34801561051b57600080fd5b506105246113ae565b6040516105319190612df0565b60405180910390f35b34801561054657600080fd5b5061054f6113c1565b60405161055c9190612b33565b60405180910390f35b34801561057157600080fd5b5061057a6113fe565b6040516105879190612e1a565b60405180910390f35b34801561059c57600080fd5b506105b760048036038101906105b29190612bee565b611422565b6040516105c49190612c49565b60405180910390f35b3480156105d957600080fd5b506105f460048036038101906105ef9190612d27565b611437565b005b34801561060257600080fd5b5061060b61161a565b6040516106189190612df0565b60405180910390f35b34801561062d57600080fd5b5061063661162d565b6040516106439190612d0c565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e9190612c64565b611633565b005b34801561068157600080fd5b5061069c60048036038101906106979190612d27565b611719565b6040516106a99190612c49565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612e35565b611739565b6040516106e69190612d0c565b60405180910390f35b3480156106fb57600080fd5b5061071660048036038101906107119190612cbd565b6117c0565b005b34801561072457600080fd5b5061073f600480360381019061073a9190612d27565b6118b2565b005b34801561074d57600080fd5b50610756611a73565b6040516107639190612ed4565b60405180910390f35b34801561077857600080fd5b50610793600480360381019061078e9190612cbd565b611a99565b005b60606040518060400160405280600881526020017f5155455354204149000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108b29190612d0c565b60405180910390a36001905092915050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610905611c19565b73ffffffffffffffffffffffffffffffffffffffff161461095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290612f61565b60405180910390fd5b6000479050600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606484846109aa9190612fb0565b6109b49190613021565b9081150290604051600060405180830381858888f193505050501580156109df573d6000803e3d6000fd5b505050565b6109ec611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a709061309e565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012600a610ae491906131f1565b6305f5e100610af39190612fb0565b905090565b610b00611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b849061309e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490613288565b60405180910390fd5b80600e60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1c611c19565b73ffffffffffffffffffffffffffffffffffffffff1614610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990612f61565b60405180910390fd5b80600e60016101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f3d5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebc91906132a8565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f48848484611c21565b90509392505050565b610f59611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd9061309e565b60405180910390fd5b600e60009054906101000a900460ff161561100057600080fd5b6001600e60006101000a81548160ff02191690831515021790555043600d81905550565b60006012905090565b611035611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061309e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611129600061116a565b61113461dead61116a565b6012600a61114291906131f1565b6305f5e1006111519190612fb0565b61115b91906132a8565b61116591906132a8565b905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111bb611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f9061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611358827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107d2565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60159054906101000a900460ff1681565b60606040518060400160405280600581526020017f5155454149000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000b91d0f34f79d6573c8b49fadbcdaff1dc8c9872d81565b600061142f338484611c21565b905092915050565b61143f611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061309e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390613288565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60149054906101000a900460ff1681565b600d5481565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611674611c19565b73ffffffffffffffffffffffffffffffffffffffff16146116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612f61565b60405180910390fd5b60095481111561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690613328565b60405180910390fd5b8060098190555050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611801611c19565b73ffffffffffffffffffffffffffffffffffffffff1614611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f61565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118ba611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e9061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ad906133ba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ada611c19565b73ffffffffffffffffffffffffffffffffffffffff1614611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790612f61565b60405180910390fd5b7f000000000000000000000000b91d0f34f79d6573c8b49fadbcdaff1dc8c9872d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb59061344c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c88906134de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613570565b60405180910390fd5b60008211611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a90613602565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc90613694565b60405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e695750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f90613726565b60405180910390fd5b611eb06123b5565b158015611f065750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fa057600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e906137b8565b60405180910390fd5b611f9f6123c2565b5b600e60009054906101000a900460ff1661209557600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120555750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b9061384a565b60405180910390fd5b5b600e60029054906101000a900460ff16156120bc576120b58484846123cb565b90506123ae565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561215f5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e4576000600c54600b546012600a61217a91906131f1565b6305f5e1006121899190612fb0565b6121939190612fb0565b61219d9190613021565b9050808311156121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d9906138dc565b60405180910390fd5b505b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222f91906132a8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061227d85612559565b6122875782612292565b61229184846125b0565b5b905061229d846126f0565b156122b55760008311156122b4576122b36127cd565b5b5b80600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230091906138fc565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123a09190612d0c565b60405180910390a360019150505b9392505050565b600080600d541415905090565b43600d81905550565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241891906132a8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a691906138fc565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125469190612d0c565b60405180910390a3600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126545750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508061266457829150506126ea565b6000600a54600954856126779190612fb0565b6126819190613021565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126d291906138fc565b9250508190555080846126e591906132a8565b925050505b92915050565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127595750600e60029054906101000a900460ff16155b80156127ae5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156127c65750600e60019054906101000a900460ff165b9050919050565b6001600e60026101000a81548160ff0219169083151502179055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361283a5750612a86565b6000600267ffffffffffffffff81111561285757612856613930565b5b6040519080825280602002602001820160405280156128855781602001602082028036833780820191505090505b509050308160008151811061289d5761289c61395f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612944573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296891906139a3565b8160018151811061297c5761297b61395f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a1a959493929190613ac9565b600060405180830381600087803b158015612a3457600080fd5b505af1158015612a48573d6000803e3d6000fd5b505050507f6730af06a7a0b552d900fed41c1d468b459eaa290e6eefe61a94a339eabbec1c82604051612a7b9190612d0c565b60405180910390a150505b6000600e60026101000a81548160ff021916908315150217905550565b600081519050919050565b600082825260208201905092915050565b60005b83811015612add578082015181840152602081019050612ac2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b0582612aa3565b612b0f8185612aae565b9350612b1f818560208601612abf565b612b2881612ae9565b840191505092915050565b60006020820190508181036000830152612b4d8184612afa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8582612b5a565b9050919050565b612b9581612b7a565b8114612ba057600080fd5b50565b600081359050612bb281612b8c565b92915050565b6000819050919050565b612bcb81612bb8565b8114612bd657600080fd5b50565b600081359050612be881612bc2565b92915050565b60008060408385031215612c0557612c04612b55565b5b6000612c1385828601612ba3565b9250506020612c2485828601612bd9565b9150509250929050565b60008115159050919050565b612c4381612c2e565b82525050565b6000602082019050612c5e6000830184612c3a565b92915050565b600060208284031215612c7a57612c79612b55565b5b6000612c8884828501612bd9565b91505092915050565b612c9a81612c2e565b8114612ca557600080fd5b50565b600081359050612cb781612c91565b92915050565b60008060408385031215612cd457612cd3612b55565b5b6000612ce285828601612ba3565b9250506020612cf385828601612ca8565b9150509250929050565b612d0681612bb8565b82525050565b6000602082019050612d216000830184612cfd565b92915050565b600060208284031215612d3d57612d3c612b55565b5b6000612d4b84828501612ba3565b91505092915050565b600060208284031215612d6a57612d69612b55565b5b6000612d7884828501612ca8565b91505092915050565b600080600060608486031215612d9a57612d99612b55565b5b6000612da886828701612ba3565b9350506020612db986828701612ba3565b9250506040612dca86828701612bd9565b9150509250925092565b600060ff82169050919050565b612dea81612dd4565b82525050565b6000602082019050612e056000830184612de1565b92915050565b612e1481612b7a565b82525050565b6000602082019050612e2f6000830184612e0b565b92915050565b60008060408385031215612e4c57612e4b612b55565b5b6000612e5a85828601612ba3565b9250506020612e6b85828601612ba3565b9150509250929050565b6000819050919050565b6000612e9a612e95612e9084612b5a565b612e75565b612b5a565b9050919050565b6000612eac82612e7f565b9050919050565b6000612ebe82612ea1565b9050919050565b612ece81612eb3565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b7f51554553542041493a2063616c6c6572206973206e6f742061207465616d206d60008201527f656d626572000000000000000000000000000000000000000000000000000000602082015250565b6000612f4b602583612aae565b9150612f5682612eef565b604082019050919050565b60006020820190508181036000830152612f7a81612f3e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fbb82612bb8565b9150612fc683612bb8565b9250828202612fd481612bb8565b91508282048414831517612feb57612fea612f81565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061302c82612bb8565b915061303783612bb8565b92508261304757613046612ff2565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613088602083612aae565b915061309382613052565b602082019050919050565b600060208201905081810360008301526130b78161307b565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613115578086048111156130f1576130f0612f81565b5b60018516156131005780820291505b808102905061310e856130be565b94506130d5565b94509492505050565b60008261312e57600190506131ea565b8161313c57600090506131ea565b8160018114613152576002811461315c5761318b565b60019150506131ea565b60ff84111561316e5761316d612f81565b5b8360020a91508482111561318557613184612f81565b5b506131ea565b5060208310610133831016604e8410600b84101617156131c05782820a9050838111156131bb576131ba612f81565b5b6131ea565b6131cd84848460016130cb565b925090508184048111156131e4576131e3612f81565b5b81810290505b9392505050565b60006131fc82612bb8565b915061320783612dd4565b92506132347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461311e565b905092915050565b7f57616c6c657420616c7265616479207365740000000000000000000000000000600082015250565b6000613272601283612aae565b915061327d8261323c565b602082019050919050565b600060208201905081810360008301526132a181613265565b9050919050565b60006132b382612bb8565b91506132be83612bb8565b92508282039050818111156132d6576132d5612f81565b5b92915050565b7f51554553542041493a2043616e277420696e637265617365206665652e000000600082015250565b6000613312601d83612aae565b915061331d826132dc565b602082019050919050565b6000602082019050818103600083015261334181613305565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133a4602683612aae565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f51554553542041493a2043616e277420616c7465722063757272656e74206c6960008201527f7175696469747920706169722e00000000000000000000000000000000000000602082015250565b6000613436602d83612aae565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b7f51554553542041493a205472616e736665722066726f6d20746865207a65726f60008201527f20616464726573732e0000000000000000000000000000000000000000000000602082015250565b60006134c8602983612aae565b91506134d38261346c565b604082019050919050565b600060208201905081810360008301526134f7816134bb565b9050919050565b7f51554553542041493a205472616e7366657220746f20746865207a65726f206160008201527f6464726573732e00000000000000000000000000000000000000000000000000602082015250565b600061355a602783612aae565b9150613565826134fe565b604082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f51554553542041493a205472616e7366657220616d6f756e74206d757374206260008201527f652067726561746572207468616e207a65726f2e000000000000000000000000602082015250565b60006135ec603483612aae565b91506135f782613590565b604082019050919050565b6000602082019050818103600083015261361b816135df565b9050919050565b7f51554553542041493a20596f752061726520747279696e6720746f207472616e60008201527f73666572206d6f7265207468616e20796f75722062616c616e63652e00000000602082015250565b600061367e603c83612aae565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f51554553542041493a204164647265737320697320626c61636b6c697374656460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613710602183612aae565b915061371b826136b4565b604082019050919050565b6000602082019050818103600083015261373f81613703565b9050919050565b7f51554553542041493a204c6971756964697479206e6f7420616464656420796560008201527f742e000000000000000000000000000000000000000000000000000000000000602082015250565b60006137a2602283612aae565b91506137ad82613746565b604082019050919050565b600060208201905081810360008301526137d181613795565b9050919050565b7f51554553542041493a2054726164696e672069732063757272656e746c79206460008201527f697361626c65642e000000000000000000000000000000000000000000000000602082015250565b6000613834602883612aae565b915061383f826137d8565b604082019050919050565b6000602082019050818103600083015261386381613827565b9050919050565b7f51554553542041493a204d61782062757920616d6f756e74206578636565646560008201527f642e205472792061206c6f77657220616d6f756e742e00000000000000000000602082015250565b60006138c6603683612aae565b91506138d18261386a565b604082019050919050565b600060208201905081810360008301526138f5816138b9565b9050919050565b600061390782612bb8565b915061391283612bb8565b925082820190508082111561392a57613929612f81565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061399d81612b8c565b92915050565b6000602082840312156139b9576139b8612b55565b5b60006139c78482850161398e565b91505092915050565b6000819050919050565b60006139f56139f06139eb846139d0565b612e75565b612bb8565b9050919050565b613a05816139da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a4081612b7a565b82525050565b6000613a528383613a37565b60208301905092915050565b6000602082019050919050565b6000613a7682613a0b565b613a808185613a16565b9350613a8b83613a27565b8060005b83811015613abc578151613aa38882613a46565b9750613aae83613a5e565b925050600181019050613a8f565b5085935050505092915050565b600060a082019050613ade6000830188612cfd565b613aeb60208301876139fc565b8181036040830152613afd8186613a6b565b9050613b0c6060830185612e0b565b613b196080830184612cfd565b969550505050505056fea2646970667358221220e0652fd087003b4073bce9f0f17279cc997c0fdfb9395442b3f14f89decdcf0e64736f6c63430008180033

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

0000000000000000000000009039ac98bab897072a5f75f9abaf53805472238a00000000000000000000000003ba718c593a1e14f3c6c16b37119a09a23a3c6a

-----Decoded View---------------
Arg [0] : _devWallet (address): 0x9039Ac98BAB897072a5f75F9abAf53805472238a
Arg [1] : _marketingWallet (address): 0x03bA718C593a1e14F3c6C16B37119A09A23a3c6a

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000009039ac98bab897072a5f75f9abaf53805472238a
Arg [1] : 00000000000000000000000003ba718c593a1e14f3c6c16b37119a09a23a3c6a


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.