ETH Price: $1,793.22 (+7.01%)

Contract

0xcA5824D2B23AbB066d1E23e421AE631Ac8823255

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Fulfill595064772025-04-23 13:38:131 hr ago1745415493IN
0xcA5824D2...Ac8823255
0 ETH0.000021940.04525
Fulfill595056082025-04-23 13:14:351 hr ago1745414075IN
0xcA5824D2...Ac8823255
0 ETH0.000032740.04525
Fulfill595002052025-04-23 10:09:274 hrs ago1745402967IN
0xcA5824D2...Ac8823255
0 ETH0.000032450.04525
Fulfill594918662025-04-23 4:33:1210 hrs ago1745382792IN
0xcA5824D2...Ac8823255
0 ETH0.00001610.04525
Fulfill594917762025-04-23 4:30:1110 hrs ago1745382611IN
0xcA5824D2...Ac8823255
0 ETH0.000018160.04525
Fulfill594914902025-04-23 4:18:4610 hrs ago1745381926IN
0xcA5824D2...Ac8823255
0 ETH0.000018080.04525
Fulfill594914722025-04-23 4:18:0410 hrs ago1745381884IN
0xcA5824D2...Ac8823255
0 ETH0.000036240.04525
Fulfill594877292025-04-23 1:58:5712 hrs ago1745373537IN
0xcA5824D2...Ac8823255
0 ETH0.000018120.04525
Fulfill594876362025-04-23 1:55:2512 hrs ago1745373325IN
0xcA5824D2...Ac8823255
0 ETH0.000037890.04525
Fulfill594872212025-04-23 1:38:3013 hrs ago1745372310IN
0xcA5824D2...Ac8823255
0 ETH0.000017040.04525
Fulfill594867972025-04-23 1:22:1113 hrs ago1745371331IN
0xcA5824D2...Ac8823255
0 ETH0.000022370.04525
Fulfill594863882025-04-23 1:09:1913 hrs ago1745370559IN
0xcA5824D2...Ac8823255
0 ETH0.000032720.04525
Fulfill594818162025-04-22 22:15:5916 hrs ago1745360159IN
0xcA5824D2...Ac8823255
0 ETH0.000028680.04525
Fulfill594817142025-04-22 22:11:4616 hrs ago1745359906IN
0xcA5824D2...Ac8823255
0 ETH0.000031340.04525
Fulfill594809682025-04-22 21:49:2916 hrs ago1745358569IN
0xcA5824D2...Ac8823255
0 ETH0.00002890.04525
Fulfill594806552025-04-22 21:39:3817 hrs ago1745357978IN
0xcA5824D2...Ac8823255
0 ETH0.000031540.04525
Fulfill594732262025-04-22 16:30:3522 hrs ago1745339435IN
0xcA5824D2...Ac8823255
0 ETH0.000018620.04525
Fulfill594731802025-04-22 16:28:5822 hrs ago1745339338IN
0xcA5824D2...Ac8823255
0 ETH0.000034920.04525
Fulfill594706972025-04-22 15:12:0723 hrs ago1745334727IN
0xcA5824D2...Ac8823255
0 ETH0.000038440.04525
Fulfill594701802025-04-22 14:59:2623 hrs ago1745333966IN
0xcA5824D2...Ac8823255
0 ETH0.000017540.04525
Fulfill594698972025-04-22 14:50:5823 hrs ago1745333458IN
0xcA5824D2...Ac8823255
0 ETH0.000025870.04525
Fulfill594698042025-04-22 14:48:2823 hrs ago1745333308IN
0xcA5824D2...Ac8823255
0 ETH0.000035570.04525
Fulfill594691502025-04-22 14:28:4324 hrs ago1745332123IN
0xcA5824D2...Ac8823255
0 ETH0.000031140.04525
Fulfill594662842025-04-22 12:56:3225 hrs ago1745326592IN
0xcA5824D2...Ac8823255
0 ETH0.000039610.04525
Fulfill594648132025-04-22 11:55:5826 hrs ago1745322958IN
0xcA5824D2...Ac8823255
0 ETH0.00003610.04525
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
137377262023-09-13 9:37:10588 days ago1694597830  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HSPriceAggregatorV1

Compiler Version
v0.8.10+commit.fc410830

ZkSolc Version
v1.3.8

Optimization Enabled:
Yes with Mode z

Other Settings:
default evmVersion, MIT license
File 1 of 12 : HSPriceAggregatorV1.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
import "../interfaces/CallbacksInterfaceV6_2.sol";
import "../interfaces/ChainlinkFeedInterfaceV5.sol";
import "../interfaces/StorageInterfaceV5.sol";

