ETH Price: $2,383.86 (+0.02%)

Token

FOREVER (TREND)
 

Overview

Max Total Supply

100,000,000 TREND

Holders

172

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
141,388.573514285305950948 TREND

Value
$0.00
0xc45e688c14f4f9c5fb0786a2181c81906931d5bf
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:
TREND

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

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

/*
 /$$$$$$$$ /$$$$$$  /$$$$$$$  /$$$$$$$$ /$$    /$$ /$$$$$$$$ /$$$$$$$
| $$_____//$$__  $$| $$__  $$| $$_____/| $$   | $$| $$_____/| $$__  $$
| $$     | $$  \ $$| $$  \ $$| $$      | $$   | $$| $$      | $$  \ $$
| $$$$$  | $$  | $$| $$$$$$$/| $$$$$   |  $$ / $$/| $$$$$   | $$$$$$$/
| $$__/  | $$  | $$| $$__  $$| $$__/    \  $$ $$/ | $$__/   | $$__  $$
| $$     | $$  | $$| $$  \ $$| $$        \  $$$/  | $$      | $$  \ $$
| $$     |  $$$$$$/| $$  | $$| $$$$$$$$   \  $/   | $$$$$$$$| $$  | $$
|__/      \______/ |__/  |__/|________/    \_/    |________/|__/  |__/

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

*/

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

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

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

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

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

    function WETH() external view returns (address);

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

