Token HYVE

 

Overview ERC-20

Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
1,789.184049 HYVE

Holders:
9 addresses

Transfers:
-

Contract:
0x61aee582896064ecd5d85d66a32ddeb5574a699d0x61aEe582896064ecD5D85D66a32DDEB5574A699D

Decimals:
18

Social Profiles:
Not Available, Update ?

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
HYVE

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : HyveToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

//copied from https://bscscan.com/address/0xF6565A97Dc832d93DC83B75EE9aa5c7e8ecB0F9d#code

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

    function _msgData()
    internal
    view
    virtual
    returns (bytes memory)
    {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


library SafeMath {
    function add(
        uint256 a,
        uint256 b
    )
    internal
    pure
    returns (uint256)
    {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(
        uint256 a,
        uint256 b
    )
    internal
    pure
    returns (uint256)
    {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    )
    internal
    pure
    returns (uint256)
    {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(
        uint256 a,
        uint256 b
    )
    internal
    pure
    returns (uint256)
    {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(
        uint256 a,
        uint256 b
    )
    internal
    pure
    returns (uint256)
    {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    )
    internal
    pure
    returns (uint256)
    {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(
        uint256 a,
        uint256 b
    )
    internal
    pure
    returns (uint256)
    {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    )
    internal
    pure
    returns (uint256)
    {
        require(b != 0, errorMessage);
        return a % b;
    }
}


library Address {
    function isContract(
        address account
    )
    internal
    view
    returns (bool)
    {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(
        address payable recipient,
        uint256 amount
    )
    internal
    {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (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");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    )
    private
    returns (bytes memory)
    {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


abstract contract Ownable is Context {
    address public owner;
    address public pendingOwner;

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

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

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

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

    function claimOwnership()
    external
    {
        require(_msgSender() == pendingOwner);
        emit OwnershipTransferred(owner, pendingOwner);
        owner = pendingOwner;
        pendingOwner = address(0);
    }
}


abstract contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = true;

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function pause()
    onlyOwner
    whenNotPaused
    external
    {
        paused = true;
        emit Pause();
    }

    function unpause()
    onlyOwner
    whenPaused
    external
    {
        paused = false;
        emit Unpause();
    }
}


abstract contract Whitelist is Pausable {
    mapping(address => bool) public whitelist;
    mapping(address => bool) public blacklist;

    modifier isWhitelisted() {
        require(whitelist[_msgSender()]);
        _;
    }

    modifier isBlacklisted() {
        require(blacklist[_msgSender()]);
        _;
    }

    function addWhitelist(
        address account
    )
    public
    onlyOwner
    {
        whitelist[account] = true;
    }

    function removeWhitelist(
        address account
    )
    public
    onlyOwner
    {
        whitelist[account] = false;
    }

    function addBlacklist(
        address account
    )
    public
    onlyOwner
    {
        blacklist[account] = true;
    }

    function removeBlacklist(
        address account
    )
    public
    onlyOwner
    {
        blacklist[account] = false;
    }
}


abstract contract ERC20 is Whitelist, IERC20 {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string internal _name;
    string internal _symbol;
    string internal _website;
    uint8 private _decimals;

    constructor (
        string memory name,
        string memory symbol
    ) {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

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

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

    function website()
    public
    view
    returns (string memory)
    {
        return _website;
    }

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    )
    public
    virtual
    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 _transfer(
        address sender,
        address recipient,
        uint256 amount
    )
    canTransfer
    internal
    virtual
    {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

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

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

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

    modifier canTransfer()
    {
        address msgSender = _msgSender();
        require(whitelist[msgSender] || !paused);
        require(!blacklist[msgSender]);
        _;
    }

    function _setupDecimals(
        uint8 decimals_
    )
    internal
    {
        _decimals = decimals_;
    }

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

    }
}

contract HYVE is ERC20("HYVE", "HYVE") {
    function mint(
        address _to,
        uint256 _amount
    )
    public
    onlyOwner
    {
        _mint(_to, _amount);
    }

    function burn(
        address _from,
        uint256 _amount
    )
    public
    onlyOwner
    {
        _burn(_from, _amount);
    }

    function setName(
        string memory _newName
    )
    public
    onlyOwner
    {
        _name = _newName;
    }

    function setSymbol(
        string memory _newSymbol
    )
    public
    onlyOwner
    {
        _symbol = _newSymbol;
    }

    function setWebsite(
        string memory _newWebsite
    )
    public
    onlyOwner
    {
        _website = _newWebsite;
    }

    function tokenFallback(
        address _from,
        uint256 _value,
        bytes memory _data
    )
    public
    {
        revert();
    }

    function takeOut(
        IERC20 _token,
        uint256 _amount
    )
    external
    onlyOwner
    {
        _token.transfer(owner, _amount);
    }
}

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

Contract Security Audit

Contract ABI

[{"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":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newName","type":"string"}],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newSymbol","type":"string"}],"name":"setSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newWebsite","type":"string"}],"name":"setWebsite","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"takeOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"website","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405260018060146101000a81548160ff0219169083151502179055503480156200002b57600080fd5b506040518060400160405280600481526020017f48595645000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f48595645000000000000000000000000000000000000000000000000000000008152506000620000aa6200019e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350816007908051906020019062000160929190620001a6565b50806008908051906020019062000179929190620001a6565b506012600a60006101000a81548160ff021916908360ff1602179055505050620002bb565b600033905090565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61304880620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80639b19251a1161010f578063c47f0027116100a2578063f2fde38b11610071578063f2fde38b1461057f578063f80f5dd51461059b578063f87f44b9146105b7578063f9f92be4146105d3576101f0565b8063c47f0027146104f9578063dd62ed3e14610515578063e30c397814610545578063eb91e65114610563576101f0565b8063a9059cbb116100de578063a9059cbb14610473578063b84c8246146104a3578063beb0a416146104bf578063c0ee0b8a146104dd576101f0565b80639b19251a146103db5780639cfe42da1461040b5780639dc29fac14610427578063a457c2d714610443576101f0565b80634e71e0c8116101875780638456cb59116101565780638456cb59146103795780638da5cb5b1461038357806395d89b41146103a15780639a1fb4ce146103bf576101f0565b80634e71e0c8146103055780635c975abb1461030f57806370a082311461032d57806378c8cda71461035d576101f0565b8063313ce567116101c3578063313ce5671461029157806339509351146102af5780633f4ba83a146102df57806340c10f19146102e9576101f0565b806306fdde03146101f5578063095ea7b31461021357806318160ddd1461024357806323b872dd14610261575b600080fd5b6101fd610603565b60405161020a919061287d565b60405180910390f35b61022d60048036038101906102289190612525565b610695565b60405161023a9190612862565b60405180910390f35b61024b6106b3565b60405161025891906129bf565b60405180910390f35b61027b600480360381019061027691906124d6565b6106bd565b6040516102889190612862565b60405180910390f35b610299610796565b6040516102a691906129da565b60405180910390f35b6102c960048036038101906102c49190612525565b6107ad565b6040516102d69190612862565b60405180910390f35b6102e7610860565b005b61030360048036038101906102fe9190612525565b610957565b005b61030d6109fa565b005b610317610b9d565b6040516103249190612862565b60405180910390f35b61034760048036038101906103429190612471565b610bb0565b60405161035491906129bf565b60405180910390f35b61037760048036038101906103729190612471565b610bf9565b005b610381610ce9565b005b61038b610de0565b604051610398919061281e565b60405180910390f35b6103a9610e04565b6040516103b6919061287d565b60405180910390f35b6103d960048036038101906103d491906125f1565b610e96565b005b6103f560048036038101906103f09190612471565b610fdd565b6040516104029190612862565b60405180910390f35b61042560048036038101906104209190612471565b610ffd565b005b610441600480360381019061043c9190612525565b6110ed565b005b61045d60048036038101906104589190612525565b611190565b60405161046a9190612862565b60405180910390f35b61048d60048036038101906104889190612525565b61125d565b60405161049a9190612862565b60405180910390f35b6104bd60048036038101906104b8919061262d565b61127b565b005b6104c761132a565b6040516104d4919061287d565b60405180910390f35b6104f760048036038101906104f29190612561565b6113bc565b005b610513600480360381019061050e919061262d565b6113c1565b005b61052f600480360381019061052a919061249a565b611470565b60405161053c91906129bf565b60405180910390f35b61054d6114f7565b60405161055a919061281e565b60405180910390f35b61057d60048036038101906105789190612471565b61151d565b005b61059960048036038101906105949190612471565b61160d565b005b6105b560048036038101906105b09190612471565b611756565b005b6105d160048036038101906105cc919061262d565b611846565b005b6105ed60048036038101906105e89190612471565b6118f5565b6040516105fa9190612862565b60405180910390f35b60606007805461061290612bcb565b80601f016020809104026020016040519081016040528092919081815260200182805461063e90612bcb565b801561068b5780601f106106605761010080835404028352916020019161068b565b820191906000526020600020905b81548152906001019060200180831161066e57829003601f168201915b5050505050905090565b60006106a96106a2611915565b848461191d565b6001905092915050565b6000600654905090565b60006106ca848484611ae8565b61078b846106d6611915565b61078685604051806060016040528060288152602001612fc660289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061073c611915565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e539092919063ffffffff16565b61191d565b600190509392505050565b6000600a60009054906101000a900460ff16905090565b60006108566107ba611915565b8461085185600560006107cb611915565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b61191d565b6001905092915050565b610868611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec9061291f565b60405180910390fd5b600160149054906101000a900460ff1661090e57600080fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b61095f611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e39061291f565b60405180910390fd5b6109f68282611f15565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a3b611915565b73ffffffffffffffffffffffffffffffffffffffff1614610a5b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160149054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c01611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c859061291f565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cf1611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d759061291f565b60405180910390fd5b600160149054906101000a900460ff1615610d9857600080fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060088054610e1390612bcb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612bcb565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b5050505050905090565b610e9e611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f229061291f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610f86929190612839565b602060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd891906125c8565b505050565b60026020528060005260406000206000915054906101000a900460ff1681565b611005611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611092576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110899061291f565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110f5611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611182576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111799061291f565b60405180910390fd5b61118c82826120ab565b5050565b600061125361119d611915565b8461124e85604051806060016040528060258152602001612fee60259139600560006111c7611915565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e539092919063ffffffff16565b61191d565b6001905092915050565b600061127161126a611915565b8484611ae8565b6001905092915050565b611283611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113079061291f565b60405180910390fd5b80600890805190602001906113269291906122aa565b5050565b60606009805461133990612bcb565b80601f016020809104026020016040519081016040528092919081815260200182805461136590612bcb565b80156113b25780601f10611387576101008083540402835291602001916113b2565b820191906000526020600020905b81548152906001019060200180831161139557829003601f168201915b5050505050905090565b600080fd5b6113c9611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d9061291f565b60405180910390fd5b806007908051906020019061146c9291906122aa565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611525611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a99061291f565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611615611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061291f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611712576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611709906128bf565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61175e611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e29061291f565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61184e611915565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d29061291f565b60405180910390fd5b80600990805190602001906118f19291906122aa565b5050565b60036020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561198d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119849061297f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f4906128df565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611adb91906129bf565b60405180910390a3505050565b6000611af2611915565b9050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b595750600160149054906101000a900460ff16155b611b6257600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bb957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c209061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c909061289f565b60405180910390fd5b611ca484848461225b565b611d1082604051806060016040528060268152602001612fa060269139600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e539092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611da582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e4591906129bf565b60405180910390a350505050565b6000838311158290611e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e92919061287d565b60405180910390fd5b5060008385611eaa9190612aee565b9050809150509392505050565b6000808284611ec69190612a98565b905083811015611f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f02906128ff565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7c9061299f565b60405180910390fd5b611f916000838361225b565b611fa681600654611eb790919063ffffffff16565b600681905550611ffe81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb790919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209f91906129bf565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561211b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121129061293f565b60405180910390fd5b6121278260008361225b565b61219381604051806060016040528060228152602001612f7e60229139600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e539092919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121eb8160065461226090919063ffffffff16565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224f91906129bf565b60405180910390a35050565b505050565b60006122a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e53565b905092915050565b8280546122b690612bcb565b90600052602060002090601f0160209004810192826122d8576000855561231f565b82601f106122f157805160ff191683800117855561231f565b8280016001018555821561231f579182015b8281111561231e578251825591602001919060010190612303565b5b50905061232c9190612330565b5090565b5b80821115612349576000816000905550600101612331565b5090565b600061236061235b84612a1a565b6129f5565b90508281526020810184848401111561237857600080fd5b612383848285612b89565b509392505050565b600061239e61239984612a4b565b6129f5565b9050828152602081018484840111156123b657600080fd5b6123c1848285612b89565b509392505050565b6000813590506123d881612f21565b92915050565b6000815190506123ed81612f38565b92915050565b600082601f83011261240457600080fd5b813561241484826020860161234d565b91505092915050565b60008135905061242c81612f4f565b92915050565b600082601f83011261244357600080fd5b813561245384826020860161238b565b91505092915050565b60008135905061246b81612f66565b92915050565b60006020828403121561248357600080fd5b6000612491848285016123c9565b91505092915050565b600080604083850312156124ad57600080fd5b60006124bb858286016123c9565b92505060206124cc858286016123c9565b9150509250929050565b6000806000606084860312156124eb57600080fd5b60006124f9868287016123c9565b935050602061250a868287016123c9565b925050604061251b8682870161245c565b9150509250925092565b6000806040838503121561253857600080fd5b6000612546858286016123c9565b92505060206125578582860161245c565b9150509250929050565b60008060006060848603121561257657600080fd5b6000612584868287016123c9565b93505060206125958682870161245c565b925050604084013567ffffffffffffffff8111156125b257600080fd5b6125be868287016123f3565b9150509250925092565b6000602082840312156125da57600080fd5b60006125e8848285016123de565b91505092915050565b6000806040838503121561260457600080fd5b60006126128582860161241d565b92505060206126238582860161245c565b9150509250929050565b60006020828403121561263f57600080fd5b600082013567ffffffffffffffff81111561265957600080fd5b61266584828501612432565b91505092915050565b61267781612b22565b82525050565b61268681612b34565b82525050565b600061269782612a7c565b6126a18185612a87565b93506126b1818560208601612b98565b6126ba81612cbb565b840191505092915050565b60006126d2602383612a87565b91506126dd82612ccc565b604082019050919050565b60006126f5602683612a87565b915061270082612d1b565b604082019050919050565b6000612718602283612a87565b915061272382612d6a565b604082019050919050565b600061273b601b83612a87565b915061274682612db9565b602082019050919050565b600061275e602083612a87565b915061276982612de2565b602082019050919050565b6000612781602183612a87565b915061278c82612e0b565b604082019050919050565b60006127a4602583612a87565b91506127af82612e5a565b604082019050919050565b60006127c7602483612a87565b91506127d282612ea9565b604082019050919050565b60006127ea601f83612a87565b91506127f582612ef8565b602082019050919050565b61280981612b72565b82525050565b61281881612b7c565b82525050565b6000602082019050612833600083018461266e565b92915050565b600060408201905061284e600083018561266e565b61285b6020830184612800565b9392505050565b6000602082019050612877600083018461267d565b92915050565b60006020820190508181036000830152612897818461268c565b905092915050565b600060208201905081810360008301526128b8816126c5565b9050919050565b600060208201905081810360008301526128d8816126e8565b9050919050565b600060208201905081810360008301526128f88161270b565b9050919050565b600060208201905081810360008301526129188161272e565b9050919050565b6000602082019050818103600083015261293881612751565b9050919050565b6000602082019050818103600083015261295881612774565b9050919050565b6000602082019050818103600083015261297881612797565b9050919050565b60006020820190508181036000830152612998816127ba565b9050919050565b600060208201905081810360008301526129b8816127dd565b9050919050565b60006020820190506129d46000830184612800565b92915050565b60006020820190506129ef600083018461280f565b92915050565b60006129ff612a10565b9050612a0b8282612bfd565b919050565b6000604051905090565b600067ffffffffffffffff821115612a3557612a34612c8c565b5b612a3e82612cbb565b9050602081019050919050565b600067ffffffffffffffff821115612a6657612a65612c8c565b5b612a6f82612cbb565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612aa382612b72565b9150612aae83612b72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ae357612ae2612c2e565b5b828201905092915050565b6000612af982612b72565b9150612b0483612b72565b925082821015612b1757612b16612c2e565b5b828203905092915050565b6000612b2d82612b52565b9050919050565b60008115159050919050565b6000612b4b82612b22565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612bb6578082015181840152602081019050612b9b565b83811115612bc5576000848401525b50505050565b60006002820490506001821680612be357607f821691505b60208210811415612bf757612bf6612c5d565b5b50919050565b612c0682612cbb565b810181811067ffffffffffffffff82111715612c2557612c24612c8c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b612f2a81612b22565b8114612f3557600080fd5b50565b612f4181612b34565b8114612f4c57600080fd5b50565b612f5881612b40565b8114612f6357600080fd5b50565b612f6f81612b72565b8114612f7a57600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122045a0d104eb6ceb81de053e0a10a7ae41b2ee6154cff1f59f9c263df0f740022664736f6c63430008030033

Loading