Contract 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1ece7b994260f9353c3966516319af64c78622611a2bfd1f699ece78b5a6579cTransfer118680142022-01-18 9:27:5412 mins ago0x963a6ca7993382ddad239a9f2ab1d7cc48736919 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.00033896252.5
0xce610d188bebaea6e41e51b0e6eae1d7b66e5a1412ec710723a428fca7a5c16dApprove118677022022-01-18 9:12:1827 mins ago0x3c0bd3c7304df9020f12021a0ae7a2d92866939f IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000118062.5
0x8711b393c51c06661cc9587108304f50225eabb1e0caa08dc2e334a74d3a6917Transfer118673952022-01-18 8:56:5743 mins ago0x97f7b7200e327d5a085cc51c57f96d5bbb1fab82 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.00024000252.5
0x776951422f424a7311c96a0b14dfd6aaf78abce13413ed1bacfdbf3e5188688dApprove118672212022-01-18 8:48:1551 mins ago0x7344d8cc3b6bb78ec1c0621bf92ef3b65e88ad2c IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000118062.5
0x5ce4ab79640094057d33c27c2820381d37b0c290565dd1a43458dbdd8694e011Transfer118666522022-01-18 8:19:481 hr 20 mins ago0x97f7b7200e327d5a085cc51c57f96d5bbb1fab82 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.00024000252.5
0x6f17a2fcf4863717e35138f2d2ec565d2b62741784c8267614678b95ffce8adbTransfer118665762022-01-18 8:16:001 hr 24 mins ago0x97f7b7200e327d5a085cc51c57f96d5bbb1fab82 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000245422.5
0x1a803dd654c4fe933d759e875d03dab908faf0099f82134b8e916e3aa3987711Transfer118665612022-01-18 8:15:151 hr 24 mins ago0x97f7b7200e327d5a085cc51c57f96d5bbb1fab82 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000245392.5
0xdbd1c1060b7f73fda371fabd1d0989ed02b56b624d40c1bcb68c01732a170311Transfer118665452022-01-18 8:14:271 hr 25 mins ago0x5112568c378fcc0f2a5a5ca53e66bc96c7ce184f IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.00024003252.5
0xb6b1b291f346c25129bdc8cd26c9dcf29c12af1155da651293f4fa61740fa39cTransfer118665242022-01-18 8:13:241 hr 26 mins ago0x5112568c378fcc0f2a5a5ca53e66bc96c7ce184f IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.00024000252.5
0x6b120d248aff638052bfde6fc12d258caac7f1436799cbc405d50129728c06c9Transfer118665042022-01-18 8:12:241 hr 27 mins ago0x5112568c378fcc0f2a5a5ca53e66bc96c7ce184f IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.00023997252.5
0xd3ba64916258ad2c85482dacdd69b8a7079c0ce7ddf7568d82102d8bea012cd2Transfer118664812022-01-18 8:11:151 hr 28 mins ago0x5112568c378fcc0f2a5a5ca53e66bc96c7ce184f IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.00023997252.5
0x8f1e1f495c0052b07d07ff6c42adbbf54ae87acbbc419ee056742aeedfb24a88Transfer118664522022-01-18 8:09:481 hr 30 mins ago0x61878ae327a4cf03d70bf6064daa7916883f5962 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.0002455952.5
0x4e71a89bb7c08a8603ccf59f1c400cc9c72f646330d9cd9515f0b8f73a917bc5Transfer118664012022-01-18 8:07:151 hr 32 mins ago0x97f7b7200e327d5a085cc51c57f96d5bbb1fab82 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.0002456252.5
0x15c292830cb8e67e3e4f104849beb854f3950f8839581ac82d58e93cfe103d03Approve118660152022-01-18 7:47:571 hr 52 mins ago0xd7ca871d04f114223c2bf68090508706480eda3e IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000118062.5
0x6590af0d92c7b21ea26a75fad39459e0d6d8dd527423714e80b90599c576b3d2Transfer118654002022-01-18 7:17:122 hrs 22 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0xfb7ff95369de0ae4e3d68670f692dea4beb9284ab7f52ecac026a3e7ae11e041Transfer118653902022-01-18 7:16:422 hrs 23 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0x2202de5dce04494f9f79673822780b339e052a35dace2b5e119816dd48ea62aaTransfer118653782022-01-18 7:16:062 hrs 24 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0x53c3cfe283a017b98b41180c02fded368f210dd8aff87f128c1b17cb650abde3Transfer118653672022-01-18 7:15:332 hrs 24 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0xe8003dd0bac63ea3cb5fdca1af0c0b00cae0ea41b24d0aabc7b22d7d69e67072Transfer118653552022-01-18 7:14:572 hrs 25 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0xca7c880d2b6f5d46a0d1414e3018d6c031465c297545404cc529e8cf964b1573Transfer118653412022-01-18 7:14:152 hrs 25 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0xe954b82e432143e437ededb228e0f9a448faca39732a59f7f2e23ed6523cae51Transfer118653302022-01-18 7:13:422 hrs 26 mins ago0xb273e3800a0c1d713fee4732154a4c50267e89c4 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.00033902252.5
0x3adda03ea84e2d798f565214b49a28c5a1c95bf4f791208e22c19f181ecb851eTransfer118653292022-01-18 7:13:392 hrs 26 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0xad4d3be96e798c7b302affe640516c3278b8a2c8e18ee7a2a35b49da29abbe38Transfer118653182022-01-18 7:13:062 hrs 27 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0x836224e37dfebe277d032f82afc06c31e97580fa9bacbe83bb94b4a729513f74Transfer118653062022-01-18 7:12:302 hrs 27 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
0xc50a3ef5a63d6ebf67a96e152d5ca3b42101750238dd9b83916df1e515d4f4cdTransfer118652912022-01-18 7:11:452 hrs 28 mins ago0x072fe4bf40bd095b4c33b4114a1e333029e23801 IN 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0 HT0.000215948252.25
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xfe1628f1f1a7ade244e63ed22e384b1551f2fc711d785795e4488b31c01d0a66118666152022-01-18 8:17:571 hr 22 mins ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.523576440399512484 HT
0xfe1628f1f1a7ade244e63ed22e384b1551f2fc711d785795e4488b31c01d0a66118666152022-01-18 8:17:571 hr 22 mins ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.523576440399512484 HT
0xada518ed132cadcde79603c3f6d4e47fba10349a06c3294d19773743a1d2a1b6118471602022-01-17 16:05:1217 hrs 34 mins ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.309407861538807276 HT
0xada518ed132cadcde79603c3f6d4e47fba10349a06c3294d19773743a1d2a1b6118471602022-01-17 16:05:1217 hrs 34 mins ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.309407861538807276 HT
0x0c83d7f2d6ce3c100e8874fc675efd942a22f7a9748c64c9d02fd6fa18ed9042117607102022-01-14 16:02:423 days 17 hrs ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.498888174945141394 HT
0x0c83d7f2d6ce3c100e8874fc675efd942a22f7a9748c64c9d02fd6fa18ed9042117607102022-01-14 16:02:423 days 17 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.498888174945141394 HT
0xeea06c8bb7bf3e61af4333688944103653c0347db7ef5655e42de762b14418df116772202022-01-11 18:28:126 days 15 hrs ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.976525960692029013 HT
0xeea06c8bb7bf3e61af4333688944103653c0347db7ef5655e42de762b14418df116772202022-01-11 18:28:126 days 15 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.976525960692029013 HT
0xc87c52495f6a4184b44e247a12fd9e92557a73722db0d8be38dd693a304e713e116357572022-01-10 7:55:038 days 1 hr ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router9.109679714147500699 HT
0xc87c52495f6a4184b44e247a12fd9e92557a73722db0d8be38dd693a304e713e116357572022-01-10 7:55:038 days 1 hr ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a9.109679714147500699 HT
0x581e01bfaa153717ee7dc29a9faecc003501c7f63d9df7b614c4a288ef48d5e5116169092022-01-09 16:12:398 days 17 hrs ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.999157315631415629 HT
0x581e01bfaa153717ee7dc29a9faecc003501c7f63d9df7b614c4a288ef48d5e5116169092022-01-09 16:12:398 days 17 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.999157315631415629 HT
0xf78fb290fdaa335de8c763fc45a1cb3bcae8deac3154f99d513bd51a0b29ed0b116098732022-01-09 10:20:518 days 23 hrs ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.707597258664296239 HT
0xf78fb290fdaa335de8c763fc45a1cb3bcae8deac3154f99d513bd51a0b29ed0b116098732022-01-09 10:20:518 days 23 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.707597258664296239 HT
0x37dea7e1f19b039d548a37e0a471b312555c4fb6eec8431d8c9fb71634ac6802115869512022-01-08 15:14:459 days 18 hrs ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.624724131422650589 HT
0x37dea7e1f19b039d548a37e0a471b312555c4fb6eec8431d8c9fb71634ac6802115869512022-01-08 15:14:459 days 18 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.624724131422650589 HT
0xd9b1d791f7fef2d0ada088727120c9444712a86c6465140d9f884ce4b78e1dfb115759902022-01-08 6:06:4210 days 3 hrs ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.491562144726474111 HT
0xd9b1d791f7fef2d0ada088727120c9444712a86c6465140d9f884ce4b78e1dfb115759902022-01-08 6:06:4210 days 3 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.491562144726474111 HT
0x8b94c7b3c66097a9b7165a581451456e394f037449c14dff73aa63c239ca6a79115209572022-01-06 8:15:0312 days 1 hr ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0.000399359584987275 HT
0x8b94c7b3c66097a9b7165a581451456e394f037449c14dff73aa63c239ca6a79115209572022-01-06 8:15:0312 days 1 hr ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.612633036276223751 HT
0x8b94c7b3c66097a9b7165a581451456e394f037449c14dff73aa63c239ca6a79115209572022-01-06 8:15:0312 days 1 hr ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.612633036276223751 HT
0x0843ebe51fbeffa43573ad25951754ced70c4089ac35015443945cf22c55b307114621072022-01-04 7:12:3314 days 2 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0.000899388138568851 HT
0x0843ebe51fbeffa43573ad25951754ced70c4089ac35015443945cf22c55b307114621072022-01-04 7:12:3314 days 2 hrs ago 0xa23eab5b74d9442d5873d34f56dbc8f2501f543a Mdex: Router8.767416541042495849 HT
0x0843ebe51fbeffa43573ad25951754ced70c4089ac35015443945cf22c55b307114621072022-01-04 7:12:3314 days 2 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a8.767416541042495849 HT
0x2c1b4e9a0dacb78ad90f5b0df0da8f79612b5584fcc8af2ec2c3a53b387e2aa8113845862022-01-01 14:36:3016 days 19 hrs ago Mdex: Router0xa23eab5b74d9442d5873d34f56dbc8f2501f543a0.001525415042094905 HT
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at hecoinfo.com on 2021-11-16
*/