contract TREND is ERC20, Ownable {

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

    bool private processingFees = false;

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

    uint256 public buyFee;
    uint256 public sellFee;
    uint256 public liquidityShare;
    uint256 public trendingShare;
    uint256 public devShare;

    uint256 public maxWallet;
    uint256 public thresholdToProcessFees;

    address public trending;
    address public dev;
    address public lpWallet;

    mapping(address => bool) excludedAddresses;

    bool public tradingEnabled = false;

    event AMMSet(address indexed pairAddress, bool isAMM);
    event TradingEnabled();
    event NewTrendingWalletSet(address newTreasury);
    event NewDevWalletSet(address newDevWallet);
    event NewLpWalletSet(address newLpWallet);
    event ThresholdToProcessFeesSet(uint256 oldThreshold, uint256 newThreshold);
    event MaxWalletSet(uint256 oldMaxWallet, uint256 newMaxWallet);
    event FeeSet(uint256 buyFee, uint256 sellFee);
    event FeeSharesSet(
        uint256 newBurnAndLiquidityShare,
        uint256 newTreasuryShare,
        uint256 newOpsShare
    );
    event FeesProcessed();
    event ExcludedAddressSet(address indexed excludedAddress, bool isExcluded);

    constructor()
    ERC20("FOREVER", "TREND")
    {
        _mint(address(0xE0a029E3dC9510C3A7D82b233D86A8d8D13CA9ea), 2000000 * 1e18);
        _mint(address(0x34E0539890fD0DD7e8bA86025589d4206E191D5f), 2000000 * 1e18);
        _mint(address(0xfAF0e06693284097e6E1dD0e1628374639C3d566), 2000000 * 1e18);
        _mint(address(0xD52bC5C367413028E05941b8bb44C855C60DD5B1), 2000000 * 1e18);
        _mint(address(0x601bED778E1BC4Fd78bbfA86891d58FD137a7BF1), 2000000 * 1e18);
        _mint(address(0x7DCf73bC2f3Ca8eE105053A6e8CDF2F6e48e520e), 1000000 * 1e18);

        _mint(_msgSender(), 89000000 * 1e18);

        excludedAddresses[address(_msgSender())] = true;

        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        setAMM(address(_pair), true);

        trending = address(0xB024D12eB7B7D21F50BcbEa10922b5e139257c5C);
        dev = address(0x4BE77Df0A25827B83CE2a54593b708CFc386242d);

        excludedAddresses[address(router)] = true;
        excludedAddresses[address(trending)] = true;
        excludedAddresses[address(dev)] = true;

        buyFee = 40000;
        sellFee = 40000;
        liquidityShare = 20000;
        trendingShare = 40000;
        devShare = 40000;

        lpWallet = address(dev);

        maxWallet = 1000000 * 1e18;
        thresholdToProcessFees = 100000 * 1e18;
    }

    receive() external payable {}

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

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

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

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

        uint256 _oldMaxWallet = maxWallet;
        maxWallet = newMaxWallet;
        emit MaxWalletSet(_oldMaxWallet, newMaxWallet);
    }

    function setFee(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee >= 0, "Buy fee is less than 0");
        require(newSellFee >= 0, "Sell fee is less than 0");
        require(newBuyFee != buyFee, "Buy fee is already that percentage");
        require(newSellFee != sellFee, "Sell fee is already that percentage");

        buyFee = newBuyFee;
        sellFee = newSellFee;

        emit FeeSet(buyFee, sellFee);
    }

    function setFeeShares(uint256 newLiquidityShare, uint256 newTrendingShare, uint256 newDevShare) external onlyOwner {
        require(newLiquidityShare + newTrendingShare + newDevShare == 100000,
            "Summed fee shares are not 100% (100000)!"
        );

        liquidityShare = newLiquidityShare;
        trendingShare = newTrendingShare;
        devShare = newDevShare;

        emit FeeSharesSet(
            newLiquidityShare,
            newTrendingShare,
            newDevShare
        );
    }

    function setTrendingWallet(address newTrending) public onlyOwner {
        require(newTrending != address(0), "New treasury can not be address 0x");
        excludedAddresses[address(trending)] = false;
        trending = newTrending;
        excludedAddresses[address(newTrending)] = true;
        emit NewTrendingWalletSet(newTrending);
    }

    function setDevWallet(address newDevWallet) public onlyOwner {
        require(newDevWallet != address(0), "New operations wallet can not be address 0x");
        excludedAddresses[address(dev)] = false;
        dev = newDevWallet;
        excludedAddresses[address(newDevWallet)] = true;
        emit NewDevWalletSet(newDevWallet);
    }

    function setLpWallet(address newLpWallet) public onlyOwner {
        lpWallet = newLpWallet;
        emit NewLpWalletSet(newLpWallet);
    }

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

    function _transfer(address from, address to, uint256 amount) internal override {
        require(tradingEnabled || from == owner(), "Trading will enable when AMM is set");

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

        uint256 _transferAmount = amount;

        if (automatedMarketMakerPair[from] || automatedMarketMakerPair[to]) {
            uint256 _txnFee;

            if (automatedMarketMakerPair[from]) {
                _txnFee = (_transferAmount * buyFee) / 100000;
            }

            if (automatedMarketMakerPair[to]) {
                _txnFee = (_transferAmount * sellFee) / 100000;

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

            _transferAmount = _transferAmount - _txnFee;

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

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

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

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

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

        require(_contractBalance != 0, "Token balance cannot be 0");

        uint256 _liquidityTokens = 0;
        uint256 _swapAmount = _contractBalance;

        if (liquidityShare != 0) {
            _liquidityTokens = (_contractBalance * (liquidityShare / 2)) / 100000;
            _swapAmount = _contractBalance - _liquidityTokens;
        }

        _swapTokensForEth(_swapAmount);

        uint256 _balance = address(this).balance;

        require(_balance != 0, "ETH balance cannot be 0");

        if (liquidityShare != 0) {
            uint256 _ethForLiquidity = (_balance * (liquidityShare / 2)) / 100000;

            _addLiquidityETH(
                address(this),
                _liquidityTokens,
                _ethForLiquidity
            );
        }

        if (trendingShare != 0) {
            uint256 _ethForTrending = (_balance * trendingShare) / 100000;
            (bool trendingSendSuccess,) = trending.call{value : _ethForTrending}("");
            require(trendingSendSuccess, "Transfer to trending failed.");
        }

        if (devShare != 0) {
            uint256 _ethForDev = (_balance * devShare) / 100000;
            (bool devWalletSendSuccess,) = dev.call{value : _ethForDev}("");
            require(devWalletSendSuccess, "Transfer to dev failed.");
        }

        emit FeesProcessed();
    }

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

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

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

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

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

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

    function rescueTokens(address tokenAddress) external onlyOwner {
        IERC20 tokenContract = IERC20(tokenAddress);
        tokenContract.transfer(address(dev), tokenContract.balanceOf(address(this)));
    }

}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pairAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isAMM","type":"bool"}],"name":"AMMSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"excludedAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBurnAndLiquidityShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTreasuryShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newOpsShare","type":"uint256"}],"name":"FeeSharesSet","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMaxWallet","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"MaxWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newDevWallet","type":"address"}],"name":"NewDevWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpWallet","type":"address"}],"name":"NewLpWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newTreasury","type":"address"}],"name":"NewTrendingWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"ThresholdToProcessFeesSet","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"automatedMarketMakerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","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":[],"name":"liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueWETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newTrendingShare","type":"uint256"},{"internalType":"uint256","name":"newDevShare","type":"uint256"}],"name":"setFeeShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"setThresholdToProcessFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTrending","type":"address"}],"name":"setTrendingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thresholdToProcessFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"trending","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trendingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600560146101000a81548160ff0219169083151502179055506000601460006101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600781526020017f464f5245564552000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5452454e440000000000000000000000000000000000000000000000000000008152508160039081620000c5919062000e80565b508060049081620000d7919062000e80565b505050620000fa620000ee6200079860201b60201c565b620007a060201b60201c565b6200012b73e0a029e3dc9510c3a7d82b233d86a8d8d13ca9ea6a01a784379d99db420000006200086660201b60201c565b6200015c7334e0539890fd0dd7e8ba86025589d4206e191d5f6a01a784379d99db420000006200086660201b60201c565b6200018d73faf0e06693284097e6e1dd0e1628374639c3d5666a01a784379d99db420000006200086660201b60201c565b620001be73d52bc5c367413028e05941b8bb44c855c60dd5b16a01a784379d99db420000006200086660201b60201c565b620001ef73601bed778e1bc4fd78bbfa86891d58fd137a7bf16a01a784379d99db420000006200086660201b60201c565b6200021f737dcf73bc2f3ca8ee105053a6e8cdf2f6e48e520e69d3c21bcecceda10000006200086660201b60201c565b6200024b620002336200079860201b60201c565b6a499e7baae53e9cf90000006200086660201b60201c565b600160136000620002616200079860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000377573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039d919062000fd1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000427573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044d919062000fd1565b6040518363ffffffff1660e01b81526004016200046c92919062001014565b6020604051808303816000875af11580156200048c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b2919062000fd1565b9050620004c7816001620009d360201b60201c565b73b024d12eb7b7d21f50bcbea10922b5e139257c5c601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734be77df0a25827b83ce2a54593b708cfc386242d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160136000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550619c40600981905550619c40600a81905550614e20600b81905550619c40600c81905550619c40600d81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555069d3c21bcecceda1000000600e8190555069152d02c7e14af6800000600f8190555050620012a0565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008cf90620010a2565b60405180910390fd5b620008ec6000838362000b4160201b60201c565b8060026000828254620009009190620010f3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009b391906200113f565b60405180910390a3620009cf6000838362000b4660201b60201c565b5050565b620009e362000b4b60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a4c90620011d2565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d878260405162000b35919062001211565b60405180910390a25050565b505050565b505050565b62000b5b6200079860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000b8162000bdc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000bda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bd1906200127e565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c8857607f821691505b60208210810362000c9e5762000c9d62000c40565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cc9565b62000d14868362000cc9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d6162000d5b62000d558462000d2c565b62000d36565b62000d2c565b9050919050565b6000819050919050565b62000d7d8362000d40565b62000d9562000d8c8262000d68565b84845462000cd6565b825550505050565b600090565b62000dac62000d9d565b62000db981848462000d72565b505050565b5b8181101562000de15762000dd560008262000da2565b60018101905062000dbf565b5050565b601f82111562000e305762000dfa8162000ca4565b62000e058462000cb9565b8101602085101562000e15578190505b62000e2d62000e248562000cb9565b83018262000dbe565b50505b505050565b600082821c905092915050565b600062000e556000198460080262000e35565b1980831691505092915050565b600062000e70838362000e42565b9150826002028217905092915050565b62000e8b8262000c06565b67ffffffffffffffff81111562000ea75762000ea662000c11565b5b62000eb3825462000c6f565b62000ec082828562000de5565b600060209050601f83116001811462000ef8576000841562000ee3578287015190505b62000eef858262000e62565b86555062000f5f565b601f19841662000f088662000ca4565b60005b8281101562000f325784890151825560018201915060208501945060208101905062000f0b565b8683101562000f52578489015162000f4e601f89168262000e42565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f998262000f6c565b9050919050565b62000fab8162000f8c565b811462000fb757600080fd5b50565b60008151905062000fcb8162000fa0565b92915050565b60006020828403121562000fea5762000fe962000f67565b5b600062000ffa8482850162000fba565b91505092915050565b6200100e8162000f8c565b82525050565b60006040820190506200102b600083018562001003565b6200103a602083018462001003565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200108a601f8362001041565b9150620010978262001052565b602082019050919050565b60006020820190508181036000830152620010bd816200107b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620011008262000d2c565b91506200110d8362000d2c565b9250828201905080821115620011285762001127620010c4565b5b92915050565b620011398162000d2c565b82525050565b60006020820190506200115660008301846200112e565b92915050565b7f284e65772920414d4d20616464726573732063616e206e6f742062652061646460008201527f7265737320307800000000000000000000000000000000000000000000000000602082015250565b6000620011ba60278362001041565b9150620011c7826200115c565b604082019050919050565b60006020820190508181036000830152620011ed81620011ab565b9050919050565b60008115159050919050565b6200120b81620011f4565b82525050565b600060208201905062001228600083018462001200565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200126660208362001041565b915062001273826200122e565b602082019050919050565b60006020820190508181036000830152620012998162001257565b9050919050565b61490080620012b06000396000f3fe6080604052600436106102545760003560e01c8063715018a611610139578063aed04fae116100b6578063dd62ed3e1161007a578063dd62ed3e14610876578063f196782c146108b3578063f28f7972146108dc578063f2fde38b14610905578063f887ea401461092e578063f8b45b05146109595761025b565b8063aed04fae146107c9578063ba69ebed146107f4578063c38ec0b61461080b578063ce541e0d14610822578063d368371e1461084b5761025b565b806391cca3db116100fd57806391cca3db146106d057806395d89b41146106fb578063a457c2d714610726578063a9059cbb14610763578063a9d3cd8a146107a05761025b565b8063715018a61461060f5780638a8c523c146106265780638da5cb5b1461063d5780638e4955dd1461066857806390aa2ea6146106935761025b565b8063313ce567116101d2578063501ffde711610196578063501ffde71461050157806350b9a9f51461052c57806352f7c988146105555780635d0044ca1461057e5780636303516c146105a757806370a08231146105d25761025b565b8063313ce5671461041a5780633950935114610445578063468c7ee21461048257806347062402146104ab5780634ada218b146104d65761025b565b806318160ddd1161021957806318160ddd146103475780631f53ac021461037257806320800a001461039b57806323b872dd146103b25780632b14ca56146103ef5761025b565b8062ae3bf81461026057806306fdde0314610289578063095ea7b3146102b45780630ac249d5146102f157806315291cd41461031c5761025b565b3661025b57005b600080fd5b34801561026c57600080fd5b5061028760048036038101906102829190612fba565b610984565b005b34801561029557600080fd5b5061029e610aaf565b6040516102ab9190613077565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d691906130cf565b610b41565b6040516102e8919061312a565b60405180910390f35b3480156102fd57600080fd5b50610306610b64565b6040516103139190613154565b60405180910390f35b34801561032857600080fd5b50610331610b8a565b60405161033e919061317e565b60405180910390f35b34801561035357600080fd5b5061035c610b90565b604051610369919061317e565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190612fba565b610b9a565b005b3480156103a757600080fd5b506103b0610d5e565b005b3480156103be57600080fd5b506103d960048036038101906103d49190613199565b610e80565b6040516103e6919061312a565b60405180910390f35b3480156103fb57600080fd5b50610404610eaf565b604051610411919061317e565b60405180910390f35b34801561042657600080fd5b5061042f610eb5565b60405161043c9190613208565b60405180910390f35b34801561045157600080fd5b5061046c600480360381019061046791906130cf565b610ebe565b604051610479919061312a565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190612fba565b610ef5565b005b3480156104b757600080fd5b506104c0610f78565b6040516104cd919061317e565b60405180910390f35b3480156104e257600080fd5b506104eb610f7e565b6040516104f8919061312a565b60405180910390f35b34801561050d57600080fd5b50610516610f91565b6040516105239190613154565b60405180910390f35b34801561053857600080fd5b50610553600480360381019061054e9190613223565b610fb7565b005b34801561056157600080fd5b5061057c60048036038101906105779190613250565b611056565b005b34801561058a57600080fd5b506105a560048036038101906105a09190613223565b6111bd565b005b3480156105b357600080fd5b506105bc6112ab565b6040516105c99190613154565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190612fba565b6112d1565b604051610606919061317e565b60405180910390f35b34801561061b57600080fd5b50610624611319565b005b34801561063257600080fd5b5061063b61132d565b005b34801561064957600080fd5b506106526113ce565b60405161065f9190613154565b60405180910390f35b34801561067457600080fd5b5061067d6113f8565b60405161068a919061317e565b60405180910390f35b34801561069f57600080fd5b506106ba60048036038101906106b59190612fba565b6113fe565b6040516106c7919061312a565b60405180910390f35b3480156106dc57600080fd5b506106e561141e565b6040516106f29190613154565b60405180910390f35b34801561070757600080fd5b50610710611444565b60405161071d9190613077565b60405180910390f35b34801561073257600080fd5b5061074d600480360381019061074891906130cf565b6114d6565b60405161075a919061312a565b60405180910390f35b34801561076f57600080fd5b5061078a600480360381019061078591906130cf565b61154d565b604051610797919061312a565b60405180910390f35b3480156107ac57600080fd5b506107c760048036038101906107c291906132bc565b611570565b005b3480156107d557600080fd5b506107de6116d1565b6040516107eb919061317e565b60405180910390f35b34801561080057600080fd5b506108096116d7565b005b34801561081757600080fd5b50610820611a62565b005b34801561082e57600080fd5b5061084960048036038101906108449190612fba565b611be6565b005b34801561085757600080fd5b50610860611daa565b60405161086d919061317e565b60405180910390f35b34801561088257600080fd5b5061089d600480360381019061089891906132fc565b611db0565b6040516108aa919061317e565b60405180910390f35b3480156108bf57600080fd5b506108da60048036038101906108d591906132bc565b611e37565b005b3480156108e857600080fd5b5061090360048036038101906108fe919061333c565b611f57565b005b34801561091157600080fd5b5061092c60048036038101906109279190612fba565b61200f565b005b34801561093a57600080fd5b50610943612092565b60405161095091906133ee565b60405180910390f35b34801561096557600080fd5b5061096e6120b8565b60405161097b919061317e565b60405180910390f35b61098c6120be565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a099190613154565b602060405180830381865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a919061341e565b6040518363ffffffff1660e01b8152600401610a6792919061344b565b6020604051808303816000875af1158015610a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa9190613489565b505050565b606060038054610abe906134e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea906134e5565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b600080610b4c61213c565b9050610b59818585612144565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600254905090565b610ba26120be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890613588565b60405180910390fd5b600060136000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f51482c4aa4bc4e2beea6780677baa5397a7654163858238af5593173c347d9b781604051610d539190613154565b60405180910390a150565b610d666120be565b600047905060008111610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da5906135f4565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610df690613645565b60006040518083038185875af1925050503d8060008114610e33576040519150601f19603f3d011682016040523d82523d6000602084013e610e38565b606091505b5050905080610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e73906136a6565b60405180910390fd5b5050565b600080610e8b61213c565b9050610e9885828561230d565b610ea3858585612399565b60019150509392505050565b600a5481565b60006012905090565b600080610ec961213c565b9050610eea818585610edb8589611db0565b610ee591906136f5565b612144565b600191505092915050565b610efd6120be565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9e77f14f2f2fd349500bebec446fdae4cbdafd5f17d18997a7382d3cb8e8c53b81604051610f6d9190613154565b60405180910390a150565b60095481565b601460009054906101000a900460ff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fbf6120be565b683635c9adc5dea0000081101561100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290613775565b60405180910390fd5b6000600f54905081600f819055507f046078a3b350ab7ef8b49720ee84ad777c5172459d33cff8e353c3b9b04757ea818360405161104a929190613795565b60405180910390a15050565b61105e6120be565b60008210156110a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110999061380a565b60405180910390fd5b60008110156110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90613876565b60405180910390fd5b600954820361112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190613908565b60405180910390fd5b600a54810361116e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111659061399a565b60405180910390fd5b8160098190555080600a819055507f74dbbbe280ef27b79a8a0c449d5ae2ba7a31849103241d0f98df70bbc9d03e37600954600a546040516111b1929190613795565b60405180910390a15050565b6111c56120be565b6969e10de76676d0800000811015611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120990613a2c565b60405180910390fd5b6a14adf4b7320334b9000000811115611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790613abe565b60405180910390fd5b6000600e54905081600e819055507f35f2577625659032d553fbc001320996b756a5dae410a0b74e931934e020464b818360405161129f929190613795565b60405180910390a15050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113216120be565b61132b6000612859565b565b6113356120be565b601460009054906101000a900460ff1615611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c90613b2a565b60405180910390fd5b6001601460006101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60086020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611453906134e5565b80601f016020809104026020016040519081016040528092919081815260200182805461147f906134e5565b80156114cc5780601f106114a1576101008083540402835291602001916114cc565b820191906000526020600020905b8154815290600101906020018083116114af57829003601f168201915b5050505050905090565b6000806114e161213c565b905060006114ef8286611db0565b905083811015611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90613bbc565b60405180910390fd5b6115418286868403612144565b60019250505092915050565b60008061155861213c565b9050611565818585612399565b600191505092915050565b6115786120be565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613c4e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87826040516116c5919061312a565b60405180910390a25050565b600d5481565b6001600560146101000a81548160ff02191690831515021790555060006116fd306112d1565b905060008103611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613cba565b60405180910390fd5b6000808290506000600b541461178b57620186a06002600b546117659190613d09565b846117709190613d3a565b61177a9190613d09565b915081836117889190613d7c565b90505b6117948161291f565b6000479050600081036117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390613dfc565b60405180910390fd5b6000600b541461181f576000620186a06002600b546117fb9190613d09565b836118069190613d3a565b6118109190613d09565b905061181d308583612b62565b505b6000600c541461191a576000620186a0600c548361183d9190613d3a565b6118479190613d09565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161189190613645565b60006040518083038185875af1925050503d80600081146118ce576040519150601f19603f3d011682016040523d82523d6000602084013e6118d3565b606091505b5050905080611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e90613e68565b60405180910390fd5b50505b6000600d5414611a15576000620186a0600d54836119389190613d3a565b6119429190613d09565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161198c90613645565b60006040518083038185875af1925050503d80600081146119c9576040519150601f19603f3d011682016040523d82523d6000602084013e6119ce565b606091505b5050905080611a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0990613ed4565b60405180910390fd5b50505b7f073f67f6b2a495a773c8f33582c762d9c1a89fec310d1e2ce2808b4ff65d829060405160405180910390a1505050506000600560146101000a81548160ff021916908315150217905550565b611a6a6120be565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd9190613f09565b90508073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b549190613154565b602060405180830381865afa158015611b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b95919061341e565b6040518263ffffffff1660e01b8152600401611bb1919061317e565b600060405180830381600087803b158015611bcb57600080fd5b505af1158015611bdf573d6000803e3d6000fd5b5050505050565b611bee6120be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5490613fa8565b60405180910390fd5b600060136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f762a91df9c0fb43542ae3e9efc29bd474b24e1b79b054f1c407ee24940362fbf81604051611d9f9190613154565b60405180910390a150565b600f5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e3f6120be565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea59061403a565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f33e99dbd8a2fdf021abaf8531c98838a37f8e85fd3cbf0e897047074f9c4ecf482604051611f4b919061312a565b60405180910390a25050565b611f5f6120be565b620186a0818385611f7091906136f5565b611f7a91906136f5565b14611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb1906140cc565b60405180910390fd5b82600b8190555081600c8190555080600d819055507f192b126d6d86e50716742827858f2c3edda14906a341f1fc234c27fc1e4c8f8b838383604051612002939291906140ec565b60405180910390a1505050565b6120176120be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d90614195565b60405180910390fd5b61208f81612859565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6120c661213c565b73ffffffffffffffffffffffffffffffffffffffff166120e46113ce565b73ffffffffffffffffffffffffffffffffffffffff161461213a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213190614201565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90614293565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990614325565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612300919061317e565b60405180910390a3505050565b60006123198484611db0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146123935781811015612385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237c90614391565b60405180910390fd5b6123928484848403612144565b5b50505050565b601460009054906101000a900460ff16806123e657506123b76113ce565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c90614423565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124c65750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124db576124d6838383612cd7565b612854565b6000819050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125815750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127bd576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125f957620186a0600954836125ec9190613d3a565b6125f69190613d09565b90505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561269f57620186a0600a548361265d9190613d3a565b6126679190613d09565b9050600560149054906101000a900460ff161580156126905750600f5461268d306112d1565b10155b1561269e5761269d6116d7565b5b5b80826126ab9190613d7c565b9150600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127b057600e5482612764600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275d578761275f565b865b6112d1565b61276e91906136f5565b11156127af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a69061448f565b60405180910390fd5b5b6127bb853083612cd7565b505b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128235750600560149054906101000a900460ff16155b80156128395750600f54612836306112d1565b10155b15612847576128466116d7565b5b612852848483612cd7565b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff81111561293c5761293b6144af565b5b60405190808252806020026020018201604052801561296a5781602001602082028036833780820191505090505b5090503081600081518110612982576129816144de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4d9190613f09565b81600181518110612a6157612a606144de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ac830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612144565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b2c959493929190614606565b600060405180830381600087803b158015612b4657600080fd5b505af1158015612b5a573d6000803e3d6000fd5b505050505050565b8273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612bbf92919061344b565b6020604051808303816000875af1158015612bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c029190613489565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719828585600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c8c96959493929190614660565b60606040518083038185885af1158015612caa573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ccf91906146c1565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3d90614786565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dac90614818565b60405180910390fd5b612dc0838383612f4d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3d906148aa565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f34919061317e565b60405180910390a3612f47848484612f52565b50505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f8782612f5c565b9050919050565b612f9781612f7c565b8114612fa257600080fd5b50565b600081359050612fb481612f8e565b92915050565b600060208284031215612fd057612fcf612f57565b5b6000612fde84828501612fa5565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613021578082015181840152602081019050613006565b60008484015250505050565b6000601f19601f8301169050919050565b600061304982612fe7565b6130538185612ff2565b9350613063818560208601613003565b61306c8161302d565b840191505092915050565b60006020820190508181036000830152613091818461303e565b905092915050565b6000819050919050565b6130ac81613099565b81146130b757600080fd5b50565b6000813590506130c9816130a3565b92915050565b600080604083850312156130e6576130e5612f57565b5b60006130f485828601612fa5565b9250506020613105858286016130ba565b9150509250929050565b60008115159050919050565b6131248161310f565b82525050565b600060208201905061313f600083018461311b565b92915050565b61314e81612f7c565b82525050565b60006020820190506131696000830184613145565b92915050565b61317881613099565b82525050565b6000602082019050613193600083018461316f565b92915050565b6000806000606084860312156131b2576131b1612f57565b5b60006131c086828701612fa5565b93505060206131d186828701612fa5565b92505060406131e2868287016130ba565b9150509250925092565b600060ff82169050919050565b613202816131ec565b82525050565b600060208201905061321d60008301846131f9565b92915050565b60006020828403121561323957613238612f57565b5b6000613247848285016130ba565b91505092915050565b6000806040838503121561326757613266612f57565b5b6000613275858286016130ba565b9250506020613286858286016130ba565b9150509250929050565b6132998161310f565b81146132a457600080fd5b50565b6000813590506132b681613290565b92915050565b600080604083850312156132d3576132d2612f57565b5b60006132e185828601612fa5565b92505060206132f2858286016132a7565b9150509250929050565b6000806040838503121561331357613312612f57565b5b600061332185828601612fa5565b925050602061333285828601612fa5565b9150509250929050565b60008060006060848603121561335557613354612f57565b5b6000613363868287016130ba565b9350506020613374868287016130ba565b9250506040613385868287016130ba565b9150509250925092565b6000819050919050565b60006133b46133af6133aa84612f5c565b61338f565b612f5c565b9050919050565b60006133c682613399565b9050919050565b60006133d8826133bb565b9050919050565b6133e8816133cd565b82525050565b600060208201905061340360008301846133df565b92915050565b600081519050613418816130a3565b92915050565b60006020828403121561343457613433612f57565b5b600061344284828501613409565b91505092915050565b60006040820190506134606000830185613145565b61346d602083018461316f565b9392505050565b60008151905061348381613290565b92915050565b60006020828403121561349f5761349e612f57565b5b60006134ad84828501613474565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134fd57607f821691505b6020821081036135105761350f6134b6565b5b50919050565b7f4e6577206f7065726174696f6e732077616c6c65742063616e206e6f7420626560008201527f2061646472657373203078000000000000000000000000000000000000000000602082015250565b6000613572602b83612ff2565b915061357d82613516565b604082019050919050565b600060208201905081810360008301526135a181613565565b9050919050565b7f4e6f2045544820746f2077697468647261770000000000000000000000000000600082015250565b60006135de601283612ff2565b91506135e9826135a8565b602082019050919050565b6000602082019050818103600083015261360d816135d1565b9050919050565b600081905092915050565b50565b600061362f600083613614565b915061363a8261361f565b600082019050919050565b600061365082613622565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b6000613690601383612ff2565b915061369b8261365a565b602082019050919050565b600060208201905081810360008301526136bf81613683565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061370082613099565b915061370b83613099565b9250828201905080821115613723576137226136c6565b5b92915050565b7f3130303020697320746865206d696e6d756d0000000000000000000000000000600082015250565b600061375f601283612ff2565b915061376a82613729565b602082019050919050565b6000602082019050818103600083015261378e81613752565b9050919050565b60006040820190506137aa600083018561316f565b6137b7602083018461316f565b9392505050565b7f42757920666565206973206c657373207468616e203000000000000000000000600082015250565b60006137f4601683612ff2565b91506137ff826137be565b602082019050919050565b60006020820190508181036000830152613823816137e7565b9050919050565b7f53656c6c20666565206973206c657373207468616e2030000000000000000000600082015250565b6000613860601783612ff2565b915061386b8261382a565b602082019050919050565b6000602082019050818103600083015261388f81613853565b9050919050565b7f4275792066656520697320616c726561647920746861742070657263656e746160008201527f6765000000000000000000000000000000000000000000000000000000000000602082015250565b60006138f2602283612ff2565b91506138fd82613896565b604082019050919050565b60006020820190508181036000830152613921816138e5565b9050919050565b7f53656c6c2066656520697320616c726561647920746861742070657263656e7460008201527f6167650000000000000000000000000000000000000000000000000000000000602082015250565b6000613984602383612ff2565b915061398f82613928565b604082019050919050565b600060208201905081810360008301526139b381613977565b9050919050565b7f4d61782077616c6c6574206973206c65737320746865206d696e696d756d207460008201527f68656e20302c3525206f6620746f74616c537570706c79000000000000000000602082015250565b6000613a16603783612ff2565b9150613a21826139ba565b604082019050919050565b60006020820190508181036000830152613a4581613a09565b9050919050565b7f4d61782077616c6c6574206973206d6f726520746865206d6178696d756d207460008201527f68616e20323525206f6620746f74616c537570706c7900000000000000000000602082015250565b6000613aa8603683612ff2565b9150613ab382613a4c565b604082019050919050565b60006020820190508181036000830152613ad781613a9b565b9050919050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613b14601a83612ff2565b9150613b1f82613ade565b602082019050919050565b60006020820190508181036000830152613b4381613b07565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613ba6602583612ff2565b9150613bb182613b4a565b604082019050919050565b60006020820190508181036000830152613bd581613b99565b9050919050565b7f284e65772920414d4d20616464726573732063616e206e6f742062652061646460008201527f7265737320307800000000000000000000000000000000000000000000000000602082015250565b6000613c38602783612ff2565b9150613c4382613bdc565b604082019050919050565b60006020820190508181036000830152613c6781613c2b565b9050919050565b7f546f6b656e2062616c616e63652063616e6e6f74206265203000000000000000600082015250565b6000613ca4601983612ff2565b9150613caf82613c6e565b602082019050919050565b60006020820190508181036000830152613cd381613c97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d1482613099565b9150613d1f83613099565b925082613d2f57613d2e613cda565b5b828204905092915050565b6000613d4582613099565b9150613d5083613099565b9250828202613d5e81613099565b91508282048414831517613d7557613d746136c6565b5b5092915050565b6000613d8782613099565b9150613d9283613099565b9250828203905081811115613daa57613da96136c6565b5b92915050565b7f4554482062616c616e63652063616e6e6f742062652030000000000000000000600082015250565b6000613de6601783612ff2565b9150613df182613db0565b602082019050919050565b60006020820190508181036000830152613e1581613dd9565b9050919050565b7f5472616e7366657220746f207472656e64696e67206661696c65642e00000000600082015250565b6000613e52601c83612ff2565b9150613e5d82613e1c565b602082019050919050565b60006020820190508181036000830152613e8181613e45565b9050919050565b7f5472616e7366657220746f20646576206661696c65642e000000000000000000600082015250565b6000613ebe601783612ff2565b9150613ec982613e88565b602082019050919050565b60006020820190508181036000830152613eed81613eb1565b9050919050565b600081519050613f0381612f8e565b92915050565b600060208284031215613f1f57613f1e612f57565b5b6000613f2d84828501613ef4565b91505092915050565b7f4e65772074726561737572792063616e206e6f7420626520616464726573732060008201527f3078000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f92602283612ff2565b9150613f9d82613f36565b604082019050919050565b60006020820190508181036000830152613fc181613f85565b9050919050565b7f284e657729206578636c7564656420616464726573732063616e206e6f74206260008201527f6520616464726573732030780000000000000000000000000000000000000000602082015250565b6000614024602c83612ff2565b915061402f82613fc8565b604082019050919050565b6000602082019050818103600083015261405381614017565b9050919050565b7f53756d6d6564206665652073686172657320617265206e6f742031303025202860008201527f3130303030302921000000000000000000000000000000000000000000000000602082015250565b60006140b6602883612ff2565b91506140c18261405a565b604082019050919050565b600060208201905081810360008301526140e5816140a9565b9050919050565b6000606082019050614101600083018661316f565b61410e602083018561316f565b61411b604083018461316f565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061417f602683612ff2565b915061418a82614123565b604082019050919050565b600060208201905081810360008301526141ae81614172565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141eb602083612ff2565b91506141f6826141b5565b602082019050919050565b6000602082019050818103600083015261421a816141de565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061427d602483612ff2565b915061428882614221565b604082019050919050565b600060208201905081810360008301526142ac81614270565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061430f602283612ff2565b915061431a826142b3565b604082019050919050565b6000602082019050818103600083015261433e81614302565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061437b601d83612ff2565b915061438682614345565b602082019050919050565b600060208201905081810360008301526143aa8161436e565b9050919050565b7f54726164696e672077696c6c20656e61626c65207768656e20414d4d2069732060008201527f7365740000000000000000000000000000000000000000000000000000000000602082015250565b600061440d602383612ff2565b9150614418826143b1565b604082019050919050565b6000602082019050818103600083015261443c81614400565b9050919050565b7f7472616e73616374696f6e2065786365656473206d61782077616c6c65740000600082015250565b6000614479601e83612ff2565b915061448482614443565b602082019050919050565b600060208201905081810360008301526144a88161446c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061453261452d6145288461450d565b61338f565b613099565b9050919050565b61454281614517565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61457d81612f7c565b82525050565b600061458f8383614574565b60208301905092915050565b6000602082019050919050565b60006145b382614548565b6145bd8185614553565b93506145c883614564565b8060005b838110156145f95781516145e08882614583565b97506145eb8361459b565b9250506001810190506145cc565b5085935050505092915050565b600060a08201905061461b600083018861316f565b6146286020830187614539565b818103604083015261463a81866145a8565b90506146496060830185613145565b614656608083018461316f565b9695505050505050565b600060c0820190506146756000830189613145565b614682602083018861316f565b61468f6040830187614539565b61469c6060830186614539565b6146a96080830185613145565b6146b660a083018461316f565b979650505050505050565b6000806000606084860312156146da576146d9612f57565b5b60006146e886828701613409565b93505060206146f986828701613409565b925050604061470a86828701613409565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614770602583612ff2565b915061477b82614714565b604082019050919050565b6000602082019050818103600083015261479f81614763565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614802602383612ff2565b915061480d826147a6565b604082019050919050565b60006020820190508181036000830152614831816147f5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614894602683612ff2565b915061489f82614838565b604082019050919050565b600060208201905081810360008301526148c381614887565b905091905056fea2646970667358221220d098b996950fc4cf74e1236f7ccc1f6219fd538be9494e86f4d4daff4981be2764736f6c63430008140033

Deployed Bytecode

0x6080604052600436106102545760003560e01c8063715018a611610139578063aed04fae116100b6578063dd62ed3e1161007a578063dd62ed3e14610876578063f196782c146108b3578063f28f7972146108dc578063f2fde38b14610905578063f887ea401461092e578063f8b45b05146109595761025b565b8063aed04fae146107c9578063ba69ebed146107f4578063c38ec0b61461080b578063ce541e0d14610822578063d368371e1461084b5761025b565b806391cca3db116100fd57806391cca3db146106d057806395d89b41146106fb578063a457c2d714610726578063a9059cbb14610763578063a9d3cd8a146107a05761025b565b8063715018a61461060f5780638a8c523c146106265780638da5cb5b1461063d5780638e4955dd1461066857806390aa2ea6146106935761025b565b8063313ce567116101d2578063501ffde711610196578063501ffde71461050157806350b9a9f51461052c57806352f7c988146105555780635d0044ca1461057e5780636303516c146105a757806370a08231146105d25761025b565b8063313ce5671461041a5780633950935114610445578063468c7ee21461048257806347062402146104ab5780634ada218b146104d65761025b565b806318160ddd1161021957806318160ddd146103475780631f53ac021461037257806320800a001461039b57806323b872dd146103b25780632b14ca56146103ef5761025b565b8062ae3bf81461026057806306fdde0314610289578063095ea7b3146102b45780630ac249d5146102f157806315291cd41461031c5761025b565b3661025b57005b600080fd5b34801561026c57600080fd5b5061028760048036038101906102829190612fba565b610984565b005b34801561029557600080fd5b5061029e610aaf565b6040516102ab9190613077565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d691906130cf565b610b41565b6040516102e8919061312a565b60405180910390f35b3480156102fd57600080fd5b50610306610b64565b6040516103139190613154565b60405180910390f35b34801561032857600080fd5b50610331610b8a565b60405161033e919061317e565b60405180910390f35b34801561035357600080fd5b5061035c610b90565b604051610369919061317e565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190612fba565b610b9a565b005b3480156103a757600080fd5b506103b0610d5e565b005b3480156103be57600080fd5b506103d960048036038101906103d49190613199565b610e80565b6040516103e6919061312a565b60405180910390f35b3480156103fb57600080fd5b50610404610eaf565b604051610411919061317e565b60405180910390f35b34801561042657600080fd5b5061042f610eb5565b60405161043c9190613208565b60405180910390f35b34801561045157600080fd5b5061046c600480360381019061046791906130cf565b610ebe565b604051610479919061312a565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190612fba565b610ef5565b005b3480156104b757600080fd5b506104c0610f78565b6040516104cd919061317e565b60405180910390f35b3480156104e257600080fd5b506104eb610f7e565b6040516104f8919061312a565b60405180910390f35b34801561050d57600080fd5b50610516610f91565b6040516105239190613154565b60405180910390f35b34801561053857600080fd5b50610553600480360381019061054e9190613223565b610fb7565b005b34801561056157600080fd5b5061057c60048036038101906105779190613250565b611056565b005b34801561058a57600080fd5b506105a560048036038101906105a09190613223565b6111bd565b005b3480156105b357600080fd5b506105bc6112ab565b6040516105c99190613154565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190612fba565b6112d1565b604051610606919061317e565b60405180910390f35b34801561061b57600080fd5b50610624611319565b005b34801561063257600080fd5b5061063b61132d565b005b34801561064957600080fd5b506106526113ce565b60405161065f9190613154565b60405180910390f35b34801561067457600080fd5b5061067d6113f8565b60405161068a919061317e565b60405180910390f35b34801561069f57600080fd5b506106ba60048036038101906106b59190612fba565b6113fe565b6040516106c7919061312a565b60405180910390f35b3480156106dc57600080fd5b506106e561141e565b6040516106f29190613154565b60405180910390f35b34801561070757600080fd5b50610710611444565b60405161071d9190613077565b60405180910390f35b34801561073257600080fd5b5061074d600480360381019061074891906130cf565b6114d6565b60405161075a919061312a565b60405180910390f35b34801561076f57600080fd5b5061078a600480360381019061078591906130cf565b61154d565b604051610797919061312a565b60405180910390f35b3480156107ac57600080fd5b506107c760048036038101906107c291906132bc565b611570565b005b3480156107d557600080fd5b506107de6116d1565b6040516107eb919061317e565b60405180910390f35b34801561080057600080fd5b506108096116d7565b005b34801561081757600080fd5b50610820611a62565b005b34801561082e57600080fd5b5061084960048036038101906108449190612fba565b611be6565b005b34801561085757600080fd5b50610860611daa565b60405161086d919061317e565b60405180910390f35b34801561088257600080fd5b5061089d600480360381019061089891906132fc565b611db0565b6040516108aa919061317e565b60405180910390f35b3480156108bf57600080fd5b506108da60048036038101906108d591906132bc565b611e37565b005b3480156108e857600080fd5b5061090360048036038101906108fe919061333c565b611f57565b005b34801561091157600080fd5b5061092c60048036038101906109279190612fba565b61200f565b005b34801561093a57600080fd5b50610943612092565b60405161095091906133ee565b60405180910390f35b34801561096557600080fd5b5061096e6120b8565b60405161097b919061317e565b60405180910390f35b61098c6120be565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a099190613154565b602060405180830381865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a919061341e565b6040518363ffffffff1660e01b8152600401610a6792919061344b565b6020604051808303816000875af1158015610a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa9190613489565b505050565b606060038054610abe906134e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea906134e5565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b600080610b4c61213c565b9050610b59818585612144565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600254905090565b610ba26120be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890613588565b60405180910390fd5b600060136000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f51482c4aa4bc4e2beea6780677baa5397a7654163858238af5593173c347d9b781604051610d539190613154565b60405180910390a150565b610d666120be565b600047905060008111610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da5906135f4565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610df690613645565b60006040518083038185875af1925050503d8060008114610e33576040519150601f19603f3d011682016040523d82523d6000602084013e610e38565b606091505b5050905080610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e73906136a6565b60405180910390fd5b5050565b600080610e8b61213c565b9050610e9885828561230d565b610ea3858585612399565b60019150509392505050565b600a5481565b60006012905090565b600080610ec961213c565b9050610eea818585610edb8589611db0565b610ee591906136f5565b612144565b600191505092915050565b610efd6120be565b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9e77f14f2f2fd349500bebec446fdae4cbdafd5f17d18997a7382d3cb8e8c53b81604051610f6d9190613154565b60405180910390a150565b60095481565b601460009054906101000a900460ff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fbf6120be565b683635c9adc5dea0000081101561100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290613775565b60405180910390fd5b6000600f54905081600f819055507f046078a3b350ab7ef8b49720ee84ad777c5172459d33cff8e353c3b9b04757ea818360405161104a929190613795565b60405180910390a15050565b61105e6120be565b60008210156110a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110999061380a565b60405180910390fd5b60008110156110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90613876565b60405180910390fd5b600954820361112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190613908565b60405180910390fd5b600a54810361116e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111659061399a565b60405180910390fd5b8160098190555080600a819055507f74dbbbe280ef27b79a8a0c449d5ae2ba7a31849103241d0f98df70bbc9d03e37600954600a546040516111b1929190613795565b60405180910390a15050565b6111c56120be565b6969e10de76676d0800000811015611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120990613a2c565b60405180910390fd5b6a14adf4b7320334b9000000811115611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790613abe565b60405180910390fd5b6000600e54905081600e819055507f35f2577625659032d553fbc001320996b756a5dae410a0b74e931934e020464b818360405161129f929190613795565b60405180910390a15050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113216120be565b61132b6000612859565b565b6113356120be565b601460009054906101000a900460ff1615611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c90613b2a565b60405180910390fd5b6001601460006101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60086020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611453906134e5565b80601f016020809104026020016040519081016040528092919081815260200182805461147f906134e5565b80156114cc5780601f106114a1576101008083540402835291602001916114cc565b820191906000526020600020905b8154815290600101906020018083116114af57829003601f168201915b5050505050905090565b6000806114e161213c565b905060006114ef8286611db0565b905083811015611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90613bbc565b60405180910390fd5b6115418286868403612144565b60019250505092915050565b60008061155861213c565b9050611565818585612399565b600191505092915050565b6115786120be565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613c4e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167f52f7750de642e169ff687a199cc8453a96d938130a797c0a11ea42a4d1659d87826040516116c5919061312a565b60405180910390a25050565b600d5481565b6001600560146101000a81548160ff02191690831515021790555060006116fd306112d1565b905060008103611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613cba565b60405180910390fd5b6000808290506000600b541461178b57620186a06002600b546117659190613d09565b846117709190613d3a565b61177a9190613d09565b915081836117889190613d7c565b90505b6117948161291f565b6000479050600081036117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390613dfc565b60405180910390fd5b6000600b541461181f576000620186a06002600b546117fb9190613d09565b836118069190613d3a565b6118109190613d09565b905061181d308583612b62565b505b6000600c541461191a576000620186a0600c548361183d9190613d3a565b6118479190613d09565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161189190613645565b60006040518083038185875af1925050503d80600081146118ce576040519150601f19603f3d011682016040523d82523d6000602084013e6118d3565b606091505b5050905080611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e90613e68565b60405180910390fd5b50505b6000600d5414611a15576000620186a0600d54836119389190613d3a565b6119429190613d09565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161198c90613645565b60006040518083038185875af1925050503d80600081146119c9576040519150601f19603f3d011682016040523d82523d6000602084013e6119ce565b606091505b5050905080611a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0990613ed4565b60405180910390fd5b50505b7f073f67f6b2a495a773c8f33582c762d9c1a89fec310d1e2ce2808b4ff65d829060405160405180910390a1505050506000600560146101000a81548160ff021916908315150217905550565b611a6a6120be565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd9190613f09565b90508073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b549190613154565b602060405180830381865afa158015611b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b95919061341e565b6040518263ffffffff1660e01b8152600401611bb1919061317e565b600060405180830381600087803b158015611bcb57600080fd5b505af1158015611bdf573d6000803e3d6000fd5b5050505050565b611bee6120be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5490613fa8565b60405180910390fd5b600060136000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f762a91df9c0fb43542ae3e9efc29bd474b24e1b79b054f1c407ee24940362fbf81604051611d9f9190613154565b60405180910390a150565b600f5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e3f6120be565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea59061403a565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f33e99dbd8a2fdf021abaf8531c98838a37f8e85fd3cbf0e897047074f9c4ecf482604051611f4b919061312a565b60405180910390a25050565b611f5f6120be565b620186a0818385611f7091906136f5565b611f7a91906136f5565b14611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb1906140cc565b60405180910390fd5b82600b8190555081600c8190555080600d819055507f192b126d6d86e50716742827858f2c3edda14906a341f1fc234c27fc1e4c8f8b838383604051612002939291906140ec565b60405180910390a1505050565b6120176120be565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d90614195565b60405180910390fd5b61208f81612859565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6120c661213c565b73ffffffffffffffffffffffffffffffffffffffff166120e46113ce565b73ffffffffffffffffffffffffffffffffffffffff161461213a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213190614201565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90614293565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990614325565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612300919061317e565b60405180910390a3505050565b60006123198484611db0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146123935781811015612385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237c90614391565b60405180910390fd5b6123928484848403612144565b5b50505050565b601460009054906101000a900460ff16806123e657506123b76113ce565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c90614423565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124c65750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124db576124d6838383612cd7565b612854565b6000819050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125815750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127bd576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125f957620186a0600954836125ec9190613d3a565b6125f69190613d09565b90505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561269f57620186a0600a548361265d9190613d3a565b6126679190613d09565b9050600560149054906101000a900460ff161580156126905750600f5461268d306112d1565b10155b1561269e5761269d6116d7565b5b5b80826126ab9190613d7c565b9150600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127b057600e5482612764600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275d578761275f565b865b6112d1565b61276e91906136f5565b11156127af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a69061448f565b60405180910390fd5b5b6127bb853083612cd7565b505b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128235750600560149054906101000a900460ff16155b80156128395750600f54612836306112d1565b10155b15612847576128466116d7565b5b612852848483612cd7565b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff81111561293c5761293b6144af565b5b60405190808252806020026020018201604052801561296a5781602001602082028036833780820191505090505b5090503081600081518110612982576129816144de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4d9190613f09565b81600181518110612a6157612a606144de565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ac830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612144565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b2c959493929190614606565b600060405180830381600087803b158015612b4657600080fd5b505af1158015612b5a573d6000803e3d6000fd5b505050505050565b8273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612bbf92919061344b565b6020604051808303816000875af1158015612bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c029190613489565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719828585600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c8c96959493929190614660565b60606040518083038185885af1158015612caa573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ccf91906146c1565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3d90614786565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dac90614818565b60405180910390fd5b612dc0838383612f4d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3d906148aa565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f34919061317e565b60405180910390a3612f47848484612f52565b50505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f8782612f5c565b9050919050565b612f9781612f7c565b8114612fa257600080fd5b50565b600081359050612fb481612f8e565b92915050565b600060208284031215612fd057612fcf612f57565b5b6000612fde84828501612fa5565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613021578082015181840152602081019050613006565b60008484015250505050565b6000601f19601f8301169050919050565b600061304982612fe7565b6130538185612ff2565b9350613063818560208601613003565b61306c8161302d565b840191505092915050565b60006020820190508181036000830152613091818461303e565b905092915050565b6000819050919050565b6130ac81613099565b81146130b757600080fd5b50565b6000813590506130c9816130a3565b92915050565b600080604083850312156130e6576130e5612f57565b5b60006130f485828601612fa5565b9250506020613105858286016130ba565b9150509250929050565b60008115159050919050565b6131248161310f565b82525050565b600060208201905061313f600083018461311b565b92915050565b61314e81612f7c565b82525050565b60006020820190506131696000830184613145565b92915050565b61317881613099565b82525050565b6000602082019050613193600083018461316f565b92915050565b6000806000606084860312156131b2576131b1612f57565b5b60006131c086828701612fa5565b93505060206131d186828701612fa5565b92505060406131e2868287016130ba565b9150509250925092565b600060ff82169050919050565b613202816131ec565b82525050565b600060208201905061321d60008301846131f9565b92915050565b60006020828403121561323957613238612f57565b5b6000613247848285016130ba565b91505092915050565b6000806040838503121561326757613266612f57565b5b6000613275858286016130ba565b9250506020613286858286016130ba565b9150509250929050565b6132998161310f565b81146132a457600080fd5b50565b6000813590506132b681613290565b92915050565b600080604083850312156132d3576132d2612f57565b5b60006132e185828601612fa5565b92505060206132f2858286016132a7565b9150509250929050565b6000806040838503121561331357613312612f57565b5b600061332185828601612fa5565b925050602061333285828601612fa5565b9150509250929050565b60008060006060848603121561335557613354612f57565b5b6000613363868287016130ba565b9350506020613374868287016130ba565b9250506040613385868287016130ba565b9150509250925092565b6000819050919050565b60006133b46133af6133aa84612f5c565b61338f565b612f5c565b9050919050565b60006133c682613399565b9050919050565b60006133d8826133bb565b9050919050565b6133e8816133cd565b82525050565b600060208201905061340360008301846133df565b92915050565b600081519050613418816130a3565b92915050565b60006020828403121561343457613433612f57565b5b600061344284828501613409565b91505092915050565b60006040820190506134606000830185613145565b61346d602083018461316f565b9392505050565b60008151905061348381613290565b92915050565b60006020828403121561349f5761349e612f57565b5b60006134ad84828501613474565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134fd57607f821691505b6020821081036135105761350f6134b6565b5b50919050565b7f4e6577206f7065726174696f6e732077616c6c65742063616e206e6f7420626560008201527f2061646472657373203078000000000000000000000000000000000000000000602082015250565b6000613572602b83612ff2565b915061357d82613516565b604082019050919050565b600060208201905081810360008301526135a181613565565b9050919050565b7f4e6f2045544820746f2077697468647261770000000000000000000000000000600082015250565b60006135de601283612ff2565b91506135e9826135a8565b602082019050919050565b6000602082019050818103600083015261360d816135d1565b9050919050565b600081905092915050565b50565b600061362f600083613614565b915061363a8261361f565b600082019050919050565b600061365082613622565b9150819050919050565b7f455448207472616e73666572206661696c656400000000000000000000000000600082015250565b6000613690601383612ff2565b915061369b8261365a565b602082019050919050565b600060208201905081810360008301526136bf81613683565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061370082613099565b915061370b83613099565b9250828201905080821115613723576137226136c6565b5b92915050565b7f3130303020697320746865206d696e6d756d0000000000000000000000000000600082015250565b600061375f601283612ff2565b915061376a82613729565b602082019050919050565b6000602082019050818103600083015261378e81613752565b9050919050565b60006040820190506137aa600083018561316f565b6137b7602083018461316f565b9392505050565b7f42757920666565206973206c657373207468616e203000000000000000000000600082015250565b60006137f4601683612ff2565b91506137ff826137be565b602082019050919050565b60006020820190508181036000830152613823816137e7565b9050919050565b7f53656c6c20666565206973206c657373207468616e2030000000000000000000600082015250565b6000613860601783612ff2565b915061386b8261382a565b602082019050919050565b6000602082019050818103600083015261388f81613853565b9050919050565b7f4275792066656520697320616c726561647920746861742070657263656e746160008201527f6765000000000000000000000000000000000000000000000000000000000000602082015250565b60006138f2602283612ff2565b91506138fd82613896565b604082019050919050565b60006020820190508181036000830152613921816138e5565b9050919050565b7f53656c6c2066656520697320616c726561647920746861742070657263656e7460008201527f6167650000000000000000000000000000000000000000000000000000000000602082015250565b6000613984602383612ff2565b915061398f82613928565b604082019050919050565b600060208201905081810360008301526139b381613977565b9050919050565b7f4d61782077616c6c6574206973206c65737320746865206d696e696d756d207460008201527f68656e20302c3525206f6620746f74616c537570706c79000000000000000000602082015250565b6000613a16603783612ff2565b9150613a21826139ba565b604082019050919050565b60006020820190508181036000830152613a4581613a09565b9050919050565b7f4d61782077616c6c6574206973206d6f726520746865206d6178696d756d207460008201527f68616e20323525206f6620746f74616c537570706c7900000000000000000000602082015250565b6000613aa8603683612ff2565b9150613ab382613a4c565b604082019050919050565b60006020820190508181036000830152613ad781613a9b565b9050919050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613b14601a83612ff2565b9150613b1f82613ade565b602082019050919050565b60006020820190508181036000830152613b4381613b07565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613ba6602583612ff2565b9150613bb182613b4a565b604082019050919050565b60006020820190508181036000830152613bd581613b99565b9050919050565b7f284e65772920414d4d20616464726573732063616e206e6f742062652061646460008201527f7265737320307800000000000000000000000000000000000000000000000000602082015250565b6000613c38602783612ff2565b9150613c4382613bdc565b604082019050919050565b60006020820190508181036000830152613c6781613c2b565b9050919050565b7f546f6b656e2062616c616e63652063616e6e6f74206265203000000000000000600082015250565b6000613ca4601983612ff2565b9150613caf82613c6e565b602082019050919050565b60006020820190508181036000830152613cd381613c97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d1482613099565b9150613d1f83613099565b925082613d2f57613d2e613cda565b5b828204905092915050565b6000613d4582613099565b9150613d5083613099565b9250828202613d5e81613099565b91508282048414831517613d7557613d746136c6565b5b5092915050565b6000613d8782613099565b9150613d9283613099565b9250828203905081811115613daa57613da96136c6565b5b92915050565b7f4554482062616c616e63652063616e6e6f742062652030000000000000000000600082015250565b6000613de6601783612ff2565b9150613df182613db0565b602082019050919050565b60006020820190508181036000830152613e1581613dd9565b9050919050565b7f5472616e7366657220746f207472656e64696e67206661696c65642e00000000600082015250565b6000613e52601c83612ff2565b9150613e5d82613e1c565b602082019050919050565b60006020820190508181036000830152613e8181613e45565b9050919050565b7f5472616e7366657220746f20646576206661696c65642e000000000000000000600082015250565b6000613ebe601783612ff2565b9150613ec982613e88565b602082019050919050565b60006020820190508181036000830152613eed81613eb1565b9050919050565b600081519050613f0381612f8e565b92915050565b600060208284031215613f1f57613f1e612f57565b5b6000613f2d84828501613ef4565b91505092915050565b7f4e65772074726561737572792063616e206e6f7420626520616464726573732060008201527f3078000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f92602283612ff2565b9150613f9d82613f36565b604082019050919050565b60006020820190508181036000830152613fc181613f85565b9050919050565b7f284e657729206578636c7564656420616464726573732063616e206e6f74206260008201527f6520616464726573732030780000000000000000000000000000000000000000602082015250565b6000614024602c83612ff2565b915061402f82613fc8565b604082019050919050565b6000602082019050818103600083015261405381614017565b9050919050565b7f53756d6d6564206665652073686172657320617265206e6f742031303025202860008201527f3130303030302921000000000000000000000000000000000000000000000000602082015250565b60006140b6602883612ff2565b91506140c18261405a565b604082019050919050565b600060208201905081810360008301526140e5816140a9565b9050919050565b6000606082019050614101600083018661316f565b61410e602083018561316f565b61411b604083018461316f565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061417f602683612ff2565b915061418a82614123565b604082019050919050565b600060208201905081810360008301526141ae81614172565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006141eb602083612ff2565b91506141f6826141b5565b602082019050919050565b6000602082019050818103600083015261421a816141de565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061427d602483612ff2565b915061428882614221565b604082019050919050565b600060208201905081810360008301526142ac81614270565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061430f602283612ff2565b915061431a826142b3565b604082019050919050565b6000602082019050818103600083015261433e81614302565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061437b601d83612ff2565b915061438682614345565b602082019050919050565b600060208201905081810360008301526143aa8161436e565b9050919050565b7f54726164696e672077696c6c20656e61626c65207768656e20414d4d2069732060008201527f7365740000000000000000000000000000000000000000000000000000000000602082015250565b600061440d602383612ff2565b9150614418826143b1565b604082019050919050565b6000602082019050818103600083015261443c81614400565b9050919050565b7f7472616e73616374696f6e2065786365656473206d61782077616c6c65740000600082015250565b6000614479601e83612ff2565b915061448482614443565b602082019050919050565b600060208201905081810360008301526144a88161446c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061453261452d6145288461450d565b61338f565b613099565b9050919050565b61454281614517565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61457d81612f7c565b82525050565b600061458f8383614574565b60208301905092915050565b6000602082019050919050565b60006145b382614548565b6145bd8185614553565b93506145c883614564565b8060005b838110156145f95781516145e08882614583565b97506145eb8361459b565b9250506001810190506145cc565b5085935050505092915050565b600060a08201905061461b600083018861316f565b6146286020830187614539565b818103604083015261463a81866145a8565b90506146496060830185613145565b614656608083018461316f565b9695505050505050565b600060c0820190506146756000830189613145565b614682602083018861316f565b61468f6040830187614539565b61469c6060830186614539565b6146a96080830185613145565b6146b660a083018461316f565b979650505050505050565b6000806000606084860312156146da576146d9612f57565b5b60006146e886828701613409565b93505060206146f986828701613409565b925050604061470a86828701613409565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614770602583612ff2565b915061477b82614714565b604082019050919050565b6000602082019050818103600083015261479f81614763565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614802602383612ff2565b915061480d826147a6565b604082019050919050565b60006020820190508181036000830152614831816147f5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614894602683612ff2565b915061489f82614838565b604082019050919050565b600060208201905081810360008301526148c381614887565b905091905056fea2646970667358221220d098b996950fc4cf74e1236f7ccc1f6219fd538be9494e86f4d4daff4981be2764736f6c63430008140033

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.