contract HSPriceAggregatorV1 {
  // Contracts (constant)
  StorageInterfaceV5 public immutable storageT;
  // Contracts (adjustable)
  PairsStorageInterfaceV6 public pairsStorage;
  // Params (constant)
  uint256 constant PRECISION = 1e10;
  uint256 constant MAX_ORACLE_NODES = 20;
  uint256 constant MIN_ANSWERS = 1;
  uint256 public minAnswers;
  uint256 public fixedPrice = 1e10;
  uint256 public expiredTime = 5 minutes;
  address public admin;
  mapping(bytes32 => uint256) public requestStatus;
  mapping(address => mapping(bytes32 => bool)) public requestFullfilled;
  bytes[] private requestPending;
  // Params (adjustable)

  // Custom data types
  enum OrderType {
    MARKET_OPEN,
    MARKET_CLOSE,
    LIMIT_OPEN,
    LIMIT_CLOSE
  }

  struct Order {
    uint256 pairIndex;
    OrderType orderType;
    uint256 linkFeePerNode;
    bool initiated;
  }

  struct PendingSl {
    address trader;
    uint256 pairIndex;
    uint256 index;
    uint256 openPrice;
    bool buy;
    uint256 newSl;
  }

  // State
  address[] public nodes;

  mapping(uint256 => Order) public orders;
  mapping(bytes32 => uint256) public orderIdByRequest;
  mapping(uint256 => uint256[]) public ordersAnswers;

  mapping(uint256 => PendingSl) public pendingSlOrders;

  // Events
  event PairsStorageUpdated(address value);
  event LinkPriceFeedUpdated(address value);
  event MinAnswersUpdated(uint256 value);

  event NodeAdded(uint256 index, address value);
  event NodeReplaced(uint256 index, address oldNode, address newNode);
  event NodeRemoved(uint256 index, address oldNode);

  event PriceRequested(
    uint256 indexed orderId,
    bytes32 indexed requestId,
    uint256 indexed pairIndex,
    OrderType orderType,
    uint256 nodesCount,
    uint256 linkFeePerNode
  );

  event PriceReceived(
    bytes32 request,
    uint256 indexed orderId,
    address indexed node,
    uint256 indexed pairIndex,
    uint256 price,
    uint256 referencePrice,
    uint256 linkFee
  );

  constructor(
    StorageInterfaceV5 _storageT,
    PairsStorageInterfaceV6 _pairsStorage,
    uint256 _minAnswers,
    address[] memory _nodes
  ) {
    require(
      address(_storageT) != address(0) && address(_pairsStorage) != address(0) && _minAnswers >= MIN_ANSWERS,
      "WRONG_PARAMS"
    );
    storageT = _storageT;
    pairsStorage = _pairsStorage;
    minAnswers = _minAnswers;
    nodes = _nodes;
    admin = msg.sender;
  }

  // Modifiers
  modifier onlyAdmin() {
    require(msg.sender == admin, "ADMIN_ONLY");
    _;
  }
  modifier onlyGov() {
    require(msg.sender == storageT.gov(), "GOV_ONLY");
    _;
  }
  modifier onlyTrading() {
    require(msg.sender == storageT.trading(), "TRADING_ONLY");
    _;
  }
  modifier onlyCallbacks() {
    require(msg.sender == storageT.callbacks(), "CALLBACKS_ONLY");
    _;
  }

  modifier inWhitelist() {
    bool exists = false;
    for (uint256 i = 0; i < nodes.length; i++) {
      if (nodes[i] == msg.sender) {
        exists = true;
        break;
      }
    }
    require(exists, "NOT_WHITELIST");
    _;
  }

  modifier recordFulfillment(bytes32 requestId) {
    require(requestStatus[requestId] != 0, "REQUEST_NOT_EXIST");
    require(requestStatus[requestId] != 1, "REQUEST_FINISHED");
    require(block.timestamp < requestStatus[requestId], "REQUEST_EXPIRED");
    _;
  }

  // Manage contracts
  function updatePairsStorage(PairsStorageInterfaceV6 value) external onlyAdmin {
    require(address(value) != address(0), "VALUE_0");

    pairsStorage = value;

    emit PairsStorageUpdated(address(value));
  }

  // Update fixed price
  function updateFixedPrice(uint256 _fixedPrice) external onlyAdmin {
    fixedPrice = _fixedPrice;
  }

  // Manage params
  function updateMinAnswers(uint256 value) external onlyAdmin {
    require(value >= MIN_ANSWERS, "MIN_ANSWERS");
    minAnswers = value;
    emit MinAnswersUpdated(value);
  }

  // Manage nodes
  function addNode(address a) external onlyAdmin {
    require(a != address(0), "VALUE_0");
    require(nodes.length < MAX_ORACLE_NODES, "MAX_ORACLE_NODES");

    for (uint256 i = 0; i < nodes.length; i++) {
      require(nodes[i] != a, "ALREADY_LISTED");
    }

    nodes.push(a);

    emit NodeAdded(nodes.length - 1, a);
  }

  function replaceNode(uint256 index, address a) external onlyAdmin {
    require(index < nodes.length, "WRONG_INDEX");
    require(a != address(0), "VALUE_0");

    emit NodeReplaced(index, nodes[index], a);

    nodes[index] = a;
  }

  function removeNode(uint256 index) external onlyAdmin {
    require(index < nodes.length, "WRONG_INDEX");

    emit NodeRemoved(index, nodes[index]);

    nodes[index] = nodes[nodes.length - 1];
    nodes.pop();
  }

  function clearNode() external onlyAdmin {
    delete nodes;
  }

  function updateExpiredTime(uint256 _expiredTime) external onlyAdmin {
    expiredTime = _expiredTime;
  }

  function tokenPriceUsdc() public view returns (uint256 price) {
    return fixedPrice;
  }

  // On-demand price request to oracles network
  function getPrice(uint256 pairIndex, OrderType orderType, uint256) external onlyTrading returns (uint256) {
    (, , bytes32 job, uint256 orderId) = pairsStorage.pairJob(pairIndex);

    if (nodes.length == 0) {
      emit PriceRequested(orderId, job, pairIndex, orderType, nodes.length, 0);
      return orderId;
    }

    orders[orderId] = Order(pairIndex, orderType, 0, true);
    bytes32 requestId = keccak256(abi.encode(orderId, pairIndex, block.timestamp));
    orderIdByRequest[requestId] = orderId;
    requestStatus[requestId] = block.timestamp + expiredTime;
    //requestPending.push(abi.encode(requestId, pairIndex));
    emit PriceRequested(orderId, requestId, pairIndex, orderType, nodes.length, 0);
    return orderId;
  }

  function emptyNodeFulFill(uint256 pairIndex, uint256 orderId, OrderType orderType) external onlyTrading {
    if (nodes.length != 0) {
      return;
    }
    PairsStorageInterfaceV6.Feed memory f = pairsStorage.pairFeed(pairIndex);

    uint256 feedPrice;
    (, int256 feedPrice1, , , ) = ChainlinkFeedInterfaceV5(f.feed1).latestRoundData();
    if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.DEFAULT) {
      feedPrice = uint256((feedPrice1 * int256(PRECISION)) / 1e8);
    } else if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.INVERT) {
      feedPrice = uint256((int256(PRECISION) * 1e8) / feedPrice1);
    } else {
      (, int256 feedPrice2, , , ) = ChainlinkFeedInterfaceV5(f.feed2).latestRoundData();
      feedPrice = uint256((feedPrice1 * int256(PRECISION)) / feedPrice2);
    }

    CallbacksInterfaceV6_2.AggregatorAnswer memory a;

    a.orderId = orderId;
    a.price = feedPrice;
    a.spreadP = pairsStorage.pairSpreadP(pairIndex);

    CallbacksInterfaceV6_2 c = CallbacksInterfaceV6_2(storageT.callbacks());

    if (orderType == OrderType.MARKET_OPEN) {
      c.openTradeMarketCallback(a);
    } else if (orderType == OrderType.MARKET_CLOSE) {
      c.closeTradeMarketCallback(a);
    } else if (orderType == OrderType.LIMIT_OPEN) {
      c.executeNftOpenOrderCallback(a);
    } else {
      c.executeNftCloseOrderCallback(a);
    }
    emit PriceReceived(bytes32(block.timestamp), orderId, msg.sender, pairIndex, feedPrice, feedPrice, 0);
  }

  // Fulfill on-demand price requests
  function fulfill(bytes32 requestId, uint256 price) external inWhitelist recordFulfillment(requestId) {
    uint256 orderId = orderIdByRequest[requestId];
    Order memory r = orders[orderId];
    if (!r.initiated) {
      return;
    }
    if (requestFullfilled[msg.sender][requestId]) {
      return;
    }

    requestFullfilled[msg.sender][requestId] = true;

    //removePendingRequest(requestId, r.pairIndex);

    uint256[] storage answers = ordersAnswers[orderId];
    uint256 feedPrice;

    PairsStorageInterfaceV6.Feed memory f = pairsStorage.pairFeed(r.pairIndex);
    (, int256 feedPrice1, , , ) = ChainlinkFeedInterfaceV5(f.feed1).latestRoundData();

    if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.DEFAULT) {
      feedPrice = uint256((feedPrice1 * int256(PRECISION)) / 1e8);
    } else if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.INVERT) {
      feedPrice = uint256((int256(PRECISION) * 1e8) / feedPrice1);
    } else if (f.feedCalculation == PairsStorageInterfaceV6.FeedCalculation.UNDEFINED) {
      //todo only testnet UNDEFINED
      feedPrice = price;
    } else {
      (, int256 feedPrice2, , , ) = ChainlinkFeedInterfaceV5(f.feed2).latestRoundData();
      feedPrice = uint256((feedPrice1 * int256(PRECISION)) / feedPrice2);
    }

    if (
      price == 0 ||
      ((price >= feedPrice ? price - feedPrice : feedPrice - price) * PRECISION * 100) / feedPrice <= f.maxDeviationP
    ) {
      answers.push(price);

      if (answers.length == minAnswers) {
        requestStatus[requestId] = 1;
        CallbacksInterfaceV6_2.AggregatorAnswer memory a;

        a.orderId = orderId;
        a.price = median(answers);
        a.spreadP = pairsStorage.pairSpreadP(r.pairIndex);

        CallbacksInterfaceV6_2 c = CallbacksInterfaceV6_2(storageT.callbacks());

        if (r.orderType == OrderType.MARKET_OPEN) {
          c.openTradeMarketCallback(a);
        } else if (r.orderType == OrderType.MARKET_CLOSE) {
          c.closeTradeMarketCallback(a);
        } else if (r.orderType == OrderType.LIMIT_OPEN) {
          c.executeNftOpenOrderCallback(a);
        } else {
          c.executeNftCloseOrderCallback(a);
        }
        delete orderIdByRequest[requestId];
        delete orders[orderId];
        delete ordersAnswers[orderId];
      }

      emit PriceReceived(requestId, orderId, msg.sender, r.pairIndex, price, feedPrice, r.linkFeePerNode);
    }
  }

  // Calculate LINK fee for each request
  function linkFee(uint256, uint256) public view returns (uint256) {
    return 0;
  }

  function getPendingRequests() external view inWhitelist returns (bytes[] memory) {
    return requestPending;
  }

  function removePendingRequest(bytes32 requestId, uint256 pairIndex) private {
    uint256 pendingCounts = requestPending.length;
    bytes memory encoded = abi.encode(requestId, pairIndex);
    if (pendingCounts > 0) {
      for (uint256 i = 0; i < pendingCounts; i++) {
        if (keccak256(requestPending[i]) == keccak256(encoded)) {
          requestPending[i] = requestPending[pendingCounts - 1];
          break;
        }
      }
    }
  }

  // Median function
  function swap(uint256[] memory array, uint256 i, uint256 j) private pure {
    (array[i], array[j]) = (array[j], array[i]);
  }

  function sort(uint256[] memory array, uint256 begin, uint256 end) private pure {
    if (begin >= end) {
      return;
    }

    uint256 j = begin;
    uint256 pivot = array[j];

    for (uint256 i = begin + 1; i < end; ++i) {
      if (array[i] < pivot) {
        swap(array, i, ++j);
      }
    }

    swap(array, begin, j);
    sort(array, begin, j);
    sort(array, j + 1, end);
  }

  function median(uint256[] memory array) private pure returns (uint256) {
    sort(array, 0, array.length);

    return
      array.length % 2 == 0 ? (array[array.length / 2 - 1] + array[array.length / 2]) / 2 : array[array.length / 2];
  }

  // Storage v5 compatibility
  function openFeeP(uint256 pairIndex) external view returns (uint256) {
    return pairsStorage.pairOpenFeeP(pairIndex);
  }
}

File 2 of 12 : AggregatorInterfaceV6.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;
import "./NftRewardsInterfaceV6.sol";
import "./PairsStorageInterfaceV6.sol";

interface AggregatorInterfaceV6 {
  enum OrderType {
    MARKET_OPEN,
    MARKET_CLOSE,
    LIMIT_OPEN,
    LIMIT_CLOSE,
    UPDATE_SL
  }

  function pairsStorage() external view returns (PairsStorageInterfaceV6);

  function nftRewards() external view returns (NftRewardsInterfaceV6);

  function getPrice(uint256, OrderType, uint256) external returns (uint256);

  function tokenPriceUsdc() external view returns (uint256);

  function linkFee(uint256, uint256) external view returns (uint256);

  function tokenUsdcReservesLp() external view returns (uint256, uint256);

  function pendingSlOrders(uint256) external view returns (PendingSl memory);

  function storePendingSlOrder(uint256 orderId, PendingSl calldata p) external;

  function unregisterPendingSlOrder(uint256 orderId) external;

  function emptyNodeFulFill(uint256, uint256, OrderType) external;

  struct PendingSl {
    address trader;
    uint256 pairIndex;
    uint256 index;
    uint256 openPrice;
    bool buy;
    uint256 newSl;
  }
}

File 3 of 12 : CallbacksInterfaceV6_2.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface CallbacksInterfaceV6_2 {
  struct AggregatorAnswer {
    uint orderId;
    uint price;
    uint spreadP;
  }

  function openTradeMarketCallback(AggregatorAnswer memory) external;

  function closeTradeMarketCallback(AggregatorAnswer memory) external;

  function executeNftOpenOrderCallback(AggregatorAnswer memory) external;

  function executeNftCloseOrderCallback(AggregatorAnswer memory) external;

  function updateSlCallback(AggregatorAnswer memory) external;
}

File 4 of 12 : ChainlinkFeedInterfaceV5.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface ChainlinkFeedInterfaceV5 {
  function latestRoundData() external view returns (uint80, int, uint, uint, uint80);
}

File 5 of 12 : IHSAgency.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface IHSAgency {
  enum Level {
    LEVEL0,
    LEVEL1,
    LEVEL2,
    LEVEL3
  }
  struct DirectReferrer {
    address referrer;
    Level level;
  }

  function rootReferrer(address) external view returns (address);

  function rootStatus(address) external view returns (bool);

  function getDirectReferrer(address) external view returns (DirectReferrer memory);

  function getDistributionP(address) external view returns (uint256 feeP1, uint256 feeP2);

  function calulateFee(uint256 _vaultOpenFeeP, address _user) external view returns (uint256);

  function distributeReward(uint256 _fullFee, address _user) external returns (uint256);
}

File 6 of 12 : NftInterfaceV5.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface NftInterfaceV5 {
  function balanceOf(address) external view returns (uint);

  function ownerOf(uint) external view returns (address);

  function transferFrom(address, address, uint) external;

  function tokenOfOwnerByIndex(address, uint) external view returns (uint);
}

File 7 of 12 : NftRewardsInterfaceV6.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;
import "./StorageInterfaceV5.sol";

interface NftRewardsInterfaceV6 {
  struct TriggeredLimitId {
    address trader;
    uint pairIndex;
    uint index;
    StorageInterfaceV5.LimitOrder order;
  }
  enum OpenLimitOrderType {
    LEGACY,
    REVERSAL,
    MOMENTUM
  }

  function storeFirstToTrigger(TriggeredLimitId calldata, address) external;

  function storeTriggerSameBlock(TriggeredLimitId calldata, address) external;

  function unregisterTrigger(TriggeredLimitId calldata) external;

  function distributeNftReward(TriggeredLimitId calldata, uint) external;

  function openLimitOrderTypes(address, uint, uint) external view returns (OpenLimitOrderType);

  function setOpenLimitOrderType(address, uint, uint, OpenLimitOrderType) external;

  function triggered(TriggeredLimitId calldata) external view returns (bool);

  function timedOut(TriggeredLimitId calldata) external view returns (bool);
}

File 8 of 12 : PairsStorageInterfaceV6.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface PairsStorageInterfaceV6 {
  enum FeedCalculation {
    DEFAULT,
    INVERT,
    COMBINE,
    UNDEFINED
  } // FEED 1, 1 / (FEED 1), (FEED 1)/(FEED 2)
  struct Feed {
    address feed1;
    address feed2;
    FeedCalculation feedCalculation;
    uint256 maxDeviationP;
  } // PRECISION (%)

  function incrementCurrentOrderId() external returns (uint256);

  function updateGroupCollateral(uint256, uint256, bool, bool) external;

  function pairJob(uint256) external returns (string memory, string memory, bytes32, uint256);

  function pairFeed(uint256) external view returns (Feed memory);

  function pairSpreadP(uint256) external view returns (uint256);

  function pairMinLeverage(uint256) external view returns (uint256);

  function pairMaxLeverage(uint256) external view returns (uint256);

  function groupMaxCollateral(uint256) external view returns (uint256);

  function groupCollateral(uint256, bool) external view returns (uint256);

  function guaranteedSlEnabled(uint256) external view returns (bool);

  function pairOpenFeeP(uint256) external view returns (uint256);

  function pairCloseFeeP(uint256) external view returns (uint256);

  function pairOracleFeeP(uint256) external view returns (uint256);

  function pairNftLimitOrderFeeP(uint256) external view returns (uint256);

  function pairReferralFeeP(uint256) external view returns (uint256);

  function pairMinLevPosUsdc(uint256) external view returns (uint256);
}

File 9 of 12 : StorageInterfaceV5.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

import "./UniswapRouterInterfaceV5.sol";
import "./TokenInterfaceV5.sol";
import "./NftInterfaceV5.sol";
import "./VaultInterfaceV5.sol";
import "./PairsStorageInterfaceV6.sol";
import "./AggregatorInterfaceV6.sol";
import "../interfaces/IHSAgency.sol";

interface StorageInterfaceV5 {
  enum LimitOrder {
    TP,
    SL,
    LIQ,
    OPEN
  }
  struct Trader {
    uint256 leverageUnlocked;
    address referral;
    uint256 referralRewardsTotal; // 1e18
  }
  struct Trade {
    address trader;
    uint256 pairIndex;
    uint256 index;
    uint256 initialPosToken; // 1e18
    uint256 positionSizeUsdc; // 1e18
    uint256 openPrice; // PRECISION
    bool buy;
    uint256 leverage;
    uint256 tp; // PRECISION
    uint256 sl; // PRECISION
  }
  struct TradeInfo {
    uint256 tokenId;
    uint256 tokenPriceUsdc; // PRECISION
    uint256 openInterestUsdc; // 1e18
    uint256 tpLastUpdated;
    uint256 slLastUpdated;
    bool beingMarketClosed;
  }
  struct OrderInfo {
    uint256 pairIndex;
    uint256 positionSize;
    bool buy;
    uint256 leverage;
    uint256 tp;
    uint256 sl;
    uint256 minPrice;
    uint256 maxPrice;
  }
  struct OpenLimitOrder {
    OrderInfo orderInfo;
    address trader;
    uint256 index;
    uint256 spreadReductionP;
    uint256 block;
  }
  struct PendingMarketOrder {
    Trade trade;
    uint256 block;
    uint256 wantedPrice; // PRECISION
    uint256 slippageP; // PRECISION (%)
    uint256 spreadReductionP;
    uint256 tokenId; // index in supportedTokens
  }
  struct PendingNftOrder {
    address nftHolder;
    uint256 nftId;
    address trader;
    uint256 pairIndex;
    uint256 index;
    LimitOrder orderType;
  }

  function PRECISION() external pure returns (uint256);

  function gov() external view returns (address);

  function dev() external view returns (address);

  function usdc() external view returns (TokenInterfaceV5);

  function token() external view returns (TokenInterfaceV5);

  function linkErc677() external view returns (TokenInterfaceV5);

  function tokenUsdcRouter() external view returns (UniswapRouterInterfaceV5);

  function priceAggregator() external view returns (AggregatorInterfaceV6);

  function vault() external view returns (VaultInterfaceV5);

  function trading() external view returns (address);

  function callbacks() external view returns (address);

  function handleTokens(address, uint256, bool) external;

  function transferUsdc(address, address, uint256) external;

  function transferLinkToAggregator(address, uint256, uint256) external;

  function unregisterTrade(address, uint256, uint256) external;

  function unregisterPendingMarketOrder(uint256, bool) external;

  function unregisterOpenLimitOrder(address, uint256, uint256) external;

  function hasOpenLimitOrder(address, uint256, uint256) external view returns (bool);

  function storePendingMarketOrder(PendingMarketOrder memory, uint256, bool) external;

  function openTrades(address, uint256, uint256) external view returns (Trade memory);

  function openTradesInfo(address, uint256, uint256) external view returns (TradeInfo memory);

  function updateSl(address, uint256, uint256, uint256) external;

  function updateTp(address, uint256, uint256, uint256) external;

  function getOpenLimitOrder(address, uint256, uint256) external view returns (OpenLimitOrder memory);

  function spreadReductionsP(uint256) external view returns (uint256);

  function storeOpenLimitOrder(OpenLimitOrder memory) external;

  function reqID_pendingMarketOrder(uint256) external view returns (PendingMarketOrder memory);

  function storePendingNftOrder(PendingNftOrder memory, uint256) external;

  function updateOpenLimitOrder(OpenLimitOrder calldata) external;

  function firstEmptyTradeIndex(address, uint256) external view returns (uint256);

  function firstEmptyOpenLimitIndex(address, uint256) external view returns (uint256);

  function increaseNftRewards(uint256, uint256) external;

  function nftSuccessTimelock() external view returns (uint256);

  function currentPercentProfit(uint256, uint256, bool, uint256) external view returns (int256);

  function reqID_pendingNftOrder(uint256) external view returns (PendingNftOrder memory);

  function setNftLastSuccess(uint256) external;

  function updateTrade(Trade memory) external;

  function nftLastSuccess(uint256) external view returns (uint256);

  function unregisterPendingNftOrder(uint256) external;

  function handleGoldGovFees(uint256, uint256, uint256, address, bool) external returns (uint256);

  function chargeGovFees(uint256, bool) external;

  function distributeLpRewards(uint256) external;

  function getReferral(address) external view returns (address);

  function increaseReferralRewards(address, uint256) external;

  function storeTrade(Trade memory, TradeInfo memory) external;

  function setLeverageUnlocked(address, uint256) external;

  function getLeverageUnlocked(address) external view returns (uint256);

  function openLimitOrdersCount(address, uint256) external view returns (uint256);

  function maxOpenLimitOrdersPerPair() external view returns (uint256);

  function openTradesCount(address, uint256) external view returns (uint256);

  function pendingMarketOpenCount(address, uint256) external view returns (uint256);

  function pendingMarketCloseCount(address, uint256) external view returns (uint256);

  function maxTradesPerPair() external view returns (uint256);

  function tradesPerBlock(uint256) external view returns (uint256);

  function pendingOrderIdsCount(address) external view returns (uint256);

  function maxPendingMarketOrders() external view returns (uint256);

  function openInterestUsdc(uint256, uint256) external view returns (uint256);

  function getPendingOrderIds(address) external view returns (uint256[] memory);

  function traders(address) external view returns (Trader memory);

  function nfts(uint256) external view returns (NftInterfaceV5);

  function hsAgency() external view returns (IHSAgency);
}

File 10 of 12 : TokenInterfaceV5.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface TokenInterfaceV5 {
  function burn(address, uint256) external;

  function mint(address, uint256) external;

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

  function transferFrom(address, address, uint256) external returns (bool);

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

  function hasRole(bytes32, address) external view returns (bool);

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

  function allowance(address, address) external view returns (uint256);
}

File 11 of 12 : UniswapRouterInterfaceV5.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface UniswapRouterInterfaceV5 {
  function swapExactTokensForTokens(
    uint amountIn,
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
  ) external returns (uint[] memory amounts);

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

File 12 of 12 : VaultInterfaceV5.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface VaultInterfaceV5 {
  function sendUsdcToTrader(address, uint) external;

  function receiveUsdcFromTrader(address, uint, uint) external;

  function currentBalanceUsdc() external view returns (uint);

  function distributeRewardUsdc(uint) external;

  function distributeReward(uint assets) external;

  function sendAssets(uint assets, address receiver) external;

  function receiveAssets(uint assets, address user) external;
}

Settings
{
  "compilerPath": "",
  "experimental": {},
  "optimizer": {
    "enabled": true,
    "mode": "z"
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"contract StorageInterfaceV5","name":"_storageT","type":"address"},{"internalType":"contract PairsStorageInterfaceV6","name":"_pairsStorage","type":"address"},{"internalType":"uint256","name":"_minAnswers","type":"uint256"},{"internalType":"address[]","name":"_nodes","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"LinkPriceFeedUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"MinAnswersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"NodeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"oldNode","type":"address"}],"name":"NodeRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"oldNode","type":"address"},{"indexed":false,"internalType":"address","name":"newNode","type":"address"}],"name":"NodeReplaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"PairsStorageUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"request","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":true,"internalType":"address","name":"node","type":"address"},{"indexed":true,"internalType":"uint256","name":"pairIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referencePrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"linkFee","type":"uint256"}],"name":"PriceReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"pairIndex","type":"uint256"},{"indexed":false,"internalType":"enum HSPriceAggregatorV1.OrderType","name":"orderType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"nodesCount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"linkFeePerNode","type":"uint256"}],"name":"PriceRequested","type":"event"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"addNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"enum HSPriceAggregatorV1.OrderType","name":"orderType","type":"uint8"}],"name":"emptyNodeFulFill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expiredTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fixedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPendingRequests","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"enum HSPriceAggregatorV1.OrderType","name":"orderType","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"linkFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minAnswers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"nodes","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"}],"name":"openFeeP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"orderIdByRequest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orders","outputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"enum HSPriceAggregatorV1.OrderType","name":"orderType","type":"uint8"},{"internalType":"uint256","name":"linkFeePerNode","type":"uint256"},{"internalType":"bool","name":"initiated","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"ordersAnswers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairsStorage","outputs":[{"internalType":"contract PairsStorageInterfaceV6","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingSlOrders","outputs":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"newSl","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removeNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"a","type":"address"}],"name":"replaceNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"requestFullfilled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"requestStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"storageT","outputs":[{"internalType":"contract StorageInterfaceV5","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenPriceUsdc","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_expiredTime","type":"uint256"}],"name":"updateExpiredTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fixedPrice","type":"uint256"}],"name":"updateFixedPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"updateMinAnswers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract PairsStorageInterfaceV6","name":"value","type":"address"}],"name":"updatePairsStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}]