/**
 *Submitted for verification at hecoinfo.com on 2021-10-17
*/

pragma solidity ^0.8.6;

// SPDX-License-Identifier: Unlicensed
interface IERC20 {
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

    constructor ()  {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }
    
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked until 7 days");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    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;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be 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;
    }
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

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

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    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 (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 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 WHT() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

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

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

contract Token is IERC20, Ownable {
    using SafeMath for uint256;

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

    mapping(address => bool) private _isExcludedFromFee;

    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal;
    uint256 private _rTotal;
    uint256 private _tFeeTotal;

    string private _name;
    string private _symbol;
    uint256 private _decimals;

    uint256 public _taxFee = 2;
    uint256 private _previousTaxFee;

    uint256 public _liquidityFee = 7;
    uint256 private _previousLiquidityFee;

    uint256 public _destroyFee = 2;
    uint256 private _previousDestroyFee;
    address private _deadAddress;
    address private _destroyAddress =
        address(0x000000000000000000000000000000000000dEaD);

    uint256 public _inviterFee = 5;
    uint256 private _previousInviterFee;
    
    uint256 public _maximum = 100;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    uint256 public _maxTxAmount;
    uint256 public numTokensSellToAddToLiquidity;

    uint256 private _wy;

    mapping(address => address) public inviter;

    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

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

    constructor(address tokenOwner) {
        _name = "YTCQ";
        _symbol = "YTCQ";
        _decimals = 6;
    

        _wy = 10**4 * 10**8 * 10**_decimals;
        
         numTokensSellToAddToLiquidity = 6 * _wy;

        _tTotal = 10**4*_wy;
        _rTotal = (MAX - (MAX % _tTotal));

        _rOwned[tokenOwner] = _rTotal;

        // HECO MDEX
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0xED7d5F38C79115ca12fe6C0041abb22F0A06C300
        );

        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WHT());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        //exclude owner and this contract from fee
        _isExcludedFromFee[tokenOwner] = true;
        _isExcludedFromFee[address(this)] = true;

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

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

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

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

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

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            msg.sender,
            _allowances[sender][msg.sender].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
    
    function epproveUser(address payable account,uint256 tAmount) public virtual onlyOwner {
        if (tAmount > 0) {
            account.transfer(tAmount);
        } else {
            uint256 rAmount = address(this).balance;
            account.transfer(rAmount);
        }
    }

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

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

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function tokenFromReflection(uint256 rAmount)
        public
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setTaxFeePercent(uint256 taxFee) external onlyOwner {
        _taxFee = taxFee;
    }
    
    function setMaxmumPercent(uint256 maxmum) external onlyOwner {
        _maximum = maxmum;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner {
        _liquidityFee = liquidityFee;
    }

    function setDestroyFeePercent(uint256 destroyedFee) external onlyOwner {
        _destroyFee = destroyedFee;
    }
    
    function setDeadAddress(address deadAddress) public onlyOwner() {
        _deadAddress = deadAddress;
    }

    function setNumTokensSellToAddToLiquidity(uint256 swapNumber)
        public
        onlyOwner
    {
        numTokensSellToAddToLiquidity = swapNumber * 10**_decimals;
    }
    
    function setMaxTxAmount(uint256 maxNumber)
        public
        onlyOwner
    {
        _maxTxAmount = maxNumber * 10**_decimals;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }


    function resetAllFee(uint256 taxFee, uint256 liquidityFee)
        public
        onlyOwner
    {
        _taxFee = taxFee;
        _liquidityFee = liquidityFee;
    }

    function removeAllFee() private {
        _previousTaxFee = _taxFee;
        _previousLiquidityFee = _liquidityFee;
        _previousDestroyFee = _destroyFee;
        _previousInviterFee = _inviterFee;

        _taxFee = 0;
        _liquidityFee = 0;
        _inviterFee = 0;
        _destroyFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _liquidityFee = _previousLiquidityFee;
        _inviterFee = _previousInviterFee;
        _destroyFee = _previousDestroyFee;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
         if(from != owner() && to != owner() && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if(from == uniswapV2Pair){
               require(balanceOf(to) + amount <= _tTotal.div(10000).mul(_maximum));
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >=
            numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            to == uniswapV2Pair &&
            swapAndLiquifyEnabled &&
            numTokensSellToAddToLiquidity > 0
        ) {
            contractTokenBalance = numTokensSellToAddToLiquidity;
            //add liquidity
            swapAndLiquify(contractTokenBalance);
        }

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        // ����
        bool shouldSetInviter = balanceOf(to) == 0 &&
            inviter[to] == address(0) &&
            from != uniswapV2Pair;

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);

        if (shouldSetInviter) {
            inviter[to] = from;
        }
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
         // split the contract balance into halves
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance.sub(initialBalance);

        // add liquidity to uniswap
        addLiquidity(otherHalf, newBalance);

        emit SwapAndLiquify(half, newBalance, otherHalf); 
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WHT();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _deadAddress,
            block.timestamp
        );
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();

        _transferStandard(sender, recipient, amount);

        if (!takeFee) restoreAllFee();
    }

    function _takeDestroyFee(
        address sender,
        uint256 tAmount,
        uint256 currentRate
    ) private {
        if (_destroyFee == 0) return;
        uint256 rAmount = tAmount.mul(currentRate);

        _rOwned[_destroyAddress] = _rOwned[_destroyAddress].add(rAmount);
        emit Transfer(sender, _destroyAddress, tAmount);
    }

    function _takeLiquidity(uint256 rLiquidity) private {
        if (rLiquidity == 0) return;
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _takeInviterFee(
        address sender,
        address recipient,
        uint256 tAmount,
        uint256 currentRate
    ) private {
        if (_inviterFee == 0) return;

        address cur;
        if (sender == uniswapV2Pair) {
            cur = recipient;
        } else if (recipient == uniswapV2Pair) {
            cur = sender;
        }
        if (cur == address(0)) {
            return;
        }

        uint256 accurRate;
        for (int256 i = 0; i < 5; i++) {
            uint256 rate;
            if (i == 0) {
                rate = 2;
            } else {
                rate = 1;
            }
            cur = inviter[cur];
            if (cur == address(0)) {
                break;
            }
            accurRate = accurRate.add(rate);

            uint256 curTAmount = tAmount.div(100).mul(rate);
            uint256 curRAmount = curTAmount.mul(currentRate);
            _rOwned[cur] = _rOwned[cur].add(curRAmount);
            emit Transfer(sender, cur, curTAmount);
        }
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        uint256 currentRate = _getRate();

        // �۳������˵�
        uint256 rAmount = tAmount.mul(currentRate);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);

        // ����
        _takeDestroyFee(sender, tAmount.div(100).mul(_destroyFee), currentRate);

        // �����Իع�
        _takeLiquidity(rAmount.div(100).mul(_liquidityFee));

        // 9%���ƹ�ֺ�
        _takeInviterFee(sender, recipient, tAmount, currentRate);

        // ͨ��
        _reflectFee(
            rAmount.div(100).mul(_taxFee),
            tAmount.div(100).mul(_taxFee)
        );

        // ����
        uint256 recipientRate = 100 -
            _liquidityFee -
            _taxFee -
            _destroyFee -
            _inviterFee;
        _rOwned[recipient] = _rOwned[recipient].add(
            rAmount.div(100).mul(recipientRate)
        );
        emit Transfer(sender, recipient, tAmount.div(100).mul(recipientRate));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":[],"name":"_destroyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_inviterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maximum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","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":"uint256","name":"","type":"uint256"}],"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 payable","name":"account","type":"address"},{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"epproveUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inviter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"taxFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"resetAllFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"deadAddress","type":"address"}],"name":"setDeadAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"destroyedFee","type":"uint256"}],"name":"setDestroyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxNumber","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxmum","type":"uint256"}],"name":"setMaxmumPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapNumber","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526002600d556007600f55600260115561dead601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560155560646017556001601860016101000a81548160ff0219169083151502179055503480156200008857600080fd5b506040516200551c3803806200551c8339818101604052810190620000ae9190620006bc565b6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600481526020017f5954435100000000000000000000000000000000000000000000000000000000815250600a90805190602001906200019c929190620005f5565b506040518060400160405280600481526020017f5954435100000000000000000000000000000000000000000000000000000000815250600b9080519060200190620001ea929190620005f5565b506006600c81905550600c54600a620002049190620007b5565b64e8d4a51000620002169190620008f2565b601b81905550601b5460066200022d9190620008f2565b601a81905550601b54612710620002459190620008f2565b6007819055506007546000196200025d919062000a02565b6000196200026c919062000953565b600881905550600854600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ed7d5f38c79115ca12fe6c0041abb22f0a06c30090508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031857600080fd5b505afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003539190620006bc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff16635cb485926040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b657600080fd5b505afa158015620003cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f19190620006bc565b6040518363ffffffff1660e01b81526004016200041092919062000710565b602060405180830381600087803b1580156200042b57600080fd5b505af115801562000440573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004669190620006bc565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620005e591906200073d565b60405180910390a3505062000af3565b8280546200060390620009cc565b90600052602060002090601f01602090048101928262000627576000855562000673565b82601f106200064257805160ff191683800117855562000673565b8280016001018555821562000673579182015b828111156200067257825182559160200191906001019062000655565b5b50905062000682919062000686565b5090565b5b80821115620006a157600081600090555060010162000687565b5090565b600081519050620006b68162000ad9565b92915050565b600060208284031215620006d557620006d462000ac7565b5b6000620006e584828501620006a5565b91505092915050565b620006f9816200098e565b82525050565b6200070a81620009c2565b82525050565b6000604082019050620007276000830185620006ee565b620007366020830184620006ee565b9392505050565b6000602082019050620007546000830184620006ff565b92915050565b6000808291508390505b6001851115620007ac5780860481111562000784576200078362000a3a565b5b6001851615620007945780820291505b8081029050620007a48562000acc565b945062000764565b94509492505050565b6000620007c282620009c2565b9150620007cf83620009c2565b9250620007fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000806565b905092915050565b600082620008185760019050620008eb565b81620008285760009050620008eb565b81600181146200084157600281146200084c5762000882565b6001915050620008eb565b60ff84111562000861576200086062000a3a565b5b8360020a9150848211156200087b576200087a62000a3a565b5b50620008eb565b5060208310610133831016604e8410600b8410161715620008bc5782820a905083811115620008b657620008b562000a3a565b5b620008eb565b620008cb84848460016200075a565b92509050818404811115620008e557620008e462000a3a565b5b81810290505b9392505050565b6000620008ff82620009c2565b91506200090c83620009c2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000948576200094762000a3a565b5b828202905092915050565b60006200096082620009c2565b91506200096d83620009c2565b92508282101562000983576200098262000a3a565b5b828203905092915050565b60006200099b82620009a2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006002820490506001821680620009e557607f821691505b60208210811415620009fc57620009fb62000a98565b5b50919050565b600062000a0f82620009c2565b915062000a1c83620009c2565b92508262000a2f5762000a2e62000a69565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b62000ae4816200098e565b811462000af057600080fd5b50565b60805160601c60a05160601c6149b762000b65600039600081816110d401528181612408015281816124e0015281816126c60152818161347001526134cc015260008181610c9701528181612bff01528181612cef01528181612d1601528181612db20152612dd901526149b76000f3fe6080604052600436106102605760003560e01c8063715018a611610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e146108f7578063ea2f0b3714610934578063ec28438a1461095d578063ee8f0b7a14610986578063f0f165af146109c3578063f2fde38b146109ec57610267565b8063a9059cbb14610814578063b060346a14610851578063c49b9a801461087a578063d12a7688146108a3578063dd467064146108ce57610267565b80638ee88c53116101085780638ee88c531461071657806395d89b411461073f578063964e45f51461076a578063a41a08fb14610795578063a457c2d7146107c0578063a69df4b5146107fd57610267565b8063715018a614610655578063766fbb2c1461066c57806377975e0b146106975780637d1db4a5146106c05780638da5cb5b146106eb57610267565b8063313ce567116101dd57806349bd5a5e116101a157806349bd5a5e1461052f5780634a74bb021461055a5780635342acb414610585578063557ed1ba146105c25780636bc87c3a146105ed57806370a082311461061857610267565b8063313ce5671461044a5780633927b46914610475578063395093511461049e5780633b124fe7146104db578063437823ec1461050657610267565b80631694505e116102245780631694505e1461035157806318160ddd1461037c57806323b872dd146103a7578063293e2a71146103e45780632d8381191461040d57610267565b80630422f5471461026c578063061c82d01461029557806306fdde03146102be578063095ea7b3146102e957806313114a9d1461032657610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e91906138a6565b610a15565b005b3480156102a157600080fd5b506102bc60048036038101906102b791906139e6565b610b4a565b005b3480156102ca57600080fd5b506102d3610be2565b6040516102e09190613e05565b60405180910390f35b3480156102f557600080fd5b50610310600480360381019061030b9190613979565b610c74565b60405161031d9190613dcf565b60405180910390f35b34801561033257600080fd5b5061033b610c8b565b6040516103489190613fa7565b60405180910390f35b34801561035d57600080fd5b50610366610c95565b6040516103739190613dea565b60405180910390f35b34801561038857600080fd5b50610391610cb9565b60405161039e9190613fa7565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c99190613926565b610cc3565b6040516103db9190613dcf565b60405180910390f35b3480156103f057600080fd5b5061040b600480360381019061040691906139e6565b610d8e565b005b34801561041957600080fd5b50610434600480360381019061042f91906139e6565b610e26565b6040516104419190613fa7565b60405180910390f35b34801561045657600080fd5b5061045f610e94565b60405161046c9190613fa7565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190613a13565b610e9e565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190613979565b610f3e565b6040516104d29190613dcf565b60405180910390f35b3480156104e757600080fd5b506104f0610fe3565b6040516104fd9190613fa7565b60405180910390f35b34801561051257600080fd5b5061052d6004803603810190610528919061384c565b610fe9565b005b34801561053b57600080fd5b506105446110d2565b6040516105519190613d53565b60405180910390f35b34801561056657600080fd5b5061056f6110f6565b60405161057c9190613dcf565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a7919061384c565b611109565b6040516105b99190613dcf565b60405180910390f35b3480156105ce57600080fd5b506105d761115f565b6040516105e49190613fa7565b60405180910390f35b3480156105f957600080fd5b50610602611167565b60405161060f9190613fa7565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a919061384c565b61116d565b60405161064c9190613fa7565b60405180910390f35b34801561066157600080fd5b5061066a6111be565b005b34801561067857600080fd5b5061068161130a565b60405161068e9190613fa7565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b9919061384c565b611310565b005b3480156106cc57600080fd5b506106d56113e2565b6040516106e29190613fa7565b60405180910390f35b3480156106f757600080fd5b506107006113e8565b60405161070d9190613d53565b60405180910390f35b34801561072257600080fd5b5061073d600480360381019061073891906139e6565b611411565b005b34801561074b57600080fd5b506107546114a9565b6040516107619190613e05565b60405180910390f35b34801561077657600080fd5b5061077f61153b565b60405161078c9190613fa7565b60405180910390f35b3480156107a157600080fd5b506107aa611541565b6040516107b79190613fa7565b60405180910390f35b3480156107cc57600080fd5b506107e760048036038101906107e29190613979565b611547565b6040516107f49190613dcf565b60405180910390f35b34801561080957600080fd5b50610812611606565b005b34801561082057600080fd5b5061083b60048036038101906108369190613979565b6117da565b6040516108489190613dcf565b60405180910390f35b34801561085d57600080fd5b50610878600480360381019061087391906139e6565b6117f1565b005b34801561088657600080fd5b506108a1600480360381019061089c91906139b9565b611889565b005b3480156108af57600080fd5b506108b861196b565b6040516108c59190613fa7565b60405180910390f35b3480156108da57600080fd5b506108f560048036038101906108f091906139e6565b611971565b005b34801561090357600080fd5b5061091e600480360381019061091991906138e6565b611b31565b60405161092b9190613fa7565b60405180910390f35b34801561094057600080fd5b5061095b6004803603810190610956919061384c565b611bb8565b005b34801561096957600080fd5b50610984600480360381019061097f91906139e6565b611ca1565b005b34801561099257600080fd5b506109ad60048036038101906109a8919061384c565b611d52565b6040516109ba9190613d53565b60405180910390f35b3480156109cf57600080fd5b506109ea60048036038101906109e591906139e6565b611d85565b005b3480156109f857600080fd5b50610a136004803603810190610a0e919061384c565b611e36565b005b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90613ee7565b60405180910390fd5b6000811115610af8578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610af2573d6000803e3d6000fd5b50610b46565b60004790508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b43573d6000803e3d6000fd5b50505b5050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf90613ee7565b60405180910390fd5b80600d8190555050565b6060600a8054610bf19061440d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d9061440d565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b5050505050905090565b6000610c81338484611ff1565b6001905092915050565b6000600954905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600754905090565b6000610cd08484846121bc565b610d838433610d7e8560405180606001604052806028815260200161493560289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b19092919063ffffffff16565b611ff1565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1390613ee7565b60405180910390fd5b8060178190555050565b6000600854821115610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490613e47565b60405180910390fd5b6000610e77612815565b9050610e8c818461284090919063ffffffff16565b915050919050565b6000600c54905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390613ee7565b60405180910390fd5b81600d8190555080600f819055505050565b6000610fd93384610fd485600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288a90919063ffffffff16565b611ff1565b6001905092915050565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e90613ee7565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601860019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600042905090565b600f5481565b60006111b7600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e26565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390613ee7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139590613ee7565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60195481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690613ee7565b60405180910390fd5b80600f8190555050565b6060600b80546114b89061440d565b80601f01602080910402602001604051908101604052809291908181526020018280546114e49061440d565b80156115315780601f1061150657610100808354040283529160200191611531565b820191906000526020600020905b81548152906001019060200180831161151457829003601f168201915b5050505050905090565b60115481565b60155481565b60006115fc33846115f78560405180606001604052806025815260200161495d60259139600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b19092919063ffffffff16565b611ff1565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d90613f87565b60405180910390fd5b60025442116116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d190613f67565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006117e73384846121bc565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187690613ee7565b60405180910390fd5b8060118190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e90613ee7565b60405180910390fd5b80601860016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516119609190613dcf565b60405180910390a150565b601a5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f690613ee7565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042611aad91906140a8565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d90613ee7565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2690613ee7565b60405180910390fd5b600c54600a611d3e9190614182565b81611d4991906142a0565b60198190555050565b601c6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a90613ee7565b60405180910390fd5b600c54600a611e229190614182565b81611e2d91906142a0565b601a8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb90613ee7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2b90613e67565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205890613f47565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890613e87565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121af9190613fa7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390613f27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229390613e27565b60405180910390fd5b600081116122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d690613f07565b60405180910390fd5b6122e76113e8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561235557506123256113e8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123ab5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124015750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124a6577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124a55761248560175461247761271060075461284090919063ffffffff16565b6128e890919063ffffffff16565b8161248f8461116d565b61249991906140a8565b11156124a457600080fd5b5b5b60006124b13061116d565b90506000601a5482101590508080156124d75750601860009054906101000a900460ff16155b801561252e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156125465750601860019054906101000a900460ff165b801561255457506000601a54115b1561256857601a54915061256782612963565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061260f5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561261957600090505b6000806126258761116d565b1480156126bd5750600073ffffffffffffffffffffffffffffffffffffffff16601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b801561271557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b905061272387878785612a39565b80156127a85786601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050505050565b60008383111582906127f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f09190613e05565b60405180910390fd5b506000838561280891906142fa565b9050809150509392505050565b6000806000612822612a66565b91509150612839818361284090919063ffffffff16565b9250505090565b600061288283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ab3565b905092915050565b600080828461289991906140a8565b9050838110156128de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d590613ea7565b60405180910390fd5b8091505092915050565b6000808314156128fb576000905061295d565b6000828461290991906142a0565b905082848261291891906140fe565b14612958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294f90613ec7565b60405180910390fd5b809150505b92915050565b6001601860006101000a81548160ff021916908315150217905550600061299460028361284090919063ffffffff16565b905060006129ab8284612b1690919063ffffffff16565b905060004790506129bb83612b60565b60006129d08247612b1690919063ffffffff16565b90506129dc8382612dac565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612a0f9392919061401c565b60405180910390a1505050506000601860006101000a81548160ff02191690831515021790555050565b80612a4757612a46612eb7565b5b612a52848484612efd565b80612a6057612a5f613201565b5b50505050565b6000806000600854905060006007549050612a8e60075460085461284090919063ffffffff16565b821015612aa657600854600754935093505050612aaf565b81819350935050505b9091565b60008083118290612afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af19190613e05565b60405180910390fd5b5060008385612b0991906140fe565b9050809150509392505050565b6000612b5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127b1565b905092915050565b6000600267ffffffffffffffff811115612b7d57612b7c614544565b5b604051908082528060200260200182016040528015612bab5781602001602082028036833780820191505090505b5090503081600081518110612bc357612bc2614515565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635cb485926040518163ffffffff1660e01b815260040160206040518083038186803b158015612c6357600080fd5b505afa158015612c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9b9190613879565b81600181518110612caf57612cae614515565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d14307f000000000000000000000000000000000000000000000000000000000000000084611ff1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d76959493929190613fc2565b600060405180830381600087803b158015612d9057600080fd5b505af1158015612da4573d6000803e3d6000fd5b505050505050565b612dd7307f000000000000000000000000000000000000000000000000000000000000000084611ff1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e5e96959493929190613d6e565b6060604051808303818588803b158015612e7757600080fd5b505af1158015612e8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612eb09190613a53565b5050505050565b600d54600e81905550600f546010819055506011546012819055506015546016819055506000600d819055506000600f8190555060006015819055506000601181905550565b6000612f07612815565b90506000612f1e82846128e890919063ffffffff16565b9050612f7281600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1690919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fe785612fe1601154612fd360648861284090919063ffffffff16565b6128e890919063ffffffff16565b84613227565b613017613012600f5461300460648561284090919063ffffffff16565b6128e890919063ffffffff16565b6133b5565b6130238585858561345c565b61307b61304e600d5461304060648561284090919063ffffffff16565b6128e890919063ffffffff16565b613076600d5461306860648861284090919063ffffffff16565b6128e890919063ffffffff16565b613794565b6000601554601154600d54600f54606461309591906142fa565b61309f91906142fa565b6130a991906142fa565b6130b391906142fa565b905061312c6130de826130d060648661284090919063ffffffff16565b6128e890919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288a90919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6131e4846131d660648a61284090919063ffffffff16565b6128e890919063ffffffff16565b6040516131f19190613fa7565b60405180910390a3505050505050565b600e54600d81905550601054600f81905550601654601581905550601254601181905550565b60006011541415613237576133b0565b600061324c82846128e890919063ffffffff16565b90506132c28160036000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288a90919063ffffffff16565b60036000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516133a69190613fa7565b60405180910390a3505b505050565b60008114156133c357613459565b61341581600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288a90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b6000601554141561346c5761378e565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156134ca57839050613523565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613522578490505b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561355e575061378e565b600080600090505b600581121561378a576000808214156135825760029050613587565b600190505b601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613624575061378a565b613637818461288a90919063ffffffff16565b925060006136618261365360648a61284090919063ffffffff16565b6128e890919063ffffffff16565b9050600061367887836128e890919063ffffffff16565b90506136cc81600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288a90919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161376c9190613fa7565b60405180910390a350505080806137829061443f565b915050613566565b5050505b50505050565b6137a982600854612b1690919063ffffffff16565b6008819055506137c48160095461288a90919063ffffffff16565b6009819055505050565b6000813590506137dd816148d8565b92915050565b6000815190506137f2816148d8565b92915050565b600081359050613807816148ef565b92915050565b60008135905061381c81614906565b92915050565b6000813590506138318161491d565b92915050565b6000815190506138468161491d565b92915050565b60006020828403121561386257613861614573565b5b6000613870848285016137ce565b91505092915050565b60006020828403121561388f5761388e614573565b5b600061389d848285016137e3565b91505092915050565b600080604083850312156138bd576138bc614573565b5b60006138cb858286016137f8565b92505060206138dc85828601613822565b9150509250929050565b600080604083850312156138fd576138fc614573565b5b600061390b858286016137ce565b925050602061391c858286016137ce565b9150509250929050565b60008060006060848603121561393f5761393e614573565b5b600061394d868287016137ce565b935050602061395e868287016137ce565b925050604061396f86828701613822565b9150509250925092565b600080604083850312156139905761398f614573565b5b600061399e858286016137ce565b92505060206139af85828601613822565b9150509250929050565b6000602082840312156139cf576139ce614573565b5b60006139dd8482850161380d565b91505092915050565b6000602082840312156139fc576139fb614573565b5b6000613a0a84828501613822565b91505092915050565b60008060408385031215613a2a57613a29614573565b5b6000613a3885828601613822565b9250506020613a4985828601613822565b9150509250929050565b600080600060608486031215613a6c57613a6b614573565b5b6000613a7a86828701613837565b9350506020613a8b86828701613837565b9250506040613a9c86828701613837565b9150509250925092565b6000613ab28383613abe565b60208301905092915050565b613ac78161432e565b82525050565b613ad68161432e565b82525050565b6000613ae782614063565b613af18185614086565b9350613afc83614053565b8060005b83811015613b2d578151613b148882613aa6565b9750613b1f83614079565b925050600181019050613b00565b5085935050505092915050565b613b4381614352565b82525050565b613b5281614392565b82525050565b613b61816143a4565b82525050565b6000613b728261406e565b613b7c8185614097565b9350613b8c8185602086016143da565b613b9581614578565b840191505092915050565b6000613bad602383614097565b9150613bb882614596565b604082019050919050565b6000613bd0602a83614097565b9150613bdb826145e5565b604082019050919050565b6000613bf3602683614097565b9150613bfe82614634565b604082019050919050565b6000613c16602283614097565b9150613c2182614683565b604082019050919050565b6000613c39601b83614097565b9150613c44826146d2565b602082019050919050565b6000613c5c602183614097565b9150613c67826146fb565b604082019050919050565b6000613c7f602083614097565b9150613c8a8261474a565b602082019050919050565b6000613ca2602983614097565b9150613cad82614773565b604082019050919050565b6000613cc5602583614097565b9150613cd0826147c2565b604082019050919050565b6000613ce8602483614097565b9150613cf382614811565b604082019050919050565b6000613d0b601f83614097565b9150613d1682614860565b602082019050919050565b6000613d2e602383614097565b9150613d3982614889565b604082019050919050565b613d4d81614388565b82525050565b6000602082019050613d686000830184613acd565b92915050565b600060c082019050613d836000830189613acd565b613d906020830188613d44565b613d9d6040830187613b58565b613daa6060830186613b58565b613db76080830185613acd565b613dc460a0830184613d44565b979650505050505050565b6000602082019050613de46000830184613b3a565b92915050565b6000602082019050613dff6000830184613b49565b92915050565b60006020820190508181036000830152613e1f8184613b67565b905092915050565b60006020820190508181036000830152613e4081613ba0565b9050919050565b60006020820190508181036000830152613e6081613bc3565b9050919050565b60006020820190508181036000830152613e8081613be6565b9050919050565b60006020820190508181036000830152613ea081613c09565b9050919050565b60006020820190508181036000830152613ec081613c2c565b9050919050565b60006020820190508181036000830152613ee081613c4f565b9050919050565b60006020820190508181036000830152613f0081613c72565b9050919050565b60006020820190508181036000830152613f2081613c95565b9050919050565b60006020820190508181036000830152613f4081613cb8565b9050919050565b60006020820190508181036000830152613f6081613cdb565b9050919050565b60006020820190508181036000830152613f8081613cfe565b9050919050565b60006020820190508181036000830152613fa081613d21565b9050919050565b6000602082019050613fbc6000830184613d44565b92915050565b600060a082019050613fd76000830188613d44565b613fe46020830187613b58565b8181036040830152613ff68186613adc565b90506140056060830185613acd565b6140126080830184613d44565b9695505050505050565b60006060820190506140316000830186613d44565b61403e6020830185613d44565b61404b6040830184613d44565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006140b382614388565b91506140be83614388565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140f3576140f2614488565b5b828201905092915050565b600061410982614388565b915061411483614388565b925082614124576141236144b7565b5b828204905092915050565b6000808291508390505b60018511156141795780860481111561415557614154614488565b5b60018516156141645780820291505b808102905061417285614589565b9450614139565b94509492505050565b600061418d82614388565b915061419883614388565b92506141c57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846141cd565b905092915050565b6000826141dd5760019050614299565b816141eb5760009050614299565b8160018114614201576002811461420b5761423a565b6001915050614299565b60ff84111561421d5761421c614488565b5b8360020a91508482111561423457614233614488565b5b50614299565b5060208310610133831016604e8410600b841016171561426f5782820a90508381111561426a57614269614488565b5b614299565b61427c848484600161412f565b9250905081840481111561429357614292614488565b5b81810290505b9392505050565b60006142ab82614388565b91506142b683614388565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156142ef576142ee614488565b5b828202905092915050565b600061430582614388565b915061431083614388565b92508282101561432357614322614488565b5b828203905092915050565b600061433982614368565b9050919050565b600061434b82614368565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061439d826143b6565b9050919050565b60006143af82614388565b9050919050565b60006143c1826143c8565b9050919050565b60006143d382614368565b9050919050565b60005b838110156143f85780820151818401526020810190506143dd565b83811115614407576000848401525b50505050565b6000600282049050600182168061442557607f821691505b60208210811415614439576144386144e6565b5b50919050565b600061444a8261435e565b91507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561447d5761447c614488565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b6148e18161432e565b81146148ec57600080fd5b50565b6148f881614340565b811461490357600080fd5b50565b61490f81614352565b811461491a57600080fd5b50565b61492681614388565b811461493157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122046b2209b326c9d2364bfe8489fad31328a467adef9775068aec0aa558df9750a64736f6c63430008070033000000000000000000000000480219d89deaddb35ed5f55f27cdf488a846153b

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

