frxETH Price: $2,681.27 (-4.92%)
    /

    Contract

    0x4527bcEd9d41706D1436507e9a6e354d3FF44ff9

    Overview

    frxETH Balance | FXTL Balance

    0 frxETH | 276,000,489 FXTL

    frxETH Value

    $0.00

    Multichain Info

    No addresses found
    Transaction Hash
    Method
    Block
    Age
    From
    To
    Approve166881702025-02-22 1:17:312 days ago1740187051IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000040.00100025
    Approve166406002025-02-20 22:51:513 days ago1740091911IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000020.00110025
    Approve161576892025-02-09 18:34:4914 days ago1739126089IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve160654292025-02-07 15:19:2916 days ago1738941569IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve159925492025-02-05 22:50:0918 days ago1738795809IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve159897242025-02-05 21:15:5918 days ago1738790159IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve159739182025-02-05 12:29:0719 days ago1738758547IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve159540702025-02-05 1:27:3119 days ago1738718851IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve152254472025-01-19 4:40:0536 days ago1737261605IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve151433842025-01-17 7:04:3938 days ago1737097479IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve151433582025-01-17 7:03:4738 days ago1737097427IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve149488172025-01-12 18:59:0542 days ago1736708345IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000040.00100025
    Approve148549202025-01-10 14:49:1144 days ago1736520551IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve147672632025-01-08 14:07:1746 days ago1736345237IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000040.00100025
    Approve147321542025-01-07 18:36:5947 days ago1736275019IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve147260362025-01-07 15:13:0347 days ago1736262783IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000050.00110025
    Approve146286312025-01-05 9:06:1350 days ago1736067973IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve145143832025-01-02 17:37:5752 days ago1735839477IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve144920672025-01-02 5:14:0553 days ago1735794845IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve144741762025-01-01 19:17:4353 days ago1735759063IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve143498992024-12-29 22:15:0956 days ago1735510509IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve142321292024-12-27 4:49:2959 days ago1735274969IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000020.00110025
    Approve141602072024-12-25 12:52:0561 days ago1735131125IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    Approve138770502024-12-18 23:33:3167 days ago1734564811IN
    0x4527bcEd...d3FF44ff9
    0 frxETH0.000000040.00100025
    Approve138319092024-12-17 22:28:4968 days ago1734474529IN
    0x4527bcEd...d3FF44ff9
    0 frxETH00.00010025
    View all transactions

    Latest 1 internal transaction

    Parent Transaction Hash Block Age From To Amount
    8748672024-02-22 0:07:25368 days ago1708560445
     Contract Creation
    0 frxETH

    Loading...
    Loading

    Similar Match Source Code
    This contract matches the deployed Bytecode of the Source Code for Contract 0x29F5DBD0...18a83C70A
    The constructor portion of the code might be different and could alter the actual behaviour of the contract

    Contract Name:
    FraxswapPair

    Compiler Version
    v0.8.23+commit.f704f362

    Optimization Enabled:
    Yes with 1000000 runs

    Other Settings:
    paris EvmVersion
    File 1 of 13 : FraxswapPair.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    // ====================================================================
    // | ______ _______ |
    // | / _____________ __ __ / ____(_____ ____ _____ ________ |
    // | / /_ / ___/ __ `| |/_/ / /_ / / __ \/ __ `/ __ \/ ___/ _ \ |
    // | / __/ / / / /_/ _> < / __/ / / / / / /_/ / / / / /__/ __/ |
    // | /_/ /_/ \__,_/_/|_| /_/ /_/_/ /_/\__,_/_/ /_/\___/\___/ |
    // | |
    // ====================================================================
    // =========================== FraxswapPair ===========================
    // ====================================================================
    import { IERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
    import { FraxswapERC20 } from "./FraxswapERC20.sol";
    import { Math } from "./libraries/Math.sol";
    import { UQ112x112 } from "./libraries/UQ112x112.sol";
    import { IFraxswapFactory } from "./interfaces/IFraxswapFactory.sol";
    import { LongTermOrdersLib } from "../twamm/LongTermOrders.sol";
    import { IUniswapV2Callee } from "@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.sol";
    /// @notice TWAMM LP Pair Token
    /// @author Frax Finance (https://github.com/FraxFinance)
    contract FraxswapPair is FraxswapERC20 {
    using UQ112x112 for uint224;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 13 : ERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)
    pragma solidity ^0.8.20;
    import {IERC20} from "./IERC20.sol";
    import {IERC20Metadata} from "./extensions/IERC20Metadata.sol";
    import {Context} from "../../utils/Context.sol";
    import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol";
    /**
    * @dev Implementation of the {IERC20} interface.
    *
    * This implementation is agnostic to the way tokens are created. This means
    * that a supply mechanism has to be added in a derived contract using {_mint}.
    *
    * TIP: For a detailed writeup see our guide
    * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
    * to implement supply mechanisms].
    *
    * The default value of {decimals} is 18. To change this, you should override
    * this function so it returns a different value.
    *
    * We have followed general OpenZeppelin Contracts guidelines: functions revert
    * instead returning `false` on failure. This behavior is nonetheless
    * conventional and does not conflict with the expectations of ERC20
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 13 : FraxswapERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    // ====================================================================
    // | ______ _______ |
    // | / _____________ __ __ / ____(_____ ____ _____ ________ |
    // | / /_ / ___/ __ `| |/_/ / /_ / / __ \/ __ `/ __ \/ ___/ _ \ |
    // | / __/ / / / /_/ _> < / __/ / / / / / /_/ / / / / /__/ __/ |
    // | /_/ /_/ \__,_/_/|_| /_/ /_/_/ /_/\__,_/_/ /_/\___/\___/ |
    // | |
    // ====================================================================
    // ========================== FraxswapERC20 ===========================
    // ====================================================================
    /// @notice Fraxswap ERC-20
    /// @author Frax Finance (https://github.com/FraxFinance)
    contract FraxswapERC20 {
    string public constant name = "Fraxswap V2";
    string public constant symbol = "FS-V2";
    uint8 public constant decimals = 18;
    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    bytes32 public immutable DOMAIN_SEPARATOR;
    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 13 : Math.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // SPDX-Licence-Identifier: MIT
    pragma solidity ^0.8.0;
    // a library for performing various math operations
    library Math {
    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {
    z = x < y ? x : y;
    }
    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint256 y) internal pure returns (uint256 z) {
    if (y > 3) {
    z = y;
    uint256 x = y / 2 + 1;
    while (x < z) {
    z = x;
    x = (y / x + x) / 2;
    }
    } else if (y != 0) {
    z = 1;
    }
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 13 : UQ112x112.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // SPDX-Licence-Identifier: MIT
    pragma solidity ^0.8.0;
    // a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))
    // range: [0, 2**112 - 1]
    // resolution: 1 / 2**112
    library UQ112x112 {
    uint224 constant Q112 = 2 ** 112;
    // encode a uint112 as a UQ112x112
    function encode(uint112 y) internal pure returns (uint224 z) {
    z = uint224(y) * Q112; // never overflows
    }
    // divide a UQ112x112 by a uint112, returning a UQ112x112
    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
    z = x / uint224(y);
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 13 : IFraxswapFactory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    pragma solidity ^0.8.0;
    import { IUniswapV2Factory } from "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol";
    interface IFraxswapFactory is IUniswapV2Factory {
    function createPair(address tokenA, address tokenB, uint256 fee) external returns (address pair);
    function globalPause() external view returns (bool);
    function toggleGlobalPause() external;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 13 : LongTermOrders.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity ^0.8.0;
    // ====================================================================
    // | ______ _______ |
    // | / _____________ __ __ / ____(_____ ____ _____ ________ |
    // | / /_ / ___/ __ `| |/_/ / /_ / / __ \/ __ `/ __ \/ ___/ _ \ |
    // | / __/ / / / /_/ _> < / __/ / / / / / /_/ / / / / /__/ __/ |
    // | /_/ /_/ \__,_/_/|_| /_/ /_/_/ /_/\__,_/_/ /_/\___/\___/ |
    // | |
    // ====================================================================
    // ========================= LongTermOrdersLib ========================
    // ====================================================================
    // TWAMM long term order execution logic
    /// @notice This library handles the state and execution of long term orders.
    library LongTermOrdersLib {
    using LongTermOrdersLib for OrderPool;
    /// ---------------------------
    /// ---------- Events ---------
    /// ---------------------------
    ///@notice An event emitted when virtual orders are executed
    event VirtualOrderExecution(
    uint256 blockTimestamp,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 13 : IUniswapV2Callee.sol
    1
    2
    3
    4
    5
    pragma solidity >=0.5.0;
    interface IUniswapV2Callee {
    function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 13 : IERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Interface of the ERC20 standard as defined in the EIP.
    */
    interface IERC20 {
    /**
    * @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);
    /**
    * @dev Returns the value of tokens in existence.
    */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 10 of 13 : IERC20Metadata.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)
    pragma solidity ^0.8.20;
    import {IERC20} from "../IERC20.sol";
    /**
    * @dev Interface for the optional metadata functions from the ERC20 standard.
    */
    interface IERC20Metadata is IERC20 {
    /**
    * @dev Returns the name of the token.
    */
    function name() external view returns (string memory);
    /**
    * @dev Returns the symbol of the token.
    */
    function symbol() external view returns (string memory);
    /**
    * @dev Returns the decimals places of the token.
    */
    function decimals() external view returns (uint8);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 11 of 13 : Context.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Provides information about the current execution context, including the
    * sender of the transaction and its data. While these are generally available
    * via msg.sender and msg.data, they should not be accessed in such a direct
    * manner, since when dealing with meta-transactions the account sending and
    * paying for execution may not be the actual sender (as far as an application
    * is concerned).
    *
    * This contract is only required for intermediate, library-like contracts.
    */
    abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
    return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
    return msg.data;
    }
    function _contextSuffixLength() internal view virtual returns (uint256) {
    return 0;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 12 of 13 : draft-IERC6093.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Standard ERC20 Errors
    * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.
    */
    interface IERC20Errors {
    /**
    * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
    * @param sender Address whose tokens are being transferred.
    * @param balance Current balance for the interacting account.
    * @param needed Minimum amount required to perform a transfer.
    */
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    /**
    * @dev Indicates a failure with the token `sender`. Used in transfers.
    * @param sender Address whose tokens are being transferred.
    */
    error ERC20InvalidSender(address sender);
    /**
    * @dev Indicates a failure with the token `receiver`. Used in transfers.
    * @param receiver Address to which tokens are being transferred.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 13 of 13 : IUniswapV2Factory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    pragma solidity >=0.5.0;
    interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    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(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "frax-std/=node_modules/frax-standard-solidity/src/",
    "@prb/test/=node_modules/@prb/test/",
    "forge-std/=node_modules/forge-std/src/",
    "ds-test/=node_modules/ds-test/src/",
    "@uniswap/v2-core/=lib/v2-core/",
    "@uniswap/v2-periphery/=lib/v2-periphery/",
    "@uniswap/v3-core/=lib/v3-core/",
    "@uniswap/v3-periphery/=lib/v3-periphery/",
    "@chainlink/=node_modules/@chainlink/",
    "@eth-optimism/=node_modules/@eth-optimism/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "frax-standard-solidity/=node_modules/frax-standard-solidity/",
    "solidity-bytes-utils/=node_modules/solidity-bytes-utils/",
    "v2-core/=lib/v2-core/contracts/",
    "v2-periphery/=lib/v2-periphery/contracts/",
    "v3-core/=lib/v3-core/",
    "v3-periphery/=lib/v3-periphery/contracts/"
    ],
    "optimizer": {
    "enabled": true,
    "runs": 1000000
    },
    "metadata": {
    "useLiteralContent": false,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InsufficientInputAmount","type":"error"},{"inputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"InsufficientLiquidity","type":"error"},{"inputs":[],"name":"InsufficientOutputAmount","type":"error"},{"inputs":[],"name":"InvalidToToken","type":"error"},{"inputs":[],"name":"KConstantError","type":"error"},{"inputs":[],"name":"Uint112Overflow","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sellToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"unsoldAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"buyToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"purchasedAmount","type":"uint256"}],"name":"CancelLongTermOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numberOfTimeIntervals","type":"uint256"}],"name":"LongTermSwap0To1","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numberOfTimeIntervals","type":"uint256"}],"name":"LongTermSwap1To0","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"LpFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blockTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockTimestampElapsed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newReserve0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newReserve1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTwammReserve0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTwammReserve1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"token0Bought","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"token1Bought","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"token0Sold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"token1Sold","type":"uint256"}],"name":"VirtualOrderExecution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":true,"internalType":"address","name":"proceedToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"proceeds","type":"uint256"},{"indexed":false,"internalType":"bool","name":"orderExpired","type":"bool"}],"name":"WithdrawProceedsFromLongTermOrder","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"TWAPObservationHistory","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"price0CumulativeLast","type":"uint256"},{"internalType":"uint256","name":"price1CumulativeLast","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"cancelLongTermSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockTimestamp","type":"uint256"}],"name":"executeVirtualOrders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address","name":"tokenOut","type":"address"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"tokenIn","type":"address"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"getDetailedOrdersForUser","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"creationTimestamp","type":"uint256"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"},{"internalType":"uint256","name":"saleRate","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"sellTokenAddr","type":"address"},{"internalType":"address","name":"buyTokenAddr","type":"address"},{"internalType":"bool","name":"isComplete","type":"bool"}],"internalType":"struct LongTermOrdersLib.Order[]","name":"detailed_orders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextOrderID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getOrderIDsForUser","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getOrderIDsForUserLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockTimestamp","type":"uint256"}],"name":"getReserveAfterTwamm","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint256","name":"lastVirtualOrderTimestamp","type":"uint256"},{"internalType":"uint112","name":"_twammReserve0","type":"uint112"},{"internalType":"uint112","name":"_twammReserve1","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTWAPHistoryLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"getTwammOrder","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"creationTimestamp","type":"uint256"},{"internalType":"uint256","name":"expirationTimestamp","type":"uint256"},{"internalType":"uint256","name":"saleRate","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"sellTokenAddr","type":"address"},{"internalType":"address","name":"buyTokenAddr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"getTwammOrderProceeds","outputs":[{"internalType":"bool","name":"orderExpired","type":"bool"},{"internalType":"uint256","name":"totalReward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"blockTimestamp","type":"uint256"}],"name":"getTwammOrderProceedsView","outputs":[{"internalType":"bool","name":"orderExpired","type":"bool"},{"internalType":"uint256","name":"totalReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTwammReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"},{"internalType":"uint112","name":"_twammReserve0","type":"uint112"},{"internalType":"uint112","name":"_twammReserve1","type":"uint112"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockTimestamp","type":"uint256"}],"name":"getTwammRewardFactor","outputs":[{"internalType":"uint256","name":"rewardFactorPool0AtTimestamp","type":"uint256"},{"internalType":"uint256","name":"rewardFactorPool1AtTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockTimestamp","type":"uint256"}],"name":"getTwammSalesRateEnding","outputs":[{"internalType":"uint256","name":"orderPool0SalesRateEnding","type":"uint256"},{"internalType":"uint256","name":"orderPool1SalesRateEnding","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTwammState","outputs":[{"internalType":"uint256","name":"token0Rate","type":"uint256"},{"internalType":"uint256","name":"token1Rate","type":"uint256"},{"internalType":"uint256","name":"lastVirtualOrderTimestamp","type":"uint256"},{"internalType":"uint256","name":"orderTimeInterval_rtn","type":"uint256"},{"internalType":"uint256","name":"rewardFactorPool0","type":"uint256"},{"internalType":"uint256","name":"rewardFactorPool1","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0In","type":"uint256"},{"internalType":"uint256","name":"numberOfTimeIntervals","type":"uint256"}],"name":"longTermSwapFrom0To1","outputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount1In","type":"uint256"},{"internalType":"uint256","name":"numberOfTimeIntervals","type":"uint256"}],"name":"longTermSwapFrom1To0","outputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newSwapsPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"orderIDsForUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"orderTimeInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"togglePauseNewSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"twammReserve0","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"twammReserve1","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"twammUpToDate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"withdrawProceedsFromLongTermSwap","outputs":[{"internalType":"bool","name":"is_expired","type":"bool"},{"internalType":"address","name":"rewardTkn","type":"address"},{"internalType":"uint256","name":"totalReward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

    Deployed Bytecode

    0x608060405234801561001057600080fd5b50600436106103835760003560e01c80637464fc3d116101de57806396f291271161010f578063c9738a0d116100ad578063ddca3f431161007c578063ddca3f4314610a5e578063e852bc2e14610a67578063f140a35a14610aa6578063fff6cae914610ab957600080fd5b8063c9738a0d146109ed578063d21220a714610a00578063d505accf14610a20578063dd62ed3e14610a3357600080fd5b8063ba9a7a56116100e9578063ba9a7a561461095c578063bc25cf7714610965578063bcaa64ea14610978578063c45a0155146109c857600080fd5b806396f2912714610937578063a1462c191461093f578063a9059cbb1461094957600080fd5b806381ca79981161017c57806387353fed1161015657806387353fed146108a857806389afcb44146108c857806395d89b41146108db5780639610c5f11461091757600080fd5b806381ca79981461083d57806381fd0a4614610850578063852a8dbe1461089557600080fd5b806378dd0298116101b857806378dd0298146107e15780637d316e28146107e95780637ecebe00146108155780637fa2ee6e1461083557600080fd5b80637464fc3d14610799578063748fc63b146107a2578063753bfd4b146107ab57600080fd5b80632c8488da116102b85780634894c53c116102565780635a3d5493116102305780635a3d54931461074b57806369fe0e2d146107535780636a6278421461076657806370a082311461077957600080fd5b80634894c53c146106cc5780634adc77c2146106df5780635909c0d51461074357600080fd5b8063313ce56711610292578063313ce567146106505780633644e5151461066a578063422fff051461069157806343c99081146106b957600080fd5b80632c8488da146105ec5780632e0ae3751461061657806330adf81f1461062957600080fd5b80631125f13f116103255780631f4f5b42116102ff5780631f4f5b421461058b5780631fc2fa7f1461059e57806323b872dd146105ab57806327e73836146105be57600080fd5b80631125f13f1461054e5780631794bb3c1461056f57806318160ddd1461058257600080fd5b8063094cf14911610361578063094cf14914610455578063095ea7b3146104ad5780630dfe1681146104d05780630ece72361461051557600080fd5b8063022c0d9f1461038857806306fdde031461039d5780630902f1ac146103ef575b600080fd5b61039b610396366004614f0f565b610ac1565b005b6103d96040518060400160405280600b81526020017f467261787377617020563200000000000000000000000000000000000000000081525081565b6040516103e69190614fc9565b60405180910390f35b601b54604080516dffffffffffffffffffffffffffff80841682526e01000000000000000000000000000084041660208201527c010000000000000000000000000000000000000000000000000000000090920463ffffffff16908201526060016103e6565b61045d611102565b604080516dffffffffffffffffffffffffffff9788168152958716602087015263ffffffff90941693850193909352908416606084015292909216608082015260a081019190915260c0016103e6565b6104c06104bb36600461501a565b611192565b60405190151581526020016103e6565b6019546104f09073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103e6565b60165461052f906dffffffffffffffffffffffffffff1681565b6040516dffffffffffffffffffffffffffff90911681526020016103e6565b61056161055c366004615046565b6111a9565b6040519081526020016103e6565b61039b61057d366004615076565b6112e9565b61056160005481565b61039b6105993660046150b7565b61140d565b6018546104c09060ff1681565b6104c06105b9366004615076565b611607565b6105d16105cc3660046150b7565b6116e1565b604080519384526020840192909252908201526060016103e6565b6105ff6105fa3660046150d0565b611714565b6040805192151583526020830191909152016103e6565b61039b6106243660046150b7565b611775565b6105617f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610658601281565b60405160ff90911681526020016103e6565b6105617faf911a3e4cbd3b82cb5d039b25137c70c086070eb32a25b54afe384bae11aa0081565b6106a461069f3660046150b7565b6117b0565b604080519283526020830191909152016103e6565b6106a46106c73660046150b7565b6117f0565b6105ff6106da3660046150b7565b611830565b6106f26106ed3660046150b7565b61184f565b60408051978852602088019690965294860193909352606085019190915273ffffffffffffffffffffffffffffffffffffffff908116608085015290811660a08401521660c082015260e0016103e6565b6105616118cc565b610561611913565b61039b6107613660046150b7565b61195a565b6105616107743660046150f2565b611aa2565b6105616107873660046150f2565b60016020526000908152604090205481565b610561601c5481565b610561610e1081565b6105616107b93660046150f2565b73ffffffffffffffffffffffffffffffffffffffff166000908152601d602052604090205490565b601454610561565b60165461052f906e01000000000000000000000000000090046dffffffffffffffffffffffffffff1681565b6105616108233660046150f2565b60036020526000908152604090205481565b601e54610561565b61056161084b3660046150d0565b611e2f565b61086361085e3660046150b7565b611fb4565b60408051931515845273ffffffffffffffffffffffffffffffffffffffff9092166020840152908201526060016103e6565b6105616108a336600461501a565b612195565b6108bb6108b636600461510f565b6121c6565b6040516103e69190615144565b6106a46108d63660046150f2565b6123fc565b6103d96040518060400160405280600581526020017f46532d563200000000000000000000000000000000000000000000000000000081525081565b61092a6109253660046150f2565b6128af565b6040516103e691906151f3565b61039b612928565b60045442146104c0565b6104c061095736600461501a565b6129fd565b6105616103e881565b61039b6109733660046150f2565b612a0a565b61098b6109863660046150b7565b612bd8565b604080516dffffffffffffffffffffffffffff9687168152948616602086015284019290925283166060830152909116608082015260a0016103e6565b6018546104f090610100900473ffffffffffffffffffffffffffffffffffffffff1681565b6105616109fb3660046150d0565b612d12565b601a546104f09073ffffffffffffffffffffffffffffffffffffffff1681565b61039b610a2e366004615237565b612e6c565b610561610a413660046152ae565b600260209081526000928352604080842090915290825290205481565b61056160175481565b600654600d54600454600754600e5460408051958652602086019490945292840191909152610e106060840152608083015260a082015260c0016103e6565b610561610ab4366004615046565b6130b8565b61039b6131f2565b601f54600114610ad057600080fd5b6000601f55610ade426133bc565b6000851180610aed5750600084115b610b23576040517f42301c2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610b7f601b546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5091509150816dffffffffffffffffffffffffffff1687108015610bb25750806dffffffffffffffffffffffffffff1686105b610c06576040517f6243da720000000000000000000000000000000000000000000000000000000081526dffffffffffffffffffffffffffff80841660048301528216602482015260440160405180910390fd5b601954601a54600091829173ffffffffffffffffffffffffffffffffffffffff918216919081169089168214801590610c6b57508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ca1576040517f591c75ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8a15610cb257610cb2828a8d6135ac565b8915610cc357610cc3818a8c6135ac565b8615610d56576040517f10d1e85c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16906310d1e85c90610d239033908f908f908e908e906004016152dc565b600060405180830381600087803b158015610d3d57600080fd5b505af1158015610d51573d6000803e3d6000fd5b505050505b6016546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526dffffffffffffffffffffffffffff9091169073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381865afa158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa9190615354565b610e04919061539c565b6016546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529195506e01000000000000000000000000000090046dffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190615354565b610ec5919061539c565b92505050600089856dffffffffffffffffffffffffffff16610ee7919061539c565b8311610ef4576000610f18565b610f0e8a6dffffffffffffffffffffffffffff871661539c565b610f18908461539c565b90506000610f368a6dffffffffffffffffffffffffffff871661539c565b8311610f43576000610f67565b610f5d8a6dffffffffffffffffffffffffffff871661539c565b610f67908461539c565b90506000821180610f785750600081115b610fae576040517f098fb56100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000601754612710610fc0919061539c565b90506000610fce82856153af565b610fda876127106153af565b610fe4919061539c565b90506000610ff283856153af565b610ffe876127106153af565b611008919061539c565b90506110276dffffffffffffffffffffffffffff808a16908b166153af565b611035906305f5e1006153af565b61103f82846153af565b1015611077576040517f19886c4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505061108e848488886110896136e8565b61372b565b60408051838152602081018390529081018c9052606081018b905273ffffffffffffffffffffffffffffffffffffffff8a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001601f55505050505050505050565b601b54601654601754600092839283928392839283926dffffffffffffffffffffffffffff808416936e0100000000000000000000000000008082048316947c010000000000000000000000000000000000000000000000000000000090920463ffffffff16938383169391909204169061117f9061271061539c565b949b939a50919850965094509092509050565b600061119f3384846139f6565b5060015b92915050565b6019546000908190819073ffffffffffffffffffffffffffffffffffffffff85811691161461120057601b546dffffffffffffffffffffffffffff808216916e010000000000000000000000000000900416611229565b601b546dffffffffffffffffffffffffffff6e0100000000000000000000000000008204811691165b9150915060008511801561124d57506000826dffffffffffffffffffffffffffff16115b801561126957506000816dffffffffffffffffffffffffffff16115b61127257600080fd5b600061128e866dffffffffffffffffffffffffffff85166153af565b61129a906127106153af565b9050600060175487846dffffffffffffffffffffffffffff166112bd919061539c565b6112c791906153af565b90506112d381836153f5565b6112de906001615409565b979650505050505050565b806000811180156112fa5750606581105b61130357600080fd5b601854610100900473ffffffffffffffffffffffffffffffffffffffff16331461132c57600080fd5b6019805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617909255601a80549286169290911691909117905561138d8261271061539c565b601755600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616179055426004556040518281527f2ade3fe6cec488ed9b13e36f5179edfbca9998fecc5926cf57335558671d5f959060200160405180910390a150505050565b601f5460011461141c57600080fd5b6000601f5561142a426133bc565b600080808061143a600486613a65565b6019549397509195509350915073ffffffffffffffffffffffffffffffffffffffff8084169116148061146d578361146f565b815b601680546000906114919084906dffffffffffffffffffffffffffff1661541c565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550806114ce57816114d0565b835b60168054600e906115049084906e01000000000000000000000000000090046dffffffffffffffffffffffffffff1661541c565b82546dffffffffffffffffffffffffffff9182166101009390930a928302919092021990911617905550600086815260156020526040902060060180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556115878333846135ac565b6115928533866135ac565b6040805187815273ffffffffffffffffffffffffffffffffffffffff878116602083015291810186905290841660608201526080810183905233907f3c5d5e0947e8b8050cf53e91c7496de2499da1b7613ec86b8fda8705789663909060a00160405180910390a250506001601f5550505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146116cc5773ffffffffffffffffffffffffffffffffffffffff8416600090815260026020908152604080832033845290915290205461169a90839061539c565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6116d7848484613b06565b5060019392505050565b601e81815481106116f157600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b600080600460100154841061172857600080fd5b60008481526015602052604081206005015461175c9060049073ffffffffffffffffffffffffffffffffffffffff16613bd5565b9050611769818686613c11565b90969095509350505050565b601f5460011461178457600080fd5b6000601f556004548111801561179a5750428111155b156117a8576117a8816133bc565b506001601f55565b600080806117c0610e108561544a565b6117ca908561539c565b600090815260086020908152604080832054600f90925290912054909590945092505050565b60008080611800610e108561544a565b61180a908561539c565b6000908152600c6020908152604080832054601390925290912054909590945092505050565b60008061183c42611775565b6118468342611714565b91509150915091565b6000806000806000806000600460100154881061186b57600080fd5b505050600094855250506015602052505060409020805460018201546002830154600384015460048501546005860154600690960154949693959294919373ffffffffffffffffffffffffffffffffffffffff918216938216929190911690565b601e546000906118dc5750600090565b601e80546118ec9060019061539c565b815481106118fc576118fc61545e565b906000526020600020906003020160010154905090565b601e546000906119235750600090565b601e80546119339060019061539c565b815481106119435761194361545e565b906000526020600020906003020160020154905090565b611963426133bc565b806000811180156119745750606581105b61197d57600080fd5b601854610100900473ffffffffffffffffffffffffffffffffffffffff16331480611a535750601854604080517f094b741500000000000000000000000000000000000000000000000000000000815290513392610100900473ffffffffffffffffffffffffffffffffffffffff169163094b74159160048083019260209291908290030181865afa158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b919061548d565b73ffffffffffffffffffffffffffffffffffffffff16145b611a5c57600080fd5b611a688261271061539c565b6017556040518281527f2ade3fe6cec488ed9b13e36f5179edfbca9998fecc5926cf57335558671d5f959060200160405180910390a15050565b6000601f54600114611ab357600080fd5b6000601f55611ac1426133bc565b600080611b1d601b546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b506016546019546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529395509193506000926dffffffffffffffffffffffffffff9091169173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190615354565b611bd7919061539c565b601654601a546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529293506000926e0100000000000000000000000000009092046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c969190615354565b611ca0919061539c565b90506000611cbe6dffffffffffffffffffffffffffff86168461539c565b90506000611cdc6dffffffffffffffffffffffffffff86168461539c565b90506000611cea8787613ce7565b60008054919250819003611d2b576103e8611d0d611d0885876153af565b613e54565b611d17919061539c565b9850611d2660006103e8613ec4565b611d80565b611d7d6dffffffffffffffffffffffffffff8916611d4983876153af565b611d5391906153f5565b6dffffffffffffffffffffffffffff8916611d6e84876153af565b611d7891906153f5565b613f6f565b98505b60008911611d8d57600080fd5b611d978a8a613ec4565b611da686868a8a6110896136e8565b8115611de157601b54611ddd906dffffffffffffffffffffffffffff6e0100000000000000000000000000008204811691166153af565b601c555b604080518581526020810185905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001601f5550949695505050505050565b6000601f54600114611e4057600080fd5b6000601f5560185460ff1615611e5557600080fd5b611e5e426133bc565b601a54600090611e849073ffffffffffffffffffffffffffffffffffffffff1685613f85565b9050806016600e8282829054906101000a90046dffffffffffffffffffffffffffff16611eb191906154aa565b82546101009290920a6dffffffffffffffffffffffffffff818102199093169183160217909155601654601b54919250611f05916e0100000000000000000000000000009182900484169190048316615409565b1115611f1057600080fd5b601a54601954611f3e9160049173ffffffffffffffffffffffffffffffffffffffff918216911684876141ce565b336000818152601d602090815260408083208054600181018255908452928290209092018490558151848152908101859052908101869052919350907fe1ce07267c05b1609d3bd4046ca369b74e64cd2b45ee8321ccc79783252c60b4906060015b60405180910390a2506001601f5592915050565b6000806000601f54600114611fc857600080fd5b6000601f55611fd6426133bc565b60008080611fe5600488614444565b601954929550909350915073ffffffffffffffffffffffffffffffffffffffff9081169084160361206c57601680548391906000906120359084906dffffffffffffffffffffffffffff1661541c565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055506120ca565b816016600e8282829054906101000a90046dffffffffffffffffffffffffffff16612097919061541c565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055505b801561211f57600087815260156020526040902060060180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555b61212a8333846135ac565b604080518881526020810184905282151581830152905173ffffffffffffffffffffffffffffffffffffffff85169133917f43168622ddb54ed84ccad30626ace7077235dc531c67aaf639752c45195354489181900360600190a36001601f55969195509350915050565b601d60205281600052604060002081815481106121b157600080fd5b90600052602060002001600091509150505481565b73ffffffffffffffffffffffffffffffffffffffff83166000908152601d6020908152604080832080548251818502810185019093528083526060949383018282801561223257602002820191906000526020600020905b81548152602001906001019080831161221e575b50505050509050600061224c84868451611d78919061539c565b90508067ffffffffffffffff811115612267576122676154d1565b6040519080825280602002602001820160405280156122f457816020015b604080516101008101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c0820181905260e082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816122855790505b50925060005b818110156123f2576015600084612311848a615409565b815181106123215761232161545e565b60209081029190910181015182528181019290925260409081016000208151610100810183528154815260018201549381019390935260028101549183019190915260038101546060830152600481015473ffffffffffffffffffffffffffffffffffffffff90811660808401526005820154811660a084015260069091015490811660c083015274010000000000000000000000000000000000000000900460ff16151560e082015284518590839081106123df576123df61545e565b60209081029190910101526001016122fa565b5050509392505050565b600080601f5460011461240e57600080fd5b6000601f5561241c426133bc565b600080612478601b546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b50601954601a546016546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015294965092945073ffffffffffffffffffffffffffffffffffffffff918216939116916000916dffffffffffffffffffffffffffff9091169084906370a0823190602401602060405180830381865afa15801561250e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125329190615354565b61253c919061539c565b6016546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529192506000916e0100000000000000000000000000009091046dffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190602401602060405180830381865afa1580156125d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f79190615354565b612601919061539c565b3060009081526001602052604081205491925061261e8888613ce7565b6000549091508061262f86856153af565b61263991906153f5565b9a508061264685856153af565b61265091906153f5565b995060008b118015612662575060008a115b61266b57600080fd5b61267530846144db565b612680878d8d6135ac565b61268b868d8c6135ac565b6016546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526dffffffffffffffffffffffffffff9091169073ffffffffffffffffffffffffffffffffffffffff8916906370a0823190602401602060405180830381865afa15801561270b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272f9190615354565b612739919061539c565b6016546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529196506e01000000000000000000000000000090046dffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa1580156127cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f09190615354565b6127fa919061539c565b935061280b85858b8b6110896136e8565b811561284657601b54612842906dffffffffffffffffffffffffffff6e0100000000000000000000000000008204811691166153af565b601c555b604080518c8152602081018c905273ffffffffffffffffffffffffffffffffffffffff8e169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a35050505050505050506001601f81905550915091565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601d602090815260409182902080548351818402810184019094528084526060939283018282801561291c57602002820191906000526020600020905b815481526020019060010190808311612908575b50505050509050919050565b60185460ff161580156129c75750601860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f12d54d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c79190615500565b6129d057600080fd5b601880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b600061119f338484613b06565b601f54600114612a1957600080fd5b6000601f55612a27426133bc565b601954601a54601654601b5473ffffffffffffffffffffffffffffffffffffffff9384169390921691612b279184918691612a75916dffffffffffffffffffffffffffff91821691166154aa565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526dffffffffffffffffffffffffffff919091169073ffffffffffffffffffffffffffffffffffffffff8716906370a08231906024015b602060405180830381865afa158015612af4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b189190615354565b612b22919061539c565b6135ac565b601654601b54612bce9183918691612b68916dffffffffffffffffffffffffffff6e01000000000000000000000000000092839004811692909104166154aa565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526dffffffffffffffffffffffffffff919091169073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190602401612ad7565b50506001601f5550565b600454601654601b5460009283929091839182918291612c0b916dffffffffffffffffffffffffffff91821691166154aa565b601654601b54919250600091612c4b916dffffffffffffffffffffffffffff6e0100000000000000000000000000009182900481169291909104166154aa565b6040805160a081018252601b546dffffffffffffffffffffffffffff80821683526e010000000000000000000000000000918290048116602084015260165480821694840194909452920490911660608201526017546080820152909150612cb560048a8361458e565b6040810151612cd4906dffffffffffffffffffffffffffff851661539c565b97508060600151826dffffffffffffffffffffffffffff16612cf6919061539c565b9650806040015194508060600151935050505091939590929450565b6000601f54600114612d2357600080fd5b6000601f5560185460ff1615612d3857600080fd5b612d41426133bc565b601954600090612d679073ffffffffffffffffffffffffffffffffffffffff1685613f85565b601680549192508291600090612d8e9084906dffffffffffffffffffffffffffff166154aa565b82546101009290920a6dffffffffffffffffffffffffffff818102199093169183160217909155601654601b54919250612dcd91908316908316615409565b1115612dd857600080fd5b601954601a54612e069160049173ffffffffffffffffffffffffffffffffffffffff918216911684876141ce565b336000818152601d602090815260408083208054600181018255908452928290209092018490558151848152908101859052908101869052919350907f9971294258b76b481032b9c1f7f5594619d7cf40e29e224de9e71481bd0a4f8590606001611fa0565b42841015612e7957600080fd5b73ffffffffffffffffffffffffffffffffffffffff8716600090815260036020526040812080547faf911a3e4cbd3b82cb5d039b25137c70c086070eb32a25b54afe384bae11aa00917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9187612ef483615522565b9091555060408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001612f959291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa15801561301e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061309957508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6130a257600080fd5b6130ad8989896139f6565b505050505050505050565b6019546000908190819073ffffffffffffffffffffffffffffffffffffffff85811691161461310e57601b546dffffffffffffffffffffffffffff6e010000000000000000000000000000820481169116613138565b601b546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165b9150915060008511801561315c57506000826dffffffffffffffffffffffffffff16115b801561317857506000816dffffffffffffffffffffffffffff16115b61318157600080fd5b60006017548661319191906153af565b905060006131af6dffffffffffffffffffffffffffff8416836153af565b90506000826131c08661271061555a565b6dffffffffffffffffffffffffffff166131da9190615409565b90506131e681836153f5565b98975050505050505050565b601f5460011461320157600080fd5b6000601f5561320f426133bc565b6016546019546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526133b5926dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b79190615354565b6132c1919061539c565b601654601a546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526e0100000000000000000000000000009092046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015613356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337a9190615354565b613384919061539c565b601b546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166110896136e8565b6001601f55565b60185460ff16156133ca5750565b60045442036133d65750565b6040805160a081018252601b546dffffffffffffffffffffffffffff80821683526e01000000000000000000000000000091829004811660208401526016548082169484019490945292049091166060820152601754608082015261343d6004838361470e565b60408101516016805460608401516dffffffffffffffffffffffffffff9081166e010000000000000000000000000000027fffffffff000000000000000000000000000000000000000000000000000000009092169316929092179190911790558051602082015160006134af6136e8565b905060008163ffffffff1611801561350d5750601b546dffffffffffffffffffffffffffff848116911614158061350d5750601b546dffffffffffffffffffffffffffff8381166e0100000000000000000000000000009092041614155b1561355257601b5461354d906dffffffffffffffffffffffffffff8086169185821691818116916e0100000000000000000000000000009004168561372b565b6135a5565b601b80546dffffffffffffffffffffffffffff8481166e010000000000000000000000000000027fffffffff00000000000000000000000000000000000000000000000000000000909216908616171790555b5050505050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052915160009283928716916136739190615584565b6000604051808303816000865af19150503d80600081146136b0576040519150601f19603f3d011682016040523d82523d6000602084013e6136b5565b606091505b50915091508180156136df5750805115806136df5750808060200190518101906136df9190615500565b6135a557600080fd5b6000806136fa6401000000004261544a565b601b547c0100000000000000000000000000000000000000000000000000000000900463ffffffff16900392915050565b6016546dffffffffffffffffffffffffffff9061374a90821687615409565b1115801561378757506016546dffffffffffffffffffffffffffff90613784906e0100000000000000000000000000009004821686615409565b11155b6137bd576040517f350caebb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006137ce6401000000004261544a565b905060008263ffffffff161180156137f557506dffffffffffffffffffffffffffff841615155b801561381057506dffffffffffffffffffffffffffff831615155b1561390657601e60405180606001604052808363ffffffff1681526020018463ffffffff166138668861384289614a07565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690614a32565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160261388d6118cc565b0181526020018463ffffffff166138a7876138428a614a07565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026138ce611913565b019052815460018181018455600093845260209384902083516003909302019182559282015192810192909255604001516002909101555b601b805463ffffffff83167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff8981166e0100000000000000000000000000009081027fffffffff000000000000000000000000000000000000000000000000000000009095168c83161794909417918216831794859055604080519382169282169290921783529290930490911660208201527f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600081815260118301602052604081206006810154600582015473ffffffffffffffffffffffffffffffffffffffff9081169392911690829081613aa98887613bd5565b9050613aba81888a60000154614a4e565b6004840154919650935073ffffffffffffffffffffffffffffffffffffffff1633148015613af257506000851180613af25750600083115b613afb57600080fd5b505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054613b3790829061539c565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054613b74908290615409565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613a589085815260200190565b600182015460009073ffffffffffffffffffffffffffffffffffffffff838116911614613c055782600901613c0a565b826002015b9392505050565b6000828152600484016020526040812054819080613c2e57600080fd5b600085815260038701602090815260408083205460058a0190925290912054818610613c8c5760008281526006890160205260409020546e010000000000000000000000000000620f42408383038602040494506001955050613cdc565b6e010000000000000000000000000000620f42406dffffffffffffffffffffffffffff1684838b60010154030281613cc657613cc66153c6565b0481613cd457613cd46153c6565b049350600094505b505050935093915050565b600080601860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7b919061548d565b601c5473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090613e40578015613e3b576000613dca611d086dffffffffffffffffffffffffffff8088169089166153af565b90506000613dd783613e54565b905080821115613e38576000613ded828461539c565b600054613dfa91906153af565b9050600082613e0a8560056153af565b613e149190615409565b90506000613e2282846153f5565b90508015613e3457613e348782613ec4565b5050505b50505b613e4c565b8015613e4c576000601c555b505092915050565b60006003821115613eb55750806000613e6e6002836153f5565b613e79906001615409565b90505b81811015613eaf57905080600281613e9481866153f5565b613e9e9190615409565b613ea891906153f5565b9050613e7c565b50919050565b8115613ebf575060015b919050565b80600054613ed29190615409565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054613f05908290615409565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613f639085815260200190565b60405180910390a35050565b6000818310613f7e5781613c0a565b5090919050565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190602401602060405180830381865afa158015613ff4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140189190615354565b60408051336024820152306044820152606480820187905282518083039091018152608490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529051919250600091829173ffffffffffffffffffffffffffffffffffffffff8816916140b59190615584565b6000604051808303816000865af19150503d80600081146140f2576040519150601f19603f3d011682016040523d82523d6000602084013e6140f7565b606091505b50915091508180156141215750805115806141215750808060200190518101906141219190615500565b61412a57600080fd5b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152839073ffffffffffffffffffffffffffffffffffffffff8816906370a0823190602401602060405180830381865afa158015614196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ba9190615354565b6141c4919061539c565b9695505050505050565b600042816141de610e108361544a565b6141e8908361539c565b90506000816141f8866001615409565b61420490610e106153af565b61420e9190615409565b9050600061421c848361539c565b61422988620f42406153af565b61423391906153f5565b90506000811161424257600080fd5b600061424e8b8b613bd5565b9050614260818c601001548486614b40565b6040518061010001604052808c6010015481526020018681526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff168152602001600015158152508b60110160008d6010015481526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e08201518160060160146101000a81548160ff0219169083151502179055509050508a601001600081548092919061443190615522565b909155509b9a5050505050505050505050565b600081815260118301602052604081206006810154600582015473ffffffffffffffffffffffffffffffffffffffff918216939283929091839161448a91899116613bd5565b905061449b81878960000154614bb4565b6004840154919550935073ffffffffffffffffffffffffffffffffffffffff16331480156144c95750600084115b6144d257600080fd5b50509250925092565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205461450c90829061539c565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600160205260408120919091555461454190829061539c565b600090815560405182815273ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001613f63565b82546000610e1061459f818461544a565b6145a9908461539c565b6145b39190615409565b60028601805460098801805493945091925b8785116146a65760008581526002850160205260409020541515806145f95750600085815260028401602052604090205415155b1561469357600061460a878761539c565b90506000620f424061461c83866153af565b61462691906153f5565b90506000620f424061463884866153af565b61464291906153f5565b905061464f8a8383614c01565b5050600088815260028801602052604090205461466c908661539c565b600089815260028801602052604090205490955061468a908561539c565b93508798505050505b61469f610e1086615409565b94506145c5565b8786146130ad5760006146b9878a61539c565b90506000620f42406146cb83866153af565b6146d591906153f5565b90506000620f42406146e784866153af565b6146f191906153f5565b90506146fe8a8383614c01565b5050505050505050505050505050565b82546000610e1061471f818461544a565b614729908461539c565b6147339190615409565b905060028501600986015b8583116148cb5760008381526002830160205260409020541515806147725750600083815260028201602052604090205415155b156148b8576000614783858561539c565b8354909150600090620f42409061479b9084906153af565b6147a591906153f5565b8354909150600090620f4240906147bd9085906153af565b6147c791906153f5565b90506000806147d78a8585614c01565b915091506147e58782614d28565b6147ef8683614d28565b6147f98789614d66565b6148038689614d66565b7f793ee8b0d8020fc042a920607e3cbd37f5132c011786c8dd10a685f4414ed38188868c600001518d602001518e604001518f6060015188888c8c6040516148a79a99989796959493929190998a5260208a01989098526dffffffffffffffffffffffffffff96871660408a0152949095166060880152608087019290925260a086015260c085015260e08401919091526101008301526101208201526101400190565b60405180910390a187985050505050505b6148c4610e1084615409565b925061473e565b8584146149fc5760006148de858861539c565b8354909150600090620f4240906148f69084906153af565b61490091906153f5565b8354909150600090620f4240906149189085906153af565b61492291906153f5565b90506000806149328a8585614c01565b915091507f793ee8b0d8020fc042a920607e3cbd37f5132c011786c8dd10a685f4414ed3818b868c600001518d602001518e604001518f6060015188888c8c6040516149da9a99989796959493929190998a5260208a01989098526dffffffffffffffffffffffffffff96871660408a0152949095166060880152608087019290925260a086015260c085015260e08401919091526101008301526101208201526101400190565b60405180910390a16149ec8782614d28565b6149f68683614d28565b50505050505b505050919092555050565b60006111a36e0100000000000000000000000000006dffffffffffffffffffffffffffff84166155a0565b6000613c0a6dffffffffffffffffffffffffffff8316846155e7565b60008281526003840160205260408120548190838111614a6d57600080fd5b6000858152600487016020526040902054620f424081614a8d878561539c565b614a9791906153af565b614aa191906153f5565b600087815260058901602052604090205460018901549195506e01000000000000000000000000000091620f424091900383020404925080876000016000828254614aec919061539c565b90915550506000868152600488016020908152604080832083905560038a01825280832083905584835260028a0190915281208054839290614b2f90849061539c565b925050819055505050935093915050565b81846000016000828254614b549190615409565b9091555050600184015460008481526005860160209081526040808320939093556003870181528282208490556004870181528282208590558382526002870190529081208054849290614ba9908490615409565b909155505050505050565b600080614bc2858585613c11565b925090508015614be2576000848152600486016020526040812055614bf9565b600185015460008581526005870160205260409020555b935093915050565b6000806000856040015186600001516dffffffffffffffffffffffffffff16614c2a9190615409565b90506000866060015187602001516dffffffffffffffffffffffffffff16614c529190615409565b9050614c8d87600001516dffffffffffffffffffffffffffff1688602001516dffffffffffffffffffffffffffff1688888b60800151614da6565b604089015191955093508690614ca4908690615409565b614cae919061539c565b604088015260608701518590614cc5908590615409565b614ccf919061539c565b60608801526040870151614ce3908361539c565b6dffffffffffffffffffffffffffff1687526060870151614d04908261539c565b6dffffffffffffffffffffffffffff16602090970196909652509094909350915050565b815415614d62578154700f42400000000000000000000000000000820281614d5257614d526153c6565b6001840180549290910490910190555b5050565b6000818152600283016020526040812054835490918491614d8890849061539c565b90915550506001820154600091825260069092016020526040902055565b600080600285108015614db95750600284105b614ee0576002851015614e07576000614dd284866153af565b905080614de1886127106153af565b614deb9190615409565b614df5828a6153af565b614dff91906153f5565b925050614ee0565b6002841015614e51576000614e1c84876153af565b905080614e2b896127106153af565b614e359190615409565b614e3f82896153af565b614e4991906153f5565b915050614ee0565b6000612710614e6085886153af565b614e6a91906153f5565b614e749089615409565b90506000612710614e8586886153af565b614e8f91906153f5565b614e999089615409565b905080614ea6838a6153af565b614eb091906153f5565b614eba908361539c565b935081614ec7828b6153af565b614ed191906153f5565b614edb908261539c565b925050505b9550959350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114614f0c57600080fd5b50565b600080600080600060808688031215614f2757600080fd5b85359450602086013593506040860135614f4081614eea565b9250606086013567ffffffffffffffff80821115614f5d57600080fd5b818801915088601f830112614f7157600080fd5b813581811115614f8057600080fd5b896020828501011115614f9257600080fd5b9699959850939650602001949392505050565b60005b83811015614fc0578181015183820152602001614fa8565b50506000910152565b6020815260008251806020840152614fe8816040850160208701614fa5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000806040838503121561502d57600080fd5b823561503881614eea565b946020939093013593505050565b6000806040838503121561505957600080fd5b82359150602083013561506b81614eea565b809150509250929050565b60008060006060848603121561508b57600080fd5b833561509681614eea565b925060208401356150a681614eea565b929592945050506040919091013590565b6000602082840312156150c957600080fd5b5035919050565b600080604083850312156150e357600080fd5b50508035926020909101359150565b60006020828403121561510457600080fd5b8135613c0a81614eea565b60008060006060848603121561512457600080fd5b833561512f81614eea565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b828110156151e657815180518552868101518786015285810151868601526060808201519086015260808082015173ffffffffffffffffffffffffffffffffffffffff9081169187019190915260a08083015182169087015260c0808301519091169086015260e0908101511515908501526101009093019290850190600101615161565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561522b5783518352928401929184019160010161520f565b50909695505050505050565b600080600080600080600060e0888a03121561525257600080fd5b873561525d81614eea565b9650602088013561526d81614eea565b95506040880135945060608801359350608088013560ff8116811461529157600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156152c157600080fd5b82356152cc81614eea565b9150602083013561506b81614eea565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101949350505050565b60006020828403121561536657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156111a3576111a361536d565b80820281158282048414176111a3576111a361536d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615404576154046153c6565b500490565b808201808211156111a3576111a361536d565b6dffffffffffffffffffffffffffff8281168282160390808211156154435761544361536d565b5092915050565b600082615459576154596153c6565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561549f57600080fd5b8151613c0a81614eea565b6dffffffffffffffffffffffffffff8181168382160190808211156154435761544361536d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561551257600080fd5b81518015158114613c0a57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036155535761555361536d565b5060010190565b6dffffffffffffffffffffffffffff818116838216028082169190828114613e4c57613e4c61536d565b60008251615596818460208701614fa5565b9190910192915050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8281168282168181028316929181158285048214176155de576155de61536d565b50505092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff80841680615616576156166153c6565b9216919091049291505056

    Block Age Transaction Difficulty Gas Used Reward
    View All Blocks Produced

    Block Age Uncle Number Difficulty Gas Used Reward
    View All Uncles
    Loading...
    Loading
    Loading...
    Loading

    Validator Index Block Age Amount
    View All Withdrawals

    Transaction Hash Block Age Value Eth2 PubKey Valid
    View All Deposits
    [ Download: CSV Export  ]
    [ Download: CSV Export  ]

    A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.