9c4d535b0000000000000000000000000000000000000000000000000000000000000000010004af438b45061e9e207cfbd4f9eb2aca8ff9f69d6557f5994f3ff353db8f000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001200000000000000000000000007b4872e2096ec9410b6b8c8b7d039589e6ee8022000000000000000000000000d3281cf19a7e49e76d9031faa4259f42ee13fd81000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000e5601264e9e00b7509fdf565102e042bedff254c000000000000000000000000b8e96e6ee3cd36e417ca671f6be3112b9cf451c3000000000000000000000000bbfb41267755323136c5773afd923d543f047f1d000000000000000000000000eb9891f7dac08d1a82a0b95b0d324b4616d8a113

Deployed Bytecode

0x0004000000000002000700000000000200000000030100190000006003300270000004520430019700030000004103550002000000010355000004520030019d000100000000001f00000001012001900000005e0000c13d0000008001000039000000400010043f0000000001000031000000040110008c000002100000413d0000000201000367000000000101043b000000e001100270000004590210009c000000c20000613d0000045a0210009c000000cc0000613d0000045b0210009c000000b60000613d0000045c0210009c000000d80000613d0000045d0210009c000000e40000613d0000045e0210009c000000fe0000613d0000045f0210009c000001080000613d000004600210009c000001120000613d000004610210009c0000011c0000613d000004620210009c000001260000613d000004630210009c000001300000613d000004640210009c0000013f0000613d000004650210009c0000014b0000613d000004660210009c000001570000613d000004670210009c000001630000613d000004680210009c0000016d0000613d000004690210009c000001830000613d0000046a0210009c0000018d0000613d0000046b0210009c000000b60000613d0000046c0210009c000001990000613d0000046d0210009c000001a30000613d0000046e0210009c000001af0000613d0000046f0210009c000001bb0000613d000004700210009c000001cd0000613d000004710210009c000001d70000613d000004720210009c000001e40000613d000004730210009c000001f00000613d000004740110009c000002100000c13d0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000047501000041000000000010043900000000010004120000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045401100197000000800010043f000000800100003900000020020000390000000003000019114202c10000040f000000a001000039000000400010043f0000000001000416000000000110004c000002100000c13d0000000001000031000700000001001d114202d40000040f00000007080000290000001f0280018f00000002030003670000000504800272000000740000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b0000006c0000413d000000000520004c000000830000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000045302000041000000800380008c000000000300001900000000030240190000045304800197000000000540004c000000000200a019000004530440009c000000000203c019000000000220004c000002100000c13d0000000006010433000004540260009c000002100000213d00000020021000390000000007020433000004540270009c000002100000213d0000004002100039000000000902043300000060021000390000000002020433000004550320009c000002100000213d000000000a81001900000000081200190000001f0180003900000453020000410000000003a1004b0000000003000019000000000302801900000453011001970000045304a00197000000000541004b0000000002008019000000000141013f000004530110009c00000000010300190000000001026019000000000110004c000002100000c13d0000000002080433000004560120009c000001fa0000413d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000000201000039000000000201041a000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114206320000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114203830000040f0000045402100197000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f000000000100041a0000045402100197000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114203950000040f000000000701001900000000080200190000000009030019000000000a040019000000000b050019000000000c060019000000400100043d000700000001001d00000000020700190000000003080019000000000409001900000000050a001900000000060b001900000000070c0019114203aa0000040f0000000703000029000000000231004900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203bb0000040f114204d70000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203d10000040f11420c0c0000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f1142068f0000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114205130000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114206a50000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f11420ff90000040f0000000002010019000000400100043d000700000001001d114203e70000040f0000000703000029000000000231004900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000000301000039000000000201041a000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203d10000040f1142040d0000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114204250000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203bb0000040f114205530000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f1142042d0000040f0000000005010019000000000602001900000000070300190000000008040019000000400100043d000700000001001d00000000020500190000000003060019000000000407001900000000050800191142043e0000040f0000000703000029000000000231004900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203d10000040f000000400100043d000000000001043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000000101000039000000000201041a000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114204520000040f1142089d0000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f1142046c0000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114210e00000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114204740000040f000700000002001d1142048c0000040f00000007020000291142038f0000040f000000000101041a000000ff011001900000000002000019000000010200c039000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d00000000010000311142035b0000040f114205210000040f000000400100043d00000000020000190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114203480000040f0000000401000039000000000101041a0000045402100197000000400100043d000000000021043500000020020000390000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114204940000040f114206c40000040f000000400300043d0000000000130435000000200200003900000000010300190000000003000019114202c10000040f0000000001000416000000000110004c000002100000c13d0000000001000031114204ae0000040f114205cd0000040f000000400100043d00000000020000190000000003000019114202c10000040f00000005012002100000002001100039000300000001001d000700000006001d000600000007001d000500000009001d000400000008001d00020000000a001d000100000002001d114202d40000040f0000000409000029000000050300002900000006020000290000000706000029000000000401001900000001010000290000000000140435000000030100002900000000019100190000000205000029000000000551004b000002130000a13d00000000010000190000000002000019114202cb0000040f00000000070400190000002009900039000000000519004b0000021d0000813d0000000008090433000004540580009c000002100000213d00000020077000390000000000870435000002140000013d0000000001060019114202e90000040f000000800100043d000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000001000100003900000080020000390000045703000041114202c10000040f0002000000000002000200000006001d000100000005001d0000045205000041000004520630009c00000000030580190000004003300210000004520640009c00000000040580190000006004400210000000000334019f000004520410009c0000000001058019000000c001100210000000000113019f114211380000040f00000001090000290000000003010019000000600330027000000452033001970000000205000029000000000453004b00000000050340190000001f0450018f00000005055002720000024d0000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002450000413d000000010220018f000000000640004c0000025d0000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000001020019000000000001042d0002000000000002000200000006001d000100000005001d0000045205000041000004520630009c00000000030580190000004003300210000004520640009c00000000040580190000006004400210000000000334019f000004520410009c0000000001058019000000c001100210000000000113019f1142113d0000040f00000001090000290000000003010019000000600330027000000452033001970000000205000029000000000453004b00000000050340190000001f0450018f0000000505500272000002840000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000027c0000413d000000010220018f000000000640004c000002940000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000001020019000000000001042d0000045203000041000004520410009c00000000010380190000004001100210000004520420009c00000000020380190000006002200210000000000112019f0000000002000414000004520420009c0000000002038019000000c002200210000000000112019f00000476011001c700008010020000391142113d0000040f0000000102200190000002ac0000613d000000000101043b000000000001042d00000000010000190000000002000019114202cb0000040f000000000301001900000452010000410000000004000414000004520540009c0000000001044019000000c00110021000000060022002100000000001120019000004770110004100000000020300191142113d0000040f0000000102200190000002be0000613d000000000101043b000000000001042d00000000010000190000000002000019114202cb0000040f0000045204000041000004520510009c000000000104801900000040011002100000000001310019000004520320009c000000000204801900000060022002100000000001210019000011430001042e0000045203000041000004520420009c0000000002038019000004520410009c000000000103801900000040011002100000006002200210000000000112019f00001144000104300000001f01100039000000200200008a000000000221016f000000400100043d0000000002210019000000000312004b00000000030000190000000103004039000004550420009c000002e20000213d0000000103300190000002e20000c13d000000400020043f000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000400000000000200000478060000410000000205000039000000000065041b0000012c060000390000000305000039000000000065041b00000454022001970000045405100198000003330000613d000000000520004c000003330000613d000000000530004c000003330000613d000000800010043f000000000100041a0000047b01100197000000000121019f000000000010041b0000000101000039000000000031041b00000000020404330000047c0120009c000003410000813d000300000004001d0000000804000039000000000304041a000000000024041b000000000132004b000400000002001d000003180000813d000000000040043500000020020000390000000001000019000200000004001d000100000003001d114202980000040f00000002040000290000000402000029000000000221001900000001030000290000000001310019000000000312004b000003180000813d000000000002041b0000000102200039000003130000013d000000000040043500000020020000390000000001000019114202980000040f000000040600002900000000020000190000000305000029000000000362004b0000032b0000813d000000000301041a0000047b03300197000000200550003900000000040504330000045404400197000000000343019f000000000031041b000000010220003900000001011000390000031f0000013d000000000100041100000454011001970000000402000039000000000302041a0000047b03300197000000000113019f000000000012041b000000000001042d000000400100043d00000044021000390000047903000041000000000032043500000024021000390000000c0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000040110008a000000010200008a0000045303000041000000000221004b000000000200001900000000020320190000045301100197000004530410009c00000000030080190000045301100167000004530110009c00000000010200190000000001036019000000000110004c000003580000613d000000000001042d00000000010000190000000002000019114202cb0000040f000000040110008a00000453020000410000001f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c0000036c0000613d00000004010000390000000201100367000000000101043b000000000001042d00000000010000190000000002000019114202cb0000040f0001000000000002000000000301041a000100000002001d000000000223004b0000037c0000a13d000000000010043500000020020000390000000001000019114202980000040f000000010200002900000000012100190000000002000019000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000802000039000000000302041a000000000313004b0000038c0000a13d00000000002004350000047d01100041000000000101041a0000045401100197000000000001042d00000000010000190000000002000019114202cb0000040f0000000000200435000000200010043f00000040020000390000000001000019114202980000040f000000000001042d00000000001004350000000c01000039000000200010043f00000040020000390000000001000019114202980000040f000000000201041a00000454072001970000000102100039000000000202041a0000000203100039000000000303041a0000000304100039000000000404041a0000000505100039000000000605041a0000000401100039000000000101041a000000ff0510018f0000000001070019000000000001042d000000a0081000390000000000780435000000000660004c0000000006000019000000010600c0390000008007100039000000000067043500000060061000390000000000560435000000400510003900000000004504350000002004100039000000000034043500000454022001970000000000210435000000c001100039000000000001042d000000040110008a00000453020000410000001f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000003ce0000613d00000004010000390000000201100367000000000101043b000004540210009c000003ce0000213d000000000001042d00000000010000190000000002000019114202cb0000040f000000040110008a00000453020000410000003f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000003e40000613d00000002020003670000000401200370000000000101043b0000002402200370000000000202043b000000000001042d00000000010000190000000002000019114202cb0000040f0000002003000039000000000431043600000000030204330000000000340435000000400400008a00000000041400490000004005100039000000050130021000000000011500190000000006000019000000000736004b0000040c0000813d0000000007140019000000000575043600000020022000390000000008020433000000000708043300000000017104360000000009000019000000000a79004b000004020000813d000000000a1900190000002009900039000000000b890019000000000b0b04330000000000ba0435000003fa0000013d000000000879004b000004060000a13d000000000817001900000000000804350000001f07700039000000200800008a000000000787016f00000000017100190000000106600039000003f10000013d000000000001042d0001000000000002000100000002001d00000000001004350000000b01000039000000200010043f00000040020000390000000001000019114202980000040f0000000102000029000000000301041a000000000323004b000004220000a13d1142036f0000040f0000000303200210000000ff0230008c0000000002000019000004200000213d000000000101041a000000000231022f0000000001020019000000000001042d00000000010000190000000002000019114202cb0000040f00000000001004350000000501000039000000200010043f00000040020000390000000001000019114202980000040f000000000101041a000000000001042d00000000001004350000000901000039000000200010043f00000040020000390000000001000019114202980000040f0000000202100039000000000302041a0000000102100039000000000202041a000000ff0220018f000000000501041a0000000301100039000000000101041a000000ff0410018f0000000001050019000000000001042d0000000002210436000000040630008c0000044b0000813d000000000550004c0000000005000019000000010500c039000000600610003900000000005604350000004005100039000000000045043500000000003204350000008001100039000000000001042d000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000040110008a00000453020000410000005f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000004690000613d00000002020003670000004401200370000000000301043b000000030130008c000004690000213d0000000401200370000000000101043b0000002402200370000000000202043b000000000001042d00000000010000190000000002000019114202cb0000040f00000000001004350000000a01000039000000200010043f00000040020000390000000001000019114202980000040f000000000101041a000000000001042d000000040110008a00000453020000410000003f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000004890000613d00000002020003670000000401200370000000000101043b000004540310009c000004890000213d0000002402200370000000000202043b000000000001042d00000000010000190000000002000019114202cb0000040f000004540110019700000000001004350000000601000039000000200010043f00000040020000390000000001000019114202980000040f000000000001042d000000040110008a00000453020000410000005f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000004ab0000613d00000002030003670000002401300370000000000201043b000000030120008c000004ab0000213d0000000401300370000000000101043b0000004403300370000000000303043b000000000001042d00000000010000190000000002000019114202cb0000040f000000040110008a00000453020000410000003f0310008c000000000300001900000000030220190000045301100197000000000410004c0000000002008019000004530110009c00000000010300190000000001026019000000000110004c000004c30000613d00000002010003670000002402100370000000000202043b000004540320009c000004c30000213d0000000401100370000000000101043b000000000001042d00000000010000190000000002000019114202cb0000040f000000000110004c000004c90000613d000000000001042d000000400100043d00000044021000390000047e03000041000000000032043500000024021000390000000a0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f00000001010000290000045401100198000100000001001d0000000001000019000000010100c039114205020000040f000000000100041a0000047b011001970000000102000029000000000121019f000000000010041b000000400100043d000000000021043500000452020000410000000003000414000004520430009c0000000003028019000004520410009c00000000010280190000004001100210000000c002300210000000000112019f0000047f011001c70000800d0200003900000001030000390000048004000041114211380000040f0000000101200190000004ff0000613d000000000001042d00000000010000190000000002000019114202cb0000040f000000000110004c000005050000613d000000000001042d000000400100043d0000004402100039000004810300004100000000003204350000002402100039000000070300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f00000002010000390000000102000029000000000021041b000000000001042d0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f0000000102000029000000000120004c000005420000613d0000000103000039000000000023041b000000400100043d000000000021043500000452020000410000000004000414000004520540009c0000000004028019000004520510009c00000000010280190000004001100210000000c002400210000000000112019f0000047f011001c70000800d020000390000048204000041114211380000040f0000000101200190000005500000613d000000000001042d000000400100043d00000044021000390000048303000041000000000032043500000024021000390000000b0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f00000000010000190000000002000019114202cb0000040f0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f00000001010000290000045401100198000100000001001d0000000001000019000000010100c039114205020000040f0000000801000039000000000201041a000000130320008c000005ae0000213d00000000030000190000000106000029000000000401041a000000000523004b000005840000813d000000000434004b000005a70000a13d000000000010043500000001043000390000047d03300041000000000303041a0000045403300197000000000363004b0000000003040019000005690000c13d000000400100043d00000044021000390000048603000041000000000032043500000024021000390000000e0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000004560240009c000005bc0000813d0000000102400039000000000021041b00000000001004350000047d02400041000000000302041a0000047b03300197000000000363019f000000000032041b000000000101041a000000000210004c000005c30000613d000000400200043d00000020032000390000000000630435000000010110008a000000000012043500000452010000410000000003000414000004520430009c0000000003018019000004520420009c00000000010240190000004001100210000000c002300210000000000112019f00000484011001c70000800d0200003900000001030000390000048504000041114211380000040f0000000101200190000005ca0000613d000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f000000400100043d0000004402100039000004870300004100000000003204350000002402100039000000100300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f0004000000000002000200000002001d000400000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f0000000801000039000300000001001d000000000201041a000100000002001d0000000401000029000000000112004b00000000010000190000000101002039114206210000040f00000002010000290000045401100198000200000001001d0000000001000019000000010100c039114205020000040f000000020500002900000004010000290000000102000029000000000112004b000006170000a13d0000000301000029000000000010043500000004040000290000047d01400041000100000001001d000000000101041a000000400200043d00000040032000390000000000530435000004540110019700000020032000390000000000130435000000000042043500000452010000410000000003000414000004520430009c0000000003018019000004520420009c00000000010240190000004001100210000000c002300210000000000112019f00000488011001c70000800d0200003900000001030000390000048904000041114211380000040f00000001012001900000061e0000613d0000000301000029000000000101041a0000000402000029000000000121004b0000000202000029000006170000a13d000000030100002900000000001004350000000103000029000000000103041a0000047b01100197000000000121019f000000000013041b000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f000000000110004c000006240000613d000000000001042d000000400100043d00000044021000390000048a03000041000000000032043500000024021000390000000b0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0004000000000002000400000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f0000000801000039000300000001001d000000000201041a000200000002001d0000000401000029000000000112004b00000000010000190000000101002039114206210000040f000000030200002900000004010000290000000203000029000000000113004b0000067e0000a13d000000000020043500000004040000290000047d01400041000100000001001d000000000101041a0000045401100197000000400200043d00000020032000390000000000130435000000000042043500000452010000410000000003000414000004520430009c0000000003018019000004520420009c00000000010240190000004001100210000000c002300210000000000112019f00000484011001c70000800d0200003900000001030000390000048b04000041114211380000040f0000000101200190000006850000613d00000003040000290000000000400435000000000104041a0000000402000029000000000121004b0000067e0000a13d0000000103000029000000000103041a0000047b0110019700000002020000290000048c02200041000000000202041a0000045402200197000000000121019f000000000013041b000000000104041a000000000210004c000006880000613d00000000004004350000048c02100041000000000302041a0000047b03300197000000000032041b000000010110008a000000000014041b000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f000004580100004100000000001004350000003101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f0000000801000039000000000201041a000000000001041b000000000320004c000006a40000613d00000000001004350000047d010000410000047d02200041000000000321004b000006a40000813d000000000001041b00000001011000390000069f0000013d000000000001042d0001000000000002000100000001001d0000000401000039000000000101041a00000454011001970000000002000411000000000112004b00000000010000190000000101006039114204c60000040f00000003010000390000000102000029000000000021041b000000000001042d000000000110004c000006b60000613d000000000001042d000000400100043d00000044021000390000048d03000041000000000032043500000024021000390000000c0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0008000000000002000500000002001d000700000001001d000000400200043d0000048e01000041000800000002001d00000000001204350000000001000414000600000001001d0000047501000041000000000010043900000000010004120000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045402100197000000040120008c000006e00000613d00000004040000390000002006000039000000060100002900000008030000290000000005030019114202610000040f000000000110004c0000082b0000613d0000001f040000390000000101400031000000200500008a000000000251016f00000008060000290000000001620019000000000221004b00000000020000190000000102004039000004550310009c0000081d0000213d00000001022001900000081d0000c13d000300000005001d000400000004001d000000400010043f000004530100004100000001020000310000001f0320008c000000000300001900000000030120190000045302200197000000000420004c0000000001008019000004530220009c000000000103c019000000000110004c0000081a0000613d0000000001060433000004540210009c0000081a0000213d0000000002000411000000000112004b00000000010000190000000101006039114206b30000040f000000000200041a000000400700043d0000048f010000410000000001170436000800000001001d00000004037000390000000001000414000000070400002900000000004304350000045402200197000000040320008c000600000007001d000007190000613d00000024040000390000000003070019000000000507001900000000060000191142022a0000040f0000000607000029000000000110004c0000082b0000613d000000030100036700000001030000310000001f0230018f0000000503300272000007270000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b0000071f0000413d000000000420004c000007360000613d0000000503300210000000000131034f00000000033700190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000000040100002900000001011000310000000302000029000000000221016f0000000001720019000000000221004b00000000020000190000000102004039000004550310009c0000081d0000213d00000001022001900000081d0000c13d000000400010043f00000453020000410000000101000031000000800310008c000000000300001900000000030240190000045304100197000000000540004c000000000200a019000004530440009c000000000203c019000000000220004c0000081a0000c13d0000000004070433000004550340009c0000081a0000213d00000000027100190000000001740019000400000002001d114208520000040f000000060300002900000008010000290000000001010433000004550210009c0000081a0000213d00000000013100190000000402000029114208520000040f0000000603000029000000600130003900000000040104330000000802000039000000000102041a000000000110004c000800000004001d000007f80000613d000300000002001d000000400300043d000004900130009c0000081d0000213d0000008001300039000000400010043f000000070100002900000000051304360000000502000029000000040120008c000008240000813d0000000004030019000600000004001d00000060034000390000000101000039000200000003001d000000000013043500000000002504350000004001400039000100000001001d0000000000010435000000080100002900000000001004350000000901000039000000200010043f00000040020000390000000001000019000400000005001d114202980000040f00000006020000290000000002020433000000000021041b00000004020000290000000002020433000000030320008c000008240000213d0000000103100039000000000403041a000001000500008a000000000454016f000000000224019f000000000023041b000000010200002900000000020204330000000203100039000000000023041b0000000301100039000000000201041a000000000252016f00000002030000290000000003030433000000000330004c0000000003000019000000010300c039000000000232019f000000000021041b0000049101000041000000400200043d000600000002001d00000000001004390000800b010000390000000402000039114202af0000040f00000006040000290000004002400039000000070300002900000000003204350000006002400039000000000012043500000020014000390000000803000029000000000031043500000060020000390000000000240435000004900240009c0000081d0000213d0000008002400039000000400020043f0000000002040433114202980000040f000600000001001d00000000001004350000000a01000039000000200010043f0000004002000039000400000002001d0000000001000019114202980000040f0000000802000029000000000021041b000000060100002900000000001004350000000501000039000000200010043f00000000010000190000000402000029114202980000040f00000491020000410000000000200439000400000001001d0000800b010000390000000402000039114202af0000040f0000000302000039000000000202041a000000010300008a000000000332013f000000000331004b0000084b0000213d00000000011200190000000402000029000000000012041b0000000301000029000000000301041a000000400100043d000400000001001d00000005020000291142088d0000040f000000040400002900000000014100490000045202000041000004520340009c000000000302001900000000030440190000004003300210000004520410009c00000000010280190000006001100210000000000131019f0000000003000414000004520430009c0000000002034019000000c002200210000000000121019f00000476011001c70000800d0200003900000004030000390000049204000041000000080500002900000006060000290000000707000029114211380000040f00000001012001900000081a0000613d0000000801000029000000000001042d00000040013000390000000001010433000600000001001d000000400100043d000400000001001d000000050200002900000000030000191142088d0000040f000000040400002900000000014100490000045202000041000004520340009c000000000302001900000000030440190000004003300210000004520410009c00000000010280190000006001100210000000000131019f0000000003000414000004520430009c0000000002034019000000c002200210000000000121019f00000476011001c70000800d0200003900000004030000390000049204000041000000080500002900000006060000290000000707000029114211380000040f0000000101200190000007f60000c13d00000000010000190000000002000019114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000302000367000000400100043d00000001040000310000001f0340018f00000005044002720000083a0000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000008320000413d000000000530004c000008490000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000102000031114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000001f031000390000045304000041000000000523004b0000000005000019000000000504401900000453062001970000045303300197000000000763004b000000000400a019000000000363013f000004530330009c00000000030500190000000003046019000000000330004c0000088a0000613d0000000043010434000004560130009c000008830000813d0000003f01300039000000200500008a000000000551016f000000400100043d0000000005510019000000000615004b00000000060000190000000106004039000004550750009c000008830000213d0000000106600190000008830000c13d000000400050043f00000000053104360000000006340019000000000226004b0000088a0000213d0000000002000019000000000632004b0000087e0000813d00000000065200190000000007240019000000000707043300000000007604350000002002200039000008760000013d000000000232004b000008820000a13d00000000023500190000000000020435000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f000000040420008c000008960000813d000000200410003900000000003404350000000000210435000000400210003900000000000204350000006001100039000000000001042d000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f000d000000000002000900000003001d000800000002001d000a00000001001d000000400200043d0000048e01000041000b00000002001d00000000001204350000000001000414000d00000001001d000004750100004100000000001004390000000001000412000700000001001d0000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045402100197000000040120008c000008bb0000613d000000040400003900000020060000390000000d010000290000000b030000290000000005030019114202610000040f000000000110004c00000b240000613d0000001f01000039000c00000001001d0000000101100031000000200200008a000d00000002001d000000000221016f0000000b050000290000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f000004530100004100000001020000310000001f0320008c000000000300001900000000030120190000045302200197000000000420004c0000000001008019000004530220009c000000000103c019000000000110004c00000b1a0000613d0000000001050433000004540210009c00000b1a0000213d0000000002000411000600000002001d000000000112004b00000000010000190000000101006039114206b30000040f0000000801000039000000000101041a000000000110004c00000b190000c13d000000000200041a000000400500043d00000493010000410000000000150435000000040350003900000000010004140000000a0400002900000000004304350000045402200197000500000002001d000000040220008c000008fa0000613d0000002404000039000000800600003900000005020000290000000003050019000b00000005001d0000000b05000029114202610000040f0000000b05000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f0000000102500031000000000105001911420b520000040f000b00000001001d0000000012010434000300000001001d000000400500043d0000049401000041000000000015043500000000010004140000045402200197000000040320008c0000091d0000613d0000000404000039000000a0060000390000000003050019000400000005001d0000000405000029114202610000040f0000000405000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f0000000102500031000000000105001911420b820000040f0000000b0100002900000040011000390000000001010433000000040310008c00000b440000813d000000000310004c000009490000613d000000010110008c0000095c0000c13d000000000120004c00000b4b0000613d000004532120012c00000453030000410000000004230049000000000204c019000004955430012b000000000114013f0000000003530049000000000305601900000000322300d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c0000000001026019000b00000001001d000009850000013d000000000102001911420ba00000040f0000045302000041000004964320012b0000000005420049000000000405c019000004535110012c000000000131013f0000000002520049000000000205601900000000324200d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c0000000001026019000b00000001001d000009850000013d000b00000002001d00000003010000290000000002010433000000400500043d0000049401000041000000000015043500000000010004140000045402200197000000040320008c0000096f0000613d0000000404000039000000a0060000390000000003050019000400000005001d0000000405000029114202610000040f0000000405000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f0000000102500031000000000105001911420b820000040f000400000002001d0000000b0100002911420ba00000040f000000040200002911420bc40000040f000b00000001001d11420be90000040f00000000020100190000000801000029000400000002001d00000000011204360000000b02000029000b00000002001d000300000001001d0000000000210435000000400500043d00000497010000410000000000150435000000040250003900000000010004140000000a0300002900000000003204350000000502000029000000040220008c000009a20000613d0000002404000039000000200600003900000005020000290000000003050019000500000005001d0000000505000029114202610000040f0000000505000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f00000453010000410000000102000031000000200320008c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000b1a0000c13d000000000105043300000004020000290000004002200039000200000002001d00000000001204350000049801000041000000400200043d000500000002001d00000000001204350000000001000414000100000001001d0000047501000041000000000010043900000007010000290000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045402100197000000040120008c000009d90000613d00000004040000390000002006000039000000010100002900000005030000290000000005030019114202610000040f000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000221016f00000005050000290000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000b1d0000213d000000010220019000000b1d0000c13d000000400010043f00000453010000410000000102000031000000200320008c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000b1a0000c13d0000000003050433000004540130009c00000b1a0000213d0000000901000029000000030110008c00000b440000213d0000000902000029000000000120004c000700000003001d00000a3e0000613d000000010120008c00000a7d0000c13d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000000705000029000000000110004c00000b1a0000613d000000400300043d0000049c0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000003020000290000000002020433000000240430003900000000002404350000000202000029000000000202043300000044043000390000000000240435000000040250008c00000a230000613d000000640400003900000000020500190000000005030019000900000003001d00000000060000191142022a0000040f0000000903000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000121016f0000000003310019000000000113004b00000000010000190000000101004039000004550230009c00000b1d0000213d000000010110019000000b1d0000c13d000000400030043f00000453010000410000000102000031000d00000003001d000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000af70000613d00000b1a0000013d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000000705000029000000000110004c00000b1a0000613d000000400300043d0000049d0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000003020000290000000002020433000000240430003900000000002404350000000202000029000000000202043300000044043000390000000000240435000000040250008c00000a620000613d000000640400003900000000020500190000000005030019000900000003001d00000000060000191142022a0000040f0000000903000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000121016f0000000003310019000000000113004b00000000010000190000000101004039000004550230009c00000b1d0000213d000000010110019000000b1d0000c13d000000400030043f00000453010000410000000102000031000d00000003001d000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000af70000613d00000b1a0000013d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000000902000029000000020220008c00000abf0000c13d000000000110004c000000070500002900000b1a0000613d000000400300043d0000049b0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000003020000290000000002020433000000240430003900000000002404350000000202000029000000000202043300000044043000390000000000240435000000040250008c00000aa40000613d000000640400003900000000020500190000000005030019000900000003001d00000000060000191142022a0000040f0000000903000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000121016f0000000003310019000000000113004b00000000010000190000000101004039000004550230009c00000b1d0000213d000000010110019000000b1d0000c13d000000400030043f00000453010000410000000102000031000d00000003001d000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000af70000613d00000b1a0000013d000000000110004c000000070500002900000b1a0000613d000000400300043d0000049a0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000003020000290000000002020433000000240430003900000000002404350000000202000029000000000202043300000044043000390000000000240435000000040250008c00000add0000613d000000640400003900000000020500190000000005030019000900000003001d00000000060000191142022a0000040f0000000903000029000000000110004c00000b240000613d0000000c0100002900000001011000310000000d02000029000000000121016f0000000003310019000000000113004b00000000010000190000000101004039000004550230009c00000b1d0000213d000000010110019000000b1d0000c13d000000400030043f00000453010000410000000102000031000d00000003001d000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000b1a0000c13d000004910100004100000000001004390000800b010000390000000402000039000c00000002001d114202af0000040f0000000d0400002900000040024000390000000b0300002900000000003204350000002002400039000000000032043500000000001404350000006001400039000000000001043500000452010000410000000002000414000004520320009c0000000002018019000004520340009c00000000010440190000004001100210000000c002200210000000000112019f0000049e011001c70000800d020000390000049f040000410000000c03000029000000080500002900000006060000290000000a07000029114211380000040f000000010120019000000b1a0000613d000000000001042d00000000010000190000000002000019114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000302000367000000400100043d00000001040000310000001f0340018f000000050440027200000b330000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b00000b2b0000413d000000000530004c00000b420000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000102000031114202cb0000040f000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001201000039000000040010043f00000024020000390000000001000019114202cb0000040f000000000212004900000453030000410000007f0420008c000000000400001900000000040320190000045302200197000000000520004c0000000003008019000004530220009c00000000020400190000000002036019000000000220004c00000b780000613d000000400200043d000004a00320009c00000b7b0000813d0000008003200039000000400030043f0000000034010434000004540540009c00000b780000213d00000000044204360000000003030433000004540530009c00000b780000213d000000000034043500000040031000390000000003030433000000030430008c00000b780000213d0000004004200039000000000034043500000060011000390000000001010433000000600320003900000000001304350000000001020019000000000001042d00000000010000190000000002000019114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000000212004900000453030000410000009f0420008c000000000400001900000000040320190000045302200197000000000520004c0000000003008019000004530220009c00000000020400190000000002036019000000000220004c00000b9d0000613d0000000026010434000004a10360009c00000b9d0000213d00000080031000390000000005030433000004a10350009c00000b9d0000213d000000000202043300000040031000390000000003030433000000600110003900000000040104330000000001060019000000000001042d00000000010000190000000002000019114202cb0000040f0000045302000041000004a20310009c000000000300001900000000030240190000045304100197000000000540004c000000000200a019000004530440009c000000000203c019000000000220004c00000bbd0000613d0000045302000041000004a30310009c000000000300001900000000030240190000045304100197000004530540009c000000000200a0190000045304400167000004530440009c000000000203c019000000000220004c0000000002000019000000010200c039000000ff03100270000000000223017000000bbd0000c13d00000478211000d1000000000001042d000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000000320004c00000bdb0000613d000004530310009c00000bcb0000c13d000000010300008a000000000332004b00000be20000613d000004533220012c00000453040000410000000005340049000000000305c019000004535110012c000000000121013f0000000002540049000000000205601900000000323200d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c0000000001026019000000000001042d000004580100004100000000001004350000001201000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000400100043d000004a40210009c00000bf40000813d0000006002100039000000400020043f00000040021000390000000000020435000000200210003900000000000204350000000000010435000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000000110004c00000bfe0000613d000000000001042d000000400100043d0000004402100039000004a503000041000000000032043500000024021000390000000d0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f0014000000000002001000000002001d001400000001001d0000000802000039000000000302041a000000010400003900000000060004110000000005000019000000000135004b000000000100001900000c200000813d000000000020043500000001015000390000047d05500041000000000505041a0000045405500197000000000565004b0000000005010019000000000104001900000c140000c13d001100000006001d11420bfb0000040f000000140100002900000000001004350000000501000039001300000001001d000000200010043f00000040020000390000000001000019114202980000040f000000000101041a000000000110004c00000f970000613d000000140100002900000000001004350000001301000029000000200010043f00000040020000390000000001000019114202980000040f000000000101041a000000010110008c00000fa50000613d000004910100004100000000001004390000800b010000390000000402000039114202af0000040f000000140200002900000000002004350000001302000029000000200020043f001200000001001d00000040020000390000000001000019114202980000040f000000000101041a0000001202000029000000000112004b00000fb30000813d000000140100002900000000001004350000000a01000039000c00000001001d000000200010043f0000004002000039001200000002001d0000000001000019114202980000040f000000000101041a000f00000001001d00000000001004350000000901000039000b00000001001d000000200010043f00000000010000190000001202000029114202980000040f000000400400043d000004a00240009c00000f890000813d0000008002400039000000400020043f000000000201041a00000000052404360000000102100039000000000202041a000000ff0220018f000000040320008c00000f900000813d000a00000005001d00000000002504350000000202100039000000000202041a0000004003400039000d00000003001d0000000000230435001200000004001d00000060024000390000000301100039000000000101041a000000ff011001900000000001000019000000010100c039000000000012043500000f880000613d00000011010000290000045401100197000900000001001d00000000001004350000000601000039000800000001001d000000200010043f0000004002000039000e00000002001d0000000001000019114202980000040f00000014020000290000000000200435000000200010043f00000000010000190000000e02000029114202980000040f000000000101041a000000ff0110019000000f880000c13d000000090100002900000000001004350000000801000029000000200010043f0000004002000039000e00000002001d0000000001000019114202980000040f00000014020000290000000000200435000000200010043f00000000010000190000000e02000029114202980000040f000001000200008a000000000301041a000000000223016f00000001022001bf000000000021041b0000000f0100002900000000001004350000000b01000039000500000001001d000000200010043f00000000010000190000000e02000029114202980000040f00000012020000290000000002020433000e00000001001d0000049301000041000000000300041a000000400500043d00000000001504350000000404500039000000000100041400000000002404350000045402300197000000040320008c00000cbb0000613d000000240400003900000080060000390000000003050019000900000005001d0000000905000029114202610000040f0000000905000029000000000110004c00000fc40000613d0000001f01000039000800000001001d0000000101100031000000200200008a000900000002001d000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f0000000102500031000000000105001911420b520000040f000700000001001d0000000012010434000400000001001d000000400500043d0000049401000041000000000015043500000000010004140000045402200197000000040320008c00000ce00000613d0000000404000039000000a0060000390000000003050019000600000005001d0000000605000029114202610000040f0000000605000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f0000000102500031000000000105001911420b820000040f000000070100002900000040011000390000000001010433000000030310008c00000f900000213d000000000310004c00000d0b0000613d000000010310008c00000d1d0000c13d000000000120004c00000feb0000613d000004532120012c00000453030000410000000004230049000000000204c019000004955430012b000000000114013f0000000003530049000000000305601900000000322300d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c000000000102601900000d480000013d000000000102001911420ba00000040f0000045302000041000004964320012b0000000005420049000000000405c019000004535110012c000000000131013f0000000002520049000000000205601900000000324200d9000000ff011002120000000003210049000000000113019f0000000001026019000000000320004c000000000102601900000d480000013d000000030110008c000000100100002900000d480000613d000600000002001d00000004010000290000000002010433000000400500043d0000049401000041000000000015043500000000010004140000045402200197000000040320008c00000d330000613d0000000404000039000000a0060000390000000003050019000400000005001d0000000405000029114202610000040f0000000405000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f0000000102500031000000000105001911420b820000040f000400000002001d000000060100002911420ba00000040f000000040200002911420bc40000040f000600000001001d0000001001000029000000000110004c0000000e0300002900000d5f0000613d0000001003000029000000060400002900000000014300490000000002340049000000000334004b0000000001022019000004a70210009c00000fe40000813d000000000240004c0000000e0300002900000feb0000613d000004a8211000d100000000214100d9000000070200002900000060022000390000000002020433000000000121004b00000f880000213d000000000203041a000004550120009c00000f890000213d00000001032000390000000e01000029000000000031041b1142036f0000040f0000000302200210000000010500008a00000000032501cf000000ff0420008c0000000003002019000000100400002900000000022401cf0000000002002019000000000232016f000000000353013f000000000401041a000000000334016f000000000223019f0000000e03000029000000000021041b0000000106000039000000000106041a000000000203041a000000000112004b000000140400002900000f680000c13d000200000005001d00000000004004350000001301000029000000200010043f00000040020000390000000001000019001300000006001d114202980000040f0000001302000029000000000021041b11420be90000040f00000000020100190000000f01000029000400000002001d0000000001120436000700000001001d0000000e02000029000000000102041a000300000001001d000000400300043d001300000003001d0000000001130436000100000001001d000000000020043500000020020000390000000001000019114202980000040f0000000306000029000000130500002900000000020500190000000003000019000000000463004b00000da20000813d0000002002200039000000000401041a00000000004204350000000103300039000000010110003900000d9a0000013d00000000015200490000003f011000390000000902000029000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f000000000305043300000000010500190000000002000019114210770000040f0000001304000029000000000204043300000001032002700000000101200190000000050130021000000dcb0000c13d000000020420008c00000fe40000413d000000010330008a000000000232004b000000020400002900000ff20000a13d00000005023002100000000103000029000000000232001900000000013100190000000001010433000000000341013f0000000002020433000000000332004b00000fe40000213d0000000001210019000000010110027000000dd00000013d000000000232004b00000ff20000a13d0000000001140019000000200110003900000000010104330000000702000029000000000012043500000012010000290000000002010433000000000500041a000000400300043d000004970100004100000000001304350000000404300039000000000100041400000000002404350000045402500197000000040420008c00000de60000613d00000024040000390000002006000039001300000003001d0000001305000029114202610000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550410009c00000f890000213d000000010220019000000f890000c13d000000400010043f000004530100004100000001020000310000001f0420008c000000000500001900000000050120190000045302200197000000000420004c0000000001008019000004530220009c000000000105c019000000000110004c00000fc10000613d000000000103043300000004020000290000004002200039000e00000002001d00000000001204350000049801000041000000400200043d001300000002001d00000000001204350000000001000414000300000001001d0000047501000041000000000010043900000000010004120000000400100443000000240000044300008005010000390000004402000039114202af0000040f0000045402100197000000040120008c00000e1d0000613d00000004040000390000002006000039000000030100002900000013030000290000000005030019114202610000040f000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f00000013050000290000000001520019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000200320008c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000fc10000c13d0000000003050433000004540130009c00000fc10000213d0000000a010000290000000002010433000000030120008c00000f900000213d000000000120004c001300000003001d00000e810000613d000000010120008c00000ebf0000c13d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000001305000029000000000110004c00000fc10000613d000000400300043d0000049c0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000007020000290000000002020433000000240430003900000000002404350000000e02000029000000000202043300000044043000390000000000240435000000040250008c00000e670000613d000000640400003900000000020500190000000005030019001300000003001d00000000060000191142022a0000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000f380000613d00000fc10000013d00000499010000410000000000100439000000040030044300008002010000390000002402000039114202af0000040f0000001305000029000000000110004c00000fc10000613d000000400300043d0000049d0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000007020000290000000002020433000000240430003900000000002404350000000e02000029000000000202043300000044043000390000000000240435000000040250008c00000ea50000613d000000640400003900000000020500190000000005030019001300000003001d00000000060000191142022a0000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000f380000613d00000fc10000013d0000049901000041000000000010043900000004003004430000800201000039000a00000002001d0000002402000039114202af0000040f0000000a02000029000000020220008c00000f010000c13d000000000110004c000000130500002900000fc10000613d000000400300043d0000049b0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000007020000290000000002020433000000240430003900000000002404350000000e02000029000000000202043300000044043000390000000000240435000000040250008c00000ee70000613d000000640400003900000000020500190000000005030019001300000003001d00000000060000191142022a0000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000f380000613d00000fc10000013d000000000110004c000000130500002900000fc10000613d000000400300043d0000049a0100004100000000001304350000000001000414000000040200002900000000020204330000000404300039000000000024043500000007020000290000000002020433000000240430003900000000002404350000000e02000029000000000202043300000044043000390000000000240435000000040250008c00000f1f0000613d000000640400003900000000020500190000000005030019001300000003001d00000000060000191142022a0000040f0000001303000029000000000110004c00000fc40000613d000000080100002900000001011000310000000902000029000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550310009c00000f890000213d000000010220019000000f890000c13d000000400010043f00000453010000410000000102000031000000000320004c000000000300001900000000030140190000045302200197000000000420004c000000000100a019000004530220009c000000000103c019000000000110004c00000fc10000c13d000000140100002900000000001004350000000c01000029000000200010043f0000004002000039001300000002001d0000000001000019114202980000040f000000000001041b0000000f0100002900000000001004350000000b01000029000000200010043f00000000010000190000001302000029114202980000040f000000000001041b0000000102100039000000000002041b0000000202100039000000000002041b0000000301100039000000000001041b0000000f0100002900000000001004350000000501000029000000200010043f00000000010000190000001302000029114202980000040f0000001404000029000000000301041a000000000001041b000000000230004c00000f680000613d000000000010043500000020020000390000000001000019001300000003001d114202980000040f000000140400002900000013020000290000000002210019000000000321004b00000f680000813d000000000001041b000000010110003900000f630000013d000000120100002900000000070104330000000d010000290000000001010433000000400200043d00000060032000390000000000130435000000400120003900000006030000290000000000310435000000200120003900000010030000290000000000310435000000000042043500000452010000410000000003000414000004520430009c0000000003018019000004520420009c00000000010240190000004001100210000000c002300210000000000112019f0000049e011001c70000800d0200003900000004030000390000049f040000410000000f050000290000001106000029114211380000040f000000010120019000000fc10000613d000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000002101000039000000040010043f00000024020000390000000001000019114202cb0000040f000000400100043d0000004402100039000004aa0300004100000000003204350000002402100039000000110300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000000400100043d0000004402100039000004a90300004100000000003204350000002402100039000000100300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f000000400100043d0000004402100039000004a603000041000000000032043500000024021000390000000f0300003900000000003204350000047a0200004100000000002104350000000402100039000000200300003900000000003204350000006402000039114202cb0000040f00000000010000190000000002000019114202cb0000040f0000000302000367000000400100043d00000001040000310000001f0340018f000000050440027200000fd30000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b00000fcb0000413d000000000530004c00000fe20000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000102000031114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001201000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f00090000000000020000000802000039000000000302041a000000010400003900000000050004110000000006000019000000000136004b00000000010000190000100b0000813d000000000020043500000001016000390000047d06600041000000000606041a0000045406600197000000000656004b0000000006010019000000000104001900000fff0000c13d11420bfb0000040f0000000701000039000000000501041a000004560250009c000010700000813d00000005025002100000003f02200039000000200600008a000000000262016f000000400300043d0000000002230019000100000003001d000000000332004b00000000030000190000000103004039000004550420009c000010700000213d0000000103300190000010700000c13d000000400020043f000000010200002900000000005204350000000000100435000004ab0700004100000000080200190000000009000019000300000005001d000200000006001d000000000159004b000010670000813d000000000107041a000000010210019000000001031002700000007f0430018f000000000403c0190000001f0340008c00000000030000190000000103002039000000000331013f0000000103300190000010690000c13d000000400a00043d00000000034a0436000000000220004c000900000007001d0000104e0000c13d000001000200008a000000000121016f000000000013043500000020020000390000003f01200039000000000261016f0000000001a20019000000000221004b00000000020000190000000102004039000004550310009c000010700000213d0000000102200190000010700000c13d0000002008800039000000400010043f0000000000a80435000000010990003900000009070000290000000107700039000010270000013d000000000070043500000020020000390000000001000019000800000008001d000700000009001d00060000000a001d000500000004001d000400000003001d114202980000040f000000040b0000290000000507000029000000060a00002900000007090000290000000808000029000000020600002900000003050000290000000002000019000000000372004b0000103d0000813d0000000003b20019000000000401041a0000000000430435000000200220003900000001011000390000105f0000013d0000000101000029000000000001042d000004580100004100000000001004350000002201000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f000800000000000200000000050100190000002004500039000000010100008a000500000001001d000400000003001d000700000005001d000300000004001d000000000132004b000010b90000813d0000000001050433000000000121004b000010ba0000a13d00000005012002100000000001410019000000000701043300000000060200190000000008020019000600000002001d0000000108800039000000000138004b000010a80000813d0000000001050433000000000181004b000010ba0000a13d000000050180021000000000014100190000000001010433000000000171004b0000108a0000813d000200000007001d0000000501000029000000000116004b000010c10000613d0000000106600039000800000006001d000000000105001900000000020800190000000003060019000100000008001d114210c80000040f00000001080000290000000806000029000000070500002900000004030000290000000304000029000000060200002900000002070000290000108a0000013d00000000010500190000000003060019000800000006001d114210c80000040f000000070100002900000006020000290000000803000029114210770000040f000000080200002900000007050000290000000501000029000000000112004b000010c10000613d0000000102200039000000040300002900000003040000290000107f0000013d000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f000004580100004100000000001004350000001101000039000000040010043f00000024020000390000000001000019114202cb0000040f0000000045010434000000000635004b000010d90000a13d000000000525004b000010d90000a13d00000005033002100000000005430019000000000305043300000005062002100000000004460019000000000604043300000000006504350000000001010433000000000121004b000010d90000a13d0000000000340435000000000001042d000004580100004100000000001004350000003201000039000000040010043f00000024020000390000000001000019114202cb0000040f0001000000000002000000000200041a000000400300043d000004ac0400004100000000004304350000000404300039000000000014043500000000010004140000045402200197000000040420008c000010f30000613d00000024040000390000002006000039000100000003001d0000000105000029114202610000040f0000000103000029000000000110004c000011180000613d0000001f010000390000000101100031000000200200008a000000000221016f0000000001320019000000000221004b00000000020000190000000102004039000004550410009c0000110e0000213d00000001022001900000110e0000c13d000000400010043f000004530100004100000001020000310000001f0420008c000000000500001900000000050120190000045302200197000000000420004c0000000001008019000004530220009c000000000105c019000000000110004c000011150000613d0000000001030433000000000001042d000004580100004100000000001004350000004101000039000000040010043f00000024020000390000000001000019114202cb0000040f00000000010000190000000002000019114202cb0000040f0000000302000367000000400100043d00000001040000310000001f0340018f0000000504400272000011270000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b0000111f0000413d000000000530004c000011360000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000102000031114202cb0000040f0000113b002104210000000102000039000000000001042d0000000002000019000000000001042d00001140002104230000000102000039000000000001042d0000000002000019000000000001042d0000114200000432000011430001042e000011440001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000001000000000000000000000002000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffd740df000000000000000000000000000000000000000000000000000000001c53c280000000000000000000000000000000000000000000000000000000001efba6c20000000000000000000000000000000000000000000000000000000035b03c170000000000000000000000000000000000000000000000000000000037a3dba30000000000000000000000000000000000000000000000000000000040e9eda2000000000000000000000000000000000000000000000000000000004357855e000000000000000000000000000000000000000000000000000000004d0cfd9e000000000000000000000000000000000000000000000000000000006af6fa8000000000000000000000000000000000000000000000000000000000800032c10000000000000000000000000000000000000000000000000000000080a1f712000000000000000000000000000000000000000000000000000000008e32e4210000000000000000000000000000000000000000000000000000000093d7fe2c000000000000000000000000000000000000000000000000000000009b902497000000000000000000000000000000000000000000000000000000009d95f1cc00000000000000000000000000000000000000000000000000000000a85c38ef00000000000000000000000000000000000000000000000000000000b9e0336f00000000000000000000000000000000000000000000000000000000bea1675800000000000000000000000000000000000000000000000000000000c2d6f4b000000000000000000000000000000000000000000000000000000000d5c14c7a00000000000000000000000000000000000000000000000000000000dcdfb43100000000000000000000000000000000000000000000000000000000e21e5fe000000000000000000000000000000000000000000000000000000000e448821b00000000000000000000000000000000000000000000000000000000f5ed447c00000000000000000000000000000000000000000000000000000000f851a44000000000000000000000000000000000000000000000000000000000fa8dd49800000000000000000000000000000000000000000000000000000000fd2882800000000000000000000000000000000000000000000000000000000016fff074310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000000000000000000000000000000000000000000000000000000000000020000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002540be40057524f4e475f504152414d53000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000001f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee341444d494e5f4f4e4c59000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000477e87af277e7755f85267ef7c6b77cd28610c2c8c2923acdf55fa5b63f18b7756414c55455f3000000000000000000000000000000000000000000000000000230365d79885046a48c9158f0e4840ab95929bbebf5de4be23f7ce5f91a97c654d494e5f414e53574552530000000000000000000000000000000000000000000200000000000000000000000000000000000040000000000000000000000000adfedad3d82b3775bf2dbea70a01327d1f26c0b868eb8ce0963a6e9af1003e85414c52454144595f4c49535445440000000000000000000000000000000000004d41585f4f5241434c455f4e4f444553000000000000000000000000000000000200000000000000000000000000000000000060000000000000000000000000945eb5535c35fb8b656c5c6b7d8bb9d9deba3a44d202bd2b53d58aac4f43db0457524f4e475f494e44455800000000000000000000000000000000000000000003082ced7b8d3c831a021af877c172ae1e0257c3522a135e4d71613438461156f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee254524144494e475f4f4e4c590000000000000000000000000000000000000000ec44acf200000000000000000000000000000000000000000000000000000000302f81fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391326eef835a3905d9ada7e0cc03c9912f07fac2fe4c8f1b503a0b31a93b55c5ca181eaa005c00000000000000000000000000000000000000000000000000000000feaf968c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000005f5e100a1d54e9b0000000000000000000000000000000000000000000000000000000000b12783000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8380d670eb000000000000000000000000000000000000000000000000000000000298263500000000000000000000000000000000000000000000000000000000e2f5371000000000000000000000000000000000000000000000000000000000b5228d13000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000080000000000000000000000000083ca6e7f81f6f9083ad3b2b715818280203583164505a7fe416501b4ab73699000000000000000000000000000000000000000000000000ffffffffffffff8000000000000000000000000000000000000000000000ffffffffffffffffffff0000000036f9bfb3af7b756fad5cd10396a21346cbefc1bf33a44ab72e36108cffffffffc906404c50848a9052a32efc695decb934103e40cc5bb548d1c9ef75000000000000000000000000000000000000000000000000ffffffffffffffa04e4f545f57484954454c49535400000000000000000000000000000000000000524551554553545f455850495245440000000000000000000000000000000000000000000119799812dea11197f27f0f6e885c8ba7eb31f476caf7411a863388000000000000000000000000000000000000000000000000000000e8d4a51000524551554553545f46494e495348454400000000000000000000000000000000524551554553545f4e4f545f4558495354000000000000000000000000000000a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6888251135b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a66bbc09a3eaf6022f4eb7277c69b2ae75082a2be7d2131490e5a9d669ad1596

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

0x0000000000000000000000007b4872e2096ec9410b6b8c8b7d039589e6ee8022000000000000000000000000d3281cf19a7e49e76d9031faa4259f42ee13fd81000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000e5601264e9e00b7509fdf565102e042bedff254c000000000000000000000000b8e96e6ee3cd36e417ca671f6be3112b9cf451c3000000000000000000000000bbfb41267755323136c5773afd923d543f047f1d000000000000000000000000eb9891f7dac08d1a82a0b95b0d324b4616d8a113

-----Decoded View---------------
Arg [0] : _storageT (address): 0x7B4872e2096Ec9410b6b8C8B7d039589e6eE8022
Arg [1] : _pairsStorage (address): 0xd3281cf19a7E49E76d9031FAa4259F42Ee13fd81
Arg [2] : _minAnswers (uint256): 1
Arg [3] : _nodes (address[]): 0xe5601264e9e00B7509Fdf565102e042bedFf254C,0xB8e96e6eE3CD36e417Ca671F6be3112B9Cf451C3,0xbbFB41267755323136C5773AFd923d543F047f1D,0xeb9891f7DAC08D1a82a0b95b0d324B4616d8a113

-----Encoded View---------------


Block Transaction Gas Used Reward
view all blocks produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block 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.