ETH Price: $2,374.10 (-3.61%)

Token

Dex Sniffer (DS)
 

Overview

Max Total Supply

1,000,000,000 DS

Holders

118

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.481915047 DS

Value
$0.00
0x8993dc8951313d9d6dcbf570e367140938612f44
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
DexSniffer

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

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

Website: https://www.dexsniffer.io/

Twitter: https://twitter.com/Dex_Sniffer

Telegram: https://t.me/Dex_Sniffer


*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

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 IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

    function WETH() external pure returns (address);

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

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

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

contract DexSniffer is IERC20Metadata, Ownable {
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxWalletToken;

    address payable public marketingWallet;
    address payable public devWallet;
    address payable public constant burnWallet =
        payable(0x000000000000000000000000000000000000dEaD);

    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 10**9 * 10**_decimals;
    string private constant _name = "Dex Sniffer";
    string private constant _symbol = "DS";

    uint256 public swapMinTokens = _tTotal / 500;

    uint256 public buyTax = 20;
    uint256 public sellTax = 50;
    uint256 public maxTransactionTax = 90;

    uint256 public marketingPct = 40;
    uint256 public devPct = 40;
    uint256 public maxPct = 100;

    uint256 public maxWalletSize = (_tTotal * 2) / maxPct;

    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event UpdatedBuySellTaxes(uint256 buyTax, uint256 sellTax);
    event UpdatedPercentTaxes(uint256 marketing, uint256 dev);
    event UpdatedIsExcludedFromFee(address account, bool flag);
    event UpdatedIsExcludedFromMaxWallet(address account, bool flag);
    event UpdatedMarketingAndDevWallet(address marketing, address dev);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        _tOwned[owner()] = _tTotal;

        address uniswapRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        _uniswapV2Router = IUniswapV2Router02(uniswapRouterAddress);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        address marketing = address(0x1efbfe128509d2cB2CBc9575ab3DC2eEB1654f16);
        address dev = address(0x4C8354abB533213A38e476a5Ec04955b7441C136);

        marketingWallet = payable(marketing);
        devWallet = payable(dev);

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[devWallet] = true;
        isExcludedFromFee[burnWallet] = true;
        isExcludedFromFee[uniswapRouterAddress] = true;

        isExcludedFromMaxWalletToken[uniswapRouterAddress] = true;
        isExcludedFromMaxWalletToken[owner()] = true;
        isExcludedFromMaxWalletToken[address(this)] = true;
        isExcludedFromMaxWalletToken[marketingWallet] = true;
        isExcludedFromMaxWalletToken[devWallet] = true;
        isExcludedFromMaxWalletToken[burnWallet] = true;
        isExcludedFromMaxWalletToken[uniswapV2Pair] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] - subtractedValue
        );
        return true;
    }

    receive() external payable {}

    function _approve(
        address theOwner,
        address theSpender,
        uint256 amount
    ) private {
        require(
            theOwner != address(0) && theSpender != address(0),
            "Zero address."
        );
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);
    }

    function setTax(uint256 buy, uint256 sell) public onlyOwner {
        require(buy <= maxTransactionTax, "Buy tax cannot exceed the maximum.");
        require(
            sell <= maxTransactionTax,
            "Sell tax cannot exceed the maximum."
        );

        buyTax = buy;
        sellTax = sell;

        emit UpdatedBuySellTaxes(buy, sell);
    }

    function setPercentTax(uint256 marketing, uint256 dev) public onlyOwner {
        require(
            marketing + dev == maxPct,
            "The sum of percentages must equal 100."
        );
        marketingPct = marketing;
        devPct = dev;

        emit UpdatedPercentTaxes(marketing, dev);
    }

    function excludeFromFee(address account) external onlyOwner {
        isExcludedFromFee[account] = true;

        emit UpdatedIsExcludedFromFee(account, true);
    }

    function includeInFee(address account) external onlyOwner {
        isExcludedFromFee[account] = false;

        emit UpdatedIsExcludedFromFee(account, false);
    }

    function excludeMaxWallet(address account) external onlyOwner {
        isExcludedFromMaxWalletToken[account] = true;
        emit UpdatedIsExcludedFromMaxWallet(account, true);
    }

    function includeMaxWallet(address account) external onlyOwner {
        isExcludedFromMaxWalletToken[account] = false;
        emit UpdatedIsExcludedFromMaxWallet(account, false);
    }

    function setWallets(address marketing, address dev) public onlyOwner {
        require(
            marketing != address(0) && dev != address(0),
            "Invalid wallet addresses."
        );
        isExcludedFromFee[marketingWallet] = false;
        isExcludedFromFee[devWallet] = false;

        marketingWallet = payable(marketing);
        devWallet = payable(dev);

        isExcludedFromFee[marketing] = true;
        isExcludedFromFee[dev] = true;

        emit UpdatedMarketingAndDevWallet(marketing, dev);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        if (!isExcludedFromMaxWalletToken[to]) {
            uint256 heldTokens = balanceOf(to);
            require(
                (heldTokens + amount) <= maxWalletSize,
                "Over wallet limit."
            );
        }

        require(from != address(0) && to != address(0), "Using 0 address!");

        require(amount > 0, "Token value must be higher than zero.");

        if (
            balanceOf(address(this)) >= swapMinTokens &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair
        ) {
            swapAndDistributeTaxes();
        }

        _tokenTransfer(from, to, amount);
    }

    function multipleAirdrop(
        address[] memory _address,
        uint256[] memory _amount
    ) external onlyOwner {
        require(_address.length == _amount.length, "Arrays length mismatch");
        uint256 totalAmount = 0;
        for (uint256 i = 0; i < _amount.length; i++) {
            totalAmount += _amount[i];
        }
        require(
            balanceOf(msg.sender) >= totalAmount * 10**decimals(),
            "Insufficient balance"
        );

        for (uint256 i = 0; i < _amount.length; i++) {
            address adr = _address[i];
            uint256 amnt = _amount[i] * 10**decimals();
            _transfer(msg.sender, adr, amnt);
        }
    }

    function _sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function setSwapMinTokens(uint256 minTokens) external onlyOwner {
        swapMinTokens = minTokens * 10**decimals();
        require(
            swapMinTokens < totalSupply(),
            "Min tokens for swap is too high."
        );
    }

    function swapAndDistributeTaxes() private lockTheSwap {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 marketingTokensShare = (contractTokenBalance * marketingPct) /
            maxPct;
        uint256 devTokensShare = (contractTokenBalance * devPct) / maxPct;

        uint256 ethBalanceBeforeSwap = address(this).balance;
        swapTokensForETH(marketingTokensShare + devTokensShare);
        uint256 ethReceived = address(this).balance - ethBalanceBeforeSwap;

        uint256 marketingSplit = (marketingPct * maxPct) /
            (marketingPct + devPct);
        uint256 ethToMarketing = (ethReceived * marketingSplit) / maxPct;

        // uint256 devSplit = (devPct * maxPct) / (marketingPct + devPct);
        // uint256 ethToDev = (ethReceived * devSplit) / maxPct;

        _sendToWallet(marketingWallet, ethToMarketing);
        _sendToWallet(devWallet, address(this).balance);
    }

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

    function withdraw() external onlyOwner {
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "DS::Contract balance is empty");

        (bool status, ) = payable(owner()).call{value: contractBalance}("");

        require(status, "DS::Failed to send contract balance");
    }

    function removeStuckTokens(address tokenAddress, uint256 pctOfTokens)
        public
        returns (bool _sent)
    {
        require(tokenAddress != address(this), "Can not remove native token.");
        require(
            pctOfTokens <= 100,
            "Percentage must be less than or equal to 100."
        );
        uint256 totalRandom = IERC20(tokenAddress).balanceOf(address(this));
        uint256 removeRandom = (totalRandom * pctOfTokens) / maxPct;
        _sent = IERC20(tokenAddress).transfer(devWallet, removeRandom);
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 tAmount
    ) private {
        bool isBuy = (from == uniswapV2Pair);
        bool isSell = (to == uniswapV2Pair);
        bool isBuyOrSell = isBuy || isSell;
        bool takeFee = isBuyOrSell &&
            !(isExcludedFromFee[from] || isExcludedFromFee[to]);

        uint256 fee = !takeFee ? 0 : isBuy
            ? (tAmount * buyTax) / maxPct
            : (tAmount * sellTax) / maxPct;
        uint256 tTransferAmount = tAmount - fee;

        _tOwned[from] = _tOwned[from] - tAmount;
        _tOwned[to] = _tOwned[to] + tTransferAmount;
        _tOwned[address(this)] = _tOwned[address(this)] + fee;
        emit Transfer(from, to, tTransferAmount);
        if (to == burnWallet) _tTotal = _tTotal - tTransferAmount;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"UpdatedBuySellTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"UpdatedIsExcludedFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"UpdatedIsExcludedFromMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketing","type":"address"},{"indexed":false,"internalType":"address","name":"dev","type":"address"}],"name":"UpdatedMarketingAndDevWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dev","type":"uint256"}],"name":"UpdatedPercentTaxes","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWalletToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"multipleAirdrop","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"pctOfTokens","type":"uint256"}],"name":"removeStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"name":"setPercentTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minTokens","type":"uint256"}],"name":"setSwapMinTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"dev","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMinTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000c4d565b633b9aca0062000025919062000c9e565b6007556101f46007546200003a919062000d18565b60085560146009556032600a55605a600b556028600c556028600d556064600e55600e5460026007546200006f919062000c9e565b6200007b919062000d18565b600f553480156200008b57600080fd5b50620000ac620000a0620009be60201b60201c565b620009c660201b60201c565b60075460016000620000c362000a8a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef919062000dba565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f919062000dba565b6040518363ffffffff1660e01b8152600401620002be92919062000dfd565b6020604051808303816000875af1158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000dba565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000731efbfe128509d2cb2cbc9575ab3dc2eeb1654f1690506000734c8354abb533213a38e476a5ec04955b7441c136905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360006200040e62000a8a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620006cb62000a8a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200094c62000a8a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620009ad919062000e3b565b60405180910390a350505062000e58565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000b415780860481111562000b195762000b1862000ab3565b5b600185161562000b295780820291505b808102905062000b398562000ae2565b945062000af9565b94509492505050565b60008262000b5c576001905062000c2f565b8162000b6c576000905062000c2f565b816001811462000b85576002811462000b905762000bc6565b600191505062000c2f565b60ff84111562000ba55762000ba462000ab3565b5b8360020a91508482111562000bbf5762000bbe62000ab3565b5b5062000c2f565b5060208310610133831016604e8410600b841016171562000c005782820a90508381111562000bfa5762000bf962000ab3565b5b62000c2f565b62000c0f848484600162000aef565b9250905081840481111562000c295762000c2862000ab3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000c5a8262000c36565b915062000c678362000c40565b925062000c967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b4a565b905092915050565b600062000cab8262000c36565b915062000cb88362000c36565b925082820262000cc88162000c36565b9150828204841483151762000ce25762000ce162000ab3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d258262000c36565b915062000d328362000c36565b92508262000d455762000d4462000ce9565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d828262000d55565b9050919050565b62000d948162000d75565b811462000da057600080fd5b50565b60008151905062000db48162000d89565b92915050565b60006020828403121562000dd35762000dd262000d50565b5b600062000de38482850162000da3565b91505092915050565b62000df78162000d75565b82525050565b600060408201905062000e14600083018562000dec565b62000e23602083018462000dec565b9392505050565b62000e358162000c36565b82525050565b600060208201905062000e52600083018462000e2a565b92915050565b6142fb8062000e686000396000f3fe60806040526004361061024a5760003560e01c80635450e093116101395780638f3fa860116100b6578063a90bb2bf1161007a578063a90bb2bf146108a5578063cc1776d3146108ce578063d3f6a157146108f9578063dd62ed3e14610922578063ea2f0b371461095f578063f2fde38b1461098857610251565b80638f3fa860146107aa578063950fdad7146107d557806395d89b4114610800578063a457c2d71461082b578063a9059cbb1461086857610251565b806370a08231116100fd57806370a08231146106d5578063715018a61461071257806375f0a874146107295780638da5cb5b146107545780638ea5220f1461077f57610251565b80635450e093146105f0578063546417a91461061b578063583e0568146106445780636476b0691461066f578063667f6526146106ac57610251565b806339509351116101c75780634a73a2801161018b5780634a73a2801461050b5780634f7041a5146105345780634fb639f31461055f578063522ac058146105885780635342acb4146105b357610251565b8063395093511461043a5780633ccfd60b14610477578063437823ec1461048e57806343f07b58146104b757806349bd5a5e146104e057610251565b80631783e0521161020e5780631783e0521461035157806318160ddd1461037c578063220f6696146103a757806323b872dd146103d2578063313ce5671461040f57610251565b8063062287491461025657806306fdde0314610281578063095ea7b3146102ac5780630fe0eb0f146102e95780630ff974e71461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109b1565b6040516102789190612da6565b60405180910390f35b34801561028d57600080fd5b506102966109b7565b6040516102a39190612e51565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190612efb565b6109f4565b6040516102e09190612f56565b60405180910390f35b3480156102f557600080fd5b506102fe610a12565b60405161030b9190612f80565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190612f9b565b610a18565b6040516103489190612f56565b60405180910390f35b34801561035d57600080fd5b50610366610a38565b6040516103739190612f80565b60405180910390f35b34801561038857600080fd5b50610391610a3e565b60405161039e9190612f80565b60405180910390f35b3480156103b357600080fd5b506103bc610a48565b6040516103c99190612f56565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190612fc8565b610a5b565b6040516104069190612f56565b60405180910390f35b34801561041b57600080fd5b50610424610b13565b6040516104319190613037565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190612efb565b610b1c565b60405161046e9190612f56565b60405180910390f35b34801561048357600080fd5b5061048c610bc8565b005b34801561049a57600080fd5b506104b560048036038101906104b09190612f9b565b610d43565b005b3480156104c357600080fd5b506104de60048036038101906104d99190612f9b565b610e54565b005b3480156104ec57600080fd5b506104f5610f65565b6040516105029190613061565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d9190613287565b610f8b565b005b34801561054057600080fd5b5061054961118b565b6040516105569190612f80565b60405180910390f35b34801561056b57600080fd5b50610586600480360381019061058191906132ff565b611191565b005b34801561059457600080fd5b5061059d611280565b6040516105aa9190612f80565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d59190612f9b565b611286565b6040516105e79190612f56565b60405180910390f35b3480156105fc57600080fd5b506106056112a6565b6040516106129190612f80565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d9190612f9b565b6112ac565b005b34801561065057600080fd5b506106596113bd565b604051610666919061338b565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190612efb565b6113e3565b6040516106a39190612f56565b60405180910390f35b3480156106b857600080fd5b506106d360048036038101906106ce91906133a6565b6115dc565b005b3480156106e157600080fd5b506106fc60048036038101906106f79190612f9b565b61172d565b6040516107099190612f80565b60405180910390f35b34801561071e57600080fd5b50610727611776565b005b34801561073557600080fd5b5061073e6117fe565b60405161074b9190612da6565b60405180910390f35b34801561076057600080fd5b50610769611824565b6040516107769190613061565b60405180910390f35b34801561078b57600080fd5b5061079461184d565b6040516107a19190612da6565b60405180910390f35b3480156107b657600080fd5b506107bf611873565b6040516107cc9190612f80565b60405180910390f35b3480156107e157600080fd5b506107ea611879565b6040516107f79190612f80565b60405180910390f35b34801561080c57600080fd5b5061081561187f565b6040516108229190612e51565b60405180910390f35b34801561083757600080fd5b50610852600480360381019061084d9190612efb565b6118bc565b60405161085f9190612f56565b60405180910390f35b34801561087457600080fd5b5061088f600480360381019061088a9190612efb565b611968565b60405161089c9190612f56565b60405180910390f35b3480156108b157600080fd5b506108cc60048036038101906108c791906133a6565b611986565b005b3480156108da57600080fd5b506108e3611a9c565b6040516108f09190612f80565b60405180910390f35b34801561090557600080fd5b50610920600480360381019061091b91906133e6565b611aa2565b005b34801561092e57600080fd5b50610949600480360381019061094491906133e6565b611e2a565b6040516109569190612f80565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190612f9b565b611eb1565b005b34801561099457600080fd5b506109af60048036038101906109aa9190612f9b565b611fc2565b005b61dead81565b60606040518060400160405280600b81526020017f44657820536e6966666572000000000000000000000000000000000000000000815250905090565b6000610a08610a016120b9565b84846120c1565b6001905092915050565b600b5481565b60046020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600754905090565b601160149054906101000a900460ff1681565b6000610a68848484612255565b610b0884610a746120b9565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abe6120b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b039190613455565b6120c1565b600190509392505050565b60006009905090565b6000610bbe610b296120b9565b848460026000610b376120b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bb99190613489565b6120c1565b6001905092915050565b610bd06120b9565b73ffffffffffffffffffffffffffffffffffffffff16610bee611824565b73ffffffffffffffffffffffffffffffffffffffff1614610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b90613509565b60405180910390fd5b600047905060008111610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390613575565b60405180910390fd5b6000610c96611824565b73ffffffffffffffffffffffffffffffffffffffff1682604051610cb9906135c6565b60006040518083038185875af1925050503d8060008114610cf6576040519150601f19603f3d011682016040523d82523d6000602084013e610cfb565b606091505b5050905080610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d369061364d565b60405180910390fd5b5050565b610d4b6120b9565b73ffffffffffffffffffffffffffffffffffffffff16610d69611824565b73ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db690613509565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f4347816001604051610e4992919061366d565b60405180910390a150565b610e5c6120b9565b73ffffffffffffffffffffffffffffffffffffffff16610e7a611824565b73ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec790613509565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda411816000604051610f5a92919061366d565b60405180910390a150565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f936120b9565b73ffffffffffffffffffffffffffffffffffffffff16610fb1611824565b73ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613509565b60405180910390fd5b805182511461104b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611042906136e2565b60405180910390fd5b6000805b82518110156110935782818151811061106b5761106a613702565b5b60200260200101518261107e9190613489565b9150808061108b90613731565b91505061104f565b5061109c610b13565b600a6110a891906138ac565b816110b391906138f7565b6110bc3361172d565b10156110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f490613985565b60405180910390fd5b60005b825181101561118557600084828151811061111e5761111d613702565b5b602002602001015190506000611132610b13565b600a61113e91906138ac565b85848151811061115157611150613702565b5b602002602001015161116391906138f7565b9050611170338383612255565b5050808061117d90613731565b915050611100565b50505050565b60095481565b6111996120b9565b73ffffffffffffffffffffffffffffffffffffffff166111b7611824565b73ffffffffffffffffffffffffffffffffffffffff161461120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490613509565b60405180910390fd5b611215610b13565b600a61122191906138ac565b8161122c91906138f7565b60088190555061123a610a3e565b6008541061127d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611274906139f1565b60405180910390fd5b50565b600e5481565b60036020528060005260406000206000915054906101000a900460ff1681565b600c5481565b6112b46120b9565b73ffffffffffffffffffffffffffffffffffffffff166112d2611824565b73ffffffffffffffffffffffffffffffffffffffff1614611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90613509565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda4118160016040516113b292919061366d565b60405180910390a150565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90613a5d565b60405180910390fd5b6064821115611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90613aef565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114d29190613061565b602060405180830381865afa1580156114ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115139190613b24565b90506000600e54848361152691906138f7565b6115309190613b80565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161158f929190613bd2565b6020604051808303816000875af11580156115ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d29190613c27565b9250505092915050565b6115e46120b9565b73ffffffffffffffffffffffffffffffffffffffff16611602611824565b73ffffffffffffffffffffffffffffffffffffffff1614611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613509565b60405180910390fd5b600b5482111561169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490613cc6565b60405180910390fd5b600b548111156116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990613d58565b60405180910390fd5b8160098190555080600a819055507fee384adbada91a649af3c708314e31b6fe6974f02a951d6be3674ad17c956efe8282604051611721929190613d78565b60405180910390a15050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61177e6120b9565b73ffffffffffffffffffffffffffffffffffffffff1661179c611824565b73ffffffffffffffffffffffffffffffffffffffff16146117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990613509565b60405180910390fd5b6117fc6000612490565b565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600d5481565b60606040518060400160405280600281526020017f4453000000000000000000000000000000000000000000000000000000000000815250905090565b600061195e6118c96120b9565b8484600260006118d76120b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119599190613455565b6120c1565b6001905092915050565b600061197c6119756120b9565b8484612255565b6001905092915050565b61198e6120b9565b73ffffffffffffffffffffffffffffffffffffffff166119ac611824565b73ffffffffffffffffffffffffffffffffffffffff1614611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f990613509565b60405180910390fd5b600e548183611a119190613489565b14611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890613e13565b60405180910390fd5b81600c8190555080600d819055507f6675f8bcbf6132f90b29b99d5f4aae60ec816a76eeab53148e434183515b90568282604051611a90929190613d78565b60405180910390a15050565b600a5481565b611aaa6120b9565b73ffffffffffffffffffffffffffffffffffffffff16611ac8611824565b73ffffffffffffffffffffffffffffffffffffffff1614611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590613509565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611b885750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90613e7f565b60405180910390fd5b600060036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600060036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f1e28ff4341fc5e5dbba78e864f67855d4b87ecce752be336375b358c90b529ec8282604051611e1e929190613e9f565b60405180910390a15050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611eb96120b9565b73ffffffffffffffffffffffffffffffffffffffff16611ed7611824565b73ffffffffffffffffffffffffffffffffffffffff1614611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2490613509565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f4347816000604051611fb792919061366d565b60405180910390a150565b611fca6120b9565b73ffffffffffffffffffffffffffffffffffffffff16611fe8611824565b73ffffffffffffffffffffffffffffffffffffffff161461203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613509565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490613f3a565b60405180910390fd5b6120b681612490565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561212b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61216a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216190613fa6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122489190612f80565b60405180910390a3505050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123055760006122b18361172d565b9050600f5482826122c29190613489565b1115612303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fa90614012565b60405180910390fd5b505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561236f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a59061407e565b60405180910390fd5b600081116123f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e890614110565b60405180910390fd5b6008546123fd3061172d565b101580156124185750601160149054906101000a900460ff16155b80156124725750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124805761247f612554565b5b61248b8383836126aa565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160146101000a81548160ff021916908315150217905550600061257a3061172d565b90506000600e54600c548361258f91906138f7565b6125999190613b80565b90506000600e54600d54846125ae91906138f7565b6125b89190613b80565b905060004790506125d382846125ce9190613489565b612ad7565b600081476125e19190613455565b90506000600d54600c546125f59190613489565b600e54600c5461260591906138f7565b61260f9190613b80565b90506000600e54828461262291906138f7565b61262c9190613b80565b905061265a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612d1a565b612686600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1647612d1a565b505050505050506000601160146101000a81548160ff021916908315150217905550565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490506000828061275f5750815b9050600081801561280e5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061280c5750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b155b90506000811561285e578461283d57600e54600a548761282e91906138f7565b6128389190613b80565b612859565b600e546009548761284e91906138f7565b6128589190613b80565b5b612861565b60005b9050600081876128719190613455565b905086600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128be9190613455565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294c9190613489565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129da9190613489565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a7a9190612f80565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1603612acc5780600754612ac59190613455565b6007819055505b505050505050505050565b6000600267ffffffffffffffff811115612af457612af3613081565b5b604051908082528060200260200182016040528015612b225781602001602082028036833780820191505090505b5090503081600081518110612b3a57612b39613702565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c059190614145565b81600181518110612c1957612c18613702565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c8030601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120c1565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ce495949392919061426b565b600060405180830381600087803b158015612cfe57600080fd5b505af1158015612d12573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d60573d6000803e3d6000fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d9082612d65565b9050919050565b612da081612d85565b82525050565b6000602082019050612dbb6000830184612d97565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612dfb578082015181840152602081019050612de0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e2382612dc1565b612e2d8185612dcc565b9350612e3d818560208601612ddd565b612e4681612e07565b840191505092915050565b60006020820190508181036000830152612e6b8184612e18565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000612e9282612d65565b9050919050565b612ea281612e87565b8114612ead57600080fd5b50565b600081359050612ebf81612e99565b92915050565b6000819050919050565b612ed881612ec5565b8114612ee357600080fd5b50565b600081359050612ef581612ecf565b92915050565b60008060408385031215612f1257612f11612e7d565b5b6000612f2085828601612eb0565b9250506020612f3185828601612ee6565b9150509250929050565b60008115159050919050565b612f5081612f3b565b82525050565b6000602082019050612f6b6000830184612f47565b92915050565b612f7a81612ec5565b82525050565b6000602082019050612f956000830184612f71565b92915050565b600060208284031215612fb157612fb0612e7d565b5b6000612fbf84828501612eb0565b91505092915050565b600080600060608486031215612fe157612fe0612e7d565b5b6000612fef86828701612eb0565b935050602061300086828701612eb0565b925050604061301186828701612ee6565b9150509250925092565b600060ff82169050919050565b6130318161301b565b82525050565b600060208201905061304c6000830184613028565b92915050565b61305b81612e87565b82525050565b60006020820190506130766000830184613052565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130b982612e07565b810181811067ffffffffffffffff821117156130d8576130d7613081565b5b80604052505050565b60006130eb612e73565b90506130f782826130b0565b919050565b600067ffffffffffffffff82111561311757613116613081565b5b602082029050602081019050919050565b600080fd5b600061314061313b846130fc565b6130e1565b9050808382526020820190506020840283018581111561316357613162613128565b5b835b8181101561318c57806131788882612eb0565b845260208401935050602081019050613165565b5050509392505050565b600082601f8301126131ab576131aa61307c565b5b81356131bb84826020860161312d565b91505092915050565b600067ffffffffffffffff8211156131df576131de613081565b5b602082029050602081019050919050565b60006132036131fe846131c4565b6130e1565b9050808382526020820190506020840283018581111561322657613225613128565b5b835b8181101561324f578061323b8882612ee6565b845260208401935050602081019050613228565b5050509392505050565b600082601f83011261326e5761326d61307c565b5b813561327e8482602086016131f0565b91505092915050565b6000806040838503121561329e5761329d612e7d565b5b600083013567ffffffffffffffff8111156132bc576132bb612e82565b5b6132c885828601613196565b925050602083013567ffffffffffffffff8111156132e9576132e8612e82565b5b6132f585828601613259565b9150509250929050565b60006020828403121561331557613314612e7d565b5b600061332384828501612ee6565b91505092915050565b6000819050919050565b600061335161334c61334784612d65565b61332c565b612d65565b9050919050565b600061336382613336565b9050919050565b600061337582613358565b9050919050565b6133858161336a565b82525050565b60006020820190506133a0600083018461337c565b92915050565b600080604083850312156133bd576133bc612e7d565b5b60006133cb85828601612ee6565b92505060206133dc85828601612ee6565b9150509250929050565b600080604083850312156133fd576133fc612e7d565b5b600061340b85828601612eb0565b925050602061341c85828601612eb0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061346082612ec5565b915061346b83612ec5565b925082820390508181111561348357613482613426565b5b92915050565b600061349482612ec5565b915061349f83612ec5565b92508282019050808211156134b7576134b6613426565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134f3602083612dcc565b91506134fe826134bd565b602082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b7f44533a3a436f6e74726163742062616c616e636520697320656d707479000000600082015250565b600061355f601d83612dcc565b915061356a82613529565b602082019050919050565b6000602082019050818103600083015261358e81613552565b9050919050565b600081905092915050565b50565b60006135b0600083613595565b91506135bb826135a0565b600082019050919050565b60006135d1826135a3565b9150819050919050565b7f44533a3a4661696c656420746f2073656e6420636f6e74726163742062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000613637602383612dcc565b9150613642826135db565b604082019050919050565b600060208201905081810360008301526136668161362a565b9050919050565b60006040820190506136826000830185613052565b61368f6020830184612f47565b9392505050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b60006136cc601683612dcc565b91506136d782613696565b602082019050919050565b600060208201905081810360008301526136fb816136bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061373c82612ec5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361376e5761376d613426565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156137d0578086048111156137ac576137ab613426565b5b60018516156137bb5780820291505b80810290506137c985613779565b9450613790565b94509492505050565b6000826137e957600190506138a5565b816137f757600090506138a5565b816001811461380d576002811461381757613846565b60019150506138a5565b60ff84111561382957613828613426565b5b8360020a9150848211156138405761383f613426565b5b506138a5565b5060208310610133831016604e8410600b841016171561387b5782820a90508381111561387657613875613426565b5b6138a5565b6138888484846001613786565b9250905081840481111561389f5761389e613426565b5b81810290505b9392505050565b60006138b782612ec5565b91506138c28361301b565b92506138ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137d9565b905092915050565b600061390282612ec5565b915061390d83612ec5565b925082820261391b81612ec5565b9150828204841483151761393257613931613426565b5b5092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061396f601483612dcc565b915061397a82613939565b602082019050919050565b6000602082019050818103600083015261399e81613962565b9050919050565b7f4d696e20746f6b656e7320666f72207377617020697320746f6f20686967682e600082015250565b60006139db602083612dcc565b91506139e6826139a5565b602082019050919050565b60006020820190508181036000830152613a0a816139ce565b9050919050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e2e00000000600082015250565b6000613a47601c83612dcc565b9150613a5282613a11565b602082019050919050565b60006020820190508181036000830152613a7681613a3a565b9050919050565b7f50657263656e74616765206d757374206265206c657373207468616e206f722060008201527f657175616c20746f203130302e00000000000000000000000000000000000000602082015250565b6000613ad9602d83612dcc565b9150613ae482613a7d565b604082019050919050565b60006020820190508181036000830152613b0881613acc565b9050919050565b600081519050613b1e81612ecf565b92915050565b600060208284031215613b3a57613b39612e7d565b5b6000613b4884828501613b0f565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b8b82612ec5565b9150613b9683612ec5565b925082613ba657613ba5613b51565b5b828204905092915050565b6000613bbc82613358565b9050919050565b613bcc81613bb1565b82525050565b6000604082019050613be76000830185613bc3565b613bf46020830184612f71565b9392505050565b613c0481612f3b565b8114613c0f57600080fd5b50565b600081519050613c2181613bfb565b92915050565b600060208284031215613c3d57613c3c612e7d565b5b6000613c4b84828501613c12565b91505092915050565b7f427579207461782063616e6e6f742065786365656420746865206d6178696d7560008201527f6d2e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cb0602283612dcc565b9150613cbb82613c54565b604082019050919050565b60006020820190508181036000830152613cdf81613ca3565b9050919050565b7f53656c6c207461782063616e6e6f742065786365656420746865206d6178696d60008201527f756d2e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613d42602383612dcc565b9150613d4d82613ce6565b604082019050919050565b60006020820190508181036000830152613d7181613d35565b9050919050565b6000604082019050613d8d6000830185612f71565b613d9a6020830184612f71565b9392505050565b7f5468652073756d206f662070657263656e7461676573206d757374206571756160008201527f6c203130302e0000000000000000000000000000000000000000000000000000602082015250565b6000613dfd602683612dcc565b9150613e0882613da1565b604082019050919050565b60006020820190508181036000830152613e2c81613df0565b9050919050565b7f496e76616c69642077616c6c6574206164647265737365732e00000000000000600082015250565b6000613e69601983612dcc565b9150613e7482613e33565b602082019050919050565b60006020820190508181036000830152613e9881613e5c565b9050919050565b6000604082019050613eb46000830185613052565b613ec16020830184613052565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f24602683612dcc565b9150613f2f82613ec8565b604082019050919050565b60006020820190508181036000830152613f5381613f17565b9050919050565b7f5a65726f20616464726573732e00000000000000000000000000000000000000600082015250565b6000613f90600d83612dcc565b9150613f9b82613f5a565b602082019050919050565b60006020820190508181036000830152613fbf81613f83565b9050919050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000613ffc601283612dcc565b915061400782613fc6565b602082019050919050565b6000602082019050818103600083015261402b81613fef565b9050919050565b7f5573696e67203020616464726573732100000000000000000000000000000000600082015250565b6000614068601083612dcc565b915061407382614032565b602082019050919050565b600060208201905081810360008301526140978161405b565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b60006140fa602583612dcc565b91506141058261409e565b604082019050919050565b60006020820190508181036000830152614129816140ed565b9050919050565b60008151905061413f81612e99565b92915050565b60006020828403121561415b5761415a612e7d565b5b600061416984828501614130565b91505092915050565b6000819050919050565b600061419761419261418d84614172565b61332c565b612ec5565b9050919050565b6141a78161417c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141e281612e87565b82525050565b60006141f483836141d9565b60208301905092915050565b6000602082019050919050565b6000614218826141ad565b61422281856141b8565b935061422d836141c9565b8060005b8381101561425e57815161424588826141e8565b975061425083614200565b925050600181019050614231565b5085935050505092915050565b600060a0820190506142806000830188612f71565b61428d602083018761419e565b818103604083015261429f818661420d565b90506142ae6060830185613052565b6142bb6080830184612f71565b969550505050505056fea2646970667358221220e944b606f76842491b9e151759dbc09c2bc9d5d8667ddccf24f6e1dbc61f126d64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c80635450e093116101395780638f3fa860116100b6578063a90bb2bf1161007a578063a90bb2bf146108a5578063cc1776d3146108ce578063d3f6a157146108f9578063dd62ed3e14610922578063ea2f0b371461095f578063f2fde38b1461098857610251565b80638f3fa860146107aa578063950fdad7146107d557806395d89b4114610800578063a457c2d71461082b578063a9059cbb1461086857610251565b806370a08231116100fd57806370a08231146106d5578063715018a61461071257806375f0a874146107295780638da5cb5b146107545780638ea5220f1461077f57610251565b80635450e093146105f0578063546417a91461061b578063583e0568146106445780636476b0691461066f578063667f6526146106ac57610251565b806339509351116101c75780634a73a2801161018b5780634a73a2801461050b5780634f7041a5146105345780634fb639f31461055f578063522ac058146105885780635342acb4146105b357610251565b8063395093511461043a5780633ccfd60b14610477578063437823ec1461048e57806343f07b58146104b757806349bd5a5e146104e057610251565b80631783e0521161020e5780631783e0521461035157806318160ddd1461037c578063220f6696146103a757806323b872dd146103d2578063313ce5671461040f57610251565b8063062287491461025657806306fdde0314610281578063095ea7b3146102ac5780630fe0eb0f146102e95780630ff974e71461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109b1565b6040516102789190612da6565b60405180910390f35b34801561028d57600080fd5b506102966109b7565b6040516102a39190612e51565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190612efb565b6109f4565b6040516102e09190612f56565b60405180910390f35b3480156102f557600080fd5b506102fe610a12565b60405161030b9190612f80565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190612f9b565b610a18565b6040516103489190612f56565b60405180910390f35b34801561035d57600080fd5b50610366610a38565b6040516103739190612f80565b60405180910390f35b34801561038857600080fd5b50610391610a3e565b60405161039e9190612f80565b60405180910390f35b3480156103b357600080fd5b506103bc610a48565b6040516103c99190612f56565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190612fc8565b610a5b565b6040516104069190612f56565b60405180910390f35b34801561041b57600080fd5b50610424610b13565b6040516104319190613037565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190612efb565b610b1c565b60405161046e9190612f56565b60405180910390f35b34801561048357600080fd5b5061048c610bc8565b005b34801561049a57600080fd5b506104b560048036038101906104b09190612f9b565b610d43565b005b3480156104c357600080fd5b506104de60048036038101906104d99190612f9b565b610e54565b005b3480156104ec57600080fd5b506104f5610f65565b6040516105029190613061565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d9190613287565b610f8b565b005b34801561054057600080fd5b5061054961118b565b6040516105569190612f80565b60405180910390f35b34801561056b57600080fd5b50610586600480360381019061058191906132ff565b611191565b005b34801561059457600080fd5b5061059d611280565b6040516105aa9190612f80565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d59190612f9b565b611286565b6040516105e79190612f56565b60405180910390f35b3480156105fc57600080fd5b506106056112a6565b6040516106129190612f80565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d9190612f9b565b6112ac565b005b34801561065057600080fd5b506106596113bd565b604051610666919061338b565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190612efb565b6113e3565b6040516106a39190612f56565b60405180910390f35b3480156106b857600080fd5b506106d360048036038101906106ce91906133a6565b6115dc565b005b3480156106e157600080fd5b506106fc60048036038101906106f79190612f9b565b61172d565b6040516107099190612f80565b60405180910390f35b34801561071e57600080fd5b50610727611776565b005b34801561073557600080fd5b5061073e6117fe565b60405161074b9190612da6565b60405180910390f35b34801561076057600080fd5b50610769611824565b6040516107769190613061565b60405180910390f35b34801561078b57600080fd5b5061079461184d565b6040516107a19190612da6565b60405180910390f35b3480156107b657600080fd5b506107bf611873565b6040516107cc9190612f80565b60405180910390f35b3480156107e157600080fd5b506107ea611879565b6040516107f79190612f80565b60405180910390f35b34801561080c57600080fd5b5061081561187f565b6040516108229190612e51565b60405180910390f35b34801561083757600080fd5b50610852600480360381019061084d9190612efb565b6118bc565b60405161085f9190612f56565b60405180910390f35b34801561087457600080fd5b5061088f600480360381019061088a9190612efb565b611968565b60405161089c9190612f56565b60405180910390f35b3480156108b157600080fd5b506108cc60048036038101906108c791906133a6565b611986565b005b3480156108da57600080fd5b506108e3611a9c565b6040516108f09190612f80565b60405180910390f35b34801561090557600080fd5b50610920600480360381019061091b91906133e6565b611aa2565b005b34801561092e57600080fd5b50610949600480360381019061094491906133e6565b611e2a565b6040516109569190612f80565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190612f9b565b611eb1565b005b34801561099457600080fd5b506109af60048036038101906109aa9190612f9b565b611fc2565b005b61dead81565b60606040518060400160405280600b81526020017f44657820536e6966666572000000000000000000000000000000000000000000815250905090565b6000610a08610a016120b9565b84846120c1565b6001905092915050565b600b5481565b60046020528060005260406000206000915054906101000a900460ff1681565b60085481565b6000600754905090565b601160149054906101000a900460ff1681565b6000610a68848484612255565b610b0884610a746120b9565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abe6120b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b039190613455565b6120c1565b600190509392505050565b60006009905090565b6000610bbe610b296120b9565b848460026000610b376120b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bb99190613489565b6120c1565b6001905092915050565b610bd06120b9565b73ffffffffffffffffffffffffffffffffffffffff16610bee611824565b73ffffffffffffffffffffffffffffffffffffffff1614610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b90613509565b60405180910390fd5b600047905060008111610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390613575565b60405180910390fd5b6000610c96611824565b73ffffffffffffffffffffffffffffffffffffffff1682604051610cb9906135c6565b60006040518083038185875af1925050503d8060008114610cf6576040519150601f19603f3d011682016040523d82523d6000602084013e610cfb565b606091505b5050905080610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d369061364d565b60405180910390fd5b5050565b610d4b6120b9565b73ffffffffffffffffffffffffffffffffffffffff16610d69611824565b73ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db690613509565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f4347816001604051610e4992919061366d565b60405180910390a150565b610e5c6120b9565b73ffffffffffffffffffffffffffffffffffffffff16610e7a611824565b73ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec790613509565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda411816000604051610f5a92919061366d565b60405180910390a150565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f936120b9565b73ffffffffffffffffffffffffffffffffffffffff16610fb1611824565b73ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613509565b60405180910390fd5b805182511461104b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611042906136e2565b60405180910390fd5b6000805b82518110156110935782818151811061106b5761106a613702565b5b60200260200101518261107e9190613489565b9150808061108b90613731565b91505061104f565b5061109c610b13565b600a6110a891906138ac565b816110b391906138f7565b6110bc3361172d565b10156110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f490613985565b60405180910390fd5b60005b825181101561118557600084828151811061111e5761111d613702565b5b602002602001015190506000611132610b13565b600a61113e91906138ac565b85848151811061115157611150613702565b5b602002602001015161116391906138f7565b9050611170338383612255565b5050808061117d90613731565b915050611100565b50505050565b60095481565b6111996120b9565b73ffffffffffffffffffffffffffffffffffffffff166111b7611824565b73ffffffffffffffffffffffffffffffffffffffff161461120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490613509565b60405180910390fd5b611215610b13565b600a61122191906138ac565b8161122c91906138f7565b60088190555061123a610a3e565b6008541061127d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611274906139f1565b60405180910390fd5b50565b600e5481565b60036020528060005260406000206000915054906101000a900460ff1681565b600c5481565b6112b46120b9565b73ffffffffffffffffffffffffffffffffffffffff166112d2611824565b73ffffffffffffffffffffffffffffffffffffffff1614611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90613509565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f99daa791459a6f561a09f304798c43002eb4416e52640c5f42ebdc73a4eda4118160016040516113b292919061366d565b60405180910390a150565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90613a5d565b60405180910390fd5b6064821115611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90613aef565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114d29190613061565b602060405180830381865afa1580156114ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115139190613b24565b90506000600e54848361152691906138f7565b6115309190613b80565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161158f929190613bd2565b6020604051808303816000875af11580156115ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d29190613c27565b9250505092915050565b6115e46120b9565b73ffffffffffffffffffffffffffffffffffffffff16611602611824565b73ffffffffffffffffffffffffffffffffffffffff1614611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613509565b60405180910390fd5b600b5482111561169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490613cc6565b60405180910390fd5b600b548111156116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990613d58565b60405180910390fd5b8160098190555080600a819055507fee384adbada91a649af3c708314e31b6fe6974f02a951d6be3674ad17c956efe8282604051611721929190613d78565b60405180910390a15050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61177e6120b9565b73ffffffffffffffffffffffffffffffffffffffff1661179c611824565b73ffffffffffffffffffffffffffffffffffffffff16146117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990613509565b60405180910390fd5b6117fc6000612490565b565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600d5481565b60606040518060400160405280600281526020017f4453000000000000000000000000000000000000000000000000000000000000815250905090565b600061195e6118c96120b9565b8484600260006118d76120b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119599190613455565b6120c1565b6001905092915050565b600061197c6119756120b9565b8484612255565b6001905092915050565b61198e6120b9565b73ffffffffffffffffffffffffffffffffffffffff166119ac611824565b73ffffffffffffffffffffffffffffffffffffffff1614611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f990613509565b60405180910390fd5b600e548183611a119190613489565b14611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890613e13565b60405180910390fd5b81600c8190555080600d819055507f6675f8bcbf6132f90b29b99d5f4aae60ec816a76eeab53148e434183515b90568282604051611a90929190613d78565b60405180910390a15050565b600a5481565b611aaa6120b9565b73ffffffffffffffffffffffffffffffffffffffff16611ac8611824565b73ffffffffffffffffffffffffffffffffffffffff1614611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590613509565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611b885750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90613e7f565b60405180910390fd5b600060036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600060036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f1e28ff4341fc5e5dbba78e864f67855d4b87ecce752be336375b358c90b529ec8282604051611e1e929190613e9f565b60405180910390a15050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611eb96120b9565b73ffffffffffffffffffffffffffffffffffffffff16611ed7611824565b73ffffffffffffffffffffffffffffffffffffffff1614611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2490613509565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff410d6c4def96d69e5baed8146061b716dd4ace2384481d53122138bbe4f4347816000604051611fb792919061366d565b60405180910390a150565b611fca6120b9565b73ffffffffffffffffffffffffffffffffffffffff16611fe8611824565b73ffffffffffffffffffffffffffffffffffffffff161461203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613509565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490613f3a565b60405180910390fd5b6120b681612490565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561212b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61216a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216190613fa6565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122489190612f80565b60405180910390a3505050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123055760006122b18361172d565b9050600f5482826122c29190613489565b1115612303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fa90614012565b60405180910390fd5b505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561236f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a59061407e565b60405180910390fd5b600081116123f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e890614110565b60405180910390fd5b6008546123fd3061172d565b101580156124185750601160149054906101000a900460ff16155b80156124725750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124805761247f612554565b5b61248b8383836126aa565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160146101000a81548160ff021916908315150217905550600061257a3061172d565b90506000600e54600c548361258f91906138f7565b6125999190613b80565b90506000600e54600d54846125ae91906138f7565b6125b89190613b80565b905060004790506125d382846125ce9190613489565b612ad7565b600081476125e19190613455565b90506000600d54600c546125f59190613489565b600e54600c5461260591906138f7565b61260f9190613b80565b90506000600e54828461262291906138f7565b61262c9190613b80565b905061265a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612d1a565b612686600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1647612d1a565b505050505050506000601160146101000a81548160ff021916908315150217905550565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490506000828061275f5750815b9050600081801561280e5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061280c5750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b155b90506000811561285e578461283d57600e54600a548761282e91906138f7565b6128389190613b80565b612859565b600e546009548761284e91906138f7565b6128589190613b80565b5b612861565b60005b9050600081876128719190613455565b905086600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128be9190613455565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294c9190613489565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129da9190613489565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a7a9190612f80565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1603612acc5780600754612ac59190613455565b6007819055505b505050505050505050565b6000600267ffffffffffffffff811115612af457612af3613081565b5b604051908082528060200260200182016040528015612b225781602001602082028036833780820191505090505b5090503081600081518110612b3a57612b39613702565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c059190614145565b81600181518110612c1957612c18613702565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c8030601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120c1565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ce495949392919061426b565b600060405180830381600087803b158015612cfe57600080fd5b505af1158015612d12573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d60573d6000803e3d6000fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d9082612d65565b9050919050565b612da081612d85565b82525050565b6000602082019050612dbb6000830184612d97565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612dfb578082015181840152602081019050612de0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e2382612dc1565b612e2d8185612dcc565b9350612e3d818560208601612ddd565b612e4681612e07565b840191505092915050565b60006020820190508181036000830152612e6b8184612e18565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000612e9282612d65565b9050919050565b612ea281612e87565b8114612ead57600080fd5b50565b600081359050612ebf81612e99565b92915050565b6000819050919050565b612ed881612ec5565b8114612ee357600080fd5b50565b600081359050612ef581612ecf565b92915050565b60008060408385031215612f1257612f11612e7d565b5b6000612f2085828601612eb0565b9250506020612f3185828601612ee6565b9150509250929050565b60008115159050919050565b612f5081612f3b565b82525050565b6000602082019050612f6b6000830184612f47565b92915050565b612f7a81612ec5565b82525050565b6000602082019050612f956000830184612f71565b92915050565b600060208284031215612fb157612fb0612e7d565b5b6000612fbf84828501612eb0565b91505092915050565b600080600060608486031215612fe157612fe0612e7d565b5b6000612fef86828701612eb0565b935050602061300086828701612eb0565b925050604061301186828701612ee6565b9150509250925092565b600060ff82169050919050565b6130318161301b565b82525050565b600060208201905061304c6000830184613028565b92915050565b61305b81612e87565b82525050565b60006020820190506130766000830184613052565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130b982612e07565b810181811067ffffffffffffffff821117156130d8576130d7613081565b5b80604052505050565b60006130eb612e73565b90506130f782826130b0565b919050565b600067ffffffffffffffff82111561311757613116613081565b5b602082029050602081019050919050565b600080fd5b600061314061313b846130fc565b6130e1565b9050808382526020820190506020840283018581111561316357613162613128565b5b835b8181101561318c57806131788882612eb0565b845260208401935050602081019050613165565b5050509392505050565b600082601f8301126131ab576131aa61307c565b5b81356131bb84826020860161312d565b91505092915050565b600067ffffffffffffffff8211156131df576131de613081565b5b602082029050602081019050919050565b60006132036131fe846131c4565b6130e1565b9050808382526020820190506020840283018581111561322657613225613128565b5b835b8181101561324f578061323b8882612ee6565b845260208401935050602081019050613228565b5050509392505050565b600082601f83011261326e5761326d61307c565b5b813561327e8482602086016131f0565b91505092915050565b6000806040838503121561329e5761329d612e7d565b5b600083013567ffffffffffffffff8111156132bc576132bb612e82565b5b6132c885828601613196565b925050602083013567ffffffffffffffff8111156132e9576132e8612e82565b5b6132f585828601613259565b9150509250929050565b60006020828403121561331557613314612e7d565b5b600061332384828501612ee6565b91505092915050565b6000819050919050565b600061335161334c61334784612d65565b61332c565b612d65565b9050919050565b600061336382613336565b9050919050565b600061337582613358565b9050919050565b6133858161336a565b82525050565b60006020820190506133a0600083018461337c565b92915050565b600080604083850312156133bd576133bc612e7d565b5b60006133cb85828601612ee6565b92505060206133dc85828601612ee6565b9150509250929050565b600080604083850312156133fd576133fc612e7d565b5b600061340b85828601612eb0565b925050602061341c85828601612eb0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061346082612ec5565b915061346b83612ec5565b925082820390508181111561348357613482613426565b5b92915050565b600061349482612ec5565b915061349f83612ec5565b92508282019050808211156134b7576134b6613426565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134f3602083612dcc565b91506134fe826134bd565b602082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b7f44533a3a436f6e74726163742062616c616e636520697320656d707479000000600082015250565b600061355f601d83612dcc565b915061356a82613529565b602082019050919050565b6000602082019050818103600083015261358e81613552565b9050919050565b600081905092915050565b50565b60006135b0600083613595565b91506135bb826135a0565b600082019050919050565b60006135d1826135a3565b9150819050919050565b7f44533a3a4661696c656420746f2073656e6420636f6e74726163742062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000613637602383612dcc565b9150613642826135db565b604082019050919050565b600060208201905081810360008301526136668161362a565b9050919050565b60006040820190506136826000830185613052565b61368f6020830184612f47565b9392505050565b7f417272617973206c656e677468206d69736d6174636800000000000000000000600082015250565b60006136cc601683612dcc565b91506136d782613696565b602082019050919050565b600060208201905081810360008301526136fb816136bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061373c82612ec5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361376e5761376d613426565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156137d0578086048111156137ac576137ab613426565b5b60018516156137bb5780820291505b80810290506137c985613779565b9450613790565b94509492505050565b6000826137e957600190506138a5565b816137f757600090506138a5565b816001811461380d576002811461381757613846565b60019150506138a5565b60ff84111561382957613828613426565b5b8360020a9150848211156138405761383f613426565b5b506138a5565b5060208310610133831016604e8410600b841016171561387b5782820a90508381111561387657613875613426565b5b6138a5565b6138888484846001613786565b9250905081840481111561389f5761389e613426565b5b81810290505b9392505050565b60006138b782612ec5565b91506138c28361301b565b92506138ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137d9565b905092915050565b600061390282612ec5565b915061390d83612ec5565b925082820261391b81612ec5565b9150828204841483151761393257613931613426565b5b5092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061396f601483612dcc565b915061397a82613939565b602082019050919050565b6000602082019050818103600083015261399e81613962565b9050919050565b7f4d696e20746f6b656e7320666f72207377617020697320746f6f20686967682e600082015250565b60006139db602083612dcc565b91506139e6826139a5565b602082019050919050565b60006020820190508181036000830152613a0a816139ce565b9050919050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e2e00000000600082015250565b6000613a47601c83612dcc565b9150613a5282613a11565b602082019050919050565b60006020820190508181036000830152613a7681613a3a565b9050919050565b7f50657263656e74616765206d757374206265206c657373207468616e206f722060008201527f657175616c20746f203130302e00000000000000000000000000000000000000602082015250565b6000613ad9602d83612dcc565b9150613ae482613a7d565b604082019050919050565b60006020820190508181036000830152613b0881613acc565b9050919050565b600081519050613b1e81612ecf565b92915050565b600060208284031215613b3a57613b39612e7d565b5b6000613b4884828501613b0f565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b8b82612ec5565b9150613b9683612ec5565b925082613ba657613ba5613b51565b5b828204905092915050565b6000613bbc82613358565b9050919050565b613bcc81613bb1565b82525050565b6000604082019050613be76000830185613bc3565b613bf46020830184612f71565b9392505050565b613c0481612f3b565b8114613c0f57600080fd5b50565b600081519050613c2181613bfb565b92915050565b600060208284031215613c3d57613c3c612e7d565b5b6000613c4b84828501613c12565b91505092915050565b7f427579207461782063616e6e6f742065786365656420746865206d6178696d7560008201527f6d2e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cb0602283612dcc565b9150613cbb82613c54565b604082019050919050565b60006020820190508181036000830152613cdf81613ca3565b9050919050565b7f53656c6c207461782063616e6e6f742065786365656420746865206d6178696d60008201527f756d2e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613d42602383612dcc565b9150613d4d82613ce6565b604082019050919050565b60006020820190508181036000830152613d7181613d35565b9050919050565b6000604082019050613d8d6000830185612f71565b613d9a6020830184612f71565b9392505050565b7f5468652073756d206f662070657263656e7461676573206d757374206571756160008201527f6c203130302e0000000000000000000000000000000000000000000000000000602082015250565b6000613dfd602683612dcc565b9150613e0882613da1565b604082019050919050565b60006020820190508181036000830152613e2c81613df0565b9050919050565b7f496e76616c69642077616c6c6574206164647265737365732e00000000000000600082015250565b6000613e69601983612dcc565b9150613e7482613e33565b602082019050919050565b60006020820190508181036000830152613e9881613e5c565b9050919050565b6000604082019050613eb46000830185613052565b613ec16020830184613052565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f24602683612dcc565b9150613f2f82613ec8565b604082019050919050565b60006020820190508181036000830152613f5381613f17565b9050919050565b7f5a65726f20616464726573732e00000000000000000000000000000000000000600082015250565b6000613f90600d83612dcc565b9150613f9b82613f5a565b602082019050919050565b60006020820190508181036000830152613fbf81613f83565b9050919050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000613ffc601283612dcc565b915061400782613fc6565b602082019050919050565b6000602082019050818103600083015261402b81613fef565b9050919050565b7f5573696e67203020616464726573732100000000000000000000000000000000600082015250565b6000614068601083612dcc565b915061407382614032565b602082019050919050565b600060208201905081810360008301526140978161405b565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b60006140fa602583612dcc565b91506141058261409e565b604082019050919050565b60006020820190508181036000830152614129816140ed565b9050919050565b60008151905061413f81612e99565b92915050565b60006020828403121561415b5761415a612e7d565b5b600061416984828501614130565b91505092915050565b6000819050919050565b600061419761419261418d84614172565b61332c565b612ec5565b9050919050565b6141a78161417c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141e281612e87565b82525050565b60006141f483836141d9565b60208301905092915050565b6000602082019050919050565b6000614218826141ad565b61422281856141b8565b935061422d836141c9565b8060005b8381101561425e57815161424588826141e8565b975061425083614200565b925050600181019050614231565b5085935050505092915050565b600060a0820190506142806000830188612f71565b61428d602083018761419e565b818103604083015261429f818661420d565b90506142ae6060830185613052565b6142bb6080830184612f71565b969550505050505056fea2646970667358221220e944b606f76842491b9e151759dbc09c2bc9d5d8667ddccf24f6e1dbc61f126d64736f6c63430008130033

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.