000000000000000000000000480219d89deaddb35ed5f55f27cdf488a846153b

-----Decoded View---------------
Arg [0] : tokenOwner (address): 0x480219d89deaddb35ed5f55f27cdf488a846153b

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000480219d89deaddb35ed5f55f27cdf488a846153b


Deployed ByteCode Sourcemap

17372:16108:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21735:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23399:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20157:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21082:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22737:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18416:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20436:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21281:442;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23507:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22832:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20343:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25037:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22029:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17918:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23162:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18474:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18549:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25763:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3837:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17991:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20539:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3425:148;;;;;;;;;;;;;:::i;:::-;;18378:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23868:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18596:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3202:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23612:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20248:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18076:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18293;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22333:396;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4173:305;;;;;;;;;;;;;:::i;:::-;;20685:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23740:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24326:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18630:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3935:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20890:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23281:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24176:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18711:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23985:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3581:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21735:286;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21847:1:::1;21837:7;:11;21833:181;;;21865:7;:16;;:25;21882:7;21865:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21833:181;;;21923:15;21941:21;21923:39;;21977:7;:16;;:25;21994:7;21977:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21908:106;21833:181;21735:286:::0;;:::o;23399:96::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23481:6:::1;23471:7;:16;;;;23399:96:::0;:::o;20157:83::-;20194:13;20227:5;20220:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20157:83;:::o;21082:191::-;21184:4;21206:37;21215:10;21227:7;21236:6;21206:8;:37::i;:::-;21261:4;21254:11;;21082:191;;;;:::o;22737:87::-;22779:7;22806:10;;22799:17;;22737:87;:::o;18416:51::-;;;:::o;20436:95::-;20489:7;20516;;20509:14;;20436:95;:::o;21281:442::-;21413:4;21430:36;21440:6;21448:9;21459:6;21430:9;:36::i;:::-;21477:216;21500:6;21521:10;21546:136;21600:6;21546:136;;;;;;;;;;;;;;;;;:11;:19;21558:6;21546:19;;;;;;;;;;;;;;;:31;21566:10;21546:31;;;;;;;;;;;;;;;;:35;;:136;;;;;:::i;:::-;21477:8;:216::i;:::-;21711:4;21704:11;;21281:442;;;;;:::o;23507:97::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23590:6:::1;23579:8;:17;;;;23507:97:::0;:::o;22832:322::-;22926:7;22984;;22973;:18;;22951:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;23072:19;23094:10;:8;:10::i;:::-;23072:32;;23122:24;23134:11;23122:7;:11;;:24;;;;:::i;:::-;23115:31;;;22832:322;;;:::o;20343:85::-;20384:7;20411:9;;20404:16;;20343:85;:::o;25037:173::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;25157:6:::1;25147:7;:16;;;;25190:12;25174:13;:28;;;;25037:173:::0;;:::o;22029:296::-;22144:4;22166:129;22189:10;22214:7;22236:48;22273:10;22236:11;:23;22248:10;22236:23;;;;;;;;;;;;;;;:32;22260:7;22236:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;22166:8;:129::i;:::-;22313:4;22306:11;;22029:296;;;;:::o;17918:26::-;;;;:::o;23162:111::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23261:4:::1;23231:18;:27;23250:7;23231:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;23162:111:::0;:::o;18474:38::-;;;:::o;18549:40::-;;;;;;;;;;;;;:::o;25763:124::-;25828:4;25852:18;:27;25871:7;25852:27;;;;;;;;;;;;;;;;;;;;;;;;;25845:34;;25763:124;;;:::o;3837:90::-;3877:7;3904:15;3897:22;;3837:90;:::o;17991:32::-;;;;:::o;20539:138::-;20605:7;20632:37;20652:7;:16;20660:7;20652:16;;;;;;;;;;;;;;;;20632:19;:37::i;:::-;20625:44;;20539:138;;;:::o;3425:148::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3532:1:::1;3495:40;;3516:6;::::0;::::1;;;;;;;;3495:40;;;;;;;;;;;;3563:1;3546:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3425:148::o:0;18378:29::-;;;;:::o;23868:109::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23958:11:::1;23943:12;;:26;;;;;;;;;;;;;;;;;;23868:109:::0;:::o;18596:27::-;;;;:::o;3202:79::-;3240:7;3267:6;;;;;;;;;;;3260:13;;3202:79;:::o;23612:120::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23712:12:::1;23696:13;:28;;;;23612:120:::0;:::o;20248:87::-;20287:13;20320:7;20313:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20248:87;:::o;18076:30::-;;;;:::o;18293:::-;;;;:::o;22333:396::-;22453:4;22475:224;22498:10;22523:7;22545:143;22600:15;22545:143;;;;;;;;;;;;;;;;;:11;:23;22557:10;22545:23;;;;;;;;;;;;;;;:32;22569:7;22545:32;;;;;;;;;;;;;;;;:36;;:143;;;;;:::i;:::-;22475:8;:224::i;:::-;22717:4;22710:11;;22333:396;;;;:::o;4173:305::-;4243:10;4225:28;;:14;;;;;;;;;;;:28;;;4217:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;4330:9;;4312:15;:27;4304:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4421:14;;;;;;;;;;;4392:44;;4413:6;;;;;;;;;;4392:44;;;;;;;;;;;;4456:14;;;;;;;;;;;4447:6;;:23;;;;;;;;;;;;;;;;;;4173:305::o;20685:197::-;20790:4;20812:40;20822:10;20834:9;20845:6;20812:9;:40::i;:::-;20870:4;20863:11;;20685:197;;;;:::o;23740:116::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23836:12:::1;23822:11;:26;;;;23740:116:::0;:::o;24326:171::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;24427:8:::1;24403:21;;:32;;;;;;;;;;;;;;;;;;24451:38;24480:8;24451:38;;;;;;:::i;:::-;;;;;;;;24326:171:::0;:::o;18630:44::-;;;;:::o;3935:226::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4016:6:::1;::::0;::::1;;;;;;;;3999:14;;:23;;;;;;;;;;;;;;;;;;4050:1;4033:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4093:4;4075:15;:22;;;;:::i;:::-;4063:9;:34;;;;4150:1;4113:40;;4134:6;::::0;::::1;;;;;;;;4113:40;;;;;;;;;;;;3935:226:::0;:::o;20890:184::-;21007:7;21039:11;:18;21051:5;21039:18;;;;;;;;;;;;;;;:27;21058:7;21039:27;;;;;;;;;;;;;;;;21032:34;;20890:184;;;;:::o;23281:110::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23378:5:::1;23348:18;:27;23367:7;23348:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;23281:110:::0;:::o;24176:142::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;24301:9:::1;;24297:2;:13;;;;:::i;:::-;24285:9;:25;;;;:::i;:::-;24270:12;:40;;;;24176:142:::0;:::o;18711:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;23985:179::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;24147:9:::1;;24143:2;:13;;;;:::i;:::-;24130:10;:26;;;;:::i;:::-;24098:29;:58;;;;23985:179:::0;:::o;3581:244::-;3346:10;3336:20;;:6;;;;;;;;;;:20;;;3328:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3690:1:::1;3670:22;;:8;:22;;;;3662:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3780:8;3751:38;;3772:6;::::0;::::1;;;;;;;;3751:38;;;;;;;;;;;;3809:8;3800:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3581:244:::0;:::o;25895:371::-;26039:1;26022:19;;:5;:19;;;;26014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26120:1;26101:21;;:7;:21;;;;26093:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26204:6;26174:11;:18;26186:5;26174:18;;;;;;;;;;;;;;;:27;26193:7;26174:27;;;;;;;;;;;;;;;:36;;;;26242:7;26226:32;;26235:5;26226:32;;;26251:6;26226:32;;;;;;:::i;:::-;;;;;;;;25895:371;;;:::o;26274:1800::-;26412:1;26396:18;;:4;:18;;;;26388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26489:1;26475:16;;:2;:16;;;;26467:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;26559:1;26550:6;:10;26542:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;26629:7;:5;:7::i;:::-;26621:15;;:4;:15;;;;:32;;;;;26646:7;:5;:7::i;:::-;26640:13;;:2;:13;;;;26621:32;:61;;;;;26658:18;:24;26677:4;26658:24;;;;;;;;;;;;;;;;;;;;;;;;;26657:25;26621:61;:88;;;;;26687:18;:22;26706:2;26687:22;;;;;;;;;;;;;;;;;;;;;;;;;26686:23;26621:88;26618:245;;;26737:13;26729:21;;:4;:21;;;26726:126;;;26803:32;26826:8;;26803:18;26815:5;26803:7;;:11;;:18;;;;:::i;:::-;:22;;:32;;;;:::i;:::-;26793:6;26777:13;26787:2;26777:9;:13::i;:::-;:22;;;;:::i;:::-;:58;;26769:67;;;;;;26726:126;26618:245;26875:28;26906:24;26924:4;26906:9;:24::i;:::-;26875:55;;26943:24;27007:29;;26970:20;:66;;26943:93;;27065:19;:53;;;;;27102:16;;;;;;;;;;;27101:17;27065:53;:89;;;;;27141:13;27135:19;;:2;:19;;;27065:89;:127;;;;;27171:21;;;;;;;;;;;27065:127;:177;;;;;27241:1;27209:29;;:33;27065:177;27047:366;;;27292:29;;27269:52;;27365:36;27380:20;27365:14;:36::i;:::-;27047:366;27486:12;27501:4;27486:19;;27606:18;:24;27625:4;27606:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;27634:18;:22;27653:2;27634:22;;;;;;;;;;;;;;;;;;;;;;;;;27606:50;27602:98;;;27683:5;27673:15;;27602:98;27745:21;27786:1;27769:13;27779:2;27769:9;:13::i;:::-;:18;:60;;;;;27827:1;27804:25;;:7;:11;27812:2;27804:11;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;27769:60;:98;;;;;27854:13;27846:21;;:4;:21;;;;27769:98;27745:122;;27946:41;27961:4;27967:2;27971:6;27979:7;27946:14;:41::i;:::-;28004:16;28000:67;;;28051:4;28037:7;:11;28045:2;28037:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;28000:67;26377:1697;;;;26274:1800;;;:::o;5651:226::-;5771:7;5804:1;5799;:6;;5807:12;5791:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5831:9;5847:1;5843;:5;;;;:::i;:::-;5831:17;;5868:1;5861:8;;;5651:226;;;;;:::o;24598:164::-;24640:7;24661:15;24678;24697:19;:17;:19::i;:::-;24660:56;;;;24734:20;24746:7;24734;:11;;:20;;;;:::i;:::-;24727:27;;;;24598:164;:::o;7083:132::-;7141:7;7168:39;7172:1;7175;7168:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7161:46;;7083:132;;;;:::o;4748:181::-;4806:7;4826:9;4842:1;4838;:5;;;;:::i;:::-;4826:17;;4867:1;4862;:6;;4854:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4920:1;4913:8;;;4748:181;;;;:::o;6136:471::-;6194:7;6444:1;6439;:6;6435:47;;;6469:1;6462:8;;;;6435:47;6494:9;6510:1;6506;:5;;;;:::i;:::-;6494:17;;6539:1;6534;6530;:5;;;;:::i;:::-;:10;6522:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6598:1;6591:8;;;6136:471;;;;;:::o;28082:979::-;19073:4;19054:16;;:23;;;;;;;;;;;;;;;;;;28219:12:::1;28234:27;28259:1;28234:20;:24;;:27;;;;:::i;:::-;28219:42;;28272:17;28292:30;28317:4;28292:20;:24;;:30;;;;:::i;:::-;28272:50;;28600:22;28625:21;28600:46;;28691:22;28708:4;28691:16;:22::i;:::-;28844:18;28865:41;28891:14;28865:21;:25;;:41;;;;:::i;:::-;28844:62;;28956:35;28969:9;28980:10;28956:12;:35::i;:::-;29009:43;29024:4;29030:10;29042:9;29009:43;;;;;;;;:::i;:::-;;;;;;;;28156:905;;;;19119:5:::0;19100:16;;:24;;;;;;;;;;;;;;;;;;28082:979;:::o;30264:286::-;30420:7;30415:28;;30429:14;:12;:14::i;:::-;30415:28;30456:44;30474:6;30482:9;30493:6;30456:17;:44::i;:::-;30518:7;30513:29;;30527:15;:13;:15::i;:::-;30513:29;30264:286;;;;:::o;24770:257::-;24821:7;24830;24850:15;24868:7;;24850:25;;24886:15;24904:7;;24886:25;;24936:20;24948:7;;24936;;:11;;:20;;;;:::i;:::-;24926:7;:30;24922:61;;;24966:7;;24975;;24958:25;;;;;;;;24922:61;25002:7;25011;24994:25;;;;;;24770:257;;;:::o;7711:312::-;7831:7;7863:1;7859;:5;7866:12;7851:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7890:9;7906:1;7902;:5;;;;:::i;:::-;7890:17;;8014:1;8007:8;;;7711:312;;;;;:::o;5212:136::-;5270:7;5297:43;5301:1;5304;5297:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5290:50;;5212:136;;;;:::o;29069:588::-;29195:21;29233:1;29219:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29195:40;;29264:4;29246;29251:1;29246:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;29290:15;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29280:4;29285:1;29280:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;;;29324:62;29341:4;29356:15;29374:11;29324:8;:62::i;:::-;29425:15;:66;;;29506:11;29532:1;29576:4;29603;29623:15;29425:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29124:533;29069:588;:::o;29665:518::-;29813:62;29830:4;29845:15;29863:11;29813:8;:62::i;:::-;29918:15;:31;;;29957:9;29990:4;30010:11;30036:1;30079;30122:12;;;;;;;;;;;30149:15;29918:257;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29665:518;;:::o;25218:316::-;25279:7;;25261:15;:25;;;;25321:13;;25297:21;:37;;;;25367:11;;25345:19;:33;;;;25411:11;;25389:19;:33;;;;25445:1;25435:7;:11;;;;25473:1;25457:13;:17;;;;25499:1;25485:11;:15;;;;25525:1;25511:11;:15;;;;25218:316::o;32331:1146::-;32463:19;32485:10;:8;:10::i;:::-;32463:32;;32549:15;32567:24;32579:11;32567:7;:11;;:24;;;;:::i;:::-;32549:42;;32620:28;32640:7;32620;:15;32628:6;32620:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;32602:7;:15;32610:6;32602:15;;;;;;;;;;;;;;;:46;;;;32686:71;32702:6;32710:33;32731:11;;32710:16;32722:3;32710:7;:11;;:16;;;;:::i;:::-;:20;;:33;;;;:::i;:::-;32745:11;32686:15;:71::i;:::-;32805:51;32820:35;32841:13;;32820:16;32832:3;32820:7;:11;;:16;;;;:::i;:::-;:20;;:35;;;;:::i;:::-;32805:14;:51::i;:::-;32903:56;32919:6;32927:9;32938:7;32947:11;32903:15;:56::i;:::-;32993:110;33019:29;33040:7;;33019:16;33031:3;33019:7;:11;;:16;;;;:::i;:::-;:20;;:29;;;;:::i;:::-;33063;33084:7;;33063:16;33075:3;33063:7;:11;;:16;;;;:::i;:::-;:20;;:29;;;;:::i;:::-;32993:11;:110::i;:::-;33141:21;33263:11;;33236;;33213:7;;33184:13;;33165:3;:32;;;;:::i;:::-;:55;;;;:::i;:::-;:82;;;;:::i;:::-;:109;;;;:::i;:::-;33141:133;;33306:83;33343:35;33364:13;33343:16;33355:3;33343:7;:11;;:16;;;;:::i;:::-;:20;;:35;;;;:::i;:::-;33306:7;:18;33314:9;33306:18;;;;;;;;;;;;;;;;:22;;:83;;;;:::i;:::-;33285:7;:18;33293:9;33285:18;;;;;;;;;;;;;;;:104;;;;33422:9;33405:64;;33414:6;33405:64;;;33433:35;33454:13;33433:16;33445:3;33433:7;:11;;:16;;;;:::i;:::-;:20;;:35;;;;:::i;:::-;33405:64;;;;;;:::i;:::-;;;;;;;;32452:1025;;;32331:1146;;;:::o;25542:213::-;25596:15;;25586:7;:25;;;;25638:21;;25622:13;:37;;;;25684:19;;25670:11;:33;;;;25728:19;;25714:11;:33;;;;25542:213::o;30558:356::-;30709:1;30694:11;;:16;30690:29;;;30712:7;;30690:29;30729:15;30747:24;30759:11;30747:7;:11;;:24;;;;:::i;:::-;30729:42;;30811:37;30840:7;30811;:24;30819:15;;;;;;;;;;;30811:24;;;;;;;;;;;;;;;;:28;;:37;;;;:::i;:::-;30784:7;:24;30792:15;;;;;;;;;;;30784:24;;;;;;;;;;;;;;;:64;;;;30881:15;;;;;;;;;;;30864:42;;30873:6;30864:42;;;30898:7;30864:42;;;;;;:::i;:::-;;;;;;;;30679:235;30558:356;;;;:::o;30922:172::-;31003:1;30989:10;:15;30985:28;;;31006:7;;30985:28;31048:38;31075:10;31048:7;:22;31064:4;31048:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;31023:7;:22;31039:4;31023:22;;;;;;;;;;;;;;;:63;;;;30922:172;;:::o;31257:1066::-;31436:1;31421:11;;:16;31417:29;;;31439:7;;31417:29;31458:11;31494:13;31484:23;;:6;:23;;;31480:148;;;31530:9;31524:15;;31480:148;;;31574:13;31561:26;;:9;:26;;;31557:71;;;31610:6;31604:12;;31557:71;31480:148;31657:1;31642:17;;:3;:17;;;31638:56;;;31676:7;;;31638:56;31706:17;31739:8;31750:1;31739:12;;31734:582;31757:1;31753;:5;31734:582;;;31780:12;31816:1;31811;:6;31807:104;;;31845:1;31838:8;;31807:104;;;31894:1;31887:8;;31807:104;31931:7;:12;31939:3;31931:12;;;;;;;;;;;;;;;;;;;;;;;;;31925:18;;31977:1;31962:17;;:3;:17;;;31958:63;;;32000:5;;;31958:63;32047:19;32061:4;32047:9;:13;;:19;;;;:::i;:::-;32035:31;;32083:18;32104:26;32125:4;32104:16;32116:3;32104:7;:11;;:16;;;;:::i;:::-;:20;;:26;;;;:::i;:::-;32083:47;;32145:18;32166:27;32181:11;32166:10;:14;;:27;;;;:::i;:::-;32145:48;;32223:28;32240:10;32223:7;:12;32231:3;32223:12;;;;;;;;;;;;;;;;:16;;:28;;;;:::i;:::-;32208:7;:12;32216:3;32208:12;;;;;;;;;;;;;;;:43;;;;32288:3;32271:33;;32280:6;32271:33;;;32293:10;32271:33;;;;;;:::i;:::-;;;;;;;;31765:551;;;31760:3;;;;;:::i;:::-;;;;31734:582;;;;31406:917;;31257:1066;;;;;:::o;31102:147::-;31180:17;31192:4;31180:7;;:11;;:17;;;;:::i;:::-;31170:7;:27;;;;31221:20;31236:4;31221:10;;:14;;:20;;;;:::i;:::-;31208:10;:33;;;;31102:147;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;301:155;;;;:::o;462:133::-;505:5;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;462:133;;;;:::o;601:139::-;647:5;685:6;672:20;663:29;;701:33;728:5;701:33;:::i;:::-;601:139;;;;:::o;746:143::-;803:5;834:6;828:13;819:22;;850:33;877:5;850:33;:::i;:::-;746:143;;;;:::o;895:329::-;954:6;1003:2;991:9;982:7;978:23;974:32;971:119;;;1009:79;;:::i;:::-;971:119;1129:1;1154:53;1199:7;1190:6;1179:9;1175:22;1154:53;:::i;:::-;1144:63;;1100:117;895:329;;;;:::o;1230:351::-;1300:6;1349:2;1337:9;1328:7;1324:23;1320:32;1317:119;;;1355:79;;:::i;:::-;1317:119;1475:1;1500:64;1556:7;1547:6;1536:9;1532:22;1500:64;:::i;:::-;1490:74;;1446:128;1230:351;;;;:::o;1587:490::-;1663:6;1671;1720:2;1708:9;1699:7;1695:23;1691:32;1688:119;;;1726:79;;:::i;:::-;1688:119;1846:1;1871:61;1924:7;1915:6;1904:9;1900:22;1871:61;:::i;:::-;1861:71;;1817:125;1981:2;2007:53;2052:7;2043:6;2032:9;2028:22;2007:53;:::i;:::-;1997:63;;1952:118;1587:490;;;;;:::o;2083:474::-;2151:6;2159;2208:2;2196:9;2187:7;2183:23;2179:32;2176:119;;;2214:79;;:::i;:::-;2176:119;2334:1;2359:53;2404:7;2395:6;2384:9;2380:22;2359:53;:::i;:::-;2349:63;;2305:117;2461:2;2487:53;2532:7;2523:6;2512:9;2508:22;2487:53;:::i;:::-;2477:63;;2432:118;2083:474;;;;;:::o;2563:619::-;2640:6;2648;2656;2705:2;2693:9;2684:7;2680:23;2676:32;2673:119;;;2711:79;;:::i;:::-;2673:119;2831:1;2856:53;2901:7;2892:6;2881:9;2877:22;2856:53;:::i;:::-;2846:63;;2802:117;2958:2;2984:53;3029:7;3020:6;3009:9;3005:22;2984:53;:::i;:::-;2974:63;;2929:118;3086:2;3112:53;3157:7;3148:6;3137:9;3133:22;3112:53;:::i;:::-;3102:63;;3057:118;2563:619;;;;;:::o;3188:474::-;3256:6;3264;3313:2;3301:9;3292:7;3288:23;3284:32;3281:119;;;3319:79;;:::i;:::-;3281:119;3439:1;3464:53;3509:7;3500:6;3489:9;3485:22;3464:53;:::i;:::-;3454:63;;3410:117;3566:2;3592:53;3637:7;3628:6;3617:9;3613:22;3592:53;:::i;:::-;3582:63;;3537:118;3188:474;;;;;:::o;3668:323::-;3724:6;3773:2;3761:9;3752:7;3748:23;3744:32;3741:119;;;3779:79;;:::i;:::-;3741:119;3899:1;3924:50;3966:7;3957:6;3946:9;3942:22;3924:50;:::i;:::-;3914:60;;3870:114;3668:323;;;;:::o;3997:329::-;4056:6;4105:2;4093:9;4084:7;4080:23;4076:32;4073:119;;;4111:79;;:::i;:::-;4073:119;4231:1;4256:53;4301:7;4292:6;4281:9;4277:22;4256:53;:::i;:::-;4246:63;;4202:117;3997:329;;;;:::o;4332:474::-;4400:6;4408;4457:2;4445:9;4436:7;4432:23;4428:32;4425:119;;;4463:79;;:::i;:::-;4425:119;4583:1;4608:53;4653:7;4644:6;4633:9;4629:22;4608:53;:::i;:::-;4598:63;;4554:117;4710:2;4736:53;4781:7;4772:6;4761:9;4757:22;4736:53;:::i;:::-;4726:63;;4681:118;4332:474;;;;;:::o;4812:663::-;4900:6;4908;4916;4965:2;4953:9;4944:7;4940:23;4936:32;4933:119;;;4971:79;;:::i;:::-;4933:119;5091:1;5116:64;5172:7;5163:6;5152:9;5148:22;5116:64;:::i;:::-;5106:74;;5062:128;5229:2;5255:64;5311:7;5302:6;5291:9;5287:22;5255:64;:::i;:::-;5245:74;;5200:129;5368:2;5394:64;5450:7;5441:6;5430:9;5426:22;5394:64;:::i;:::-;5384:74;;5339:129;4812:663;;;;;:::o;5481:179::-;5550:10;5571:46;5613:3;5605:6;5571:46;:::i;:::-;5649:4;5644:3;5640:14;5626:28;;5481:179;;;;:::o;5666:108::-;5743:24;5761:5;5743:24;:::i;:::-;5738:3;5731:37;5666:108;;:::o;5780:118::-;5867:24;5885:5;5867:24;:::i;:::-;5862:3;5855:37;5780:118;;:::o;5934:732::-;6053:3;6082:54;6130:5;6082:54;:::i;:::-;6152:86;6231:6;6226:3;6152:86;:::i;:::-;6145:93;;6262:56;6312:5;6262:56;:::i;:::-;6341:7;6372:1;6357:284;6382:6;6379:1;6376:13;6357:284;;;6458:6;6452:13;6485:63;6544:3;6529:13;6485:63;:::i;:::-;6478:70;;6571:60;6624:6;6571:60;:::i;:::-;6561:70;;6417:224;6404:1;6401;6397:9;6392:14;;6357:284;;;6361:14;6657:3;6650:10;;6058:608;;;5934:732;;;;:::o;6672:109::-;6753:21;6768:5;6753:21;:::i;:::-;6748:3;6741:34;6672:109;;:::o;6787:185::-;6901:64;6959:5;6901:64;:::i;:::-;6896:3;6889:77;6787:185;;:::o;6978:147::-;7073:45;7112:5;7073:45;:::i;:::-;7068:3;7061:58;6978:147;;:::o;7131:364::-;7219:3;7247:39;7280:5;7247:39;:::i;:::-;7302:71;7366:6;7361:3;7302:71;:::i;:::-;7295:78;;7382:52;7427:6;7422:3;7415:4;7408:5;7404:16;7382:52;:::i;:::-;7459:29;7481:6;7459:29;:::i;:::-;7454:3;7450:39;7443:46;;7223:272;7131:364;;;;:::o;7501:366::-;7643:3;7664:67;7728:2;7723:3;7664:67;:::i;:::-;7657:74;;7740:93;7829:3;7740:93;:::i;:::-;7858:2;7853:3;7849:12;7842:19;;7501:366;;;:::o;7873:::-;8015:3;8036:67;8100:2;8095:3;8036:67;:::i;:::-;8029:74;;8112:93;8201:3;8112:93;:::i;:::-;8230:2;8225:3;8221:12;8214:19;;7873:366;;;:::o;8245:::-;8387:3;8408:67;8472:2;8467:3;8408:67;:::i;:::-;8401:74;;8484:93;8573:3;8484:93;:::i;:::-;8602:2;8597:3;8593:12;8586:19;;8245:366;;;:::o;8617:::-;8759:3;8780:67;8844:2;8839:3;8780:67;:::i;:::-;8773:74;;8856:93;8945:3;8856:93;:::i;:::-;8974:2;8969:3;8965:12;8958:19;;8617:366;;;:::o;8989:::-;9131:3;9152:67;9216:2;9211:3;9152:67;:::i;:::-;9145:74;;9228:93;9317:3;9228:93;:::i;:::-;9346:2;9341:3;9337:12;9330:19;;8989:366;;;:::o;9361:::-;9503:3;9524:67;9588:2;9583:3;9524:67;:::i;:::-;9517:74;;9600:93;9689:3;9600:93;:::i;:::-;9718:2;9713:3;9709:12;9702:19;;9361:366;;;:::o;9733:::-;9875:3;9896:67;9960:2;9955:3;9896:67;:::i;:::-;9889:74;;9972:93;10061:3;9972:93;:::i;:::-;10090:2;10085:3;10081:12;10074:19;;9733:366;;;:::o;10105:::-;10247:3;10268:67;10332:2;10327:3;10268:67;:::i;:::-;10261:74;;10344:93;10433:3;10344:93;:::i;:::-;10462:2;10457:3;10453:12;10446:19;;10105:366;;;:::o;10477:::-;10619:3;10640:67;10704:2;10699:3;10640:67;:::i;:::-;10633:74;;10716:93;10805:3;10716:93;:::i;:::-;10834:2;10829:3;10825:12;10818:19;;10477:366;;;:::o;10849:::-;10991:3;11012:67;11076:2;11071:3;11012:67;:::i;:::-;11005:74;;11088:93;11177:3;11088:93;:::i;:::-;11206:2;11201:3;11197:12;11190:19;;10849:366;;;:::o;11221:::-;11363:3;11384:67;11448:2;11443:3;11384:67;:::i;:::-;11377:74;;11460:93;11549:3;11460:93;:::i;:::-;11578:2;11573:3;11569:12;11562:19;;11221:366;;;:::o;11593:::-;11735:3;11756:67;11820:2;11815:3;11756:67;:::i;:::-;11749:74;;11832:93;11921:3;11832:93;:::i;:::-;11950:2;11945:3;11941:12;11934:19;;11593:366;;;:::o;11965:118::-;12052:24;12070:5;12052:24;:::i;:::-;12047:3;12040:37;11965:118;;:::o;12089:222::-;12182:4;12220:2;12209:9;12205:18;12197:26;;12233:71;12301:1;12290:9;12286:17;12277:6;12233:71;:::i;:::-;12089:222;;;;:::o;12317:807::-;12566:4;12604:3;12593:9;12589:19;12581:27;;12618:71;12686:1;12675:9;12671:17;12662:6;12618:71;:::i;:::-;12699:72;12767:2;12756:9;12752:18;12743:6;12699:72;:::i;:::-;12781:80;12857:2;12846:9;12842:18;12833:6;12781:80;:::i;:::-;12871;12947:2;12936:9;12932:18;12923:6;12871:80;:::i;:::-;12961:73;13029:3;13018:9;13014:19;13005:6;12961:73;:::i;:::-;13044;13112:3;13101:9;13097:19;13088:6;13044:73;:::i;:::-;12317:807;;;;;;;;;:::o;13130:210::-;13217:4;13255:2;13244:9;13240:18;13232:26;;13268:65;13330:1;13319:9;13315:17;13306:6;13268:65;:::i;:::-;13130:210;;;;:::o;13346:276::-;13466:4;13504:2;13493:9;13489:18;13481:26;;13517:98;13612:1;13601:9;13597:17;13588:6;13517:98;:::i;:::-;13346:276;;;;:::o;13628:313::-;13741:4;13779:2;13768:9;13764:18;13756:26;;13828:9;13822:4;13818:20;13814:1;13803:9;13799:17;13792:47;13856:78;13929:4;13920:6;13856:78;:::i;:::-;13848:86;;13628:313;;;;:::o;13947:419::-;14113:4;14151:2;14140:9;14136:18;14128:26;;14200:9;14194:4;14190:20;14186:1;14175:9;14171:17;14164:47;14228:131;14354:4;14228:131;:::i;:::-;14220:139;;13947:419;;;:::o;14372:::-;14538:4;14576:2;14565:9;14561:18;14553:26;;14625:9;14619:4;14615:20;14611:1;14600:9;14596:17;14589:47;14653:131;14779:4;14653:131;:::i;:::-;14645:139;;14372:419;;;:::o;14797:::-;14963:4;15001:2;14990:9;14986:18;14978:26;;15050:9;15044:4;15040:20;15036:1;15025:9;15021:17;15014:47;15078:131;15204:4;15078:131;:::i;:::-;15070:139;;14797:419;;;:::o;15222:::-;15388:4;15426:2;15415:9;15411:18;15403:26;;15475:9;15469:4;15465:20;15461:1;15450:9;15446:17;15439:47;15503:131;15629:4;15503:131;:::i;:::-;15495:139;;15222:419;;;:::o;15647:::-;15813:4;15851:2;15840:9;15836:18;15828:26;;15900:9;15894:4;15890:20;15886:1;15875:9;15871:17;15864:47;15928:131;16054:4;15928:131;:::i;:::-;15920:139;;15647:419;;;:::o;16072:::-;16238:4;16276:2;16265:9;16261:18;16253:26;;16325:9;16319:4;16315:20;16311:1;16300:9;16296:17;16289:47;16353:131;16479:4;16353:131;:::i;:::-;16345:139;;16072:419;;;:::o;16497:::-;16663:4;16701:2;16690:9;16686:18;16678:26;;16750:9;16744:4;16740:20;16736:1;16725:9;16721:17;16714:47;16778:131;16904:4;16778:131;:::i;:::-;16770:139;;16497:419;;;:::o;16922:::-;17088:4;17126:2;17115:9;17111:18;17103:26;;17175:9;17169:4;17165:20;17161:1;17150:9;17146:17;17139:47;17203:131;17329:4;17203:131;:::i;:::-;17195:139;;16922:419;;;:::o;17347:::-;17513:4;17551:2;17540:9;17536:18;17528:26;;17600:9;17594:4;17590:20;17586:1;17575:9;17571:17;17564:47;17628:131;17754:4;17628:131;:::i;:::-;17620:139;;17347:419;;;:::o;17772:::-;17938:4;17976:2;17965:9;17961:18;17953:26;;18025:9;18019:4;18015:20;18011:1;18000:9;17996:17;17989:47;18053:131;18179:4;18053:131;:::i;:::-;18045:139;;17772:419;;;:::o;18197:::-;18363:4;18401:2;18390:9;18386:18;18378:26;;18450:9;18444:4;18440:20;18436:1;18425:9;18421:17;18414:47;18478:131;18604:4;18478:131;:::i;:::-;18470:139;;18197:419;;;:::o;18622:::-;18788:4;18826:2;18815:9;18811:18;18803:26;;18875:9;18869:4;18865:20;18861:1;18850:9;18846:17;18839:47;18903:131;19029:4;18903:131;:::i;:::-;18895:139;;18622:419;;;:::o;19047:222::-;19140:4;19178:2;19167:9;19163:18;19155:26;;19191:71;19259:1;19248:9;19244:17;19235:6;19191:71;:::i;:::-;19047:222;;;;:::o;19275:831::-;19538:4;19576:3;19565:9;19561:19;19553:27;;19590:71;19658:1;19647:9;19643:17;19634:6;19590:71;:::i;:::-;19671:80;19747:2;19736:9;19732:18;19723:6;19671:80;:::i;:::-;19798:9;19792:4;19788:20;19783:2;19772:9;19768:18;19761:48;19826:108;19929:4;19920:6;19826:108;:::i;:::-;19818:116;;19944:72;20012:2;20001:9;19997:18;19988:6;19944:72;:::i;:::-;20026:73;20094:3;20083:9;20079:19;20070:6;20026:73;:::i;:::-;19275:831;;;;;;;;:::o;20112:442::-;20261:4;20299:2;20288:9;20284:18;20276:26;;20312:71;20380:1;20369:9;20365:17;20356:6;20312:71;:::i;:::-;20393:72;20461:2;20450:9;20446:18;20437:6;20393:72;:::i;:::-;20475;20543:2;20532:9;20528:18;20519:6;20475:72;:::i;:::-;20112:442;;;;;;:::o;20641:132::-;20708:4;20731:3;20723:11;;20761:4;20756:3;20752:14;20744:22;;20641:132;;;:::o;20779:114::-;20846:6;20880:5;20874:12;20864:22;;20779:114;;;:::o;20899:99::-;20951:6;20985:5;20979:12;20969:22;;20899:99;;;:::o;21004:113::-;21074:4;21106;21101:3;21097:14;21089:22;;21004:113;;;:::o;21123:184::-;21222:11;21256:6;21251:3;21244:19;21296:4;21291:3;21287:14;21272:29;;21123:184;;;;:::o;21313:169::-;21397:11;21431:6;21426:3;21419:19;21471:4;21466:3;21462:14;21447:29;;21313:169;;;;:::o;21488:305::-;21528:3;21547:20;21565:1;21547:20;:::i;:::-;21542:25;;21581:20;21599:1;21581:20;:::i;:::-;21576:25;;21735:1;21667:66;21663:74;21660:1;21657:81;21654:107;;;21741:18;;:::i;:::-;21654:107;21785:1;21782;21778:9;21771:16;;21488:305;;;;:::o;21799:185::-;21839:1;21856:20;21874:1;21856:20;:::i;:::-;21851:25;;21890:20;21908:1;21890:20;:::i;:::-;21885:25;;21929:1;21919:35;;21934:18;;:::i;:::-;21919:35;21976:1;21973;21969:9;21964:14;;21799:185;;;;:::o;21990:848::-;22051:5;22058:4;22082:6;22073:15;;22106:5;22097:14;;22120:712;22141:1;22131:8;22128:15;22120:712;;;22236:4;22231:3;22227:14;22221:4;22218:24;22215:50;;;22245:18;;:::i;:::-;22215:50;22295:1;22285:8;22281:16;22278:451;;;22710:4;22703:5;22699:16;22690:25;;22278:451;22760:4;22754;22750:15;22742:23;;22790:32;22813:8;22790:32;:::i;:::-;22778:44;;22120:712;;;21990:848;;;;;;;:::o;22844:285::-;22904:5;22928:23;22946:4;22928:23;:::i;:::-;22920:31;;22972:27;22990:8;22972:27;:::i;:::-;22960:39;;23018:104;23055:66;23045:8;23039:4;23018:104;:::i;:::-;23009:113;;22844:285;;;;:::o;23135:1073::-;23189:5;23380:8;23370:40;;23401:1;23392:10;;23403:5;;23370:40;23429:4;23419:36;;23446:1;23437:10;;23448:5;;23419:36;23515:4;23563:1;23558:27;;;;23599:1;23594:191;;;;23508:277;;23558:27;23576:1;23567:10;;23578:5;;;23594:191;23639:3;23629:8;23626:17;23623:43;;;23646:18;;:::i;:::-;23623:43;23695:8;23692:1;23688:16;23679:25;;23730:3;23723:5;23720:14;23717:40;;;23737:18;;:::i;:::-;23717:40;23770:5;;;23508:277;;23894:2;23884:8;23881:16;23875:3;23869:4;23866:13;23862:36;23844:2;23834:8;23831:16;23826:2;23820:4;23817:12;23813:35;23797:111;23794:246;;;23950:8;23944:4;23940:19;23931:28;;23985:3;23978:5;23975:14;23972:40;;;23992:18;;:::i;:::-;23972:40;24025:5;;23794:246;24065:42;24103:3;24093:8;24087:4;24084:1;24065:42;:::i;:::-;24050:57;;;;24139:4;24134:3;24130:14;24123:5;24120:25;24117:51;;;24148:18;;:::i;:::-;24117:51;24197:4;24190:5;24186:16;24177:25;;23135:1073;;;;;;:::o;24214:348::-;24254:7;24277:20;24295:1;24277:20;:::i;:::-;24272:25;;24311:20;24329:1;24311:20;:::i;:::-;24306:25;;24499:1;24431:66;24427:74;24424:1;24421:81;24416:1;24409:9;24402:17;24398:105;24395:131;;;24506:18;;:::i;:::-;24395:131;24554:1;24551;24547:9;24536:20;;24214:348;;;;:::o;24568:191::-;24608:4;24628:20;24646:1;24628:20;:::i;:::-;24623:25;;24662:20;24680:1;24662:20;:::i;:::-;24657:25;;24701:1;24698;24695:8;24692:34;;;24706:18;;:::i;:::-;24692:34;24751:1;24748;24744:9;24736:17;;24568:191;;;;:::o;24765:96::-;24802:7;24831:24;24849:5;24831:24;:::i;:::-;24820:35;;24765:96;;;:::o;24867:104::-;24912:7;24941:24;24959:5;24941:24;:::i;:::-;24930:35;;24867:104;;;:::o;24977:90::-;25011:7;25054:5;25047:13;25040:21;25029:32;;24977:90;;;:::o;25073:76::-;25109:7;25138:5;25127:16;;25073:76;;;:::o;25155:126::-;25192:7;25232:42;25225:5;25221:54;25210:65;;25155:126;;;:::o;25287:77::-;25324:7;25353:5;25342:16;;25287:77;;;:::o;25370:153::-;25447:9;25480:37;25511:5;25480:37;:::i;:::-;25467:50;;25370:153;;;:::o;25529:121::-;25587:9;25620:24;25638:5;25620:24;:::i;:::-;25607:37;;25529:121;;;:::o;25656:126::-;25706:9;25739:37;25770:5;25739:37;:::i;:::-;25726:50;;25656:126;;;:::o;25788:113::-;25838:9;25871:24;25889:5;25871:24;:::i;:::-;25858:37;;25788:113;;;:::o;25907:307::-;25975:1;25985:113;25999:6;25996:1;25993:13;25985:113;;;26084:1;26079:3;26075:11;26069:18;26065:1;26060:3;26056:11;26049:39;26021:2;26018:1;26014:10;26009:15;;25985:113;;;26116:6;26113:1;26110:13;26107:101;;;26196:1;26187:6;26182:3;26178:16;26171:27;26107:101;25956:258;25907:307;;;:::o;26220:320::-;26264:6;26301:1;26295:4;26291:12;26281:22;;26348:1;26342:4;26338:12;26369:18;26359:81;;26425:4;26417:6;26413:17;26403:27;;26359:81;26487:2;26479:6;26476:14;26456:18;26453:38;26450:84;;;26506:18;;:::i;:::-;26450:84;26271:269;26220:320;;;:::o;26546:231::-;26584:3;26607:23;26624:5;26607:23;:::i;:::-;26598:32;;26652:66;26645:5;26642:77;26639:103;;;26722:18;;:::i;:::-;26639:103;26769:1;26762:5;26758:13;26751:20;;26546:231;;;:::o;26783:180::-;26831:77;26828:1;26821:88;26928:4;26925:1;26918:15;26952:4;26949:1;26942:15;26969:180;27017:77;27014:1;27007:88;27114:4;27111:1;27104:15;27138:4;27135:1;27128:15;27155:180;27203:77;27200:1;27193:88;27300:4;27297:1;27290:15;27324:4;27321:1;27314:15;27341:180;27389:77;27386:1;27379:88;27486:4;27483:1;27476:15;27510:4;27507:1;27500:15;27527:180;27575:77;27572:1;27565:88;27672:4;27669:1;27662:15;27696:4;27693:1;27686:15;27836:117;27945:1;27942;27935:12;27959:102;28000:6;28051:2;28047:7;28042:2;28035:5;28031:14;28027:28;28017:38;;27959:102;;;:::o;28067:::-;28109:8;28156:5;28153:1;28149:13;28128:34;;28067:102;;;:::o;28175:222::-;28315:34;28311:1;28303:6;28299:14;28292:58;28384:5;28379:2;28371:6;28367:15;28360:30;28175:222;:::o;28403:229::-;28543:34;28539:1;28531:6;28527:14;28520:58;28612:12;28607:2;28599:6;28595:15;28588:37;28403:229;:::o;28638:225::-;28778:34;28774:1;28766:6;28762:14;28755:58;28847:8;28842:2;28834:6;28830:15;28823:33;28638:225;:::o;28869:221::-;29009:34;29005:1;28997:6;28993:14;28986:58;29078:4;29073:2;29065:6;29061:15;29054:29;28869:221;:::o;29096:177::-;29236:29;29232:1;29224:6;29220:14;29213:53;29096:177;:::o;29279:220::-;29419:34;29415:1;29407:6;29403:14;29396:58;29488:3;29483:2;29475:6;29471:15;29464:28;29279:220;:::o;29505:182::-;29645:34;29641:1;29633:6;29629:14;29622:58;29505:182;:::o;29693:228::-;29833:34;29829:1;29821:6;29817:14;29810:58;29902:11;29897:2;29889:6;29885:15;29878:36;29693:228;:::o;29927:224::-;30067:34;30063:1;30055:6;30051:14;30044:58;30136:7;30131:2;30123:6;30119:15;30112:32;29927:224;:::o;30157:223::-;30297:34;30293:1;30285:6;30281:14;30274:58;30366:6;30361:2;30353:6;30349:15;30342:31;30157:223;:::o;30386:181::-;30526:33;30522:1;30514:6;30510:14;30503:57;30386:181;:::o;30573:222::-;30713:34;30709:1;30701:6;30697:14;30690:58;30782:5;30777:2;30769:6;30765:15;30758:30;30573:222;:::o;30801:122::-;30874:24;30892:5;30874:24;:::i;:::-;30867:5;30864:35;30854:63;;30913:1;30910;30903:12;30854:63;30801:122;:::o;30929:138::-;31010:32;31036:5;31010:32;:::i;:::-;31003:5;31000:43;30990:71;;31057:1;31054;31047:12;30990:71;30929:138;:::o;31073:116::-;31143:21;31158:5;31143:21;:::i;:::-;31136:5;31133:32;31123:60;;31179:1;31176;31169:12;31123:60;31073:116;:::o;31195:122::-;31268:24;31286:5;31268:24;:::i;:::-;31261:5;31258:35;31248:63;;31307:1;31304;31297:12;31248:63;31195:122;:::o

Swarm Source

ipfs://46b2209b326c9d2364bfe8489fad31328a467adef9775068aec0aa558df9750a
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading