ETH Price: $2,209.04 (+1.43%)

Token

RulerFC (RULER)
 

Overview

Max Total Supply

100,000,000 RULER

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000018840299 RULER

Value
$0.00
0xfcc3f0f018324e33b80fbcde9b149d4d2b7e5332
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:
RULER

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : RULER.sol
/*

# $RULER - RulerFC

Play Online: https://rulerfc.com
Telegram: https://t.me/rulerfc
X: https://x.com/rulerfc_com
Docs: https://docs.rulerfc.com

RFC is a competitive fighting game where political powerhouses clash in fast-paced battles, featuring both solo and team modes.
Step into the arena as iconic figures like Trump, Macron, Putin, Kim Jong Un, MBS, and more, each with unique fighting styles and abilities.
Prove your dominance in intense tournaments backed by a rewards pool, earning tokens through gameplay and achievements.

Customize your fighters with exclusive skins, cosmetics, and gear purchasable with tokens, while contributing to a healthy economy through token burns.
Climb the leaderboards, compete globally, and turn your combat skills into real-world rewards in this advanced, politically charged fighter.

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.28;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

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

    function WETH() external pure returns (address);

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

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

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

interface IERC20Permit {
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;
}

contract RULER is Context, IERC20, Ownable {
    string private constant _name = "RulerFC";
    string private constant _symbol = "RULER";
    
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100_000_000 ether;

    uint256 public _maxTXAmount = 1_000_000 ether;
    uint256 public _maxWallet = 1_000_000 ether;
    uint256 public _taxSwapAt = 1_000_000 ether;
    uint256 public _taxSwapThreshold = 1_000_000 ether;
    uint256 public _taxMaxSwap = 10_000_000 ether;
    uint256 public _preventTaxSwap = 40;

    uint256 public _buyTax = 2;
    uint256 public _sellTax = 2;
    uint256 public _totalTx = 0;
    
    uint256 private _accumulatedTax;

    bool public hasLaunched = false;
    bool public tradingEnabled = false;
    bool private inSwap = false;

    address payable public _revenueWallet;
    address payable public _rewardWallet;
    address payable public _deployerWallet;

    uint256 public transferDelayEndBlock;
    bool public transferDelayEnabled = true;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    uint256 public launchedAt;
 
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) private _feeExcluded;
    mapping(address => bool) public automatedMarketMakerPairs;

    address private uniswapV2Pair;
    IUniswapV2Router02 private uniswapV2Router;

    event LiquidityAdded(uint256 tokenAmount, uint256 ethAmount);
    event DEXPaired(uint256 tokenAmount, uint256 ethAmount, uint256 timestamp);
    event TradingActivated(bool _tradingEnabled);
    event LimitsRemoved(uint256 _value);
    event TaxParametersSet(uint256 taxTrigger, uint256 taxThreshold);

    event DeployerWalletUpdated(address indexed oldAddress, address indexed newAddress);
    event RevenueWalletUpdated(address indexed oldAddress, address indexed newAddress);
    event RewardsWalletUpdated(address indexed oldAddress, address indexed newAddress);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

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

    constructor() {
        if (block.chainid != 1) revert("Unsupported chain ID");

        _rewardWallet = payable(0x90e9daA8a6b2D0a0532d6eAE8Ab30907D97198A9);
        _revenueWallet = payable(0xf3349C57a1787dDdEB86d05B615CD6eb06564B2b);
        _deployerWallet = payable(_msgSender());
  
        _feeExcluded[address(this)] = true;
        _feeExcluded[_revenueWallet] = true;
        _feeExcluded[_rewardWallet] = true;
        _feeExcluded[_deployerWallet] = true;
        
        createTokens(address(this), 80_000_000 ether); 
        createTokens(_deployerWallet, 20_000_000 ether);
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(
            _allowances[sender][_msgSender()] >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(
            owner != address(0) && spender != address(0),
            "ERC20: approve the zero address"
        );
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(
            from != address(0) && to != address(0),
            "ERC20: transfer from or to the zero address"
        );
        require(amount > 0, "Transfer amount must be greater than zero");
        require(
            _balances[from] >= amount,
            "ERC20: transfer amount exceeds balance"
        );

        if (block.number <= transferDelayEndBlock) {
            if (
                !_feeExcluded[to] &&
                to != owner() &&
                to != address(uniswapV2Router) &&
                to != uniswapV2Pair
            ) {
                require(
                    _holderLastTransferTimestamp[msg.sender] < block.number,
                    "Transfer Delay enabled. Only one purchase per block allowed."
                );
                _holderLastTransferTimestamp[msg.sender] = block.number;
            }
        }

        uint256 taxAmount = 0;
        uint256 finalAmount = amount;

        bool isBuy = automatedMarketMakerPairs[from] && to != address(this);
        bool isSell = automatedMarketMakerPairs[to] && from != address(this);

        if (!tradingEnabled && (isBuy || isSell)) {
            require(
                _feeExcluded[to] || _feeExcluded[from],
                "Trading has not been enabled yet."
            );
        }

        if (
            isBuy &&
            to != address(uniswapV2Router) &&
            !_feeExcluded[to]
        ) {
            require(
                finalAmount <= _maxTXAmount,
                "Transaction amount exceeds the maximum allowed limit"
            );
            require(
                balanceOf(to) + finalAmount <= _maxWallet,
                "Recipient's wallet balance will exceed the maximum allowed limit"
            );
        }

        uint256 taxRate = isSell ? _sellTax : _buyTax;
        // Sniper tax logic
        if (tradingEnabled && isBuy && block.number <= launchedAt + 4 && _maxTXAmount < _totalSupply) {
            taxRate = 99;
        } else if (isBuy && _totalTx < _preventTaxSwap && _maxTXAmount < _totalSupply) {
            uint256 sniperStartTax = 40;
            uint256 normalTax = _buyTax;
            uint256 taxDifference = sniperStartTax - normalTax;
            taxRate = sniperStartTax - ((taxDifference * _totalTx + (_preventTaxSwap - 1)) / _preventTaxSwap);
        }

        if (_totalTx < _preventTaxSwap && (isBuy || isSell)) {
            _totalTx++;
        }

        if (
            (!_feeExcluded[from] && isSell) ||
            (!_feeExcluded[to] && isBuy)
        ) {
            taxAmount = (amount * taxRate) / 100;
            finalAmount = amount - taxAmount;
        }

        if (taxAmount > 0) {
            _accumulatedTax += taxAmount;
        }
   
        uint256 tokenBalance = balanceOf(address(this));
        if (
            !inSwap &&
            isSell &&
            tokenBalance >= _taxSwapThreshold &&
            _accumulatedTax >= _taxSwapAt &&
            _totalTx >= _preventTaxSwap
        ) {
            uint256 swapAmount = (_accumulatedTax > _taxMaxSwap)
                ? _taxMaxSwap
                : _accumulatedTax;
            swapAmount = (swapAmount > tokenBalance) ? tokenBalance : swapAmount;
            swapAndDistribute(swapAmount);
            _accumulatedTax -= swapAmount;
        }

        if (taxAmount > 0) {
            _balances[address(this)] += taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] -= amount;
        _balances[to] += finalAmount;
        emit Transfer(from, to, finalAmount);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
        emit LiquidityAdded(tokenAmount, ethAmount);
    }

    function excludeFromFee(address account) external onlyOwner {
        require(account != address(0), "Cannot exclude zero address");
        _feeExcluded[account] = true;
    }

    function includeInFee(address account) external onlyOwner {
        require(account != address(0), "Cannot include zero address");
        _feeExcluded[account] = false;
    }

    function distributeFees(uint256 amount) private {
        uint256 half = amount / 2;
        uint256 remainder = amount - (half * 2);
        _rewardWallet.transfer(half);
        _revenueWallet.transfer(half + remainder); 
    }

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

    function createTokens(address account, uint256 amount) private {
        require(account != address(0), "ERC20: mint to the zero address");
        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }

    function initializeDEX() external onlyOwner {
        require(!hasLaunched, "Launch already called");
        require(
            address(this).balance > 0 && _balances[address(this)] > 0,
            "Contract must have both ETH and Tokens to proceed with the launch"
        );
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(
            address(this),
            address(uniswapV2Router),
            _balances[address(this)]
        );
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
                address(this),
                uniswapV2Router.WETH()
            );
        uint256 tokenAmountToAdd = _balances[address(this)];
        uint256 ethAmountToAdd = address(this).balance;
        addLiquidity(tokenAmountToAdd, ethAmountToAdd);
        emit DEXPaired(tokenAmountToAdd, ethAmountToAdd, block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        _setAutomatedMarketMakerPair(uniswapV2Pair, true);
        hasLaunched = true;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading already opened");
        tradingEnabled = true;
        launchedAt = block.number;
        transferDelayEndBlock = block.number + 10;
        emit TradingActivated(tradingEnabled);
    }

    function removeLimits() external onlyOwner {
        _maxTXAmount = _totalSupply;
        _maxWallet = _totalSupply;
        emit LimitsRemoved(_totalSupply);
    }

    function setTaxParameters(
        uint256 taxTrigger,
        uint256 taxThreshold
    ) external onlyOwner {
        require(tradingEnabled, "Trading is not enabled");
        _taxSwapAt = taxTrigger * 10 ** _decimals;
        _taxSwapThreshold = taxThreshold * 10 ** _decimals;
        emit TaxParametersSet(taxTrigger, taxThreshold);
    }

    function swapAndDistribute(uint256 swapAmount) private lockTheSwap {
        swapTokensForEth(swapAmount);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            uint256 amountToDistribute = contractETHBalance;
            distributeFees(amountToDistribute);
        }
    }

    function withdrawStuckEther(uint256 amount) external onlyOwner {
        require(tradingEnabled, "Trading must be enabled");
        require(hasLaunched, "Liquidity must be added");
        require(amount <= address(this).balance, "Insufficient balance");
         _deployerWallet.transfer(amount);
    }

    function withdrawStuckTokens(
        address tokenAddress,
        uint256 amount
    ) external onlyOwner {
        require(tradingEnabled, "Trading must be enabled");
        require(hasLaunched, "Liquidity must be added");
        IERC20 tokenContract = IERC20(tokenAddress);
        uint256 contractBalance = tokenContract.balanceOf(address(this));
        require(amount <= contractBalance, "Insufficient balance");
        tokenContract.transfer(_deployerWallet, amount);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(
            pair != uniswapV2Pair || value == true,
            "The uniswap pair cannot be removed"
        );
        _setAutomatedMarketMakerPair(pair, value);
    }

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

    receive() external payable {}
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"DEXPaired","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"DeployerWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"LiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"RevenueWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"RewardsWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"taxTrigger","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"taxThreshold","type":"uint256"}],"name":"TaxParametersSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_tradingEnabled","type":"bool"}],"name":"TradingActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_deployerWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTXAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_preventTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_revenueWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_rewardWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxMaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hasLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initializeDEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxTrigger","type":"uint256"},{"internalType":"uint256","name":"taxThreshold","type":"uint256"}],"name":"setTaxParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferDelayEndBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda100000060015569d3c21bcecceda100000060025569d3c21bcecceda100000060035569d3c21bcecceda10000006004556a084595161401484a00000060055560286006556002600755600260085560006009556000600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506000600b60026101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156100d757600080fd5b5060006100e86104e460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600146146101c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c090610666565b60405180910390fd5b7390e9daa8a6b2d0a0532d6eae8ab30907d97198a9600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f3349c57a1787dddeb86d05b615cd6eb06564b2b600b60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102816104e460201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600b60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506104a2306a422ca8b0a00a42500000006104ec60201b60201c565b6104df600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a108b2a2c280290940000006104ec60201b60201c565b610726565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361055b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610552906106d2565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105fd919061070b565b60405180910390a35050565b600082825260208201905092915050565b7f556e737570706f7274656420636861696e204944000000000000000000000000600082015250565b6000610650601483610609565b915061065b8261061a565b602082019050919050565b6000602082019050818103600083015261067f81610643565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006106bc601f83610609565b91506106c782610686565b602082019050919050565b600060208201905081810360008301526106eb816106af565b9050919050565b6000819050919050565b610705816106f2565b82525050565b600060208201905061072060008301846106fc565b92915050565b614b42806107356000396000f3fe6080604052600436106102295760003560e01c80638da5cb5b11610123578063bc9cc736116100ab578063ca9ec1991161006f578063ca9ec199146107c0578063dd62ed3e146107eb578063e3d0c50b14610828578063ea2f0b3714610853578063f0d9a74b1461087c57610230565b8063bc9cc736146106eb578063bd61f0a614610716578063bf474bed1461073f578063bf56b3711461076a578063c876d0b91461079557610230565b8063a4f4a765116100f2578063a4f4a765146105f0578063a9059cbb1461061b578063b483cf0e14610658578063b62496f514610683578063b771e06c146106c057610230565b80638da5cb5b1461054657806391b32c8f1461057157806395d89b411461059c5780639a7a23d6146105c757610230565b8063437823ec116101b1578063715018a611610175578063715018a6146104ad578063751039fc146104c457806382247ec0146104db5780638a8c523c146105065780638bc73b071461051d57610230565b8063437823ec146103da5780634ada218b146104035780635d3fe7621461042e57806363a2b3ab1461044557806370a082311461047057610230565b806318160ddd116101f857806318160ddd146102f15780631ea9a81b1461031c57806323b872dd14610347578063313ce5671461038457806342a11095146103af57610230565b806306fdde0314610235578063095ea7b3146102605780630aaae7351461029d57806313c99f6d146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108a7565b60405161025791906134e1565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061359c565b6108e4565b60405161029491906135f7565b60405180910390f35b3480156102a957600080fd5b506102b2610902565b6040516102bf9190613633565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea919061364e565b610928565b005b3480156102fd57600080fd5b50610306610a87565b604051610313919061369d565b60405180910390f35b34801561032857600080fd5b50610331610a9a565b60405161033e919061369d565b60405180910390f35b34801561035357600080fd5b5061036e600480360381019061036991906136b8565b610aa0565b60405161037b91906135f7565b60405180910390f35b34801561039057600080fd5b50610399610d44565b6040516103a69190613727565b60405180910390f35b3480156103bb57600080fd5b506103c4610d4d565b6040516103d1919061369d565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190613742565b610d53565b005b34801561040f57600080fd5b50610418610eb2565b60405161042591906135f7565b60405180910390f35b34801561043a57600080fd5b50610443610ec5565b005b34801561045157600080fd5b5061045a611494565b60405161046791906135f7565b60405180910390f35b34801561047c57600080fd5b5061049760048036038101906104929190613742565b6114a7565b6040516104a4919061369d565b60405180910390f35b3480156104b957600080fd5b506104c26114f0565b005b3480156104d057600080fd5b506104d9611643565b005b3480156104e757600080fd5b506104f0611740565b6040516104fd919061369d565b60405180910390f35b34801561051257600080fd5b5061051b611746565b005b34801561052957600080fd5b50610544600480360381019061053f919061376f565b6118a8565b005b34801561055257600080fd5b5061055b611a8a565b60405161056891906137ab565b60405180910390f35b34801561057d57600080fd5b50610586611ab3565b604051610593919061369d565b60405180910390f35b3480156105a857600080fd5b506105b1611ab9565b6040516105be91906134e1565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e991906137f2565b611af6565b005b3480156105fc57600080fd5b50610605611c39565b6040516106129190613633565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d919061359c565b611c5f565b60405161064f91906135f7565b60405180910390f35b34801561066457600080fd5b5061066d611c7d565b60405161067a919061369d565b60405180910390f35b34801561068f57600080fd5b506106aa60048036038101906106a59190613742565b611c83565b6040516106b791906135f7565b60405180910390f35b3480156106cc57600080fd5b506106d5611ca3565b6040516106e2919061369d565b60405180910390f35b3480156106f757600080fd5b50610700611ca9565b60405161070d9190613633565b60405180910390f35b34801561072257600080fd5b5061073d6004803603810190610738919061359c565b611ccf565b005b34801561074b57600080fd5b50610754611f6f565b604051610761919061369d565b60405180910390f35b34801561077657600080fd5b5061077f611f75565b60405161078c919061369d565b60405180910390f35b3480156107a157600080fd5b506107aa611f7b565b6040516107b791906135f7565b60405180910390f35b3480156107cc57600080fd5b506107d5611f8e565b6040516107e2919061369d565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d9190613832565b611f94565b60405161081f919061369d565b60405180910390f35b34801561083457600080fd5b5061083d61201b565b60405161084a919061369d565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613742565b612021565b005b34801561088857600080fd5b50610891612180565b60405161089e919061369d565b60405180910390f35b60606040518060400160405280600781526020017f52756c6572464300000000000000000000000000000000000000000000000000815250905090565b60006108f86108f1612186565b848461218e565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610930612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b4906138be565b60405180910390fd5b600b60019054906101000a900460ff16610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a039061392a565b60405180910390fd5b6012600a610a1a9190613aac565b82610a259190613af7565b6003819055506012600a610a399190613aac565b81610a449190613af7565b6004819055507f70450510bfb8f0a505222686e9d4e7b519740309b978c4224b741159ae2754fb8282604051610a7b929190613b39565b60405180910390a15050565b60006a52b7d2dcc80cd2e4000000905090565b60055481565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0790613bd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690613c66565b60405180910390fd5b81601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bc9612186565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90613cf8565b60405180910390fd5b6000601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c90612186565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613cf8565b60405180910390fd5b610d1b858585612322565b610d3885610d27612186565b8584610d339190613d18565b61218e565b60019150509392505050565b60006012905090565b60075481565b610d5b612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf906138be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90613d98565b60405180910390fd5b6001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b60019054906101000a900460ff1681565b610ecd612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f51906138be565b60405180910390fd5b600b60009054906101000a900460ff1615610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190613e04565b60405180910390fd5b600047118015610ff957506000601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102f90613ebc565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110f930601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a9190613ef1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611213573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112379190613ef1565b6040518363ffffffff1660e01b8152600401611254929190613f1e565b6020604051808303816000875af1158015611273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112979190613ef1565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600047905061132a8282612edf565b7f96662a1abdff17f79bbe681f28d2bb7b4edebbe2ca3f10c31b31fb88d731bb8d82824260405161135d93929190613f47565b60405180910390a1601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611404929190613f7e565b6020604051808303816000875af1158015611423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114479190613fbc565b50611475601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612ffd565b6001600b60006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900460ff1681565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114f8612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c906138be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61164b612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf906138be565b60405180910390fd5b6a52b7d2dcc80cd2e40000006001819055506a52b7d2dcc80cd2e40000006002819055507ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e5026166a52b7d2dcc80cd2e4000000604051611736919061369d565b60405180910390a1565b60025481565b61174e612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d2906138be565b60405180910390fd5b600b60019054906101000a900460ff161561182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290614035565b60405180910390fd5b6001600b60016101000a81548160ff02191690831515021790555043601181905550600a4361185a9190614055565b600e819055507f10cbdaa9da572a6586325ac920fff5d091e67fb26d94180f7b6376cbcda1a09e600b60019054906101000a900460ff1660405161189e91906135f7565b60405180910390a1565b6118b0612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611934906138be565b60405180910390fd5b600b60019054906101000a900460ff1661198c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611983906140d5565b60405180910390fd5b600b60009054906101000a900460ff166119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d290614141565b60405180910390fd5b47811115611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a15906141ad565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a86573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600581526020017f52554c4552000000000000000000000000000000000000000000000000000000815250905090565b611afe612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b82906138be565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580611bec575060011515811515145b611c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c229061423f565b60405180910390fd5b611c358282612ffd565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c73611c6c612186565b8484612322565b6001905092915050565b60015481565b60156020528060005260406000206000915054906101000a900460ff1681565b600e5481565b600b60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cd7612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5b906138be565b60405180910390fd5b600b60019054906101000a900460ff16611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa906140d5565b60405180910390fd5b600b60009054906101000a900460ff16611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df990614141565b60405180910390fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611e4291906137ab565b602060405180830381865afa158015611e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e839190614274565b905080831115611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf906141ad565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401611f25929190614300565b6020604051808303816000875af1158015611f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f689190613fbc565b5050505050565b60045481565b60115481565b600f60009054906101000a900460ff1681565b60085481565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b612029612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad906138be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211c90614375565b60405180910390fd5b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60065481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121f85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e906143e1565b60405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612315919061369d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561238c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290614473565b60405180910390fd5b6000811161240e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240590614505565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248790614597565b60405180910390fd5b600e5443116126a657601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561252657506124f6611a8a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125805750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125da5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156126a55743601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265790614629565b60405180910390fd5b43601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6000808290506000601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561273357503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b90506000601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127bc57503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b9050600b60019054906101000a900460ff161580156127e0575081806127df5750805b5b156128c657601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128865750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bc906146bb565b60405180910390fd5b5b8180156129215750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129775750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a1a576001548311156129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b89061474d565b60405180910390fd5b600254836129ce886114a7565b6129d89190614055565b1115612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a10906147df565b60405180910390fd5b5b600081612a2957600754612a2d565b6008545b9050600b60019054906101000a900460ff168015612a485750825b8015612a6257506004601154612a5e9190614055565b4311155b8015612a7a57506a52b7d2dcc80cd2e4000000600154105b15612a885760639050612b18565b828015612a985750600654600954105b8015612ab057506a52b7d2dcc80cd2e4000000600154105b15612b17576000602890506000600754905060008183612ad09190613d18565b90506006546001600654612ae49190613d18565b60095483612af29190613af7565b612afc9190614055565b612b06919061482e565b83612b119190613d18565b93505050505b5b600654600954108015612b3057508280612b2f5750815b5b15612b4e5760096000815480929190612b489061485f565b91905055505b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ba55750815b80612c035750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c025750825b5b15612c315760648187612c169190613af7565b612c20919061482e565b94508486612c2e9190613d18565b93505b6000851115612c545784600a6000828254612c4c9190614055565b925050819055505b6000612c5f306114a7565b9050600b60029054906101000a900460ff16158015612c7b5750825b8015612c8957506004548110155b8015612c995750600354600a5410155b8015612ca9575060065460095410155b15612cfe576000600554600a5411612cc357600a54612cc7565b6005545b9050818111612cd65780612cd8565b815b9050612ce38161309e565b80600a6000828254612cf59190613d18565b92505081905550505b6000861115612dc35785601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d569190614055565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051612dba919061369d565b60405180910390a35b86601260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e129190613d18565b9250508190555084601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e689190614055565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612ecc919061369d565b60405180910390a3505050505050505050565b612f0c30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461218e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612f58611a8a565b426040518863ffffffff1660e01b8152600401612f7a969594939291906148e2565b60606040518083038185885af1158015612f98573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612fbd9190614943565b5050507f38f8a0c92f4c5b0b6877f878cb4c0c8d348a47b76d716c8e78f425043df9515b8282604051612ff1929190613b39565b60405180910390a15050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001600b60026101000a81548160ff0219169083151502179055506130c2816130ff565b600047905060008111156130e05760008190506130de81613342565b505b506000600b60026101000a81548160ff02191690831515021790555050565b6000600267ffffffffffffffff81111561311c5761311b614996565b5b60405190808252806020026020018201604052801561314a5781602001602082028036833780820191505090505b5090503081600081518110613162576131616149c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061322d9190613ef1565b81600181518110613241576132406149c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506132a830601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461218e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161330c959493929190614ab2565b600060405180830381600087803b15801561332657600080fd5b505af115801561333a573d6000803e3d6000fd5b505050505050565b6000600282613351919061482e565b905060006002826133629190613af7565b8361336d9190613d18565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156133d7573d6000803e3d6000fd5b50600b60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82846134209190614055565b9081150290604051600060405180830381858888f1935050505015801561344b573d6000803e3d6000fd5b50505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561348b578082015181840152602081019050613470565b60008484015250505050565b6000601f19601f8301169050919050565b60006134b382613451565b6134bd818561345c565b93506134cd81856020860161346d565b6134d681613497565b840191505092915050565b600060208201905081810360008301526134fb81846134a8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061353382613508565b9050919050565b61354381613528565b811461354e57600080fd5b50565b6000813590506135608161353a565b92915050565b6000819050919050565b61357981613566565b811461358457600080fd5b50565b60008135905061359681613570565b92915050565b600080604083850312156135b3576135b2613503565b5b60006135c185828601613551565b92505060206135d285828601613587565b9150509250929050565b60008115159050919050565b6135f1816135dc565b82525050565b600060208201905061360c60008301846135e8565b92915050565b600061361d82613508565b9050919050565b61362d81613612565b82525050565b60006020820190506136486000830184613624565b92915050565b6000806040838503121561366557613664613503565b5b600061367385828601613587565b925050602061368485828601613587565b9150509250929050565b61369781613566565b82525050565b60006020820190506136b2600083018461368e565b92915050565b6000806000606084860312156136d1576136d0613503565b5b60006136df86828701613551565b93505060206136f086828701613551565b925050604061370186828701613587565b9150509250925092565b600060ff82169050919050565b6137218161370b565b82525050565b600060208201905061373c6000830184613718565b92915050565b60006020828403121561375857613757613503565b5b600061376684828501613551565b91505092915050565b60006020828403121561378557613784613503565b5b600061379384828501613587565b91505092915050565b6137a581613528565b82525050565b60006020820190506137c0600083018461379c565b92915050565b6137cf816135dc565b81146137da57600080fd5b50565b6000813590506137ec816137c6565b92915050565b6000806040838503121561380957613808613503565b5b600061381785828601613551565b9250506020613828858286016137dd565b9150509250929050565b6000806040838503121561384957613848613503565b5b600061385785828601613551565b925050602061386885828601613551565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138a860208361345c565b91506138b382613872565b602082019050919050565b600060208201905081810360008301526138d78161389b565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b600061391460168361345c565b915061391f826138de565b602082019050919050565b6000602082019050818103600083015261394381613907565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156139d0578086048111156139ac576139ab61394a565b5b60018516156139bb5780820291505b80810290506139c985613979565b9450613990565b94509492505050565b6000826139e95760019050613aa5565b816139f75760009050613aa5565b8160018114613a0d5760028114613a1757613a46565b6001915050613aa5565b60ff841115613a2957613a2861394a565b5b8360020a915084821115613a4057613a3f61394a565b5b50613aa5565b5060208310610133831016604e8410600b8410161715613a7b5782820a905083811115613a7657613a7561394a565b5b613aa5565b613a888484846001613986565b92509050818404811115613a9f57613a9e61394a565b5b81810290505b9392505050565b6000613ab782613566565b9150613ac28361370b565b9250613aef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139d9565b905092915050565b6000613b0282613566565b9150613b0d83613566565b9250828202613b1b81613566565b91508282048414831517613b3257613b3161394a565b5b5092915050565b6000604082019050613b4e600083018561368e565b613b5b602083018461368e565b9392505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bbe60258361345c565b9150613bc982613b62565b604082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5060238361345c565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ce260288361345c565b9150613ced82613c86565b604082019050919050565b60006020820190508181036000830152613d1181613cd5565b9050919050565b6000613d2382613566565b9150613d2e83613566565b9250828203905081811115613d4657613d4561394a565b5b92915050565b7f43616e6e6f74206578636c756465207a65726f20616464726573730000000000600082015250565b6000613d82601b8361345c565b9150613d8d82613d4c565b602082019050919050565b60006020820190508181036000830152613db181613d75565b9050919050565b7f4c61756e636820616c72656164792063616c6c65640000000000000000000000600082015250565b6000613dee60158361345c565b9150613df982613db8565b602082019050919050565b60006020820190508181036000830152613e1d81613de1565b9050919050565b7f436f6e7472616374206d757374206861766520626f74682045544820616e642060008201527f546f6b656e7320746f2070726f63656564207769746820746865206c61756e6360208201527f6800000000000000000000000000000000000000000000000000000000000000604082015250565b6000613ea660418361345c565b9150613eb182613e24565b606082019050919050565b60006020820190508181036000830152613ed581613e99565b9050919050565b600081519050613eeb8161353a565b92915050565b600060208284031215613f0757613f06613503565b5b6000613f1584828501613edc565b91505092915050565b6000604082019050613f33600083018561379c565b613f40602083018461379c565b9392505050565b6000606082019050613f5c600083018661368e565b613f69602083018561368e565b613f76604083018461368e565b949350505050565b6000604082019050613f93600083018561379c565b613fa0602083018461368e565b9392505050565b600081519050613fb6816137c6565b92915050565b600060208284031215613fd257613fd1613503565b5b6000613fe084828501613fa7565b91505092915050565b7f54726164696e6720616c7265616479206f70656e656400000000000000000000600082015250565b600061401f60168361345c565b915061402a82613fe9565b602082019050919050565b6000602082019050818103600083015261404e81614012565b9050919050565b600061406082613566565b915061406b83613566565b92508282019050808211156140835761408261394a565b5b92915050565b7f54726164696e67206d75737420626520656e61626c6564000000000000000000600082015250565b60006140bf60178361345c565b91506140ca82614089565b602082019050919050565b600060208201905081810360008301526140ee816140b2565b9050919050565b7f4c6971756964697479206d757374206265206164646564000000000000000000600082015250565b600061412b60178361345c565b9150614136826140f5565b602082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061419760148361345c565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f54686520756e697377617020706169722063616e6e6f742062652072656d6f7660008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b600061422960228361345c565b9150614234826141cd565b604082019050919050565b600060208201905081810360008301526142588161421c565b9050919050565b60008151905061426e81613570565b92915050565b60006020828403121561428a57614289613503565b5b60006142988482850161425f565b91505092915050565b6000819050919050565b60006142c66142c16142bc84613508565b6142a1565b613508565b9050919050565b60006142d8826142ab565b9050919050565b60006142ea826142cd565b9050919050565b6142fa816142df565b82525050565b600060408201905061431560008301856142f1565b614322602083018461368e565b9392505050565b7f43616e6e6f7420696e636c756465207a65726f20616464726573730000000000600082015250565b600061435f601b8361345c565b915061436a82614329565b602082019050919050565b6000602082019050818103600083015261438e81614352565b9050919050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b60006143cb601f8361345c565b91506143d682614395565b602082019050919050565b600060208201905081810360008301526143fa816143be565b9050919050565b7f45524332303a207472616e736665722066726f6d206f7220746f20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b600061445d602b8361345c565b915061446882614401565b604082019050919050565b6000602082019050818103600083015261448c81614450565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144ef60298361345c565b91506144fa82614493565b604082019050919050565b6000602082019050818103600083015261451e816144e2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061458160268361345c565b915061458c82614525565b604082019050919050565b600060208201905081810360008301526145b081614574565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e204f6e6c79206f6e6560008201527f2070757263686173652070657220626c6f636b20616c6c6f7765642e00000000602082015250565b6000614613603c8361345c565b915061461e826145b7565b604082019050919050565b6000602082019050818103600083015261464281614606565b9050919050565b7f54726164696e6720686173206e6f74206265656e20656e61626c65642079657460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006146a560218361345c565b91506146b082614649565b604082019050919050565b600060208201905081810360008301526146d481614698565b9050919050565b7f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60008201527f6178696d756d20616c6c6f776564206c696d6974000000000000000000000000602082015250565b600061473760348361345c565b9150614742826146db565b604082019050919050565b600060208201905081810360008301526147668161472a565b9050919050565b7f526563697069656e7427732077616c6c65742062616c616e63652077696c6c2060008201527f65786365656420746865206d6178696d756d20616c6c6f776564206c696d6974602082015250565b60006147c960408361345c565b91506147d48261476d565b604082019050919050565b600060208201905081810360008301526147f8816147bc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061483982613566565b915061484483613566565b925082614854576148536147ff565b5b828204905092915050565b600061486a82613566565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361489c5761489b61394a565b5b600182019050919050565b6000819050919050565b60006148cc6148c76148c2846148a7565b6142a1565b613566565b9050919050565b6148dc816148b1565b82525050565b600060c0820190506148f7600083018961379c565b614904602083018861368e565b61491160408301876148d3565b61491e60608301866148d3565b61492b608083018561379c565b61493860a083018461368e565b979650505050505050565b60008060006060848603121561495c5761495b613503565b5b600061496a8682870161425f565b935050602061497b8682870161425f565b925050604061498c8682870161425f565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a2981613528565b82525050565b6000614a3b8383614a20565b60208301905092915050565b6000602082019050919050565b6000614a5f826149f4565b614a6981856149ff565b9350614a7483614a10565b8060005b83811015614aa5578151614a8c8882614a2f565b9750614a9783614a47565b925050600181019050614a78565b5085935050505092915050565b600060a082019050614ac7600083018861368e565b614ad460208301876148d3565b8181036040830152614ae68186614a54565b9050614af5606083018561379c565b614b02608083018461368e565b969550505050505056fea26469706673582212200237d3522dcbb216434af1be23ded53a80c2c6fdd3eb810d8f93266fcc2ad1fe64736f6c634300081c0033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80638da5cb5b11610123578063bc9cc736116100ab578063ca9ec1991161006f578063ca9ec199146107c0578063dd62ed3e146107eb578063e3d0c50b14610828578063ea2f0b3714610853578063f0d9a74b1461087c57610230565b8063bc9cc736146106eb578063bd61f0a614610716578063bf474bed1461073f578063bf56b3711461076a578063c876d0b91461079557610230565b8063a4f4a765116100f2578063a4f4a765146105f0578063a9059cbb1461061b578063b483cf0e14610658578063b62496f514610683578063b771e06c146106c057610230565b80638da5cb5b1461054657806391b32c8f1461057157806395d89b411461059c5780639a7a23d6146105c757610230565b8063437823ec116101b1578063715018a611610175578063715018a6146104ad578063751039fc146104c457806382247ec0146104db5780638a8c523c146105065780638bc73b071461051d57610230565b8063437823ec146103da5780634ada218b146104035780635d3fe7621461042e57806363a2b3ab1461044557806370a082311461047057610230565b806318160ddd116101f857806318160ddd146102f15780631ea9a81b1461031c57806323b872dd14610347578063313ce5671461038457806342a11095146103af57610230565b806306fdde0314610235578063095ea7b3146102605780630aaae7351461029d57806313c99f6d146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108a7565b60405161025791906134e1565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061359c565b6108e4565b60405161029491906135f7565b60405180910390f35b3480156102a957600080fd5b506102b2610902565b6040516102bf9190613633565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea919061364e565b610928565b005b3480156102fd57600080fd5b50610306610a87565b604051610313919061369d565b60405180910390f35b34801561032857600080fd5b50610331610a9a565b60405161033e919061369d565b60405180910390f35b34801561035357600080fd5b5061036e600480360381019061036991906136b8565b610aa0565b60405161037b91906135f7565b60405180910390f35b34801561039057600080fd5b50610399610d44565b6040516103a69190613727565b60405180910390f35b3480156103bb57600080fd5b506103c4610d4d565b6040516103d1919061369d565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190613742565b610d53565b005b34801561040f57600080fd5b50610418610eb2565b60405161042591906135f7565b60405180910390f35b34801561043a57600080fd5b50610443610ec5565b005b34801561045157600080fd5b5061045a611494565b60405161046791906135f7565b60405180910390f35b34801561047c57600080fd5b5061049760048036038101906104929190613742565b6114a7565b6040516104a4919061369d565b60405180910390f35b3480156104b957600080fd5b506104c26114f0565b005b3480156104d057600080fd5b506104d9611643565b005b3480156104e757600080fd5b506104f0611740565b6040516104fd919061369d565b60405180910390f35b34801561051257600080fd5b5061051b611746565b005b34801561052957600080fd5b50610544600480360381019061053f919061376f565b6118a8565b005b34801561055257600080fd5b5061055b611a8a565b60405161056891906137ab565b60405180910390f35b34801561057d57600080fd5b50610586611ab3565b604051610593919061369d565b60405180910390f35b3480156105a857600080fd5b506105b1611ab9565b6040516105be91906134e1565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e991906137f2565b611af6565b005b3480156105fc57600080fd5b50610605611c39565b6040516106129190613633565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d919061359c565b611c5f565b60405161064f91906135f7565b60405180910390f35b34801561066457600080fd5b5061066d611c7d565b60405161067a919061369d565b60405180910390f35b34801561068f57600080fd5b506106aa60048036038101906106a59190613742565b611c83565b6040516106b791906135f7565b60405180910390f35b3480156106cc57600080fd5b506106d5611ca3565b6040516106e2919061369d565b60405180910390f35b3480156106f757600080fd5b50610700611ca9565b60405161070d9190613633565b60405180910390f35b34801561072257600080fd5b5061073d6004803603810190610738919061359c565b611ccf565b005b34801561074b57600080fd5b50610754611f6f565b604051610761919061369d565b60405180910390f35b34801561077657600080fd5b5061077f611f75565b60405161078c919061369d565b60405180910390f35b3480156107a157600080fd5b506107aa611f7b565b6040516107b791906135f7565b60405180910390f35b3480156107cc57600080fd5b506107d5611f8e565b6040516107e2919061369d565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d9190613832565b611f94565b60405161081f919061369d565b60405180910390f35b34801561083457600080fd5b5061083d61201b565b60405161084a919061369d565b60405180910390f35b34801561085f57600080fd5b5061087a60048036038101906108759190613742565b612021565b005b34801561088857600080fd5b50610891612180565b60405161089e919061369d565b60405180910390f35b60606040518060400160405280600781526020017f52756c6572464300000000000000000000000000000000000000000000000000815250905090565b60006108f86108f1612186565b848461218e565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610930612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b4906138be565b60405180910390fd5b600b60019054906101000a900460ff16610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a039061392a565b60405180910390fd5b6012600a610a1a9190613aac565b82610a259190613af7565b6003819055506012600a610a399190613aac565b81610a449190613af7565b6004819055507f70450510bfb8f0a505222686e9d4e7b519740309b978c4224b741159ae2754fb8282604051610a7b929190613b39565b60405180910390a15050565b60006a52b7d2dcc80cd2e4000000905090565b60055481565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0790613bd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690613c66565b60405180910390fd5b81601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bc9612186565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90613cf8565b60405180910390fd5b6000601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c90612186565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790613cf8565b60405180910390fd5b610d1b858585612322565b610d3885610d27612186565b8584610d339190613d18565b61218e565b60019150509392505050565b60006012905090565b60075481565b610d5b612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf906138be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90613d98565b60405180910390fd5b6001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b60019054906101000a900460ff1681565b610ecd612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f51906138be565b60405180910390fd5b600b60009054906101000a900460ff1615610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190613e04565b60405180910390fd5b600047118015610ff957506000601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102f90613ebc565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110f930601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461218e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a9190613ef1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611213573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112379190613ef1565b6040518363ffffffff1660e01b8152600401611254929190613f1e565b6020604051808303816000875af1158015611273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112979190613ef1565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600047905061132a8282612edf565b7f96662a1abdff17f79bbe681f28d2bb7b4edebbe2ca3f10c31b31fb88d731bb8d82824260405161135d93929190613f47565b60405180910390a1601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611404929190613f7e565b6020604051808303816000875af1158015611423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114479190613fbc565b50611475601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612ffd565b6001600b60006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900460ff1681565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114f8612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c906138be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61164b612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf906138be565b60405180910390fd5b6a52b7d2dcc80cd2e40000006001819055506a52b7d2dcc80cd2e40000006002819055507ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e5026166a52b7d2dcc80cd2e4000000604051611736919061369d565b60405180910390a1565b60025481565b61174e612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d2906138be565b60405180910390fd5b600b60019054906101000a900460ff161561182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290614035565b60405180910390fd5b6001600b60016101000a81548160ff02191690831515021790555043601181905550600a4361185a9190614055565b600e819055507f10cbdaa9da572a6586325ac920fff5d091e67fb26d94180f7b6376cbcda1a09e600b60019054906101000a900460ff1660405161189e91906135f7565b60405180910390a1565b6118b0612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611934906138be565b60405180910390fd5b600b60019054906101000a900460ff1661198c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611983906140d5565b60405180910390fd5b600b60009054906101000a900460ff166119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d290614141565b60405180910390fd5b47811115611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a15906141ad565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a86573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600581526020017f52554c4552000000000000000000000000000000000000000000000000000000815250905090565b611afe612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b82906138be565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580611bec575060011515811515145b611c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c229061423f565b60405180910390fd5b611c358282612ffd565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c73611c6c612186565b8484612322565b6001905092915050565b60015481565b60156020528060005260406000206000915054906101000a900460ff1681565b600e5481565b600b60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cd7612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5b906138be565b60405180910390fd5b600b60019054906101000a900460ff16611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa906140d5565b60405180910390fd5b600b60009054906101000a900460ff16611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df990614141565b60405180910390fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611e4291906137ab565b602060405180830381865afa158015611e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e839190614274565b905080831115611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf906141ad565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401611f25929190614300565b6020604051808303816000875af1158015611f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f689190613fbc565b5050505050565b60045481565b60115481565b600f60009054906101000a900460ff1681565b60085481565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b612029612186565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad906138be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211c90614375565b60405180910390fd5b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60065481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121f85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e906143e1565b60405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612315919061369d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561238c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c290614473565b60405180910390fd5b6000811161240e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240590614505565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248790614597565b60405180910390fd5b600e5443116126a657601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561252657506124f6611a8a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125805750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125da5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156126a55743601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265790614629565b60405180910390fd5b43601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b6000808290506000601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561273357503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b90506000601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127bc57503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b9050600b60019054906101000a900460ff161580156127e0575081806127df5750805b5b156128c657601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128865750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bc906146bb565b60405180910390fd5b5b8180156129215750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129775750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a1a576001548311156129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b89061474d565b60405180910390fd5b600254836129ce886114a7565b6129d89190614055565b1115612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a10906147df565b60405180910390fd5b5b600081612a2957600754612a2d565b6008545b9050600b60019054906101000a900460ff168015612a485750825b8015612a6257506004601154612a5e9190614055565b4311155b8015612a7a57506a52b7d2dcc80cd2e4000000600154105b15612a885760639050612b18565b828015612a985750600654600954105b8015612ab057506a52b7d2dcc80cd2e4000000600154105b15612b17576000602890506000600754905060008183612ad09190613d18565b90506006546001600654612ae49190613d18565b60095483612af29190613af7565b612afc9190614055565b612b06919061482e565b83612b119190613d18565b93505050505b5b600654600954108015612b3057508280612b2f5750815b5b15612b4e5760096000815480929190612b489061485f565b91905055505b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ba55750815b80612c035750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c025750825b5b15612c315760648187612c169190613af7565b612c20919061482e565b94508486612c2e9190613d18565b93505b6000851115612c545784600a6000828254612c4c9190614055565b925050819055505b6000612c5f306114a7565b9050600b60029054906101000a900460ff16158015612c7b5750825b8015612c8957506004548110155b8015612c995750600354600a5410155b8015612ca9575060065460095410155b15612cfe576000600554600a5411612cc357600a54612cc7565b6005545b9050818111612cd65780612cd8565b815b9050612ce38161309e565b80600a6000828254612cf59190613d18565b92505081905550505b6000861115612dc35785601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d569190614055565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051612dba919061369d565b60405180910390a35b86601260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e129190613d18565b9250508190555084601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e689190614055565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051612ecc919061369d565b60405180910390a3505050505050505050565b612f0c30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461218e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612f58611a8a565b426040518863ffffffff1660e01b8152600401612f7a969594939291906148e2565b60606040518083038185885af1158015612f98573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612fbd9190614943565b5050507f38f8a0c92f4c5b0b6877f878cb4c0c8d348a47b76d716c8e78f425043df9515b8282604051612ff1929190613b39565b60405180910390a15050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001600b60026101000a81548160ff0219169083151502179055506130c2816130ff565b600047905060008111156130e05760008190506130de81613342565b505b506000600b60026101000a81548160ff02191690831515021790555050565b6000600267ffffffffffffffff81111561311c5761311b614996565b5b60405190808252806020026020018201604052801561314a5781602001602082028036833780820191505090505b5090503081600081518110613162576131616149c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061322d9190613ef1565b81600181518110613241576132406149c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506132a830601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461218e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161330c959493929190614ab2565b600060405180830381600087803b15801561332657600080fd5b505af115801561333a573d6000803e3d6000fd5b505050505050565b6000600282613351919061482e565b905060006002826133629190613af7565b8361336d9190613d18565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156133d7573d6000803e3d6000fd5b50600b60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82846134209190614055565b9081150290604051600060405180830381858888f1935050505015801561344b573d6000803e3d6000fd5b50505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561348b578082015181840152602081019050613470565b60008484015250505050565b6000601f19601f8301169050919050565b60006134b382613451565b6134bd818561345c565b93506134cd81856020860161346d565b6134d681613497565b840191505092915050565b600060208201905081810360008301526134fb81846134a8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061353382613508565b9050919050565b61354381613528565b811461354e57600080fd5b50565b6000813590506135608161353a565b92915050565b6000819050919050565b61357981613566565b811461358457600080fd5b50565b60008135905061359681613570565b92915050565b600080604083850312156135b3576135b2613503565b5b60006135c185828601613551565b92505060206135d285828601613587565b9150509250929050565b60008115159050919050565b6135f1816135dc565b82525050565b600060208201905061360c60008301846135e8565b92915050565b600061361d82613508565b9050919050565b61362d81613612565b82525050565b60006020820190506136486000830184613624565b92915050565b6000806040838503121561366557613664613503565b5b600061367385828601613587565b925050602061368485828601613587565b9150509250929050565b61369781613566565b82525050565b60006020820190506136b2600083018461368e565b92915050565b6000806000606084860312156136d1576136d0613503565b5b60006136df86828701613551565b93505060206136f086828701613551565b925050604061370186828701613587565b9150509250925092565b600060ff82169050919050565b6137218161370b565b82525050565b600060208201905061373c6000830184613718565b92915050565b60006020828403121561375857613757613503565b5b600061376684828501613551565b91505092915050565b60006020828403121561378557613784613503565b5b600061379384828501613587565b91505092915050565b6137a581613528565b82525050565b60006020820190506137c0600083018461379c565b92915050565b6137cf816135dc565b81146137da57600080fd5b50565b6000813590506137ec816137c6565b92915050565b6000806040838503121561380957613808613503565b5b600061381785828601613551565b9250506020613828858286016137dd565b9150509250929050565b6000806040838503121561384957613848613503565b5b600061385785828601613551565b925050602061386885828601613551565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138a860208361345c565b91506138b382613872565b602082019050919050565b600060208201905081810360008301526138d78161389b565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b600061391460168361345c565b915061391f826138de565b602082019050919050565b6000602082019050818103600083015261394381613907565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156139d0578086048111156139ac576139ab61394a565b5b60018516156139bb5780820291505b80810290506139c985613979565b9450613990565b94509492505050565b6000826139e95760019050613aa5565b816139f75760009050613aa5565b8160018114613a0d5760028114613a1757613a46565b6001915050613aa5565b60ff841115613a2957613a2861394a565b5b8360020a915084821115613a4057613a3f61394a565b5b50613aa5565b5060208310610133831016604e8410600b8410161715613a7b5782820a905083811115613a7657613a7561394a565b5b613aa5565b613a888484846001613986565b92509050818404811115613a9f57613a9e61394a565b5b81810290505b9392505050565b6000613ab782613566565b9150613ac28361370b565b9250613aef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139d9565b905092915050565b6000613b0282613566565b9150613b0d83613566565b9250828202613b1b81613566565b91508282048414831517613b3257613b3161394a565b5b5092915050565b6000604082019050613b4e600083018561368e565b613b5b602083018461368e565b9392505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bbe60258361345c565b9150613bc982613b62565b604082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5060238361345c565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ce260288361345c565b9150613ced82613c86565b604082019050919050565b60006020820190508181036000830152613d1181613cd5565b9050919050565b6000613d2382613566565b9150613d2e83613566565b9250828203905081811115613d4657613d4561394a565b5b92915050565b7f43616e6e6f74206578636c756465207a65726f20616464726573730000000000600082015250565b6000613d82601b8361345c565b9150613d8d82613d4c565b602082019050919050565b60006020820190508181036000830152613db181613d75565b9050919050565b7f4c61756e636820616c72656164792063616c6c65640000000000000000000000600082015250565b6000613dee60158361345c565b9150613df982613db8565b602082019050919050565b60006020820190508181036000830152613e1d81613de1565b9050919050565b7f436f6e7472616374206d757374206861766520626f74682045544820616e642060008201527f546f6b656e7320746f2070726f63656564207769746820746865206c61756e6360208201527f6800000000000000000000000000000000000000000000000000000000000000604082015250565b6000613ea660418361345c565b9150613eb182613e24565b606082019050919050565b60006020820190508181036000830152613ed581613e99565b9050919050565b600081519050613eeb8161353a565b92915050565b600060208284031215613f0757613f06613503565b5b6000613f1584828501613edc565b91505092915050565b6000604082019050613f33600083018561379c565b613f40602083018461379c565b9392505050565b6000606082019050613f5c600083018661368e565b613f69602083018561368e565b613f76604083018461368e565b949350505050565b6000604082019050613f93600083018561379c565b613fa0602083018461368e565b9392505050565b600081519050613fb6816137c6565b92915050565b600060208284031215613fd257613fd1613503565b5b6000613fe084828501613fa7565b91505092915050565b7f54726164696e6720616c7265616479206f70656e656400000000000000000000600082015250565b600061401f60168361345c565b915061402a82613fe9565b602082019050919050565b6000602082019050818103600083015261404e81614012565b9050919050565b600061406082613566565b915061406b83613566565b92508282019050808211156140835761408261394a565b5b92915050565b7f54726164696e67206d75737420626520656e61626c6564000000000000000000600082015250565b60006140bf60178361345c565b91506140ca82614089565b602082019050919050565b600060208201905081810360008301526140ee816140b2565b9050919050565b7f4c6971756964697479206d757374206265206164646564000000000000000000600082015250565b600061412b60178361345c565b9150614136826140f5565b602082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061419760148361345c565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f54686520756e697377617020706169722063616e6e6f742062652072656d6f7660008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b600061422960228361345c565b9150614234826141cd565b604082019050919050565b600060208201905081810360008301526142588161421c565b9050919050565b60008151905061426e81613570565b92915050565b60006020828403121561428a57614289613503565b5b60006142988482850161425f565b91505092915050565b6000819050919050565b60006142c66142c16142bc84613508565b6142a1565b613508565b9050919050565b60006142d8826142ab565b9050919050565b60006142ea826142cd565b9050919050565b6142fa816142df565b82525050565b600060408201905061431560008301856142f1565b614322602083018461368e565b9392505050565b7f43616e6e6f7420696e636c756465207a65726f20616464726573730000000000600082015250565b600061435f601b8361345c565b915061436a82614329565b602082019050919050565b6000602082019050818103600083015261438e81614352565b9050919050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b60006143cb601f8361345c565b91506143d682614395565b602082019050919050565b600060208201905081810360008301526143fa816143be565b9050919050565b7f45524332303a207472616e736665722066726f6d206f7220746f20746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b600061445d602b8361345c565b915061446882614401565b604082019050919050565b6000602082019050818103600083015261448c81614450565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144ef60298361345c565b91506144fa82614493565b604082019050919050565b6000602082019050818103600083015261451e816144e2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061458160268361345c565b915061458c82614525565b604082019050919050565b600060208201905081810360008301526145b081614574565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e204f6e6c79206f6e6560008201527f2070757263686173652070657220626c6f636b20616c6c6f7765642e00000000602082015250565b6000614613603c8361345c565b915061461e826145b7565b604082019050919050565b6000602082019050818103600083015261464281614606565b9050919050565b7f54726164696e6720686173206e6f74206265656e20656e61626c65642079657460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006146a560218361345c565b91506146b082614649565b604082019050919050565b600060208201905081810360008301526146d481614698565b9050919050565b7f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60008201527f6178696d756d20616c6c6f776564206c696d6974000000000000000000000000602082015250565b600061473760348361345c565b9150614742826146db565b604082019050919050565b600060208201905081810360008301526147668161472a565b9050919050565b7f526563697069656e7427732077616c6c65742062616c616e63652077696c6c2060008201527f65786365656420746865206d6178696d756d20616c6c6f776564206c696d6974602082015250565b60006147c960408361345c565b91506147d48261476d565b604082019050919050565b600060208201905081810360008301526147f8816147bc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061483982613566565b915061484483613566565b925082614854576148536147ff565b5b828204905092915050565b600061486a82613566565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361489c5761489b61394a565b5b600182019050919050565b6000819050919050565b60006148cc6148c76148c2846148a7565b6142a1565b613566565b9050919050565b6148dc816148b1565b82525050565b600060c0820190506148f7600083018961379c565b614904602083018861368e565b61491160408301876148d3565b61491e60608301866148d3565b61492b608083018561379c565b61493860a083018461368e565b979650505050505050565b60008060006060848603121561495c5761495b613503565b5b600061496a8682870161425f565b935050602061497b8682870161425f565b925050604061498c8682870161425f565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a2981613528565b82525050565b6000614a3b8383614a20565b60208301905092915050565b6000602082019050919050565b6000614a5f826149f4565b614a6981856149ff565b9350614a7483614a10565b8060005b83811015614aa5578151614a8c8882614a2f565b9750614a9783614a47565b925050600181019050614a78565b5085935050505092915050565b600060a082019050614ac7600083018861368e565b614ad460208301876148d3565b8181036040830152614ae68186614a54565b9050614af5606083018561379c565b614b02608083018461368e565b969550505050505056fea26469706673582212200237d3522dcbb216434af1be23ded53a80c2c6fdd3eb810d8f93266fcc2ad1fe64736f6c634300081c0033

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.