From 7582ccc362707f91d3a52049d8dea8918649e83a Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 07:14:18 +0100 Subject: [PATCH 01/44] delete many dirs and unit tests. pytest passing, now takes 67.5 s --- pdr_backend/accuracy/app.py | 376 ---------------- pdr_backend/accuracy/output/index | 0 pdr_backend/accuracy/test/test_app.py | 108 ----- pdr_backend/cli/test/test_cli_module.py | 167 ------- pdr_backend/contract/test/conftest.py | 1 - .../contract/test/test_base_contract.py | 81 ---- pdr_backend/contract/test/test_data_nft.py | 68 --- pdr_backend/contract/test/test_dfrewards.py | 19 - .../contract/test/test_erc721_factory.py | 68 --- pdr_backend/contract/test/test_fixed_rate.py | 36 -- .../contract/test/test_predictoor_batcher.py | 150 ------- .../contract/test/test_predictoor_contract.py | 212 --------- pdr_backend/contract/test/test_slot.py | 23 - pdr_backend/contract/test/test_token.py | 44 -- .../contract/test/test_wrapped_token.py | 21 - pdr_backend/dfbuyer/test/conftest.py | 55 --- .../dfbuyer/test/test_dfbuyer_agent.py | 308 ------------- .../test/test_callbacks_common.py | 43 -- .../test/test_callbacks_feeds.py | 284 ------------ .../test/test_callbacks_predictoors.py | 231 ---------- pdr_backend/pred_submitter/test/conftest.py | 0 .../pred_submitter/test/test_deploy.py | 16 - .../test/test_pred_submitter_manager.py | 226 ---------- pdr_backend/predictoor/test/mockutil.py | 117 ----- .../predictoor/test/test_find_shared_slots.py | 64 --- .../predictoor/test/test_predictoor_agent.py | 407 ------------------ .../predictoor/test/test_stakes_per_slot.py | 79 ---- pdr_backend/publisher/test/conftest.py | 1 - .../publisher/test/test_publish_asset.py | 49 --- .../publisher/test/test_publish_assets.py | 71 --- pdr_backend/sim/test/test_sim_engine.py | 43 +- .../statutil/test/test_arima_dash_plots.py | 59 --- pdr_backend/statutil/test/test_seasonal.py | 139 ------ pdr_backend/subgraph/test/resources.py | 24 -- .../subgraph/test/test_core_subgraph.py | 20 - pdr_backend/subgraph/test/test_info725.py | 135 ------ .../test/test_subgraph_consume_so_far.py | 67 --- .../subgraph/test/test_subgraph_feed.py | 82 ---- .../test/test_subgraph_feed_contracts.py | 113 ----- .../subgraph/test/test_subgraph_payout.py | 89 ---- .../test/test_subgraph_pending_payouts.py | 61 --- .../test/test_subgraph_pending_slots.py | 69 --- .../test/test_subgraph_predictions.py | 281 ------------ .../subgraph/test/test_subgraph_slot.py | 109 ----- .../test/test_subgraph_subscriptions.py | 142 ------ .../subgraph/test/test_subgraph_sync.py | 47 -- .../subgraph/test/test_subgraph_trueval.py | 67 --- pdr_backend/subgraph/test/test_trueval.py | 14 - pdr_backend/trueval/test/conftest.py | 36 -- pdr_backend/trueval/test/test_get_trueval.py | 42 -- .../trueval/test/test_trueval_agent.py | 176 -------- pdr_backend/util/test_ganache/__init__.py | 0 pdr_backend/util/test_ganache/conftest.py | 1 - .../util/test_ganache/test_core_accounts.py | 54 --- .../util/test_ganache/test_networkutil.py | 37 -- .../util/test_ganache/test_web3_accounts.py | 93 ---- .../util/test_ganache/test_web3_config.py | 87 ---- system_tests/__init__.py | 0 system_tests/conftest.py | 47 -- system_tests/test_check_network_system.py | 74 ---- system_tests/test_dfbuyer_agent_system.py | 97 ----- .../test_get_predictions_info_system.py | 96 ----- .../test_get_predictoors_info_system.py | 104 ----- system_tests/test_ocean_payout.py | 76 ---- system_tests/test_predictoor_system.py | 108 ----- system_tests/test_publisher_system.py | 39 -- system_tests/test_rose_payout.py | 70 --- system_tests/test_topup_system.py | 69 --- system_tests/test_trader_agent_system.py | 90 ---- system_tests/test_trueval_agent_system.py | 77 ---- 70 files changed, 1 insertion(+), 6358 deletions(-) delete mode 100644 pdr_backend/accuracy/app.py delete mode 100644 pdr_backend/accuracy/output/index delete mode 100644 pdr_backend/accuracy/test/test_app.py delete mode 100644 pdr_backend/contract/test/conftest.py delete mode 100644 pdr_backend/contract/test/test_base_contract.py delete mode 100644 pdr_backend/contract/test/test_data_nft.py delete mode 100644 pdr_backend/contract/test/test_dfrewards.py delete mode 100644 pdr_backend/contract/test/test_erc721_factory.py delete mode 100644 pdr_backend/contract/test/test_fixed_rate.py delete mode 100644 pdr_backend/contract/test/test_predictoor_batcher.py delete mode 100644 pdr_backend/contract/test/test_predictoor_contract.py delete mode 100644 pdr_backend/contract/test/test_slot.py delete mode 100644 pdr_backend/contract/test/test_token.py delete mode 100644 pdr_backend/contract/test/test_wrapped_token.py delete mode 100644 pdr_backend/dfbuyer/test/conftest.py delete mode 100644 pdr_backend/dfbuyer/test/test_dfbuyer_agent.py delete mode 100644 pdr_backend/pdr_dashboard/test/test_callbacks_common.py delete mode 100644 pdr_backend/pdr_dashboard/test/test_callbacks_feeds.py delete mode 100644 pdr_backend/pdr_dashboard/test/test_callbacks_predictoors.py delete mode 100644 pdr_backend/pred_submitter/test/conftest.py delete mode 100644 pdr_backend/pred_submitter/test/test_deploy.py delete mode 100644 pdr_backend/pred_submitter/test/test_pred_submitter_manager.py delete mode 100644 pdr_backend/predictoor/test/mockutil.py delete mode 100644 pdr_backend/predictoor/test/test_find_shared_slots.py delete mode 100644 pdr_backend/predictoor/test/test_predictoor_agent.py delete mode 100644 pdr_backend/predictoor/test/test_stakes_per_slot.py delete mode 100644 pdr_backend/publisher/test/conftest.py delete mode 100644 pdr_backend/publisher/test/test_publish_asset.py delete mode 100644 pdr_backend/publisher/test/test_publish_assets.py delete mode 100644 pdr_backend/statutil/test/test_arima_dash_plots.py delete mode 100644 pdr_backend/statutil/test/test_seasonal.py delete mode 100644 pdr_backend/subgraph/test/resources.py delete mode 100644 pdr_backend/subgraph/test/test_core_subgraph.py delete mode 100644 pdr_backend/subgraph/test/test_info725.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_consume_so_far.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_feed.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_feed_contracts.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_payout.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_pending_payouts.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_pending_slots.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_predictions.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_slot.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_subscriptions.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_sync.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_trueval.py delete mode 100644 pdr_backend/subgraph/test/test_trueval.py delete mode 100644 pdr_backend/trueval/test/conftest.py delete mode 100644 pdr_backend/trueval/test/test_get_trueval.py delete mode 100644 pdr_backend/trueval/test/test_trueval_agent.py delete mode 100644 pdr_backend/util/test_ganache/__init__.py delete mode 100644 pdr_backend/util/test_ganache/conftest.py delete mode 100644 pdr_backend/util/test_ganache/test_core_accounts.py delete mode 100644 pdr_backend/util/test_ganache/test_networkutil.py delete mode 100644 pdr_backend/util/test_ganache/test_web3_accounts.py delete mode 100644 pdr_backend/util/test_ganache/test_web3_config.py delete mode 100644 system_tests/__init__.py delete mode 100644 system_tests/conftest.py delete mode 100644 system_tests/test_check_network_system.py delete mode 100644 system_tests/test_dfbuyer_agent_system.py delete mode 100644 system_tests/test_get_predictions_info_system.py delete mode 100644 system_tests/test_get_predictoors_info_system.py delete mode 100644 system_tests/test_ocean_payout.py delete mode 100644 system_tests/test_predictoor_system.py delete mode 100644 system_tests/test_publisher_system.py delete mode 100644 system_tests/test_rose_payout.py delete mode 100644 system_tests/test_topup_system.py delete mode 100644 system_tests/test_trader_agent_system.py delete mode 100644 system_tests/test_trueval_agent_system.py diff --git a/pdr_backend/accuracy/app.py b/pdr_backend/accuracy/app.py deleted file mode 100644 index 54c4377fc..000000000 --- a/pdr_backend/accuracy/app.py +++ /dev/null @@ -1,376 +0,0 @@ -# -# Copyright 2024 Ocean Protocol Foundation -# SPDX-License-Identifier: Apache-2.0 -# -import json -import logging -import threading -from datetime import datetime, timedelta -from typing import Any, Dict, List, Optional, Tuple - -from enforce_typing import enforce_types -from flask import Flask, jsonify - -from pdr_backend.subgraph.subgraph_predictions import ( - fetch_contract_id_and_spe, - ContractIdAndSPE, -) -from pdr_backend.subgraph.legacy.subgraph_slot import ( - fetch_slots_for_all_assets, - PredictSlot, -) -from pdr_backend.util.time_types import UnixTimeS -from pdr_backend.util.constants import WHITELIST_FEEDS_MAINNET -from pdr_backend.subgraph.legacy.subgraph_slot import PredictSlotStatus - -app = Flask(__name__) -JSON_FILE_PATH = "pdr_backend/accuracy/output/accuracy_data.json" -SECONDS_IN_A_DAY = 86400 -logger = logging.getLogger("accuracy_app") - - -@enforce_types -def calculate_prediction_result( - round_sum_stakes_up: float, round_sum_stakes: float -) -> Optional[bool]: - """ - Calculates the prediction result based on the sum of stakes. - - Args: - round_sum_stakes_up: The summed stakes for the 'up' prediction. - round_sum_stakes: The summed stakes for all prediction. - - Returns: - A boolean indicating the predicted direction. - """ - - # checks for to be sure that the division is not by zero - round_sum_stakes_up_float = float(round_sum_stakes_up) - round_sum_stakes_float = float(round_sum_stakes) - - if round_sum_stakes_float == 0.0: - return None - - if round_sum_stakes_up_float == 0.0: - return False - - return (round_sum_stakes_up_float / round_sum_stakes_float) > 0.5 - - -@enforce_types -def process_single_slot( - slot: PredictSlot, end_of_previous_day_timestamp: UnixTimeS -) -> Optional[Tuple[float, float, int, int]]: - """ - Processes a single slot and calculates the staked amounts for yesterday and today, - as well as the count of correct predictions. - - Args: - slot: A PredictSlot TypedDict containing information about a single prediction slot. - end_of_previous_day_timestamp: The Unix timestamp marking the end of the previous day. - - Returns: - A tuple containing staked amounts for yesterday, today, and the counts of correct - predictions and slots evaluated, or None if no stakes were made today. - """ - - staked_yesterday = staked_today = 0.0 - correct_predictions_count = slots_evaluated = 0 - - if float(slot.roundSumStakes) == 0.0: - return None - - # split the id to get the slot timestamp - timestamp = UnixTimeS( - int(slot.ID.split("-")[1]) - ) # Using dot notation for attribute access - - if ( - end_of_previous_day_timestamp - SECONDS_IN_A_DAY - < timestamp - < end_of_previous_day_timestamp - ): - staked_yesterday += float(slot.roundSumStakes) - elif timestamp > end_of_previous_day_timestamp: - staked_today += float(slot.roundSumStakes) - - prediction_result = calculate_prediction_result( - slot.roundSumStakesUp, slot.roundSumStakes - ) - - if prediction_result is None: - return ( - staked_yesterday, - staked_today, - correct_predictions_count, - slots_evaluated, - ) - - true_values: List[Dict[str, Any]] = slot.trueValues or [] - true_value: Optional[bool] = true_values[0]["trueValue"] if true_values else None - - if ( - len(true_values) > 0 - and prediction_result == true_value - and (slot.status != PredictSlotStatus.CANCELED) - ): - correct_predictions_count += 1 - - if ( - len(true_values) > 0 - and true_value is not None - and (slot.status != PredictSlotStatus.CANCELED) - ): - slots_evaluated += 1 - - return staked_yesterday, staked_today, correct_predictions_count, slots_evaluated - - -@enforce_types -def aggregate_statistics( - slots: List[PredictSlot], end_of_previous_day_timestamp: UnixTimeS -) -> Tuple[float, float, int, int]: - """ - Aggregates statistics across all provided slots for an asset. - - Args: - slots: A list of PredictSlot TypedDicts containing information - about multiple prediction slots. - end_of_previous_day_timestamp: The Unix timestamp marking the end of the previous day. - - Returns: - A tuple containing the total staked amounts for yesterday, today, - and the total counts of correct predictions and slots evaluated. - """ - - total_staked_yesterday = total_staked_today = total_correct_predictions = ( - total_slots_evaluated - ) = 0 - for slot in slots: - slot_results = process_single_slot(slot, end_of_previous_day_timestamp) - if slot_results: - ( - staked_yesterday, - staked_today, - correct_predictions_count, - slots_evaluated, - ) = slot_results - total_staked_yesterday += staked_yesterday - total_staked_today += staked_today - total_correct_predictions += correct_predictions_count - total_slots_evaluated += slots_evaluated - return ( - total_staked_yesterday, - total_staked_today, - total_correct_predictions, - total_slots_evaluated, - ) - - -@enforce_types -def calculate_statistics_for_all_assets( - asset_ids: List[str], - contracts_list: List[ContractIdAndSPE], - start_ts_param: UnixTimeS, - end_ts_param: UnixTimeS, - network: str = "mainnet", -) -> Dict[str, Dict[str, Any]]: - """ - Calculates statistics for all provided assets based on - slot data within a specified time range. - - Args: - asset_ids: A list of asset identifiers for which statistics will be calculated. - start_ts_param: The Unix timestamp for the start of the time range. - end_ts_param: The Unix timestamp for the end of the time range. - network: The blockchain network to query ('mainnet' or 'testnet'). - - Returns: - A dictionary mapping asset IDs to another dictionary with - calculated statistics such as average accuracy and total staked amounts. - """ - slots_by_asset = fetch_slots_for_all_assets( - asset_ids, start_ts_param, end_ts_param, network - ) - - overall_stats = {} - for asset_id, slots in slots_by_asset.items(): - ( - staked_yesterday, - staked_today, - correct_predictions_count, - slots_evaluated, - ) = aggregate_statistics(slots, UnixTimeS(end_ts_param - SECONDS_IN_A_DAY)) - average_accuracy = ( - 0 - if correct_predictions_count == 0 - else (correct_predictions_count / slots_evaluated) * 100 - ) - - # filter contracts to get the contract with the current asset id - contract_item = next( - ( - contract_item - for contract_item in contracts_list - if contract_item["ID"] == asset_id - ), - None, - ) - - overall_stats[asset_id] = { - "token_name": contract_item["name"] if contract_item else None, - "average_accuracy": average_accuracy, - "total_staked_yesterday": staked_yesterday, - "total_staked_today": staked_today, - } - - return overall_stats - - -@enforce_types -def calculate_timeframe_timestamps( - contract_timeframe: str, -) -> Tuple[UnixTimeS, UnixTimeS]: - """ - Calculates and returns a tuple of Unix timestamps for a start and end time - based on a given contract timeframe. The start time is determined to be either - 2 weeks or 4 weeks in the past, depending on whether the contract timeframe is - 5 minutes or 1 hour, respectively. The end time is the current timestamp. - - Args: - contract_timeframe (str): The contract timeframe, '5m' for 5 minutes or - other string values for different timeframes. - - Returns: - Tuple[int, int]: A tuple containing the start and end Unix timestamps. - """ - - end_ts = UnixTimeS(int(datetime.utcnow().timestamp())) - time_delta = ( - timedelta(weeks=1) - if contract_timeframe == "5m" - else timedelta(weeks=4) - # timedelta(days=1) - # if contract_timeframe == "5m" - # else timedelta(days=1) - ) - start_ts = UnixTimeS(int((datetime.utcnow() - time_delta).timestamp())) - - return start_ts, end_ts - - -@enforce_types -def save_statistics_to_file(): - """ - Periodically fetches and saves statistical data to a JSON file. - - This function runs an infinite loop that every 5 minutes triggers - data fetching for contract statistics. It uses prefetched contract - addresses and timeframes to gather statistics and save them to a file - in JSON format. - - If the process encounters an exception, it prints an error message and - continues after the next interval. - - The data includes statistics for each contract based on the 'seconds per epoch' - value defined for each statistic type. - """ - - network_param = "mainnet" # or 'testnet' depending on your preference - - statistic_types = [ - { - "alias": "5m", - "seconds_per_epoch": 300, - }, - { - "alias": "1h", - "seconds_per_epoch": 3600, - }, - ] - - contract_addresses = WHITELIST_FEEDS_MAINNET - - contracts_list_unfiltered = fetch_contract_id_and_spe( - contract_addresses, - network_param, - ) - - while True: - try: - output = [] - - for statistic_type in statistic_types: - seconds_per_epoch = statistic_type["seconds_per_epoch"] - contracts_list = list( - filter( - lambda item, spe=seconds_per_epoch: int( - item["seconds_per_epoch"] - ) - == spe, - contracts_list_unfiltered, - ) - ) - - start_ts_param, end_ts_param = calculate_timeframe_timestamps( - statistic_type["alias"] - ) - - contract_ids = [contract_item["ID"] for contract_item in contracts_list] - - statistics = calculate_statistics_for_all_assets( - contract_ids, - contracts_list, - start_ts_param, - end_ts_param, - network_param, - ) - - output.append( - { - "alias": statistic_type["alias"], - "statistics": statistics, - } - ) - - with open(JSON_FILE_PATH, "w") as f: - json.dump(output, f) - - logger.info("Data saved to JSON") - except Exception as e: - logger.error("Error: %s", e) - - threading.Event().wait(300) # Wait for 5 minutes (300 seconds) - - -@enforce_types -@app.route("/statistics", methods=["GET"]) -def serve_statistics_from_file(): - """ - Serves statistical data from a JSON file via a GET request. - - When a GET request is made to the '/statistics' route, - this function reads the statistical data from the JSON file - and returns it as a JSON response. - - If the file cannot be read or another error occurs, it returns a 500 Internal Server Error. - """ - - try: - with open(JSON_FILE_PATH, "r") as f: - data = json.load(f) - response = jsonify(data) - response.headers.add("Access-Control-Allow-Origin", "*") # Allow any origin - return response - except Exception as e: - response = jsonify({"error": "Internal Server Error", "message": str(e)}) - response.headers.add("Access-Control-Allow-Origin", "*") # Allow any origin - return response, 500 - - -if __name__ == "__main__": - # Start the thread to save predictions data to a file every 5 minutes - thread = threading.Thread(target=save_statistics_to_file) - thread.start() - - app.run(debug=False) diff --git a/pdr_backend/accuracy/output/index b/pdr_backend/accuracy/output/index deleted file mode 100644 index e69de29bb..000000000 diff --git a/pdr_backend/accuracy/test/test_app.py b/pdr_backend/accuracy/test/test_app.py deleted file mode 100644 index 688bdbdaa..000000000 --- a/pdr_backend/accuracy/test/test_app.py +++ /dev/null @@ -1,108 +0,0 @@ -from typing import List -from unittest.mock import patch - -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_predictions import ContractIdAndSPE -from pdr_backend.accuracy.app import ( - calculate_prediction_result, - process_single_slot, - aggregate_statistics, - calculate_statistics_for_all_assets, -) -from pdr_backend.subgraph.legacy.subgraph_slot import PredictSlot, PredictSlotStatus -from pdr_backend.util.time_types import UnixTimeS - -# Sample data for tests -SAMPLE_PREDICT_SLOT = PredictSlot( - ID="0xAsset-12345", - slot="12345", - status=PredictSlotStatus.PAYING, - trueValues=[{"ID": "1", "trueValue": True}], - roundSumStakesUp=150.0, - roundSumStakes=100.0, -) - -SAMPLE_PREDICT_SLOT_CANCELED = PredictSlot( - ID="0xAsset-12345", - slot="12345", - status=PredictSlotStatus.CANCELED, - trueValues=[{"ID": "1", "trueValue": True}], - roundSumStakesUp=150.0, - roundSumStakes=100.0, -) - - -@enforce_types -def test_calculate_prediction_result(): - - # Test the calculate_prediction_prediction_result function with expected inputs - result = calculate_prediction_result(150.0, 200.0) - assert result - - result = calculate_prediction_result(100.0, 250.0) - assert not result - - -@enforce_types -def test_process_single_slot(): - # Test the process_single_slot function - ( - staked_yesterday, - staked_today, - correct_predictions, - slots_evaluated, - ) = process_single_slot( - slot=SAMPLE_PREDICT_SLOT, end_of_previous_day_timestamp=UnixTimeS(12340) - ) - - assert staked_yesterday == 0.0 - assert staked_today == 100.0 - assert correct_predictions == 1 - assert slots_evaluated == 1 - - -@enforce_types -def test_aggregate_statistics(): - # Test the aggregate_statistics function - ( - total_staked_yesterday, - total_staked_today, - total_correct_predictions, - total_slots_evaluated, - ) = aggregate_statistics( - slots=[SAMPLE_PREDICT_SLOT, SAMPLE_PREDICT_SLOT_CANCELED], - end_of_previous_day_timestamp=UnixTimeS(12340), - ) - assert total_staked_yesterday == 0.0 - assert total_staked_today == 200.0 - assert total_correct_predictions == 1 - assert total_slots_evaluated == 1 - - -@enforce_types -@patch("pdr_backend.accuracy.app.fetch_slots_for_all_assets") -def test_calculate_statistics_for_all_assets(mock_fetch_slots): - # Mocks - mock_fetch_slots.return_value = { - "0xAsset": [SAMPLE_PREDICT_SLOT, SAMPLE_PREDICT_SLOT_CANCELED] * 500 - } - contracts_list: List[ContractIdAndSPE] = [ - {"ID": "0xAsset", "seconds_per_epoch": 300, "name": "TEST/USDT"} - ] - - # Main work - statistics = calculate_statistics_for_all_assets( - asset_ids=["0xAsset"], - contracts_list=contracts_list, - start_ts_param=UnixTimeS(91000), - end_ts_param=UnixTimeS(92000), - network="mainnet", - ) - - print("test_calculate_statistics_for_all_assets", statistics) - # Verify - assert statistics["0xAsset"]["average_accuracy"] == 100.0 - mock_fetch_slots.assert_called_once_with( - ["0xAsset"], UnixTimeS(91000), UnixTimeS(92000), "mainnet" - ) diff --git a/pdr_backend/cli/test/test_cli_module.py b/pdr_backend/cli/test/test_cli_module.py index 370f8291d..c1d6f7e17 100644 --- a/pdr_backend/cli/test/test_cli_module.py +++ b/pdr_backend/cli/test/test_cli_module.py @@ -9,27 +9,10 @@ from pdr_backend.cli.cli_module import ( # main tools do_sim, - do_predictoor, do_trader, - do_claim_OCEAN, - do_claim_ROSE, # power tools do_multisim, do_ohlcv, - # utilities - do_get_predictoors_info, - do_get_predictions_info, - do_get_traction_info, - do_check_network, - do_create_accounts, - do_print_balances, - do_fund_accounts, - # tools for core team - do_trueval, - do_dfbuyer, - do_publisher, - do_topup, - # (and, main) _do_main, ) from pdr_backend.ppss.ppss import PPSS as PPSSClass @@ -234,13 +217,6 @@ def test_do_sim(monkeypatch): mock_f.assert_called() -@enforce_types -def test_do_predictoor(monkeypatch): - monkeypatch.setattr(f"{_CLI_PATH}.PredictoorAgent", MockAgent) - - do_predictoor(MockArgParser_APPROACH_PPSS_NETWORK().parse_args()) - assert MockAgent.was_run - @enforce_types def test_do_trader(monkeypatch): @@ -258,38 +234,6 @@ def test_do_trader(monkeypatch): do_trader(MockArgParser_APPROACH_PPSS_NETWORK(_APPROACH_BAD).parse_args()) -@enforce_types -def test_do_claim_OCEAN(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.do_ocean_payout", mock_f) - - do_claim_OCEAN(MockArgParser_PPSS().parse_args()) - mock_f.assert_called() - - -@enforce_types -def test_do_claim_ROSE(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.do_rose_payout", mock_f) - - do_claim_ROSE(MockArgParser_PPSS().parse_args()) - mock_f.assert_called() - - -# --------------------------------------------------------------- -# test: Power tools - - -@enforce_types -def test_do_multisim(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.MultisimEngine.run", mock_f) - - ppss = MockArgParser_PPSS().parse_args() - do_multisim(ppss) - - mock_f.assert_called() - @enforce_types def test_do_ohlcv(monkeypatch): @@ -300,117 +244,6 @@ def test_do_ohlcv(monkeypatch): mock_f.assert_called() -# --------------------------------------------------------------- -# test: Utilities - - -@enforce_types -def test_do_get_predictoors_info(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.get_predictoors_info_main", mock_f) - - do_get_predictoors_info(MockArgParser_ST_END_PQDIR_NETWORK_PPSS_PDRS().parse_args()) - mock_f.assert_called() - - -@enforce_types -def test_do_get_predictions_info(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.get_predictions_info_main", mock_f) - - do_get_predictions_info( - MockArgParser_ST_END_PQDIR_NETWORK_PPSS_FEEDS().parse_args() - ) - mock_f.assert_called() - - -@enforce_types -def test_do_get_traction_info(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.get_traction_info_main", mock_f) - - do_get_traction_info(MockArgParser_ST_END_PQDIR_NETWORK_PPSS_FEEDS().parse_args()) - mock_f.assert_called() - - -@enforce_types -def test_do_check_network(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.check_network_main", mock_f) - - do_check_network(MockArgParser_PPSS_NETWORK_LOOKBACK().parse_args()) - mock_f.assert_called() - - -@enforce_types -def test_do_create_accounts(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.create_accounts", mock_f) - - do_create_accounts(MockArgParser_NUM().parse_args()) - mock_f.assert_called() - - -@enforce_types -def test_do_print_balances(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.print_balances", mock_f) - - do_print_balances(MockArgParser_ACCOUNT_PPSS_NETWORK().parse_args()) - mock_f.assert_called() - - -@enforce_types -def test_do_fund_accounts(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.fund_accounts", mock_f) - - do_fund_accounts( - MockArgParser_TOKEN_AMOUNT_ACCOUNTS_TOKEN_PPSS_NETWORK().parse_args() - ) - mock_f.assert_called() - - -# --------------------------------------------------------------- -# test: Tools for core team - - -@enforce_types -def test_do_trueval(monkeypatch): - monkeypatch.setattr(f"{_CLI_PATH}.TruevalAgent", MockAgent) - - do_trueval(MockArgParser_PPSS_NETWORK().parse_args()) - assert MockAgent.was_run - - -@enforce_types -def test_do_dfbuyer(monkeypatch): - monkeypatch.setattr(f"{_CLI_PATH}.DFBuyerAgent", MockAgent) - - do_dfbuyer(MockArgParser_PPSS_NETWORK().parse_args()) - assert MockAgent.was_run - - -@enforce_types -def test_do_publisher(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.publish_assets", mock_f) - - do_publisher(MockArgParser_PPSS_NETWORK().parse_args()) - mock_f.assert_called() - - -@enforce_types -def test_do_topup(monkeypatch): - mock_f = Mock() - monkeypatch.setattr(f"{_CLI_PATH}.topup_main", mock_f) - - do_topup(MockArgParser_PPSS_NETWORK().parse_args()) - mock_f.assert_called() - - -# --------------------------------------------------------------- -# (test _do_main) @enforce_types diff --git a/pdr_backend/contract/test/conftest.py b/pdr_backend/contract/test/conftest.py deleted file mode 100644 index fc9ed034c..000000000 --- a/pdr_backend/contract/test/conftest.py +++ /dev/null @@ -1 +0,0 @@ -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import diff --git a/pdr_backend/contract/test/test_base_contract.py b/pdr_backend/contract/test/test_base_contract.py deleted file mode 100644 index 529fc3093..000000000 --- a/pdr_backend/contract/test/test_base_contract.py +++ /dev/null @@ -1,81 +0,0 @@ -import os -from unittest.mock import Mock - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.contract.token import Token - - -@pytest.fixture -def mock_send_encrypted_sapphire_tx(monkeypatch): - mock_function = Mock(return_value=(0, "dummy_tx_hash")) - monkeypatch.setattr("sapphirepy.wrapper.send_encrypted_sapphire_tx", mock_function) - return mock_function - - -@enforce_types -def test_base_contract(web3_pp, web3_config): - OCEAN_address = web3_pp.OCEAN_address - - # success - Token(web3_pp, OCEAN_address) - - # catch failure - web3_config = web3_pp.web3_config - with pytest.raises(ValueError): - Token(web3_config, OCEAN_address) - - -@enforce_types -def test_send_encrypted_tx( - mock_send_encrypted_sapphire_tx, # pylint: disable=redefined-outer-name - OCEAN, - web3_pp, -): - OCEAN_address = web3_pp.OCEAN_address - contract = Token(web3_pp, OCEAN_address) - - # Set up dummy return value for the mocked function - mock_send_encrypted_sapphire_tx.return_value = ( - 0, - "dummy_tx_hash", - ) - - # Sample inputs for send_encrypted_tx - function_name = "transfer" - args = [web3_pp.web3_config.owner, 100] - sender = web3_pp.web3_config.owner - receiver = web3_pp.web3_config.w3.eth.accounts[1] - rpc_url = web3_pp.rpc_url - value = 0 - gasLimit = 10000000 - gasCost = 0 - nonce = 0 - pk = os.getenv("PRIVATE_KEY") - - tx_hash, encrypted_data = contract.send_encrypted_tx( - function_name, - args, - sender, - receiver, - pk, - value, - gasLimit, - gasCost, - nonce, - ) - assert tx_hash == 0 - assert encrypted_data == "dummy_tx_hash" - - mock_send_encrypted_sapphire_tx.assert_called_once_with( - pk, - sender, - receiver, - rpc_url, - value, - gasLimit, - OCEAN.contract_instance.encode_abi(fn_name=function_name, args=args), - gasCost, - nonce, - ) diff --git a/pdr_backend/contract/test/test_data_nft.py b/pdr_backend/contract/test/test_data_nft.py deleted file mode 100644 index 083c07acf..000000000 --- a/pdr_backend/contract/test/test_data_nft.py +++ /dev/null @@ -1,68 +0,0 @@ -import json -import os - -from enforce_typing import enforce_types -from eth_account import Account -from web3.logs import DISCARD - -from pdr_backend.contract.data_nft import DataNft -from pdr_backend.contract.erc721_factory import Erc721Factory -from pdr_backend.util.constants import MAX_UINT -from pdr_backend.util.currency_types import Eth - - -@enforce_types -def test_set_ddo(web3_pp, web3_config): - private_key = os.getenv("PRIVATE_KEY") - - path = os.path.join( - os.path.dirname(__file__), "../../tests/resources/ddo_v4_sample.json" - ) - - with open(path, "r") as file_handle: - content = file_handle.read() - ddo = json.loads(content) - - owner = Account.from_key( # pylint:disable=no-value-for-parameter - private_key=private_key - ) - factory = Erc721Factory(web3_pp) - ocean_address = web3_pp.OCEAN_address - fre_address = web3_pp.get_address("FixedPrice") - - feeCollector = owner.address - - nft_data = ("NFT1", "NFT1", 1, "", True, owner.address) - erc_data = ( - 3, - ["ERC20", "ERC20"], - [ - owner.address, - owner.address, - feeCollector, - ocean_address, - ocean_address, - ], - [MAX_UINT, 0, 300, 300 * 24, 4 * 12 * 300], - [], - ) - - rate = Eth(3).to_wei().amt_wei - cut = Eth(0.2).to_wei().amt_wei - fre_data = ( - fre_address, - [ocean_address, owner.address, feeCollector, owner.address], - [18, 18, rate, cut, 1], - ) - logs_nft, _ = factory.createNftWithErc20WithFixedRate(nft_data, erc_data, fre_data) - data_nft_address = logs_nft["newTokenAddress"] - print(f"Deployed NFT: {data_nft_address}") - data_nft = DataNft(web3_pp, data_nft_address) - - tx = data_nft.set_ddo(ddo, wait_for_receipt=True) - receipt = web3_config.w3.eth.wait_for_transaction_receipt(tx) - event = data_nft.contract_instance.events.MetadataCreated().process_receipt( - receipt, errors=DISCARD - )[0] - - assert event diff --git a/pdr_backend/contract/test/test_dfrewards.py b/pdr_backend/contract/test/test_dfrewards.py deleted file mode 100644 index bc846e791..000000000 --- a/pdr_backend/contract/test/test_dfrewards.py +++ /dev/null @@ -1,19 +0,0 @@ -from enforce_typing import enforce_types - -from pdr_backend.contract.dfrewards import DFRewards -from pdr_backend.util.currency_types import Eth - - -@enforce_types -def test_dfrewards(web3_pp, web3_config): - dfrewards_addr = web3_pp.get_address("DFRewards") - assert isinstance(dfrewards_addr, str) - - ocean_addr = web3_pp.OCEAN_address - assert isinstance(dfrewards_addr, str) - - contract = DFRewards(web3_pp, dfrewards_addr) - rewards = contract.get_claimable_rewards(web3_config.owner, ocean_addr) - assert rewards == Eth(0) - - contract.claim_rewards(web3_config.owner, ocean_addr) diff --git a/pdr_backend/contract/test/test_erc721_factory.py b/pdr_backend/contract/test/test_erc721_factory.py deleted file mode 100644 index 2651d1761..000000000 --- a/pdr_backend/contract/test/test_erc721_factory.py +++ /dev/null @@ -1,68 +0,0 @@ -from unittest.mock import Mock, patch - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.contract.erc721_factory import Erc721Factory -from pdr_backend.util.currency_types import Eth - - -@enforce_types -def test_Erc721Factory(web3_pp, web3_config): - factory = Erc721Factory(web3_pp) - assert factory is not None - - ocean_address = web3_pp.OCEAN_address - fre_address = web3_pp.get_address("FixedPrice") - - rate = Eth(3).to_wei().amt_wei - cut = Eth(0.2).to_wei().amt_wei - - nft_data = ("TestToken", "TT", 1, "", True, web3_config.owner) - erc_data = ( - 3, - ["ERC20Test", "ET"], - [ - web3_config.owner, - web3_config.owner, - web3_config.owner, - ocean_address, - ocean_address, - ], - [2**256 - 1, 0, 300, 3000, 30000], - [], - ) - fre_data = ( - fre_address, - [ - ocean_address, - web3_config.owner, - web3_config.owner, - web3_config.owner, - ], - [ - 18, - 18, - rate, - cut, - 1, - ], - ) - - logs_nft, logs_erc = factory.createNftWithErc20WithFixedRate( - nft_data, erc_data, fre_data - ) - - assert len(logs_nft) > 0 - assert len(logs_erc) > 0 - - config = Mock() - receipt = {"status": 0} - config.w3.eth.wait_for_transaction_receipt.return_value = receipt - - -@enforce_types -def test_Erc721Factory_no_address(web3_pp): - with patch.object(web3_pp, "get_address", return_value=None): - with pytest.raises(ValueError): - Erc721Factory(web3_pp) diff --git a/pdr_backend/contract/test/test_fixed_rate.py b/pdr_backend/contract/test/test_fixed_rate.py deleted file mode 100644 index bf5d019a0..000000000 --- a/pdr_backend/contract/test/test_fixed_rate.py +++ /dev/null @@ -1,36 +0,0 @@ -from enforce_typing import enforce_types -from pytest import approx - -from pdr_backend.contract.fixed_rate import FixedRate -from pdr_backend.util.currency_types import Eth, Wei - - -@enforce_types -def test_FixedRate(feed_contract1, web3_pp): - exchanges = feed_contract1.get_exchanges() - print(exchanges) - - address = exchanges[0][0] - exchangeId = exchanges[0][1] - - # constructor - exchange = FixedRate(web3_pp, address) - - # test get_dt_price() - tup = exchange.get_dt_price(exchangeId) - ( - baseTokenAmt_wei, - oceanFeeAmt_wei, - publishMktFeeAmt_wei, - consumeMktFeeAmt_wei, - ) = tup - - assert baseTokenAmt_wei.to_eth().amt_eth == approx(3.603) - - assert oceanFeeAmt_wei.to_eth().amt_eth == approx(0.003) - assert publishMktFeeAmt_wei.to_eth().amt_eth == approx(0.6) - assert consumeMktFeeAmt_wei.to_eth().amt_eth == 0 - - # test calcBaseInGivenOutDT() - tup2 = exchange.calcBaseInGivenOutDT(exchangeId, Eth(1).to_wei(), Wei(0)) - assert tup == tup2 diff --git a/pdr_backend/contract/test/test_predictoor_batcher.py b/pdr_backend/contract/test/test_predictoor_batcher.py deleted file mode 100644 index fc69a143c..000000000 --- a/pdr_backend/contract/test/test_predictoor_batcher.py +++ /dev/null @@ -1,150 +0,0 @@ -from unittest.mock import Mock - -from enforce_typing import enforce_types -from web3.types import RPCEndpoint - -from pdr_backend.conftest_ganache import S_PER_EPOCH -from pdr_backend.contract.data_nft import DataNft -from pdr_backend.contract.predictoor_batcher import mock_predictoor_batcher -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.currency_types import Wei - - -@enforce_types -def test_submit_truevals(feed_contract1, web3_pp, predictoor_batcher): - web3_config = web3_pp.web3_config - current_epoch = feed_contract1.get_current_epoch_ts() - - # fast forward time - web3_config.w3.provider.make_request( - RPCEndpoint("evm_increaseTime"), [S_PER_EPOCH * 10] - ) - web3_config.w3.provider.make_request(RPCEndpoint("evm_mine"), []) - - end_epoch = current_epoch + S_PER_EPOCH * 10 - - # get trueval for epochs - epochs = list(range(current_epoch, end_epoch, S_PER_EPOCH)) - truevals = [True] * len(epochs) - cancels = [False] * len(epochs) - - # add predictoor helper as ercdeployer - erc721addr = feed_contract1.erc721_addr() - datanft = DataNft(web3_pp, erc721addr) - datanft.add_to_create_erc20_list(predictoor_batcher.contract_address) - - truevals_before = [ - feed_contract1.contract_instance.functions.trueValues(i).call() for i in epochs - ] - for trueval in truevals_before: - assert trueval is False - - predictoor_batcher.submit_truevals( - feed_contract1.contract_address, epochs, truevals, cancels - ) - - truevals_after = [ - feed_contract1.contract_instance.functions.trueValues(i).call() for i in epochs - ] - for trueval in truevals_after: - assert trueval is True - - -@enforce_types -def test_submit_truevals_contracts( - feed_contract1, - feed_contract2, - web3_pp, - web3_config, - predictoor_batcher, -): - current_epoch = feed_contract1.get_current_epoch_ts() - - # fast forward time - web3_config.w3.provider.make_request( - RPCEndpoint("evm_increaseTime"), [S_PER_EPOCH * 10] - ) - web3_config.w3.provider.make_request(RPCEndpoint("evm_mine"), []) - - end_epoch = current_epoch + S_PER_EPOCH * 10 - - # get trueval for epochs - epochs1 = list(range(current_epoch, end_epoch, S_PER_EPOCH)) - epochs2 = list(range(current_epoch + S_PER_EPOCH * 2, end_epoch, S_PER_EPOCH)) - epochs = [epochs1, epochs2] - truevals = [[True] * len(epochs1), [True] * len(epochs2)] - cancels = [[False] * len(epochs1), [False] * len(epochs2)] - addresses = [ - feed_contract1.contract_address, - feed_contract2.contract_address, - ] - - # add predictoor helper as ercdeployer - erc721addr = feed_contract1.erc721_addr() - datanft = DataNft(web3_pp, erc721addr) - datanft.add_to_create_erc20_list(predictoor_batcher.contract_address) - erc721addr = feed_contract2.erc721_addr() - datanft = DataNft(web3_pp, erc721addr) - datanft.add_to_create_erc20_list(predictoor_batcher.contract_address) - - truevals_before_1 = [ - feed_contract1.contract_instance.functions.trueValues(i).call() for i in epochs1 - ] - - truevals_before_2 = [ - feed_contract2.contract_instance.functions.trueValues(i).call() for i in epochs1 - ] - - for trueval in truevals_before_1: - assert trueval is False - - for trueval in truevals_before_2: - assert trueval is False - - predictoor_batcher.submit_truevals_contracts(addresses, epochs, truevals, cancels) - - truevals_after_1 = [ - feed_contract1.contract_instance.functions.trueValues(i).call() for i in epochs1 - ] - - truevals_after_2 = [ - feed_contract2.contract_instance.functions.trueValues(i).call() for i in epochs1 - ] - - for trueval in truevals_after_1: - assert trueval is True - - for trueval in truevals_after_2[:2]: # did not include first two epochs - assert trueval is False - - for trueval in truevals_after_2[2:]: - assert trueval is True - - -@enforce_types -def test_consume_multiple(feed_contract1, OCEAN, predictoor_batcher): - owner = OCEAN.config.owner - - price = feed_contract1.get_price() - print(price) - - times = 10 - cost = Wei(times * price.amt_wei) - - OCEAN.approve(predictoor_batcher.contract_address, cost) - balance_before = OCEAN.balanceOf(owner) - - predictoor_batcher.consume_multiple( - [feed_contract1.contract_address], [times], OCEAN.contract_address - ) - - balance_after = OCEAN.balanceOf(owner) - assert balance_after + cost == balance_before - - -@enforce_types -def test_mock_predictoor_batcher(): - web3_pp = Mock(spec=Web3PP) - b = mock_predictoor_batcher(web3_pp) - assert id(b.web3_pp) == id(web3_pp) - assert b.contract_address == "0xPdrBatcherAddr" diff --git a/pdr_backend/contract/test/test_predictoor_contract.py b/pdr_backend/contract/test/test_predictoor_contract.py deleted file mode 100644 index 2c02dc5cb..000000000 --- a/pdr_backend/contract/test/test_predictoor_contract.py +++ /dev/null @@ -1,212 +0,0 @@ -from unittest.mock import Mock, patch - -import pytest -from enforce_typing import enforce_types -from pytest import approx - -from pdr_backend.conftest_ganache import S_PER_EPOCH -from pdr_backend.contract.feed_contract import ( - FeedContract, - mock_feed_contract, -) -from pdr_backend.contract.token import Token -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.publisher.publish_asset import MAX_UINT256 -from pdr_backend.util.currency_types import Eth, Wei - - -@enforce_types -def test_get_id(feed_contract1): - id_ = feed_contract1.getid() - assert id_ == 3 - - -@enforce_types -def test_is_valid_subscription_initially(feed_contract1): - is_valid_sub = feed_contract1.is_valid_subscription() - assert not is_valid_sub - - -@enforce_types -def test_buy_and_start_subscription(feed_contract1): - receipt = feed_contract1.buy_and_start_subscription() - assert receipt["status"] == 1 - is_valid_sub = feed_contract1.is_valid_subscription() - assert is_valid_sub - - -@enforce_types -def test_buy_and_start_subscription_empty(feed_contract_empty): - with pytest.raises(ValueError): - assert feed_contract_empty.buy_and_start_subscription() - - -@enforce_types -def test_buy_many(feed_contract1): - receipts = feed_contract1.buy_many(2, None, True) - assert len(receipts) == 2 - - assert feed_contract1.buy_many(0, None, True) is None - - -@enforce_types -def test_get_exchanges(feed_contract1): - exchanges = feed_contract1.get_exchanges() - assert exchanges[0][0].startswith("0x") - - -@enforce_types -def test_get_stake_token(feed_contract1, web3_pp): - stake_token = feed_contract1.get_stake_token() - assert stake_token == web3_pp.OCEAN_address - - -@enforce_types -def test_get_price(feed_contract1): - price = feed_contract1.get_price() - assert price.amt_wei / 1e18 == approx(3.603) - - -@enforce_types -def test_get_price_no_exchanges(feed_contract_empty): - feed_contract_empty.get_exchanges = Mock(return_value=[]) - with pytest.raises(ValueError): - feed_contract_empty.get_price() - - -@enforce_types -def test_get_current_epoch(feed_contract1): - current_epoch = feed_contract1.get_current_epoch() - now = feed_contract1.config.get_block("latest").timestamp - assert current_epoch == int(now // S_PER_EPOCH) - - -@enforce_types -def test_get_current_epoch_ts(feed_contract1): - current_epoch = feed_contract1.get_current_epoch_ts() - now = feed_contract1.config.get_block("latest").timestamp - assert current_epoch == int(now // S_PER_EPOCH) * S_PER_EPOCH - - -@enforce_types -def test_get_seconds_per_epoch(feed_contract1): - seconds_per_epoch = feed_contract1.get_secondsPerEpoch() - assert seconds_per_epoch == S_PER_EPOCH - - -@enforce_types -def test_get_aggpredval(feed_contract1): - current_epoch = feed_contract1.get_current_epoch_ts() - aggpredval = feed_contract1.get_agg_predval(current_epoch) - assert aggpredval == (Eth(0), Eth(0)) - - -@enforce_types -def test_soonest_timestamp_to_predict(feed_contract1): - current_epoch = feed_contract1.get_current_epoch_ts() - soonest_timestamp = feed_contract1.soonest_timestamp_to_predict(current_epoch) - assert soonest_timestamp == current_epoch + S_PER_EPOCH * 2 - - -@enforce_types -def test_get_trueValSubmitTimeout(feed_contract1): - trueValSubmitTimeout = feed_contract1.get_trueValSubmitTimeout() - assert trueValSubmitTimeout == 3 * 24 * 60 * 60 - - -@enforce_types -def test_submit_prediction_trueval_payout( - feed_contract1, - OCEAN: Token, -): - w3 = feed_contract1.config.w3 - owner_addr = feed_contract1.config.owner - OCEAN_before = OCEAN.balanceOf(owner_addr).to_eth() - cur_epoch = feed_contract1.get_current_epoch_ts() - soonest_ts = feed_contract1.soonest_timestamp_to_predict(cur_epoch) - predval = True - stake_amt = Eth(1.0) - receipt = feed_contract1.submit_prediction( - predval, - stake_amt, - soonest_ts, - wait_for_receipt=True, - ) - assert receipt["status"] == 1 - - OCEAN_after = OCEAN.balanceOf(owner_addr).to_eth() - assert (OCEAN_before.amt_eth - OCEAN_after.amt_eth) == approx( - stake_amt.amt_eth, 1e-8 - ) - - pred_tup = feed_contract1.get_prediction( - soonest_ts, - feed_contract1.config.owner, - ) - assert pred_tup[0] == predval - assert pred_tup[1] == stake_amt.amt_wei - - w3.provider.make_request("evm_increaseTime", [S_PER_EPOCH * 2]) - w3.provider.make_request("evm_mine", []) - trueval = True - receipt = feed_contract1.submit_trueval( - trueval, - soonest_ts, - cancel_round=False, - wait_for_receipt=True, - ) - assert receipt["status"] == 1 - - receipt = feed_contract1.payout(soonest_ts, wait_for_receipt=True) - assert receipt["status"] == 1 - OCEAN_final = OCEAN.balanceOf(owner_addr).to_eth() - assert OCEAN_before.amt_eth == approx(OCEAN_final.amt_eth, 2.0) # + sub revenue - - -@enforce_types -def test_redeem_unused_slot_revenue(feed_contract1): - cur_epoch = feed_contract1.get_current_epoch_ts() - S_PER_EPOCH * 123 - receipt = feed_contract1.redeem_unused_slot_revenue(cur_epoch, True) - assert receipt["status"] == 1 - - -@enforce_types -def test_mock_feed_contract(): - c = mock_feed_contract("0x123", (3, 4)) - assert c.contract_address == "0x123" - assert c.get_agg_predval() == (3, 4) - - -@enforce_types -def test_allowance_update(): - web3_pp = Mock(spec=Web3PP) - mock_token = Mock(spec=Token) - address = "0x123" - with patch( - "pdr_backend.contract.feed_contract.Token", - autospec=True, - return_value=mock_token, - ): - contract = FeedContract(web3_pp, address) - - contract.config.owner = "0xowner" - contract.contract_address = "0xcontract" - contract.send_encrypted_tx = Mock() - contract.send_encrypted_tx.return_value = (1, 2) - - allowance = contract.last_allowance[contract.config.owner] - assert allowance == Wei(0) - - contract.token.allowance.return_value = Wei(1000) - contract.token.approve = Mock() - - stake_amt = Wei(10) - contract.submit_prediction( - predicted_value=True, - stake_amt=stake_amt, - prediction_ts=123, - wait_for_receipt=True, - ) - - allowance = contract.last_allowance[contract.config.owner] - assert allowance == Wei(MAX_UINT256) - stake_amt diff --git a/pdr_backend/contract/test/test_slot.py b/pdr_backend/contract/test/test_slot.py deleted file mode 100644 index 42963bb25..000000000 --- a/pdr_backend/contract/test/test_slot.py +++ /dev/null @@ -1,23 +0,0 @@ -from pdr_backend.contract.slot import Slot -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed - - -def test_slot_initialization(): - feed = SubgraphFeed( - "Contract Name", - "0x12345", - "test", - 60, - 15, - "0xowner", - "BTC/ETH", - "1h", - "binance", - ) - - slot_number = 5 - slot = Slot(slot_number, feed) - - assert slot.slot_number == slot_number - assert slot.feed == feed - assert isinstance(slot.feed, SubgraphFeed) diff --git a/pdr_backend/contract/test/test_token.py b/pdr_backend/contract/test/test_token.py deleted file mode 100644 index 1396d8be2..000000000 --- a/pdr_backend/contract/test/test_token.py +++ /dev/null @@ -1,44 +0,0 @@ -import time -from unittest.mock import patch - -from enforce_typing import enforce_types - -from pdr_backend.contract.token import Token -from pdr_backend.util.currency_types import Wei - - -@enforce_types -def test_token(web3_pp, web3_config): - token_address = web3_pp.OCEAN_address - token = Token(web3_pp, token_address) - - accounts = web3_config.w3.eth.accounts - owner_addr = web3_config.owner - alice = accounts[1] - - call_params = web3_pp.tx_call_params() - token.contract_instance.functions.mint(owner_addr, 1000000000).transact(call_params) - - allowance_start = token.allowance(owner_addr, alice) - token.approve(alice, allowance_start + 100, True) - time.sleep(1) - allowance_end = token.allowance(owner_addr, alice) - assert allowance_end - allowance_start == Wei(100) - - balance_start = token.balanceOf(alice) - token.transfer(alice, Wei(100), owner_addr) - balance_end = token.balanceOf(alice) - assert balance_end - balance_start == Wei(100) - - -@enforce_types -def test_native_token(web3_pp): - token = web3_pp.NativeToken - assert token.w3 - - owner = web3_pp.web3_config.owner - assert token.balanceOf(owner) - - with patch("web3.eth.Eth.send_transaction") as mock: - token.transfer(owner, Wei(100), "0x123", False) - assert mock.called diff --git a/pdr_backend/contract/test/test_wrapped_token.py b/pdr_backend/contract/test/test_wrapped_token.py deleted file mode 100644 index 933df3ad8..000000000 --- a/pdr_backend/contract/test/test_wrapped_token.py +++ /dev/null @@ -1,21 +0,0 @@ -from unittest.mock import Mock, patch - -from enforce_typing import enforce_types - -from pdr_backend.contract.wrapped_token import WrappedToken -from pdr_backend.util.currency_types import Wei - - -@enforce_types -def test_native_token(web3_pp): - token_address = web3_pp.get_address("Ocean") - mock_wrapped_contract = Mock() - mock_transaction = Mock() - mock_transaction.transact.return_value = "mock_tx" - mock_wrapped_contract.functions.withdraw.return_value = mock_transaction - - with patch("web3.eth.Eth.contract") as mock: - mock.return_value = mock_wrapped_contract - token = WrappedToken(web3_pp, token_address) - - assert token.withdraw(Wei(100), False) == "mock_tx" diff --git a/pdr_backend/dfbuyer/test/conftest.py b/pdr_backend/dfbuyer/test/conftest.py deleted file mode 100644 index 2c7184249..000000000 --- a/pdr_backend/dfbuyer/test/conftest.py +++ /dev/null @@ -1,55 +0,0 @@ -from unittest.mock import MagicMock, patch - -import pytest - -from pdr_backend.contract.predictoor_batcher import mock_predictoor_batcher -from pdr_backend.dfbuyer.dfbuyer_agent import DFBuyerAgent -from pdr_backend.ppss.ppss import mock_feed_ppss -from pdr_backend.ppss.web3_pp import inplace_mock_feedgetters -from pdr_backend.util.constants import MAX_UINT, ZERO_ADDRESS - -PATH = "pdr_backend.dfbuyer.dfbuyer_agent" - - -@pytest.fixture() -def mock_token(): - with patch("pdr_backend.ppss.web3_pp.Token") as mock_token_class: - mock_token_instance = MagicMock() - mock_token_instance.allowance.return_value = MAX_UINT - mock_token_class.return_value = mock_token_instance - yield mock_token_class - - -_MOCK_FEED_PPSS = None # (feed, ppss) - - -def _mock_feed_ppss(): - global _MOCK_FEED_PPSS - if _MOCK_FEED_PPSS is None: - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - _MOCK_FEED_PPSS = (feed, ppss) - return _MOCK_FEED_PPSS - - -@pytest.fixture -def mock_ppss(): - _, ppss = _mock_feed_ppss() - return ppss - - -@pytest.fixture -def mock_PredictoorBatcher(mock_ppss): # pylint: disable=redefined-outer-name - with patch(f"{PATH}.PredictoorBatcher") as mock: - mock.return_value = mock_predictoor_batcher(mock_ppss.web3_pp) - yield mock - - -@pytest.fixture -def mock_dfbuyer_agent( # pylint: disable=unused-argument, redefined-outer-name - mock_token, - mock_ppss, - mock_PredictoorBatcher, -): - with patch.object(mock_ppss.web3_pp, "get_address", return_value=ZERO_ADDRESS): - return DFBuyerAgent(mock_ppss) diff --git a/pdr_backend/dfbuyer/test/test_dfbuyer_agent.py b/pdr_backend/dfbuyer/test/test_dfbuyer_agent.py deleted file mode 100644 index 1b68e19fc..000000000 --- a/pdr_backend/dfbuyer/test/test_dfbuyer_agent.py +++ /dev/null @@ -1,308 +0,0 @@ -from unittest.mock import MagicMock, call, patch - -import pytest -from ccxt.base.exchange import math -from enforce_typing import enforce_types - -from pdr_backend.contract.predictoor_batcher import PredictoorBatcher -from pdr_backend.dfbuyer.dfbuyer_agent import WEEK, DFBuyerAgent -from pdr_backend.ppss.dfbuyer_ss import DFBuyerSS -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.constants import MAX_UINT, ZERO_ADDRESS -from pdr_backend.util.web3_config import Web3Config -from pdr_backend.util.time_types import UnixTimeS -from pdr_backend.util.currency_types import Eth, Wei - -PATH = "pdr_backend.dfbuyer.dfbuyer_agent" - - -@enforce_types -def test_dfbuyer_agent_constructor( # pylint: disable=unused-argument - mock_token, - mock_ppss, - mock_PredictoorBatcher, -): - mock_token.return_value.allowance.return_value = 0 - - agent = DFBuyerAgent(mock_ppss) - - mock_token.assert_called_with(mock_ppss.web3_pp, agent.OCEAN_addr) - mock_token_instance = mock_token() - mock_token_instance.approve.assert_called_with( - agent.predictoor_batcher.contract_address, int(MAX_UINT), True - ) - - -@enforce_types -def test_dfbuyer_agent_constructor_empty(): - # test with no feeds - mock_ppss_empty = MagicMock(spec=PPSS) - mock_ppss_empty.dfbuyer_ss = MagicMock(spec=DFBuyerSS) - mock_ppss_empty.dfbuyer_ss.filter_feeds_from_candidates.return_value = {} - mock_ppss_empty.web3_pp = MagicMock(spec=Web3PP) - mock_ppss_empty.web3_pp.query_feed_contracts.return_value = {} - - with pytest.raises(ValueError, match="No feeds found"): - DFBuyerAgent(mock_ppss_empty) - - -@enforce_types -def test_dfbuyer_agent_get_expected_amount_per_feed(mock_dfbuyer_agent): - ts = UnixTimeS(1695211135) - amount_per_feed_per_interval = ( - mock_dfbuyer_agent.ppss.dfbuyer_ss.amount_per_interval - / len(mock_dfbuyer_agent.feeds) - ) - week_start = (math.floor(ts / WEEK)) * WEEK - time_passed = ts - week_start - n_intervals = ( - int(time_passed / mock_dfbuyer_agent.ppss.dfbuyer_ss.consume_interval_seconds) - + 1 - ) - expected_result = n_intervals * amount_per_feed_per_interval - result = mock_dfbuyer_agent._get_expected_amount_per_feed(ts) - assert result == expected_result - - -def test_dfbuyer_agent_get_expected_amount_per_feed_hardcoded(mock_dfbuyer_agent): - ts = UnixTimeS(1695859200) - end = ts + WEEK - 86400 # last day - just_before_new_week = ts + WEEK - 1 # 1 second before next week - - amount_per_feed_per_interval = ( - mock_dfbuyer_agent.ppss.dfbuyer_ss.amount_per_interval - / len(mock_dfbuyer_agent.feeds) - ) - result1 = mock_dfbuyer_agent._get_expected_amount_per_feed(ts) - assert result1 == amount_per_feed_per_interval - assert result1 * len(mock_dfbuyer_agent.feeds) == 37000 / 7 # first day - - result2 = mock_dfbuyer_agent._get_expected_amount_per_feed(end) - assert result2 == amount_per_feed_per_interval * 7 - assert ( - result2 * len(mock_dfbuyer_agent.feeds) == 37000 - ) # last day, should distribute all - - result3 = mock_dfbuyer_agent._get_expected_amount_per_feed(just_before_new_week) - assert result3 == amount_per_feed_per_interval * 7 - assert result3 * len(mock_dfbuyer_agent.feeds) == 37000 # still last day - - -@enforce_types -@patch(f"{PATH}.get_consume_so_far_per_contract") -def test_dfbuyer_agent_get_consume_so_far(mock_get_consume_so_far, mock_dfbuyer_agent): - agent = MagicMock() - agent.ppss.web3_pp.web3_config.owner = "0x123" - agent.feeds = {"feed1": "0x1", "feed2": "0x2"} - mock_get_consume_so_far.return_value = {"0x1": 10.5} - expected_result = {"0x1": 10.5} - result = mock_dfbuyer_agent._get_consume_so_far(0) - assert result == expected_result - - -@enforce_types -@patch(f"{PATH}.FeedContract") -def test_dfbuyer_agent_get_prices(mock_contract, mock_dfbuyer_agent): - mock_contract_instance = MagicMock() - mock_contract.return_value = mock_contract_instance - mock_contract_instance.get_price.return_value = Wei(10000) - result = mock_dfbuyer_agent._get_prices(["0x1", "0x2"]) - assert result["0x1"] == Wei(10000).to_eth() - assert result["0x2"] == Wei(10000).to_eth() - - -@enforce_types -def test_dfbuyer_agent_prepare_batches(mock_dfbuyer_agent): - addresses = [ZERO_ADDRESS[: -len(str(i))] + str(i) for i in range(1, 7)] - consume_times = dict(zip(addresses, [10, 30, 14, 6, 24, 16])) - result = mock_dfbuyer_agent._prepare_batches(consume_times) - - expected_result = [ - ([addresses[0], addresses[1]], [10, 10]), - ([addresses[1]], [20]), - ([addresses[2], addresses[3]], [14, 6]), - ([addresses[4]], [20]), - ([addresses[4], addresses[5]], [4, 16]), - ] - assert result == expected_result - - -@enforce_types -def test_dfbuyer_agent_get_missing_consumes( # pylint: disable=unused-argument - mock_token, - monkeypatch, -): - ppss = MagicMock(spec=PPSS) - ppss.web3_pp = MagicMock(spec=Web3PP) - - addresses = [ZERO_ADDRESS[: -len(str(i))] + str(i) for i in range(1, 7)] - feeds = {address: MagicMock() for address in addresses} - ppss.web3_pp.query_feed_contracts = MagicMock() - ppss.web3_pp.query_feed_contracts.return_value = feeds - ppss.web3_pp.OCEAN_Token.allowance.return_value = MAX_UINT - - ppss.dfbuyer_ss = MagicMock(spec=DFBuyerSS) - ppss.dfbuyer_ss.batch_size = 3 - ppss.dfbuyer_ss.filter_feeds_from_candidates.return_value = feeds - - batcher_class = MagicMock(spec=PredictoorBatcher) - monkeypatch.setattr(f"{PATH}.PredictoorBatcher", batcher_class) - - dfbuyer_agent = DFBuyerAgent(ppss) - - consume_amts = dict(zip(addresses, [10, 11, 32, 24, 41, 0])) - dfbuyer_agent._get_consume_so_far = MagicMock() - dfbuyer_agent._get_consume_so_far.return_value = consume_amts - - dfbuyer_agent._get_expected_amount_per_feed = MagicMock() - dfbuyer_agent._get_expected_amount_per_feed.return_value = 15 - - ts = 0 - result = dfbuyer_agent._get_missing_consumes(ts) - expected_consume = dfbuyer_agent._get_expected_amount_per_feed(ts) - expected_result = { - address: expected_consume - consume_amts[address] - for address in addresses - if expected_consume - consume_amts[address] >= 0 - } - assert result == expected_result - dfbuyer_agent._get_consume_so_far.assert_called_once_with(ts) - - -@enforce_types -def test_dfbuyer_agent_get_missing_consume_times(mock_dfbuyer_agent): - missing_consumes = {"0x1": Eth(10.5), "0x2": Eth(20.3), "0x3": Eth(30.7)} - prices = {"0x1": Eth(2.5), "0x2": Eth(3.3), "0x3": Eth(4.7)} - result = mock_dfbuyer_agent._get_missing_consume_times(missing_consumes, prices) - expected_result = {"0x1": 5, "0x2": 7, "0x3": 7} - assert result == expected_result - - -@enforce_types -@patch(f"{PATH}.wait_until_subgraph_syncs") -@patch("time.sleep", return_value=None) -@patch.object(DFBuyerAgent, "_get_missing_consumes") -@patch.object(DFBuyerAgent, "_get_prices") -@patch.object(DFBuyerAgent, "_get_missing_consume_times") -@patch.object(DFBuyerAgent, "_batch_txs") -@patch.object(Web3Config, "get_block") -# pylint: disable=too-many-positional-arguments -def test_dfbuyer_agent_take_step( - mock_get_block, - mock_batch_txs, - mock_get_missing_consume_times, - mock_get_prices, - mock_get_missing_consumes, - mock_sleep, - mock_subgraph_sync, # pylint: disable=unused-argument - mock_dfbuyer_agent, -): - ts = 0 - mock_get_missing_consumes.return_value = { - "0x1": Eth(10.5), - "0x2": Eth(20.3), - "0x3": Eth(30.7), - } - mock_get_prices.return_value = {"0x1": Eth(2.5), "0x2": Eth(3.3), "0x3": Eth(4.7)} - mock_get_missing_consume_times.return_value = {"0x1": 5, "0x2": 7, "0x3": 7} - mock_get_block.return_value = {"timestamp": 120} - mock_batch_txs.return_value = False - mock_dfbuyer_agent.take_step(ts) - mock_get_missing_consumes.assert_called_once_with(ts) - mock_get_prices.assert_called_once_with( - list(mock_get_missing_consumes.return_value.keys()) - ) - mock_get_missing_consume_times.assert_called_once_with( - mock_get_missing_consumes.return_value, mock_get_prices.return_value - ) - mock_batch_txs.assert_called_once_with(mock_get_missing_consume_times.return_value) - mock_get_block.assert_called_once_with("latest") - mock_sleep.assert_called_once_with(86400 - 60) - - # empty feeds - mock_dfbuyer_agent.feeds = [] - assert mock_dfbuyer_agent.take_step(ts) is None - - -@enforce_types -@patch.object(DFBuyerAgent, "take_step") -@patch.object(Web3Config, "get_block") -def test_dfbuyer_agent_run(mock_get_block, mock_take_step, mock_dfbuyer_agent): - mock_get_block.return_value = {"timestamp": 0} - mock_dfbuyer_agent.run(testing=True) - mock_get_block.assert_called_once_with("latest") - mock_take_step.assert_called_once_with(mock_get_block.return_value["timestamp"]) - - # empty feeds - mock_dfbuyer_agent.feeds = [] - assert mock_dfbuyer_agent.run(testing=True) is None - - -@enforce_types -@patch(f"{PATH}.time.sleep", return_value=None) -def test_dfbuyer_agent_consume_method(mock_sleep, mock_dfbuyer_agent): - mock_batcher = mock_dfbuyer_agent.predictoor_batcher - - addresses_to_consume = ["0x1", "0x2"] - times_to_consume = [2, 3] - - successful_tx = {"transactionHash": b"some_hash", "status": 1} - failed_tx = {"transactionHash": b"some_hash", "status": 0} - exception_tx = Exception("Error") - - mock_batcher.consume_multiple.return_value = successful_tx - assert mock_dfbuyer_agent._consume(addresses_to_consume, times_to_consume) - - mock_batcher.consume_multiple.return_value = failed_tx - assert not mock_dfbuyer_agent._consume(addresses_to_consume, times_to_consume) - - mock_batcher.consume_multiple.side_effect = exception_tx - with pytest.raises(Exception, match="Error"): - mock_dfbuyer_agent._consume(addresses_to_consume, times_to_consume) - - assert mock_sleep.call_count == mock_dfbuyer_agent.ppss.dfbuyer_ss.max_request_tries - - -@enforce_types -def test_dfbuyer_agent_consume_batch_method(mock_dfbuyer_agent): - addresses_to_consume = ["0x1", "0x2"] - times_to_consume = [2, 3] - - with patch.object( - mock_dfbuyer_agent, "_consume", side_effect=[False, True, False, False, True] - ) as mock_consume: - mock_dfbuyer_agent._consume_batch(addresses_to_consume, times_to_consume) - calls = [ - call(addresses_to_consume, times_to_consume), - call([addresses_to_consume[0]], [times_to_consume[0]]), - call([addresses_to_consume[1]], [times_to_consume[1]]), - call([addresses_to_consume[1]], [times_to_consume[1] // 2]), - call( - [addresses_to_consume[1]], - [times_to_consume[1] // 2 + times_to_consume[1] % 2], - ), - ] - mock_consume.assert_has_calls(calls) - - -@enforce_types -def test_dfbuyer_agent_batch_txs(mock_dfbuyer_agent): - addresses = [ZERO_ADDRESS[: -len(str(i))] + str(i) for i in range(1, 7)] - consume_times = dict(zip(addresses, [10, 30, 14, 6, 24, 16])) - - with patch.object( - mock_dfbuyer_agent, - "_consume_batch", - side_effect=[False, True, False, True, True], - ): - failures = mock_dfbuyer_agent._batch_txs(consume_times) - - assert failures - - with patch.object( - mock_dfbuyer_agent, "_consume_batch", side_effect=[True, True, True, True, True] - ): - failures = mock_dfbuyer_agent._batch_txs(consume_times) - - assert failures diff --git a/pdr_backend/pdr_dashboard/test/test_callbacks_common.py b/pdr_backend/pdr_dashboard/test/test_callbacks_common.py deleted file mode 100644 index e131def7d..000000000 --- a/pdr_backend/pdr_dashboard/test/test_callbacks_common.py +++ /dev/null @@ -1,43 +0,0 @@ -import time -from datetime import UTC, datetime - -from pdr_backend.pdr_dashboard.test.resources import start_server_and_wait - - -def test_navigation(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - # Default page is Home - dash_duo.wait_for_element_by_id("plots_container", timeout=10) - - # Navigate to Feeds - dash_duo.wait_for_element("#navbar-container a[href='/feeds']").click() - dash_duo.wait_for_element_by_id("feeds_page_metrics_row", timeout=10) - dash_duo.wait_for_element_by_id("feeds_page_table", timeout=10) - - # Navigate to Home - dash_duo.wait_for_element("#navbar-container a[href='/']").click() - dash_duo.wait_for_element_by_id("plots_container", timeout=10) - - -def test_set_period_start_date(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - # Default page is Home - dash_duo.wait_for_element_by_id("plots_container", timeout=10) - - # Set period start date - assert app.data.start_date is None - dash_duo.find_elements("#general-lake-date-period-radio-items label")[0].click() - time.sleep(1) - assert app.data.start_date is not None - - delta = datetime.now(UTC) - app.data.start_date - assert delta.days == 1 - assert delta.seconds < 120 - - dash_duo.find_elements("#general-lake-date-period-radio-items label")[3].click() - time.sleep(1) - assert app.data.start_date is None diff --git a/pdr_backend/pdr_dashboard/test/test_callbacks_feeds.py b/pdr_backend/pdr_dashboard/test/test_callbacks_feeds.py deleted file mode 100644 index ef29c04c6..000000000 --- a/pdr_backend/pdr_dashboard/test/test_callbacks_feeds.py +++ /dev/null @@ -1,284 +0,0 @@ -import json -import time -from typing import Any, Callable - -from selenium.webdriver.common.by import By - -from pdr_backend.pdr_dashboard.test.resources import ( - _assert_table_row_count, - _clear_feeds_filters, - _navigate_to_feeds_page, - _remove_tags, - _set_dropdown_and_verify_row_count, - _set_input_value_and_submit, - _set_searchbar_value, - start_server_and_wait, -) - - -def _prepare_table_data_to_be_saved_as_json(table): - rows = table.find_elements(By.XPATH, ".//tr") - header = rows[0].find_elements(By.XPATH, ".//th") - - headers = [_remove_tags(th.text) for th in header] - - table_data = [] - - for row in rows[1:]: # Skip header row - cells = row.find_elements(By.XPATH, ".//td") - row_data = {headers[i]: _remove_tags(cells[i].text) for i in range(len(cells))} - table_data.append(row_data) - - return table_data - - -def _verify_table_data_order( - table, filename, skip_condition: Callable[[Any], bool] = lambda x: False -): - table_data = _prepare_table_data_to_be_saved_as_json(table) - - with open("pdr_backend/pdr_dashboard/test/json_fixtures/" + filename) as f: - expected_data = json.load(f) - - for i, row in enumerate(table_data): - if skip_condition(expected_data[i]): - continue - - assert row == expected_data[i] - - -def _verify_table_data(table, filename): - table_data = _prepare_table_data_to_be_saved_as_json(table) - - with open("pdr_backend/pdr_dashboard/test/json_fixtures/" + filename) as f: - expected_data = json.load(f) - - for _, row in enumerate(table_data): - assert row in expected_data - - -def _save_table_data(table, filename): - table_data = _prepare_table_data_to_be_saved_as_json(table) - - with open("pdr_backend/pdr_dashboard/test/json_fixtures/" + filename, "w") as f: - json.dump(table_data, f) - - -def test_feeds_table(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_feeds_page(dash_duo) - - dash_duo.wait_for_element("#feeds_page_table table") - - table = dash_duo.find_element("#feeds_page_table table") - - time.sleep(3) - # Validate row and column count - rows = table.find_elements(By.XPATH, ".//tr") - assert len(rows) == 21 - - header = rows[0].find_elements(By.XPATH, ".//th") - columns = header - assert len(columns) == 12 - - # Validate headers - header_texts = [_remove_tags(c.text) for c in columns] - - expected_headers = [ - "", - "Addr", - "Base Token", - "Quote Token", - "Source", - "Timeframe", - "Accuracy", - "Avg Stake Per Epoch (Ocean)", - "Volume (Ocean)", - "Price (Ocean)", - "Sales", - "Sales Revenue (Ocean)", - ] - assert header_texts == expected_headers - - _verify_table_data(table, "expected_feeds_table_data.json") - - -def test_feeds_page_metrics_row(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_feeds_page(dash_duo) - dash_duo.wait_for_element("#feeds_page_metrics_row") - - metrics_row = dash_duo.find_element("#feeds_page_metrics_row") - - # Validate metrics - # select first level divs - metrics = metrics_row.find_elements(By.XPATH, "./div") - assert len(metrics) == 5 - - metric_texts = [_remove_tags(m.text) for m in metrics] - expected_metrics = [ - "Feeds", - "", - "Volume", - "Sales", - "Revenue", - ] - - for i, metric in enumerate(expected_metrics): - assert metric in metric_texts[i] - - -def test_feeds_table_filters(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_feeds_page(dash_duo) - dash_duo.wait_for_element("#feeds_page_table") - dash_duo.wait_for_element("#base_token") - - table = dash_duo.find_element("#feeds_page_table table") - - # Test filtering with base token - _set_dropdown_and_verify_row_count(dash_duo, "#base_token", "ETH", 3) - _verify_table_data(table, "filtered_base_token_eth.json") - - # Test filtering with timeframe - _set_dropdown_and_verify_row_count(dash_duo, "#timeframe", "5m", 2) - _verify_table_data(table, "filtered_base_token_eth_5m.json") - - _clear_feeds_filters(dash_duo) - _assert_table_row_count(dash_duo, "#feeds_page_table", 21) - _verify_table_data(table, "expected_feeds_table_data.json") - - # Test filtering with ADA base token and accuracy range - _set_dropdown_and_verify_row_count(dash_duo, "#base_token", "ADA", 3) - _verify_table_data(table, "filtered_base_token_ada.json") - - _clear_feeds_filters(dash_duo) - # Test filtering with accuracy min value - _set_input_value_and_submit( - dash_duo, "#accuracy_dropdown", "#accuracy_min", "90", "#accuracy_button" - ) - _assert_table_row_count(dash_duo, "#feeds_page_table", 1) - _verify_table_data(table, "filtered_accuracy_min_90.json") - - # Test filtering with accuracy min value - _set_input_value_and_submit( - dash_duo, None, "#accuracy_min", "55", "#accuracy_button" - ) - _assert_table_row_count(dash_duo, "#feeds_page_table", 2) - _verify_table_data(table, "filtered_accuracy_min_55.json") - - # Test filtering with volume max value - _set_input_value_and_submit( - dash_duo, "#volume_dropdown", "#volume_max", "14000", "#volume_button" - ) - _assert_table_row_count(dash_duo, "#feeds_page_table", 1) - _verify_table_data(table, "filtered_volume_max_1400.json") - - _clear_feeds_filters(dash_duo) - _assert_table_row_count(dash_duo, "#feeds_page_table", 21) - _verify_table_data(table, "expected_feeds_table_data.json") - - -def test_feeds_table_modal(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_feeds_page(dash_duo) - dash_duo.wait_for_element("#feeds_page_table") - - # Select a row - table = dash_duo.find_element("#feeds_page_table") - table.find_element(By.XPATH, "//tr[2]//td[1]//input[@type='radio']").click() - time.sleep(1) - - base_token = table.find_element(By.XPATH, "//tr[2]//td[3]//div").text - quote_token = table.find_element(By.XPATH, "//tr[2]//td[4]//div").text - timeframe = table.find_element(By.XPATH, "//tr[2]//td[6]//div").text - source = table.find_element(By.XPATH, "//tr[2]//td[5]//div").text - - dash_duo.wait_for_element("#feeds_modal", timeout=4) - - # Validate modal content - modal = dash_duo.find_element("#feeds_modal") - header_text = modal.find_element( - By.XPATH, "//div[@id='feeds_modal-header']//span" - ).text - assert header_text == f"{base_token}-{quote_token} {timeframe} {source}" - - number_of_plots = len( - modal.find_element(By.ID, "feeds_modal-body").find_elements( - By.CLASS_NAME, "dash-graph" - ) - ) - assert number_of_plots == 6 - - # Close modal by clicking the background - dash_duo.find_element(".modal").click() - - # Ensure no row is selected - assert not any( - "selected" in row.get_attribute("class") - for row in table.find_elements(By.XPATH, ".//tr") - ) - - -def test_feeds_searchbar(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_feeds_page(dash_duo) - dash_duo.wait_for_element("#search-input-feeds-table") - table = dash_duo.find_element("#feeds_page_table") - _set_searchbar_value( - dash_duo, "#search-input-feeds-table", "ETH", "#feeds_page_table", 3 - ) - _verify_table_data(table, "search_eth.json") - - _set_searchbar_value( - dash_duo, "#search-input-feeds-table", "ADA", "#feeds_page_table", 3 - ) - _verify_table_data(table, "search_ada.json") - - _set_searchbar_value( - dash_duo, "#search-input-feeds-table", "6f3bc", "#feeds_page_table", 2 - ) - _verify_table_data(table, "search_6f3bc.json") - - _set_searchbar_value( - dash_duo, "#search-input-feeds-table", "NO_ROWS", "#feeds_page_table", 1 - ) - _verify_table_data(table, "search_no_rows.json") - - -def test_sort_table(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_feeds_page(dash_duo) - - # Wait for the table to be fully rendered - dash_duo.wait_for_element("#feeds_page_table") - - # Select the table element - table = dash_duo.find_element("#feeds_page_table") - - actionables = table.find_elements( - By.XPATH, "//div//div[@class='column-actions']//span" - )[6] - - actionables.click() - # Wait for the sort to apply - time.sleep(2) # Sometimes sorting might take a moment - - # Check if the data is sorted ascending - _verify_table_data_order( - table, - "sorted_feeds_table_asc_by_avg_stake.json", - lambda x: x["Avg Stake Per Epoch (Ocean)"] == "0", - ) diff --git a/pdr_backend/pdr_dashboard/test/test_callbacks_predictoors.py b/pdr_backend/pdr_dashboard/test/test_callbacks_predictoors.py deleted file mode 100644 index d5ad5c9dc..000000000 --- a/pdr_backend/pdr_dashboard/test/test_callbacks_predictoors.py +++ /dev/null @@ -1,231 +0,0 @@ -import time - -from selenium.webdriver.common.by import By - -from pdr_backend.pdr_dashboard.test.resources import ( - _assert_table_row_count, - _clear_predictoors_filters, - _navigate_to_predictoors_page, - _remove_tags, - _set_input_value_and_submit, - _set_searchbar_value, - start_server_and_wait, -) -from pdr_backend.pdr_dashboard.test.test_callbacks_feeds import ( - _verify_table_data, - _verify_table_data_order, - _save_table_data, -) - - -def test_predictoors_table(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_predictoors_page(dash_duo) - dash_duo.wait_for_element("#predictoors_page_table table") - - time.sleep(5) - table = dash_duo.find_element("#predictoors_page_table table") - - # Validate row and column count - rows = table.find_elements(By.XPATH, ".//tr") - assert len(rows) == 58 - - header = rows[0].find_elements(By.XPATH, ".//th") - columns = header - assert len(columns) == 10 - - # Validate headers - header_texts = [_remove_tags(c.text) for c in columns] - expected_headers = [ - "", - "Addr", - "Apr", - "Accuracy", - "Number Of Feeds", - "Staked (Ocean)", - "Gross Income (Ocean)", - "Stake Loss (Ocean)", - "Tx Costs (Ocean)", - "Profit (Ocean)", - ] - assert header_texts == expected_headers - - _verify_table_data(table, "expected_predictoors_table_data.json") - - -def test_predictoors_page_metrics_row(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_predictoors_page(dash_duo) - - dash_duo.wait_for_element("#predictoors_page_metrics_row") - - time.sleep(5) - metrics_row = dash_duo.find_element("#predictoors_page_metrics_row") - - # Validate metrics - # select first level divs - metrics = metrics_row.find_elements(By.XPATH, "./div") - assert len(metrics) == 5 - - metric_texts = [_remove_tags(m.text) for m in metrics] - expected_metrics = [ - "Predictoors", - "Accuracy(avg)", - "Staked", - "Gross Income", - "Clipped Payout", - ] - - for i, metric in enumerate(expected_metrics): - assert metric in metric_texts[i] - - -def test_predictoors_table_filters(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_predictoors_page(dash_duo) - dash_duo.wait_for_element("#predictoors_page_table") - dash_duo.wait_for_element("#p_avg_accuracy_dropdown") - - table = dash_duo.find_element("#predictoors_page_table table") - - _clear_predictoors_filters(dash_duo) - # Test filtering with accuracy min value - _set_input_value_and_submit( - dash_duo, - "#p_avg_accuracy_dropdown", - "#p_avg_accuracy_min", - "90", - "#p_avg_accuracy_button", - ) - - _assert_table_row_count(dash_duo, "#predictoors_page_table", 1) - _verify_table_data(table, "filtered_p_avg_accuracy_min_90.json") - - # Test filtering with accuracy min value - _set_input_value_and_submit( - dash_duo, None, "#p_avg_accuracy_min", "55", "#p_avg_accuracy_button" - ) - _assert_table_row_count(dash_duo, "#predictoors_page_table", 4) - _verify_table_data(table, "filtered_p_avg_accuracy_min_55.json") - - # Test filtering with staked max value + natural language - _set_input_value_and_submit( - dash_duo, "#staked_dropdown", "#staked_max", "4K", "#staked_button" - ) - _assert_table_row_count(dash_duo, "#predictoors_page_table", 1) - _verify_table_data(table, "filtered_staked_max_4K.json") - - _clear_predictoors_filters(dash_duo) - _assert_table_row_count(dash_duo, "#predictoors_page_table", 58) - _verify_table_data(table, "expected_predictoors_table_data.json") - - -def test_predictoors_table_modal(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_predictoors_page(dash_duo) - dash_duo.wait_for_element("#predictoors_page_table") - - # Select a row - table = dash_duo.find_element("#predictoors_page_table") - table.find_element(By.XPATH, "//tr[2]//td[1]//input[@type='radio']").click() - time.sleep(1) - - addr_short = table.find_element(By.XPATH, "//tr[2]//td[2]//div").text - - dash_duo.wait_for_element("#predictoors_modal", timeout=4) - - # Validate modal content - modal = dash_duo.find_element("#predictoors_modal") - header_text = modal.find_element( - By.XPATH, "//div[@id='predictoors_modal-header']//span" - ).text - assert ( - header_text == addr_short[:5] + "..." + addr_short[-5:] + " - Predictoor Data" - ) - - number_of_plots = len( - modal.find_element(By.ID, "predictoors_modal-body").find_elements( - By.CLASS_NAME, "dash-graph" - ) - ) - assert number_of_plots == 5 - - # Close modal by clicking the background - dash_duo.find_element(".modal").click() - - # Ensure no row is selected - assert not any( - "selected" in row.get_attribute("class") - for row in table.find_elements(By.XPATH, ".//tr") - ) - - -def test_predictoors_searchbar(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_predictoors_page(dash_duo) - - time.sleep(5) - dash_duo.wait_for_element("#search-input-predictoors-table") - table = dash_duo.find_element("#predictoors_page_table") - - _set_searchbar_value( - dash_duo, - "#search-input-predictoors-table", - "xac8", - "#predictoors_page_table", - 2, - ) - - _verify_table_data(table, "search_p_xac8.json") - - -def test_sort_table(_sample_app, dash_duo): - app = _sample_app - start_server_and_wait(dash_duo, app) - - _navigate_to_predictoors_page(dash_duo) - - time.sleep(4) - # Wait for the table to be fully rendered - dash_duo.wait_for_element("#predictoors_page_table") - - # Select the table element - table = dash_duo.find_element("#predictoors_page_table") - - # Click the 'Staked' column header to sort - actionables = table.find_elements( - By.XPATH, "//div//div[@class='column-actions']//span" - )[4] - actionables.click() - - # Wait for the sort to apply - time.sleep(4) # Sometimes sorting might take a moment - - # Check if the data is sorted ascending - _verify_table_data_order( - table, - "sorted_predictoors_table_asc_by_stake.json", - lambda x: x["Staked (Ocean)"] == "0", - ) - - # Click again to sort descending - actionables.click() - time.sleep(3) # Wait for the sort to apply - - _save_table_data(table, "sorted_predictoors_table_desc_by_stake.json") - # Check if the data is sorted descending - _verify_table_data_order( - table, - "sorted_predictoors_table_desc_by_stake.json", - lambda x: x["Staked (Ocean)"] == "0", - ) diff --git a/pdr_backend/pred_submitter/test/conftest.py b/pdr_backend/pred_submitter/test/conftest.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/pdr_backend/pred_submitter/test/test_deploy.py b/pdr_backend/pred_submitter/test/test_deploy.py deleted file mode 100644 index 4bf12fe7b..000000000 --- a/pdr_backend/pred_submitter/test/test_deploy.py +++ /dev/null @@ -1,16 +0,0 @@ -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import -from pdr_backend.contract.pred_submitter_mgr import ( - PredSubmitterMgr, -) -from pdr_backend.pred_submitter.deploy import ( - deploy_pred_submitter_mgr_contract, -) - - -# pylint: disable=redefined-outer-name -def test_deploy(web3_pp): - deployed_address = deploy_pred_submitter_mgr_contract(web3_pp) - assert deployed_address - - contract = PredSubmitterMgr(web3_pp, deployed_address) - assert contract.version() diff --git a/pdr_backend/pred_submitter/test/test_pred_submitter_manager.py b/pdr_backend/pred_submitter/test/test_pred_submitter_manager.py deleted file mode 100644 index 91928497b..000000000 --- a/pdr_backend/pred_submitter/test/test_pred_submitter_manager.py +++ /dev/null @@ -1,226 +0,0 @@ -# pylint: disable=redefined-outer-name -from web3.types import RPCEndpoint - -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import -from pdr_backend.contract.dfrewards import DFRewards -from pdr_backend.contract.pred_submitter_mgr import ( - PredSubmitterMgr, -) - -from pdr_backend.util.currency_types import Wei -from pdr_backend.util.time_types import UnixTimeS - - -def test_version( - pred_submitter_mgr: PredSubmitterMgr, -): - version = pred_submitter_mgr.version() - assert version == "0.1.0", "Version should be 0.1.0" - - -def test_get_up_predictoor_address( - pred_submitter_mgr: PredSubmitterMgr, -): - address = pred_submitter_mgr.pred_submitter_up_address() - assert address - - -def test_get_down_predictoor_address( - pred_submitter_mgr: PredSubmitterMgr, -): - address = pred_submitter_mgr.pred_submitter_down_address() - assert address - - -def test_approve( - pred_submitter_mgr: PredSubmitterMgr, - feed_contract1, - feed_contract2, - OCEAN, -): - pmup = pred_submitter_mgr.pred_submitter_up_address() - pmdown = pred_submitter_mgr.pred_submitter_down_address() - pc1 = feed_contract1.contract_address - pc2 = feed_contract2.contract_address - assert OCEAN.allowance(pmup, pc1) == 0 - assert OCEAN.allowance(pmup, pc2) == 0 - assert OCEAN.allowance(pmdown, pc2) == 0 - assert OCEAN.allowance(pmdown, pc2) == 0 - - contract_addrs = [ - pc1, - pc2, - ] - tx_receipt = pred_submitter_mgr.approve_ocean(contract_addrs, True) - assert tx_receipt.status == 1, "Transaction failed" - - assert OCEAN.allowance(pmup, pc1).amt_wei == 2**256 - 1 - assert OCEAN.allowance(pmup, pc2).amt_wei == 2**256 - 1 - assert OCEAN.allowance(pmdown, pc1).amt_wei == 2**256 - 1 - assert OCEAN.allowance(pmdown, pc2).amt_wei == 2**256 - 1 - - -def test_transfer_erc20(pred_submitter_mgr: PredSubmitterMgr, OCEAN, web3_config): - OCEAN.transfer(pred_submitter_mgr.contract_address, Wei(100), web3_config.owner) - assert OCEAN.balanceOf(pred_submitter_mgr.contract_address) == Wei(100) - before = OCEAN.balanceOf(web3_config.owner) - pred_submitter_mgr.transfer_erc20( - OCEAN.contract_address, web3_config.owner, Wei(100) - ) - after = OCEAN.balanceOf(web3_config.owner) - assert Wei(after.amt_wei - before.amt_wei) == Wei(100) - assert OCEAN.balanceOf(pred_submitter_mgr.contract_address) == 0 - - -def test_transfer(pred_submitter_mgr: PredSubmitterMgr, web3_config): - tx = web3_config.w3.eth.send_transaction( - { - "to": pred_submitter_mgr.contract_address, - "value": 100, - "gasPrice": web3_config.w3.eth.gas_price, - "from": web3_config.owner, - } - ) - web3_config.w3.eth.wait_for_transaction_receipt(tx) - assert web3_config.w3.eth.get_balance(pred_submitter_mgr.contract_address) == 100 - before = web3_config.w3.eth.get_balance(web3_config.owner) - pred_submitter_mgr.transfer() - after = web3_config.w3.eth.get_balance(web3_config.owner) - assert after - before == 100 - assert web3_config.w3.eth.get_balance(pred_submitter_mgr.contract_address) == 0 - - -def test_claim_dfrewards(pred_submitter_mgr: PredSubmitterMgr, web3_pp, OCEAN): - dfrewards_addr = web3_pp.get_address("DFRewards") - dfrewards = DFRewards(web3_pp, dfrewards_addr) - - pmup = pred_submitter_mgr.pred_submitter_up_address() - pmdown = pred_submitter_mgr.pred_submitter_down_address() - - # approve rewards - OCEAN.approve(dfrewards_addr, Wei(200), web3_pp.web3_config.owner) - - # allocate rewards - tx = dfrewards.contract_instance.functions.allocate( - [pmup, pmdown], - [100, 100], - OCEAN.contract_address, - ).transact(web3_pp.tx_call_params()) - web3_pp.web3_config.w3.eth.wait_for_transaction_receipt(tx) - - # record before balances - before_up = OCEAN.balanceOf(pmup) - before_down = OCEAN.balanceOf(pmdown) - - # claim rewards - pred_submitter_mgr.claim_dfrewards(OCEAN.contract_address, dfrewards_addr) - - # record after balances - after_up = OCEAN.balanceOf(pmup) - after_down = OCEAN.balanceOf(pmdown) - - # assert - assert after_up - before_up == Wei(100) - assert after_down - before_down == Wei(100) - - -def test_submit_prediction_and_payout( - pred_submitter_mgr: PredSubmitterMgr, - web3_config, - feed_contract1: FeedContract, - feed_contract2, - OCEAN, -): - # the user approves 100 OCEAN tokens to the prediction manager - OCEAN.approve(pred_submitter_mgr.contract_address, Wei(100), web3_config.owner) - - # get the next prediction epoch - current_epoch = feed_contract1.get_current_epoch_ts() - - # set prediction epoch - prediction_epoch = UnixTimeS(current_epoch + S_PER_EPOCH * 3) - - # get the OCEAN balance of the owner before submitting - bal_before = OCEAN.balanceOf(web3_config.owner) - assert bal_before > Wei(100), "Not enough balance to execute the test" - - feed_addrs = [ - feed_contract1.contract_address, - feed_contract2.contract_address, - ] - # give allowance - tx_receipt = pred_submitter_mgr.approve_ocean(feed_addrs) - assert tx_receipt.status == 1, "Transaction failed" - - # submit prediction - # first feed up 20, down 30 - # second feed up 40, down 10 - tx_receipt = pred_submitter_mgr.submit_prediction( - stakes_up=[Wei(20), Wei(30)], - stakes_down=[Wei(40), Wei(10)], - feed_addrs=feed_addrs, - epoch=prediction_epoch, - wait_for_receipt=True, - ) - assert tx_receipt.status == 1, "Transaction failed" - - # get the OCEAN balance of the contract after submitting - bal_after = OCEAN.balanceOf(web3_config.owner) - assert bal_before - bal_after == Wei(100), "Should have spent 100 OCEAN" - - # fast forward time to get payout - web3_config.w3.provider.make_request( - RPCEndpoint("evm_increaseTime"), [S_PER_EPOCH * 5] - ) - web3_config.w3.provider.make_request(RPCEndpoint("evm_mine"), []) - - # submit the trueval: True for first contract, False for second - feed_contract1.submit_trueval(True, prediction_epoch, False, True) - feed_contract2.submit_trueval(False, prediction_epoch, False, True) - - # time to claim payouts - - # get the OCEAN balance of the contract before claiming - bal_before = OCEAN.balanceOf(web3_config.owner) - - # claim - pred_submitter_mgr.get_payout([prediction_epoch], feed_addrs, wait_for_receipt=True) - - # get the OCEAN balance of the owner after claiming - bal_after = OCEAN.balanceOf(web3_config.owner) - - assert bal_after - bal_before == Wei(100), "Payout should be 100 OCEAN" - - # check predictions one by one - pmup = pred_submitter_mgr.pred_submitter_up_address() - pmdown = pred_submitter_mgr.pred_submitter_down_address() - - pred_down_first_feed = feed_contract1.get_prediction(prediction_epoch, pmdown) - pred_down_second_feed = feed_contract2.get_prediction(prediction_epoch, pmdown) - pred_up_first_feed = feed_contract1.get_prediction(prediction_epoch, pmup) - pred_up_second_feed = feed_contract2.get_prediction(prediction_epoch, pmup) - - assert pred_down_first_feed == ( - False, - 40, - pmdown, - True, - ), "Prediction should be False, 30" - assert pred_down_second_feed == ( - False, - 10, - pmdown, - True, - ), "Prediction should be True, 10" - assert pred_up_first_feed == ( - True, - 20, - pmup, - True, - ), "Prediction should be False, 20" - assert pred_up_second_feed == ( - True, - 30, - pmup, - True, - ), "Prediction should be True, 40" diff --git a/pdr_backend/predictoor/test/mockutil.py b/pdr_backend/predictoor/test/mockutil.py deleted file mode 100644 index 41640b6c4..000000000 --- a/pdr_backend/predictoor/test/mockutil.py +++ /dev/null @@ -1,117 +0,0 @@ -import os -from typing import List -from unittest.mock import Mock - -from enforce_typing import enforce_types - -from pdr_backend.ppss.ppss import mock_feed_ppss, mock_ppss -from pdr_backend.ppss.web3_pp import ( - inplace_mock_query_feed_contracts, - inplace_mock_w3_and_contract_with_tracking, -) -from pdr_backend.subgraph.subgraph_feed import mock_feed, SubgraphFeed -from pdr_backend.util.time_types import UnixTimeS - -PRIV_KEY = str(os.getenv("PRIVATE_KEY")) -PRIV_KEY2 = PRIV_KEY[:-4] + "0000" -OWNER_ADDR = "0xowner" -INIT_TIMESTAMP = UnixTimeS(107) -INIT_BLOCK_NUMBER = 13 - - -@enforce_types -def mock_ppss_1feed(approach: int, tmpdir: str, monkeypatch, pred_submitter_mgr=None): - """ - @description - Initialize the agent, and return it along with related info - For 1 feed (vs 2 or other). - - @return - feed -- SubgraphFeed, eg for binance BTC/USDT 5m - ppss -- PPSS - pdr_contract -- FeedContract corresponding to the feed - """ - # mock ppss, feed - monkeypatch.setenv("PRIVATE_KEY", PRIV_KEY) - monkeypatch.setenv("PRIVATE_KEY2", PRIV_KEY2) - feed, ppss = mock_feed_ppss( - "5m", - "binanceus", - "BTC/USDT", - network="development", - tmpdir=tmpdir, - pred_submitter_mgr=pred_submitter_mgr, - ) - ppss.predictoor_ss.set_approach(approach) - - # mock ppss.web3_pp.query_feed_contracts() - inplace_mock_query_feed_contracts(ppss.web3_pp, feed) - - # mock w3, pdr contract - pdr_contract = inplace_mock_w3_and_contract_with_tracking( - ppss.web3_pp, - INIT_TIMESTAMP, - INIT_BLOCK_NUMBER, - feed.seconds_per_epoch, - feed.address, - monkeypatch, - ) - - return (feed, ppss, pdr_contract) - - -@enforce_types -def mock_ppss_2feeds(approach: int, tmpdir: str, monkeypatch, pred_submitter_mgr=None): - """ - @description - Initialize the agent, and return it along with related info - For 2 feeds (vs 1 or other) - - @return - feeds -- list of SubgraphFeed, eg for binance {BTC,ETH}/USDT 5m - ppss -- PPSS - """ - monkeypatch.setenv("PRIVATE_KEY", PRIV_KEY) - monkeypatch.setenv("PRIVATE_KEY2", PRIV_KEY2) - - # mock ppss, feeds - exchange, timescale, quote = "binanceus", "5m", "USDT" - coins = ["BTC", "ETH"] - feeds: List[SubgraphFeed] = [ - mock_feed(timescale, exchange, f"{c}/{quote}") for c in coins - ] - ppss = mock_ppss( - [ - { - "predict": f"{exchange} {c}/{quote} c {timescale}", - "train_on": [f"{exchange} {c}/{quote} c {timescale}" for c in coins], - } - for c in coins - ], - network="development", - tmpdir=tmpdir, - pred_submitter_mgr=pred_submitter_mgr, - ) - ppss.predictoor_ss.set_approach(approach) - - # mock ppss.web3_pp.query_feed_contracts() - ppss.web3_pp.query_feed_contracts = Mock() - ppss.web3_pp.query_feed_contracts.return_value = { - feed.address: feed for feed in feeds - } - - # mock w3 - ppss.web3_pp._web3_config = Mock() - ppss.web3_pp._web3_config.w3 = Mock() - ppss.web3_pp._web3_config.w3.eth = Mock() - - # mock pdr contract - pdr_contract = Mock() - contract_func = Mock() - contract_func.return_value = pdr_contract - monkeypatch.setattr( - "pdr_backend.contract.feed_contract.FeedContract", - contract_func, - ) - - return (feeds, ppss) diff --git a/pdr_backend/predictoor/test/test_find_shared_slots.py b/pdr_backend/predictoor/test/test_find_shared_slots.py deleted file mode 100644 index 689e04a8b..000000000 --- a/pdr_backend/predictoor/test/test_find_shared_slots.py +++ /dev/null @@ -1,64 +0,0 @@ -from pdr_backend.predictoor.util import find_shared_slots - - -def test_shared_slots_basic(): - pending_slots = {"addr1": [1, 2, 3, 4], "addr2": [1, 2, 3, 4, 5], "addr3": [2]} - expected = [ - (["addr1", "addr2"], [1, 3, 4]), - (["addr1", "addr2", "addr3"], [2]), - (["addr2"], [5]), - ] - assert find_shared_slots(pending_slots, 100) == expected - - -def test_no_shared_slots(): - pending_slots = { - "addr1": [1, 2], - "addr2": [3, 4], - } - expected = [ - (["addr1"], [1, 2]), - (["addr2"], [3, 4]), - ] - assert find_shared_slots(pending_slots, 100) == expected - - -def test_single_address_multiple_slots(): - pending_slots = {"addr1": [1, 2, 3]} - expected = [ - (["addr1"], [1, 2, 3]), - ] - assert find_shared_slots(pending_slots, 100) == expected - - -def test_empty_input(): - pending_slots = {} - expected = [] - assert find_shared_slots(pending_slots, 100) == expected - - -def test_batch_size_1(): - pending_slots = {"addr1": [1, 2, 3, 4], "addr2": [1, 2, 3, 4, 5], "addr3": [2]} - expected = [ - (["addr1", "addr2"], [1]), - (["addr1", "addr2"], [3]), - (["addr1", "addr2"], [4]), - (["addr1", "addr2", "addr3"], [2]), - (["addr2"], [5]), - ] - assert find_shared_slots(pending_slots, 1) == expected - - -def test_batch_size_3(): - pending_slots = { - "addr1": [1, 2, 3, 4, 5], - "addr2": [1, 2, 3, 4, 5, 6], - "addr3": [2], - } - expected = [ - (["addr1", "addr2"], [1, 3, 4]), - (["addr1", "addr2"], [5]), - (["addr1", "addr2", "addr3"], [2]), - (["addr2"], [6]), - ] - assert find_shared_slots(pending_slots, 3) == expected diff --git a/pdr_backend/predictoor/test/test_predictoor_agent.py b/pdr_backend/predictoor/test/test_predictoor_agent.py deleted file mode 100644 index 93eb570c6..000000000 --- a/pdr_backend/predictoor/test/test_predictoor_agent.py +++ /dev/null @@ -1,407 +0,0 @@ -# pylint: disable=redefined-outer-name - -from unittest.mock import MagicMock, Mock, patch - -import pytest -import numpy as np -import polars as pl - -from enforce_typing import enforce_types -from numpy.testing import assert_array_equal - -from pdr_backend.cli.predict_train_feedsets import PredictTrainFeedset -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.ppss.predictoor_ss import PredictoorSS -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.predictoor.predictoor_agent import PredictoorAgent -from pdr_backend.predictoor.test.mockutil import ( - INIT_TIMESTAMP, - INIT_BLOCK_NUMBER, - mock_ppss_1feed, - mock_ppss_2feeds, -) -from pdr_backend.util.currency_types import Eth -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed - -# =========================================================================== -# test approach {1, 2, 3} - main loop - -# do _not_ parameterize these. It's much easier to test them individually -# and debug when they're separate - - -@enforce_types -def test_predictoor_agent_main1(tmpdir, monkeypatch, pred_submitter_mgr): - _test_predictoor_agent_main(1, str(tmpdir), monkeypatch, pred_submitter_mgr) - - -@enforce_types -def test_predictoor_agent_main2(tmpdir, monkeypatch, pred_submitter_mgr): - _test_predictoor_agent_main(2, str(tmpdir), monkeypatch, pred_submitter_mgr) - - -def test_predictoor_agent_main3(tmpdir, monkeypatch, pred_submitter_mgr): - _test_predictoor_agent_main(3, str(tmpdir), monkeypatch, pred_submitter_mgr) - - -@pytest.fixture() -def pred_submitter_mgr(): - with patch("pdr_backend.predictoor.predictoor_agent.PredSubmitterMgr") as mock: - mock.submit_prediction.return_value = {"transactionHash": b"hello", "status": 1} - mock.contract_address = "0x123" - yield mock - - -@enforce_types -def _test_predictoor_agent_main( - approach: int, tmpdir: str, monkeypatch, pred_submitter_mgr -): - """ - @description - Run the agent for a while, and then do some basic sanity checks. - Uses get_agent_1feed, *not* 2feeds. - """ - assert approach in [1, 2, 3] - - # mock tokens - mock_token = Mock() - mock_token.balanceOf.return_value = Eth(1000).to_wei() - - with patch("pdr_backend.ppss.web3_pp.Token", return_value=mock_token), patch( - "pdr_backend.ppss.web3_pp.NativeToken", return_value=mock_token - ): - _, ppss, _mock_pdr_contract = mock_ppss_1feed( - approach, - tmpdir, - monkeypatch, - ) - assert ppss.predictoor_ss.approach == approach - ppss.predictoor_ss.d["bot_only"][ - "pred_submitter_mgr" - ] = pred_submitter_mgr.contract_address - feed_contracts = ppss.web3_pp.query_feed_contracts() - web3_config = ppss.web3_pp.web3_config - w3 = ppss.web3_pp.w3 - mock_token = Mock() - mock_token.balanceOf.return_value = Eth(1000).to_wei() - ppss.web3_pp = MagicMock(spec=Web3PP) - ppss.web3_pp.OCEAN_Token = mock_token - ppss.web3_pp.NativeToken = mock_token - ppss.web3_pp.get_single_contract.return_value = _mock_pdr_contract - ppss.web3_pp.query_feed_contracts.return_value = feed_contracts - ppss.web3_pp.web3_config = web3_config - ppss.web3_pp.w3 = w3 - # now we're done the mocking, time for the real work!! - - # real work: main iterations - agent = PredictoorAgent(ppss) - for _ in range(500): - agent.take_step() - - # log some final results for debubbing / inspection - mock_w3 = ppss.web3_pp.web3_config.w3 - print("\n" + "/" * 160) - print("Done iterations") - print( - f"init block_number = {INIT_BLOCK_NUMBER}" - f", final = {mock_w3.eth.block_number}" - ) - print() - print(f"init timestamp = {INIT_TIMESTAMP}, final = {mock_w3.eth.timestamp}") - print(f"all timestamps seen = {mock_w3.eth._timestamps_seen}") - print() - print( - "unique prediction_slots = " - f"{sorted(set(_mock_pdr_contract._prediction_slots))}" - ) - print(f"all prediction_slots = {_mock_pdr_contract._prediction_slots}") - - # relatively basic sanity tests - # TO-DO Use the Prediction Submitter Manager to check these, commented out for now - # assert _mock_pdr_contract._prediction_slots - # assert (mock_w3.eth.timestamp + 2 * ppss.predictoor_ss.timeframe_s) >= max( - # _mock_pdr_contract._prediction_slots - # ) - - -# =========================================================================== -# test constructor - - -@enforce_types -def test_predictoor_agent_init_empty(pred_submitter_mgr): - """ - @description - Basic test: when there's no feeds, does it complain? - """ - # test with no feeds - pred_submitter_mgr_addr = pred_submitter_mgr.contract_address - mock_ppss_empty = MagicMock(spec=PPSS) - mock_ppss_empty.predictoor_ss = MagicMock(spec=PredictoorSS) - mock_ppss_empty.predictoor_ss.get_feed_from_candidates.return_value = [] - mock_ppss_empty.predictoor_ss.pred_submitter_mgr = pred_submitter_mgr_addr - mock_ppss_empty.web3_pp = MagicMock(spec=Web3PP) - mock_ppss_empty.web3_pp.query_feed_contracts.return_value = {} - - with pytest.raises(ValueError, match="No feeds found"): - PredictoorAgent(mock_ppss_empty) - - -# =========================================================================== -# test approach 3 - get_prediction() - -BTC_CLOSE_VALS = [10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0] -ETH_CLOSE_VALS = [30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0] - - -def mock_get_ohlcv_data2(*args, **kwargs): # pylint: disable=unused-argument - d = { - "timestamp": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109], - "binanceus:BTC/USDT:open": [1.0] * 10, - "binanceus:BTC/USDT:high": [1.0] * 10, - "binanceus:BTC/USDT:low": [1.0] * 10, - "binanceus:BTC/USDT:close": BTC_CLOSE_VALS, - "binanceus:BTC/USDT:volume": [1.0] * 10, - "binanceus:ETH/USDT:open": [1.0] * 10, - "binanceus:ETH/USDT:high": [1.0] * 10, - "binanceus:ETH/USDT:low": [1.0] * 10, - "binanceus:ETH/USDT:close": ETH_CLOSE_VALS, - "binanceus:ETH/USDT:volume": [1.0] * 10, - } - mergedohlcv_df = pl.DataFrame(d) - return mergedohlcv_df - - -class MockModel: - """scikit-learn style model""" - - def __init__(self): - self.aimodel_data_ss = None # fill this in later, after patch applied - self.last_X = None # for tracking test results - self.last_yptrue = None # "" - - def predict_ptrue(self, X: np.ndarray) -> np.ndarray: - (n_points, _) = X.shape - assert n_points == 1 # this mock can only handle 1 input point - - CLOSE_VALS = X - prob_up = np.sum(CLOSE_VALS) / 1e6 - assert 0.0 <= prob_up <= 1.0 - yptrue = np.array([prob_up]) - - self.last_X, self.last_yptrue = X, yptrue # cache for testing - return yptrue - - -@enforce_types -def test_predictoor_agent_calc_stakes2_1feed(tmpdir, monkeypatch, pred_submitter_mgr): - """ - @description - Test calc_stakes2() on 1 feed. - - Approach to test: - - mergedohlcv_df has simple pre-set values: CLOSE_VALS - - prob_up = model.predict_ptrue(X) is a simple sum of X-values - - then, test that sum(CLOSE_VALS[-ar_n:])/1e6 == prob_up - - where ar_n = autoregressive_n = 3 - - where the /1e6 is so 0 <= prob_up <= 1.0 when summing BTC prices - """ - mock_model = MockModel() - - def mock_build(*args, **kwargs): # pylint: disable=unused-argument - return mock_model - - d = "pdr_backend.predictoor.predictoor_agent" - with patch(f"{d}.PredictoorAgent.get_ohlcv_data", mock_get_ohlcv_data2), patch( - f"{d}.AimodelFactory.build", mock_build - ): - - # initialize agent - _, ppss, _ = mock_ppss_1feed( - 2, str(tmpdir), monkeypatch, pred_submitter_mgr.contract_address - ) - - # do prediction - mock_model.aimodel_data_ss = ppss.predictoor_ss.aimodel_data_ss - - feed_contracts = ppss.web3_pp.query_feed_contracts() - ppss.web3_pp = Mock(spec=Web3PP) - ppss.web3_pp.query_feed_contracts.return_value = feed_contracts - - ar_n = 3 - ppss.predictoor_ss.aimodel_data_ss.set_autoregressive_n(ar_n) - ppss.predictoor_ss.aimodel_data_ss.set_max_n_train(5) - - agent = PredictoorAgent(ppss) - feed = ppss.predictoor_ss.predict_train_feedsets[0] - agent.calc_stakes2(feed) - - assert mock_model.last_X.shape == (1, 3) == (1, ar_n * 1) - expected_X = np.array([BTC_CLOSE_VALS[-ar_n:]]) # [17.0, 18.0, 19.0] - expected_prob_up = sum(BTC_CLOSE_VALS[-ar_n:]) / 1e6 - expected_yptrue = np.array([expected_prob_up]) - - assert_array_equal(expected_X, mock_model.last_X) - assert_array_equal(expected_yptrue, mock_model.last_yptrue) - - -@enforce_types -def test_predictoor_agent_calc_stakes2_2feeds(tmpdir, monkeypatch, pred_submitter_mgr): - """ - @description - Test calc_stakes2(), when X has >1 input feed - """ - mock_model = MockModel() - - def mock_build(*args, **kwargs): # pylint: disable=unused-argument - return mock_model - - d = "pdr_backend.predictoor.predictoor_agent" - with patch(f"{d}.PredictoorAgent.get_ohlcv_data", mock_get_ohlcv_data2), patch( - f"{d}.AimodelFactory.build", mock_build - ): - - # initialize agent - feeds, ppss = mock_ppss_2feeds( - 2, str(tmpdir), monkeypatch, pred_submitter_mgr.contract_address - ) - assert ppss.predictoor_ss.approach == 2 - feed_contracts = ppss.web3_pp.query_feed_contracts() - ppss.web3_pp = Mock(spec=Web3PP) - ppss.web3_pp.query_feed_contracts.return_value = feed_contracts - - ar_n = 3 - ppss.predictoor_ss.aimodel_data_ss.set_autoregressive_n(ar_n) - ppss.predictoor_ss.aimodel_data_ss.set_max_n_train(5) - - assert len(feeds) == 2 - - # do prediction - mock_model.aimodel_data_ss = ppss.predictoor_ss.aimodel_data_ss - agent = PredictoorAgent(ppss) - feed = ppss.predictoor_ss.predict_train_feedsets[0] - agent.calc_stakes2(feed) - - assert mock_model.last_X.shape == (1, 6) == (1, ar_n * 2) - - # [17.0, 18.0, 19.0, 37.0, 38.0, 39.0] - expected_X = np.array([BTC_CLOSE_VALS[-ar_n:] + ETH_CLOSE_VALS[-ar_n:]]) - - expected_prob_up = sum(BTC_CLOSE_VALS[-ar_n:] + ETH_CLOSE_VALS[-ar_n:]) / 1e6 - expected_yptrue = np.array([expected_prob_up]) - - assert_array_equal(expected_X, mock_model.last_X) - assert_array_equal(expected_yptrue, mock_model.last_yptrue) - - -@enforce_types -@pytest.mark.parametrize( - "OCEAN, ROSE, expected", - [ - ( - Eth(100).to_wei(), - Eth(2).to_wei(), - True, - ), # All balances are sufficient - ( - Eth(0).to_wei(), - Eth(2).to_wei(), - False, - ), # OCEAN balance too low - ( - Eth(100).to_wei(), - Eth(0).to_wei(), - False, - ), # ROSE balance too low - ( - Eth(0).to_wei(), - Eth(0).to_wei(), - False, - ), # Both balances too low - ], -) -def test_balance_check(tmpdir, monkeypatch, OCEAN, ROSE, expected, pred_submitter_mgr): - mock_model = MockModel() - _, ppss = mock_ppss_2feeds( - 2, str(tmpdir), monkeypatch, pred_submitter_mgr.contract_address - ) - - mock_model.aimodel_data_ss = ppss.predictoor_ss.aimodel_data_ss - - feed_contracts = ppss.web3_pp.query_feed_contracts() - mock_OCEAN = Mock() - mock_OCEAN.balanceOf.return_value = OCEAN - mock_ROSE = Mock() - mock_ROSE.balanceOf.return_value = ROSE - ppss.web3_pp = Mock(spec=Web3PP) - ppss.web3_pp.OCEAN_Token = mock_OCEAN - ppss.web3_pp.NativeToken = mock_ROSE - ppss.web3_pp.query_feed_contracts.return_value = feed_contracts - - agent = PredictoorAgent(ppss) - - assert agent.check_balances(Eth(100)) == expected - - -def test_calc_stakes_across_feeds(tmpdir, monkeypatch): - _, ppss, _mock_pdr_contract = mock_ppss_1feed( - 1, - str(tmpdir), - monkeypatch, - ) - feed_contracts = ppss.web3_pp.query_feed_contracts() - predictoor_ss = ppss.predictoor_ss - predictoor_ss.d["bot_only"]["pred_submitter_mgr"] = "0x1" - predictoor_ss.d["stake_amount"] = 1.0 - predictoor_ss.d["bot_only"]["s_until_epoch_end"] = 50000 - web3_config = ppss.web3_pp.web3_config - w3 = ppss.web3_pp.w3 - - contract_mock = Mock() - contract_mock.get_current_epoch.return_value = 30 - ppss.web3_pp.get_single_contract = Mock() - ppss.web3_pp.get_single_contract.return_value = contract_mock - - feeds = [ - SubgraphFeed("BTC/USDT 5m", "0x1", "", 300, 0, "", "", "5m", ""), - SubgraphFeed("BTC/USDT 1h", "0x2", "", 3600, 0, "", "", "1h", ""), - ] - predict_train_feedsets = [ - PredictTrainFeedset.from_dict( - { - "predict": "binance BTC/USDT o 5m", - "train_on": "binance BTC/USDT ETH/USDT o 5m", - } - ), - PredictTrainFeedset.from_dict( - { - "predict": "binance LTC/USDT o 1h", - "train_on": "binance LTC/USDT ADA/USDT o 1h", - } - ), - ] - predictoor_ss.get_predict_train_feedset = Mock() - predictoor_ss.get_predict_train_feedset.side_effect = predict_train_feedsets - - ppss = MagicMock(spec=PPSS) - ppss.predictoor_ss = predictoor_ss - ppss.web3_pp = MagicMock(spec=Web3PP) - ppss.web3_pp.get_single_contract.return_value = _mock_pdr_contract - ppss.web3_pp.query_feed_contracts.return_value = feed_contracts - ppss.web3_pp.web3_config = web3_config - ppss.web3_pp.w3 = w3 - with patch("pdr_backend.predictoor.predictoor_agent.PredSubmitterMgr"): - agent = PredictoorAgent(ppss=ppss) - - stakes = agent.calc_stakes_across_feeds(feeds) - assert 600 in stakes.slots, "Must have a prediction for next 5m slot" - assert 7200 in stakes.slots, "Must have a prediction for next 1h slot" - - target_slots = stakes.target_slots - preds_5m = target_slots[600] - assert preds_5m[0].feed == feeds[0], "Must have a prediction for BTC/USDT 5m" - assert preds_5m[0].stake_up + preds_5m[0].stake_down == Eth(1.0), "sum up to 1.0" - - preds_1h = target_slots[7200] - assert preds_1h[0].feed == feeds[1], "Must have a prediction for BTC/USDT 1h" - assert preds_1h[0].stake_up + preds_1h[0].stake_down == Eth(1.0), "sum up to 1.0" diff --git a/pdr_backend/predictoor/test/test_stakes_per_slot.py b/pdr_backend/predictoor/test/test_stakes_per_slot.py deleted file mode 100644 index 952393cf5..000000000 --- a/pdr_backend/predictoor/test/test_stakes_per_slot.py +++ /dev/null @@ -1,79 +0,0 @@ -from unittest.mock import Mock - -from enforce_typing import enforce_types - -from pdr_backend.predictoor.stakes_per_slot import ( - StakeTup, - StakeTups, - StakesPerSlot, -) -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed -from pdr_backend.util.currency_types import Eth -from pdr_backend.util.time_types import UnixTimeS - -FEED0 = Mock(spec=SubgraphFeed) -FEED1 = Mock(spec=SubgraphFeed) -FEED0.address = "0xFeed0" -FEED1.address = "0xFeed1" - -STAKE_UP0, STAKE_DOWN0 = Eth(10.0), Eth(20.0) -STAKE_UP1, STAKE_DOWN1 = Eth(11.0), Eth(21.0) -STAKE_UP2, STAKE_DOWN2 = Eth(12.0), Eth(22.0) -STAKE_UP3, STAKE_DOWN3 = Eth(13.0), Eth(23.0) - -TUP0 = StakeTup(FEED0, STAKE_UP0, STAKE_DOWN0) -TUP1 = StakeTup(FEED0, STAKE_UP1, STAKE_DOWN1) -TUP2 = StakeTup(FEED1, STAKE_UP2, STAKE_DOWN2) -TUP3 = StakeTup(FEED1, STAKE_UP3, STAKE_DOWN3) - -TIMESLOT0 = UnixTimeS(1000) -TIMESLOT1 = UnixTimeS(2000) - - -@enforce_types -def test_StakeTup(): - assert TUP0.feed == FEED0 - assert TUP0.stake_up == STAKE_UP0 - assert TUP0.stake_down == STAKE_DOWN0 - - -@enforce_types -def test_StakeTups(): - tups = StakeTups([TUP0, TUP1]) - assert tups[0] == TUP0 - assert tups[1] == TUP1 - - -@enforce_types -def test_StakesPerSlot(): - # empty to start - stakes = StakesPerSlot() - assert stakes.target_slots == {} - assert stakes.slots == [] - assert stakes.get_stakes_at_slot(TIMESLOT0) == [] - assert stakes.get_stakes_at_slot(TIMESLOT1) == [] - - # add at one timeslot - stakes.add_stake_at_slot(TIMESLOT0, TUP0) - stakes.add_stake_at_slot(TIMESLOT0, TUP1) - assert stakes.slots == [TIMESLOT0] - assert stakes.get_stakes_at_slot(TIMESLOT0) == [TUP0, TUP1] - assert stakes.get_stakes_at_slot(TIMESLOT1) == [] - - # add at another timeslot - stakes.add_stake_at_slot(TIMESLOT1, TUP2) - stakes.add_stake_at_slot(TIMESLOT1, TUP3) - assert stakes.slots == [TIMESLOT0, TIMESLOT1] - assert stakes.get_stakes_at_slot(TIMESLOT0) == [TUP0, TUP1] - assert stakes.get_stakes_at_slot(TIMESLOT1) == [TUP2, TUP3] - - # test get_stake_lists - (stakes_up, stakes_down, feed_addrs) = stakes.get_stake_lists(TIMESLOT0) - assert stakes_up == [STAKE_UP0, STAKE_UP1] - assert stakes_down == [STAKE_DOWN0, STAKE_DOWN1] - assert feed_addrs == ["0xFeed0", "0xFeed0"] - - (stakes_up, stakes_down, feed_addrs) = stakes.get_stake_lists(TIMESLOT1) - assert stakes_up == [STAKE_UP2, STAKE_UP3] - assert stakes_down == [STAKE_DOWN2, STAKE_DOWN3] - assert feed_addrs == ["0xFeed1", "0xFeed1"] diff --git a/pdr_backend/publisher/test/conftest.py b/pdr_backend/publisher/test/conftest.py deleted file mode 100644 index fc9ed034c..000000000 --- a/pdr_backend/publisher/test/conftest.py +++ /dev/null @@ -1 +0,0 @@ -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import diff --git a/pdr_backend/publisher/test/test_publish_asset.py b/pdr_backend/publisher/test/test_publish_asset.py deleted file mode 100644 index 504bd3559..000000000 --- a/pdr_backend/publisher/test/test_publish_asset.py +++ /dev/null @@ -1,49 +0,0 @@ -from enforce_typing import enforce_types -from pytest import approx - -from pdr_backend.contract.feed_contract import FeedContract -from pdr_backend.publisher.publish_asset import publish_asset -from pdr_backend.cli.arg_feed import ArgFeed -from pdr_backend.util.currency_types import Eth - - -@enforce_types -def test_publish_asset(web3_pp, web3_config): - feed = ArgFeed("kraken", None, "ETH/USDT", "5m") - seconds_per_epoch = 300 - seconds_per_subscription = 60 * 60 * 24 - nft_data, _, _, _, logs_erc = publish_asset( - s_per_epoch=seconds_per_epoch, - s_per_subscription=seconds_per_subscription, - feed=feed, - trueval_submitter_addr=web3_config.owner, - feeCollector_addr=web3_config.owner, - rate=Eth(3), - cut=Eth(0.2), - web3_pp=web3_pp, - ) - - base = feed.pair.base_str - quote = feed.pair.quote_str - source = str(feed.exchange) - timeframe = str(feed.timeframe) - - nft_name = base + "-" + quote + "-" + source + "-" + timeframe - nft_symbol = base + "/" + quote - assert nft_data == (nft_name, nft_symbol, 1, "", True, web3_config.owner) - - dt_addr = logs_erc["newTokenAddress"] - assert web3_config.w3.is_address(dt_addr) - - contract = FeedContract(web3_pp, dt_addr) - - assert contract.get_secondsPerEpoch() == seconds_per_epoch - assert ( - contract.contract_instance.functions.secondsPerSubscription().call() - == seconds_per_subscription - ) - assert contract.get_price().amt_wei / 1e18 == approx(3 * (1.201)) - - assert contract.get_stake_token() == web3_pp.OCEAN_address - - assert contract.get_trueValSubmitTimeout() == 3 * 24 * 60 * 60 diff --git a/pdr_backend/publisher/test/test_publish_assets.py b/pdr_backend/publisher/test/test_publish_assets.py deleted file mode 100644 index 5c4ea25fd..000000000 --- a/pdr_backend/publisher/test/test_publish_assets.py +++ /dev/null @@ -1,71 +0,0 @@ -from unittest.mock import Mock - -from enforce_typing import enforce_types - -from pdr_backend.cli.arg_feed import ArgFeed -from pdr_backend.ppss.publisher_ss import mock_publisher_ss -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.publisher.publish_assets import publish_assets -from pdr_backend.util.currency_types import Eth - -_PATH = "pdr_backend.publisher.publish_assets" - - -def test_publish_assets_development(monkeypatch): - _test_barge("development", monkeypatch) - - -def test_publish_assets_barge_pytest(monkeypatch): - _test_barge("barge-pytest", monkeypatch) - - -def test_publish_assets_barge_pdr_bot(monkeypatch): - _test_barge("barge-predictoor-bot", monkeypatch) - - -@enforce_types -def _test_barge(network, monkeypatch): - mock_publish_asset, web3_pp = _setup_and_publish(network, monkeypatch) - - n_calls = len(mock_publish_asset.call_args_list) - assert n_calls == 1 * 3 - mock_publish_asset.assert_any_call( - s_per_epoch=300, - s_per_subscription=60 * 60 * 24, - feed=ArgFeed("binance", "close", "ETH/USDT", "5m"), - trueval_submitter_addr="0xe2DD09d719Da89e5a3D0F2549c7E24566e947260", - feeCollector_addr="0xe2DD09d719Da89e5a3D0F2549c7E24566e947260", - rate=Eth(3 / (1 + 0.2 + 0.001)), - cut=Eth(0.2), - web3_pp=web3_pp, - ) - - -def test_publish_assets_sapphire_testnet(monkeypatch): - _test_sapphire("sapphire-testnet", monkeypatch) - - -def test_publish_assets_sapphire_mainnet(monkeypatch): - _test_sapphire("sapphire-mainnet", monkeypatch) - - -@enforce_types -def _test_sapphire(network, monkeypatch): - mock_publish_asset, _ = _setup_and_publish(network, monkeypatch) - - n_calls = len(mock_publish_asset.call_args_list) - assert n_calls == 2 * 10 - - -def _setup_and_publish(network, monkeypatch): - web3_pp = Mock(spec=Web3PP) - web3_pp.network = "development" - publisher_ss = mock_publisher_ss(network) - - mock_publish_asset = Mock() - monkeypatch.setattr(f"{_PATH}.publish_asset", mock_publish_asset) - - # main call - publish_assets(web3_pp, publisher_ss) - - return mock_publish_asset, web3_pp diff --git a/pdr_backend/sim/test/test_sim_engine.py b/pdr_backend/sim/test/test_sim_engine.py index ed8601b00..e1b25eb52 100644 --- a/pdr_backend/sim/test/test_sim_engine.py +++ b/pdr_backend/sim/test/test_sim_engine.py @@ -1,9 +1,7 @@ import os import pytest -from dash import Dash from enforce_typing import enforce_types -from selenium.common.exceptions import NoSuchElementException # type: ignore[import-untyped] from pdr_backend.aimodel.aimodel import Aimodel from pdr_backend.cli.predict_train_feedsets import PredictTrainFeedsets @@ -11,14 +9,12 @@ from pdr_backend.ppss.ppss import PPSS, fast_test_yaml_str from pdr_backend.ppss.predictoor_ss import PredictoorSS, predictoor_ss_test_dict from pdr_backend.ppss.sim_ss import SimSS, sim_ss_test_dict -from pdr_backend.sim.dash_plots.callbacks import get_callbacks -from pdr_backend.sim.dash_plots.view_elements import get_layout from pdr_backend.sim.sim_engine import SimEngine @enforce_types # pylint: disable=unused-argument -def test_sim_engine(tmpdir, check_chromedriver, dash_duo): +def test_sim_engine(tmpdir): s = fast_test_yaml_str(tmpdir) ppss = PPSS(yaml_str=s, network="development") @@ -63,40 +59,3 @@ def test_sim_engine(tmpdir, check_chromedriver, dash_duo): assert sim_engine.model is None sim_engine.run() assert isinstance(sim_engine.model, Aimodel) - - app = Dash("pdr_backend.sim.sim_dash") - app.config["suppress_callback_exceptions"] = True - app.run_id = sim_engine.multi_id - app.layout = get_layout() - get_callbacks(app) - - dash_duo.start_server(app) - dash_duo.wait_for_text_to_equal( - "#sim_state_text", f"Simulation ID: {sim_engine.multi_id}", timeout=100 - ) - - # default visibility: shows figure from first tab - dash_duo.find_element("#pdr_profit_vs_time") - - # does not show figures from other tabs - with pytest.raises(NoSuchElementException): - dash_duo.find_element("#trader_profit_vs_time") - - with pytest.raises(NoSuchElementException): - dash_duo.find_element("#model_performance_vs_time") - - tabs = { - "predictor_profit_tab": ["pdr_profit_vs_time", "pdr_profit_vs_ptrue"], - "trader_profit_tab": ["trader_profit_vs_time", "trader_profit_vs_ptrue"], - "model_performance_tab": ["model_performance_vs_time"], - "model_response_tab": ["aimodel_response", "aimodel_varimps"], - "model_residuals_tab": ["prediction_residuals_other"], - } - - for tab_name, figures in tabs.items(): - # when tab is clicked, it shows its figures - tab = dash_duo.find_element(f".{tab_name}") - tab.click() - assert "tab--selected" in tab.get_attribute("class") - for figure_name in figures: - dash_duo.find_element(f"#{figure_name}") diff --git a/pdr_backend/statutil/test/test_arima_dash_plots.py b/pdr_backend/statutil/test/test_arima_dash_plots.py deleted file mode 100644 index c943af8bd..000000000 --- a/pdr_backend/statutil/test/test_arima_dash_plots.py +++ /dev/null @@ -1,59 +0,0 @@ -from dash import dcc, html -from plotly.graph_objs import Figure - -from pdr_backend.statutil.dash_plots.view_elements import ( - get_graphs_container, - display_plots_view, - display_on_column, - get_column_graphs, - get_input_elements, -) - - -def test_display_plots_view(): - col1 = html.Div(id="column1") - col2 = html.Div(id="column2") - columns = [col1, col2] - result = display_plots_view(columns) - assert len(columns) == len(result.children) - assert "column1" in result.children[0].id - assert "column2" in result.children[1].id - - -def test_get_column_graphs(): - fig1 = Figure([]) - fig2 = Figure([]) - figure_data = [ - {"parent_id": "fig1_graph", "fig": fig1, "graph_id": "fig1_graph"}, - {"parent_id": "fig2_graph", "fig": fig2, "graph_id": "fig2_graph"}, - ] - result = get_column_graphs("fig1_graph", figure_data, "title1", "") - assert len(result) == 1 - assert len(result[0].children) == len(figure_data) + 2 - assert figure_data[0]["parent_id"] + "-title" == result[0].children[0].id - assert figure_data[0]["parent_id"] == result[0].children[2].id - assert figure_data[1]["parent_id"] == result[0].children[3].id - - -def test_display_on_column(): - div_id = "test_id" - result = display_on_column(div_id) - assert div_id in result.id - assert "column" in result.style["flexDirection"] - - -def test_get_input_elements(): - result = get_input_elements() - assert len(result.children) == 2 - assert isinstance(result.children[0].children[0], dcc.Dropdown) - assert isinstance(result.children[0].children[1], dcc.DatePickerRange) - assert isinstance(result.children[1].children[0], html.Label) - assert isinstance(result.children[1].children[1], dcc.Input) - - -def test_get_graphs_container(): - result = get_graphs_container() - assert len(result.children) == 3 - assert result.children[0].id == "transition_column" - assert result.children[1].id == "seasonal_column" - assert result.children[2].id == "autocorelation_column" diff --git a/pdr_backend/statutil/test/test_seasonal.py b/pdr_backend/statutil/test/test_seasonal.py deleted file mode 100644 index e6693cd6e..000000000 --- a/pdr_backend/statutil/test/test_seasonal.py +++ /dev/null @@ -1,139 +0,0 @@ -import os -import shutil - -import pandas as pd -from dash import Dash -from enforce_typing import enforce_types - -from pdr_backend.cli.arg_timeframe import ArgTimeframe -from pdr_backend.statutil.dash_plots.callbacks import get_callbacks -from pdr_backend.statutil.dash_plots.view_elements import get_layout -from pdr_backend.statutil.seasonal import ( - SeasonalDecomposeFactory, - SeasonalPlotdata, - plot_seasonal, -) -from pdr_backend.util.mathutil import has_nan -from pdr_backend.util.time_types import UnixTimeMs - -DATA_FILE = ( - "./pdr_backend/lake/test/merged_ohlcv_df_BTC-ETH_2024-02-01_to_2024-03-08.csv" -) -BTC_COL = "binance:BTC/USDT:close" - -# set env variable as true to show plots -SHOW_PLOT = os.getenv("SHOW_PLOT", "false").lower() == "true" - - -@enforce_types -def test_relative_energy(): - (_, t, y) = _get_data() - - dr = SeasonalDecomposeFactory.build(t, y) - es = dr.relative_energy - assert not has_nan(es) - assert 0 < min(es) < max(es) <= 1.0 - assert es[0] == 1.0 - - -@enforce_types -def test_seasonal(): - (st, t, y) = _get_data() - - dr = SeasonalDecomposeFactory.build(t, y) - assert ( - y.shape - == dr.observed.shape - == dr.seasonal.shape - == dr.trend.shape - == dr.resid.shape - ) - - plotdata = SeasonalPlotdata(st, dr) - - fig = plot_seasonal(plotdata) - - if SHOW_PLOT: - fig.show() - - -@enforce_types -# pylint: disable=unused-argument -def test_empty_dashboard(tmpdir, check_chromedriver, dash_duo): - app = Dash("pdr_backend.statutil.arima_dash") - app.config["suppress_callback_exceptions"] = True - app.layout = get_layout() - app.layout.children[0].data = str(tmpdir) - get_callbacks(app) - - dash_duo.start_server(app) - dash_duo.wait_for_text_to_equal( - "#error-message h2", - "No data found! Fetch ohlcv data before running the ARIMA plots.", - ) - - -@enforce_types -# pylint: disable=unused-argument -def test_dashboard(tmpdir, check_chromedriver, dash_duo): - test_dir = str(tmpdir) - - # Sample Parquet files - src = os.path.join( - os.path.dirname(__file__), "../../tests/resources/binance_BTC-USDT_5m.parquet" - ) - shutil.copyfile(src, test_dir + "/binance_BTC-USDT_5m.parquet") - - src = os.path.join( - os.path.dirname(__file__), "../../tests/resources/binance_ETH-USDT_5m.parquet" - ) - shutil.copyfile(src, test_dir + "/binance_ETH-USDT_5m.parquet") - - app = Dash("pdr_backend.statutil.arima_dash") - app.config["suppress_callback_exceptions"] = True - app.layout = get_layout() - app.layout.children[0].data = test_dir - get_callbacks(app) - - dash_duo.start_server(app) - dash_duo.wait_for_text_to_equal("#error-message", "") - dash_duo.find_element("#arima-graphs") - - dash_duo.find_element(".Select-input input").send_keys("binance_ETH-USDT_5m") - _check_dashboard(dash_duo) - dash_duo.find_element("#autocorelation-lag").send_keys("12") - _check_dashboard(dash_duo) - dash_duo.find_element(".DateInput_input_1").send_keys("06/03/2024") - _check_dashboard(dash_duo) - dash_duo.find_element(".Select-input input").send_keys("binance_BTC-USDT_5m") - _check_dashboard(dash_duo) - dash_duo.find_element("input[type='radio']").click() - _check_dashboard(dash_duo, adf_text="BC=F,D=0") - - -def _check_dashboard(dash_duo, adf_text="BC=T,D=1"): - dash_duo.wait_for_element("#seasonal_column #relativeEnergies") - dash_duo.wait_for_element("#seasonal_column #seasonal_plots") - dash_duo.wait_for_text_to_equal( - "#seasonal_column #Seasonal-title", - f"Seasonal Decomp. for {adf_text} ⓘ", - timeout=30, - ) - dash_duo.wait_for_element("#autocorelation_column #autocorelation") - dash_duo.wait_for_element("#autocorelation_column #pautocorelation") - dash_duo.wait_for_text_to_equal( - "#autocorelation_column #Autocorelation-title", f"ACF & PACF for {adf_text} ⓘ" - ) - dash_duo.wait_for_element("#transition_column #transition_table") - dash_duo.wait_for_text_to_equal("#transition_column #Transition-title", "ADF ⓘ") - - -@enforce_types -def _get_data(): - """Return (start_ut, timeframe, yvals) for BTC 5min""" - df = pd.read_csv(DATA_FILE) # all data start_time = UnixTimeMs(df["timestamp"][0]) - st = UnixTimeMs(df["timestamp"][0]) - t = ArgTimeframe("5m") - y = df[BTC_COL].array - - return (st, t, y) diff --git a/pdr_backend/subgraph/test/resources.py b/pdr_backend/subgraph/test/resources.py deleted file mode 100644 index 955a4e4dc..000000000 --- a/pdr_backend/subgraph/test/resources.py +++ /dev/null @@ -1,24 +0,0 @@ -from enforce_typing import enforce_types - - -@enforce_types -class MockResponse: - def __init__(self, contract_list: list, status_code: int): - self.contract_list = contract_list - self.status_code = status_code - self.num_queries = 0 - - def json(self) -> dict: - self.num_queries += 1 - if self.num_queries > 1: - self.contract_list = [] - return {"data": {"predictContracts": self.contract_list}} - - -@enforce_types -class MockPost: - def __init__(self, contract_list: list = [], status_code: int = 200): - self.response = MockResponse(contract_list, status_code) - - def __call__(self, *args, **kwargs): - return self.response diff --git a/pdr_backend/subgraph/test/test_core_subgraph.py b/pdr_backend/subgraph/test/test_core_subgraph.py deleted file mode 100644 index 4256e29f5..000000000 --- a/pdr_backend/subgraph/test/test_core_subgraph.py +++ /dev/null @@ -1,20 +0,0 @@ -import pytest -import requests -from enforce_typing import enforce_types - -from pdr_backend.subgraph.core_subgraph import query_subgraph -from pdr_backend.subgraph.test.resources import MockPost - - -@enforce_types -def test_query_subgraph_happypath(monkeypatch): - monkeypatch.setattr(requests, "post", MockPost(status_code=200)) - result = query_subgraph(subgraph_url="foo", query="bar") - assert result == {"data": {"predictContracts": []}} - - -@enforce_types -def test_query_subgraph_badpath(monkeypatch): - monkeypatch.setattr(requests, "post", MockPost(status_code=400)) - with pytest.raises(Exception): - query_subgraph(subgraph_url="foo", query="bar") diff --git a/pdr_backend/subgraph/test/test_info725.py b/pdr_backend/subgraph/test/test_info725.py deleted file mode 100644 index aa8974f6e..000000000 --- a/pdr_backend/subgraph/test/test_info725.py +++ /dev/null @@ -1,135 +0,0 @@ -from enforce_typing import enforce_types -from web3 import Web3 - -from pdr_backend.subgraph.info725 import ( - get_pair_timeframe_source_from_contract, - info725_to_info, - info_to_info725, - key_to_key725, - value725_to_value, - value_to_value725, -) - - -@enforce_types -def test_key(): - key = "name" - key725 = key_to_key725(key) - assert key725 == Web3.keccak(key.encode("utf-8")).hex() - - -@enforce_types -def test_value(): - value = "ETH/USDT" - value725 = value_to_value725(value) - value_again = value725_to_value(value725) - - assert value == value_again - assert value == Web3.to_text(hexstr=value725) - - -@enforce_types -def test_value_None(): - assert value_to_value725(None) is None - assert value725_to_value(None) is None - - -@enforce_types -def test_info_to_info725_and_back(): - info = {"pair": "BTC/USDT", "timeframe": "5m", "source": "binance"} - info725 = [ - {"key": key_to_key725("pair"), "value": value_to_value725("BTC/USDT")}, - {"key": key_to_key725("timeframe"), "value": value_to_value725("5m")}, - {"key": key_to_key725("source"), "value": value_to_value725("binance")}, - ] - assert info_to_info725(info) == info725 - assert info725_to_info(info725) == info - - -@enforce_types -def test_info_to_info725_and_back__some_None(): - info = {"pair": "BTC/USDT", "timeframe": "5m", "source": None} - info725 = [ - {"key": key_to_key725("pair"), "value": value_to_value725("BTC/USDT")}, - {"key": key_to_key725("timeframe"), "value": value_to_value725("5m")}, - {"key": key_to_key725("source"), "value": None}, - ] - assert info_to_info725(info) == info725 - assert info725_to_info(info725) == info - - -@enforce_types -def test_info_to_info725__extraval(): - info = { - "pair": "BTC/USDT", - "timeframe": "5m", - "source": "binance", - "extrakey": "extraval", - } - info725 = [ - {"key": key_to_key725("pair"), "value": value_to_value725("BTC/USDT")}, - {"key": key_to_key725("timeframe"), "value": value_to_value725("5m")}, - {"key": key_to_key725("source"), "value": value_to_value725("binance")}, - {"key": key_to_key725("extrakey"), "value": value_to_value725("extraval")}, - ] - assert info_to_info725(info) == info725 - - -@enforce_types -def test_info_to_info725__missingkey(): - info = {"pair": "BTC/USDT", "timeframe": "5m"} # no "source" - info725 = [ - {"key": key_to_key725("pair"), "value": value_to_value725("BTC/USDT")}, - {"key": key_to_key725("timeframe"), "value": value_to_value725("5m")}, - {"key": key_to_key725("source"), "value": None}, - ] - assert info_to_info725(info) == info725 - - -@enforce_types -def test_get_pair_timeframe_source_from_contract_nft_data(): - contract_data = { - "token": { - "nft": { - "nftData": [ - { - "key": key_to_key725("pair"), - "value": value_to_value725("ETH/USDT"), - }, - { - "key": key_to_key725("timeframe"), - "value": value_to_value725("5m"), - }, - { - "key": key_to_key725("source"), - "value": value_to_value725("binance"), - }, - ] - } - } - } - - pair, timeframe, source = get_pair_timeframe_source_from_contract(contract_data) - assert pair == "ETH/USDT" - assert timeframe == "5m" - assert source == "binance" - - -@enforce_types -def test_get_pair_timeframe_source_from_contract_nft_data__missingkey(): - contract = { - "id": "0x3fb744c3702ff2237fc65f261046ead36656f3bc", - "secondsPerEpoch": "300", - "token": { - "id": "0x3fb744c3702ff2237fc65f261046ead36656f3bc", - "name": "BTC/USDT", - "symbol": "BTC/USDT", - "nft": None, - }, - } - - pair, timeframe, source = get_pair_timeframe_source_from_contract(contract) - - assert pair == "BTC/USDT" - assert timeframe == "5m" - assert source == "binance" diff --git a/pdr_backend/subgraph/test/test_subgraph_consume_so_far.py b/pdr_backend/subgraph/test/test_subgraph_consume_so_far.py deleted file mode 100644 index b2c76d662..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_consume_so_far.py +++ /dev/null @@ -1,67 +0,0 @@ -from unittest.mock import patch - -from enforce_typing import enforce_types -from pytest import approx - -from pdr_backend.subgraph.subgraph_consume_so_far import get_consume_so_far_per_contract -from pdr_backend.util.time_types import UnixTimeS - - -SAMPLE_CONTRACT_DATA = [ - { - "user": {"id": "0xff8dcdfc0a76e031c72039b7b1cd698f8da81a0a"}, - "predictContract": {"id": "contract1"}, - }, - { - "user": {"id": "0xff8dcdfc0a76e031c72039b7b1cd698f8da81a0a"}, - "predictContract": {"id": "contract1"}, - }, -] - - -@enforce_types -def test_get_consume_so_far_per_contract(): - call_count = 0 - - def mock_query_subgraph( - subgraph_url, query, tries, timeout - ): # pylint:disable=unused-argument - nonlocal call_count - slot_data = SAMPLE_CONTRACT_DATA - - if call_count > 0: - slot_data = [] - - call_count += 1 - return {"data": {"predictSubscriptions": slot_data}} - - PATH = "pdr_backend.subgraph.subgraph_consume_so_far" - with patch(f"{PATH}.query_subgraph", mock_query_subgraph): - consumes = get_consume_so_far_per_contract( - subgraph_url="foo", - user_address="0xff8dcdfc0a76e031c72039b7b1cd698f8da81a0a", - since_timestamp=UnixTimeS(2000), - contract_addresses=["contract1"], - ) - - assert consumes["contract1"] == approx(6, 0.001) - - -@enforce_types -def test_get_consume_so_far_per_contract_empty_data(): - PATH = "pdr_backend.subgraph.subgraph_consume_so_far" - - def mock_query_subgraph( - subgraph_url, query, tries, timeout - ): # pylint:disable=unused-argument - return {"data": {"predictSubscriptions": []}} - - with patch(f"{PATH}.query_subgraph", mock_query_subgraph): - consumes = get_consume_so_far_per_contract( - subgraph_url="foo", - user_address="0xff8dcdfc0a76e031c72039b7b1cd698f8da81a0a", - since_timestamp=UnixTimeS(2000), - contract_addresses=["contract1"], - ) - - assert consumes == {} diff --git a/pdr_backend/subgraph/test/test_subgraph_feed.py b/pdr_backend/subgraph/test/test_subgraph_feed.py deleted file mode 100644 index eda39f14e..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_feed.py +++ /dev/null @@ -1,82 +0,0 @@ -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed, mock_feed, print_feeds - - -@enforce_types -def test_feed(): - feed = SubgraphFeed( - "Contract Name", - "0x12345", - "SYM:TEST", - 60, - 15, - "0xowner", - "BTC/USDT", - "5m", - "binance", - ) - - assert feed.name == "Contract Name" - assert feed.address == "0x12345" - assert feed.symbol == "SYM:TEST" - assert feed.seconds_per_subscription == 60 - assert feed.trueval_submit_timeout == 15 - assert feed.owner == "0xowner" - assert feed.pair == "BTC/USDT" - assert feed.timeframe == "5m" - assert feed.source == "binance" - - assert feed.seconds_per_epoch == 5 * 60 - assert feed.quote == "USDT" - assert feed.base == "BTC" - - assert str(feed) == feed.shortstr() - s = str(feed) - for want_s in ["Feed", "5m", "BTC/USDT", "binance", feed.address]: - assert want_s in s - - -@enforce_types -def test_mock_feed(): - feed = mock_feed("5m", "binance", "BTC/USDT") - assert feed.timeframe == "5m" - assert feed.source == "binance" - assert feed.pair == "BTC/USDT" - assert feed.address[:2] == "0x" - assert len(feed.address) == 42 # ethereum sized address - - -@enforce_types -def test_feed__seconds_per_epoch(): - # 5m - feed = mock_feed("5m", "binance", "BTC/USDT") - assert feed.timeframe == "5m" - assert feed.seconds_per_epoch == 5 * 60 - - # 1h - feed = mock_feed("1h", "binance", "BTC/USDT") - assert feed.timeframe == "1h" - assert feed.seconds_per_epoch == 60 * 60 - - -@enforce_types -def test_feed__convert_pair(): - # start with '/', no convert needed - feed = mock_feed("5m", "binance", "BTC/USDT") - assert feed.pair == "BTC/USDT" - - # start with '-', convert to '/' - feed = mock_feed("5m", "binance", "BTC-USDT") - assert feed.pair == "BTC/USDT" - - -@enforce_types -def test_print_feeds(): - f1 = mock_feed("5m", "binance", "BTC/USDT") - f2 = mock_feed("1h", "kraken", "BTC/USDT") - feeds = {f1.address: f1, f2.address: f2} - - print_feeds(feeds) - print_feeds(feeds, label=None) - print_feeds(feeds, "my feeds") diff --git a/pdr_backend/subgraph/test/test_subgraph_feed_contracts.py b/pdr_backend/subgraph/test/test_subgraph_feed_contracts.py deleted file mode 100644 index afab30e03..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_feed_contracts.py +++ /dev/null @@ -1,113 +0,0 @@ -import pytest -import requests -from enforce_typing import enforce_types - -from pdr_backend.cli.arg_timeframe import ArgTimeframe -from pdr_backend.subgraph.info725 import info_to_info725 -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed -from pdr_backend.subgraph.subgraph_feed_contracts import query_feed_contracts -from pdr_backend.subgraph.test.resources import MockPost - - -@enforce_types -def mock_contract(info: dict, symbol: str) -> dict: - info725 = info_to_info725(info) - - contract = { - "id": "0xNFT1", - "token": { - "id": "0xDT1", - "name": f"Name:{symbol}", - "symbol": symbol, - "nft": { - "owner": { - "id": "0xowner1", - }, - "nftData": info725, - }, - }, - "secondsPerEpoch": ArgTimeframe(info["timeframe"]).s, - "secondsPerSubscription": 700, - "truevalSubmitTimeout": 5, - } - return contract - - -@enforce_types -def test_query_feed_contracts__emptychain(monkeypatch): - contract_list = [] - monkeypatch.setattr(requests, "post", MockPost(contract_list)) - contracts = query_feed_contracts(subgraph_url="foo") - assert contracts == {} - - -@enforce_types -def test_query_feed_contracts__fullchain(monkeypatch): - # This test is a simple-as-possible happy path. Start here. - # Then follow up with test_filter() below, which is complex but thorough - - info = {"pair": "BTC-USDT", "timeframe": "5m", "source": "binance"} - contract = mock_contract(info, "contract1") - contract_addr = contract["id"] - - contract_list = [contract] - monkeypatch.setattr(requests, "post", MockPost(contract_list)) - - feeds = query_feed_contracts(subgraph_url="foo") - - assert len(feeds) == 1 - assert contract_addr in feeds - feed = feeds[contract_addr] - assert isinstance(feed, SubgraphFeed) - - assert feed.name == "Name:contract1" - assert feed.address == "0xNFT1" - assert feed.symbol == "contract1" - assert feed.seconds_per_subscription == 700 - assert feed.trueval_submit_timeout == 5 - assert feed.owner == "0xowner1" - assert feed.pair == "BTC/USDT" - assert feed.timeframe == "5m" - assert feed.source == "binance" - assert feed.seconds_per_epoch == 5 * 60 - - -@enforce_types -@pytest.mark.parametrize( - "expect_result, owners", - [ - (True, None), - (True, ""), - (True, "0xowner1"), - (False, "0xowner2"), - (True, "0xowner1,0xowner2"), - (False, "0xowner2,0xowner3"), - ], -) -def test_query_feed_contracts__filter(monkeypatch, expect_result, owners): - info = {"pair": "BTC/USDT", "timeframe": "5m", "source": "binance"} - info725 = info_to_info725(info) - - contract1 = { - "id": "contract1", - "token": { - "id": "token1", - "name": "ether", - "symbol": "ETH", - "nft": { - "owner": { - "id": "0xowner1", - }, - "nftData": info725, - }, - }, - "secondsPerEpoch": 7, - "secondsPerSubscription": 700, - "truevalSubmitTimeout": 5, - } - contract_list = [contract1] - - monkeypatch.setattr(requests, "post", MockPost(contract_list)) - feed_dicts = query_feed_contracts("foo", owners) - - assert bool(feed_dicts) == bool(expect_result) diff --git a/pdr_backend/subgraph/test/test_subgraph_payout.py b/pdr_backend/subgraph/test/test_subgraph_payout.py deleted file mode 100644 index 40aab7c0a..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_payout.py +++ /dev/null @@ -1,89 +0,0 @@ -from typing import Dict -from unittest.mock import patch - -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_payout import ( - Payout, - get_payout_query, - fetch_payouts, -) -from pdr_backend.util.time_types import UnixTimeS - -# pylint: disable=line-too-long -MOCK_PAYOUT_QUERY_RESPONSE = { - "data": { - "predictPayouts": [ - { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1696880700-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - "timestamp": 1698527000, - "payout": "0", - "predictedValue": True, - "trueValue": True, - "prediction": { - "stake": "1.2", - "user": {"id": "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd"}, - "slot": { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1696880700", - "predictContract": { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "token": {"name": "ADA/USDT"}, - }, - "revenue": "0.919372744934776618", - "roundSumStakesUp": "7.635901006590730052", - "roundSumStakes": "17.728238320965607921", - }, - }, - } - ] - } -} - -MOCK_PAYOUT_QUERY_SECOND_RESPONSE: Dict[str, dict] = {"data": {"predictPayouts": []}} - - -def test_get_payout_query(): - payout_query = get_payout_query( - ["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - UnixTimeS(1622547000), - UnixTimeS(1622548800), - 1, - 1, - ) - - assert "1622547000" in payout_query - assert "1622548800" in payout_query - assert "0x18f54cc21b7a2fdd011bea06bba7801b280e3151" in payout_query - - -@enforce_types -@patch("pdr_backend.subgraph.subgraph_payout.query_subgraph") -def test_fetch_payouts(mock_query_subgraph): - mock_query_subgraph.side_effect = [ - MOCK_PAYOUT_QUERY_RESPONSE, - MOCK_PAYOUT_QUERY_SECOND_RESPONSE, - ] - - payouts = fetch_payouts( - addresses=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - start_ts=UnixTimeS(1622547000), - end_ts=UnixTimeS(1622548800), - first=1000, - skip=1, - network="mainnet", - ) - assert len(payouts) == 1 - assert isinstance(payouts[0], Payout) - assert ( - payouts[0].ID - == "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1696880700-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd" - ) - assert payouts[0].token == "ADA/USDT" - assert payouts[0].timestamp == 1698527000 - assert payouts[0].slot == 1696880700 - assert payouts[0].payout == float(0) - assert payouts[0].predvalue is True - assert payouts[0].truevalue is True - assert payouts[0].user == "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd" - assert payouts[0].stake == float(1.2) - assert mock_query_subgraph.call_count == 1 diff --git a/pdr_backend/subgraph/test/test_subgraph_pending_payouts.py b/pdr_backend/subgraph/test/test_subgraph_pending_payouts.py deleted file mode 100644 index 6c926837f..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_pending_payouts.py +++ /dev/null @@ -1,61 +0,0 @@ -from unittest.mock import patch - -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_pending_payouts import query_pending_payouts - -SAMPLE_PENDING_DATA = [ - { - "id": "slot1", - "timestamp": 1000, - "slot": { - "id": "slot1", - "slot": 2000, - "predictContract": { - "id": "contract1", - }, - }, - } -] - - -@enforce_types -def test_query_pending_payouts(): - call_count = 0 - - def mock_query_subgraph(subgraph_url, query): # pylint:disable=unused-argument - nonlocal call_count - pending_payout_data = SAMPLE_PENDING_DATA if call_count < 1 else [] - call_count += 1 - return {"data": {"predictPredictions": pending_payout_data}} - - PATH = "pdr_backend.subgraph.subgraph_pending_payouts" - with patch(f"{PATH}.query_subgraph", mock_query_subgraph): - pending_payouts = query_pending_payouts( - subgraph_url="foo", - addr="0x123", - ) - - assert pending_payouts == {"contract1": [2000]} - - -@enforce_types -def test_query_pending_payouts_edge_cases(): - def mock_query_subgraph(subgraph_url, query): # pylint:disable=unused-argument - return {"data": {}} - - PATH = "pdr_backend.subgraph.subgraph_pending_payouts" - with patch(f"{PATH}.query_subgraph", mock_query_subgraph): - query_pending_payouts( - subgraph_url="foo", - addr="0x123", - ) - - def mock_query_subgraph_2(subgraph_url, query): # pylint:disable=unused-argument - return {"data": {"predictPredictions": []}} - - with patch(f"{PATH}.query_subgraph", mock_query_subgraph_2): - query_pending_payouts( - subgraph_url="foo", - addr="0x123", - ) diff --git a/pdr_backend/subgraph/test/test_subgraph_pending_slots.py b/pdr_backend/subgraph/test/test_subgraph_pending_slots.py deleted file mode 100644 index 448206be2..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_pending_slots.py +++ /dev/null @@ -1,69 +0,0 @@ -from unittest.mock import patch - -from enforce_typing import enforce_types - -from pdr_backend.contract.slot import Slot -from pdr_backend.subgraph.info725 import key_to_key725, value_to_value725 -from pdr_backend.subgraph.subgraph_pending_slots import get_pending_slots - -SAMPLE_SLOT_DATA = [ - { - "id": "slot1", - "slot": 1000, - "trueValues": [], - "predictContract": { - "id": "contract1", - "token": { - "id": "token1", - "name": "ether", - "symbol": "ETH", - "nft": { - "owner": {"id": "0xowner1"}, - "nftData": [ - { - "key": key_to_key725("pair"), - "value": value_to_value725("ETH/USDT"), - }, - { - "key": key_to_key725("timeframe"), - "value": value_to_value725("5m"), - }, - { - "key": key_to_key725("source"), - "value": value_to_value725("binance"), - }, - ], - }, - }, - "secondsPerEpoch": 7, - "secondsPerSubscription": 700, - "truevalSubmitTimeout": 5, - }, - } -] - - -@enforce_types -def test_get_pending_slots(): - call_count = 0 - - def mock_query_subgraph(subgraph_url, query): # pylint:disable=unused-argument - nonlocal call_count - slot_data = SAMPLE_SLOT_DATA if call_count <= 1 else [] - call_count += 1 - return {"data": {"predictSlots": slot_data}} - - PATH = "pdr_backend.subgraph.subgraph_pending_slots" - with patch(f"{PATH}.query_subgraph", mock_query_subgraph): - slots = get_pending_slots( - subgraph_url="foo", - timestamp=2000, - owner_addresses=None, - allowed_feeds=None, - ) - - assert len(slots) == 2 - slot0 = slots[0] - assert isinstance(slot0, Slot) - assert slot0.slot_number == 1000 - assert slot0.feed.name == "ether" diff --git a/pdr_backend/subgraph/test/test_subgraph_predictions.py b/pdr_backend/subgraph/test/test_subgraph_predictions.py deleted file mode 100644 index 1707fca27..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_predictions.py +++ /dev/null @@ -1,281 +0,0 @@ -from typing import Dict -from unittest.mock import patch - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_predictions import ( - Prediction, - fetch_contract_id_and_spe, - fetch_filtered_predictions, - get_all_contract_ids_by_owner, -) -from pdr_backend.util.time_types import UnixTimeS - -ADA_CONTRACT_ADDRESS = "0x18f54cc21b7a2fdd011bea06bba7801b280e3151" - -SAMPLE_PREDICTION = Prediction( - # pylint: disable=line-too-long - ID="0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1698527100-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - contract="0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - pair="ADA-USDT", - timeframe="5m", - predvalue=True, - stake=0.050051425480971974, - truevalue=False, - timestamp=UnixTimeS(1698527000), - source="binance", - payout=0.0, - slot=UnixTimeS(1698527100), - user="0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", -) - -# pylint: disable=line-too-long -_PREDICTION = { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1698527100-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - "user": {"id": "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd"}, - "stake": "0.050051425480971974", - "timestamp": 1698527000, - "payout": {"payout": "0", "trueValue": False, "predictedValue": True}, - "slot": { - "slot": 1698527100, - "predictContract": { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "secondsPerEpoch": "300", - "token": { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "name": "ADA-USDT", - "nft": { - "nftData": [ - { - "key": "0x238ad53218834f943da60c8bafd36c36692dcb35e6d76bdd93202f5c04c0baff", - "value": "0x55534454", - }, - { - "key": "0x2cef5778d97683b4f64607f72e862fc0c92376e44cc61195ef72a634c0b1793e", - "value": "0x4144412f55534454", - }, - { - "key": "0x49435d2ff85f9f3594e40e887943d562765d026d50b7383e76891f8190bff4c9", - "value": "0x356d", - }, - { - "key": "0xf1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f", - "value": "0x414441", - }, - { - "key": "0xf7e3126f87228afb82c9b18537eed25aaeb8171a78814781c26ed2cfeff27e69", - "value": "0x62696e616e6365", - }, - ] - }, - }, - }, - }, -} - -MOCK_PREDICTIONS_RESPONSE_FIRST_CALL = {"data": {"predictPredictions": [_PREDICTION]}} - -MOCK_PREDICTIONS_RESPONSE_SECOND_CALL: Dict[str, dict] = {} - -MOCK_PREDICTIONS_RESPONSE_1000 = { - "data": {"predictPredictions": [_PREDICTION for i in range(0, 1000)]} -} - -MOCK_CONTRACTS_RESPONSE = { - "data": { - "tokens": [ - {"id": "token1"}, - {"id": "token2"}, - ] - } -} - -MOCK_CONTRACT_DETAILS_RESPONSE = { - "data": { - "predictContracts": [ - {"id": "contract1", "secondsPerEpoch": 300, "token": {"name": "token1"}}, - {"id": "contract2", "secondsPerEpoch": 600, "token": {"name": "token2"}}, - ] - } -} - - -@enforce_types -@patch("pdr_backend.subgraph.subgraph_predictions.query_subgraph") -def test_fetch_filtered_predictions(mock_query_subgraph): - """ - @description - Test that fetch_filtered_predictions() can fetch predictions from subgraph - and return them as a list of Prediction objects. - """ - # show the system can fetch multiple times, and handle empty responses - mock_query_subgraph.side_effect = [ - MOCK_PREDICTIONS_RESPONSE_1000, - MOCK_PREDICTIONS_RESPONSE_1000, - MOCK_PREDICTIONS_RESPONSE_SECOND_CALL, - ] - predictions = fetch_filtered_predictions( - start_ts=UnixTimeS(1622547000), - end_ts=UnixTimeS(1622548800), - first=1000, - skip=0, - addresses=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="mainnet", - ) - - assert len(predictions) == 1000 - assert isinstance(predictions[0], Prediction) - assert predictions[0].user == "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd" - assert predictions[0].pair == "ADA/USDT" - assert predictions[0].contract == "0x18f54cc21b7a2fdd011bea06bba7801b280e3151" - assert predictions[0].truevalue is False - assert predictions[0].predvalue is True - assert mock_query_subgraph.call_count == 1 - - -@enforce_types -@patch("pdr_backend.subgraph.subgraph_predictions.query_subgraph") -def test_fetch_filtered_predictions_exception(mock_query_subgraph): - """ - @description - Verifies that fetch_filtered_predictions() can handle exceptions from subgraph - and return the predictions that were fetched before the exception. - """ - num_successful_fetches = 1 - - # we're going to simulate an exception from subgraph on the second call - # pylint: disable=unused-argument - def simulate_exception(*args, **kwargs): - if simulate_exception.call_count < num_successful_fetches: - simulate_exception.call_count += 1 - return MOCK_PREDICTIONS_RESPONSE_1000 - raise Exception(f"Simulated exception on call #{num_successful_fetches+1}") - - simulate_exception.call_count = 0 - - # Patch query_subgraph to use our simulate_exception function - mock_query_subgraph.side_effect = simulate_exception - - predictions = fetch_filtered_predictions( - start_ts=UnixTimeS(1622547000), - end_ts=UnixTimeS(1622548800), - first=1000, - skip=0, - addresses=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="mainnet", - ) - - assert len(predictions) == num_successful_fetches * 1000 - assert mock_query_subgraph.call_count == num_successful_fetches - - -@enforce_types -def test_fetch_filtered_predictions_no_data(): - # network not supported - with pytest.raises(Exception): - fetch_filtered_predictions( - start_ts=UnixTimeS(1622547000), - end_ts=UnixTimeS(1622548800), - first=1000, - skip=0, - addresses=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="xyz", - ) - - with patch( - "pdr_backend.subgraph.subgraph_predictions.query_subgraph" - ) as mock_query_subgraph: - mock_query_subgraph.return_value = {"data": {}} - predictions = fetch_filtered_predictions( - start_ts=UnixTimeS(1622547000), - end_ts=UnixTimeS(1622548800), - first=1000, - skip=0, - addresses=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="mainnet", - ) - assert len(predictions) == 0 - - with patch( - "pdr_backend.subgraph.subgraph_predictions.query_subgraph" - ) as mock_query_subgraph: - mock_query_subgraph.return_value = {"data": {"predictPredictions": []}} - predictions = fetch_filtered_predictions( - start_ts=UnixTimeS(1622547000), - end_ts=UnixTimeS(1622548800), - first=1000, - skip=0, - addresses=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="mainnet", - ) - assert len(predictions) == 0 - - -@enforce_types -@patch( - "pdr_backend.subgraph.subgraph_predictions.query_subgraph", - return_value=MOCK_CONTRACTS_RESPONSE, -) -def test_get_all_contract_ids_by_owner( - mock_query_subgraph, -): # pylint: disable=unused-argument - contract_ids = get_all_contract_ids_by_owner( - owner_address="0xOwner", network="mainnet" - ) - - assert len(contract_ids) == 2 - assert "token1" in contract_ids - assert "token2" in contract_ids - mock_query_subgraph.assert_called_once() - - with patch( - "pdr_backend.subgraph.subgraph_predictions.query_subgraph", - return_value={"data": {}}, - ): - with pytest.raises(Exception): - get_all_contract_ids_by_owner(owner_address="0xOwner", network="mainnet") - - # network not supported - with pytest.raises(Exception): - get_all_contract_ids_by_owner(owner_address="0xOwner", network="xyz") - - -@enforce_types -@patch( - "pdr_backend.subgraph.subgraph_predictions.query_subgraph", - return_value=MOCK_CONTRACT_DETAILS_RESPONSE, -) -def test_fetch_contract_id_and_spe( - mock_query_subgraph, -): # pylint: disable=unused-argument - contracts_list = fetch_contract_id_and_spe( - contract_addresses=["contract1", "contract2"], network="mainnet" - ) - - assert len(contracts_list) == 2 - - c0, c1 = contracts_list # pylint: disable=unbalanced-tuple-unpacking - assert c0["ID"] == "contract1" - assert c0["seconds_per_epoch"] == 300 - assert c0["name"] == "token1" - assert c1["ID"] == "contract2" - assert c1["seconds_per_epoch"] == 600 - assert c1["name"] == "token2" - - mock_query_subgraph.assert_called_once() - - with patch( - "pdr_backend.subgraph.subgraph_predictions.query_subgraph", - return_value={"data": {}}, - ): - with pytest.raises(Exception): - fetch_contract_id_and_spe( - contract_addresses=["contract1", "contract2"], network="mainnet" - ) - - # network not supported - with pytest.raises(Exception): - fetch_contract_id_and_spe( - contract_addresses=["contract1", "contract2"], network="xyz" - ) diff --git a/pdr_backend/subgraph/test/test_subgraph_slot.py b/pdr_backend/subgraph/test/test_subgraph_slot.py deleted file mode 100644 index 9e9425ce6..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_slot.py +++ /dev/null @@ -1,109 +0,0 @@ -from typing import Dict -from unittest.mock import patch - -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_slot import ( - fetch_slots, - get_predict_slots_query, - get_slots, -) -from pdr_backend.lake.slot import Slot -from pdr_backend.util.time_types import UnixTimeS - - -@enforce_types -def test_get_predict_slots_query(): - # Test the get_predict_slots_query function with expected inputs and outputs - query = get_predict_slots_query( - asset_ids=["0xAsset"], - initial_slot=UnixTimeS(1000), - last_slot=UnixTimeS(2000), - first=10, - skip=0, - ) - assert "predictSlots" in query - assert "0xAsset" in query - assert "1000" in query - assert "2000" in query - - -# Sample data for tests -SAMPLE_PREDICT_QUERY_RESULT_ITEM = { - "id": "0xAsset-12345", - "slot": 12345, - "trueValues": [{"ID": "1", "trueValue": True}], - "roundSumStakesUp": 150.0, - "roundSumStakes": 100.0, -} - - -MOCK_QUERY_RESPONSE = {"data": {"predictSlots": [SAMPLE_PREDICT_QUERY_RESULT_ITEM]}} - -MOCK_QUERY_RESPONSE_FIRST_CALL = { - "data": { - "predictSlots": [SAMPLE_PREDICT_QUERY_RESULT_ITEM] - * 1000 # Simulate a full page of results - } -} - -MOCK_QUERY_RESPONSE_SECOND_CALL: Dict[str, Dict[str, list]] = { - "data": {"predictSlots": []} # Simulate no further results, stopping the recursion -} - - -@enforce_types -@patch("pdr_backend.subgraph.subgraph_slot.query_subgraph") -def test_get_slots(mock_query_subgraph): - # Configure the mock to return a full page of results on the first call, - # and no results on the second call - mock_query_subgraph.side_effect = [ - MOCK_QUERY_RESPONSE_FIRST_CALL, - MOCK_QUERY_RESPONSE_SECOND_CALL, - ] - - result_slots = get_slots( - end_ts_param=UnixTimeS(2000), - start_ts_param=UnixTimeS(1000), - addresses=["0xAsset"], - first=1000, - skip=0, - slots=[], - network="mainnet", - ) - - print("test_get_slots", result_slots) - - # Verify that the mock was called twice (once for the initial call, once for the recursive call) - assert mock_query_subgraph.call_count == 1 - # Verify that the result contains the expected number of slots - assert len(result_slots) == 1000 - # Verify that the slots contain instances of Slot - assert isinstance(result_slots[0], Slot) - # Verify the first slot's data matches the sample - assert result_slots[0].ID == "0xAsset-12345" - - -@enforce_types -@patch( - "pdr_backend.subgraph.subgraph_slot.query_subgraph", - return_value=MOCK_QUERY_RESPONSE, -) -def test_fetch_slots_for_all_contracts(mock_query_subgraph): - # Test logic for fetching slots for all contracts - result = fetch_slots( - start_ts_param=UnixTimeS(1000), - end_ts_param=UnixTimeS(2000), - contracts=["0xAsset"], - first=1000, - skip=0, - network="mainnet", - ) - - print("test_fetch_slots_for_all_contracts", result) - # Verify that the result is structured correctly - print(result[0]) - assert len(result) == 1 - assert result[0].ID == "0xAsset-12345" - # Verify that the mock was called - mock_query_subgraph.assert_called() diff --git a/pdr_backend/subgraph/test/test_subgraph_subscriptions.py b/pdr_backend/subgraph/test/test_subgraph_subscriptions.py deleted file mode 100644 index fb2b29cc8..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_subscriptions.py +++ /dev/null @@ -1,142 +0,0 @@ -from typing import Dict -from unittest.mock import patch - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_subscriptions import ( - Subscription, - fetch_filtered_subscriptions, -) -from pdr_backend.util.time_types import UnixTimeS - -SAMPLE_PREDICTION = Subscription( - # pylint: disable=line-too-long - ID="0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00d1e4950e0de743fe88956f02f44b16d22a1827f8c29ff561b69716dbcc2677-14", - pair="ADA-USDT", - timeframe="5m", - source="binance", - timestamp=UnixTimeS(1701129777), - tx_id="0x00d1e4950e0de743fe88956f02f44b16d22a1827f8c29ff561b69716dbcc2677", - last_price_value=float("2.4979184013322233") * 1.201, - user="0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d", -) - -# pylint: disable=line-too-long -MOCK_SUBSCRIPTIONS_RESPONSE_FIRST_CALL = { - "data": { - "predictSubscriptions": [ - { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00d1e4950e0de743fe88956f02f44b16d22a1827f8c29ff561b69716dbcc2677-14", - "predictContract": { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "token": { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "name": "ADA-USDT", - "nft": { - "nftData": [ - { - "key": "0x238ad53218834f943da60c8bafd36c36692dcb35e6d76bdd93202f5c04c0baff", - "value": "0x55534454", - }, - { - "key": "0x2cef5778d97683b4f64607f72e862fc0c92376e44cc61195ef72a634c0b1793e", - "value": "0x4144412f55534454", - }, - { - "key": "0x49435d2ff85f9f3594e40e887943d562765d026d50b7383e76891f8190bff4c9", - "value": "0x356d", - }, - { - "key": "0xf1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f", - "value": "0x414441", - }, - { - "key": "0xf7e3126f87228afb82c9b18537eed25aaeb8171a78814781c26ed2cfeff27e69", - "value": "0x62696e616e6365", - }, - ] - }, - "lastPriceValue": "2.4979184013322233", - }, - "secondsPerSubscription": "86400", - "secondsPerEpoch": "300", - }, - "user": {"id": "0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d"}, - "expireTime": "1701216000", - "eventIndex": 14, - "block": 1342747, - "timestamp": 1701129777, - "txId": "0x00d1e4950e0de743fe88956f02f44b16d22a1827f8c29ff561b69716dbcc2677", - } - ] - } -} - -MOCK_SUBSCRIPTIONS_RESPONSE_SECOND_CALL: Dict[str, dict] = {} - - -@enforce_types -@patch("pdr_backend.subgraph.subgraph_subscriptions.query_subgraph") -def test_fetch_filtered_subscriptions(mock_query_subgraph): - mock_query_subgraph.side_effect = [ - MOCK_SUBSCRIPTIONS_RESPONSE_FIRST_CALL, - MOCK_SUBSCRIPTIONS_RESPONSE_SECOND_CALL, - ] - subscriptions = fetch_filtered_subscriptions( - start_ts=UnixTimeS(1701129700), - end_ts=UnixTimeS(1701129800), - first=1000, - skip=0, - contracts=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="mainnet", - ) - - assert len(subscriptions) == 1 - assert isinstance(subscriptions[0], Subscription) - assert subscriptions[0].user == "0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d" - assert subscriptions[0].pair == "ADA/USDT" - assert mock_query_subgraph.call_count == 1 - - -@enforce_types -def test_fetch_filtered_subscriptions_no_data(): - # network not supported - with pytest.raises(Exception): - fetch_filtered_subscriptions( - start_ts=UnixTimeS(1701129700), - end_ts=UnixTimeS(1701129800), - first=1000, - skip=0, - contracts=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="xyz", - ) - - with patch( - "pdr_backend.subgraph.subgraph_subscriptions.query_subgraph" - ) as mock_query_subgraph: - mock_query_subgraph.return_value = {"data": {}} - subscriptions = fetch_filtered_subscriptions( - start_ts=UnixTimeS(1701129700), - end_ts=UnixTimeS(1701129800), - first=1000, - skip=0, - contracts=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="mainnet", - ) - assert len(subscriptions) == 0 - - with patch( - "pdr_backend.subgraph.subgraph_subscriptions.query_subgraph" - ) as mock_query_subgraph: - mock_query_subgraph.return_value = {"data": {"predictPredictions": []}} - subscriptions = fetch_filtered_subscriptions( - start_ts=UnixTimeS(1701129700), - end_ts=UnixTimeS(1701129800), - first=1000, - skip=0, - contracts=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="mainnet", - ) - - assert len(subscriptions) == 0 diff --git a/pdr_backend/subgraph/test/test_subgraph_sync.py b/pdr_backend/subgraph/test/test_subgraph_sync.py deleted file mode 100644 index df1efbf47..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_sync.py +++ /dev/null @@ -1,47 +0,0 @@ -from unittest.mock import Mock, patch - -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_sync import ( - block_number_is_synced, - wait_until_subgraph_syncs, -) -from pdr_backend.util.web3_config import Web3Config - - -@enforce_types -def test_block_number_is_synced(): - def mock_response(url: str, query: str): # pylint:disable=unused-argument - if "number:50" in query: - return { - "errors": [ - { - # pylint: disable=line-too-long - "message": "Failed to decode `block.number` value: `subgraph QmaGAi4jQw5L8J2xjnofAJb1PX5LLqRvGjsWbVehBELAUx only has data starting at block number 499 and data for block number 500 is therefore not available`" - } - ] - } - - return {"data": {"predictContracts": [{"id": "sample_id"}]}} - - with patch( - "pdr_backend.subgraph.subgraph_sync.query_subgraph", - side_effect=mock_response, - ): - assert block_number_is_synced("foo", 499) is True - assert block_number_is_synced("foo", 500) is False - assert block_number_is_synced("foo", 501) is False - - -@enforce_types -def test_wait_until_subgraph_syncs(): - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.w3 = Mock() - mock_web3_config.w3.eth = Mock() - mock_web3_config.w3.eth.block_number = 500 - - with patch( - "pdr_backend.subgraph.subgraph_sync.block_number_is_synced", - side_effect=[False, True], - ): - wait_until_subgraph_syncs(mock_web3_config, "foo") diff --git a/pdr_backend/subgraph/test/test_subgraph_trueval.py b/pdr_backend/subgraph/test/test_subgraph_trueval.py deleted file mode 100644 index 72e76f0b6..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_trueval.py +++ /dev/null @@ -1,67 +0,0 @@ -from unittest.mock import patch - -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_trueval import ( - Trueval, - get_truevals_query, - fetch_truevals, -) -from pdr_backend.util.time_types import UnixTimeS - -# pylint: disable=line-too-long -MOCK_TRUEVAL_QUERY_RESPONSE = { - "data": { - "predictTrueVals": [ - { - "id": "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1698527100", - "timestamp": 1698527000, - "trueValue": True, - "slot": { - "slot": 1698527100, - "predictContract": { - "token": {"name": "ADA/USDT"}, - }, - }, - } - ] - } -} - - -def test_get_trueval_query(): - trueval_query = get_truevals_query( - ["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - UnixTimeS(1622547000), - UnixTimeS(1622548800), - 1000, - 0, - ) - - assert "1622547000" in trueval_query - assert "1622548800" in trueval_query - assert "0x18f54cc21b7a2fdd011bea06bba7801b280e3151" in trueval_query - - -@enforce_types -@patch("pdr_backend.subgraph.subgraph_trueval.query_subgraph") -def test_fetch_filtered_truevals(mock_query_subgraph): - mock_query_subgraph.return_value = MOCK_TRUEVAL_QUERY_RESPONSE - - truevals = fetch_truevals( - start_ts=UnixTimeS(1698526000), - end_ts=UnixTimeS(1698528000), - first=1000, - skip=0, - addresses=["0x18f54cc21b7a2fdd011bea06bba7801b280e3151"], - network="mainnet", - ) - print(truevals) - assert len(truevals) == 1 - assert isinstance(truevals[0], Trueval) - assert truevals[0].ID == "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1698527100" - assert truevals[0].token == "ADA/USDT" - assert truevals[0].timestamp == 1698527000 - assert truevals[0].slot == 1698527100 - assert truevals[0].truevalue is True - assert mock_query_subgraph.call_count == 1 diff --git a/pdr_backend/subgraph/test/test_trueval.py b/pdr_backend/subgraph/test/test_trueval.py deleted file mode 100644 index bfe0b243f..000000000 --- a/pdr_backend/subgraph/test/test_trueval.py +++ /dev/null @@ -1,14 +0,0 @@ -from enforce_typing import enforce_types - -from pdr_backend.lake.trueval import Trueval, mock_truevals - - -@enforce_types -def test_truevals(): - truevals = mock_truevals() - - assert len(truevals) == 6 - assert isinstance(truevals[0], Trueval) - assert isinstance(truevals[1], Trueval) - assert truevals[0].ID == "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838400" - assert truevals[1].ID == "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838100" diff --git a/pdr_backend/trueval/test/conftest.py b/pdr_backend/trueval/test/conftest.py deleted file mode 100644 index 99a483970..000000000 --- a/pdr_backend/trueval/test/conftest.py +++ /dev/null @@ -1,36 +0,0 @@ -from unittest.mock import Mock, patch - -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import -from pdr_backend.contract.slot import Slot -from pdr_backend.ppss.ppss import PPSS, fast_test_yaml_str -from pdr_backend.subgraph.subgraph_feed import mock_feed - - -@pytest.fixture() -def slot(): - feed = mock_feed("5m", "kraken", "ETH/USDT") - return Slot( - feed=feed, - slot_number=1692943200, - ) - - -@pytest.fixture() -def mock_ppss(tmpdir): - return PPSS(yaml_str=fast_test_yaml_str(tmpdir), network="development") - - -@pytest.fixture() -def feed_contract_mock(): - def mock_contract(*args, **kwarg): # pylint: disable=unused-argument - m = Mock() - m.get_secondsPerEpoch.return_value = 60 - m.submit_trueval.return_value = {"tx": "0x123"} - m.contract_address = "0x1" - return m - - with patch( - "pdr_backend.trueval.trueval_agent.FeedContract", - return_value=mock_contract(), - ) as mock_feed_contract_mock: - yield mock_feed_contract_mock diff --git a/pdr_backend/trueval/test/test_get_trueval.py b/pdr_backend/trueval/test/test_get_trueval.py deleted file mode 100644 index 1e18972f5..000000000 --- a/pdr_backend/trueval/test/test_get_trueval.py +++ /dev/null @@ -1,42 +0,0 @@ -import pytest -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_feed import mock_feed -from pdr_backend.trueval.get_trueval import get_trueval -from pdr_backend.util.time_types import UnixTimeS - -_PATH = "pdr_backend.trueval.get_trueval" - - -@enforce_types -def test_get_trueval_success(monkeypatch): - def mock_fetch_ohlcv(*args, **kwargs): # pylint: disable=unused-argument - since = kwargs.get("since") - if since == 0: - return [[0, 0, 0, 0, 100], [300000, 0, 0, 0, 200]] - raise ValueError(f"Invalid timestamp: since={since}") - - monkeypatch.setattr(f"{_PATH}.fetch_ohlcv", mock_fetch_ohlcv) - - feed = mock_feed("5m", "kraken", "ETH/USDT") - - init_ts = UnixTimeS(feed.seconds_per_epoch) - end_ts = UnixTimeS(init_ts + feed.seconds_per_epoch) - result = get_trueval(feed, init_ts, end_ts) - assert result == (True, False) - - -@enforce_types -def test_get_trueval_fail(monkeypatch): - def mock_fetch_ohlcv_fail(*args, **kwargs): # pylint: disable=unused-argument - return [[0, 0, 0, 0, 0], [300000, 0, 0, 0, 200]] - - monkeypatch.setattr(f"{_PATH}.fetch_ohlcv", mock_fetch_ohlcv_fail) - - feed = mock_feed("5m", "kraken", "eth-usdt") - - init_ts = UnixTimeS(feed.seconds_per_epoch) - end_ts = UnixTimeS(init_ts + feed.seconds_per_epoch) - with pytest.raises(Exception): - result = get_trueval(feed, init_ts, end_ts) - assert result == (False, True) # 2nd True because failed diff --git a/pdr_backend/trueval/test/test_trueval_agent.py b/pdr_backend/trueval/test/test_trueval_agent.py deleted file mode 100644 index 755e2e550..000000000 --- a/pdr_backend/trueval/test/test_trueval_agent.py +++ /dev/null @@ -1,176 +0,0 @@ -from copy import deepcopy -from unittest.mock import MagicMock, Mock, patch - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.trueval.trueval_agent import TruevalAgent, TruevalSlot -from pdr_backend.util.constants import ZERO_ADDRESS - -PATH = "pdr_backend.trueval.trueval_agent" - - -@enforce_types -def test_trueval_agent_constructor(mock_ppss): - agent_ = TruevalAgent(mock_ppss, ZERO_ADDRESS) - assert agent_.ppss == mock_ppss - assert agent_.predictoor_batcher.contract_address == ZERO_ADDRESS - - -@enforce_types -def test_get_contract_info_caching(agent, feed_contract_mock): - agent.get_contract_info("0x1") - agent.get_contract_info("0x1") - assert feed_contract_mock.call_count == 1 - feed_contract_mock.assert_called_once_with(agent.ppss.web3_pp, "0x1") - - -@enforce_types -def test_get_trueval_slot( - agent, slot, feed_contract_mock -): # pylint: disable=unused-argument - for trueval, cancel in [ - (True, True), # up - (False, True), # down - (True, False), # cancel - ]: - with patch(f"{PATH}.get_trueval", Mock(return_value=(trueval, cancel))): - result = agent.get_trueval_slot(slot) - assert result == (trueval, cancel) - - -@enforce_types -def test_get_trueval_slot_too_many_requests_retry( - agent, slot, feed_contract_mock -): # pylint: disable=unused-argument - mock_get_trueval = MagicMock( - side_effect=[Exception("Too many requests"), (True, True)] - ) - with patch(f"{PATH}.get_trueval", mock_get_trueval), patch( - "time.sleep", return_value=None - ) as mock_sleep: - result = agent.get_trueval_slot(slot) - mock_sleep.assert_called_once_with(60) - assert result == (True, True) - assert mock_get_trueval.call_count == 2 - - -@enforce_types -def test_trueval_agent_run(agent): - mock_take_step = Mock() - with patch.object(agent, "take_step", mock_take_step): - agent.run(testing=True) - - mock_take_step.assert_called_once() - - -@enforce_types -def test_trueval_agent_get_init_and_ts(agent): - ts = 2000 - seconds_per_epoch = 300 - - (initial_ts, end_ts) = agent.get_init_and_ts(ts, seconds_per_epoch) - assert initial_ts == ts - 300 - assert end_ts == ts - - -@enforce_types -def test_process_trueval_slot( - agent, slot, feed_contract_mock -): # pylint: disable=unused-argument - for trueval, cancel in [ - (True, True), # up - (False, True), # down - (True, False), # cancel - ]: - with patch(f"{PATH}.get_trueval", Mock(return_value=(trueval, cancel))): - slot = TruevalSlot(slot_number=slot.slot_number, feed=slot.feed) - agent.process_trueval_slot(slot) - - assert slot.trueval == trueval - assert slot.cancel == cancel - - -@enforce_types -def test_batch_submit_truevals(agent, slot): - times = 3 - slot.feed.address = "0x0000000000000000000000000000000000c0ffee" - trueval_slots = [ - TruevalSlot(feed=slot.feed, slot_number=i) for i in range(0, times) - ] - for i in trueval_slots: - i.set_trueval(True) - i.set_cancel(False) - - slot2 = deepcopy(slot) - slot2.feed.address = "0x0000000000000000000000000000000000badbad" - trueval_slots_2 = [ - TruevalSlot(feed=slot2.feed, slot_number=i) for i in range(0, times) - ] - for i in trueval_slots_2: - i.set_trueval(True) - i.set_cancel(False) - - trueval_slots.extend(trueval_slots_2) - - contract_addrs = [ - "0x0000000000000000000000000000000000C0FFEE", - "0x0000000000000000000000000000000000baDbad", - ] # checksum - epoch_starts = [list(range(0, times))] * 2 - truevals = [[True] * times, [True] * times] - cancels = [[False] * times, [False] * times] - - with patch.object( - agent.predictoor_batcher, - "submit_truevals_contracts", - return_value={"transactionHash": bytes.fromhex("badc0ffeee")}, - ) as mock: - tx = agent.batch_submit_truevals(trueval_slots) - assert tx == "badc0ffeee" - mock.assert_called_with(contract_addrs, epoch_starts, truevals, cancels, True) - - -@enforce_types -def test_trueval_agent_take_step(agent, slot): - with patch(f"{PATH}.wait_until_subgraph_syncs"), patch.object( - agent, "get_batch", return_value=[slot] - ) as mock_get_batch, patch.object( - agent, "process_trueval_slot" - ) as mock_process_trueval_slot, patch( - "time.sleep" - ), patch.object( - agent, "batch_submit_truevals" - ) as mock_batch_submit_truevals: - agent.take_step() - - mock_get_batch.assert_called_once() - call_args = mock_process_trueval_slot.call_args[0][0] - assert call_args.slot_number == slot.slot_number - assert call_args.feed == slot.feed - - call_args = mock_batch_submit_truevals.call_args[0][0] - assert call_args[0].slot_number == slot.slot_number - assert call_args[0].feed == slot.feed - - -@enforce_types -def test_trueval_agent_get_batch(agent, slot): - with patch.object(agent.ppss.web3_pp, "get_pending_slots", return_value=[slot]): - batch = agent.get_batch() - - assert batch == [slot] - - with patch.object(agent.ppss.web3_pp, "get_pending_slots", return_value=[]): - batch = agent.get_batch() - - assert batch == [] - - -# ---------------------------------------------- -# Fixtures - - -@pytest.fixture(name="agent") -def agent_fixture(mock_ppss): - return TruevalAgent(mock_ppss, ZERO_ADDRESS) diff --git a/pdr_backend/util/test_ganache/__init__.py b/pdr_backend/util/test_ganache/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/pdr_backend/util/test_ganache/conftest.py b/pdr_backend/util/test_ganache/conftest.py deleted file mode 100644 index fc9ed034c..000000000 --- a/pdr_backend/util/test_ganache/conftest.py +++ /dev/null @@ -1 +0,0 @@ -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import diff --git a/pdr_backend/util/test_ganache/test_core_accounts.py b/pdr_backend/util/test_ganache/test_core_accounts.py deleted file mode 100644 index f6b9ff4de..000000000 --- a/pdr_backend/util/test_ganache/test_core_accounts.py +++ /dev/null @@ -1,54 +0,0 @@ -import os -from unittest.mock import Mock, call - -from enforce_typing import enforce_types -from eth_account import Account - -from pdr_backend.contract.token import Token -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.core_accounts import _fund_accounts, fund_accounts_with_OCEAN -from pdr_backend.util.currency_types import Eth, Wei - - -@enforce_types -def test_fund_accounts_with_OCEAN(monkeypatch): - if os.getenv("NETWORK_OVERRIDE"): - monkeypatch.delenv("NETWORK_OVERRIDE") - - web3_pp = Mock(spec=Web3PP) - web3_pp.network = "development" - web3_pp.OCEAN_Token = Mock(spec=Token) - web3_pp.web3_config = Mock() - web3_pp.web3_config.owner = "0x123" - - path = "pdr_backend.util.core_accounts" - mock_f = Mock() - monkeypatch.setattr(f"{path}._fund_accounts", mock_f) - - fund_accounts_with_OCEAN(web3_pp) - mock_f.assert_called() - - -@enforce_types -def test_fund_accounts(monkeypatch): - pk = os.getenv("PRIVATE_KEY") - monkeypatch.setenv("PREDICTOOR_PRIVATE_KEY", pk) - monkeypatch.setenv("PREDICTOOR2_PRIVATE_KEY", pk) - - mock_token = Mock(spec=Token) - mock_account = Mock(spec=str) - - accounts_to_fund = [ - ("PREDICTOOR_PRIVATE_KEY", Eth(2000)), - ("PREDICTOOR2_PRIVATE_KEY", Eth(3000)), - ] - - _fund_accounts(accounts_to_fund, mock_account, mock_token) - - a = Account.from_key(private_key=pk) # pylint: disable=no-value-for-parameter - mock_token.transfer.assert_has_calls( - [ - call(a.address, Wei(2e21), mock_account), - call(a.address, Wei(3e21), mock_account), - ] - ) diff --git a/pdr_backend/util/test_ganache/test_networkutil.py b/pdr_backend/util/test_ganache/test_networkutil.py deleted file mode 100644 index 4a3be329c..000000000 --- a/pdr_backend/util/test_ganache/test_networkutil.py +++ /dev/null @@ -1,37 +0,0 @@ -import pytest -from enforce_typing import enforce_types - -from pdr_backend.util.networkutil import ( - get_sapphire_postfix, - get_subgraph_url, -) - - -@enforce_types -def test_get_sapphire_postfix(): - assert get_sapphire_postfix("sapphire-testnet"), "testnet" - assert get_sapphire_postfix("sapphire-mainnet"), "mainnet" - - unwanteds = [ - "oasis_saphire_testnet", - "saphire_mainnet", - "barge-pytest", - "barge-predictoor-bot", - "development", - "foo", - "", - ] - for unwanted in unwanteds: - with pytest.raises(ValueError): - assert get_sapphire_postfix(unwanted) - - -def test_get_subgraph(): - expected = ( - "https://v4.subgraph.sapphire-testnet.oceanprotocol.com/" - "subgraphs/name/oceanprotocol/ocean-subgraph" - ) - assert get_subgraph_url("testnet") == expected - - with pytest.raises(ValueError): - get_subgraph_url("sapphire-testnet") diff --git a/pdr_backend/util/test_ganache/test_web3_accounts.py b/pdr_backend/util/test_ganache/test_web3_accounts.py deleted file mode 100644 index 0df56cf07..000000000 --- a/pdr_backend/util/test_ganache/test_web3_accounts.py +++ /dev/null @@ -1,93 +0,0 @@ -from unittest.mock import patch - -from enforce_typing import enforce_types - -from pdr_backend.ppss.web3_pp import mock_web3_pp -from pdr_backend.util.web3_accounts import ( - create_accounts, - fund_accounts, - print_balances, -) -from pdr_backend.util.currency_types import Eth - - -@enforce_types -@patch("eth_account.Account.create") -def test_create_accounts(mock_create): - create_accounts(2) - - # assert mock_create was called twice - assert mock_create.call_count == 2 - - -@enforce_types -@patch("pdr_backend.ppss.web3_pp.Token") -@patch("pdr_backend.ppss.web3_pp.NativeToken") -@patch("pdr_backend.ppss.web3_pp.Web3PP.get_address") -def test_print_balances(mock_get_address, mock_native_token, mock_token): - web3_pp = mock_web3_pp("development") - - # Create Mock instances for NativeToken and Token - ROSE = mock_native_token.return_value - OCEAN = mock_token.return_value - - # Set the return values for balanceOf methods - ROSE.balanceOf.return_value = Eth(2).to_wei() - OCEAN.balanceOf.return_value = Eth(1).to_wei() - - # Set the return value for get_address - mock_get_address.return_value = "0xOCEAN" - - print_balances("0x123", web3_pp) - - # Assert methods are returning right values - assert mock_get_address(web3_pp, "Ocean") == "0xOCEAN" - assert ROSE.balanceOf(mock_get_address) == Eth(2).to_wei() - assert OCEAN.balanceOf(mock_get_address) == Eth(1).to_wei() - - # Assert methods were called the right amount of times - assert ROSE.balanceOf.call_count == 2 - assert OCEAN.balanceOf.call_count == 2 - assert mock_get_address.call_count == 2 - - -@enforce_types -@patch("eth_account.Account.from_key") -@patch("pdr_backend.ppss.web3_pp.Token") -@patch("pdr_backend.ppss.web3_pp.NativeToken") -@patch("pdr_backend.ppss.web3_pp.Web3PP.get_address") -def test_fund_accounts( - mock_get_address, mock_native_token, mock_token, mock_account_from_key -): - web3_pp = mock_web3_pp("sapphire-mainnet") - - # Create Mock instances for NativeToken and Token - native_token_instance = mock_native_token.return_value - token_instance = mock_token.return_value - - # Set the return value for get_address - mock_get_address.return_value = "0xOCEAN" - - # Create Mock instances for Account - account_instance = mock_account_from_key.return_value - - # Set the return value for Account.from_key - mock_account_from_key.return_value = account_instance - - # Set the return value for Account.from_key - account_instance.address = "0x123" - - # Set the return value for token.transfer - token_instance.transfer.return_value = True - - # Test both Native & Token transfers - fund_accounts(Eth(1.0), ["0x123", "0x124"], web3_pp, False) - fund_accounts(Eth(3.5), ["0x125", "0x126", "0x127"], web3_pp, True) - - # Assert internals were called twice, but get_address is only called once - assert mock_account_from_key.call_count == 2 - assert mock_get_address.call_count == 1 - - # Assert 3 native token vs. 2 token transfers - assert token_instance.transfer.call_count == 2 - assert native_token_instance.transfer.call_count == 3 diff --git a/pdr_backend/util/test_ganache/test_web3_config.py b/pdr_backend/util/test_ganache/test_web3_config.py deleted file mode 100644 index 5c4aceb79..000000000 --- a/pdr_backend/util/test_ganache/test_web3_config.py +++ /dev/null @@ -1,87 +0,0 @@ -import os - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.util.constants import MAX_UINT -from pdr_backend.util.web3_config import Web3Config - - -@enforce_types -def test_Web3Config_bad_rpc(): - private_key = os.getenv("PRIVATE_KEY") - with pytest.raises(TypeError): - Web3Config(rpc_url=None, private_key=private_key) - - -@enforce_types -def test_Web3Config_bad_key(rpc_url): - with pytest.raises(ValueError): - Web3Config(rpc_url=rpc_url, private_key="foo") - - -@enforce_types -def test_Web3Config_happy_noPrivateKey(rpc_url): - c = Web3Config(rpc_url=rpc_url, private_key=None) - - assert c.w3 is not None - assert not hasattr(c, "account") - assert not hasattr(c, "owner") - assert not hasattr(c, "private_key") - - -@enforce_types -def test_Web3Config_happy_havePrivateKey_noKeywords(rpc_url): - private_key = os.getenv("PRIVATE_KEY") - c = Web3Config(rpc_url, private_key) - assert c.account - assert c.owner == c.account.address - assert c.private_key == private_key - - -@enforce_types -def test_Web3Config_happy_havePrivateKey_withKeywords(rpc_url): - private_key = os.getenv("PRIVATE_KEY") - c = Web3Config(rpc_url=rpc_url, private_key=private_key) - assert c.account - assert c.owner == c.account.address - assert c.private_key == private_key - - -@enforce_types -def test_Web3Config_get_block_latest(rpc_url): - private_key = os.getenv("PRIVATE_KEY") - c = Web3Config(rpc_url=rpc_url, private_key=private_key) - block = c.get_block("latest") - assert block - assert block["timestamp"] > 0 - - -@enforce_types -def test_Web3Config_get_block_0(rpc_url): - private_key = os.getenv("PRIVATE_KEY") - c = Web3Config(rpc_url=rpc_url, private_key=private_key) - block = c.get_block(0) - assert block - assert block["timestamp"] > 0 - - -@enforce_types -def test_Web3Config_get_auth_signature(rpc_url): - private_key = os.getenv("PRIVATE_KEY") - c = Web3Config(rpc_url=rpc_url, private_key=private_key) - auth = c.get_auth_signature() - - # just a super basic test - assert sorted(auth.keys()) == sorted(["userAddress", "v", "r", "s", "validUntil"]) - - -@enforce_types -def test_get_max_gas(rpc_url): - private_key = os.getenv("PRIVATE_KEY") - web3_config = Web3Config(rpc_url=rpc_url, private_key=private_key) - max_gas = web3_config.get_max_gas() - assert 0 < max_gas < MAX_UINT - - target_max_gas = int(web3_config.get_block("latest").gasLimit * 0.99) - assert max_gas == target_max_gas diff --git a/system_tests/__init__.py b/system_tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/system_tests/conftest.py b/system_tests/conftest.py deleted file mode 100644 index 2223a6b6c..000000000 --- a/system_tests/conftest.py +++ /dev/null @@ -1,47 +0,0 @@ -import os -import sys - -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed - -# Add the root directory to the path -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))) -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import,wrong-import-position - - -@pytest.fixture(scope="session", autouse=True) -def set_test_env_var(): - previous = os.getenv("TEST") - os.environ["TEST"] = "true" - yield - if previous is None: - del os.environ["TEST"] - else: - os.environ["TEST"] = previous - - -@pytest.fixture(scope="session") -def mock_feeds(): - feeds = { - "0x1": SubgraphFeed( - "Feed: binance | BTC/USDT | 5m", - "0x1", - "BTC", - 100, - 300, - "0xf", - "BTC/USDT", - "5m", - "binance", - ) - } - return feeds - - -@pytest.fixture(scope="session") -def mock_feed_contract(): - mock_contract = Mock(spec=FeedContract) - mock_contract.payout_multiple.return_value = None - mock_contract.get_agg_predval.return_value = (12, 23) - mock_contract.get_current_epoch.return_value = 100 - mock_contract.web3_pp = Mock() - return mock_contract diff --git a/system_tests/test_check_network_system.py b/system_tests/test_check_network_system.py deleted file mode 100644 index ac51432ee..000000000 --- a/system_tests/test_check_network_system.py +++ /dev/null @@ -1,74 +0,0 @@ -import sys - -from unittest.mock import Mock, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.constants_opf_addrs import get_opf_addresses -from pdr_backend.util.web3_config import Web3Config -from pdr_backend.util.currency_types import Wei - - -@patch("pdr_backend.analytics.check_network.print_stats") -@patch("pdr_backend.analytics.check_network.check_dfbuyer") -def test_check_network(mock_print_stats, mock_check_dfbuyer, caplog): - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.w3 = Mock() - mock_web3_pp.web3_config = mock_web3_config - mock_web3_pp.web3_config.owner = "0xowner" - - mock_token = MagicMock() - mock_token.balanceOf.return_value = Wei(int(5e18)) - mock_token.transfer.return_value = True - - mock_web3_pp.OCEAN_Token = mock_token - mock_web3_pp.NativeToken = mock_token - mock_web3_pp.get_token_balance.return_value = 100 - mock_web3_pp.w3.eth.block_number = 100 - - mock_query_subgraph = Mock() - mock_query_subgraph.return_value = { - "data": { - "predictContracts": [ - {}, - {}, - {}, - ] - } - } - with patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp), patch( - "sys.exit" - ), patch("pdr_backend.analytics.check_network.query_subgraph", mock_query_subgraph): - # Mock sys.argv - sys.argv = ["pdr", "check_network", "ppss.yaml", "development"] - - cli_module._do_main() - - addresses = get_opf_addresses("sapphire-mainnet") - # Verifying outputs - assert "pdr check_network: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "NETWORK=development" in caplog.text - assert "Number of Predictoor contracts: 3" in caplog.text - assert "Predictions:" in caplog.text - assert "True Values:" in caplog.text - assert "Checking account balances" in caplog.text - - for key in addresses.values(): - if key.startswith("pred"): - assert ( - f"{key}: OCEAN: 5.00 WARNING LOW OCEAN BALANCE!, " - "Native: 0.00 WARNING LOW NATIVE BALANCE!" - ) in caplog.text - - # Additional assertions - mock_print_stats.assert_called() - mock_check_dfbuyer.assert_called() - mock_token.balanceOf.assert_called() diff --git a/system_tests/test_dfbuyer_agent_system.py b/system_tests/test_dfbuyer_agent_system.py deleted file mode 100644 index 44b7597dc..000000000 --- a/system_tests/test_dfbuyer_agent_system.py +++ /dev/null @@ -1,97 +0,0 @@ -import sys - -from unittest.mock import Mock, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.contract.predictoor_batcher import PredictoorBatcher -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed -from pdr_backend.util.constants import SAPPHIRE_MAINNET_CHAINID -from pdr_backend.util.web3_config import Web3Config - - -@patch("pdr_backend.dfbuyer.dfbuyer_agent.wait_until_subgraph_syncs") -@patch("pdr_backend.dfbuyer.dfbuyer_agent.time.sleep") -def test_dfbuyer_agent(mock_wait_until_subgraph_syncs, mock_time_sleep, caplog): - _ = mock_wait_until_subgraph_syncs - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - feeds = { - "0x1": SubgraphFeed( - "Feed: binance | BTC/USDT | 5m", - "0x1", - "BTC", - 100, - 300, - "0xf", - "BTC/USDT", - "5m", - "binance", - ) - } - mock_web3_pp.query_feed_contracts.return_value = feeds - - mock_token = MagicMock() - mock_token.balanceOf.return_value = 100 * 1e18 - mock_token.allowance.return_value = 1e128 - - mock_web3_pp.get_address.return_value = "0x1" - mock_web3_pp.OCEAN_Token = mock_token - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.get_block.return_value = {"timestamp": 100} - mock_web3_config.owner = "0x00000000000000000000000000000000000c0ffe" - mock_web3_config.w3 = Mock() - mock_web3_config.w3.eth.block_number = 100 - mock_web3_config.w3.eth.chain_id = SAPPHIRE_MAINNET_CHAINID - mock_web3_config.w3.to_checksum_address.return_value = "0x1" - mock_web3_config.get_current_timestamp.return_value = 100 - - mock_web3_pp.web3_config = mock_web3_config - - mock_get_consume_so_far_per_contract = Mock() - mock_get_consume_so_far_per_contract.return_value = {"0x1": 120} - - mock_predictoor_batcher = Mock(spec=PredictoorBatcher) - mock_predictoor_batcher.contract_address = "0xpredictoor_batcher" - mock_predictoor_batcher.consume_multiple.return_value = { - "transactionHash": b"0xbatch_submit_tx", - "status": 1, - } - - with patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp), patch( - "pdr_backend.dfbuyer.dfbuyer_agent.PredictoorBatcher", - return_value=mock_predictoor_batcher, - ), patch( - "pdr_backend.dfbuyer.dfbuyer_agent.get_consume_so_far_per_contract", - mock_get_consume_so_far_per_contract, - ), patch( - "pdr_backend.dfbuyer.dfbuyer_agent.DFBuyerAgent._get_prices", - return_value={"0x1": 100}, - ): - # Mock sys.argv - sys.argv = ["pdr", "dfbuyer", "ppss.yaml", "development"] - - cli_module._do_main() - - # Verifying outputs - assert "pdr dfbuyer: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "NETWORK=development" in caplog.text - assert "Feed: 5m binance BTC/USDT 0x1" in caplog.text - assert "Checking allowance..." in caplog.text - assert "Taking step for timestamp: 100" in caplog.text - assert "Missing consume amounts: %s" % {"0x1": 5165.714285714285} in caplog.text - assert "Missing consume times: %s" % {"0x1": 52} in caplog.text - assert "Processing 3 batches" in caplog.text - assert "Consuming contracts ['0x1'] for [20] times." in caplog.text - - # Additional assertions - mock_web3_pp.query_feed_contracts.assert_called() - mock_predictoor_batcher.consume_multiple.assert_called() - mock_time_sleep.assert_called() - mock_get_consume_so_far_per_contract.assert_called() diff --git a/system_tests/test_get_predictions_info_system.py b/system_tests/test_get_predictions_info_system.py deleted file mode 100644 index 0698e205e..000000000 --- a/system_tests/test_get_predictions_info_system.py +++ /dev/null @@ -1,96 +0,0 @@ -import sys -from unittest.mock import MagicMock, Mock, patch - -from pdr_backend.cli import cli_module -from pdr_backend.lake.duckdb_data_store import DuckDBDataStore -from pdr_backend.lake.plutil import _object_list_to_df -from pdr_backend.lake.prediction import Prediction -from pdr_backend.lake.table_pdr_predictions import _transform_timestamp_to_ms -from pdr_backend.ppss.ppss import mock_ppss -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.time_types import UnixTimeS -from pdr_backend.util.web3_config import Web3Config - - -@patch("pdr_backend.analytics.get_predictions_info.get_feed_summary_stats") -def test_get_predictions_info_system(mock_get_feed_summary_stats, caplog): - _feed = "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152" - _user = "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - - mock_predictions = [ - Prediction( - f"{_feed}-31232-{_user}", - _feed, - "BTC", - "5m", - True, - 100.0, - False, - UnixTimeS(1701532572), - "binance", - 10.0, - UnixTimeS(10), - _user, - ) - ] - - st_timestr = "2023-12-03" - fin_timestr = "2024-12-05" - - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - ".", - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_df = _object_list_to_df(mock_predictions) - predictions_df = _transform_timestamp_to_ms(predictions_df) - - # DROP TABLE IF EXISTS - DuckDBDataStore(ppss.lake_ss.lake_dir).drop_table("pdr_predictions") - - DuckDBDataStore(ppss.lake_ss.lake_dir).insert_from_df( - predictions_df, "pdr_predictions" - ) - - mock_get_feed_summary_stats.return_value = predictions_df - - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.w3 = Mock() - mock_web3_pp.web3_config = mock_web3_config - mock_web3_pp.owner_addrs = _user - - with patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp): - # Mock sys.argv - sys.argv = [ - "pdr", - "get_predictions_info", - "2023-12-01", - "2023-12-31", - ppss.lake_ss.lake_dir, - "ppss.yaml", - "development", - "--FEEDS", - _feed, - ] - - cli_module._do_main() - - # Verifying outputs - assert "pdr get_predictions_info: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "NETWORK=development" in caplog.text - assert "FEEDS=['0x2d8e2267779d27C2b3eD5408408fF15D9F3a3152']" in caplog.text - - # # Additional assertions - mock_get_feed_summary_stats.assert_called_once() - mock_get_feed_summary_stats.call_args[0][0].equals(predictions_df) diff --git a/system_tests/test_get_predictoors_info_system.py b/system_tests/test_get_predictoors_info_system.py deleted file mode 100644 index 055f7447d..000000000 --- a/system_tests/test_get_predictoors_info_system.py +++ /dev/null @@ -1,104 +0,0 @@ -import sys -from unittest.mock import MagicMock, Mock, patch - -from pdr_backend.cli import cli_module -from pdr_backend.lake.duckdb_data_store import DuckDBDataStore -from pdr_backend.lake.plutil import _object_list_to_df -from pdr_backend.lake.prediction import Prediction -from pdr_backend.lake.table_pdr_predictions import _transform_timestamp_to_ms -from pdr_backend.ppss.ppss import mock_ppss -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.currency_types import Wei -from pdr_backend.util.time_types import UnixTimeS -from pdr_backend.util.web3_config import Web3Config - - -@patch("pdr_backend.analytics.get_predictions_info.get_predictoor_summary_stats") -def test_get_predictoors_info_system(get_get_predictoor_summary_stats, caplog): - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.w3 = Mock() - mock_web3_config.w3.eth.get_balance.return_value = 100 - mock_web3_pp.web3_config = mock_web3_config - mock_web3_pp.web3_config.owner = "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - mock_web3_pp.owner_addrs = "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - - mock_token = MagicMock() - mock_token.balanceOf.return_value = Wei(int(5e18)) - mock_token.transfer.return_value = True - feed_addr = "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152" - user_addr = "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - - mock_predictions = [ - Prediction( - f"{feed_addr}-31232-{user_addr}", - feed_addr, - "BTC", - "5m", - True, - 100.0, - False, - UnixTimeS(1701532572), - "binance", - 10.0, - UnixTimeS(10), - user_addr, - ) - ] - - st_timestr = "2023-12-03" - fin_timestr = "2024-12-05" - - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - ".", - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_df = _object_list_to_df(mock_predictions) - predictions_df = _transform_timestamp_to_ms(predictions_df) - - get_get_predictoor_summary_stats.return_value = predictions_df - - # DROP TABLE IF EXISTS - DuckDBDataStore(ppss.lake_ss.lake_dir).drop_table("pdr_predictions") - - DuckDBDataStore(ppss.lake_ss.lake_dir).insert_from_df( - predictions_df, "pdr_predictions" - ) - - with patch("pdr_backend.contract.token.Token", return_value=mock_token), patch( - "pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp - ): - user_addr = "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - # Mock sys.argv - sys.argv = [ - "pdr", - "get_predictoors_info", - "2023-12-01", - "2023-12-31", - ppss.lake_ss.lake_dir, - "ppss.yaml", - "development", - "--PDRS", - user_addr, - ] - - cli_module._do_main() - - # Verifying outputs - assert "pdr get_predictoors_info: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "NETWORK=development" in caplog.text - assert "PDRS=['0xaaaA4CB4Ff2584BaD80fF5F109034A891C3D88Dd']" in caplog.text - - # Additional assertions - get_get_predictoor_summary_stats.call_args[0][0].equals(predictions_df) diff --git a/system_tests/test_ocean_payout.py b/system_tests/test_ocean_payout.py deleted file mode 100644 index a124dece9..000000000 --- a/system_tests/test_ocean_payout.py +++ /dev/null @@ -1,76 +0,0 @@ -import sys - -from unittest.mock import Mock, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.constants import SAPPHIRE_MAINNET_CHAINID -from pdr_backend.util.web3_config import Web3Config - - -@patch("pdr_backend.payout.payout.wait_until_subgraph_syncs") -def test_ocean_payout_test(mock_wait_until_subgraph_syncs, caplog): - _ = mock_wait_until_subgraph_syncs - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.owner = "0x00000000000000000000000000000000000c0ffe" - mock_web3_config.w3 = Mock() - mock_web3_config.w3.eth.chain_id = SAPPHIRE_MAINNET_CHAINID - - def checksum_mock(_, y): - return y - - mock_web3_config.w3.to_checksum_address = lambda x: x - mock_web3_pp.web3_config = mock_web3_config - - mock_contract = Mock() - mock_contract.get_payout = Mock() - mock_contract.get_payout.return_value = {"transactionHash": b"0x1", "status": 1} - mock_contract.pred_submitter_up_address.return_value = "0x1" - mock_contract.pred_submitter_down_address.return_value = "0x1" - - mock_token = MagicMock() - mock_token.balanceOf.return_value = 100 * 1e18 - - mock_query_pending_payouts = Mock() - mock_query_pending_payouts.return_value = {"0x1": [1, 2, 3], "0x2": [5, 6, 7]} - number_of_slots = 6 # 6 slots - - with patch( - "pdr_backend.payout.payout.query_pending_payouts", mock_query_pending_payouts - ), patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp), patch( - "pdr_backend.contract.token.Token", return_value=mock_token - ), patch( - "pdr_backend.payout.payout.to_checksum", checksum_mock - ), patch( - "pdr_backend.payout.payout.WrappedToken", return_value=mock_token - ), patch( - "pdr_backend.payout.payout.PredSubmitterMgr", return_value=mock_contract - ): - # Mock sys.argv - sys.argv = ["pdr", "claim_OCEAN", "ppss.yaml"] - - cli_module._do_main() - - # Verifying outputs - assert "pdr claim_OCEAN: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "Starting payout" in caplog.text - assert "Finding pending payouts" in caplog.text - assert f"Found {number_of_slots} slots" in caplog.text - assert "Payout tx 1/2: 307831" in caplog.text - assert "Payout tx 1/2: 307831" in caplog.text - assert "Payout done" in caplog.text - - # Additional assertions - mock_query_pending_payouts.assert_called_with(mock_web3_pp.subgraph_url, "0x1") - print(mock_contract.get_payout.call_args_list) - mock_contract.get_payout.assert_any_call([1, 2, 3], ["0x1"]) - mock_contract.get_payout.assert_any_call([5, 6, 7], ["0x2"]) - assert mock_contract.get_payout.call_count == 2 diff --git a/system_tests/test_predictoor_system.py b/system_tests/test_predictoor_system.py deleted file mode 100644 index d594fd705..000000000 --- a/system_tests/test_predictoor_system.py +++ /dev/null @@ -1,108 +0,0 @@ -import sys -from unittest.mock import Mock, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.cli.predict_train_feedsets import PredictTrainFeedset -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed -from pdr_backend.util.web3_config import Web3Config - - -def setup_mock_web3_pp(mock_feeds, mock_feed_contract): - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "development" - mock_web3_pp.rpc_url = "http://example.com/rpc" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - mock_web3_pp.query_feed_contracts.return_value = mock_feeds - mock_web3_pp.get_single_contract.return_value = mock_feed_contract - mock_web3_pp.w3.eth.block_number = 100 - mock_predictoor_ss = Mock() - mock_predictoor_ss.get_feed_from_candidates.return_value = mock_feeds["0x1"] - mock_predictoor_ss.get_predict_train_feedset.return_value = ( - PredictTrainFeedset.from_dict( - { - "predict": "binance BTC/USDT o 5m", - "train_on": "binance BTC/USDT ETH/USDT o 5m", - } - ) - ) - mock_predictoor_ss.s_until_epoch_end = 100 - mock_predictoor_ss.s_start_payouts = 0 - mock_predictoor_ss.stake_amount = 20 - mock_predictoor_ss.predict_train_feedsets.min_epoch_seconds = 20 - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.w3 = Mock() - mock_web3_config.owner = "0xowner" - mock_web3_config.get_block.return_value = {"timestamp": 100} - mock_web3_pp.web3_config = mock_web3_config - - return mock_web3_pp, mock_predictoor_ss - - -def _test_predictoor_system(mock_feeds, mock_feed_contract, approach, caplog): - mock_web3_pp, mock_predictoor_ss = setup_mock_web3_pp( - mock_feeds, mock_feed_contract - ) - mock_predictoor_ss.approach = approach - - merged_ohlcv_df = Mock() - - mock_predictoor_ss.get_feed_from_candidates.return_value = { - "0x1": SubgraphFeed( - "BTC/USDT", "0x1", "BTC", 300, 300, "0x1", "BTC", "5m", "binance" - ) - } - - with patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp), patch( - "pdr_backend.ppss.ppss.PredictoorSS", return_value=mock_predictoor_ss - ), patch( - "pdr_backend.predictoor.predictoor_agent.PredSubmitterMgr", return_value=Mock() - ), patch( - "pdr_backend.lake.ohlcv_data_factory.OhlcvDataFactory.get_mergedohlcv_df", - return_value=merged_ohlcv_df, - ), patch( - "pdr_backend.predictoor.predictoor_agent.PredictoorAgent.calc_stakes_2ss_model", - return_value=(10, 10), - ): - # Mock sys.argv - sys.argv = ["pdr", "predictoor", "ppss.yaml", "development"] - - cli_module._do_main() - - # Verifying outputs - assert "pdr predictoor: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "NETWORK=development" in caplog.text - assert "Feed: 5m binance BTC/USDT 0x1" in caplog.text - assert "Starting main loop." in caplog.text - assert "Waiting..." in caplog.text - - # Additional assertions - mock_predictoor_ss.get_feed_from_candidates.assert_called_once() - mock_feed_contract.get_current_epoch.assert_called() - - -@patch("pdr_backend.ppss.ppss.PPSS.verify_feed_dependencies") -def test_predictoor_approach_1_system( - mock_verify_feed_dependencies, - mock_feeds, - mock_feed_contract, - caplog, -): - _ = mock_verify_feed_dependencies - _test_predictoor_system(mock_feeds, mock_feed_contract, 1, caplog) - - -@patch("pdr_backend.ppss.ppss.PPSS.verify_feed_dependencies") -def test_predictoor_approach_2_system( - mock_verify_feed_dependencies, - mock_feeds, - mock_feed_contract, - caplog, -): - _ = mock_verify_feed_dependencies - _test_predictoor_system(mock_feeds, mock_feed_contract, 2, caplog) diff --git a/system_tests/test_publisher_system.py b/system_tests/test_publisher_system.py deleted file mode 100644 index dffc9eb60..000000000 --- a/system_tests/test_publisher_system.py +++ /dev/null @@ -1,39 +0,0 @@ -import sys - -from unittest.mock import Mock, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.web3_config import Web3Config - - -@patch("pdr_backend.cli.cli_module.fund_accounts_with_OCEAN") -@patch("pdr_backend.publisher.publish_assets.publish_asset") -def test_publisher(mock_fund_accounts, mock_publish_asset, caplog): - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "development" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.w3 = Mock() - mock_web3_pp.web3_config = mock_web3_config - - with patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp): - # Mock sys.argv - sys.argv = ["pdr", "publisher", "ppss.yaml", "development"] - - cli_module._do_main() - - # Verifying outputs - assert "pdr publisher: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "NETWORK=development" in caplog.text - assert "Publish on network = development" in caplog.text - assert "Done publishing." in caplog.text - - # Additional assertions - mock_fund_accounts.assert_called() - mock_publish_asset.assert_called() diff --git a/system_tests/test_rose_payout.py b/system_tests/test_rose_payout.py deleted file mode 100644 index 1ea0d7bf1..000000000 --- a/system_tests/test_rose_payout.py +++ /dev/null @@ -1,70 +0,0 @@ -import sys -from unittest.mock import Mock, call, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.contract.pred_submitter_mgr import PredSubmitterMgr -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.constants import SAPPHIRE_MAINNET_CHAINID -from pdr_backend.util.currency_types import Wei, Eth - - -def test_rose_payout_test(caplog): - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.web3_config.w3.eth.chain_id = SAPPHIRE_MAINNET_CHAINID - - mock_dfrewards = MagicMock() - mock_dfrewards.get_claimable_rewards.return_value = Eth(100) - mock_dfrewards.claim_rewards.return_value = None - - mock_contract = Mock(spec=PredSubmitterMgr) - mock_contract.contract_address = "0x0" - mock_contract.get_claimable_rewards = Mock() - mock_contract.get_claimable_rewards.return_value = Eth(100) - mock_contract.claim_dfrewards = Mock() - mock_contract.claim_dfrewards.return_value = { - "transactionHash": b"0x1", - "status": 1, - } - mock_contract.transfer_erc20 = Mock() - mock_contract.transfer_erc20.return_value = {"transactionHash": b"0x1", "status": 1} - mock_contract.pred_submitter_up_address.return_value = "0x1" - mock_contract.pred_submitter_down_address.return_value = "0x2" - - mock_token = MagicMock() - mock_token.balanceOf.return_value = Wei(100 * 1e18) - - with patch( - "pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp - ) as MockPPSS, patch( - "pdr_backend.payout.payout.DFRewards", return_value=mock_dfrewards - ), patch( - "pdr_backend.contract.token.Token", return_value=mock_token - ), patch( - "pdr_backend.payout.payout.WrappedToken", return_value=mock_token - ), patch( - "pdr_backend.payout.payout.PredSubmitterMgr", return_value=mock_contract - ): - mock_ppss_instance = MockPPSS.return_value - mock_ppss_instance.web3_pp = mock_web3_pp - - # Mock sys.argv - sys.argv = ["pdr", "claim_ROSE", "ppss.yaml"] - - cli_module._do_main() - - # Verifying outputs - assert "Found 200 wROSE available to claim" in caplog.text - assert "Claiming wROSE rewards from the manager contract..." in caplog.text - assert "Converting wROSE to ROSE" in caplog.text - assert "Found 100.0 wROSE, converting to ROSE..." in caplog.text - assert "ROSE reward claim done" in caplog.text - - # Additional assertions - mock_dfrewards.get_claimable_rewards.assert_has_calls( - [ - call("0x2", "0x8Bc2B030b299964eEfb5e1e0b36991352E56D2D3"), - call("0x1", "0x8Bc2B030b299964eEfb5e1e0b36991352E56D2D3"), - ], - any_order=True, - ) diff --git a/system_tests/test_topup_system.py b/system_tests/test_topup_system.py deleted file mode 100644 index 8e91bb89e..000000000 --- a/system_tests/test_topup_system.py +++ /dev/null @@ -1,69 +0,0 @@ -import sys - -from unittest.mock import Mock, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.contract.token import NativeToken, Token -from pdr_backend.ppss.topup_ss import TopupSS -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.web3_config import Web3Config -from pdr_backend.util.currency_types import Wei, Eth - - -def test_topup(caplog): - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.w3 = Mock() - mock_web3_pp.web3_config = mock_web3_config - mock_web3_pp.web3_config.owner = "0xowner" - - mock_token = MagicMock(spec=Token) - balances_arr = [Wei(int(5000 * 1e18))] + [Wei(int(5 * 1e18))] * 100 - mock_token.balanceOf.side_effect = balances_arr - mock_token.transfer.return_value = True - mock_token.name = "OCEAN" - - mock_token_rose = MagicMock(spec=NativeToken) - balances_arr = [Wei(int(5000 * 1e18))] + [Wei(int(5 * 1e18))] * 100 - mock_token_rose.balanceOf.side_effect = balances_arr - mock_token_rose.transfer.return_value = True - mock_token_rose.name = "ROSE" - - mock_web3_pp.OCEAN_Token = mock_token - mock_web3_pp.NativeToken = mock_token_rose - - opf_addresses = { - "predictoor1": "0x1", - "predictoor2": "0x2", - } - topup_ss = MagicMock(spec=TopupSS) - topup_ss.all_topup_addresses.return_value = opf_addresses - topup_ss.get_min_bal.side_effect = [Eth(20), Eth(30), Eth(20), Eth(30)] - topup_ss.get_topup_bal.side_effect = [Eth(20), Eth(30), Eth(20), Eth(30)] - - with patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp), patch( - "pdr_backend.ppss.ppss.TopupSS", return_value=topup_ss - ), patch("sys.exit"): - # Mock sys.argv - sys.argv = ["pdr", "topup", "ppss.yaml", "sapphire-testnet"] - - cli_module._do_main() - - addresses = opf_addresses - # Verifying outputs - for key, value in addresses.items(): - assert f"{key}: 5.00 OCEAN, 5.00 ROSE" in caplog.text - if key.startswith("pred"): - assert f"Transferring 20 OCEAN to {value}..." in caplog.text - assert f"Transferring 30 ROSE to {value}..." in caplog.text - if key.startswith("dfbuyer"): - assert f"Transferring 250 ROSE to {value}..." in caplog.text - - # Additional assertions - mock_token.transfer.assert_called() - mock_token.balanceOf.assert_called() diff --git a/system_tests/test_trader_agent_system.py b/system_tests/test_trader_agent_system.py deleted file mode 100644 index ad1026322..000000000 --- a/system_tests/test_trader_agent_system.py +++ /dev/null @@ -1,90 +0,0 @@ -import sys -from unittest.mock import Mock, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.constants import SAPPHIRE_MAINNET_CHAINID -from pdr_backend.util.web3_config import Web3Config - - -def setup_mock_objects(mock_web3_pp, mock_feed_contract, feeds): - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - mock_web3_pp.query_feed_contracts.return_value = feeds - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.get_block.return_value = {"timestamp": 100} - mock_web3_config.owner = "0x00000000000000000000000000000000000c0ffe" - mock_web3_config.w3 = Mock() - mock_web3_config.w3.eth.block_number = 100 - mock_web3_config.w3.eth.chain_id = SAPPHIRE_MAINNET_CHAINID - mock_web3_pp.web3_config = mock_web3_config - - mock_token = MagicMock() - mock_token.balanceOf.return_value = 100 * 1e18 - - mock_trader_ss = Mock() - mock_trader_ss.min_buffer = 1 - mock_trader_ss.get_feed_from_candidates.return_value = feeds["0x1"] - mock_trader_ss.exchange_type = "mock" - mock_trader_ss.feed.timeframe.s = 300 - - mock_web3_pp.get_contracts.return_value = {"0x1": mock_feed_contract} - - return mock_web3_pp, mock_token, mock_trader_ss - - -def _test_trader( - mock_time_sleep, mock_run, mock_feed_contract, mock_feeds, approach, caplog -): - mock_web3_pp = MagicMock(spec=Web3PP) - - mock_web3_pp, mock_token, mock_trader_ss = setup_mock_objects( - mock_web3_pp, mock_feed_contract, mock_feeds - ) - - with patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp), patch( - "pdr_backend.contract.token.Token", return_value=mock_token - ), patch("pdr_backend.payout.payout.WrappedToken", return_value=mock_token), patch( - "pdr_backend.payout.payout.FeedContract", - return_value=mock_feed_contract, - ), patch( - "pdr_backend.ppss.ppss.TraderSS", - return_value=mock_trader_ss, - ): - # Mock sys.argv - sys.argv = ["pdr", "trader", str(approach), "ppss.yaml", "development"] - - cli_module._do_main() - - # Verifying outputs - assert "pdr trader: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert f"APPROACH={approach}" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "NETWORK=development" in caplog.text - assert "Feed: 5m binance BTC/USDT 0x1" in caplog.text - - # Additional assertions - mock_web3_pp.query_feed_contracts.assert_called() - mock_trader_ss.get_feed_from_candidates.assert_called_with(mock_feeds) - mock_time_sleep.assert_called() - mock_run.assert_called() - - -@patch("pdr_backend.trader.base_trader_agent.BaseTraderAgent.run") -@patch("pdr_backend.trader.base_trader_agent.time.sleep") -def test_trader_approach_1( - mock_time_sleep, mock_run, mock_feed_contract, mock_feeds, caplog -): - _test_trader(mock_time_sleep, mock_run, mock_feed_contract, mock_feeds, 1, caplog) - - -@patch("pdr_backend.trader.base_trader_agent.BaseTraderAgent.run") -@patch("pdr_backend.trader.base_trader_agent.time.sleep") -def test_trader_approach_2( - mock_time_sleep, mock_run, mock_feed_contract, mock_feeds, caplog -): - _test_trader(mock_time_sleep, mock_run, mock_feed_contract, mock_feeds, 2, caplog) diff --git a/system_tests/test_trueval_agent_system.py b/system_tests/test_trueval_agent_system.py deleted file mode 100644 index f251780b8..000000000 --- a/system_tests/test_trueval_agent_system.py +++ /dev/null @@ -1,77 +0,0 @@ -import sys - -from unittest.mock import Mock, patch, MagicMock - -from pdr_backend.cli import cli_module -from pdr_backend.contract.predictoor_batcher import PredictoorBatcher -from pdr_backend.contract.slot import Slot -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed -from pdr_backend.util.constants import SAPPHIRE_MAINNET_CHAINID -from pdr_backend.util.web3_config import Web3Config - - -@patch("pdr_backend.trueval.trueval_agent.wait_until_subgraph_syncs") -@patch("pdr_backend.trueval.trueval_agent.time.sleep") -@patch("pdr_backend.trueval.trueval_agent.TruevalAgent.process_trueval_slot") -def test_trueval_batch( - mock_wait_until_subgraph_syncs, mock_time_sleep, mock_process, caplog -): - _ = mock_wait_until_subgraph_syncs - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-mainnet" - mock_web3_pp.subgraph_url = ( - "http://localhost:8000/subgraphs/name/oceanprotocol/ocean-subgraph" - ) - feeds = { - "0x1": SubgraphFeed( - "Feed: binance | BTC/USDT | 5m", - "0x1", - "BTC", - 100, - 300, - "0xf", - "BTC/USDT", - "5m", - "binance", - ) - } - mock_web3_pp.get_pending_slots.return_value = [Slot(1, feeds["0x1"])] - mock_web3_pp.get_address.return_value = "0x1" - - mock_web3_config = Mock(spec=Web3Config) - mock_web3_config.get_block.return_value = {"timestamp": 100} - mock_web3_config.owner = "0x00000000000000000000000000000000000c0ffe" - mock_web3_config.w3 = Mock() - mock_web3_config.w3.eth.block_number = 100 - mock_web3_config.w3.eth.chain_id = SAPPHIRE_MAINNET_CHAINID - mock_web3_pp.web3_config = mock_web3_config - - mock_predictoor_batcher = Mock(spec=PredictoorBatcher) - - with patch("pdr_backend.ppss.ppss.Web3PP", return_value=mock_web3_pp), patch( - "pdr_backend.trueval.trueval_agent.PredictoorBatcher", - return_value=mock_predictoor_batcher, - ), patch( - "pdr_backend.trueval.trueval_agent.TruevalAgent.process_trueval_slot" - ), patch( - "pdr_backend.trueval.trueval_agent.TruevalAgent.batch_submit_truevals", - return_value="0xbatch_submit_tx", - ): - # Mock sys.argv - sys.argv = ["pdr", "trueval", "ppss.yaml", "development"] - - cli_module._do_main() - - # Verifying outputs - assert "pdr trueval: Begin" in caplog.text - assert "Arguments:" in caplog.text - assert "PPSS_FILE=ppss.yaml" in caplog.text - assert "NETWORK=development" in caplog.text - assert "Found 1 pending slots, processing 30" in caplog.text - assert "Tx sent: 0xbatch_submit_tx, sleeping for 30 seconds..." in caplog.text - - # Additional assertions - mock_web3_pp.get_pending_slots.assert_called() - mock_time_sleep.assert_called() - mock_process.assert_called() From dc5e77809e2e7a7cb40b79e2ab3a44c0c98fb3a9 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 08:51:22 +0100 Subject: [PATCH 02/44] rm analytics/; remove barge from pytest.yml; revive multisim in test_cli_module; rm copyright_template --- .github/workflows/pytest.yml | 28 +- .pylintrc | 3 +- copyright_template.tmpl | 2 - pdr_backend/analytics/check_network.py | 214 ------------ pdr_backend/analytics/get_predictions_info.py | 118 ------- pdr_backend/analytics/predictoor_stats.py | 315 ------------------ pdr_backend/analytics/test/conftest.py | 46 --- .../analytics/test/test_check_network.py | 180 ---------- .../test/test_get_predictions_info.py | 209 ------------ .../test/test_get_predictoors_info.py | 152 --------- .../analytics/test/test_get_traction_info.py | 85 ----- .../analytics/test/test_predictoor_stats.py | 126 ------- pdr_backend/cli/test/test_cli_module.py | 10 + 13 files changed, 12 insertions(+), 1476 deletions(-) delete mode 100644 copyright_template.tmpl delete mode 100644 pdr_backend/analytics/check_network.py delete mode 100644 pdr_backend/analytics/get_predictions_info.py delete mode 100644 pdr_backend/analytics/predictoor_stats.py delete mode 100644 pdr_backend/analytics/test/conftest.py delete mode 100644 pdr_backend/analytics/test/test_check_network.py delete mode 100644 pdr_backend/analytics/test/test_get_predictions_info.py delete mode 100644 pdr_backend/analytics/test/test_get_predictoors_info.py delete mode 100644 pdr_backend/analytics/test/test_get_traction_info.py delete mode 100644 pdr_backend/analytics/test/test_predictoor_stats.py diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index ee45941c3..17133aa5a 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -1,7 +1,3 @@ -## -## Copyright 2024 Ocean Protocol Foundation -## SPDX-License-Identifier: Apache-2.0 -## name: pdr-backend tests on: @@ -26,20 +22,6 @@ jobs: with: python-version: "3.11" - - uses: actions/checkout@v2 - name: Checkout Barge - with: - repository: "oceanprotocol/barge" - path: "barge" - ref: "5bd4a318c732d84a6b7fbeb193cee7fb16891a67" - - - name: Run Barge - working-directory: ${{ github.workspace }}/barge - env: - SUBGRAPH_VERSION: main - run: | - bash -x start_ocean.sh --no-aquarius --no-elasticsearch --no-provider --no-dashboard --with-thegraph --predictoor > start_ocean.log & - - name: Install dependencies working-directory: ${{ github.workspace }} run: | @@ -47,18 +29,10 @@ jobs: pip install -r requirements.txt pip install pytest - - name: Wait for contracts deployment - working-directory: ${{ github.workspace }}/barge - run: | - for i in $(seq 1 250); do - sleep 5 - [ -f "$HOME/.ocean/ocean-contracts/artifacts/ready" ] && break - done - - name: Test with pytest id: pytest run: | - coverage run --source=pdr_backend --omit=*/test/*,*/test_ganache/*,*/test_noganache/* -m pytest + coverage run --source=pdr_backend --omit=*/test/*,*/test_noganache/* -m pytest coverage report coverage xml - name: Publish code coverage diff --git a/.pylintrc b/.pylintrc index 5aca79878..df2eb4150 100644 --- a/.pylintrc +++ b/.pylintrc @@ -30,8 +30,7 @@ ignore= LICENSE, Dockerfile, entrypoint.sh, - pdr_backend.egg-info, - copyright_template.tmpl + pdr_backend.egg-info # Add files or directories matching the regex patterns to the blacklist. The # regex matches against base names, not paths. diff --git a/copyright_template.tmpl b/copyright_template.tmpl deleted file mode 100644 index 451eca024..000000000 --- a/copyright_template.tmpl +++ /dev/null @@ -1,2 +0,0 @@ -Copyright ${years} Ocean Protocol Foundation -SPDX-License-Identifier: Apache-2.0 diff --git a/pdr_backend/analytics/check_network.py b/pdr_backend/analytics/check_network.py deleted file mode 100644 index 06958afb1..000000000 --- a/pdr_backend/analytics/check_network.py +++ /dev/null @@ -1,214 +0,0 @@ -import logging -import math -from typing import Union - -from enforce_typing import enforce_types - -from pdr_backend.cli.arg_timeframe import s_to_timeframe_str -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.subgraph.core_subgraph import query_subgraph -from pdr_backend.subgraph.subgraph_consume_so_far import get_consume_so_far_per_contract -from pdr_backend.util.constants import S_PER_DAY, S_PER_WEEK -from pdr_backend.util.constants_opf_addrs import get_opf_addresses -from pdr_backend.util.currency_types import Eth, Wei -from pdr_backend.util.time_types import UnixTimeS -from pdr_backend.subgraph.subgraph_sync import block_number_is_synced - -_N_FEEDS = 20 # magic number alert. FIX ME, shouldn't be hardcoded -logger = logging.getLogger("check_network") - - -@enforce_types -def print_stats(contract_dict: dict, field_name: str, threshold: float = 0.9): - n_slots = len(contract_dict["slots"]) - n_slots_with_field = sum( - 1 for slot in contract_dict["slots"] if len(slot[field_name]) > 0 - ) - if n_slots == 0: - n_slots = 1 - - status = "PASS" if n_slots_with_field / n_slots > threshold else "FAIL" - token_name = contract_dict["token"]["name"] - - s_per_epoch = int(contract_dict["secondsPerEpoch"]) - timeframe_str = s_to_timeframe_str(s_per_epoch) - logger.info( - "%s %s: %s/%s %s - %s", - token_name, - timeframe_str, - n_slots_with_field, - n_slots, - field_name, - status, - ) - - -@enforce_types -def check_dfbuyer( - dfbuyer_addr: str, - contract_query_result: dict, - subgraph_url: str, - token_amt: float, -): - cur_ut = UnixTimeS.now() - start_ut = UnixTimeS(int((cur_ut // S_PER_WEEK) * S_PER_WEEK - 3 * 60 * 60)) - - contracts_sg_dict = contract_query_result["data"]["predictContracts"] - contract_addresses = [ - contract_sg_dict["id"] for contract_sg_dict in contracts_sg_dict - ] - amt_consume_so_far = get_consume_so_far_per_contract( - subgraph_url, - dfbuyer_addr, - start_ut, - contract_addresses, - ) - expect_amt_consume = get_expected_consume(cur_ut, token_amt) - logger.info( - "Checking consume amounts (dfbuyer), expecting %s consume per contract", - expect_amt_consume, - ) - for addr in contract_addresses: - x = amt_consume_so_far[addr] - lfunc = logger.info if x >= expect_amt_consume else logger.error - lfunc( - "got %s consume for contract: %s, expected %s", x, addr, expect_amt_consume - ) - - -@enforce_types -def check_subgraph(web3_pp): - current_block = web3_pp.w3.eth.block_number - threshold = 50 - check_block_number = current_block - threshold - - is_synced = block_number_is_synced(web3_pp.subgraph_url, check_block_number) - if not is_synced: - logger.error( - "Subgraph is out of sync, checked block %d, current block: %d", - check_block_number, - current_block, - ) - - -@enforce_types -def get_expected_consume(for_ut: int, token_amt: float) -> Union[float, int]: - """ - @arguments - for_ut -- unix time, in ms, in UTC time zone - token_amt -- # tokens - - @return - exp_consume -- - """ - amt_per_feed_per_week = token_amt / 7 / _N_FEEDS - week_start_ut = (math.floor(for_ut / S_PER_WEEK)) * S_PER_WEEK - time_passed = for_ut - week_start_ut - n_weeks = int(time_passed / S_PER_DAY) + 1 - return int(n_weeks * amt_per_feed_per_week) - - -@enforce_types -def do_query_network(subgraph_url: str, lookback_hours: int): - cur_ut = UnixTimeS.now() - start_ut = cur_ut - lookback_hours * 60 * 60 - query = """ - { - predictContracts{ - id - token{ - name - } - subscriptions(orderBy: expireTime orderDirection:desc first:10){ - user { - id - } - expireTime - } - slots(where:{slot_lt:%s, slot_gt:%s} orderBy: slot orderDirection:desc first:900){ - slot - roundSumStakesUp - roundSumStakes - predictions(orderBy: timestamp orderDirection:desc){ - stake - user { - id - } - timestamp - payout{ - payout - predictedValue - trueValue - } - } - trueValues{ - trueValue - } - } - secondsPerEpoch - } - } - """ % ( - cur_ut, - start_ut, - ) - return query_subgraph(subgraph_url, query, timeout=10.0) - - -@enforce_types -def check_network_main(ppss: PPSS, lookback_hours: int): - web3_pp = ppss.web3_pp - result = do_query_network(web3_pp.subgraph_url, lookback_hours) - - # check no of contracts - no_of_contracts = len(result["data"]["predictContracts"]) - status = "OK" if no_of_contracts >= 11 else "FAILED" - lfunc = logger.info if status == "OK" else logger.error - - lfunc("Number of Predictoor contracts: %s", no_of_contracts) - - # check number of predictions - logger.info("Predictions:") - for contract in result["data"]["predictContracts"]: - print_stats(contract, "predictions") - - # Check number of truevals - logger.info("True Values:") - for contract in result["data"]["predictContracts"]: - print_stats(contract, "trueValues") - - logger.info("Checking account balances") - - OCEAN = web3_pp.OCEAN_Token - - addresses = get_opf_addresses(web3_pp.network) - for name, address in addresses.items(): - ocean_bal = OCEAN.balanceOf(address) - native_bal = Wei(web3_pp.get_token_balance(address)) - - ocean_warning = ( - " LOW OCEAN BALANCE!" - if ocean_bal < Eth(10).to_wei() and name != "trueval" - else "" - ) - native_warning = " LOW NATIVE BALANCE!" if native_bal < Eth(10).to_wei() else "" - - lfunc = logger.error if ocean_warning or native_warning else logger.info - - lfunc( - "%s: OCEAN: %.2f%s, Native: %.2f%s", - name, - ocean_bal.to_eth(), - ocean_warning, - native_bal.to_eth(), - native_warning, - ) - - # ---------------- dfbuyer ---------------- - - dfbuyer_addr = addresses["dfbuyer"].lower() - token_amt = 44940.0 - - check_dfbuyer(dfbuyer_addr, result, web3_pp.subgraph_url, token_amt) - - check_subgraph(web3_pp) diff --git a/pdr_backend/analytics/get_predictions_info.py b/pdr_backend/analytics/get_predictions_info.py deleted file mode 100644 index f37630a7c..000000000 --- a/pdr_backend/analytics/get_predictions_info.py +++ /dev/null @@ -1,118 +0,0 @@ -import logging -from typing import List - -from enforce_typing import enforce_types - -from pdr_backend.analytics.predictoor_stats import ( - get_feed_summary_stats, - get_predictoor_summary_stats, - get_slot_statistics, - get_traction_statistics, - plot_slot_daily_statistics, - plot_traction_cum_sum_statistics, - plot_traction_daily_statistics, -) -from pdr_backend.lake.duckdb_data_store import DuckDBDataStore -from pdr_backend.lake.table import Table -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.util.time_types import UnixTimeMs - -logger = logging.getLogger("get_predictions_info") - - -@enforce_types -def _address_list_to_str(addresses: List[str]) -> str: - return "(" + ", ".join([f"'{f.lower()}'" for f in addresses]) + ")" - - -@enforce_types -def _checks_for_empty_df(df, table_name: str): - assert df is not None, f"No table found: {table_name}" - assert len(df) > 0, "No records to summarize. Please adjust params." - - -@enforce_types -def get_predictions_info_main( - ppss: PPSS, start_timestr: str, end_timestr: str, feed_addrs: List[str] -): - logger.info( - "get_predictions_info_main_ppss.lake_ss.lake_dir--- %s", ppss.lake_ss.lake_dir - ) - logger.info("get_predictions_info_main start_timestr %s", start_timestr) - logger.info("get_predictions_info_main end_timestr %s", end_timestr) - - table_name = Table("pdr_predictions").table_name - - # convert feed addresses to string for SQL query - feed_addrs_str = _address_list_to_str(feed_addrs) - - query = f""" - SELECT *, - FROM {table_name} - WHERE - timestamp >= {UnixTimeMs.from_timestr(start_timestr)} - AND timestamp <= {UnixTimeMs.from_timestr(end_timestr)} - AND contract IN {feed_addrs_str} - """ - - predictions_df = DuckDBDataStore(ppss.lake_ss.lake_dir).query_data(query) - - _checks_for_empty_df(predictions_df, table_name) - - feed_summary_df = get_feed_summary_stats(predictions_df) - logger.info(feed_summary_df) - - -@enforce_types -def get_predictoors_info_main( - ppss: PPSS, start_timestr: str, end_timestr: str, pdr_addrs: List[str] -): - logger.info( - "get_predictoors_info_main_ppss.lake_ss.lake_dir--- %s", ppss.lake_ss.lake_dir - ) - table_name = Table("pdr_predictions").table_name - - # convert feed addresses to string for SQL query - pdr_addrs_str = _address_list_to_str(pdr_addrs) - - query = f""" - SELECT *, - FROM {table_name} - WHERE - timestamp >= {UnixTimeMs.from_timestr(start_timestr)} - AND timestamp <= {UnixTimeMs.from_timestr(end_timestr)} - AND user IN {pdr_addrs_str} - """ - - predictions_df = DuckDBDataStore(ppss.lake_ss.lake_dir).query_data(query) - - _checks_for_empty_df(predictions_df, table_name) - - predictoor_summary_df = get_predictoor_summary_stats(predictions_df) - logger.info(predictoor_summary_df) - - -@enforce_types -def get_traction_info_main(ppss: PPSS, start_timestr: str, end_timestr: str): - table_name = Table("pdr_predictions").table_name - - query = f""" - SELECT *, - FROM {table_name} - WHERE - timestamp >= {UnixTimeMs.from_timestr(start_timestr)} - AND timestamp <= {UnixTimeMs.from_timestr(end_timestr)} - """ - - predictions_df = DuckDBDataStore(ppss.lake_ss.lake_dir).query_data(query) - - _checks_for_empty_df(predictions_df, table_name) - - # calculate predictoor traction statistics and draw plots - stats_df = get_traction_statistics(predictions_df) - plot_traction_cum_sum_statistics(stats_df, ppss.lake_ss.lake_dir) - plot_traction_daily_statistics(stats_df, ppss.lake_ss.lake_dir) - - # calculate slot statistics and draw plots - slots_df = get_slot_statistics(predictions_df) - plot_slot_daily_statistics(slots_df, ppss.lake_ss.lake_dir) diff --git a/pdr_backend/analytics/predictoor_stats.py b/pdr_backend/analytics/predictoor_stats.py deleted file mode 100644 index e3b4057e7..000000000 --- a/pdr_backend/analytics/predictoor_stats.py +++ /dev/null @@ -1,315 +0,0 @@ -import logging -import os -from typing import Set, Tuple, TypedDict - -import plotly.graph_objects as go -import polars as pl -from enforce_typing import enforce_types - -from pdr_backend.util.csvs import get_plots_dir - -logger = logging.getLogger("predictoor_stats") - - -class PairTimeframeStat(TypedDict): - pair: str - timeframe: str - accuracy: float - exchange: str - stake: float - payout: float - number_of_predictions: int - - -class PredictoorStat(TypedDict): - predictoor_address: str - accuracy: float - stake: float - payout: float - number_of_predictions: int - details: Set[Tuple[str, str, str]] - - -@enforce_types -def get_feed_summary_stats(predictions_df: pl.DataFrame) -> pl.DataFrame: - # 1 - filter from lake only the rows that you're looking for - df = predictions_df.filter( - ~((pl.col("truevalue").is_null()) | (pl.col("payout").is_null())) - ) - - df = df.with_columns( - pl.col("predvalue").eq(pl.col("truevalue")).cast(pl.UInt8).alias("is_correct") - ) - # Group by pair - df = df.group_by(["pair", "timeframe"]).agg( - pl.col("source").first().alias("source"), - pl.col("payout").sum().alias("sum_payout"), - pl.col("stake").sum().alias("sum_stake"), - pl.col("predvalue").count().alias("num_predictions"), - (pl.col("predvalue").sum() / pl.col("pair").count() * 100).alias("accuracy"), - ) - - return df - - -@enforce_types -def get_predictoor_summary_stats(predictions_df: pl.DataFrame) -> pl.DataFrame: - # 1 - filter from lake only the rows that you're looking for - df = predictions_df.filter( - ~((pl.col("truevalue").is_null()) | (pl.col("payout").is_null())) - ) - - df = df.with_columns( - pl.col("predvalue").eq(pl.col("truevalue")).cast(pl.UInt8).alias("is_correct") - ) - # Group by pair - df = df.group_by(["user", "pair", "timeframe"]).agg( - pl.col("source").first().alias("source"), - pl.col("payout").sum().alias("sum_payout"), - pl.col("stake").sum().alias("sum_stake"), - pl.col("predvalue").count().alias("num_predictions"), - (pl.col("predvalue").sum() / pl.col("pair").count() * 100).alias("accuracy"), - ) - - return df - - -@enforce_types -def get_traction_statistics(preds_df: pl.DataFrame) -> pl.DataFrame: - # Calculate predictoor traction statistics - # Predictoor addresses are aggregated historically - stats_df = ( - preds_df.with_columns( - [ - # use strftime(%Y-%m-%d %H:00:00) to get hourly intervals - pl.from_epoch("timestamp", time_unit="s") - .dt.strftime("%Y-%m-%d") - .alias("datetime"), - ] - ) - .group_by("datetime") - .agg( - [ - pl.col("user").unique().alias("daily_unique_predictoors"), - pl.col("user").unique().count().alias("daily_unique_predictoors_count"), - pl.lit(1).alias("index"), - ] - ) - .sort("datetime") - .with_columns( - [ - pl.col("daily_unique_predictoors") - .cumulative_eval(pl.element().explode().unique().count()) - .over("index") - .alias("cum_daily_unique_predictoors_count") - ] - ) - .select( - [ - "datetime", - "daily_unique_predictoors_count", - "cum_daily_unique_predictoors_count", - ] - ) - ) - - return stats_df - - -@enforce_types -def plot_traction_daily_statistics(stats_df: pl.DataFrame, pq_dir: str) -> None: - assert "datetime" in stats_df.columns - assert "daily_unique_predictoors_count" in stats_df.columns - - charts_dir = get_plots_dir(pq_dir) - - dates = stats_df["datetime"].to_list() - ticks = int(len(dates) / 5) if len(dates) > 5 else 2 - - # draw unique_predictoors - chart_path = os.path.join(charts_dir, "daily_unique_predictoors.png") - - fig = go.Figure( - go.Scatter( - x=stats_df["datetime"].to_pandas(), - y=stats_df["daily_unique_predictoors_count"], - mode="markers", - ) - ) - - fig.update_layout(xaxis_title="Date", yaxis_title="# Unique Predictoor Addresses") - fig.update_layout(title="Daily # Unique Predictoor Addresses") - fig.update_layout(xaxis={"tickmode": "array", "tickvals": dates[::ticks]}) - - fig.write_image(chart_path) - - logger.info("Chart created: %s", chart_path) - - -@enforce_types -def plot_traction_cum_sum_statistics(stats_df: pl.DataFrame, pq_dir: str) -> None: - assert "datetime" in stats_df.columns - assert "cum_daily_unique_predictoors_count" in stats_df.columns - - charts_dir = get_plots_dir(pq_dir) - - dates = stats_df["datetime"].to_list() - ticks = int(len(dates) / 5) if len(dates) > 5 else 2 - - # draw cum_unique_predictoors - chart_path = os.path.join(charts_dir, "daily_cumulative_unique_predictoors.png") - - fig = go.Figure( - go.Scatter( - x=stats_df["datetime"].to_pandas(), - y=stats_df["cum_daily_unique_predictoors_count"], - mode="markers", - ) - ) - - fig.update_layout(xaxis_title="Date", yaxis_title="# Unique Predictoor Addresses") - fig.update_layout(title="Cumulative # Unique Predictoor Addresses") - fig.update_layout(xaxis={"tickmode": "array", "tickvals": dates[::ticks]}) - fig.write_image(chart_path) - - logger.info("Chart created: %s", chart_path) - - -@enforce_types -def get_slot_statistics(preds_df: pl.DataFrame) -> pl.DataFrame: - # Create a key to group predictions - slots_df = ( - preds_df.with_columns( - [ - (pl.col("pair").cast(str) + "-" + pl.col("timeframe").cast(str)).alias( - "pair_timeframe" - ), - ( - pl.col("pair").cast(str) - + "-" - + pl.col("timeframe").cast(str) - + "-" - + pl.col("slot").cast(str) - ).alias("pair_timeframe_slot"), - ] - ) - .group_by("pair_timeframe_slot") - .agg( - [ - pl.col("pair").first(), - pl.col("timeframe").first(), - pl.col("slot").first(), - pl.col("pair_timeframe").first(), - # use strftime(%Y-%m-%d %H:00:00) to get hourly intervals - pl.from_epoch("timestamp", time_unit="s") - .first() - .dt.strftime("%Y-%m-%d") - .alias("datetime"), - pl.col("user") - .unique() - .count() - .alias("n_predictoors"), # n unique predictoors - pl.col("payout").sum().alias("slot_payout"), # Sum of slot payout - pl.col("stake").sum().alias("slot_stake"), # Sum of slot stake - ] - ) - .sort(["pair", "timeframe", "slot"]) - ) - - return slots_df - - -def calculate_slot_daily_statistics( - slots_df: pl.DataFrame, -) -> pl.DataFrame: - def get_mean_slots_slots_df(slots_df: pl.DataFrame) -> pl.DataFrame: - return slots_df.select( - [ - pl.col("pair_timeframe").first(), - pl.col("datetime").first(), - pl.col("slot_stake").mean().alias("mean_stake"), - pl.col("slot_payout").mean().alias("mean_payout"), - pl.col("n_predictoors").mean().alias("mean_n_predictoors"), - ] - ) - - # for each take a sample of up-to 5 - # then for each calc daily mean_stake, mean_payout, ... - # then for each sum those numbers across all feeds - slots_daily_df = ( - slots_df.with_columns( - pl.concat_str(["pair_timeframe", "datetime"]).alias("group_key") - ) - .group_by("group_key") - .map_groups( - lambda df: ( - get_mean_slots_slots_df(df.sample(5)) - if len(df) > 5 - else get_mean_slots_slots_df(df) - ) - ) - .group_by("datetime") - .agg( - [ - pl.col("mean_stake").sum().alias("daily_average_stake"), - pl.col("mean_payout").sum().alias("daily_average_payout"), - pl.col("mean_n_predictoors") - .mean() - .alias("daily_average_predictoor_count"), - ] - ) - .sort("datetime") - ) - - return slots_daily_df - - -def plot_slot_daily_statistics(slots_df: pl.DataFrame, pq_dir: str) -> None: - assert "pair_timeframe" in slots_df.columns - assert "slot" in slots_df.columns - assert "n_predictoors" in slots_df.columns - - # calculate slot daily statistics - slots_daily_df = calculate_slot_daily_statistics(slots_df) - - charts_dir = get_plots_dir(pq_dir) - - dates = slots_daily_df["datetime"].to_list() - ticks = int(len(dates) / 5) if len(dates) > 5 else 2 - - # draw daily predictoor stake in $OCEAN - chart_path = os.path.join(charts_dir, "daily_average_stake.png") - - fig = go.Figure( - go.Scatter( - x=slots_daily_df["datetime"].to_pandas(), - y=slots_daily_df["daily_average_stake"], - mode="markers", - ) - ) - - fig.update_layout(xaxis_title="Date", yaxis_title="Average $OCEAN Staked") - fig.update_layout(title="Daily average $OCEAN staked per slot, across all Feeds") - fig.update_layout(xaxis={"tickmode": "array", "tickvals": dates[::ticks]}) - - fig.write_image(chart_path) - - logger.info("Chart created: %s", chart_path) - - # draw daily predictoor payouts in $OCEAN - chart_path = os.path.join(charts_dir, "daily_slot_average_predictoors.png") - fig = go.Figure( - go.Scatter( - x=slots_daily_df["datetime"].to_pandas(), - y=slots_daily_df["daily_average_predictoor_count"], - mode="markers", - ) - ) - - fig.update_layout(xaxis_title="Date", yaxis_title="Average Predictoors") - fig.update_layout(title="Average # Predictoors competing per slot, per feed") - fig.update_layout(xaxis={"tickmode": "array", "tickvals": dates[::ticks]}) - - fig.write_image(chart_path) - - logger.info("Chart created: %s", chart_path) diff --git a/pdr_backend/analytics/test/conftest.py b/pdr_backend/analytics/test/conftest.py deleted file mode 100644 index 0aa1b86e8..000000000 --- a/pdr_backend/analytics/test/conftest.py +++ /dev/null @@ -1,46 +0,0 @@ -import polars as pl -import pytest - -from pdr_backend.lake.plutil import _object_list_to_df -from pdr_backend.lake.prediction import ( - mock_daily_predictions, - mock_first_predictions, - mock_second_predictions, -) - - -@pytest.fixture() -def _sample_first_predictions(): - return mock_first_predictions() - - -@pytest.fixture() -def _sample_second_predictions(): - return mock_second_predictions() - - -@pytest.fixture() -def _sample_daily_predictions(): - return mock_daily_predictions() - - -@pytest.fixture() -def _gql_datafactory_first_predictions_df(): - _predictions = mock_first_predictions() - predictions_df = _object_list_to_df(_predictions) - predictions_df = predictions_df.with_columns( - [pl.col("timestamp").mul(1000).alias("timestamp")] - ) - - return predictions_df - - -@pytest.fixture() -def _gql_datafactory_daily_predictions_df(): - _predictions = mock_daily_predictions() - predictions_df = _object_list_to_df(_predictions) - predictions_df = predictions_df.with_columns( - [pl.col("timestamp").mul(1000).alias("timestamp")] - ) - - return predictions_df diff --git a/pdr_backend/analytics/test/test_check_network.py b/pdr_backend/analytics/test/test_check_network.py deleted file mode 100644 index 2e168d1a4..000000000 --- a/pdr_backend/analytics/test/test_check_network.py +++ /dev/null @@ -1,180 +0,0 @@ -from datetime import datetime, UTC -from unittest.mock import Mock, patch - -from enforce_typing import enforce_types -import time_machine - -from pdr_backend.analytics.check_network import ( - _N_FEEDS, - check_dfbuyer, - check_network_main, - get_expected_consume, -) -from pdr_backend.ppss.ppss import mock_ppss -from pdr_backend.util.constants import S_PER_DAY, S_PER_WEEK -from pdr_backend.util.currency_types import Eth, Wei - -PATH = "pdr_backend.analytics.check_network" - -MOCK_DT = datetime(2023, 12, 17, 15, 14, 40, tzinfo=UTC) -MOCK_CUR_UT = int(MOCK_DT.timestamp()) # 1702826080 - - -@enforce_types -@patch( - f"{PATH}.get_consume_so_far_per_contract", - side_effect=Mock(return_value={"0x1": 120}), -) -@patch( - f"{PATH}.get_expected_consume", - side_effect=Mock(return_value=100), -) -@time_machine.travel(MOCK_DT) -def test_check_dfbuyer( # pylint: disable=unused-argument - mock_get_expected_consume_, - mock_get_consume_so_far_per_contract_, - caplog, -): - dfbuyer_addr = "0x1" - contract_query_result = {"data": {"predictContracts": [{"id": "0x1"}]}} - subgraph_url = "test_dfbuyer" - token_amt = 3.0 - check_dfbuyer(dfbuyer_addr, contract_query_result, subgraph_url, token_amt) - - target_str = ( - "Checking consume amounts (dfbuyer), expecting 100 consume per contract" - ) - assert target_str in caplog.text - assert "got 120 consume for contract: 0x1, expected 100" in caplog.text - - cur_ut = MOCK_CUR_UT - start_ut = int((cur_ut // S_PER_WEEK) * S_PER_WEEK) - 3 * 60 * 60 - mock_get_consume_so_far_per_contract_.assert_called_once_with( - subgraph_url, dfbuyer_addr, start_ut, ["0x1"] - ) - mock_get_expected_consume_.assert_called_once_with(int(cur_ut), token_amt) - - -@enforce_types -def test_get_expected_consume(): - # Test case 1: Beginning of week - for_ut = S_PER_WEEK # Start of second week - token_amt = 140.0 - expected = token_amt / 7 / _N_FEEDS # Expected consume for one interval - assert get_expected_consume(for_ut, token_amt) == expected - - # Test case 2: End of first interval - for_ut = S_PER_WEEK + S_PER_DAY # Start of second day of second week - expected = 2 * (token_amt / 7 / _N_FEEDS) # Expected consume for two intervals - assert get_expected_consume(for_ut, token_amt) == expected - - # Test case 3: Middle of week - for_ut = S_PER_WEEK + 3 * S_PER_DAY # Start of fourth day of second week - expected = 4 * (token_amt / 7 / _N_FEEDS) # Expected consume for four intervals - assert get_expected_consume(for_ut, token_amt) == expected - - # Test case 4: End of week - for_ut = 2 * S_PER_WEEK - 1 # Just before end of second week - expected = 7 * (token_amt / 7 / _N_FEEDS) # Expected consume for seven intervals - assert get_expected_consume(for_ut, token_amt) == expected - - -@enforce_types -@patch(f"{PATH}.check_dfbuyer") -@patch(f"{PATH}.get_opf_addresses") -@patch(f"{PATH}.query_subgraph") -@patch("pdr_backend.ppss.web3_pp.Token") -def test_check_network_main( # pylint: disable=unused-argument - mock_token, - mock_query_subgraph, - mock_get_opf_addresses, - mock_check_dfbuyer, - tmpdir, - monkeypatch, -): - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - ) - - mock_get_opf_addresses.return_value = { - "dfbuyer": "0xdfBuyerAddress", - "some_other_address": "0xSomeOtherAddress", - } - mock_query_subgraph.return_value = {"data": {"predictContracts": []}} - mock_token.return_value.balanceOf.return_value = Eth(1000).to_wei() - - mock_w3 = Mock() # pylint: disable=not-callable - mock_w3.eth.get_balance.return_value = 1000.0 * 1e18 - ppss.web3_pp.web3_config.w3 = mock_w3 - ppss.web3_pp.w3.eth.block_number = 100 - check_network_main(ppss, lookback_hours=24) - - mock_get_opf_addresses.assert_called_once_with("sapphire-mainnet") - assert mock_query_subgraph.call_count == 1 - mock_token.assert_called() - ppss.web3_pp.web3_config.w3.eth.get_balance.assert_called() - - -@enforce_types -@patch(f"{PATH}.check_dfbuyer") -@patch(f"{PATH}.get_opf_addresses") -@patch("pdr_backend.ppss.web3_pp.Token") -def test_check_network_others( # pylint: disable=unused-argument - mock_token, - mock_get_opf_addresses, - mock_check_dfbuyer, - tmpdir, - monkeypatch, -): - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - ) - mock_query_subgraph = Mock() - - # test if predictoor contracts are found, iterates through them - with patch(f"{PATH}.query_subgraph") as mock_query_subgraph: - mock_query_subgraph.return_value = { - "data": { - "predictContracts": [ - { - "slots": {}, - "token": {"name": "aa"}, - "secondsPerEpoch": 86400, - }, - { - "slots": {}, - "token": {"name": "bb"}, - "secondsPerEpoch": 86400, - }, - ] - } - } - check_network_main(ppss, lookback_hours=24) - assert mock_query_subgraph.call_count == 1 - assert mock_check_dfbuyer.call_count == 1 - - -@enforce_types -@patch(f"{PATH}.check_dfbuyer") -@patch(f"{PATH}.get_opf_addresses") -@patch("pdr_backend.ppss.web3_pp.Token") -def test_check_network_without_mock( # pylint: disable=unused-argument - mock_token, - mock_get_opf_addresses, - mock_check_dfbuyer, - tmpdir, - monkeypatch, -): - mock_token.balanceOf.return_value = Wei(1000e18) - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - ) - - check_network_main(ppss, lookback_hours=1) - assert mock_check_dfbuyer.call_count == 1 diff --git a/pdr_backend/analytics/test/test_get_predictions_info.py b/pdr_backend/analytics/test/test_get_predictions_info.py deleted file mode 100644 index e36a98b06..000000000 --- a/pdr_backend/analytics/test/test_get_predictions_info.py +++ /dev/null @@ -1,209 +0,0 @@ -from unittest.mock import patch - -import polars as pl -import pytest -from enforce_typing import enforce_types -from pdr_backend.analytics.get_predictions_info import get_predictions_info_main -from pdr_backend.lake.prediction import Prediction -from pdr_backend.lake.table import Table -from pdr_backend.ppss.ppss import mock_ppss - - -@enforce_types -@patch("pdr_backend.analytics.get_predictions_info.get_feed_summary_stats") -def test_get_predictions_info_main_mainnet( - mock_get_feed_summary_stats, - _gql_datafactory_first_predictions_df, - tmpdir, -): - """ - @description - assert everything works as expected under normal conditions - """ - st_timestr = "2023-12-03" - fin_timestr = "2023-12-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - predictions_df = _gql_datafactory_first_predictions_df - predictions_table = Table.from_dataclass(Prediction) - predictions_table.append_to_storage(predictions_df, ppss) - - feed_addr = "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152" - - get_predictions_info_main( - ppss, - st_timestr, - fin_timestr, - [feed_addr], - ) - - # manualy filter predictions for latter check Predictions - predictions_df = predictions_df.filter( - predictions_df["ID"] - .map_elements(lambda x: x.split("-")[0], return_dtype=str) - .is_in([feed_addr]) - ) - - assert len(predictions_df) == 1 - - preds_df = predictions_df.filter( - (predictions_df["timestamp"] >= ppss.lake_ss.st_timestamp) - & (predictions_df["timestamp"] <= ppss.lake_ss.fin_timestamp) - ) - - assert len(preds_df) == 1 - - # number of rows from data frames are the same - assert mock_get_feed_summary_stats.call_args[0][0][0].shape[0] == preds_df.shape[0] - - # the data frame was filtered by feed address - assert ( - mock_get_feed_summary_stats.call_args[0][0][0]["ID"][0].split("-")[0] - == feed_addr - ) - - # data frame after filtering is same as manual filtered dataframe - pl.DataFrame.equals(mock_get_feed_summary_stats.call_args, preds_df) - - assert mock_get_feed_summary_stats.call_count == 1 - - -@enforce_types -@patch("pdr_backend.analytics.get_predictions_info.get_feed_summary_stats") -def test_get_predictions_info_bad_date_range( - get_feed_summary_stats, - _gql_datafactory_first_predictions_df, - tmpdir, -): - """ - @description - assert date range filter asserts it has records before calculating stats - """ - st_timestr = "2023-12-20" - fin_timestr = "2023-12-21" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_df = _gql_datafactory_first_predictions_df - predictions_table = Table.from_dataclass(Prediction) - predictions_table.append_to_storage(predictions_df, ppss) - - feed_addr = "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152" - - # wrong feed address will raise error, lets wrap the call for test - with pytest.raises(AssertionError): - get_predictions_info_main( - ppss, - st_timestr, - fin_timestr, - [feed_addr], - ) - - # Work 1: Internal filter returns 0 rows due to date mismatch - predictions_df = predictions_df.filter( - predictions_df["ID"] - .map_elements(lambda x: x.split("-")[0], return_dtype=str) - .is_in([feed_addr]) - ) - - assert len(predictions_df) == 1 - - preds_df = predictions_df.filter( - (predictions_df["timestamp"] >= ppss.lake_ss.st_timestamp) - & (predictions_df["timestamp"] <= ppss.lake_ss.fin_timestamp) - ) - - assert len(preds_df) == 0 - - assert get_feed_summary_stats.call_count == 0 - - -@enforce_types -@patch("pdr_backend.analytics.get_predictions_info.get_feed_summary_stats") -def test_get_predictions_info_bad_feed( - mock_get_feed_summary_stats, - _gql_datafactory_first_predictions_df, - tmpdir, -): - """ - @description - assert feeds filter ends up with records before calculating stats - """ - st_timestr = "2023-12-03" - fin_timestr = "2023-12-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_df = _gql_datafactory_first_predictions_df - predictions_table = Table.from_dataclass(Prediction) - predictions_table.append_to_storage(predictions_df, ppss) - - feed_addr = "0x8e0we267779d27c2b3ed5408408ff15d9f3a3152" - - # wrong feed address will raise error because there will be no data to process - with pytest.raises(AssertionError): - get_predictions_info_main( - ppss, - st_timestr, - fin_timestr, - [feed_addr], - ) - - # show that feed address can't be found - predictions_df = predictions_df.filter( - predictions_df["ID"] - .map_elements(lambda x: x.split("-")[0], return_dtype=str) - .is_in([feed_addr]) - ) - - assert len(predictions_df) == 0 - - assert mock_get_feed_summary_stats.call_count == 0 - - -@enforce_types -def test_get_predictions_info_empty(_gql_datafactory_first_predictions_df, tmpdir): - """ - @description - assert data factory returns valid records before calculating stats - """ - st_timestr = "2023-11-03" - fin_timestr = "2023-11-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_table = Table.from_dataclass(Prediction) - predictions_table.append_to_storage( - pl.DataFrame([], schema=Prediction.get_lake_schema()), ppss - ) - - feed_addr = "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152" - - # gql_data_factory returning empty dataframe will raise error - with pytest.raises(AssertionError): - get_predictions_info_main( - ppss, - st_timestr, - fin_timestr, - [feed_addr], - ) diff --git a/pdr_backend/analytics/test/test_get_predictoors_info.py b/pdr_backend/analytics/test/test_get_predictoors_info.py deleted file mode 100644 index 6b84c3c67..000000000 --- a/pdr_backend/analytics/test/test_get_predictoors_info.py +++ /dev/null @@ -1,152 +0,0 @@ -from unittest.mock import patch - -import polars as pl -import pytest -from enforce_typing import enforce_types - -from pdr_backend.analytics.get_predictions_info import get_predictoors_info_main -from pdr_backend.lake.prediction import Prediction -from pdr_backend.lake.table import Table -from pdr_backend.ppss.ppss import mock_ppss - - -@enforce_types -@patch("pdr_backend.analytics.get_predictions_info.get_predictoor_summary_stats") -def test_get_predictoors_info_main_mainnet( - mock_get_predictoor_summary_stats, - _gql_datafactory_first_predictions_df, - tmpdir, -): - st_timestr = "2023-12-03" - fin_timestr = "2023-12-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_df = _gql_datafactory_first_predictions_df - predictions_table = Table.from_dataclass(Prediction) - predictions_table.append_to_storage(predictions_df, ppss) - - user_addr = "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - - get_predictoors_info_main( - ppss, - st_timestr, - fin_timestr, - [user_addr], - ) - - # manualy filter predictions for latter check Predictions - predictions_df = predictions_df.filter(predictions_df["user"].is_in([user_addr])) - preds_df = predictions_df.filter( - (predictions_df["timestamp"] >= ppss.lake_ss.st_timestamp) - & (predictions_df["timestamp"] <= ppss.lake_ss.fin_timestamp) - ) - - # data frame after filtering is same as manual filtered dataframe - pl.DataFrame.equals(mock_get_predictoor_summary_stats.call_args, preds_df) - - # number of rows from data frames are the same - assert ( - mock_get_predictoor_summary_stats.call_args[0][0][0].shape[0] - == preds_df.shape[0] - ) - - # the data frame was filtered by user address - assert mock_get_predictoor_summary_stats.call_args[0][0][0]["user"][0] == user_addr - - assert mock_get_predictoor_summary_stats.call_count == 1 - - -@enforce_types -@patch("pdr_backend.analytics.get_predictions_info.get_predictoor_summary_stats") -def test_get_predictoors_info_bad_date_range( - mock_get_predictoor_summary_stats, - _gql_datafactory_first_predictions_df, - tmpdir, -): - st_timestr = "2023-12-20" - fin_timestr = "2023-12-30" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_df = _gql_datafactory_first_predictions_df - predictions_table = Table.from_dataclass(Prediction) - predictions_table.append_to_storage(predictions_df, ppss) - - user_addr = "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - - # wrong date filter will lead to an assert - with pytest.raises(AssertionError): - get_predictoors_info_main( - ppss, - st_timestr, - fin_timestr, - [user_addr], - ) - - # Show filter leading to an empty dataframe - predictions_df = predictions_df.filter(predictions_df["user"].is_in([user_addr])) - - assert len(predictions_df) == 2 - - preds_df = predictions_df.filter( - (predictions_df["timestamp"] >= ppss.lake_ss.st_timestamp) - & (predictions_df["timestamp"] <= ppss.lake_ss.fin_timestamp) - ) - - assert len(preds_df) == 0 - - # show that summary_stats was never called - assert mock_get_predictoor_summary_stats.call_count == 0 - - -@enforce_types -@patch( - "pdr_backend.analytics.predictoor_stats.get_predictoor_summary_stats", -) -def test_get_predictoors_info_bad_user_address( - mock_get_predictoor_summary_stats, - _gql_datafactory_first_predictions_df, - tmpdir, -): - st_timestr = "2023-12-03" - fin_timestr = "2023-12-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_df = _gql_datafactory_first_predictions_df - predictions_table = Table.from_dataclass(Prediction) - predictions_table.append_to_storage(predictions_df, ppss) - - user_addr = "0xbbbb4cb4ff2584bad80ff5f109034a891c3d223" - - # Unknown user that leads to no records, will lead to an assert - with pytest.raises(AssertionError): - get_predictoors_info_main( - ppss, - st_timestr, - fin_timestr, - [user_addr], - ) - - # Show filter leading to an empty dataframe - predictions_df = predictions_df.filter(predictions_df["user"].is_in([user_addr])) - assert len(predictions_df) == 0 - - # show that summary_stats was never called - assert mock_get_predictoor_summary_stats.call_count == 0 diff --git a/pdr_backend/analytics/test/test_get_traction_info.py b/pdr_backend/analytics/test/test_get_traction_info.py deleted file mode 100644 index cc9b35695..000000000 --- a/pdr_backend/analytics/test/test_get_traction_info.py +++ /dev/null @@ -1,85 +0,0 @@ -from unittest.mock import patch - -import polars as pl -import pytest -from enforce_typing import enforce_types - -from pdr_backend.analytics.get_predictions_info import get_traction_info_main -from pdr_backend.lake.prediction import Prediction -from pdr_backend.lake.table import Table -from pdr_backend.ppss.ppss import mock_ppss - - -@enforce_types -@patch("pdr_backend.analytics.get_predictions_info.get_traction_statistics") -@patch("pdr_backend.analytics.get_predictions_info.plot_traction_cum_sum_statistics") -@patch("pdr_backend.analytics.get_predictions_info.plot_traction_daily_statistics") -@patch("pdr_backend.analytics.get_predictions_info.get_slot_statistics") -@patch("pdr_backend.analytics.get_predictions_info.plot_slot_daily_statistics") -def test_get_traction_info_main_mainnet( - mock_plot_slot_daily_statistics, - mock_get_slot_statistics, - mock_plot_traction_daily_statistics, - mock_plot_traction_cum_sum_statistics, - mock_get_traction_statistics, - _gql_datafactory_daily_predictions_df, - tmpdir, -): - st_timestr = "2023-11-02" - fin_timestr = "2023-11-07" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_df = _gql_datafactory_daily_predictions_df - predictions_table = Table.from_dataclass(Prediction) - predictions_table.append_to_storage(predictions_df, ppss) - - get_traction_info_main(ppss, st_timestr, fin_timestr) - - assert len(predictions_df) > 0 - - # calculate ms locally so we can filter raw Predictions - preds_df = predictions_df.filter( - (predictions_df["timestamp"] >= ppss.lake_ss.st_timestamp) - & (predictions_df["timestamp"] <= ppss.lake_ss.fin_timestamp) - ) - - assert len(predictions_df) == 6 - - # Assert calls and values - pl.DataFrame.equals(mock_get_traction_statistics.call_args, preds_df) - - # Assert all calls were made - mock_plot_slot_daily_statistics.assert_called_once() - mock_get_slot_statistics.assert_called_once() - mock_plot_traction_daily_statistics.assert_called_once() - mock_plot_traction_cum_sum_statistics.assert_called_once() - mock_get_traction_statistics.assert_called_once() - - -@enforce_types -def test_get_traction_info_empty_data( - tmpdir, -): - st_timestr = "2023-11-02" - fin_timestr = "2023-11-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - pdr_prediction_table = Table.from_dataclass(Prediction) - pdr_prediction_table.append_to_storage( - pl.DataFrame([], schema=Prediction.get_lake_schema()), ppss - ) - - with pytest.raises(AssertionError): - get_traction_info_main(ppss, st_timestr, fin_timestr) diff --git a/pdr_backend/analytics/test/test_predictoor_stats.py b/pdr_backend/analytics/test/test_predictoor_stats.py deleted file mode 100644 index 31e04f0a9..000000000 --- a/pdr_backend/analytics/test/test_predictoor_stats.py +++ /dev/null @@ -1,126 +0,0 @@ -from unittest.mock import patch - -import polars as pl -from enforce_typing import enforce_types - -from pdr_backend.analytics.predictoor_stats import ( - calculate_slot_daily_statistics, - get_feed_summary_stats, - get_predictoor_summary_stats, - get_slot_statistics, - get_traction_statistics, - plot_slot_daily_statistics, - plot_traction_cum_sum_statistics, - plot_traction_daily_statistics, -) -from pdr_backend.lake.plutil import _object_list_to_df -from pdr_backend.lake.table_pdr_predictions import FeedSummary, PredictoorSummary - - -@enforce_types -def test_get_feed_statistics(_sample_first_predictions): - predictions_df = _object_list_to_df(_sample_first_predictions) - feed_summary_df = get_feed_summary_stats(predictions_df) - - assert isinstance(feed_summary_df, pl.DataFrame) - assert len(feed_summary_df.schema) == len(FeedSummary.get_lake_schema()) - - -@enforce_types -def test_get_predictoor_statistics(_sample_first_predictions): - predictions_df = _object_list_to_df(_sample_first_predictions) - predictoor_summary_df = get_predictoor_summary_stats(predictions_df) - - assert isinstance(predictoor_summary_df, pl.DataFrame) - assert len(predictoor_summary_df.schema) == len(PredictoorSummary.get_lake_schema()) - - -@enforce_types -@patch("plotly.graph_objects.Figure.write_image") -def test_get_traction_statistics( - mock_savefig, _sample_first_predictions, _sample_second_predictions -): - predictions = _sample_first_predictions + _sample_second_predictions - - # Get all predictions into a dataframe - preds_dicts = [pred.__dict__ for pred in predictions] - preds_df = pl.DataFrame(preds_dicts) - - stats_df = get_traction_statistics(preds_df) - assert isinstance(stats_df, pl.DataFrame) - assert stats_df.shape == (3, 3) - assert "datetime" in stats_df.columns - assert "daily_unique_predictoors_count" in stats_df.columns - assert stats_df["cum_daily_unique_predictoors_count"].to_list() == [2, 3, 4] - - pq_dir = "lake_data/" - plot_traction_daily_statistics(stats_df, pq_dir) - plot_traction_cum_sum_statistics(stats_df, pq_dir) - - assert mock_savefig.call_count == 2 - - -@enforce_types -def test_get_slot_statistics(_sample_first_predictions, _sample_second_predictions): - predictions = _sample_first_predictions + _sample_second_predictions - - # Get all predictions into a dataframe - preds_dicts = [pred.__dict__ for pred in predictions] - preds_df = pl.DataFrame(preds_dicts) - - # calculate slot stats - slots_df = get_slot_statistics(preds_df) - assert isinstance(slots_df, pl.DataFrame) - assert slots_df.shape == (7, 9) - - for key in [ - "datetime", - "pair", - "timeframe", - "slot", - "pair_timeframe", - "n_predictoors", - "slot_stake", - "slot_payout", - ]: - assert key in slots_df.columns - - assert slots_df["slot_payout"].to_list() == [0.0, 0.05, 0.05, 0.0, 0.0, 0.0, 0.1] - assert slots_df["slot_stake"].to_list() == [0.05, 0.05, 0.05, 0.05, 0.05, 0.0, 0.1] - - -@enforce_types -@patch("plotly.graph_objects.Figure.write_image") -def test_plot_slot_statistics( - mock_savefig, _sample_first_predictions, _sample_second_predictions -): - predictions = _sample_first_predictions + _sample_second_predictions - - # Get all predictions into a dataframe - preds_dicts = [pred.__dict__ for pred in predictions] - preds_df = pl.DataFrame(preds_dicts) - - # calculate slot stats - slots_df = get_slot_statistics(preds_df) - slot_daily_df = calculate_slot_daily_statistics(slots_df) - - for key in [ - "datetime", - "daily_average_stake", - "daily_average_payout", - "daily_average_predictoor_count", - ]: - assert key in slot_daily_df.columns - - assert slot_daily_df["daily_average_stake"].round(2).to_list() == [0.1, 0.1, 0.15] - assert slot_daily_df["daily_average_payout"].round(2).to_list() == [0.0, 0.05, 0.15] - assert slot_daily_df["daily_average_predictoor_count"].round(2).to_list() == [ - 1.0, - 1.0, - 1.0, - ] - - pq_dir = "lake_data/" - plot_slot_daily_statistics(slots_df, pq_dir) - - assert mock_savefig.call_count == 2 diff --git a/pdr_backend/cli/test/test_cli_module.py b/pdr_backend/cli/test/test_cli_module.py index c1d6f7e17..ceed61d5e 100644 --- a/pdr_backend/cli/test/test_cli_module.py +++ b/pdr_backend/cli/test/test_cli_module.py @@ -234,6 +234,16 @@ def test_do_trader(monkeypatch): do_trader(MockArgParser_APPROACH_PPSS_NETWORK(_APPROACH_BAD).parse_args()) +@enforce_types +def test_do_multisim(monkeypatch): + mock_f = Mock() + monkeypatch.setattr(f"{_CLI_PATH}.MultisimEngine.run", mock_f) + + ppss = MockArgParser_PPSS().parse_args() + do_multisim(ppss) + + mock_f.assert_called() + @enforce_types def test_do_ohlcv(monkeypatch): From c07332bcc22a36aa97d3672a919227dab128e876 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 09:00:41 +0100 Subject: [PATCH 03/44] merge with main: update pull_request_template.md --- .github/pull_request_template.md | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7cbf6b64a..d5c9c944f 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,23 +1,8 @@ - -## Pull Request Title +PR title: +"Fix #ISSUE_NUM: " + -The Title or Name should follow this pattern containing the reference to the issue number and a descriptive title: -"Fix #ISSUENUM: " + +PR description: +"Fixes #ISSUE_NUM" -ex: Fix #1233: Add pull requests template - -## Description - -The description should only contain the refference to the issue that the pull request fixes, with the "Fixes" text before it. - -ex: Fixes #1233 - -## Commit message - -When you merge a PR into main, your commit message should be: -PR title + "(PR #PRNUM)" - -ex: Fix #1233: Add pull requests template (PR #1200) +PR commit msg: +"Fix #ISSUENUM: " + + "(PR #PR_NUM") From f87fd0244ea2a8c4650249f8efb7c46ff2176324 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 13:12:30 +0100 Subject: [PATCH 04/44] chop down to just supporting 'sim', 'ohlcv' --- .github/dependabot.yml | 5 - .github/workflows/black.yml | 4 - .github/workflows/check_mainnet.yml | 4 - .github/workflows/check_testnet.yml | 4 - .github/workflows/cron_topup.yml | 4 - .github/workflows/mypy.yml | 4 - .github/workflows/pylint.yml | 4 - README.md | 32 +- READMEs/agent-deployer.md | 182 - READMEs/barge-calls.md | 43 - READMEs/barge.md | 109 - READMEs/clean-code.md | 104 - READMEs/dependencies.md | 13 - READMEs/dev.md | 63 +- READMEs/dfbuyer.md | 58 - READMEs/diagrams/lake.html | 114 - READMEs/get-ocean-on-sapphire.md | 75 - READMEs/get-rose-on-sapphire.md | 96 - READMEs/get-tokens.md | 12 - READMEs/images/dockerbranch.png | Bin 61524 -> 0 bytes READMEs/images/dockerbuild.png | Bin 54499 -> 0 bytes READMEs/images/etl_checkpoints.png | Bin 56987 -> 0 bytes .../etl_swap_from_temp_to_prod_atomic.png | Bin 24865 -> 0 bytes READMEs/images/gql_data_factory_fetch.png | Bin 24464 -> 0 bytes .../gql_data_factory_fetch_1_write_n.png | Bin 56671 -> 0 bytes READMEs/images/gql_use_cache_and_swap.png | Bin 67391 -> 0 bytes READMEs/images/lake_tables_diagram.png | Bin 98288 -> 0 bytes READMEs/lake-and-etl.md | 251 - READMEs/payout.md | 62 - READMEs/predictoor-dashboard.md | 71 - READMEs/predictoor.md | 397 -- READMEs/publisher.md | 59 - READMEs/release-process.md | 94 - READMEs/remotebot.md | 177 - READMEs/subgraph.md | 74 - READMEs/testnet-faucet.md | 61 - READMEs/trader.md | 77 +- READMEs/trueval.md | 54 - READMEs/vps.md | 148 +- entrypoint.sh | 28 - pdr_backend/__init__.py | 4 - pdr_backend/cli/cli_arguments.py | 573 +- pdr_backend/cli/cli_arguments_lake.py | 76 - pdr_backend/cli/cli_module.py | 245 +- pdr_backend/cli/cli_module_lake.py | 122 - pdr_backend/cli/test/test_cli_arguments.py | 3 - .../cli/test/test_cli_arguments_lake.py | 24 - pdr_backend/cli/test/test_cli_module.py | 143 +- pdr_backend/conftest_ganache.py | 131 - pdr_backend/contract/base_contract.py | 62 - pdr_backend/contract/data_nft.py | 67 - pdr_backend/contract/dfrewards.py | 33 - pdr_backend/contract/erc721_factory.py | 34 - pdr_backend/contract/feed_contract.py | 387 -- pdr_backend/contract/fixed_rate.py | 65 - pdr_backend/contract/pred_submitter_mgr.py | 207 - pdr_backend/contract/predictoor_batcher.py | 90 - pdr_backend/contract/slot.py | 7 - pdr_backend/contract/token.py | 73 - pdr_backend/contract/wrapped_token.py | 33 - pdr_backend/deployer/README.md | 3 - pdr_backend/deployer/deployer.py | 85 - pdr_backend/deployer/test/test_deployer.py | 50 - pdr_backend/deployer/util/cloud.py | 275 - pdr_backend/deployer/util/config.py | 47 - pdr_backend/deployer/util/constants.py | 1 - pdr_backend/deployer/util/deployment.py | 195 - pdr_backend/deployer/util/gen_templates.py | 75 - .../deployer/util/models/AgentDeployConfig.py | 17 - .../deployer/util/models/DeployConfig.py | 64 - .../deployer/util/models/DeployFile.py | 14 - .../deployer/util/models/DeploymentInfo.py | 35 - .../deployer/util/models/DeploymentMethod.py | 23 - .../util/models/PredictoorAgentConfig.py | 75 - .../deployer/util/models/SingleAgentConfig.py | 10 - .../models/test/test_agent_deploy_config.py | 22 - .../util/models/test/test_deploy_config.py | 55 - .../util/models/test/test_deploy_file.py | 34 - .../util/models/test/test_deployment_info.py | 47 - .../models/test/test_deployment_method.py | 32 - .../test/test_predictoor_agent_config.py | 31 - .../models/test/test_single_agent_config.py | 18 - pdr_backend/deployer/util/templates/k8s.py | 56 - pdr_backend/deployer/util/test/test_cloud.py | 23 - pdr_backend/deployer/util/test/test_config.py | 61 - .../deployer/util/test/test_deployment.py | 190 - .../deployer/util/test/test_gen_templates.py | 105 - pdr_backend/deployer/util/test/test_wallet.py | 62 - pdr_backend/deployer/util/wallet.py | 57 - pdr_backend/dfbuyer/dfbuyer_agent.py | 285 - pdr_backend/lake/alt_bar.py | 147 - pdr_backend/lake/duckdb_data_store.py | 471 -- pdr_backend/lake/etl.py | 355 -- pdr_backend/lake/gql_data_factory.py | 295 - pdr_backend/lake/lake_mapper.py | 33 - pdr_backend/lake/payout.py | 257 - .../lake/sql_etl_bronze_predictions.py | 116 - pdr_backend/lake/sql_etl_payouts.py | 65 - pdr_backend/lake/sql_etl_predictions.py | 54 - pdr_backend/lake/subscription.py | 201 - pdr_backend/lake/table.py | 201 - .../lake/table_bronze_pdr_predictions.py | 45 - pdr_backend/lake/table_bronze_pdr_slots.py | 40 - pdr_backend/lake/table_pdr_payouts.py | 18 - pdr_backend/lake/table_pdr_predictions.py | 56 - pdr_backend/lake/table_pdr_subscriptions.py | 15 - pdr_backend/lake/table_pdr_truevals.py | 12 - pdr_backend/lake_info/cli.py | 100 - pdr_backend/lake_info/html.py | 362 -- pdr_backend/lake_info/html_components.py | 103 - pdr_backend/lake_info/lake_info.py | 57 - pdr_backend/lake_info/overview.py | 345 -- pdr_backend/lake_info/test/resources.py | 161 - pdr_backend/lake_info/test/test_lake_info.py | 48 - pdr_backend/payout/payout.py | 169 - pdr_backend/payout/test/test_payout.py | 130 - pdr_backend/pdr_dashboard/assets/styles.css | 629 --- .../callbacks/callbacks_common.py | 86 - .../callbacks/callbacks_feeds.py | 225 - .../pdr_dashboard/callbacks/callbacks_home.py | 361 -- .../callbacks/callbacks_predictoors.py | 308 - .../pdr_dashboard/dash_components/modal.py | 118 - .../pdr_dashboard/dash_components/plots.py | 653 --- .../dash_components/tooltips.yaml | 35 - .../dash_components/view_elements.py | 186 - pdr_backend/pdr_dashboard/pages/common.py | 60 - pdr_backend/pdr_dashboard/pages/feeds.py | 124 - pdr_backend/pdr_dashboard/pages/home.py | 347 -- .../pdr_dashboard/pages/predictoors.py | 129 - pdr_backend/pdr_dashboard/predictoor_dash.py | 45 - pdr_backend/pdr_dashboard/test/conftest.py | 64 - .../expected_feeds_table_data.json | 282 - .../expected_predictoors_table_data.json | 1 - .../filtered_accuracy_min_55.json | 16 - .../filtered_accuracy_min_90.json | 1 - .../filtered_base_token_ada.json | 30 - .../filtered_base_token_eth.json | 30 - .../filtered_base_token_eth_5m.json | 16 - .../filtered_p_avg_accuracy_min_55.json | 1 - .../filtered_p_avg_accuracy_min_90.json | 1 - .../json_fixtures/filtered_staked_max_4K.json | 1 - .../filtered_volume_max_1400.json | 1 - .../test/json_fixtures/search_6f3bc.json | 16 - .../test/json_fixtures/search_ada.json | 30 - .../test/json_fixtures/search_eth.json | 30 - .../test/json_fixtures/search_no_rows.json | 1 - .../test/json_fixtures/search_p_xac8.json | 1 - .../sorted_feeds_table_asc_by_avg_stake.json | 282 - ...sorted_predictoors_table_asc_by_stake.json | 1 - ...orted_predictoors_table_desc_by_stake.json | 1 - pdr_backend/pdr_dashboard/test/resources.py | 255 - pdr_backend/pdr_dashboard/test/test_plots.py | 238 - .../pdr_dashboard/test/test_util_db.py | 262 - .../pdr_dashboard/test/test_util_format.py | 105 - .../pdr_dashboard/test/test_util_helpers.py | 76 - .../pdr_dashboard/test/test_util_prices.py | 43 - pdr_backend/pdr_dashboard/util/db.py | 726 --- .../pdr_dashboard/util/duckdb_file_reader.py | 119 - pdr_backend/pdr_dashboard/util/filters.py | 234 - pdr_backend/pdr_dashboard/util/format.py | 253 - pdr_backend/pdr_dashboard/util/helpers.py | 210 - pdr_backend/pdr_dashboard/util/prices.py | 77 - pdr_backend/ppss/dfbuyer_ss.py | 54 - pdr_backend/ppss/lake_ss.py | 26 - pdr_backend/ppss/multisim_ss.py | 83 - pdr_backend/ppss/payout_ss.py | 22 - pdr_backend/ppss/ppss.py | 50 +- pdr_backend/ppss/predictoor_ss.py | 105 - pdr_backend/ppss/publisher_ss.py | 54 - pdr_backend/ppss/test/test_dfbuyer_ss.py | 16 - pdr_backend/ppss/test/test_lake_ss.py | 3 - pdr_backend/ppss/test/test_multisim_ss.py | 149 - pdr_backend/ppss/test/test_payout_ss.py | 13 - pdr_backend/ppss/test/test_ppss.py | 48 +- pdr_backend/ppss/test/test_predictoor_ss.py | 49 - pdr_backend/ppss/test/test_publisher_ss.py | 39 - pdr_backend/ppss/test/test_topup_ss.py | 60 - pdr_backend/ppss/test/test_trueval_ss.py | 15 - pdr_backend/ppss/test/test_web3_pp.py | 227 - pdr_backend/ppss/topup_ss.py | 63 - pdr_backend/ppss/trueval_ss.py | 24 - pdr_backend/ppss/web3_pp.py | 423 -- pdr_backend/pred_submitter/compile.py | 61 - .../compiled_contracts/IDFRewards_abi.json | 1 - .../compiled_contracts/IERC20_abi.json | 1 - .../compiled_contracts/IFeedContract_abi.json | 1 - .../PredSubmitterMgr_abi.json | 1 - .../PredSubmitterMgr_bytecode.bin | 1 - .../compiled_contracts/PredSubmitter_abi.json | 1 - .../PredSubmitter_bytecode.bin | 1 - .../contracts/PredSubmitter.sol | 118 - .../contracts/PredSubmitterMgr.sol | 139 - .../contracts/interfaces/IDFRewards.sol | 8 - .../contracts/interfaces/IERC20.sol | 78 - .../contracts/interfaces/IFeedContract.sol | 36 - pdr_backend/pred_submitter/deploy.py | 38 - pdr_backend/predictoor/predictoor_agent.py | 497 -- pdr_backend/predictoor/predictoor_logger.py | 45 - pdr_backend/predictoor/stakes_per_slot.py | 68 - pdr_backend/predictoor/util.py | 64 - pdr_backend/publisher/README.md | 1 - pdr_backend/publisher/publish_asset.py | 103 - pdr_backend/publisher/publish_assets.py | 45 - pdr_backend/sim/assets/styles.css | 4 - pdr_backend/sim/dash_plots/__init__.py | 0 pdr_backend/sim/dash_plots/callbacks.py | 92 - pdr_backend/sim/dash_plots/util.py | 37 - pdr_backend/sim/dash_plots/view_elements.py | 230 - pdr_backend/sim/multisim_engine.py | 195 - pdr_backend/sim/sim_chain_predictions.py | 132 - pdr_backend/sim/sim_dash.py | 24 - pdr_backend/sim/sim_plotter.py | 510 -- pdr_backend/sim/test/test_dash_plots.py | 76 - pdr_backend/sim/test/test_multisim_engine.py | 70 - .../sim/test/test_sim_chain_predictions.py | 157 - pdr_backend/sim/test/test_sim_plotter.py | 1 - pdr_backend/statutil/arima_dash.py | 25 - pdr_backend/statutil/assets/styles.css | 11 - .../statutil/autocorrelation_plotdata.py | 72 - .../statutil/autocorrelation_plotter.py | 153 - pdr_backend/statutil/boxcox.py | 38 - pdr_backend/statutil/dash_plots/__init__.py | 0 pdr_backend/statutil/dash_plots/callbacks.py | 280 - .../statutil/dash_plots/tooltips_text.py | 41 - pdr_backend/statutil/dash_plots/util.py | 62 - .../statutil/dash_plots/view_elements.py | 203 - pdr_backend/statutil/dist_plotdata.py | 90 - pdr_backend/statutil/dist_plotter.py | 178 - pdr_backend/statutil/seasonal.py | 275 - pdr_backend/statutil/seasonal_plotter.py | 81 - pdr_backend/statutil/test/conftest.py | 12 - pdr_backend/statutil/test/resources.py | 5010 ----------------- .../statutil/test/test_autocorrelation.py | 61 - pdr_backend/statutil/test/test_boxcox.py | 32 - .../statutil/test/test_dash_plots_utils.py | 76 - pdr_backend/statutil/test/test_dist.py | 70 - pdr_backend/subgraph/core_subgraph.py | 34 - pdr_backend/subgraph/info725.py | 108 - pdr_backend/subgraph/legacy/subgraph_slot.py | 182 - .../subgraph/subgraph_consume_so_far.py | 56 - pdr_backend/subgraph/subgraph_dfbuyer.py | 55 - .../subgraph/subgraph_feed_contracts.py | 124 - pdr_backend/subgraph/subgraph_payout.py | 169 - .../subgraph/subgraph_pending_payouts.py | 63 - .../subgraph/subgraph_pending_slots.py | 127 - pdr_backend/subgraph/subgraph_predictions.py | 274 - pdr_backend/subgraph/subgraph_slot.py | 164 - .../subgraph/subgraph_subscriptions.py | 122 - pdr_backend/subgraph/subgraph_sync.py | 36 - pdr_backend/subgraph/subgraph_trueval.py | 138 - .../subgraph/test/test_subgraph_feed.py | 82 + .../technical_indicators/get_indicator.py | 16 - .../technical_indicators/indicators/macd.py | 24 - .../technical_indicators/indicators/rsi.py | 20 - .../technical_indicator.py | 83 - .../technical_indicators/tests/conftest.py | 14 - .../tests/test_get_indicator.py | 17 - .../technical_indicators/tests/test_macd.py | 22 - .../technical_indicators/tests/test_rsi.py | 22 - .../tests/test_technical_indicator.py | 40 - .../resources/binance_BTC-USDT_5m.parquet | Bin 116952 -> 0 bytes .../resources/binance_ETH-USDT_5m.parquet | Bin 103184 -> 0 bytes .../tests/resources/ddo_v4_sample.json | 71 - pdr_backend/trader/approach1/__init__.py | 0 pdr_backend/trader/approach1/test/conftest.py | 1 - .../approach1/test/test_trader_agent1.py | 45 - pdr_backend/trader/approach1/trader_agent1.py | 112 - pdr_backend/trader/approach2/__init__.py | 0 pdr_backend/trader/approach2/portfolio.py | 136 - pdr_backend/trader/approach2/test/conftest.py | 1 - .../trader/approach2/test/test_portfolio.py | 67 - .../approach2/test/test_trader_agent2.py | 126 - pdr_backend/trader/approach2/trader_agent2.py | 146 - pdr_backend/trader/base_trader_agent.py | 233 - pdr_backend/trader/test/conftest.py | 1 - .../trader/test/test_base_trader_agent.py | 135 - .../trader/test/trader_agent_runner.py | 84 - pdr_backend/trueval/get_trueval.py | 67 - pdr_backend/trueval/trueval_agent.py | 188 - pdr_backend/util/constants_opf_addrs.py | 27 - pdr_backend/util/contract.py | 54 - pdr_backend/util/networkutil.py | 31 - .../pages => util/test}/__init__.py | 0 .../{test_noganache => test}/test_cache.py | 0 .../{test_noganache => test}/test_contract.py | 0 .../{test_noganache => test}/test_csvs.py | 0 .../test_currency_types.py | 0 .../{test_noganache => test}/test_dictutil.py | 0 .../util/{test_noganache => test}/test_env.py | 0 .../{test_noganache => test}/test_listutil.py | 0 .../{test_noganache => test}/test_mathutil.py | 0 .../{test_noganache => test}/test_point.py | 0 .../test_point_meta.py | 0 .../{test_noganache => test}/test_strutil.py | 0 .../test_time_types.py | 0 .../test_util_constants.py | 0 pdr_backend/util/test_noganache/__init__.py | 0 .../test_constants_get_opf_addrs.py | 36 - pdr_backend/util/test_noganache/test_topup.py | 81 - pdr_backend/util/topup.py | 93 - pdr_backend/util/web3_accounts.py | 76 - pdr_backend/util/web3_config.py | 111 - ppss.yaml | 198 +- 303 files changed, 211 insertions(+), 32505 deletions(-) delete mode 100644 READMEs/agent-deployer.md delete mode 100644 READMEs/barge-calls.md delete mode 100644 READMEs/barge.md delete mode 100644 READMEs/clean-code.md delete mode 100644 READMEs/dfbuyer.md delete mode 100644 READMEs/diagrams/lake.html delete mode 100644 READMEs/get-ocean-on-sapphire.md delete mode 100644 READMEs/get-rose-on-sapphire.md delete mode 100644 READMEs/get-tokens.md delete mode 100644 READMEs/images/dockerbranch.png delete mode 100644 READMEs/images/dockerbuild.png delete mode 100644 READMEs/images/etl_checkpoints.png delete mode 100644 READMEs/images/etl_swap_from_temp_to_prod_atomic.png delete mode 100644 READMEs/images/gql_data_factory_fetch.png delete mode 100644 READMEs/images/gql_data_factory_fetch_1_write_n.png delete mode 100644 READMEs/images/gql_use_cache_and_swap.png delete mode 100644 READMEs/images/lake_tables_diagram.png delete mode 100644 READMEs/lake-and-etl.md delete mode 100644 READMEs/payout.md delete mode 100644 READMEs/predictoor-dashboard.md delete mode 100644 READMEs/predictoor.md delete mode 100644 READMEs/publisher.md delete mode 100644 READMEs/release-process.md delete mode 100644 READMEs/remotebot.md delete mode 100644 READMEs/subgraph.md delete mode 100644 READMEs/testnet-faucet.md delete mode 100644 READMEs/trueval.md delete mode 100755 entrypoint.sh delete mode 100644 pdr_backend/cli/cli_arguments_lake.py delete mode 100644 pdr_backend/cli/cli_module_lake.py delete mode 100644 pdr_backend/cli/test/test_cli_arguments_lake.py delete mode 100644 pdr_backend/conftest_ganache.py delete mode 100644 pdr_backend/contract/base_contract.py delete mode 100644 pdr_backend/contract/data_nft.py delete mode 100644 pdr_backend/contract/dfrewards.py delete mode 100644 pdr_backend/contract/erc721_factory.py delete mode 100644 pdr_backend/contract/feed_contract.py delete mode 100644 pdr_backend/contract/fixed_rate.py delete mode 100644 pdr_backend/contract/pred_submitter_mgr.py delete mode 100644 pdr_backend/contract/predictoor_batcher.py delete mode 100644 pdr_backend/contract/slot.py delete mode 100644 pdr_backend/contract/token.py delete mode 100644 pdr_backend/contract/wrapped_token.py delete mode 100644 pdr_backend/deployer/README.md delete mode 100644 pdr_backend/deployer/deployer.py delete mode 100644 pdr_backend/deployer/test/test_deployer.py delete mode 100644 pdr_backend/deployer/util/cloud.py delete mode 100644 pdr_backend/deployer/util/config.py delete mode 100644 pdr_backend/deployer/util/constants.py delete mode 100644 pdr_backend/deployer/util/deployment.py delete mode 100644 pdr_backend/deployer/util/gen_templates.py delete mode 100644 pdr_backend/deployer/util/models/AgentDeployConfig.py delete mode 100644 pdr_backend/deployer/util/models/DeployConfig.py delete mode 100644 pdr_backend/deployer/util/models/DeployFile.py delete mode 100644 pdr_backend/deployer/util/models/DeploymentInfo.py delete mode 100644 pdr_backend/deployer/util/models/DeploymentMethod.py delete mode 100644 pdr_backend/deployer/util/models/PredictoorAgentConfig.py delete mode 100644 pdr_backend/deployer/util/models/SingleAgentConfig.py delete mode 100644 pdr_backend/deployer/util/models/test/test_agent_deploy_config.py delete mode 100644 pdr_backend/deployer/util/models/test/test_deploy_config.py delete mode 100644 pdr_backend/deployer/util/models/test/test_deploy_file.py delete mode 100644 pdr_backend/deployer/util/models/test/test_deployment_info.py delete mode 100644 pdr_backend/deployer/util/models/test/test_deployment_method.py delete mode 100644 pdr_backend/deployer/util/models/test/test_predictoor_agent_config.py delete mode 100644 pdr_backend/deployer/util/models/test/test_single_agent_config.py delete mode 100644 pdr_backend/deployer/util/templates/k8s.py delete mode 100644 pdr_backend/deployer/util/test/test_cloud.py delete mode 100644 pdr_backend/deployer/util/test/test_config.py delete mode 100644 pdr_backend/deployer/util/test/test_deployment.py delete mode 100644 pdr_backend/deployer/util/test/test_gen_templates.py delete mode 100644 pdr_backend/deployer/util/test/test_wallet.py delete mode 100644 pdr_backend/deployer/util/wallet.py delete mode 100644 pdr_backend/dfbuyer/dfbuyer_agent.py delete mode 100644 pdr_backend/lake/alt_bar.py delete mode 100644 pdr_backend/lake/duckdb_data_store.py delete mode 100644 pdr_backend/lake/etl.py delete mode 100644 pdr_backend/lake/gql_data_factory.py delete mode 100644 pdr_backend/lake/lake_mapper.py delete mode 100644 pdr_backend/lake/payout.py delete mode 100644 pdr_backend/lake/sql_etl_bronze_predictions.py delete mode 100644 pdr_backend/lake/sql_etl_payouts.py delete mode 100644 pdr_backend/lake/sql_etl_predictions.py delete mode 100644 pdr_backend/lake/subscription.py delete mode 100644 pdr_backend/lake/table.py delete mode 100644 pdr_backend/lake/table_bronze_pdr_predictions.py delete mode 100644 pdr_backend/lake/table_bronze_pdr_slots.py delete mode 100644 pdr_backend/lake/table_pdr_payouts.py delete mode 100644 pdr_backend/lake/table_pdr_predictions.py delete mode 100644 pdr_backend/lake/table_pdr_subscriptions.py delete mode 100644 pdr_backend/lake/table_pdr_truevals.py delete mode 100644 pdr_backend/lake_info/cli.py delete mode 100644 pdr_backend/lake_info/html.py delete mode 100644 pdr_backend/lake_info/html_components.py delete mode 100644 pdr_backend/lake_info/lake_info.py delete mode 100644 pdr_backend/lake_info/overview.py delete mode 100644 pdr_backend/lake_info/test/resources.py delete mode 100644 pdr_backend/lake_info/test/test_lake_info.py delete mode 100644 pdr_backend/payout/payout.py delete mode 100644 pdr_backend/payout/test/test_payout.py delete mode 100644 pdr_backend/pdr_dashboard/assets/styles.css delete mode 100644 pdr_backend/pdr_dashboard/callbacks/callbacks_common.py delete mode 100644 pdr_backend/pdr_dashboard/callbacks/callbacks_feeds.py delete mode 100644 pdr_backend/pdr_dashboard/callbacks/callbacks_home.py delete mode 100644 pdr_backend/pdr_dashboard/callbacks/callbacks_predictoors.py delete mode 100644 pdr_backend/pdr_dashboard/dash_components/modal.py delete mode 100644 pdr_backend/pdr_dashboard/dash_components/plots.py delete mode 100644 pdr_backend/pdr_dashboard/dash_components/tooltips.yaml delete mode 100644 pdr_backend/pdr_dashboard/dash_components/view_elements.py delete mode 100644 pdr_backend/pdr_dashboard/pages/common.py delete mode 100644 pdr_backend/pdr_dashboard/pages/feeds.py delete mode 100644 pdr_backend/pdr_dashboard/pages/home.py delete mode 100644 pdr_backend/pdr_dashboard/pages/predictoors.py delete mode 100644 pdr_backend/pdr_dashboard/predictoor_dash.py delete mode 100644 pdr_backend/pdr_dashboard/test/conftest.py delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/expected_feeds_table_data.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/expected_predictoors_table_data.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_accuracy_min_55.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_accuracy_min_90.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_base_token_ada.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_base_token_eth.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_base_token_eth_5m.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_p_avg_accuracy_min_55.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_p_avg_accuracy_min_90.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_staked_max_4K.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/filtered_volume_max_1400.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/search_6f3bc.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/search_ada.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/search_eth.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/search_no_rows.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/search_p_xac8.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/sorted_feeds_table_asc_by_avg_stake.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/sorted_predictoors_table_asc_by_stake.json delete mode 100644 pdr_backend/pdr_dashboard/test/json_fixtures/sorted_predictoors_table_desc_by_stake.json delete mode 100644 pdr_backend/pdr_dashboard/test/resources.py delete mode 100644 pdr_backend/pdr_dashboard/test/test_plots.py delete mode 100644 pdr_backend/pdr_dashboard/test/test_util_db.py delete mode 100644 pdr_backend/pdr_dashboard/test/test_util_format.py delete mode 100644 pdr_backend/pdr_dashboard/test/test_util_helpers.py delete mode 100644 pdr_backend/pdr_dashboard/test/test_util_prices.py delete mode 100644 pdr_backend/pdr_dashboard/util/db.py delete mode 100644 pdr_backend/pdr_dashboard/util/duckdb_file_reader.py delete mode 100644 pdr_backend/pdr_dashboard/util/filters.py delete mode 100644 pdr_backend/pdr_dashboard/util/format.py delete mode 100644 pdr_backend/pdr_dashboard/util/helpers.py delete mode 100644 pdr_backend/pdr_dashboard/util/prices.py delete mode 100644 pdr_backend/ppss/dfbuyer_ss.py delete mode 100644 pdr_backend/ppss/multisim_ss.py delete mode 100644 pdr_backend/ppss/payout_ss.py delete mode 100644 pdr_backend/ppss/publisher_ss.py delete mode 100644 pdr_backend/ppss/test/test_dfbuyer_ss.py delete mode 100644 pdr_backend/ppss/test/test_multisim_ss.py delete mode 100644 pdr_backend/ppss/test/test_payout_ss.py delete mode 100644 pdr_backend/ppss/test/test_publisher_ss.py delete mode 100644 pdr_backend/ppss/test/test_topup_ss.py delete mode 100644 pdr_backend/ppss/test/test_trueval_ss.py delete mode 100644 pdr_backend/ppss/test/test_web3_pp.py delete mode 100644 pdr_backend/ppss/topup_ss.py delete mode 100644 pdr_backend/ppss/trueval_ss.py delete mode 100644 pdr_backend/ppss/web3_pp.py delete mode 100644 pdr_backend/pred_submitter/compile.py delete mode 100644 pdr_backend/pred_submitter/compiled_contracts/IDFRewards_abi.json delete mode 100644 pdr_backend/pred_submitter/compiled_contracts/IERC20_abi.json delete mode 100644 pdr_backend/pred_submitter/compiled_contracts/IFeedContract_abi.json delete mode 100644 pdr_backend/pred_submitter/compiled_contracts/PredSubmitterMgr_abi.json delete mode 100644 pdr_backend/pred_submitter/compiled_contracts/PredSubmitterMgr_bytecode.bin delete mode 100644 pdr_backend/pred_submitter/compiled_contracts/PredSubmitter_abi.json delete mode 100644 pdr_backend/pred_submitter/compiled_contracts/PredSubmitter_bytecode.bin delete mode 100644 pdr_backend/pred_submitter/contracts/PredSubmitter.sol delete mode 100644 pdr_backend/pred_submitter/contracts/PredSubmitterMgr.sol delete mode 100644 pdr_backend/pred_submitter/contracts/interfaces/IDFRewards.sol delete mode 100644 pdr_backend/pred_submitter/contracts/interfaces/IERC20.sol delete mode 100644 pdr_backend/pred_submitter/contracts/interfaces/IFeedContract.sol delete mode 100644 pdr_backend/pred_submitter/deploy.py delete mode 100644 pdr_backend/predictoor/predictoor_agent.py delete mode 100644 pdr_backend/predictoor/predictoor_logger.py delete mode 100644 pdr_backend/predictoor/stakes_per_slot.py delete mode 100644 pdr_backend/predictoor/util.py delete mode 100644 pdr_backend/publisher/README.md delete mode 100644 pdr_backend/publisher/publish_asset.py delete mode 100644 pdr_backend/publisher/publish_assets.py delete mode 100644 pdr_backend/sim/assets/styles.css delete mode 100644 pdr_backend/sim/dash_plots/__init__.py delete mode 100644 pdr_backend/sim/dash_plots/callbacks.py delete mode 100644 pdr_backend/sim/dash_plots/util.py delete mode 100644 pdr_backend/sim/dash_plots/view_elements.py delete mode 100644 pdr_backend/sim/multisim_engine.py delete mode 100644 pdr_backend/sim/sim_chain_predictions.py delete mode 100755 pdr_backend/sim/sim_dash.py delete mode 100644 pdr_backend/sim/sim_plotter.py delete mode 100644 pdr_backend/sim/test/test_dash_plots.py delete mode 100644 pdr_backend/sim/test/test_multisim_engine.py delete mode 100644 pdr_backend/sim/test/test_sim_chain_predictions.py delete mode 100644 pdr_backend/sim/test/test_sim_plotter.py delete mode 100644 pdr_backend/statutil/arima_dash.py delete mode 100644 pdr_backend/statutil/assets/styles.css delete mode 100644 pdr_backend/statutil/autocorrelation_plotdata.py delete mode 100644 pdr_backend/statutil/autocorrelation_plotter.py delete mode 100644 pdr_backend/statutil/boxcox.py delete mode 100644 pdr_backend/statutil/dash_plots/__init__.py delete mode 100644 pdr_backend/statutil/dash_plots/callbacks.py delete mode 100644 pdr_backend/statutil/dash_plots/tooltips_text.py delete mode 100644 pdr_backend/statutil/dash_plots/util.py delete mode 100644 pdr_backend/statutil/dash_plots/view_elements.py delete mode 100644 pdr_backend/statutil/dist_plotdata.py delete mode 100644 pdr_backend/statutil/dist_plotter.py delete mode 100644 pdr_backend/statutil/seasonal.py delete mode 100644 pdr_backend/statutil/seasonal_plotter.py delete mode 100644 pdr_backend/statutil/test/conftest.py delete mode 100644 pdr_backend/statutil/test/resources.py delete mode 100644 pdr_backend/statutil/test/test_autocorrelation.py delete mode 100644 pdr_backend/statutil/test/test_boxcox.py delete mode 100644 pdr_backend/statutil/test/test_dash_plots_utils.py delete mode 100644 pdr_backend/statutil/test/test_dist.py delete mode 100644 pdr_backend/subgraph/core_subgraph.py delete mode 100644 pdr_backend/subgraph/info725.py delete mode 100644 pdr_backend/subgraph/legacy/subgraph_slot.py delete mode 100644 pdr_backend/subgraph/subgraph_consume_so_far.py delete mode 100644 pdr_backend/subgraph/subgraph_dfbuyer.py delete mode 100644 pdr_backend/subgraph/subgraph_feed_contracts.py delete mode 100644 pdr_backend/subgraph/subgraph_payout.py delete mode 100644 pdr_backend/subgraph/subgraph_pending_payouts.py delete mode 100644 pdr_backend/subgraph/subgraph_pending_slots.py delete mode 100644 pdr_backend/subgraph/subgraph_predictions.py delete mode 100644 pdr_backend/subgraph/subgraph_slot.py delete mode 100644 pdr_backend/subgraph/subgraph_subscriptions.py delete mode 100644 pdr_backend/subgraph/subgraph_sync.py delete mode 100644 pdr_backend/subgraph/subgraph_trueval.py create mode 100644 pdr_backend/subgraph/test/test_subgraph_feed.py delete mode 100644 pdr_backend/technical_indicators/get_indicator.py delete mode 100644 pdr_backend/technical_indicators/indicators/macd.py delete mode 100644 pdr_backend/technical_indicators/indicators/rsi.py delete mode 100644 pdr_backend/technical_indicators/technical_indicator.py delete mode 100644 pdr_backend/technical_indicators/tests/conftest.py delete mode 100644 pdr_backend/technical_indicators/tests/test_get_indicator.py delete mode 100644 pdr_backend/technical_indicators/tests/test_macd.py delete mode 100644 pdr_backend/technical_indicators/tests/test_rsi.py delete mode 100644 pdr_backend/technical_indicators/tests/test_technical_indicator.py delete mode 100644 pdr_backend/tests/resources/binance_BTC-USDT_5m.parquet delete mode 100644 pdr_backend/tests/resources/binance_ETH-USDT_5m.parquet delete mode 100644 pdr_backend/tests/resources/ddo_v4_sample.json delete mode 100644 pdr_backend/trader/approach1/__init__.py delete mode 100644 pdr_backend/trader/approach1/test/conftest.py delete mode 100644 pdr_backend/trader/approach1/test/test_trader_agent1.py delete mode 100644 pdr_backend/trader/approach1/trader_agent1.py delete mode 100644 pdr_backend/trader/approach2/__init__.py delete mode 100644 pdr_backend/trader/approach2/portfolio.py delete mode 100644 pdr_backend/trader/approach2/test/conftest.py delete mode 100644 pdr_backend/trader/approach2/test/test_portfolio.py delete mode 100644 pdr_backend/trader/approach2/test/test_trader_agent2.py delete mode 100644 pdr_backend/trader/approach2/trader_agent2.py delete mode 100644 pdr_backend/trader/base_trader_agent.py delete mode 100644 pdr_backend/trader/test/conftest.py delete mode 100644 pdr_backend/trader/test/test_base_trader_agent.py delete mode 100644 pdr_backend/trader/test/trader_agent_runner.py delete mode 100644 pdr_backend/trueval/get_trueval.py delete mode 100644 pdr_backend/trueval/trueval_agent.py delete mode 100644 pdr_backend/util/constants_opf_addrs.py delete mode 100644 pdr_backend/util/contract.py delete mode 100644 pdr_backend/util/networkutil.py rename pdr_backend/{pdr_dashboard/pages => util/test}/__init__.py (100%) rename pdr_backend/util/{test_noganache => test}/test_cache.py (100%) rename pdr_backend/util/{test_noganache => test}/test_contract.py (100%) rename pdr_backend/util/{test_noganache => test}/test_csvs.py (100%) rename pdr_backend/util/{test_noganache => test}/test_currency_types.py (100%) rename pdr_backend/util/{test_noganache => test}/test_dictutil.py (100%) rename pdr_backend/util/{test_noganache => test}/test_env.py (100%) rename pdr_backend/util/{test_noganache => test}/test_listutil.py (100%) rename pdr_backend/util/{test_noganache => test}/test_mathutil.py (100%) rename pdr_backend/util/{test_noganache => test}/test_point.py (100%) rename pdr_backend/util/{test_noganache => test}/test_point_meta.py (100%) rename pdr_backend/util/{test_noganache => test}/test_strutil.py (100%) rename pdr_backend/util/{test_noganache => test}/test_time_types.py (100%) rename pdr_backend/util/{test_noganache => test}/test_util_constants.py (100%) delete mode 100644 pdr_backend/util/test_noganache/__init__.py delete mode 100644 pdr_backend/util/test_noganache/test_constants_get_opf_addrs.py delete mode 100644 pdr_backend/util/test_noganache/test_topup.py delete mode 100644 pdr_backend/util/topup.py delete mode 100644 pdr_backend/util/web3_accounts.py delete mode 100644 pdr_backend/util/web3_config.py diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8fd80ac3e..383292f04 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,8 +1,3 @@ -## -## Copyright 2024 Ocean Protocol Foundation -## SPDX-License-Identifier: Apache-2.0 -## - # To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. # Please see the documentation for all configuration options: diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml index a5f1acd50..ff020426e 100644 --- a/.github/workflows/black.yml +++ b/.github/workflows/black.yml @@ -1,7 +1,3 @@ -## -## Copyright 2024 Ocean Protocol Foundation -## SPDX-License-Identifier: Apache-2.0 -## name: Black on: diff --git a/.github/workflows/check_mainnet.yml b/.github/workflows/check_mainnet.yml index f704bd534..6115473d6 100644 --- a/.github/workflows/check_mainnet.yml +++ b/.github/workflows/check_mainnet.yml @@ -1,7 +1,3 @@ -## -## Copyright 2024 Ocean Protocol Foundation -## SPDX-License-Identifier: Apache-2.0 -## name: Run Mainnet Check and Notify Slack on: diff --git a/.github/workflows/check_testnet.yml b/.github/workflows/check_testnet.yml index 71649c9da..1016b22b9 100644 --- a/.github/workflows/check_testnet.yml +++ b/.github/workflows/check_testnet.yml @@ -1,7 +1,3 @@ -## -## Copyright 2024 Ocean Protocol Foundation -## SPDX-License-Identifier: Apache-2.0 -## name: Run Script and Notify Slack on: diff --git a/.github/workflows/cron_topup.yml b/.github/workflows/cron_topup.yml index 06e58d81f..2c7d434d3 100644 --- a/.github/workflows/cron_topup.yml +++ b/.github/workflows/cron_topup.yml @@ -1,7 +1,3 @@ -## -## Copyright 2024 Ocean Protocol Foundation -## SPDX-License-Identifier: Apache-2.0 -## name: Topup accounts on: diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml index 08e4d486f..f0fb30092 100644 --- a/.github/workflows/mypy.yml +++ b/.github/workflows/mypy.yml @@ -1,7 +1,3 @@ -## -## Copyright 2024 Ocean Protocol Foundation -## SPDX-License-Identifier: Apache-2.0 -## name: MyPy Static Typechecking on: diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index d94c982ec..3f0875dde 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -1,7 +1,3 @@ -## -## Copyright 2024 Ocean Protocol Foundation -## SPDX-License-Identifier: Apache-2.0 -## name: Pylint Style Tests on: diff --git a/README.md b/README.md index f1cb6d078..714d49671 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ ## Run bots (agents) -- **[Run predictoor bot](READMEs/predictoor.md)** - make predictions, make $ - **[Run trader bot](READMEs/trader.md)** - consume predictions, trade, make $ (If you're a predictoor or trader, you can safely ignore the rest of this README.) @@ -36,34 +35,20 @@ pdr This will output something like: ```text -Usage: pdr sim|predictoor|trader|.. +Usage: pdr sim|trader|.. Main tools: pdr sim YAML_FILE - pdr predictoor YAML_FILE NETWORK - pdr trader APPROACH YAML_FILE NETWORK + pdr trader APPROACH YAML_FILE livemock|livereal (FIXME) ... ``` -## Atomic READMEs - -- [Get tokens](READMEs/get-tokens.md): [testnet faucet](READMEs/testnet-faucet.md), [mainnet ROSE](READMEs/get-rose-on-sapphire.md) & [OCEAN](READMEs/get-ocean-on-sapphire.md) -- [Claim payout for predictoor bot](READMEs/payout.md) -- [Predictoor subgraph](READMEs/subgraph.md). [Subgraph filters](READMEs/filters.md) -- [Run barge locally](READMEs/barge.md) - ## Flows for core team - Backend-dev - for `pdr-backend` itself - [Local dev flow](READMEs/dev.md) - [VPS dev flow](READMEs/vps.md) - - [Release process](READMEs/release-process.md) - - [Clean code guidelines](READMEs/clean-code.md) - [Dependency management](READMEs/dependencies.md) -- [Run dfbuyer bot](READMEs/dfbuyer.md) - runs Predictoor DF rewards -- [Run publisher](READMEs/publisher.md) - publish new feeds -- [Run trueval](READMEs/trueval.md) - run trueval bot -- [Run lake](READMEs/lake-and-etl.md) - run data lake ## Repo structure @@ -71,17 +56,8 @@ This repo implements all bots in Predictoor ecosystem. Here are each of the sub- Main bots & user tools: -- `predictoor` - submit individual predictions - `trader` - buy aggregated predictions, then trade - `sim` - experiments / simulation flow -- `payout` - OCEAN & ROSE payout - -OPF-run bots & higher-level tools: - -- `trueval` - report true values to contract -- `dfbuyer` - buy feeds on behalf of Predictoor DF -- `publisher` - publish pdr data feeds -- `deployer` - deployer tool Mid-level building blocks: @@ -93,11 +69,7 @@ Data-level building blocks: - `ohlcv` - financial data pipeline - `aimodel` - AI/ML modeling engine - `lake` - data lake and analytics tools -- `subgraph` - blockchain queries, complements lake -- `accuracy` - to report % correct in webapp -- `pred_submitter` - for predictoor bots to submit >>1 predictions in 1 tx Lower-level utilities: -- `contract` - classes to wrap blockchain contracts; some simple data structures - `util` - function-based tools diff --git a/READMEs/agent-deployer.md b/READMEs/agent-deployer.md deleted file mode 100644 index 4d68ca27d..000000000 --- a/READMEs/agent-deployer.md +++ /dev/null @@ -1,182 +0,0 @@ - -# Agent Deployment Tool - -`deployer` is a streamlined command-line utility designed for efficiently generating and managing Predictoor agent deployments. - -## Usage - -### Agent Configurations - -Firstly, you need to set up your agents configuration. This is done by creating a config entry under `deployment_configs` in `ppss.yaml` file. - -Here is an example structure for your reference: - -```yaml -deployment_configs: - testnet_predictoor_deployment: - cpu: "1" - memory: "512Mi" - source: "binance" - type: "predictoor" - approach: 3 - network: "sapphire-testnet" - s_until_epoch_end: 20 - pdr_backend_image_source: "oceanprotocol/pdr-backend:latest" - agents: - - pair: "BTC/USDT" - stake_amt: 15 - timeframe: 5m - approach: 1 - - pair: "ETH/USDT" - stake_amt: 20 - timeframe: 1h - s_until_epoch_end: 60 -``` - -_Tip: Specific agent settings (like source, timeframe) will override general settings if provided._ - -### Private Keys - -Create a `.keys.json` file and format it as follows: - -```json -{ - "config_name": ["pk1", "pk2"...] -} -``` - -_Note: If you have fewer private keys than number of agents, the tool will create new wallets and update the .keys.json file._ - -### Generate Templates - -The `generate` command is used to create deployment template files based on a configuration file. - -```console -pdr deployer generate -``` - -- ``: Path to the yaml config file. -- ``: Name of the config. -- ``: Method of deployment (choices: "k8s"). -- ``: Output directory for the generated files. - -Take a note of the `config_name`, you will need it later! - -### Deploy Config - -The `deploy` command is used to deploy agents based on a specified config name. - -```console -pdr deployer deploy [-p PROVIDER] [-r REGION] [--project_id PROJECT_ID] [--resource_group RESOURCE_GROUP] [--subscription_id SUBSCRIPTION_ID] -``` - -- ``: Name of the config. -- -p, --provider: Cloud provider (optional, choices: "aws", "azure", "gcp"). (optional) -- -r, --region: Deployment zone/region (optional). -- --project_id: Google Cloud project id (optional). -- --resource_group: Azure resource group (optional). -- --subscription_id: Azure subscription id (optional). - -### Destroy Config - -The `destroy` command is used to destroy agents deployed based on a specified configuration. - -```console -pdr deployer destroy [-p PROVIDER] -``` - -- ``: Name of the config. -- -p, --provider: Cloud provider (optional, choices: "aws", "azure", "gcp"). (optional) - -### Logs - -The `logs` command is used to retrieve logs from deployed agents. - -```console -pdr deployer logs [-p PROVIDER] -``` - -- ``: Name of the config. -- -p, --provider: Cloud provider (optional, choices: "aws", "azure", "gcp"). (optional) - -### Remote Container Registry - -The `registry` command is used to manage remote registries for agent deployment. - -```console -pdr deployer registry [-p PROVIDER] [-r REGION] [--project_id PROJECT_ID] [--resource_group RESOURCE_GROUP] -``` - -- ``: Action (choices: "deploy", "destroy", "auth", "url"). -- ``: Registry name. -- -p, --provider: Cloud provider (optional, choices: "aws", "azure", "gcp"). -- -r, --region: Deployment zone/region (optional). -- --project_id: Google Cloud project id (optional). -- --resource_group: Azure resource group (optional). - -### Build - -The build command is used to build a container image. - -```console -pdr deployer build -``` - -- ``: Image name (default: "pdr_backend"). -- ``: Image tag (default: "deployer"). - -#### Push - -The `push` command is used to push container images to a remote registry. - -```console -pdr deployer push [] [] -``` - -- ``: Registry name. -- ``: Image name (default: "pdr_backend"). -- ``: Image tag (default: "deployer"). - -## Examples - -### K8S with GCP - -Outputs are truncated for brevity. - -```shell -$ pdr deployer generate ppss.yaml predictoors_cluster k8s ./predictoors_approach3 -Generated k8s templates for predictoors_cluster - Output path: ./predictoor_approach3 - Config name: predictoors_cluster - Deployment method: k8s - Number of agents: 2 -To deploy: pdr deployer deploy predictoors_cluster -``` - -```shell -$ pdr deployer deploy predictoors_cluster -p gcp -r europe-west2 --project_id id_goes_here -Deploying predictoors_cluster... -Authenticating to Kubernetes cluster... -Fetching cluster endpoint and auth data. -kubeconfig entry generated for predictoors_cluster. -Cluster is ready, deploying the agents... -namespace/predictoors_cluster created -deployment.apps/pdr-predictoor1-3-btc-usdt-5m-binance created -deployment.apps/pdr-predictoor2-3-eth-usdt-5m-binance created -``` - -```shell -$ pdr deployer logs predictoors_cluster -Getting logs for predictoors_cluster... -Getting cluster logs... -NAME READY STATUS RESTARTS AGE -pdr-predictoor1-3-btc-usdt-5m-binance-1294c5aa3-fjc65 1/1 Running 0 91s -pdr-predictoor2-3-eth-usdt-5m-binance-21dfcf3bc4-b6nnk 1/1 Running 0 91s --> Submit predict tx result: success. -==================================================================================================================================================================================== -cur_epoch=5688716, cur_block_number=4658908, cur_timestamp=1706615099, next_slot=1706615100, target_slot=1706615400. 295 s left in epoch (predict if <= 30 s left). s_per_epoch=300 -... -``` diff --git a/READMEs/barge-calls.md b/READMEs/barge-calls.md deleted file mode 100644 index 02faf6ae0..000000000 --- a/READMEs/barge-calls.md +++ /dev/null @@ -1,43 +0,0 @@ - -# Barge flow of calls - -From getting barge going, here's how it calls specific pdr-backend components and passes arguments. - -- user calls `/barge/start_ocean.sh` to get barge going - - then, `start_ocean.sh` fills `COMPOSE_FILES` incrementally. Eg `COMPOSE_FILES+=" -f ${COMPOSE_DIR}/pdr-publisher.yml"` - - `barge/compose-files/pdr-publisher.yml` sets: - - `pdr-publisher: image: oceanprotocol/pdr-backend:${PDR_BACKEND_VERSION:-latest}` - - `pdr-publisher: command: publisher` - - `pdr-publisher: networks: backend: ipv4_address: 172.15.0.43` - - `pdr-publisher: environment:` - - `RPC_URL: ${NETWORK_RPC_URL}` (= `http://localhost:8545` via `start_ocean.sh`) - - `ADDRESS_FILE: /root/.ocean/ocean-contracts/artifacts/address.json` - - (many `PRIVATE_KEY_*`) - - then, `start_ocean.sh` pulls the `$COMPOSE_FILES` as needed: - - `[ ${FORCEPULL} = "true" ] && eval docker-compose "$DOCKER_COMPOSE_EXTRA_OPTS" --project-name=$PROJECT_NAME "$COMPOSE_FILES" pull` - - then, `start_ocean.sh` runs docker-compose including all `$COMPOSE_FILES`: - - `eval docker-compose "$DOCKER_COMPOSE_EXTRA_OPTS" --project-name=$PROJECT_NAME "$COMPOSE_FILES" up --remove-orphans` - - it executes each of the `"command"` entries in compose files. - - (Eg for pdr-publisher.yml, `"command" = "publisher ppss.yaml development"`) - - Which then goes to `pdr-backend/entrypoint.sh` via `"python /app/pdr_backend/pdr $@"` - - (where `@` is unpacked as eg `publisher ppss.yaml development`) [Ref](https://superuser.com/questions/1586997/what-does-symbol-mean-in-the-context-of#:). - - Then it goes through the usual CLI at `pdr-backend/pdr_backend/util/cli_module.py` - -## How to make changes to calls - -If you made a change to pdr-backend CLI interface, then barge must call using the updated CLI command. - -How: - -- change the relevant compose file's `"command"`. Eg change `barge/compose-files/pdr-publisher.yml`'s "command" value to `publisher ppss.yaml development` -- also, change envvar setup as needed. Eg in compose file, remove `RPC_URL` and `ADDRESS_FILE` entry. -- ultimately, ask: "does Docker have everything it needs to succesfully run the component?" - -### All Barge READMEs - -- [barge.md](barge.md): the main Barge README -- [barge-calls.md](barge-calls.md): order of execution from Barge and pdr-backend code -- [release-process.md](release-process.md): pdr-backend Dockerhub images get published with each push to `main`, and sometimes other branches. In turn these are used by Barge. diff --git a/READMEs/barge.md b/READMEs/barge.md deleted file mode 100644 index eccab900f..000000000 --- a/READMEs/barge.md +++ /dev/null @@ -1,109 +0,0 @@ - - -# Barge - -Barge is a Docker container to run a local Ganache network having Predictoor contracts and (optionally) local bots. This README describes how to install Barge, and provides reference on running it with various agents. - -⚠️ If you're on MacOS or Windows, we recommend using a remotely-run Barge. See [vps flow](vps.md). - -## Contents - -Main: - -- [Install Barge](#install-barge) - -Reference: how to run barge with... - -- [No agents](#barge-basic) - just ganache network & Predictoor contracts -- [One agent](#barge-one-agent) - eg trueval bot -- [All agents](#barge-all-agents) - predictoor, trader, trueval, dfbuyer bots - -Finally: - -- [Change Barge Itself](#change-barge-itself) - -## Install Barge - -**First, ensure pre-requisites:** [Docker](https://docs.docker.com/engine/install/), [Docker Compose](https://docs.docker.com/compose/install/), [allowing non-root users](https://www.thegeekdiary.com/run-docker-as-a-non-root-user/) - -**Then, install barge.** Open a new console and... - -```console -# Grab repo -git clone https://github.com/oceanprotocol/barge -cd barge - -# Clean up previous Ocean-related dirs & containers (optional but recommended) -rm -rf ~/.ocean -./cleanup.sh -docker system prune -a --volumes -``` - -**Then, get Docker running.** To run barge, you need the Docker engine running. Here's how: - -- If you're on Linux: you're good, there's nothing extra to do - -Congrats! Barge is installed and ready to be run. - -The sections below describe different ways to run barge. They're for reference only; DO NOT run them right now. Each README will describe what to do. - -## Barge Basic - -Barge with basic Predictoor components is: - -- local chain (ganache) -- predictoor-related smart contracts deployed to chain - -To run this, go to the barge console and: - -```console -./start_ocean.sh --no-provider --no-dashboard --predictoor --with-thegraph -``` - -When barge runs, it will auto-publish DT3 tokens. Currently this is {`BTC/USDT`, Binance, 5min}, {`ETH/USDT`, Kraken, 5min} and {`XRP/USDT`, Binance, 5min}. - -## Barge One Agent - -Barge can run with any subset of the agents. - -For example, to run barge with just trueval agent: - -```console -./start_ocean.sh --no-provider --no-dashboard --predictoor --with-thegraph --with-pdr-trueval -``` - -## Barge All Agents - -To run with all agents: - -```console -./start_ocean.sh --no-provider --no-dashboard --predictoor --with-thegraph --with-pdr-trueval --with-pdr-trader --with-pdr-predictoor --with-pdr-publisher --with-pdr-dfbuyer -``` - -This will run all of the following at once: - -- local chain (ganache) -- predictoor-related smart contracts deployed to chain -- trueval agent -- trader agent -- predictoor agent -- dfbuyer agent - -## Change Barge Itself - -Some subcomponents of Barge are those from pdr-backend. If you change those components, then the new behavior becomes part of Barge upon the next Github Release of pdr-backend. See [release-process.md](release-process.md) Docker / Barge section for details. - -For each other subcomponent of Barge, you need to change its respective repo similarly. - -And for Barge core functionality, make changes to the [barge repo](https://github.com/oceanprotocol/barge) itself. - -More info: [Barge flow of calls](barge-calls.md) - -## All Barge READMEs - -- [barge.md](barge.md): the main Barge README -- [barge-calls.md](barge-calls.md): order of execution from Barge and pdr-backend code -- [release-process.md](release-process.md): pdr-backend Dockerhub images get published with each push to `main`, and sometimes other branches. In turn these are used by Barge. diff --git a/READMEs/clean-code.md b/READMEs/clean-code.md deleted file mode 100644 index a8902450e..000000000 --- a/READMEs/clean-code.md +++ /dev/null @@ -1,104 +0,0 @@ - - -# Clean Code ✨ Guidelines - -Guidelines for core devs to have clean code. - -Main policy on PRs: - -> ✨ **To merge a PR, it must be clean.** ✨ (Rather than: "merge the PR, then clean up") - -Clean code enables us to proceed with maximum velocity. - -## Summary - -Clean code means: - -- No DRY violations -- Great labels -- Dynamic type-checking -- Tik-tok, refactor-add -- No "TODOs" -- Passes smell test -- Have tests always. TDD -- Tests are fast -- Tests are clean too - -This ensures minimal tech debt, so we can proceed at maximum velocity. Senior engineers get to spend their time contributing to features, rather than cleaning up. - -Everyone can "up their game" by being diligent about this until it becomes second nature; and by reading books on it. - -The following sections elaborate: - -- [What does clean code look like?](#what-does-clean-code-look-like) -- [Benefits of clean code](#benefits-of-clean-code) -- [Reading list](#reading-list) - -## What does clean code look like? - -**No DRY violations.** This alone avoids many complexity issues. - -**Great labels.** This makes a huge difference to complexity and DX too. - -- Rule of thumb: be as specific as possible, while keeping character count sane. Eg "ohlcv_data_factory" vs "parquet_data_factory". -- In functions of 2-5 lines you can get away with super-short labels like "c" as long as it's local, and the context makes it obvious. -- Generally: "how easily can a developer understand the code?" Think of yourself that's writing for readers, where the reader is developers (including yourself). - -**Dynamic type-checking**, via @enforce_typing + type hints on variables. - -- Given that bugs often show up as type violations, think of dynamic type-checking as a robot that automatically hunts down those bugs on your behalf. Doing dynamic type-checking will save you a ton of time. -- Small exception: in 2% of cases it's overkill, eg if your type is complex or if you're fighting with mock or mypy; then skip it there. - -**Tik-tok, refactor-add.** That is: for many features, it's best to spend 90% of the effort to refactor first (and merge that PR). Then the actual change for the feature itself is near-trivial, eg 10% of the effort. - -- It's "tik tok", where "tik" = refactor (unit tests typically don't change), and "tok" = make change. -- Inspiration: this is Intel's approach to CPU development, where "tik" = change manufacturing process, "tok" = change CPU design. - -**No "TODOs".** If you have a "TODO" that makes sense for the PR, put it in the PR. Otherwise, create a separate issue. - -**Does it pass the smell test?** If you feel like your code smells, you have work to do. - -**Have tests always. Use TDD.** - -- Coverage should be >90%. -- You should be using test-driven development (TDD), ie write the tests at the same time as the code itself in very rapid cycles of 30 s - 5 min. The outcome: module & test go together like a hand & glove. -- Anti-pattern outcome: tests are very awkward, having to jump through hoops to do tests. -- If you encounter this anti-pattern in your new code or see it in existing code, refactor to get to "hand & glove". - -**Tests run fast.** Know that if a test module publishes a feed on barge, it adds another 40 seconds to overall test runtime. So, mock aggressively. I recently did this for trader/, changing runtime from 4 min to 2 s (!). - -**Tests are clean too.** They're half the code after all! That is, for tests: no DRY violations; great labels; dynamic type-checking; no TODOs; passes "smell test" - -## Benefits of clean code - -_Aka "Why this policy?"_ - -- Helps **ensure minimal technical debt** -- Which in turn means we can **proceed at maximum velocity**. We can make changes, refactor, etc with impunity -- I was going to add the point "we're no longer under time pressure to ship features." However that should never be an excuse, because having tech debt slows us down from adding new features! Compromising quality _hurts_ speed, not helps it. Quality comes for free. -- From past experience, often "clean up later" meant "never" in practical terms. Eg sometimes it's put into a separate github issue, and that issue gets ignored. -- Senior engineers should not find themselves myself on a treadmill cleaning up after merged PRs. This is high opportunity cost of them not spending time on what they're best at (eg ML). -- What senior engineers _should_ do: use PR code reviews to show others how to clean up. And hopefully this is a learning opportunity for everyone over time too:) - -## Reading list - -To "up your game", here are great books on software engineering, in order to read them. - -- Code Complete 2, by Steve McConnell. Classic book on code construction, filled to the brim with practical tips. [Link](https://www.goodreads.com/book/show/4845.Code_Complete) -- Clean Code: A Handbook of Agile Software Craftsmanship, by Robert C. Martin. [Link](https://www.goodreads.com/book/show/3735293-clean-code) -- A Philosophy of Software Design, by John Osterhout. Best book on managing complexity. Empasizes DRY. If you've been in the coding trenches for a while, this feels like a breath of fresh air and helps you to up your game further. [Link](https://www.goodreads.com/book/show/39996759-a-philosophy-of-software-design). -- Refactoring: Improving the Design of Existing Code, by Martiwn Fowler. This book is a big "unlock" on how to apply refactoring everywhere like a ninja. [Link](https://www.goodreads.com/book/show/44936.Refactoring). -- Head First Design Patterns, by Eric Freeman et al. Every good SW engineer should have design patterns in their toolbox. This is a good first book on design patterns. [Link](https://www.goodreads.com/book/show/58128.Head_First_Design_Patterns) -- Design Patterns: Elements of Reusable Object-Oriented Software, by GOF. This is "the bible" on design patterns. It's only so-so on approachability, but nonetheless the content makes it worth it. But start with "Head First Design Patterns". [Link](https://www.goodreads.com/book/show/85009.Design_Patterns) -- The Pragmatic Programmer: From Journeyman to Master, by Andy Hunt and Dave Thomas. Some people really love this, I found it so-so. But definitely worth a read to round out your SW engineering. [Link](https://www.goodreads.com/book/show/4099.The_Pragmatic_Programmer) - -A final one. In general, _when you're coding, you're writing_. Therefore, books on crisp writing are also books about coding (!). The very top of this list is [Strunk & White Elements of Style](https://www.goodreads.com/book/show/33514.The_Elements_of_Style). It's sharper than a razor blade. - -## Recap - -Each PR should always be both "make it work" _and_ "make it good (clean)". ✨ - -It will pay off, quickly. diff --git a/READMEs/dependencies.md b/READMEs/dependencies.md index 2d7e9edc0..17b1d34ba 100644 --- a/READMEs/dependencies.md +++ b/READMEs/dependencies.md @@ -1,8 +1,3 @@ - - # Dependency Management This is a document for devs to understand how dependencies are managed in the `pdr-backend` project. @@ -15,9 +10,6 @@ It also serves users who want to understand any issues and caveats in the instal For more details, see the [the pytest-asyncio changelog](https://pytest-asyncio.readthedocs.io/en/latest/reference/changelog.html#id1), under Known Issues. The library itself recommends using version 0.21 until the issue is resolved. -- `web3` is frozen at version 6.20.2. This is because of external dependencies with Barge and transactions. We are currently working on a solution to upgrade to the latest version. -More details can be found [here](https://github.com/oceanprotocol/pdr-backend/issues/1592) in the issue. - ## For new dependencies: Types Management For type checking, we use mypy, which may require dependencies for type hints. @@ -60,11 +52,6 @@ These are due to the nature of the pytest tests and are not expected to be resol ### "Temporary" suppressions: check and remove -#### Warnings related to selenium/dash-testing -- `ignore:.*HTTPResponse.getheader\(\) is deprecated.*` -> due to usage of getheader in selenium - -If you upgrade selenium or dash[testing], you should check if these warnings are still present and remove the ignore statement in `pytest.ini` if they are not. - #### Warnings related to plotly - `ignore:.*setDaemon\(\) is deprecated, set the daemon attribute instead.*:DeprecationWarning` -> due to usage of `kaleido` and `plotly` diff --git a/READMEs/dev.md b/READMEs/dev.md index cc1e4bf94..eb7ff03c1 100644 --- a/READMEs/dev.md +++ b/READMEs/dev.md @@ -1,7 +1,3 @@ - # Usage for Backend Devs This is for core devs to improve pdr-backend repo itself. @@ -10,17 +6,6 @@ This is for core devs to improve pdr-backend repo itself. Follow directions to install pdr-backend in [predictoor.md](predictoor.md) -## Setup Barge - -**Local barge.** If you're on ubuntu, you can run barge locally. - -- First, [install barge](barge.md#install-barge). -- Then, run it. In barge console: `./start_ocean.sh --no-provider --no-dashboard --predictoor --with-thegraph` - -**Or, remote barge.** If you're on MacOS or Windows, run barge on VPS. - -- Follow the instructions in [vps.md](vps.md) - ### Setup dev environment Open a new "work" console and: @@ -33,8 +18,6 @@ source venv/bin/activate # Set PRIVATE_KEY export PRIVATE_KEY="0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58" -# Unit tests default to using "development" network -- a locally-run barge. -# If you need another network such as barge on VPS, then override the endpoints for the development network ``` All other settings are in [`ppss.yaml`](../ppss.yaml). Some of these are used in unit tests. Whereas most READMEs make a copy `my_ppss.yaml`, for development we typically want to operate directly on `ppss.yaml`. @@ -53,9 +36,6 @@ pytest pdr_backend/util/test_noganache/test_util_constants.py::test_util_constan # run all tests in a file pytest pdr_backend/util/test_noganache/test_util_constants.py -s -# run a single test that flexes network connection -pytest pdr_backend/util/test_ganache/test_contract.py::test_get_contract_filename -s - # run all regular tests; see details on pytest markers to select specific suites pytest ``` @@ -75,62 +55,23 @@ pylint --rcfile .pylintrc * pdr_backend/* mypy --config-file mypy.ini ./ ``` -### Local Usage: Check code coverage - -In work console: - -```console -coverage run --omit="*test*" -m pytest # Run all. For subset, add eg: pdr_backend/lake -coverage report # show results -``` - ### Local Usage: Run a custom agent Let's say you want to change the trader agent, and use off-the-shelf agents for everything else. Here's how. -In barge console: - -```console -# (Hit ctrl-c to stop existing barge) - -# Run all agents except trader -./start_ocean.sh --predictoor --with-thegraph --with-pdr-trueval --with-pdr-predictoor --with-pdr-publisher --with-pdr-dfbuyer -``` - -In work console: +In console: ```console #(ensure envvars set as above) # run trader agent, approach 1 pdr trader 1 ppss.yaml development -# or -pdr trader 1 ppss.yaml barge-pytest ``` -(You can track at finer resolution by writing more logs to the [code](../pdr_backend/predictoor/approach3/predictoor_agent3.py), or [querying Predictoor subgraph](subgraph.md).) - -## Remote Usage - -In the CLI, simply point to a different network: +(You can track at finer resolution by writing more logs to the code.) -```console -# run on testnet -pdr trader ppss.yaml sapphire-testnet - -# or, run on mainnet -pdr trader ppss.yaml sapphire-mainnet -``` ## Dependencies See [dependencies.md](dependencies.md) for more details. -## Run licenseheaders -Run this once a year to update the license headers. -Since this is not something we do everyday, do not include the dependency in setup.py. Instead, install it manually using pip: - -```console -pip install licenseheaders -licenseheaders -cy -t ./copyright_template.tmpl -x venv/**.py -``` diff --git a/READMEs/dfbuyer.md b/READMEs/dfbuyer.md deleted file mode 100644 index 8b98ee9a0..000000000 --- a/READMEs/dfbuyer.md +++ /dev/null @@ -1,58 +0,0 @@ - - -# Run a DFBuyer Bot - -This README describes how to run a dfbuyer bot. - -## Install pdr-backend - -Follow directions in [predictoor.md](predictoor.md) - -## Local Network - -First, [install barge](barge.md#install-barge). - -Then, run barge. In barge console: - -```console -#run barge with all bots (agents) except dfbuyer -./start_ocean.sh --no-provider --no-dashboard --predictoor --with-thegraph --with-pdr-trueval --with-pdr-predictoor --with-pdr-publisher --with-pdr-trader -``` - -Open a new console and: - -```console -# Setup virtualenv -cd pdr-backend -source venv/bin/activate - -# Set envvar -export PRIVATE_KEY="0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58" -``` - -Copy [`ppss.yaml`](../ppss.yaml) into your own file `my_ppss.yaml` and change parameters as you see fit. The section "dfbuyer_ss" has parameters for this bot. - -Then, run dfbuyer bot. In console: - -```console -pdr dfbuyer my_ppss.yaml development -``` - -The bot will consume "weekly_spending_limit" worth of assets each week. This amount is distributed equally among all DF eligible assets. (This parameter is set in the yaml file.) - -![flow](https://user-images.githubusercontent.com/25263018/269256707-566b9f5d-7e97-4549-b483-2a6700826769.png) - -## Remote Usage - -In the CLI, simply point to a different network: - -```console -# run on testnet -pdr dfbuyer my_ppss.yaml sapphire-testnet - -# or, run on mainnet -pdr dfbuyer my_ppss.yaml sapphire-mainnet -``` diff --git a/READMEs/diagrams/lake.html b/READMEs/diagrams/lake.html deleted file mode 100644 index 2d678a4b0..000000000 --- a/READMEs/diagrams/lake.html +++ /dev/null @@ -1,114 +0,0 @@ - - - ETL Architecture - - - - - - -
- erDiagram - SUBGRAPH_predictPredictions ||--o{ PDR_PREDICTIONS : yields - SUBGRAPH_predictPayouts ||--o{ PDR_PAYOUTS : yields - SUBGRAPH_predictTrueVals ||--o{ PDR_TRUEVALS : yields - SUBGRAPH_predictSlots ||--o{ PDR_SLOTS : yields - SUBGRAPH_predictSubscriptions ||--o{ PDR_SUBSCRIPTIONS : yields - PDR_PREDICTIONS ||--o{ BRONZE_PDR_PREDICTIONS : yields - PDR_PAYOUTS ||--o{ BRONZE_PDR_PREDICTIONS : yields - PDR_PREDICTIONS { - string ID - string contract - string pair - string timeframe - boolean predvalue - float stake - boolean truevalue - int timestamp - string source - float payout - int slot - string user - } - PDR_PAYOUTS { - string ID - string user - int timestamp - string token - int slot - float payout - boolean predvalue - boolean truevalue - float stake - } - PDR_TRUEVALS { - string ID - boolean truevalue - int timestamp - string token - int slot - float revenue - float roundSumStakesUp - float roundSumStakes - } - PDR_SLOTS { - string ID - int timestamp - int slot - boolean truevalue - float roundSumStakesUp - float roundSumStakes - } - PDR_SUBSCRIPTIONS { - string ID - string pair - string timeframe - string source - string tx_id - float last_price_value - int timestamp - string user - } - BRONZE_PDR_PREDICTIONS { - string ID - string slot_id - string contract - int slot - string user - string pair - string timeframe - string source - boolean predvalue - boolean truevalue - float stake - float revenue - float payout - int timestamp - int last_event_timestamp - } -
- - \ No newline at end of file diff --git a/READMEs/get-ocean-on-sapphire.md b/READMEs/get-ocean-on-sapphire.md deleted file mode 100644 index 35de92878..000000000 --- a/READMEs/get-ocean-on-sapphire.md +++ /dev/null @@ -1,75 +0,0 @@ - -# Get OCEAN on Sapphire Mainnet - -OCEAN has address [`0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520`](https://explorer.oasis.io/mainnet/sapphire/token/0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520) on Sapphire. - -There are two approaches to acquire it: - -1. Use an OCEAN-ROSE DEX on Sapphire -2. Bridge OCEAN from Eth mainnet - -(1) is much simpler. (2) isn't subject to slippage. We cover both below. - -## Approach 1: OCEAN-ROSE DEX on Sapphire - -How to use: - -1. Go to **[Illuminex OCEAN-ROSE pool](https://illuminex.xyz/swap?inputCurrency=0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520&inputChainId=23294&outputCurrency=0x8Bc2B030b299964eEfb5e1e0b36991352E56D2D3&outputChainId=23294)**. -2. Specify amount to send, and destination address -3. Click "Swap" - -Notes: - -- If you see a "Insufficient liquidity" warning, then click the settings gear and toggle "Use secure router = on". -- Be careful for slippage, always. (Though there _should_ be decent liquidity. [Pool info](https://illuminex.xyz/pools/0x841dd137A2B380DA4568f6745aEAc20EDa910313)) - -## Approach 2: Bridge OCEAN from Eth mainnet - -**This approach has three steps:** - -1. [Get OCEAN on Eth Mainnet](#get-ocean-on-eth-mainnet) -1. [Transfer OCEAN to Sapphire Mainnet via Celer](#transfer-ocean-to-sapphire-mainnet-via-celer) -1. [Verify Your Tokens on Sapphire Mainnet](#verify-your-tokens-on-sapphire-mainnet) - -## Get OCEAN on Eth Mainnet - -**First, create a Wallet.** For optimal support and the ability to transfer ROSE between paratimes, we recommend the Oasis Wallet extension for Chrome. To proceed, [follow instructions in its docs](https://docs.oasis.io/general/manage-tokens/oasis-wallets/browser-extension/#install-the-oasis-wallet-via-chrome-web-store). - -**Then, purchase OCEAN.** First, acquire OCEAN at an exchange like Binance, Coinbase, Gate.io, or KuCoin. Then, withdraw that OCEAN to your web3 wallet. - -⚠️ Sending to the wrong address or network will likely result in the loss of your tokens. To minimize risk: send a small test amount first, and double-check the receiving address and network. - -## Transfer OCEAN to Sapphire Mainnet via Celer - -**First, Navigate to Celer bridge.** [Here](https://cbridge.celer.network/1/23294/OCEAN). - -**Then, Connect Your Wallet.** Click on the "Connect Wallet" button. Follow the prompts to select and connect your web3 wallet. - -**Then, Configure Transfer Settings:** - -- Ensure the "From" field is set to "Ethereum Mainnet." -- Confirm "Oasis Sapphire" is selected as the destination on the "To" field. -- Input the amount of OCEAN you desire to transfer in the designated field. - -**Finally, Execute the Transfer:** - -- Click on the "Transfer" button. -- Review the transaction details. -- Confirm the transaction from your wallet. - -## Verify Your Tokens on Sapphire Mainnet - -Bridging requires several minutes to complete. Your OCEAN will be sent to the address you executed the transaction from. - -To verify: - -- See the tx on [Oasis Explorer](https://explorer.sapphire.oasis.io/address/0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520/transactions). -- Or, import the OCEAN token contract address `0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520` into your wallet. Set symbol = `OCEAN` and decimal precision = `18`. - -Congrats! You've successfully transferred OCEAN to Sapphire Mainnet. - -> [!WARNING] -> Disclaimer: This guide does not provide financial advice. Always conduct thorough research or consult a professional before making investment decisions. Make sure to verify URLs and ensure all information aligns with the current operations and networks of the related platforms as cryptocurrency ecosystems frequently update and evolve. Always ensure to use official and secure websites when conducting transactions. diff --git a/READMEs/get-rose-on-sapphire.md b/READMEs/get-rose-on-sapphire.md deleted file mode 100644 index 99aaf15d9..000000000 --- a/READMEs/get-rose-on-sapphire.md +++ /dev/null @@ -1,96 +0,0 @@ - -# Get ROSE on Sapphire Mainnet - -Steps: - -1. [Install Oasis wallet](#1-install-oasis-wallet) -2. [Purchase ROSE](#2-purchase-rose) -3. [Prepare Sapphire EVM account](#3-prepare-sapphire-evm-account) -4. [Transfer ROSE from Oasis Account to Sapphire](#4-transfer-rose-from-oasis-account-to-sapphire) - -Bonus: [Sapphire \* Metamask](#5-bonus-sapphire-evm-account-in-metamask) - -## 1. Install Oasis Wallet - -First, some background: - -- **ParaTimes.** "ParaTimes" are subnets in the Oasis chain ecosystem, all reporting to the same "consensus layer". Sapphire, Cipher, and Emerald are Oasis ParaTimes. Each ParaTime has its own independent state. So, ROSE held at the consensus layer is not the same as in Sapphire. But you can swap between them via "deposits" and "withdrawals" in the Oasis wallet. -- **Sapphire.** Each ParaTime has its own specialty. Sapphire's specialty is EVM-compatibility & confidentiality. So, it uses EVM accounts, versus Oasis-native accounts (starts with "0x" vs with "oasis"). -- **EVM accounts.** EVM = Ethereum Virtual Machine. EVM-compatible means that it runs Ethereum-style contracts. EVM accounts = Ethereum-style accounts, including an address that starts with "0x" and support for ERC20 tokens. - -The **Oasis wallet extension (for Chrome) is the best wallet to transfer ROSE among ParaTimes.** (Metamask is good for pure EVM work in Sapphire. We'll work with that later.) - -To install it, go to [Oasis Wallet extension docs](https://docs.oasis.io/general/manage-tokens/oasis-wallets/browser-extension/#install-the-oasis-wallet-via-chrome-web-store) and follow its instructions. - -## 2. Purchase ROSE - -First, acquire ROSE at an exchange like Binance, Coinbase, Gate.io, or KuCoin. For a full list, see [CoinGecko Oasis page](https://www.coingecko.com/en/coins/oasis-network) -> "Markets" section. - -Then, you'll be withdrawing ROSE to your web3 wallet. - -- If the exchange supports withdrawal directly to Oasis Sapphire Paratime: great, do that directly! Then you can skip step 3. -- It it doesn't support direct: first, send to Oasis Emerald Network. Then, follow step 3. - -⚠️ Sending to the wrong address or network will likely result in the loss of your tokens. To minimize risk: send a small test amount first, and double-check the receiving address and network. - -## 3. Prepare Sapphire EVM account - -First, make sure you have an EVM account ready for use in Sapphire: you have an EVM address, and you know its private key. - -Then, import it into the Oasis wallet extension: - -1. Click "Import" button -2. Select "Ethereum-compatible Private Key" -3. Enter account name - whatever you like; click ok -4. Now you will see your new account listed, in the "Ethereum-compatible Account" subsection - -Now, let's check your EVM wallet's ROSE balance, via the Oasis wallet extension. - -1. There's a circle on the top-right corner. Click it. Now it shows all your Oasis-native _and_ EVM-native accounts. -2. Select your EVM account by clicking on it. Now it has a green check next to it. -3. On the app's very top-left (you may need to scroll), click the left-pointing arrow. Now it shows your EVM account's summary. -4. Click "ParaTimes". Now it shows ROSE balance in each ParaTime for each. Note that your Sapphire account has 0.0 ROSE. - -## 4. Transfer ROSE from Oasis Account to Sapphire - -Here, we use the Oasis wallet extension to transfer ROSE from your Oasis-native account to your EVM Sapphire account. - -1. Go to the "ParaTimes" section -2. In the "Sapphire" box, click on "To ParaTime" -3. In the "Amount" field, specify the # ROSE; in the "To" field, enter your EVM account address (0x...). -4. Click "Next". Click to confirm. -5. The wallet will show an animation; then it will say "submitted"; then it will say "Successful" and share tx details. - -To verify that the tx went through: - -- Verify "withdraw" side: in Oasis wallet, in the Oasis account you sent from, in its tx history, click on the most recent tx. Copy the the txHash value. Finally, go to [oasisscan.com](https://www.oasisscan.com/) and paste in the txHash value. -- But note that its "to" address is an oasis address, _not_ your EVM address. This address is the middleman bridge from your Oasis-native sending account to your EVM-native receiving account. So we still need to verify the "deposit" side, in the EVM account. -- Verify "deposit" side: via the Oasis wallet extension, check your EVM wallet's balance as described above). The balance should have increased by the amount of ROSE that you sent. - -The official Oasis guide has details: [How to Transfer ROSE into a ParaTime](https://docs.oasis.io/general/manage-tokens/how-to-transfer-rose-into-paratime) - -## 5. Bonus: Sapphire EVM Account in Metamask - -Metamask supports Sapphire EVM. Here's how to use it. - -To add Sapphire network: - -1. Go to `https://docs.oasis.io/dapp/sapphire/`. -2. In that page click "click here to register Sapphire Mainnet on Metamask". -3. Confirm the prompts to switch to Sapphire network - -To add your Sapphire EVM account: - -1. In Metamask, in top middle "account" subsection, click the dropdown -2. Click "Add account or hardware wallet". Follow the prompt. - -To see your ROSE balance: - -1. In Metamask, click "Tokens" -2. Observe the ROSE balance. - -> [!WARNING] -> Disclaimer: This guide does not provide financial advice. Always conduct thorough research or consult a professional before making investment decisions. Make sure to verify URLs and ensure all information aligns with the current operations and networks of the related platforms as cryptocurrency ecosystems frequently update and evolve. Always ensure to use official and secure websites when conducting transactions. diff --git a/READMEs/get-tokens.md b/READMEs/get-tokens.md deleted file mode 100644 index d1bd07171..000000000 --- a/READMEs/get-tokens.md +++ /dev/null @@ -1,12 +0,0 @@ - -# Get Tokens - -Sapphire accounts and wallets follow EVM standard. - -Your wallet account on Sapphire needs both ROSE (for gas) and OCEAN (for using Predictoor). - -- On Sapphire testnet, get (fake) [ROSE & OCEAN via the faucet guide](./testnet-faucet.md). -- On Sapphire mainnet, get [ROSE via this guide](get-rose-on-sapphire.md) and [OCEAN via this guide](get-ocean-on-sapphire.md). diff --git a/READMEs/images/dockerbranch.png b/READMEs/images/dockerbranch.png deleted file mode 100644 index bd695e748f541c6d6738f77920a592de51544021..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61524 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�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 diff --git a/READMEs/images/dockerbuild.png b/READMEs/images/dockerbuild.png deleted file mode 100644 index 800ce74087ec591bfb8fba24dd8bd1273a2cb571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54499 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ͧ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℞pU>~T)l(zb|Dcdl-VcX{Vbyjr=>j+fQ5&gY&q4k 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 diff --git a/READMEs/images/etl_checkpoints.png b/READMEs/images/etl_checkpoints.png deleted file mode 100644 index b63c0155d768f7a55ac496c7c757c7f67b9ca327..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56987 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 M#r=52(Q~){H+Pz^RsaA1 diff --git a/READMEs/images/etl_swap_from_temp_to_prod_atomic.png b/READMEs/images/etl_swap_from_temp_to_prod_atomic.png deleted file mode 100644 index 9628b8289f722e5a931b993c446b23306fdd9135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24865 zcmdSBXIN9)_bv*^Mo|z1MG&M&M|zbG79domh;)@u0)$?qgKT9ZJ)yUt^sW#>2N9)( zA|PNAnqr86p%Y3VIg9=K|IazkbHCg#=REg*$VxJktTor1W4vR`@xC(&4^8!%FW$IF zLqo$1GPrL}Lqi7w9)%YefEE>*Q)b|a(bvExfQIH0``Lq*Ca-`KXrv7=*S||sKgP2P zyrFl~HPNM^`H*_)|G*3~W`?{7dXo>TqaLc2p#Upsig7N1;W;;*a4<7R!kbi!A z=3je?&d1P@g27KcG3RRa8b#=ye1}oDdvx zgYV&3hzR26z>g4lGc7BvZ{%x_EMcL%QG{PZ8jHu2A_o0?$wDBQ);7xx5KJhtpC33@ zeft0T@n@nQyJpl$Ybcd+x=odF>YlT2^Dn~$vhZo0{G!g*J9tXlw|+H%l}4T2zFMJn zba&{%#{4#wPvgbcxt{1AOkiB^5}c|Xd5mle-E|cN!H(tN-=-*(sNMZpCzbH<@DeKA zK|;Y8UZ5J_x@W;)7wO^vKFxRr%a(CUiCXLkX$ak28U2QLQ!TQ^1b=zAInfx{#g`v8 z)^ke2t*lMglnlTr8+in^dkD|&p~)ZGXK;>Yz3_rf39-kU)?3L`YhGm&HxaXUa` z<2HFDxP7iY$aAF;-x@r0YjZ;0BwV{y+Qv1@^I7Kb_`OBE>rt-$QEu*Evr6l}QeH5= z=o3Fn)U$_{UA&L|ZhGGs>y;IB)I8tml)n@Dbwd`8q@Tiy6{?4L?{$!7d7~MHrz~)$ zGY(3Wi=La&7Q?|XWuj)a3!^!2^+T4+m-R3y&>iy}@h4>uDp(-Qd5jwe<1fA3uJG zaSwHWuRwiI7g>XYY(K+A%~Ggr1>ou2(ma=&%cylSuat#6=%oI~4bCXq)T|#39+Xdx z6%QIR?JLkDrW@uWkQXJI-3*=xYNsQ)9(xU(=6~5^mMnYc&xuCCUfWPef4PgGl6pK% z8j2OeA#ZTsKaetTC8FF8I3tKJ3AOGY19CQa52G< zS0m)M@e$iUzdRbwUu^MNtXKZqRn^hx%}IYUcS+EpfRy9H7N~I7-VuQ^sTM4U24uRb zvLyc0^E*A>pIC16iwccuvniFd9L;=Di1#mgl7bh_R2pbW39#GH9{9|%8ASeGUe_{6 z{?sNtjzb1~)VlC|cvoY+8?A?RXyq8Dc@yv{%EQHZu~YBqqdw1OdH>NpO^)hnB`-Ky8yJ^Aj1lU=wxZgPBg>Rvpy zzrM=f%7PRHzCUIFS#S!OX!jQgVwp0WS|Ng8 zz3)AYO8=U5tHIBnD8uEL+IZ8H?E0uagfLcUhEhGb6kZ>2J#wK$K1S@osVKf)rZ%rz z*PLXtaA!E6_xKN7<~XCOQx`SvGiFscuTT22xpU{caK)ehcq$UP#GHWz#5}53e*ySr(W*KYKSc$);!) zO+cgWHWN!n@NNwef|LnrGv! zE(|!`DkC|WLmBIjDc5Y*c6l?M!jz6~t>-iTW*5p-N#4oJ36}OZ*?l$Ff7CF)h4y@A z+xH{X_!5lmTVUa0XAeHeG0N2g(O2)hb`fUYj}1kmhSwXJs%sTv4hO;d$GZcT=-tI&QtxvGQ(tItC4Ze(LA>;)!Ld-s)JO>=sJ)Aar zW_VxiA`TigtYsWKIZwS?!V|1QYFx>E+=dFB5GyAimR4*Q%1(I9Y`AcF{Zp`N$YArg zg~vB0Dx{1;rQGHlJCXTZQRl7EkNe19R1MA%k#9lVnYP>rua3Fs`e{Wvne*k6PHq>= zIT@TwBB$Kj>omr&N1MmSjia?w2MWEaOE(6a9Z>1RTQs}XqXzGP2U*`!H}Yj_4uJay zcDX4vkB5btWZ{0=j{9=sWWUU`tC~)-Z3(P3dJ3Ai;9sZZhuU>(%*@}BbvmpO)7PUu zn9aUCOY39^0b@cW`NuqG|5^2d(^Rb|HocY$63Jv&wZ=#7zL;N@^Q&iE5Mzms0n=}4 zl?>1NYSgL|+Xq9J3(P!yM;akIBh0DzwpjM}Tlb2!H$%bsbKqRsnB9+~GR!563wN^o z?RhC*myX4JV0}z|+nxpLbS#b)UaHr{qwT_S@ewjRq0h-}2~CCF2*zQ(@iF@Pj0zr6 z$TbUnsoi$+k9fY678~-|$Z4rYOK5>M8+q`Fx&3W=y`vGr=_YppBA5YW^!1>xD{<$# zJ4G!IHP>D%|3oSkIvK?#H2P8og}qMcjFTpX@?mph{k7Mbj@tyvR9J@nrNSaj>=3nP zS?g<89`_Mm`uhtKMDqXejDIK$C0L9wr}3fsqFR6W-vi@@CV#1cP_GB(WZCJ3`B&QL zL6v_^fa|_nt6m#?$0j7~oAVcWTy^Pt&dY>dBd%=KD@TnD9bOfkyvLHMHrmnjpX}M~ z`524fnf}t_QD?ED^oM99q+Y!w*j)Dpc~xyDlpty6YS=kWez@*EI@nK~H8t0>bEVSL z%w0e`|7Z@*oRK_sL=>djW?EDg3csrznn`mpWcVjvU8UgxA>QcY7ga;qEPh6M?IDr0 zge9JpJi|<;bzl27NJ~w-xG0x+7GAC)n^3FymQ>4ev$-fh=e5wRZmz1$XNd-Nl!|yh z{8Vyh-loRisC)}KdY~c`CnO~lT^4Mj@{v@+|Y}MZX1YXVP zL0J2PX)0M`j_bzzMqIt}tAtlQ}!oAo%mz;K$(^u4<ve}Gv@1XAxkH&Dk@rb2oBp#@i9MreZ zEg5x7D&Pe;bF);%a2XlvZ_Sp}h@Bras~uZs0^*ieKKnO&HZr{^|I2+y=WWgT>xc%h z+OQ);TwMhNzJ(pglgN$G^R&_#it>-lR`Ep*v=#n+P=2a!d6fHmSN|M>dqI>muVkn= z3&mV&vUH_$d&J!cQy zHcafokpZauU8ju_>M7b z^IdNx zc!5TIV1}SM+(_L0Nb%Gi5UOE42Iqh z9yUvJyyWFy_e*cCsNAJN>0*d+UKV{p3pU(7<;yJ^zkP zkNmUuQ=rXA;_2=4mbIB=L(i)lTJoPlh&=DR>OH$}f@jKwSKBv49YWv?2~d^@%t92j zV`|JOJU?_XU^F<=DUkWFYL($+s*)Xg(csbKIhR5xXeD#udg+kayK2$oYz67BpnVUt zpKDS^P^O@~&f-FW!@k+1hRdiLWYZrud=NattL9>T_+T;HX522zsb9$^Wg=j5_Q~S% zih6vtT(`}Bv@Xp3w1-PhL! z7ND9F%c5ParpM*7sgPuGYZr^Kwz>`;+_$daqQ?5&Lyl0NY_5kRVVAQ)$7Vt!W&C;2 z8s~StJktY|$5l6*Oc#me*TK*u#la0VQAmSp0}6xj?GTlgZZw34`9ax+hsQxmIaxw= zdJM=vYcXkm+&d<;2J#=B*m!7 z)H<;xQ2*DZTvTir-v7;CuQ_tA{$0yX%eMbLf<{63uP*X1L(I42-M3}4pOupYgC=zy z!f&up5GZOIXLn*hr)pDPoRke* z7odHF`72XKkFF1TbgTFePanu+vi;!M3hAVD8+1JU9hApRRH<)K@Z3`2r9OR{`?9*hl_N~T0kNf3N1iD( z;+j_n6*HoLY}<#)Zt*l^=5o*A8w9-TE&Y%Rk1}GPT^jDmIrMk8&VRoMj@ilCk+--r z53-o=KVJxSMfnf+XG@WxZmxIq9Gw?c8BmLqb*X4f`Eh!r8G0*&fJe*poYd;;6I%ni z?=Xz%E}SEcwh@nO8oL_kTWb_o5B-b8ed-JSxl#%VxOKcnfMXMJ@1NXeUAK-1d!y#1 zoPYv}{(6^oRKDli!m6B#KRhb;oHAx3>MoX^@bDAVWMm$CVr2F}QG$Fv ze~;^i}Ebwax`*71?`bt;fsQ&FJz%tPgY+MW z<4m?8*K%$`8@Ce~*vP zPHZO$Tab5#&cFTqz;TRe?7SGC!7p@$r@RTWXK?4oa$5vH#`Ne*fy~Pt*M|(8?&lxl zyNCI!Zi=n6d8xBoW;rG0iZ$Lg$U~Z<)TIonGh1HopxoSi7U!~W3Qeap%;^t1bZ@rx znzcLb6lKyr^ZrB3MWauVJ}*^8@%wToHT&@O7LJF$_J3}VPmgh{pn{KfZ6HqS&Cozd z&urTYdWW?bnff+@FQ9%{r@@keA-z}-FXJ?RB!(Uj9Z@YF$#^zN5LG$Bx;>i|s>3rY z5lT*N3}Pmm3n99JDK#X`2S+%9N;Hr0v7}2bNSCdlrD2=2JwvyLbt}N1DHAVF%_Z1*R8a{&ktrPxnsa?#_F`k^GYfE^3*Ie>$PYlL4hXdx=OH zD@`J=Ih=t3eWC@4*5Lx3gQKKsC|JlJOD<`ThUqEclE{jitgF8=M9Y)GMG~X_g{5g7 z*x1oT;^ar(T-MC1WC=oFiCSr-sX_CuRwl7xcsFmr<&8Gn2ZgiG+*Bf0I#|Ge6}&(7 zhkZxchxbMe4?Qu`7ziG&Mp!adcwsnZjlb$uo2gf22(LGeCf!F6h7)R3XNfz%Y&Y^2 zMDe$sDw0jZ4jwN|#wK1Pwb#+uy;6El%x;B}Q<#LIOS$$|Facdqms6 ziscr)IeKfzN-RpoHxK#wYq(6CbuapB?eJzyKXeN-7DG4ZqF&<(fs<~^vpPo(dEGA5$<=>66m z1!F>=Rt@kvZSsy9h)4yrVGY)OBYiPjo*JFtxX?AF9Fw@1(t z+DweLlg>UitrXAYWxvy3;dlBzXAH=qBf*>Z>^c-p2^|YG5I^NPM;+;Y?8xxk!(-(; zNf9x>#T(rPe?&Z)e5l~^L$9D`sl}zS4}_^3u|pbnh7_nQ#22(AO*I;xymIKsa_u^* zqnl-(wFou6V>T6b39olgr2Z170HpH3`y+&DgtC*ZHEz~t^0HR{^#=nCqid^fCL&oZ zel_PcUW}cKb~wY!3Uen<{ufKNytC!lT(`C2EfKL_-(f*ZZCWa)p<0)kb&AKE`;Q6^ z$aOUZ8rEZQ)k_OzW6l`vY?=_;(DGy!)QAoQi#kmCF_+!zia6-{yr1crzTRI{m8bw$ ztk}z0y0qgyhgv_3=N>NY(dzisaKn5hoNwjU?P%9@MQxSFoy1&Xz?4`|j$8BZ>-wQ_ zzXhX(TjDZGOVLjoPXE##&-Sjqh0dpO>aO`r)_v?eanNN%)~vB=F}*7y6kVl9EI=N> z|L98n9uFWcOV_|!qmBxMKmOR&+xmKN`~y2~yeb~f^()g##AS1`eh2v|Yvlb{xB01K zR_eM!S6<^LxOJG|FWoqA^Q%b~y?>XXqVScA`l?ljmrH+TMp4Tj1q8k^>>6Av+U453 zr0(->LEPf)lb)<+w)azNx*AS&vu3d-7hN+YRO$~%1gl*+gFFjqlC84H{_0de(~y${ zsI4NZi2t^DxYo%@=I006iF1~db!t1-L=C>82uLZkx3jWnFh>FsZ*{r#NuLuwBDc|W zj4Rp&ze3*)#yGak2V1#d`pa&A7o0DW{_Yju*xZB6PF_Zb8dPf&wX$M~S@%qTU22mV zgL<#2iiXMZ_ zwdY-O9=#ARjl+AcR>2Ur`PzS#%-eagg_$VU73n&3S$N=Uh__vE%zCl-PNgj!#wxH*`IaDk54sVaU)z^T?w^IfCXfhB(dvl&|c%Nld%w5Ne zhyR)m8+uC$^*N}Y_hhF1h#DS$8195WHKXlCzFc=CbDDUGuM^ZOSv< zCh%nMhH@S?@XYR95VUZwd4Uiy8s?P~l8=s}isS~{CuRxKmSj19)J_h3DgQ|(*>6fr z)yhp-(O!B?s;hLkexu{>B6mw`sg5u(9J&l{P~);(-p*~6cXsj&<)pBj2DEk;*AkJf#yqr>1DeE^#{P8l+yY6N-KZ}2t3fT6^2Vuk4L=h(sg+69 zg$aSoUrj@Sr)vxVv-tmwqm!cfm%exw?IY@FzDj;qSC^}W#{Xmsdnm{2D*&-E`mWxw z3wuVO1$J)ltxm1P^F(oq)? zkQEEB2IpV2087Aq+Wlht`7W_#Q91v4baaoZnwpw4pYBcFAqiHVM!u-w-A}1PkdR!E zd4=a}{Y|&jh0f5a&KKM7+Whf`0lvPnVU(?{truMKqMfERen&g_<^3n5Pp>YO(5zP= zqSPFVh}#yo*gqeG|9R42-~GCA>zuqcVH`mP=Vv4kKQQ5h!l$&PAEGw9$=(^sYgn_n z?#PaS$d~28%85I^MIH?ghG(=wV5R%=@Y1T*1ojK8e`2cZxmCQA=xFG!(A|(XDZZGH zWLo`cW4=ShHfv1+rJI%x-LXH?82_M&dhoQDis2YHxfhd8WUKwa8>`=DQr&INob~ig zwaoB3RGm`NTF(vtno0{l8JAEq#~+S<#oi> zt?ZlkkBk2xQ*Z4~JGPu?qswd??~6!rDQq1BM<*R^yKHt^_iWY9ti zuf@gu^R(;_{y~fm>phkxf3nh^F(kc&0?4Hz1&|!@0Enc;F%{E|%vbIGU z!%Fe*OWF%VFG#C*h2~kpPjhB&B6MCUtMyeknxTvyi!y(Ne_5Lnfv^q3^l<#L zM&#;XjNANmbapb%2v53jLACsk3M|N|TpapA2(<1d0xBHV8=U)ymZ+Ho2vX<}*JNjd zv_2I2V*-?*O0v4mos2>^W==-~Hplfd-2J);m!}G;p!JF{ zpUF_0FWZJN4(BvLpJ4ecA2^m?jQc-(d?RxMq^28(P?_vkJq{8)lS51j zeQ<_Ln~Oc#Q7HoeYwca65o$i)KUHCtf9bk(Qq)ZB&Y6nh7>h?|=ij!jSFHIIg^9*3 zEI0-L;)XS~f(EzoA|*gxaq>rLAvI)kA*jd`Vv!4iAuU?D0{Wu1mU@3v=eEX+G;wpS zekDg69h)iH9YO0e?wI-{HkA|qBdhkXeGlMV`Qt^}0IL2b5OFOf{wq|su>#0raq`g) zT1KDn;iM-pFX!L0R*CA|eVG(~un~#+a|Q!8De}vf_hRm@y!QIWqJ8q!z9Sf#VMWVz z-I2OlfzS%&l{71Uz}3i7BseG__S}X}iI+V?Aoq5bK-wje9VL2_gptM>+h87dBxU5g zU=|av%V=TrqAZlh>=36YC-U)ngL;$0pZw)AdvOFZVMGXo6_1aPFX0aKW#4RP3}6?{ zskD;H9Mp5@eBpPMrZeg^EaPZMO=Dc^C_0O__d2Z}-Aj6ihHE4pyQ5$lZE8hkiKRDU z;3NZQW+TpSqnM&V9q)djgnvpjy)fSAhejTw6rP8J(SvCpB8MO3nrq2xW3KC7Ad8`kBss*+52QoiJLWQbE^~_C zMn80%VWc3I-_2j8wIp%Vn`LN1^Vz=EH6~{shpN?vMv*!pj#}iC=6I^h37N8~Qt?I? zR$8dLBwquf)vYQ_zV%RmQ;=Wa;gX2i^c7lABZxR+EdL<#0P~7JekTLBIehE>l^Q1R30tS_EHoCyk6b;Ce)5s zGfZ)~o0ans^A~1>(8wYdBE!xq>mPNuz`jG(p=WfQzVPo^fNZ;;ZF9Z~(wI7%> z+D7SEt{uyb{;sHEXR>mc(g=y-WYCaVTUlWei(R!H!l?7mHqq%GHafa8tLTdmH~g@X1*Q=FIY=YKpWc^Kki16oF7+HfbW%;SCI`76I?M~BmL zi${%#4D)(AUzmG5V?K9J@>X(qmBk()mjq+`Ypu*8Tb%4tbzXV;&qSKpMcHlF{*u2L&()xP*lFu~{a<9N{3!sxU!1|~s02>u92aH& z=enG@L2k>l7fxt*g5r92h16n&G3s94Xf~C6c<`!$!zaeX%7#vYPCy={ME?|mvwT;0 zwb%S*t42$r7hDKJ_?i=j{rweOa1725wyOKlqCC*ib9$H`eD`{kay{jz99uCG$3LAB zdpVW`H*ySFyy`<)S?+dfb-l z#EM}4)MZ2Y1WD#kp2Ido#vAem&l!yAF}X{!fcKfWCAk5+4V8e;+pPt!|Bgu_2J05A;jX#DgjVB>A5HT1#WP)m z`dr|+@Y>K){fedV`=?xux53^oj7bSG38)7rt~R8p>8$uA@o8wTAoCDdI7aZvGj)tB z$;<}cd@BZ|B!Cf{5qO_qDc-0tP#F1vIYj_3;GE&bf#>H$8{qMKVzxX}>0f!p1fTkx z3;Qu4{EF9mFRA4Gd_B@y9*|M8h>Qy8;fk5eZJtY{gMHIHBwxNs`fS2_m*y_%HG$E) zy}DBVrSdwf0iZz(`W`|W53ZtHK5Fy}sorBd6k1wVL6>1`ndn37Ycz6S|9vX!#!Yx@ zKfClh5G}T}*MDxRSk`J-`L9qokb6y@pVEsJ`TExOP0Txcl%|ZGqu^74J~+**nCG^$ zp)bX<1o_{#*Yb=f#FQ}^e)q1sDC?o?G|QjwKzoZU7_OK0x!b%s$GN~o{@Ju#%<_-- z)ob=;`dn5|M!Nbv>G`L=WmQNdO*HFUq@567M2AYnJ(719ayVw8yn{p?kG?Q%+4EID zl&uuP@iO(t*{(F7?~|O2i{AC4miQG=@P`M|U^w8uAU<&8cM$ElSVPQZ(W&Cn^k6Il zUJ1)5ECyh<8RGSrB$_l?U)6=6*SB2H#6KgSypO`@MvVvT+`enV#l(l8g6Do->GGau-gDb!Cb&_eDMz3Mf_#l>v29)WD z3fN4IcR8dE;Gc%B_??S0VY?bT!WySf`S`27hevztIKGb%*zzqX( zU#+Fr2<3YY7p@NT#}_B8-NusBTtE-c(dF!@aEa0-o@6-BzUDsT1 zR3v7IBCd|9G*-WB#WlX0uWZsB^Lkl;^Eo$U{VD`Gb_`^PH*elcLF{~Qg32ZR9l6`T zr9u56n{$-fSGI^VgX<=U@QPAZ~! zby%BAJ8JKIU+ve;)LA$6_%DHi8F3QGjJO0}g)gA+HMU0Mj>#C@l@=uxy}95EF%(X^ zkEyto)K-%%-4*am==>zbecC1y9FDb$gOe6po(0XKnvzNPyXj5o{c*fvb-Q^&&bz;< zyw>po%q@(TV-&a<`a#V7ea@+u-@uKwFLNd=g{WbjQZI9Nd(=lBpMJSxcmLzASB^t_ zXyn}QV|-I8PWup@ihC|bM^{p#GSFk8_fkb(uhuNMCUWDuNbp++7yx_{rCk%X4mh)F zY}L)mJxuhXe-Kn1C*~yRtk)r~07`VGG>y%QST;0YVV#IMp5RO2V`u%KMazugZPd1o zk}L8|W@5{IhctO-n8LU6QqbK{M-em|liidNI>iN4SuRamDjO6fF)ZO<80N7|+seEN zHmEAU^ zu|Jha`$VVccA{lh@(rK})w->WW)o|!nQ?d8-?tt$l?D8rLtezCK|WIY9<#fgWzChe zhtLO^PjX+qwN3tWxtFDZeQB;h_J#^qsbn+>aXGt-Bqtbnbk8@FD*D7Q{8m^~*HKjG z!WZu4n5q%qN2A&P_GCA{7KMvDw#i7wO6ikY3?m9OIp+me?%My}>-#fi;104*=^l$S5hQ zgX%d&mj=SwmhvRSmg7n(4n+Lt6~eP!J%| zhn1Q}hP4xi6@{Px%z|JNOu*5W4vQaAm{hc~+O6+MaPK_zLOttO&N{1d8GUTM*TkR} zLVYoZr}Rb>9kU5syiYBX^^UubwyBC+6#w%gEw7+3Bx`%KQOCfIY{<~?2gPD-n#+5^8u035LqDEM-f+8R>JRh6Wj{{)md7Jb;FH) zh1S5TiIwpEvHU2fY!Z`1hinfQ=L@+K7X=ps?l_R?Zr@_$aej4eT+a;#{l%p7+2Dd( z)vX(pg*#itYbkz-7fd-V68PUd1yjxXX~*2(VdJ*LnuBtv$-N@ul$pbAbj9+LFu6@B zg18?a#QCw&p_@s1NDD*i(&o+H-Cs=7KOG~PcO<3yhRTs&fRpAKu)h@VRUhhA{Ul2`No&MGGK_i#7dOM^iS4?{@;=+DdaQYYT$WrvQ9J>nl^ zF5#bFpd~#ho(Xonhm-wRq9GN$O!dfXh<4*ag2U1vl^08nQ=b+Kbxs!VT2Lai~62gK(8@*n?##t8C%X`#L7okEN(hDrG82zI^I5diTT4t4}Hlhk%9M`q!ug-Y}Jh zNG}AEnL(el_^sf#G;|Y1`8~ff09A0c-~6QXpSP$>vwI>=@G?+x9;4+2S6ArXh%#d} z7Wz_z=vfrRW&riTl}MjC2$l{G)W*}LJoDisrExVJ2M=KE|Lr&b@t*%2)gI(jgKalk zg1mjs;yEnvlVe2A)SuETBN1&+1wB^m(Jw&g?+YSLA;7{)^dDM21WQ~JA0?Q_3tXgF zAnU+^2$0~_qkzu9}9kMm~9%>QU~}m ztNz@^c#OHZ$;)i{m}g^6eLWNn0}0WjGAY*HhvJx<$2W?nPQlB2(l5IZ*WSJvVsui^j!_{HG>N{e>=;>J$|$S0%_u*#(6n!Sx|7oO zQ|s*_@IrCXXyGk>F`Jpc-#a8XUw7zvOmYAN;9ja!`4?v*y`oa0cZ27t153&$zyF6> zo@H#47blt#x;KrGt8Jw50gJS6bDdh=ilazj6(2?JxHe2qH_?Q=+%7FGFQtKVm2q8oc%JS#60|_Q!-+3C79cw%I2u$D5ZG?D+a0+(LheNtdDQ zOt~LH%(Qt+^nIGxdES@Uqs%u zTLJg-%k5?ddZ$iVi18PKi%#NG;VWzxu5`+_t8i-O%YTrj{f47zjWMMQ-1?_|(Ifuz zKMTlgLvm@naU~hO?QhB6SU5rQj+h%4OWaGur=D+?_zytuM=LWuq&PPPf>SSKOp^XF zHho!azT$J+N$|Y{j=8y}hix$MFU1iSeSVGuDl}4+bT3A^n&Sj*Hj4>7E7l^*F8Ehc zZqYbjZmkFE;P=EttD$DL>Zw}OuJlgy31Il3mjh*BbOuOigdj#&gs%K8gu7>D$BceB zx_>y{PvvXYRO8fEk)cCekKW&=wopz7Q2Hg2S81%&fToO$_9)LWR`% zRPD%)m8pmA_No2fgsU5WM+TD+DNYp=fz@B7PrOdZC-JC<;QR|o-&LR~7wkE>;u4hg zv?;Egb$Q&{O+g+Cjppgpo2fa$CYlWMSfWXb5 z?q}k&qlB@p9`l%AgCttI`W$Lc`=HleE;etHqE=t&XD%t5q<8`f>0i?mK->?2Y?%mx zYGlQ?+^v12I@)VI7hSILb4i8`K`mnF&(HuV56+XOj19bHKqZ_xapheYQUf=0xe5%F z-~Yl1?YrqzIk;^CA?W{g5&p(83FpHNk^r*P$*(|B`9Ck!_7}RsXEnk}wdtiWpmJ!j z*&BC0S*RKKmfHSh78Y)hhk^ktuzG?cVGVUwbcR_1OU%G(&4@$aJ@QPQU9wQ-*{(gs z_}-^q-Ib%}UeAt>#}j_cj_MWTsM9spXN2C$SsmH)cv^k2q+6QE9Q-qHq14knAAeRZ zuPJd-S|dy@ES1V9D{;$vWcJSzl z(cHBnT#Jv2T4?Uzj5iflE@uEU{TFp|72Nc=l7SMqlA0$zR#qTR8M*lY7uy6H!8%jAj`Yos8eXeX;FfpSV72FaHss_$F^S4+3 z8M~9pn8C@bQ**{S9?$b?n8Vru`1kzGOr9vwFBxEBNi&YmlF|JQbekKr*2fRBRd`uq zNo7@>c>e@#6-*Y569q*Azu=BpL(v;1z5V>e(6$Ji{)Z$3;Q)H}dWpgGal%9^S7!c5 zJcqt(N-XM)eq&*-E2h2x%WS%Ps6kaYSEOF-`jwF zFvGr~B^p3b6$Q{F$McjH#J>KMpTrhBC2eFU zbUrl$=>-^0%8-T+V}|_iU-j=aIZzNClYhB3tSnuoc%nBBtPeAMpmA@QnaxcDgc` z`Ly3VW;6yI2@JT&PA1s5FKfz>feAEm2rgPOKo81ocgB@T!Ad-hY_G)$tzIoATo(+8 z(-GJFgt}(srOH5nz>z?}niTKl@u~6|}3mZ)JP3G!@wbE44cFbOAcy_7Qfm`Bp#Ynw3za zzJO}15F`_r8;ds!&-R#b<&1t#0Oh3dqICHd$X4mBTh8t@)wL+$huFnMzEjgaD9Bd$ ztogR+XJMUpYfuZI0})L83FvGY6&TXvtiRR_hImDh{C>cFO!ELFUS{+IE(vU1#t7k; z((`4h1*KB}uQ_SJB{oqB>?+2MmK!K>&r?Qkfz-r-2%T~zMgySRE&tLlMv4QT!{eGR zR44=l6GU+fHl)4s_Vic_k?ST2*jnOr+YXQ0FGaP9{L0hh`QVC z|J{1#rHnun82!8dn`LvI{KMh2b7yU)z+kwVD=&zg4RkL1&q=(tjZh6%s16Q{YVH*= zxk!-6XW|QtJqretYJk<`*>Q=b z)3!&FgPZ
NW!YX95ffM1Wqwvg;8r-in(VK9;jLd3jTK-7F<~oX>e(ZJX}*3*Z{!t z46K&{47Zh_D?^I^^h4+*&`SJRN{1-}DM4wO;CE1QAh1n-f|b@`kY6rFh?px4Y^^t# zEI+#j8)L@r=KiN}hgkDQ{iH;2925lX{8Id85WvaAFgj5KRNcAk+rJg`r`lD|$(K(a zQJou9kM|Fi8voa{>B457Z|$xe=4BY3OmWe=@azj{ zu{kj8_o?#u->v`p5Nzh2=FoY=soI@!)JXV-7Ws-ilB88Mu5?|dUl#j zZ)#)>){x#1pqTmo0?^_=Fp>EddZm|H*R&27%~xxrm$0}O+~K#ZCkPV#@!x8MH5e}x z(yG}2L|Is6cL$)6+7_FKAtmBU-sa8FnsGp)g=8Dzb?AwTEN8&M{}U>%cP$pMTK@~Qw(b5~ zgEsA_2fD?UrvG>r3qh=ad6v3KeEohz(ma8f6*~!}Y1|-NW#Hb7vj2<$j82}_GlN)g zl{?~F2$mhRh6d)?JaeAHrQ@GD%;?9M2kQj_%b9UoqSr`^)?8w8uh}%0vY>zx3J9|4 z$Z#G}(Bx#=&=0rtUO|FxG4SsN+R0&^a`$yqe|>ycsW$SJnMqTJTw&bgPsBDqGE=8( z0+d+wP3d8n)&hTr?ubxfX!FYe9am`4L5y=akRAA0t%9;0utGqYLWid2kaGUZ+&9K>@$0>=UKW@# zmjGGN=xDEyThn?R$aTx0Gm?x_z`b9KC0_s!{>hli9Z7Ty1cMJvXzo9L1-&(pe~>|w z?$Ori__N8pi2WsNqmm>#m@SZX>4QuZ``_s|1?@8T%`*qr&n)R_U2p`w{E&Yp?rA>L z+q9rNB3VD$2LD;fXn7nwMvMLi{BeP5PHFoYHF|Xj#cEmGr1m;rMdj25NKp9UwVXZZ zkNn9~aZBYs;gyQ=W-<5m-Yor(>aIK<%JuCFN#{`Ev{;fDI*Bm0Y#|IIOV+ZMV>^Q( zYax4SvyLr|?PLzJL}QG|l2*H8gv<~pyP6a=vcK1(-#PE{dH;An@9+2i@&4m8ALeDxzV7S$y}s8?;=Pq`Y=LI?o*n7e-FJp?J92YBCZ8>T#wrQx3@tEDVfz^op#|FB z@H)Yo)qkeWi_}Sv23TpgQH_+{FnQWhk&d#@=M!jJKeF=-+^;Z<)~T{kG3yCnj@>Uy zkV(^t+dRT1A@O2Uao6j?^HEwqB+xK7*yQ_NIBhxgYUWJi4O-Q6ILM9-s^uM#%fFR# zUaD^OCvTKbThmpL>40Rf&aSdh%hJKFA5)b^)vLbq6XzZ=zKax&r*^UN=r}7b8&2Y+ zTIaaT`Hyj!*G@xa0czA#X`@&fw53~|2X6|g5784nrE%QyBAHsiF6gQFenr{ZqW4Cf z%5&XO=@Rq>oWvuXpQq)M0af{q08R`}TiJX-&b{_J(ToG!_D3w^ZrVrIs3E%~J108_ zdrs52>*LZK`(ky&YBL&}#cj^@#a^fA&Z(bOA{TX8pbf2yA9j(|SUUYm+Ap?y$>vJ$;?6*)#jZImNl7g zeX8AJ$=Ucrz6Q)fx(~_n{$)IZ5D}n; zD>eBP1_yy)2xdQmhYCRWoW;mti?6{~Z_>DM!jIQa)5PJ9rq9_DX#uJIgq@}dxDSotjyOqSfN655D%>U$bT-JZU> zx>`88OZ4b0gZsJoiGhsc$x`0 z)R$DS$kgZYSB0ZyZpW~P;I_q%L(F^@)YB9oQ%~<0ONC^TWRCpdfYU~r0lCzaa1u5=TBKkt_aAxGe~K&XxH8=g7l)+NrHWuB=Y#7YLd@bCRU%IO z1M;H!?M9?>PXW};+5}yn5`ol%JmXCLx>dgvauvZ$5N63zn~H@`JCbug{$(3=gI2Lr z>{A4=_D5{4FD0%h6udrOU2m#x0J$P|9l4FZ+T{t5;(?ac4H;glmrDIQ(SSgjMbL^k zFZCce$_j#MVt7QcTy1SWlJ^fGz{JP_g*-G0E=mdq31Ep9za0rQ(8_Qs6I^<*wz*k* z#WaqI2(JI}D-U?dyZL}zpNVQmYOWwwRnmw9^mtH2Bq35GwF1@EUB{rLoR0Go!WWSl z+RRiGwp!tD-vJ0Pg#xIHxa1YcCqnl8W#%amnKH#n=@+7*nHLNa0;EH}GoCvu~Vf*L? zGJp?`4yj@^qh!GsC=#rtCBtUKJefeJ(6_mz9MIw4qMop~ks(AQF0_o`@w2-`aq#N) zqVTRAzu#qoIvt=E4)R!%Y?kjP2q$qUY{&QwhJ7od1%3ZapE}FxVIzPj_}^b%n!TN3 z07wEQn-9ax4BIj}A<-l|sl0q;fj}PeQW6m-z<; zy*AVj}_JY-MT5Q{VFW329!zx%I<*2B zTLdyTJqJ{z2+aBbq?>ekSlV7HSbI2h0~hzluA?@1cyB*YUnAyDq3Hf1?tn~27)-{I z4}eP36-w1KHAU8`;8GQ^6oO)ZO^FzPnK%XTJiig5{r=;QRa#IDV1qTr$;YN(C)+}U zpr;K|7DFIjYg7Mm8F$LBepeApq;393dW%GbR~o4cAZBhAEWyOc`T6-n+TdDdy5d+O z*k0X*qI!>>I7f9$0T|QfbJ`9=2wH%*Q8tp-*C5%~MzKrKrE=jMwYspcb0vm3s987O zq<@AKPc*lN&xX5Fiux%Q+{o-&6H_D^h7VH4A);hN3TRY}z#N z%XB^WJEpbggx5OoByN!)JA7TC3FObMW*|6wcR;phR34$3*L2uom}z z9)xY>)ow-8ST2Pt@~EmVqf>4l|&hVF7}_OdOBYL z5JeDN#H(B0GpAb?+|EBrP3vzDN+37R6pg5+oOLeWXc_Zx09pW&up3jeC9N&K9|Mt4{ zqVaG_8Z#6U82^E|udUXfuZSK|H2Cx)OtWX+I@e#IoBC)-K;F%vuic`Zr5kKn7eRJU zk0Vr)O5alDAFRJYt-J^6u4`F7);oPT75N+o0gi6 zE4S?SuR2~?J9^tPJYUV6Hk?FK^I!g^$Vf)&7gEh98(M67`sMZfm3VF>#j8#i{>l3( zZ7^Q9ulEyXb4Xn?-#t{5hnjTWRpXg-Rc~0sKAC6gM|X6P9LwWeSmQH*W^-3dLl-96 zdgb2-tVK~BeDed+8HYT&ld>isb!<*w2E~)gQSb05Cb}xwg)L}}F7FzoRNk~UF-%F8 zWysd5cFu^*Kh{kCaDAzKEh;pU?!E&~4bp%jdbjE7W_pZkn*wFYZlk$_;%!-+)sMGt zExTk0N=l0AuS!mX=Qpee&qSOGHml(C%TLf9+VyjCo4!S`-d<4~Lu zN^`Wrsdk)czQ0zke!pVXUQR|HOL1Qfp#`jcNXI z<1V?%H#Xlblgv9YoK`dYv<_9B_Q5tk#I+%B>7f?JHe2nUmSwly&4sMhiHD#U;{NWx z?F$};A<;TgT1BmE6I^Xws&+-87hT`((B znZ=?}>%v1MNs@V=&Leur*O6$LQ+7#8eL;Z-Pfk0mi>jDRkyerb7z3| zHeO6&mx^17L~+#tyB$V8r~Mw<2cMMws&RJ>^Ag@QGlEqo6%6br&X)_x+JxSR>)j(>A{#kz7nOt^z0Q5Yv|S8m z>z;z7eRaWEM5ymE*VV8_InfNkd48E;NdET>ujdi;E=uAgg~m$ zpFa|QJlD)x(d<3$XQTi^s?dwpcR-aAXX@WJxeVkHrL=}sw(06jJ#d&*C*ERNDhK#i~XB!iAMdPL|>0(9Kk29C66Ri!)r76Xf)(E<l16}yO+9MGJD2yG_!CQ$ca>XWFW6wjtp)uvKdGZ2YJ>VwG2+H zdx@?OkxvoVW!q+ueNfsn&GUz(&I{)^+^DOaj>%2ceTygB$qysBB0E(=bI@6e4A0G@ z=5@PbI2e-A@09a;xCgRVk0;wDv5`XFe!~{s8lO0_*fn`#$d~%cwN%DRG)b}0+3I6@ zOu*;OhL?-!am(K>J0?+0hrCy}ZyRbTOg|lg&_XucyS#?tu?NheWquUo^L@w3mt7{~ zD)TuEQ#kd~G}t-zA*U6OWA@n91Z(;>|G=I*W9~9kt*M~<}M@>V^=JbdB3)i3AdQza`b)w(8 z{ItAYijJ7-`;xcW-IA-vi|6hH9j`vre%I$rXu^=QT^^@wjz(;It78BYABX3=`~rFc zlMi{;?;n^J$=LSuyxm~9#CJ!n{&g_Q_d!}LM=ZbZjI|#$&={O;w?4$&c95ZKA|#ZR z_Q_*YEz^XJaeO~RJWen4+u?KKtIB>FIiW(AtxS#7yg1H=;FAL#o6HxRJUOqexdjEY zcLmhn4K0dEU4hCOsp8bj!#2)h=ZxaH1oetl7+TGBL;U4c2g#!D9Mfa|>;+`Lpo#b% z-uh0FhgT{hb_=EiJblZlZ)79T@w&b-&EW8{v^Mt+ta}If%ZnAez!NieEU~z)Jf**&*PrD?^iE>d zcov(VdETXMb@fwNcxg(yWX#@GEHT&GfKMrNGXE;tGdx1l!B(T&CpoZVQRFn)kyBw( z;gacZPpR}*ch&>eLX&Cxjs<-D-NxUZzbmo%lajEu?``vKEr|r8RAYC0Y2JgO@jA1e z_u50SOlE(c;b6jIO)%{w&N6tQyt;46uC^zV!NA5RxQ;v0sv7;iIt^~rw-0`83c^43 zu48%6e$9G0ar>e@e=vZu;he{KmF^K0YJxC-zm=Q$ib*U{tj#N1p;St7>debS_Lu^H z8i4PbIiV~sD4@?FZAK2);~SXqElwrx)JzL4%=KyxwQSe*KnF15W%&CE9o#7-?0*~k zkREJAc=%8Ke6b(c6-#Iq^h5I1D@!Anx@t!wHSRiX0CAs)LJEcVb#;O+Up}#tTTp@r z7&SLPGgFef#Z=|$v+0YaoA5QaiDYyGQ-TN*mZ7`Ou-R|4X{14Y#ilUwIBye<1^odd!ahjxajqnKdAT~Vm~KMIL`H3& zJ~DsAhRC-^Qp2q#o0JB%*;#$~4$fB@@QKKF4BoxQ4sBpd#MYZ z1?2WlFGVczIo#!x$9)wEjW1uKl)9kATA`9g`3$627iol1ZeAm(z4J!iMuXt`d4dW^ z+PRy|J2x-ou9D{EqcG}}@lTIT~hb~SOKDyXEKZ!jN5R&SVYdR(6XkrZvHUzGu zcyJnZ3S#8RrD8V|&XDzBP?p*NK85%iG!cEwH>52Po!;+(yMV9B208>30EIhtizcui zh|M6X`l&4bT-GUN%JM?~2xPRqKJ@}}B7mZ3_A1}n zhxz$rQGpr9#;}@ddby7^zGkTHa`2Zj%=&>dUW2gF9|mBS=%IJ!C+JXpmCWe(Fk?w$ z-@Ahgd^>w7s;0SqX9BeRfn8Aef~Y@?)GfeU4k{0D+4w;j(%ZS=axY+Q0D2TIr2(mP z;?RMGw1oGTFlt`Xp}`oC_`p@R`<>DXzWmG#bO@-t8j)c`qh$!TOTwIF5J3|5`5|NDlM+NKu?6Zi!1L23itbvvO?&FAJ2oY~K zqa?8iOZ(&J%8wu;lEgiJ11G-y-yFOSJ;H>b4~X800019*?W|$5*K35X0)N`~E{lZ1 z!I6Zx!yEl0`P+U+;r9#sp8mVd8Cafw;pZzbT}e(tSNe<)E!AvXVPPSLfb?{IuJpyy z9v~#|clwemoj`H&c_jPKgL1gTpPaP>v*EGnL=;{V*6)$I83a9{!^N8`i)~|G}vXvHu3^oV3f)$kBV^>6of`D`!nv~E9h5%7e7)KE`^p-)8-lPPn z5t#!*fS}YQgfc)PgwR3?q}?6Qx#ynu{(irE?|av~*1K-`1BAz{hv(V*yFYDz_p{p; z*LQ9^xD5h<>@>Y`#S#M9Bm!Swf7}ADyxTss2L6!=ykQptfozwPd`Uqvvi5_EQX!Vt zFF`8$4$XmIq`fYhUxYy3CvF$q{{aGVIc|F8;@yW*Oe!p8V02vV!PW8sX|;H2T8btID%b4aSoVDoRkk4$i%H~n0F_WJ10 zIJS}Rfuo12MR3#Ty1Kfsz=!#pArKB({6z`^LBW={LLSNdB#?r*ZjwerAZd^`B?v_2 z!vDSe|L>SQLWg~HZ;4=+@ab6eOEezI@(gDTm%p5CjTVxH97+JRnfvWa-r`?>d#*rN zr-XIC6>a^4v1?ai=tpIzmWZ&uu7nydVq+l;i#WsOFX6-M113aME$S|v-BG;?=%Tt%b#Uf!tyYhwO3pDmRi|%hN zW5!-@?%09##;K~5Miw|T_atBql0;zb7a z&tRKi71C>$tu774Zk0`OKJwZ06Gjylz3l~i9og$P-h$HIe&m3f_MF?GSDZ4$BwFxr zILq6)H-N_K&D5o8Xu~qD!c+b7WG2_e1BI~8*(|u0N2YDXrn0xVLc{RIo=?G?r!Pj5 z6X81H!^7c7TRbNtXRT&H7e4r6~xs>-%s%3aRUS(c#;X&s&ZEDmEI#u9mQ zUx%roZ+Fh7J6l``e*43W-y8Ue4l#si9Em9 zr3pONT+_C$Bd2Os^MDJSPm1=5Y^tcZHyF`vGAi1&pxUOiKgmoib5o|R_;?E#H(4|+ z@CGJcdS1FB`VnE`^je_}^ay?@cSt!e<9=C9*R4-x=tyga%>MK_+7jziR7%)T#{G^` zIeb`L4^AigM4A`BM=M0bkh9HF+q-nVMzw<_AM_3ekTO#%JrU>735#Kt9*`q z8LhnIou_ti;syN4+uE`>t3FTgwKw2;N|Z&hmPX5yY=Z+`U0e8hxDjOC3TYRs1oQIz z1~)ZpM)5H`X?9~e5$efz=PWJkLsnM&CdD^f-WqM$_Q09x-6eC;r?+(7!n>)_aWLuF zG>kI$Ej*#&WI7ht@I}Y$u-VSA46B`{q?sjVuyX%wOBqpmXa`0yc3>27)|en4aLx} z=;AAPzw|vo3B$0f{IWe2to3J-vGimoD&-BHOZfF$NV?eZDdAaobf3(f=t?=HYofv? zOxW5x>|&&B;--(XOG-b)lla#!&MhmyjQPC4x-Ny9tGa&CCvY?Z%F-JiB_0~`>x(0Z z-Ns#1uw4v7s(L)*E-U12rZJCu3ZEzUWSUD3yNxC`mLq!@-`wF-YxA1yh8Km=ivg$8 z5yG?L`gRVzoaXgys5`WzA*7e@5(Bc&^*znAK)XByQqOJV&;Bt<&)$bXV@X8fv z!k~cGea)Y2wC#7(;ZE(wli0z6`rxo!a+KGHNR>(-S?FCIX4IjEHrQX**IH$~5=T+hiW{9@&;srADH!U5)xlhFE$` z!)(lxJ3_6uFX*;xKu(+9KCtbZw?ov|)6x{rFTEXMm~S{Up8Ph(P`l+&L}5>L*`B^q zLbr{B)p&Qry}`>CQ7T7J3%EOVUs;Q1i`RQgH^F=PX=?WYmKr%MT3cMRv8Hx*^l!ZA zL8TnIi1(RgxED0aG6^W;uB&l`QoKT+;g>!m_ZH8H9D^MLD!k3#pTL}*G#K@2cK>|W z2}H{X=1J?B%iUF**11a)Ug%Q!I@{!P=>=zHnhw~)l~iR$_N2vU9IKl?bdZ~dBw9Vx zEr&;F1)#h$KMd`8IX~<3B|3?AQASwmh@6KG{OZE7at(`tE@OPQY2K~D793{sy)i~> zcPIAC3CP48YjgJ>sK^1cbN2MucQ_~VlTOoNH2)P&kNNCQf>&zhyBBuY%M5Q4;=prG z@6~zt0GCGPA1tncHT}jP;`VLJ=V8Ys}OtyPnr4|}039a)yM@4tl%y?Btk9^kuCw-oO^P%68O;m|(iB8Cad zj(3Zk*VZ`~UBdEc1@F8q-PdV#(-V6MF_We~K@=6OJ!PeEbaqifwheXEQ2kbpyQt*W zUTyYVV)(88MKrGBCj3(x+m0~eA6rM9iGGG;R47L4)H3_{xA+%KnEd->X|(I@oZAPB z*RlJ?wPaNqr#|^bo`RPN##XF}jDeTt)KY}p zfn3dOM6`4B!5Eddp0@Z?OMMT0_O7tgYu2`)u(uTKFzmv;Sc_W zAW;g>aqA~C;_bJlUmItnuD=c2d@FWRRt|TDcRl8Yyv;^#_0DXT305vPmuUOhd9NU~ zB_&E_N|luXX*?nDb68H)`4LCJ1Uk-Y{32kb3&zBLCYk{zEK#;$cyz`vr9L3BaA?9N zj;5{}a=`z~hEd7S;weobvRjKH_ooNTWndobUh8A%i0iHR_0DqQ6MilmGn?r(4sJrC zAopjCztz}UFnd@G)RuMSX<^}$UEZ0dcU_iC$4{gYy^PlVGJNjJy_s*1#OONue{E}P zTM*YGU21n|k7=BI9&MG6pq|aRMt)hCej~0}hvx=$s5ZZgdGp?*x|leKsQ1e(EpWWd zs3-^%Zm>!8M4uj_KxM?5aJWMa#mS2(2|9~1U&<$XLO2-bs7H3G8AF)v=2ulW)lai( znI!{T40KPZlzEUFWDh^~vsJ!Z9>JO)W$O+m%zBgaD>q2ipXLgnnuw-S&I+;B5eJ z&%NZ>ea$jQKovHDkuk*L9bk0uhN*YGv@Ml;7c;T>=-|v&M zWlooFeR2?o&3%1m_n{$L7{Q$%DlIqq`2GQDN8T_IO#Z zDKy1BM+42!J8Ak22463CsBd&iV&Bdc&kYoILhI46UbG0-D`t#T8bWZ11tuTU&EP># z+s*6bT;k!ayMt23@n|R?%E(jNUbDi}Ihl zV1{Trn%2+r>ReM=-ryRGTb8&nR?Xjk>a)7R&n2rpr>853Lk9a-JC)Eqq7=R{Z7wyW z$t1q#G(7?jEziLB_`(B_LmF2KQmb#I-zCjxGS3O;MvTue^;ivp)`dTdDxM@zZKSRl zO5dx=TTYEziNBs3Iy<$Ba=w0Xl}B%Gja&~l>H+TPWHhpU(ZS@Z3#)-lj3gj)<+ew$pyP5ICqlPH7jE%4>? zAD0VAfLf|@KW?E9D; z4)DpO#xlusiiRyJJ4o2XZKBH_nA!5%*j3*;ReffyhAhxs(44&=y+IX{&u$mVXv2%( zJD*N|-O`m?W#5J?Z>tE@|0O4H(^}dj-fsgA5AeOSTp5;pSU=zAt!;WDX9>RS2g|T2 zZm0~xJvJhwg=ukS{6AMuLTfE7vi}V@jwcGuouS~ zzC2#4_{3*aG-2Bkq~EUew2x%oysl43MRrFP8gxeVP_zj3nN-WD#;2Ty$FG(FdQ zw&e_~*}1S<;ZHD1Tg4`|FGDIXq}(6h{1@$Ph#i8s_2bb-mb8wFROEQ?dl|jCgTcva zY9X2r2F)>1dyFU$`-{aE+br_@FFF5`VLR7d-J!d5<*1Kv5R)jk>GW@E_Tl>LH>wUb zO0l(em$AA(SmE^F7cH8E91Yw{^eFmi0xzXIe5WtUZpm)=miiHVLD<(Y2i*(xx^pmNRn%2A@1A-#Bb{*?!u7WOGSt6dxBF$(%UFv)##hOPrmu&rHI+ zY+jwLkQQbAmdy@1(D#NS2N9=ye1b@L(R_|{XA6cQ()zT zltMh6lwEjHdpt2VHuj6^FM9@8*Tx2Np4^2mHCiZlyr^vHzTG|&ac`{whBZ+@FKPt` z2LU{u4(i*!#%!d9nj^Gdd#A#)XB|t3;;hjf#vc~)OU7&(@Y1ddV`JMFUPv+w5sdX5 zIaRF`cUroyX~Z=-V+99a2Q|RVN}3rGMLE}G`mAa#T_YA{Mo?6&+=eexWzP=|`s`uK zboM8F@*s8f_eZKZa9Jtv2iavcS^NQP_-g1IxsRN<#hMSNHuVFj%)Zkys{HC*`c>$| z<3@BLXRd7Mw1sFGe?;%d8Tg=WdbD%8sDHrUS0Ge;Qqs|^U5OjL(qgE%9mRI{JLHVyVo8+11e z%D^nN$m>O_yVbXggzKN_C3F4Fis=v?Q!6Fc!kLaQPxwz71XxJ&LAKUPkv$6+XFPQ( zSO3VFHtqJiO=3Z_k5$?l88fG{gT~rpBG)gs;1f|^LNe#|glhKA3su`~63=^o!q_hW z-!85)I#8gro8Eh!T|K}Nh1l!s7w06chNR@7>)!esMFS{>VS6KpUezy{jV>zFWnpiE z>amPUOjv5jjQiV5=;5$rx3d9;*vln_c}eCKdV_m1a002m!6P3t5|F`5M%3T7?x}-m z!d;L*TJk@Z*eLc7nmj7uFU22Mc>4Z}?6SR%&?w38K`RSV!09TxESr8X18>w^8l^XQ zigEwT=02M7E1&c-3PQh;cHfy*aDcsBCNfe(J+dtracRBf`)$e}!~*pDF4UN<4|^&8 z)wkF`)m3l@r*q?D>SUL@&k2!TRZL8gS@{T(-&4IVy?+|WR*2z=y27Dy`e?kRH8X&+ zW43lc$*{Fi*Y!?#fp*X6tbSKymQ8^zaZl0Q*-V-@ZABT&Oby96F*|>`;-~DHn>SMG zGhk;=rTX~qWwRsRX#6lL-KO-Y<+gcNoW+h3M(-0b6879VK6g^K>MSVMkA0;Go-nhO zG5(}c_YeO~Thfl|ayM16zCKaWm7=TsHTILE?q4>T{QZrl2VHN19GY_}V|m7I`y8o= z>3u>~x_HioZk12>#-boqaDa{=vhMHrpUtUxwp)FJ0|WctX8^_GZpTmKgg$Fb!h;FY6<8+DW? zx&h;%OXDpJJ$btcStXMNJr|%7nbANtl87f0fqpA=_?xLoJL%>DW3;Gw^Svv}UY0;z z=%LQCX1e55fAsn$bvlX|8)DllwA_>NGf$~2)?@Pa+nhE^1x5}T>yI#TPZh| zy{3bIx@CS>KA$yCCt?%P#0j#!=*bJ|#EED=Gd^gDk7QSF8w@S+tWgMvBYIILUC?Ib zp@yx^SR^1Nw4-o^uDNbp`63TpeXe$a?=x=jpl;TlVaV8EQtE4n-1^tWWlc7?&Riyx zahh?I@h%Fwbe60{=GHJ>nh?x*%)~AA_94-|fg)SM2BQ)h=~?9G<5DDqKXAE+i&}Vl z#uhhGhPTIwf>iPKsusctUurG?&;B5l)dmC4y3YRG^^Ctna?Fi@MD06_O5>D~R_l3G zZVzRg4i}>ZE1hM2DG8hVVke2$W-r)k-(SZ^_qFM@HO@e?V?Bxse$c;R(`&k`Xr$6* z35YcfzW&n4K9>%M)CP*#_RF;T z>BAsPzdo>|tb%;L-7lNg5=rB8mul`??)~C_dL3ULH6Csk zPAZ7QiOD$MCgMgJQ@`E%m3Mu88D581>wzJ9;R%RrZ=2iYwhoGQ>a`vN7ODfE^?XJV zSij83Izp|i51(0CSw`XT2IJNcQMgV_S*pRw2ZUl{nKF&%WlOn-Ns6ddQn8acp?bvR zZf6GPo--w~oKF_{rg3H(@hu}n(m18mXwQP?%R|#|aq+3@E}~^>s&`w1{uAv3+sis4UfOR^&^QWt7xPb$yp$+1lIdg4UD#J?VQ%%_E#s`(BOoUqC&G*WgfYE znyWe993J{AdnaaPB-H1_i~0f*)?buDtY`K2x%3jh>|^-p-z-Q)_Jlg)qmB8FNC9tU zp+>tk*Tbc@b$ISf_!3~uLzR_he9NcHu=Yv^Xh3^*V!O_TFO3^3RyZXx5g2$beo^PX zLw6okRHH^=LZPXCsZ0ZcK^Z$e$ldU)9k#A~Byz2uA!sqdR(o@aJ5pD6GJRRJ%51FP zW|HpB4yWmRwTe34+0y~_tOq09=7}0Lmb1eac=~We`BaU$d-hQD&vuF0RMGo#V@|CH z(z5BUqLA%0p&r(w#?&DziWv`6G`c^~;7f2)U1ybOf~KGZyBs;4Kgg@O1B62MP-uS2 zacvAxVoK}=oZZC?m3*4AxUlP@|J_^W=5hK4{Rpsv>9W21R?$Ao@f~$HI_dcFQF0}iw|ymHYh1QYv)C(uzHRq z;wY#nrShY*jSIXVy{;~M<-PRD^-MLEn+fh>=cnq0T>f=ey=$06$yu?bA+H|CjyEt2;lGU3_ zNZpU?&~CpDJsH|*r5|XMDLC|s^)z)EiyskdzZ76gH@N}SGY;#po_~Zb-NEebTyLn* zIpe_TL7n9nG@hVtVOHbnQp%I;P%hUm_4aS{i9va)6QZ2MFO%U7IB{!Plh1_Hk>h;Z zq1(fzLDcJCMkXqJ#iuS~O%Km6NlMZhKBDP}OXP^sPu@tM@iDDssC(SzdenN{!_$-5 z*0$UEwjng9^YS&&#U^`QJ5CvYLA{PTv{9<@tZd{^UhuE4m_~cyOJVGHxM_rA)aBW! zKT}z&mAiCKXrJCQ98y(!FlBItCfxQ-=qXdYr})t;;>=R9l$l&kWPuvVGfm(!P#n8b zt+M^N%dRk1K&vC;5mxwh{!}*ow|?u?GXW|14BFsO3U0?n=jWp7 zJLRQtGvxNxnOsCWyu5dGg+1$XdVNku1wMC*mOM~0 zy@>WCaqb}C;(NH(y$bceCbJv-?3sF<6-yq7Vx!$3Czi!olB$ioT5fLkhh$!aZmI z%@piB{jbnFAkllF61`{qPo1}KRw^?bG(yB0bI?$<312LZ*r=TroJ?d&UQHtTVx#hk zWg(DTk0!x)xx>88kdM+og3gX}QZdkfy?ky2aJwOd1H$Q#u-!a$r^Z2$ZNYe3N9Di= zp-A?;bvOvs7QqfQHTkry0R({spOlq|twk1{NQH_8ntc87W~656I#K4L;TX6GvaxXm zeCqvGlqlssBS1JIrH7K-?8ao}$OKw!j9Qv%kFW8B>L2+{TBHig>4~=ZgE(=l4GI;5 z#()~4R~jHz@iHoU%jANvbn~NY8N6n+IC}U`I*8;tm+;ZTMj(yIXU6c6>#H9Q^aDO< zEVZo^Y56&}Mj{b!fUt-sE$vfx&KeTcw{Hs68RTs~ck>cTAlVj|d*s8%azm?VsEQ=2WApG!SI6MFp{yGr;P`x^MthLkwCn`W{@V(LiWfaXuqI>x&ieZe-I7Xd(#}9!B5JPo;mgL z`+7jcgE_U7*@yyFv;Y}Z0OcEdYN4QfFnYOWGy6*$pInLWixz{y<%(OQ3>mRmHHH7c1z-hbImwemXF?laEKm}= zaadw5UX&Wk(YN|;A@|L`cS_pI2hIn+YuBzucv1s-I3W_#gk8Ot{m;L5v^8iqYN(V5 z7Q2@*Y_RXu^}fQ>jiHx2Njwnc8FZ}Arn)qm8wz;u-LhikbtOM0uI^_{PGqVlCc6Ak z_}<@<6nRb@`ary&vC&53%5nyr!|CfFwu# zb3qg#z`aSQ2^n&E8&O~6^sq)q4f*Se-!M}e{tyU)&^N>@9M*5c`BYn38CP=j@7LuR zG~9?mfAZ_7DH=xE=3}QgQ-=CdHF*Ue?(m%8re;NFgY!O4w7W*JF`^JX-kGI zq{&%(}5g%cDZ8L+63jQL_j|k1FY+_cwxcH zZ_8!Bl6&SD1h$UC7j7-X29l&#aU_dP4=f-StI92o#y8IOF+io)aDy%HEY13~si9W> zy2=I4(@tLO$S%?mG2UcGN`d+|9O%HqabIs{vM@Ii9#$N>l2Jb6b7@ns@gHufN`&mw zhxIRZH+Fa38op!US)Em?W(%5ZdeP;4ju#ldb})AhH#WiXy{JoKld-YP(ql68Vs@fW zA^K}oPS~48qk$(UR9#i|A44FMk<43G*ljb`ESKFkSbw3-ScRYup(kRZtG6FHt2~+C zvOH7MV5isnbhUd4EM&>#4DxJkGv^R2iDRCys>$|0Eq4=k><9weSkO~FqZn5*r(};S zBV-*)%DTOiy7d+2w}U$E?oKj72&BoYFk?gcNx^pFpzHNb4}7pNzWcbAgZJg-)_ceE z=`*e*gZ=<0$5ikS~e@JQg05KD{qnNpU<`l_vu1N(Cu~*8reX(Ml~} zqZb5-!~(0;28kU*S13$?JfyKRQAvER6?`rnEIGmbRwbi{{Z4>zA39G1{HzJu1o@~l zdLscH!vbAio|V!ZX+~`jY*`J=qocvC=suLhzb$-+yG>!AkdYv>X^LRa2aWd0To>i^ zo6LZnF)H{%KU8PkQ9X6Q#RR)@e9f!z0D4nYmy!D+eW{}LJ}`Uu`=Cl2w>M z9m}*|m*mVNeX75xY8CEn9%sm6UQO)6T*!eq>HcZcUwLq2+px^q?ALc@HQadrx8}?! zlgz^|wtH7m1wZTG?+T@?40YW=9X|>k;f3segY53Qmh!G**G!0h@x!%mcR(&ihr7WA zaxW<=`Z6D7x@4AEaY(ScB-=g{AT!8DU1Cp7O$EtiZ1_1G6N5@@Fs2W#?dC8-(w(2O zZb7GvHF}#ZSuVEwZ&KD&r_D66%_FT70oBsrzH>ePi{-Z+dl4NwtfWk|=aKK8nWO%C z^)W|BTM<5 z)Xb0&_Tl!_7rN*G`gv7|)ob>!^BsURXumT&)hjkNnS&Lo4{X0VYu(xu8E2YCMC}ok zrkIH9%|mvJ7~3w0V4Arbs7roPt;v|*8r$l#v4SjQ_rxlx2e!ENTm8z!b-O;TkbtYzVEWAh#rJ8)szAd+0wQ{gbwo@( zjavXFw)NvH|1g=*VLj_{vCz}V@v%&jdo4W`B`ZeiTnzI*CD;sEz{a+RVro3${Q;;M z@8kDu>(f|qCuOL}<4N@`kc4$q%S88{M_IS>cZ&P9QhSN5K9|uc#;VSxWwBY2{{jMA z5O}wfiS3C>h8_AJg4|fMD@wEHhuiSFE{aNce}4g=){z{WklI;zncsPDL{_H>U4_>f zPDCG&JCwRpQ++vco!`&D-22id9UEnRAO8t0a?u8lSC!qjKpTg@8jt?!e!~1Ajm?IJ z!OiiWK%?{Bj%ka$3-Lv9CcB%7jVk)w&G`gkEyYC#ZB;<~K4{83_4(?WtWFHP)S(~# z29ZFi_=H}327$QhnwNZsjG=20?EB3nD-*b1^-N`<5p26&yS4dtpa0?{RuV9y4=YU; zat08LE>3?o{UHFI0f0ZwjjS;(D)MFOqLHq7c+T`YLzte7c@*z)KVUhmH2S3kUnODl zwQpM?qX98cO|YxJcS8!oNy|i~cU|rs2hs!88WW!>1zAvP!@9|cA&>=C^C<9m|MRWd zlP(HX^}GDXzKtqw727C6vXt7CIHTXuIqPqxU#HMXo%bx>K!#yfAYT9PG=qod7}9`( zp#pkFKU@Nx$Pz`^2tYM#0*_u=1m6Vpk~A3wOb~Z%Zh*8z#6qDW3h+VE`w_2S92;m2 zoVvv2txS`=BqZu12*33ye3NLFkcxhI)#67*0GvV*f2p%wl?O#}7I<7imfX`wngsub zN^P4!`?6XV4Kyow4m5|*`xa^>VK!LoK){CImfYyo;Ge2RV2j&(kuEo>>Dcl5zT8a6 z?sLRU-2hLtL?M5-W)j51{7?tXUDM?RaSm9D&n{B(yTO4T+@|C%uvN)7oswMIV80nzRU+3ni?MxS+#c zun6jSzuGY?#dsws;zdZ{bO((v4efR-i$w>t8kt11*}B6Cr?<+hC&J=6iSH|v#`L&j zAN?(-iMPnBvQFCHWC3G?U(tQIcO7U2AG`el1KJPDt|9%ti{ehi&l7qwVBZH==?C-e z_TJM_XEHA!Lq|0IEAcXoEPwM3?`Oy1p;{_eETnI=s!p{{xF1%x^30<5A{ooMW2?1^d(Npq865?J6{I% z{iQs&465SHe=V&3gIoQFmqQjnQbPT17a^R)Nn#JcktWdh9tMsh>=gkVda|E&yUC39 zS635=FT zkGlPRaqm?%jThfhbkjH8bPxJJz$sMZVj4j2a3G1rQ!U_710qq;cpiA8ktnf95)z13 zCV*_kE&^btN|pg0iWUiY0ia)O{r;%O_svC~;#vjL8*yhIa;`gcBifj*;taFC^r4>a>9Z`z+z0H&!xFiQ-74OooaqLqn@GK(_2 z%a+e2dQXzDg+S3jtdjx{T#o}4GPR)Wnv)uL zC#ajF{|V~8duwm~uyGXxO^>LB#l&5WVT|EV1^V6{EWlWH16f%>n?5=yHcnPC8p-?4JO3AvnyKK%9ohy ziY<4=;?lKQS+H0oHY&&;1P7jCZ20+nb@AVkdhz7`WB(t3G!K9@P!G_e6{r`*avHy@ z?#zq&xr16ZdH+l|ehbKY;v5C(yO_~G`y55`9k*)acf9cRuapPp{7iH|ML-VCTJV`Cu~_@IxIX#MgYu=B1#Q( z+M|y5Na9K!H^!1 zpEC7F?0Vlh|fYE!b zv?VdJ(?6m9RilOD%f_tk5 z`uPk=37IybLCi5`fWE%Q&<`(8PfNRo?Am3VJ?Cis(`fv!pQ{D`i~{7(a{rM8%qV+L z&rSszk_$#`JH#ucAl&Lm?v=>@&Qgi62sE0yqQ#c_H`@!7J02u99b{~G75=vmD`MRw z4GxmCasY26tN|K9B~7Q5ph*@dVUl=o&40X^pT?yIe78$@n-Q|4>ejnG+fg0S1peOvge2V(?PTu2Hd%mfn!J5uHqP2Wt*sOBa>q57u4YPdE5hP)v095BG1PXPM}kMlH-t+ji4 z|8r#cv?R1uVJ<_xzb$SY9t;Pug9z$D{u24#Uwh($pDX7PqbMj#gHz^t6btal5} zu7b#V5j31o|DB@ijCA<;ql`8PsBJs-@Pbvd`Yx*aY!Gk7ty53ml>88>H}(=Y$4*{B z3rdVS8iPE54V~*>@hM|$)jb5$`}yDFLA}l7>57gGz>8}jxQF_O2OD@ldU^s5I0@xKU& zqz3aOQU?!aMZ&LtJXw+!94UT=UY#-Jf^O*sEFM@SzYi~twF71iMC?ANta?!Ye9;OO z(Ao!%OSvS(yFHEf+D!}jwO?n>PTBlX@YBP#TjCs>5O5oc%Wj@#bS}_W^*@RXPh2!M z51mggfR+RG77l`xtf66b%uh{pPcIsP#C^mBa(vg#kW8d`$kDo$1}WVm#;Q_` zH>E!|G}O0vLH5%pCqE86uyvIztACKF{69$4!#sTVMu^80n0^H?B-azfie_*zn0LC! z*!*#@+fwyGL6(v7ntEe5aAXLpX?*MkT);Z`Mm{9|QdHw~bLgBUaG@=BVljcdP)NG% zKi_M5#XNwN3>X_nXv@8p6e=EaAl?=W8hl=%wsqXdbhN4IqQa16i)RRKq!xqYwzC~t z@8va@4!}CR=9}?0ry-=3!etmCG?C-G_-UM>>s&K zNhnOuXd5iA`}l0cFCS!W*}xmN=egpBSG*eL!GX}4{yv83@McC(Xw1fCJ9qvj0O66& z90h5&q80j|=);2tyfVaVoi42Q&^0ar*#@OJS?s9J_A(snjCv?160nHVVOe1x=7fy0!p^ms zKdW1HpNNDiyrox?gW1AOUc%L@lr7(mtfPGXGV7)T5RRQqg5=0OIdpfRqOl{JOacVe zTMqAyZ2m68BIoMy^#c_v6HVa(!~TZBo8H_`#r*IsvmU;=3cWVJIV6AG!Zc9v%|QW9 zhS=Oc(LF)QtYED-zL-cYl`d{mFP>7`CKRr4>3PQbQjh{5&i_1quK;;N1WO2U_6kc^ ze_S8&t}C?EHUl%SPVnxq?e#o*ALX2e286jnEQTwguBtHfDl@KG9FEJdTZ5hHSUdHL zohZw3ru))e*$e#J4D4!e^(MkfeMig-N$G5@(W=Fl<(1joG0w~`%!PAmXQ|P!EKj9gqjHpsfteL4mD6#=p`1BH z|Mo^O)ffq)C4X71bXtGyhVlHFh2<&)^_-- zgQjB}oGJ;sx0lkKlUbd;qrCD3x+j{XK4FdO>Yh+Cj?fAhX^1=+CD7g*q&|m5%wjvs z9Z!fjlp($a<+t}o?5~N21s_WDT3Dl%XI`baCtJtqZzq|Q9@3@CIk@1;uTmD8SJjxU zY)KG@dL9u-2#Q$HP@8{OPV=>D*>H#MuZem$wzpUOc4^gvkpi~*0~*Yw#X5s(l&O&Z zGle@v2S!d&opvdl+hD!AZBl?DST~(4W4A8+F=F9Ht#0jzY*W`z8C<%w4AW1XBjZ}r z=v^F5Poq6|_ri%D3!t2Yk5f}GD85BI=JaMZ1THV^2^X2rR=sI%x0bfR<+9ARa=k~a zCB3E867u?dVnC|9!*95(JgVnWE_AFR#H(t|(wS*Kbcf>FSl0tO3=O6aq1qXz_*TQ{ zCg{#y2jdsz5xVyV6}MBo8BO7fX5)d()QZDJQbUPKNXK;?Q?5Yum~c+$CDr zrMxI)wjCen(j!lERXm&u+hdwFu$l7)!Q&>@oiFE))@4B01k?=^t7+dv1(Jx;cX$=u zniok zh79}=ZT_+OV41brMNVh>MCXnX7g}!Vu7($ecQNFE-!*X^Rq!pf5qB)L@+b8|T$)onc0-&?j;sGcvn=tT;(g&&)EiB47@ zH9z!T3(=G4%5oBtCEy;gl3T<}}$`lQ5d3#m0NXSGxLk?*6 z^z-6yi6RltqsxQuq57xLTaBU)Lt)KoRX-9q?{JQErYz-I*X~~wb6#Yb7E1+D{fevh7oAsEZr13wuo`w)74RP-{u*`T&H2+ ztPPcWw^cZ|7|ahj$31uS_f^kSXDAdf?-xXz)Gy{#2k$VR!VQ^Zd6M4sdB|3Ks~<^h za3@#Pd$5ox1<}v6jDI<6zZD)5pBwC-`S8zbl@kQTr22VL679Oj1GEp?r8djE;x*ia zLbHQo;g}~^jUAH_RGj(Ujvdf^cueqDn$Pve3p~09-?E(2%vmSx)7QZfA~M_rr>ZS# z%oU!JNzqj3H81B?g_HsfRXFV{;&B%3%yS&+RweG)yp(s2gIUgPmzLP%h~56B%trmr z^sB5Ce73b*8Ri~N-DBN{Z?NQ?&6}uQ!Tx5n{{F?BPbqnEIQ3#{Gb{o!U;l$60`fVO z!ijsnOO3G0$lKScBl5j9H|s!v{IJC_*j0rA&q!y~?Gy)`c^yTZ1`kX}WGdD`XP20w zq`)uHDlDrbs+4H*0x`4GgBWzL5GVf`oRJ>2$Fm!xv#&C|NG4f2gM~vCgdSTC3rVna zVlI{-sH%_=oNj(p&gYVp?EZu~a`mPAG~Le6hfe#BGfW;e+aTYDqB9jj0`79^x6SC= z_>~As2?RuAQ-MoYHIe_d6{J+3(>8n0DSe~FhIYJP_`_+sD0c96@89mhcXp2+tYtk^ zj-qsiSOgDS6LK=j&oeT6^}BRF+&~=-dLulkyBTN6aGL(yO!NFu;$%cLX`!qyjCiWO zK~|prA+u3GXpfNYnXjT@`*^p3oI9u36WZAq;p&2W2ToTi1(-3m-4AQ09X%<2Pce%t zWgcgZ=ZsY}3fJmMjik`m96lVAeRz!y-&fysmH+kaw(Yq1N&Mw%w}iRlZZ{kVx7&W* z!`N6Ir>UHVmkZJk7T{EZ2U5H0j~IbA*T~_OzlD;8#rT$)=URM(_MIC@Tez37 zR1#%HJ+s3|cv{=4JmCN(F1liA)JTOw}%bkh^p^jvT<q zM_DY74P}tZxFAng)V<%c>h9oE`IozV$*kin?^RfEMk(>R59s83L%Yd%kdhQuH6Q68 zjDj!eQ?^QkPQoPgB5A#^x-+B3Z+D0#T=uM6zz3gLBzw#IKKbSOl%7!_wH{uCtzsX(j~;52=gl49f1b=XdCwZec^LM=7i)-IqaFj<{{**Oe)XE-1x zkpHo6?8C#akDAWT>wWb%v+FzK(0#Hp;@)2>_3z3iq(7ETh&Xp-N4j;Q$jEQ;j2c0O z!`~_#Wt7}bfu+zt=yjCbA3m&`QGlrSn;vjGefMu^i`&fb^)JjFzxt^U(JwT1r(SJx zd|%=GJK{@YeOt{qcHX-jUT!y(MHVzyy0tyYhMdA-;K!PVq!uf0|rErTNmmpmEi#lUU9HRl-YEVIa=z>oJS7 zUhD-;7~X+mj)N*SrW>oiXY3HnDpMBhx;C7{#>w(ALLu5}ve-?^D zS?{X+uJ>3t8(+z~hB~Y$=S<09M)#ARlswZj)$4oL%em0n-5c!Ic!OE5L~MSk|8uv2 zKmKmVczspn2DL`5$)ILoi7|%#npNPVVrzU-|G7?$@ZhosC0t&wbNmF}bm*O1`84MW z`m;ffe4ul6SzQ)0cBCU3F;K0fvP`clW*#NHpVx6{5ocZ98A(|yigNCK)dQo1Eh7mc zqvR;>N`>kna_0m3m#M-p=qo5ip~+Iv)B#*UwwRxIK9O^WcEIyBh*kvWm_{7bcqrw1 zl9JOF(bQ7nDe*GVjnwqGvrqlaY(Q$rmkmNA{wu0k*vwA7pV+z< zoq@etJ;u}t+Dl%~tgj&7x3qY^R?j@bcb?)uBX(J`qm$E{-uC-}!)G!tflAAXF<_Yn`Dgk>SeInYPXh4Mc=6 zEORxj5Dz_bI(~o$w!S+??v&zTXUU$d=;ZbOKxV|jkVrpn@_%aQOv92u-!(psGj&?b znKn~Xr_~l4a{+g#%uzEXGc`msQ(REQGBHdbozm%8*<|hunz@03L1J!D`5!kxOT~>8 zJ1XXa8-mJu=sF+IIbY7_^Y#7qKG$=-%l+KH8_Oryqw}PnTBci7x7Du&ULjAo`s4+7 zkxlPh^P}l6U+fPnnIFBIZ|LkGu~!39@8pz zb79r61`hB%d>RiGuB=Br@!m>y`1KwSG@HYf1G{*6_$7~eZDHzre?mxsXl=dnWz^V2 zYq#pUZI5Ws$(h7$WdzTZ0C3Y)(SYw|T=i_&E-eJrG zX;=7tCU}_Cr@27Ma8!jBt)m?rNp%Mg1+l9Ao|@4-2jK-{#6Y8NA3%p_jl@ktWuB5p zTeBJEPogqgM+zl4qmeLgOyiFRyi4Uq7CwH-G6b{RY0i_>U4`rP7eVTaNxBvEXrnkX z_FLeyU*kEQ3GRH5`n9|-vUm?SU(;ZN(8-`{>EjZl)l91lu$V5S!mjPj(|=GX$;gXI zH6R`K4@U*tQ{o5y2=x~acC`4VLQum8odD<41FN6vd8ZEzZct@*k=oG>uYKQvId(`z z$b#L%($Vw^7DXAEwZb7EFKhs{FKDr)l>sCA&C0X>J>n`&(hG&Ao;p2!MEnfFrbvqh zPWQtQu>6FYv27!m(NRfeOeP+9zXTj$ARU~xJ#Z$%_dVYmalp`YNKb#1RXfkN6KB4!TPVqu-0zDFWAcUn z#@3X>(BssG%V39>$6B8Voi$61Bjj77>zO%4PjYq*={QzySBVtdo!%kY;+7Nw^erK* zk+v(uvwg-;4&1M>Y%N^|qZ3c1IqyGPX}eYQ!koYGN>W!nVJv3uw4{y@;*Rvis0((f z(uLv0oXJ?{6)M-Q7?6Qde^J-vTAc#K8uBi?9 zy*DX*bQXSV%(|hTtsAe`D4@5w`Hb*3qKal#G557%0qeHx_~xCXk|BX=wL#j|H9MKa z0k%?<)!^dHMPnsmA>qP(eO^tC5M4A0+F6h1D`$?$g`eI~^Sz1(vebBsx#8KfGzu!x zSo2CjL3NZChIGR)xt$04R=Uv-xhs^_))orxG5zp{r5jIZ*|!)c7&WeV8paCGf7@TP zt)}h<_+5Ds+049sG;}#_ICMFj)!3NRMJfnfUwO>nS!4M1w^GzC2KALktP7`wOa$PD z$U|UK{U&^rqFC1&^6ZwjTaX>1@3^YBcU;lIeD7Qf2HO)^B`c1?byeQt$$=(%HQmPg+o6F@%(zy?JL}J||CMk_azHW);&ub>lbecWa zDXZeQ{kv>!yR%#-7PhPEexCbvc1CYu&RiNzeCeKe^m0TBJV%4g*qgY;O06WxXP=L% z22!*ED{j9*P`6?()mHpud*PryFsNetU-4~7i4W`Kr^?9B#stM}hg#BO_VG<~lOH!% zJz;9(s}~rtli%6)9+Elbt=^8yFtGduasS9=ZMMy z=zOKT=y)Rpm%vNhyt8azJ&ffhxPl#Z>+<2%w%*{$MKXsv6i8tn10l=|EY(kK`Z*` zgI_=AOic)$F|EQ0;2pcuT!LQEiDJ7QR^VN7jhxw5W;Q)SHUtvY8dYi~HqUcht(nU# zte1U?b$F@|qF%XQTvm6-0pcX~o%|gwU@C*h=i-!D1OIWE^5jXyxt{z$dm_{XYu4W- z;Ln=+7prXM#Q;%FS!ulE+Xa`yvuVLmxUhGsd*Z<6FA{tzyVoUoWn&2oCOW$54b&;I zLY4Y*62e2bB-soj;VrR#Y^iJZE62ba=#U=jhwA%8EAESjMC zh>Zx5{vuT-Ye+gQz>pot3P1RG5@ifMil`0dug*i7SzHb*=0a1pSk*5NUKeKMr zQECq#`e3X937&qv`8=a6|ILWt8PYpLz}8K8R4MC={xifNR@|t{xeMONk-ab~yXYk> zHH6?7w+&#$nCnMn{ViPB_znY<>%kqW^a{&;NdNsbizKqJI@?lwbqg6T&F^gy5G#{F zlY04Tl})NJUXvp79GcpFGiySS?Pu^XjnOPq3{M0l)8SwzvHdZz#lFP2YlB43M`A4h zb1v#NoaH3HPRNUrN3xHIZLOl8-j5)nXA(ZIGKjU)$c8cCgc-l%6{CZ}Ns~V2xO*0l zBH$RsEYYTcZ7zJMb3lwLv^JK!}m(5crospl!jXQo~r@%k@L&KMicl_=nzCjv{ zix@xc%3x>RUiWd0m}xXt=<;5L!O!l1nw!1%y+^)!gALjjmZ}0?FB{*@?-_DSQRiCR zIKE+~kEz;vU$YY;71N^BpJHO=7qcKABk~%~>O2x+iO{!3sh*=kQHN7o4=mfa=od)? z-4tDsg)3iMU%6)Dt^piZ!bW5Ok&}G3g;u*FU4L8}@8j1bJ7B2$fUAK;dZ6|5MlYn) zNLT@AzW)SclwI)@#ZPS(L0E*gfK+NhS_h--_sBD2QbVG&)g^f{O(2&om22M(co!QS zJ5JKZ)*C)k1QOHDl|$hH&>$X&iGnc~k}v2H0!4PHoJ!F}x-hEhX&i_cNxjqmAFo!8 zL$2u6yvjy@gYJO}-MH%%meM}JFbN9xKgndH7#`kbC zV&^?NWWb7#t7nPAbFY*U6kRJNLM*w%?c#Bz|c@Qmir zG~;97=4@Uwg4QyEro|v}Jh$`XV7CmL{W7{)D7adZeVc)sCx+sRr#9%d(_7`2m(${W zgZ}!Sl?5TVU+vTlK?aGB6aAQVdqc$y50je;jrB16rVjVaze!#}Ky)MR?_kfqARJ&z zS5uWA(nUP3nMdkwRU-f++nsqYPmY}!tW%!zCJF{8z!ew(-x~!}u9EU6GaaCI{gim$ zc?;^p-kN>|aTU7nkmWPv;+^7AifczzjC0%`e-C^%>S(>=kP6O^^E^URSMoXL@CY@hRd<)BMt1aTQX1yX+g>NhAknpZ`3Rb!k7X9~CM`+(+Q9PYM!qyG8i=#tK(71d0XJf_lnowGJ{0d82e zx5T-F*mUi)-#T}pjb}c5D(!va2@Kg|w8@4WJeR^Hz0w91@(8HXgSWI@_ zjWU{VEnPI`$HU==7;NwPGT0|FgkRu++KELNjV|tK-rxK!nqAV)S0rOVHQ`R8(odj}3Uz9&apY`A<3C5&6J zl-ut4Jc!7NuQKQ=#VgW4LH&AVB6$+0DTa-Rz#?%^v{is{VC-O0(TNS0i(ft|23McK znTMSazVL(KtV$a?N~ddA z7njt2iM_X~HV>Vq`j4x&-yk&GidHJKqays@3k|1;yKVe5@_1`sHQCYR~wCcl$Y)m54S^954c*E9GVH>JrtK# z>qO_x>8~8am22_KaR)jE5O7X2WQ&c#f4NzJ{{t8Nzu?0Ezx>}3>i=U+)Zm?qseevS UC7#nb;(l;*_Pj*7cr)cc0b2QHd;kCd diff --git a/READMEs/images/gql_data_factory_fetch_1_write_n.png b/READMEs/images/gql_data_factory_fetch_1_write_n.png deleted file mode 100644 index 0f0d5b204c9c58c58e3880b149ce6e5edd17d147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56671 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%0AKNsTbY#s-e*NqvE1$y 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 diff --git a/READMEs/images/lake_tables_diagram.png b/READMEs/images/lake_tables_diagram.png deleted file mode 100644 index 29e13e059b4b36bfa0279d635ddfef4977746694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98288 zcmd43byS?&mmrEmaEIW5;O-8=-QA%G8k_)yO9i)(;O-VQ!QCMQ*9vaI3%8(C+?(6| zn>Rh()APrB@2tgw`o21{#iv$2~#yjwg>%yU?ZU-0RvMTk9Kc?2m>1!svs?) z4TL>h#&|P&y&-$snP5T4h4Up5?N_=a2XH9bl|4*6;PIx~NVzDTv*taV4oKW9vE)xBf&c<1gh zpd&{OGzb^*Z{tE<3LEF2vG)=wL;9al=tb;+`_G$%6^j~$f8I#@gm=^Z^9E;+{QnP= z67o>rT3d(w8(gI#iHfw@1n>Ue0YO`h7iN$B-|?WWCW`d0pQZmZWR_qeW;h%s{d4rv zj#8;^I#OR+>OZ5L9mp*7zo1*&9i09b<#cdCD$n067j#hhYYnEz|BO0w1`ah*|LnET zhLqt!NLumFR{1T_|2j9z9)r)Do9Ey5)(QWAK0scHQvJVU3+;ZApg+ebCxt?g&vZrn zXC>|B|BCZ82!sU3QDtSxInVW1J_0LT_(BuPnE94rbTnu3DFE&1J-(gghQ;*cRs2xU zrs&c6A|oQ?18p&T7MJ7^*!xA4RVF7Jkd5ho(_FM_&rqN;sEk;wbR)=eX^+(xp!|Nz z4|wN3_uh}KB1Y-PDayA^h=`uIR8G^?4Wis6WZ12Jud7no=R8Y~K+k-u^)N=+01(Z< zM3caMhG@TWn6MhUUxajF(H>Pt8L{Hur>+b1V7bo9Y1MqO&%3cKx- z6<5ra(ze0~Yy=iP^VoR?@XS3jlj(sfv4AZx*BOSUjj8O6*Xa;Po#bkER_=(|nZw)* z*-~+U`00niuRm%?_CRY`BQpB_xEb@ey_@-{a`9uq7)rmizwp4cO1-A0_V1#`hf;8l zvKgao-l>P7w}(bsenFgwLQBf^{deOJLgBrOU$^>8wS)2-kV4f;v3ph`vr(C1 z;i5JaKk}{Ue=AV;^L0gB*(D7^Ki5D3YsB{otKj!^#K0ZG*Z70tBU)$+CiE!cDWW}T zM06`MoT$oWi0yH45(3sLccE0(4reeI6M=b@iVZqsAQMjV%5lb(G*-5l86!pJwyd?A zBCWBviK0+a6U)*;Uv2Lrg(t6=(1_vopCojSNslCu`=q`^zE(D<*R@y_?kQNj4Op0b z1p9M-OJ!7YvgGFG!+#8?^@Y%)=MDlZ~FhNHMz{<}8H$ zDkX=lpgW1#_U!Z(4`nBw;x$A)ZaH@Q>6itd^E%o@>Q}ayJHLo>tho>qep!l_W$`xx zR#|5ktFfYg`TFAUN%v8g+f*;*3^&Wl+ht%2fJmUlRJtJGYe* zvxH-Vqz?r-BOk&)S9%(jHN$^#a_;KohqB9zsXY?cbbs}9o0d~)ni5^ne$;-oz54e{ z<2RBFBBlhLokS)$pE^}OpgQqC-v^yY-e=}5jnlAS{Fc}=GV^|Kz;>@0&dqUjL^;z) z3{M!4?@wtkw#b7EPa8z>&eveb*cGXunNvHmHU~~6z8HLyjUn6)OB?EA|MW9`B zzkch4vO$_wa4b)G!K+8LxuJ0re~J*zY?APx@ZSVZdm1n{{Y$O7s&i?$b(af4X<8tLAo$Mj&^Hijg)3jtFuaB#J;B zZu>#bVoBYdxa>1FK`m)s0KMzknP;Z4sJdT9=-gsiv&*tOE*%>@=a>eYTRjNu&w#M9 zBlFRd1wWfy(R&otf4mGV>Os|ZZPU}X!x4km8;j3WI6xtF)7j_cB|?!mIA^Z^E>XoA z)BTiGgVuzwb2xaxh5LLEd*orOuz_%=R8QTXsW}_%3_S7U&&FJwc>`im3jytR6LOX!h0*xNl{R?3yUJ6VjuyouhC+UgWF0^r5%fTTLT(4L2!sbTM3{3gBltgU$7*;V-*sa!h!MT| zB}GedFHW>{ym0eb=b^v(Nz{8wP##{a(QSP(;+I$a(I36_njRJ+YcY0*i6~6U z^)gH_kf@idpytlpiE@TNZe!Ow$Evg=pf-B6b=&*snaN&U)`~KJv10?4K%COFAy147I?5awv42Zrf^DjoM1S z>yX+jCi>swTv;*jjk4Dr&W*W180RACC~7+ivc`vgBD?!;Kfxst@A9HHY&_7Bi${S! zIaOBeUS}pmD%%;LS|wnXjhmPaeg5OG9)OE@# z5t1|UW$KL5#EmS(*`ZQ2IAjZ8eAEKAY$=C^p=uwY+;EG@6s|_Ephy$+i?#87Ej>a5U9-3M>1>lahwj4LRMw z?gDB{(#>_HQR$%cNZH7=E;Az?;4OV3AGY(iVMZZvZZ&XA!^&EcRTO8H<}IMoc1FD{ zdL&eJYZiKUwIkk74F*s}M%W9g;Hn-mYU3#v2PH%blF9l2W-iiB z4t15k1XB-jGKmO?YApsw?GGuZl8#C%;FmFeY(dg|YrSiK_VOjcG+Q1VU1d?8eIlJs zTk%Y7RKnL7qdBEXs)OLG)j?U6DDtPK&?;SPP%9P_?*pD{Ew!J~EG!f9tR;&Qs2ArI2xPH@$`H&UL^T|YKhhj}7@mz%vFKOqWxLWo72-Zke+ zl^O2ab4SkDB(?WdttT)MS@KiG+C$*F{sJrN=H0k-#Hw|S(9H$mMX6Mt0I@}AaBwM7 zlF_(=+1Q8cd5xiuKYO~1QaPIQ5AgodEAicQ8n4iKBO@+?);Szn$f7jD2y*J>yQUbf z%`!Anxo66^V2ZOUt46;s$th_6f>^b*h?Z~f-@O3S&Bxe4b}e@iK|oA;Xd@;dyT z&gyaeaFq=~eq83vTnkTpT+jA(|4!mU(P(G84#5A}VbS6J%MjP@tmm7YYx^9MlSb*2 zydqpDZHG{lD#lGCWrSC`c9ABp!rB^;uKh*pRZqdpOq=Ni? zAvm;`{uM&2b80X5TYbb8EkV&jRl|Y{ z&!Zo{CR)4*CER$U$@*^v?Xn-h8#iW%2@=NU6GQPEFUqgLz3jsQK#TP=;8t|66mHkZ z$tD_I?y|}m$fB9bHeVBL6j(;hrK&{qTkW;_PNHTh4ktoES8{AHjhSC@G6{-=Z%YC8 zO0=nd;-Rp@fdyIzBbv_)^PYIqzQ~}%_;7IcSsgtcBW@J#v;52=My(|m0cx75JE6`USyj7`a_io2sCIJ+@Pz5 z#9Vg`eoMtGy2{nk7L&=hv6>SYe7_R{0q`{uM-PaLBP{5zNuX-*sB zmkwu(?c^Kk=;09zkt9bI#j>)}AW%CzKJ^=P6aO0XH|6hxc7**cUL(e*(d}}-rz&4( zyRb1FS4&wB68y5=C6WDM`Fxw|!f@r}k2yFS)R>P4m1UwOU0uJsPsGG2GLl>K2Y+i2 z&rOrbQr}04Q^bLGwDR6#hS`j_k$C8yJeuQ6K2bz1i@_&cTyk7EGM{DT#IKuI2+CqK z_7sa!FZ<~)C<&Q6eZ*3YMe8p1x}%mwFv6_VY4Y2riZdMviUf*2B{V0bjgW08QwK%G z_N2dDk^jmmS(32vu#h3idr3Pa))6wGgq5d}gE>)W_W|iUBZt5pG6|37Mz^-GEy+%Y z^(LySSr)!%T^{%-ki2hcawUS&iCMDai-6Y_RsKTM$sx$nuR5@%MS{~iX>AuvA8=`}F8_@J(g|EMI=XGs%?+^X) z&}3_F=@BkqKe}R3Ph4TuNW1=PyO}vuOy@hAHBn0R1MPu> zmqJ}nYmGIA?QnT=`7SPl3a3BRd$tISPJKReDEP6RlOopw(txp>8~nLAIUd=_!?dDE z^jQ7);;Q!)v29QVuhjNA@RsBz%Lm>)9uctJ(t#2!6g4V7-{LtKS3Di zBL2^DjDPtIHP8P0i~esW{xH_K8YqfA*$5&Hscm z3A%o)K<8--|CglB7uuiPl%s+!QvT&_E;ZkSmnfLQ$C2J&e7xGfWN>2DtS{@%>!kan zId}haQdXpj9DlBi7Hx!mbcJsk@H*DjcCnni)JOhKuWV$ZO#uyiRyJ+p=E8Fv2RM0X zrGEMG3f?F#08>ha8(XK|H0y3H39~w+JiP9qO7Md5aVj4pVn3t8*MOL2j9|pDKD5KK z#vo>px?fRG4kW+&k_rE&vl@#VTwy($&NFz#EzB|S^Tkglf(ZNcItb>pPluf*}V(0HQ3-!xZddb*V z?LHx;4PZYGIPHh8$E!OHYV~thG-jak)n(u7lVX1_o}?cdfg-D|CHn=Sl1^luPT}jL z&C9Vl+n<^BRb>HXN;{|yme5ODDrWhESz3Dh@O1N*@Qib&uw`?Sra?xzaQv?r;jE1a z|KEX9(f+*$rT;t&=LEkl{{nu6^5<5}TKtES zAV0m|IuUv-+sR#uJa7yP2VwVytG@CI(cN}Kg>)<3XDep zlDUMd)EcSNjZuCN8O^==n6n&R>swjlVMR0~p`A&#v_u(~>*zWZ5)8K4%54U56SBR3 zV-&F(@YGv_l7WHst!-}_d;e7M=;pVD&lkK@Au2e2R>Rz8;sRY*NLXB7h@dVqro8EZf!hmC`<)8z7Td@^v|L%+^3-{h-dQSj0N?6>6Ru8!I1 zYp;cQO3HzYo;jMTnz4t`lm>r=A0DE!Xio&4cOv^zMyGR}!kPMx;X8SniwBoI2U?(Q zQ6%&APo_1c+ZX~*9nt$(drcJhK)BPNNVY5u56IRgoQ`SCK2Jq4j!(1sgOGu_xYYKM zmwc@1m5Tx0-u(^L_HYNa`I(!Jkpn)>kj6KK&L|Ci5d=kJeWON5wu`1rl;0;7kEKTT zor4s=M}<5YP3~UK;y2a#2;Ic#%UQ;QEq0KQApynE0PzU<>y`7<$r_s%?JEqf;^xU9 z`5f;EGW-ugd1`^-wZYM~Rio$*sV<$mN66_)gHtc|QUhMEHl(nGwKIqLn@nBl*E8uL zF;t2avkf-em>zytvNd74riHmdx6;%B1`V{tq3}+sI<`=)MEwhjkwWO%s7el?rx=L-Dd6zC&6@Zn`U2}|H-#eyJ>;;X&zJiuAEF1a zOl&|(V;pcCB6?#g4r-?Gb;%9KT5{vxZFVxJT$+@3KQ2NOSAV~f0SM>f69o)mq-hE*4#gY<6@Y5N7VW=z8RWin+ z0yNdJ?ojbDAbhF1mg?$=tVu>y$e(EMw_(0-9PbH>Y^m&QKDRye!#PJ17po%-lvK%RF$ zU!A=)gCsd&H(I@XbK^sRi@_c;k)6J>zyK1TgiGqTrkabGzR)O%xOK4qYdki~GgX(P zS7#F*;Ft>*5_?Tio#6m;Q$b9WdKYnyb^`nOs6<#r=J=!nmg+b`P)%w8I^RLk{z5>; z#u%q-HYFUeG6#zY4SqQ^DtCOnQ#~^46{an^Q|HvJcsnZz_6?a&?;3*#|yPec+o$iQ+tJw~w?{V|9+zGfokaPh!D+635gx3XW3nb>#bz zSz|%Q>2I_~s27a7iy!9Y+ZeNzeizcg%3;ES`jVn~R`DX_4-wU(H_X~Ad!ub1j`5c! zw7I||xO#7l`{M?h8NYtwP5>&sh^JC(s*4QiTtwt)BY8dL{65=Bbi1>K##7ZuOeAPJFlwF465Wi4IJQxC?Vg>B#iXJy zcpAQs0BI0t!*F-YFtjLT`>wL&oWGa6t z<3>XmU^Y+r&8q+{l~%wNJzKNhNvSGM=Uv-sWAY7obLdUCicgh9|J&7G_|Th5#n4ZO zXeh#kA9jLGTkuE}n3aHzMju?yKG{>f>>8+rr#MvZCD*rCYnzUfe$~*57Gfp}`viZQ zx~+e&(|^CH_iNX_pntI=VxaM8efv^bUo9iTU`!B&^c#Vz?ncOnhtkNxS`48aQ)Bx= zU$mo(E54KMd?>j!dt+~G|L=zR$k5f#xO}3@wfmASSKf!kl{Y*a6kAh#jFQpb%>9_a zc5q6>!)TaY%V%jj%KCkFt(um*P(Z`A^6AUQjqXoN3rCs}U-J=l$J=t8S81>0IG3&t z5J&w*hQ`FZUTC! z`UBkR)m{G4c8P3SjVLiHdO1O_#oRa$N67KEZRl~!u9-I6D(E)9?g56WNo6+q;SDV) zfn*g+nXO19`APUzi^b;AB6B=>?i;Y(tMBS4GwhO?jfzbeLusKc`X_lo?c4tGrUGm$ zm{?r4Xp!|(d)jw_S`ZzR#cF&vr}*&LV``I9#stPm-xUXN^!&#L36BKCnMTMw9-p{h zQyu9j+E)8n6r&Mo@+j?HX%TU6HmD0KHm zBBP3fD$QURzQ%b>wYE=HDp%2Mri?$5oE$|yFHumi?>zeRp(YGF=|d(E?H;ZH%X#>~ zF&@?{|330)sg`=~1-oOe_Bht;M=-0ekl2ClJ77M3Y~N-)4-dsrcxbhv&ailYpUSC= z;cL&a#!r)eBjMnQQS;h@UXzxa8I;kad7?^C5C`LdlO=P(3Q3oigVr_k!_?E2k~xH^?piYCB*5abPzVpE4i>xU?b5;7~H zo?@jrJB6wg#C*9p^PFDp)zBut>n}d!J-y>-&<*~@CsbNjMtO%>*iBR-^(`b?vwD0z z5Ka8+T{@ZeE49cQ0i;J- zbCsog^4xfL@Zva}_qf5e9jnw;Poy6kaxxqTEqkf895LpH9jonH99^=(NJakfD2!Or zLguEAkjvZ15NElpFzy7#8W+CVstlG0f45Tj3XCEnUqZ{l(*P6~FBt1Ax%@^n78mja zo7nZQ3ZR;@e#c|l87q&W#^bL9cijfhcizCaY4q#B(lwFg){hp)&Uq@~iv}mdF~mai z>$@K~jC{Mu-}lsoo2d2g8xn5(8vS3Jb?p&r>5t=A`{%hW23Wch&~r}Xcas`V8nZS8 zH)2xt_%~e5)$F)cuWz*72>Z7)ex-5=HNRFz~R+ zDSVA%FaIsw*po1Y9W_t8!IJMTO-Jhu*~P6rpHH+0DbeRvZmSvP{~cjHTE9O z?10A`4)+lIUh{9|-(@~FS>P;HnGOE_Ms(6iV`dJG3y$0Ys2zqgf5J3u3`?$5W_gVr z_4{h|PI^{HJ6(KUFxo)ypE7i{dL`$JczT%&!;*;F3!rbZw5N)b_sy$dDST-NFrL_5 zA_t3R{`7@)T(<6(Jj7>Rg18K_qq@(%!6hv+MsJ)oiH(ZI5kC5C#CiGANvIyhCZ^g((qHBTUa4G0WL^C12r1bmQhs%M=o; zHr_YRj8diq-5hM7#$59{Bs}Uy_Q?6V)*tBM6xTVks|pnct5_^9;|rs1eMyVBlcDj< zZ*kE-VyKExnEk$4MPx$s^Ls?6JrcdqGOW}}KPsVK!AAxY1N#{g-Rf;ZPeUF8WRNeA zYRt1VdO%5;VI^Hz4FCWE@T6XZ$$KKs`H$Lm6oht;K zm@%{;?H-1#m@(X9gHxR&GC{m`jb$RPZtMfMGSOd}Hiol*!Z-}I&uX^JS{-7WkP3TM zDe=Y{<8ZKEQ!6fcOVfFEUpxYGUbEFT>B~`VfJFtG51dXJ?Cw5QQS(#oN1jka4wFs| z-d0*ni}C}2-|-0>`}n9?l@IwVT7Q{-C_B7L_a{Hq>*Gr`lCQhUE?vCtC-A|dW-#3# zEMXoI<$1FRTTt6&;*j&zmxE8aEBRVRLd_yb*cI@^Tvgc91Itz^iG3Q4R!l>(BP`T4 z&GAx#*74YCy}_)SSh&^FD3Iv2A`w#GRcEg-oUn9PyN{vwHeY|~toNX`tAv{h$~}B+ zt%tIQ^WE>A&<4WDhl*2T`u2FVq@^nvS8XA>cWMJ$8(Zc6LL0bwm1$?j@w1@{M0Poe z2Cp%q(n<@z#sH@VaM?g^HPXJX48ok_mZaGC2)jRB(W~hqU&CK2MBW7hm?`mf(XQdA zoICy55s0Q`&Gzhl#MKqOD|{b+!8A1gNU(4DY3LUzppgtDxg+ih_(`E^?5*kjao$X_wXgD%Jt|T#G~2E(25XqJODu&t;#T&8118tA_*6qQ4zE;hHD;$dH*%JMqZ+$DJ~v zF00FVlzw>srCLvBt|CK!O?8exQW8l3TRpcS> zw>-}Z;v&0deqWnAX0*P#_lCt8JYL^s&#|m%peq2w(rvE|#Z!Y1bzN5An0%NW6wcV? z5}xd}v@XsvOiCdnI7|6V@{TZL0l4@?2~VHqzc^D-)tPl0lG5X;`@1=-4K2b&J4C8X z`X*2wR@1MIoZ8k}iiL42iQ!8SIa`+b78;o1WBQbPsXtCF9U;x!L)3 zeCNG(rB`y03hQT4#DATcX=o{z$dDwEk-wZn-}fj*CRJpZ=)YWhp4i&pa`qT=r)KTF zFrZ3D?Wemw^dnhKXgE?BI}~`j@I@A3AL;F{HCd;-HY+DH9cdqCuRf$H{RC%o52tD< zXX_i&{Oa_JEn39ja6ZNdM|e=S0&A<(k%|~zr?0m^oJQ!}BOR=><*R$;O^k##T#KY{ zIB9J(nB|oA^U)F^>Y&LXLwb83i0NX)LHe#Tosx?kV2aAD%1JOkMPvu$i^rmKTo1(O z*PTcy60c8%Y#x`=E45+1{v@mSEK7$}*EmF6Xt-settT^XrIuJ-FI zC0;}9UK;i=JBTd-Hu^aQP#>!_P8N1d&*0u7^;-*01>|uufdnP2co1~*$TG3e2WH|o z`y+vD9zwV>0~3aaiG{gSw}adQF0|K!=}AE~fhAolMK?%}vz@Q0w(~d_8gLOey>7d2 zZzw8+K3#3~Nn`!biXb9#qe9ap_$)rEu94jHp> z2^(+Q3{|CH2bxM9vbT);oTt14o_sRMTWn9PsdWqiTee)ITzY&!%#z5IeGwhEQLYnH zm0Wx)heQ0903C+K6cQw?;o4N@pJj^>`!o7{;R^}iHoTPhoszx@&Hkmqi`(EAIL)2h-$h@WewTLV z#<5q_+qzwn+qwce#uvA!_Qt)^Tp>^;k2Xk^z0E4lt(19pnsE@~dURc5`N-L4^((eB zyeR^>q|U==om223dKHFerHKf+&{2Xs9v+7a7|J%hY!fk<5b1)ehfVWCW3o(>XD{O6 zRimfplE>?G4~B&pIjcrJ2p^DqCvd_M6qzA5xCHU$?M8E~?#Cf2I;yjeZO|-DB#0k6 z=E@tx;7u344)GX)t%%-(NfARTayUk^eU;L~xa>C-a4Ng<$mG1*@7Vd+6aYtw`7^49 zSuNh#?v$~~a*hOoPq1_qnqdTurA!Ts6_!zgpa#dsm4v?Q97ynjGvu*!Qzs=b8 z(~fHeo76cW(vae~=*!s7xEtS=Uqoif-?J3TXP4dTyFm0JiH zr;plf)#j8&rKH$5eY&{C6JX~KeNeX<$(Tj-0({EJCe>WlfVy4E#ypg(h_1{XeZfs_ zRy$NG<&iffD3ehLCYQc9L`Q+3F8wUjXm-ad!pEn(-)1meyEyJu0` zotfRqQhOW?5V%HzqmvqWS!00RaUM`JxnPvOt~w17?O?9i5*jN(oCBGu$@<2VKT za(HxQFWs0K^AZc;oZl+F@L^{`8Ik;W%=JM*+|2+D4BRCNnoV$mpbvl@7s6QcoZh0Q zXjxp+F_O0edDNPk18{;gULvvvEbf7b9lKGx((Po{AH<^ zOElK75fvMH_cF72C&qqKHd6RbiqlJn#K}6{V!?i|<6;-?v%Z=y5l9UG;D^+qOP`Ic z@R>=I0wf&Ry4F=uPwZ=qe_uILrg|Ys?*#4bO(w*BOA9q-i!6b7f--f;M zF;=5x#mv{HC1R&&E;SqyUQ+m>RgmP@IioTL5xhfKy3 zlzYiTt&R_dG09$ay%*R-`dg6p>S*Rjsm;2@hPqf{;U>TeaM`)vCpjMM{J}D55Kw5> zm_t{yJB@}WBU%5VCis23U1Uvj6#K|cFt zj$~lIGwi95XX!>1`Rbgm$Ix#Kd_S%2<4drZyGjZmHI93+@aui=#V>&9ch(%IYRaUu zm6q$CQrX4R$5b@i#T8U1Er^Q`h~bS;l>eiWuFL+XP#sn>w|73tb?v0N^TN7dN@BRD zltd1~<7vs3S)GOOUy#=OmHq>$rxbqmz~O8`D3&yg0N6~9UX|SB+qg5GQ@b;=Gg@e1 zcO2KmOKI6rxqr=PuYFf2=W$@8oWbnhDY%*N9zY zzl|TTNk^&3=p@TCnCj!=2`pn4;RE&*5j2`Xu9#bqeHZa7NbyiV0F&=chTPZq?h)p^ zo%`)v51raW@ zM?SsF7+&0=@?75mv(CxsX29z2vT#wx(n4LRskPc5o5VDOM%;~9xjCALZnYDaeXR1r z`}R~$v1-ovzHP{3d}sv5Zvt(93Q?aA^DEza0>w;G%PV+3#QlsyMsxQ?pQr!%LjRXH zv7_EyR{`O&-PM&G8V(+AJW_uHn!HZ`K*?wDRZ0*OI~#-geDp4`K}v6S#h?a%FvUN7 zTLpZs?(sEe8PVu|yGuO}MhEj6UdEg4k^XVh3!hGwE_Z)ZppjH}G(Bog@ra%|deQk6 zz0`X8;-+`=?Z>KDQ_YeNLsm09MQ1+)`C~Fm&-!$V;RBFeT2dQ6R1PLC>)=B3Xtf88 z)ED9Tj!MIKLOrOra{hko#Yhifo_KTs!i;fhrpc_&>-t|sn|C7`JY9GZaAx6`u(0>o zojSEMIKhR(pVN9+ZBdsLNsecr1$e)IDnm0)pJd~XQT=I-*)O|LsF|eBJE~BQjHdLF zFJN(IJ^suln3%^~_m>#Q5&kQK{a@$e{w3dMuL-YC`!AX8a)o$_q^|!oQTlhz9NI1M ze^mVNzo}DrK4iYo4rgiA-{sPOA)DdF`3sM|X9 zq(tf8p4BcGLH-mwJkQ%_97w#4fmYb;2~vFcd!f>=K(8vX=Z$>gkYD|cpZwd1e{E#> zZ?!1xMIt?C`JrR@uS$oDKFdEXQok%}4B(_f;iPZlE*DEzHf7&HGt}dV z(lf8S3JTEx1Rt>`h+bAW7O(A0ME`X8R4#1wkqCPM5es5c?4rOdU#xW6xwDcul4u~y zwU&S;ClCUF5sZf`rgr#d6an8J^4ojE5{c`mo9T&+}C;Z@3 zDbv4ajE8&Q^-BAI{*4YA6uRZFr%3;WJ^v>jD@O$5O7{ONv;Osf2gtJa(hAzzRa$d# z@t#b;CAaT%zRKhoL`5S6I@L@R>T)Ab$O2-LqRwH{*DJJ2!}^|F2~e&&1C$AipA5QDEkV+clx?y)~O>?^WA7NG9niEhm|yb&6pQI-$bA|>2tmx zI&@SqtWp0b>}b8gASjcMgtb@GE6*R|h^Ymqyi;z?Rbn+^i#S zZEfKTtI|!ACl~rlxsveOBl!CILb)5mma&UPtU)={Wo2s>xOHEG?iLfu3nbCet zN09PszA6bb2D*5jG;lAHjh+G+K&C3aE81$rI_Fg7M8CKVIfI|t4B1RwTy z6S)^*go+0Or83ckxlDcPpY4M`q4NE@JX!CxF-5|eHPxhtD{A(=W`j0dCDlW*u&kb~ zHU9MqIi5na=i%;JLYr_7TxdUCXQy?sJ6X_o3JVKsyV$_$D??u{hmVT*eB_NAC}C`$ ztQ;NlTNIc`6C3>LU%z&_E7>?5!)rGO0P_74KP(DpJe)1Ot4|Q^1ScuWs)gk@g zIsz#{D&=qrU_JnP)dLNB^kGq_vpML%;qC1MMyKl2i$L+6@Rgt97QLCgH*`{%rL(qA zag?{eIx~!uf*iSt)}t@BcPARS7YcVUJ5PBD$8U+)L>yR(VNI_LLw+62&$_0?CCAkKb}+Bx3?kzZucek4CF+Nie*0WADBK( zlj8$`ta&_-jlxGIL<=jl59ajD)|4B618xX8kICAqZsF7Zs1WM>+c;jnGR3-=VhARD z0in}BF@e8_6o!^VCSZ5m28-7NCtuuL-iX8q<&x(2z`wuQ+`FG=qs>*B|E{hWNW8G& zLAn+=<>o6~5PMA>qeL0Re|Opa(aUsNMd}}lU6MeNMH1%Eu~AK0dkm(1FZ4(h12#9d z4cP{|pAxbhoWGZsmPR;{b4AmFPhTpjjv0t^Mp~Oc9$)_=`h(-lOzPy9lXDx&-#QOk z-Zl>HH`T!r^oc(LnekV3@zcR`6nZ?m4gi;{5Ffp^=$9+^%ay-NI$g*JZV_TOLr>60zLCWf|nH2b02;M3I9csW(r2_R$y66gC?`C(`^h63z6 zzSB@|obI;bJ`EQcfbQuh0>dZ5_i0M(k!Bjr6T^^R)`aIRGH+@O6y_3jun7?=;BC~yVM zK{+pf;ox^RFE);b|6j&ldFFfA4Ne~F6>S|`vCl+_3xSl>t<>LiY823*L@$5QR;mJR zG>p|*h1QRy%1l8Q zPvXwTA87BMVDPbWxeh^3L>r(LS*mG*Fn&1u!7ku+ zl*u=9adOhN-0F3j^K_3~TwLt({{4r%yjKyWPP?~b9OnCaHy*cd+hUXi{L0B?KcrKi zM>w_J9`Nda;z4M=#t6bSxEWr=Gt0c}t)Od0n=tNau+jkfTM=*ngq`Q}u~?(E1EP1_ z7{_|4Id!Ad{%E?o6f;h^WrSAKX}=S}C8Bbx%L>wAamW<<0bf4Iuc3j2k!XvM{0e$b z`;c4L@}|C<8p(70#Rdr@G#T2sJB(agbEJF`X#Hb$#&O3Trhr?K+MYm3_iIS zVpvK_%G8Vu%j=`%p^*{kdUIOL{GD+(2HCntlDh!H@xVut64r2YmyZ3^l)$zR?#Qn$NYj$PYKSHxvE{E8Ogg-(3l_c-TZ`v5B0Z!43LxgY-xNAa2XoTNEYtG zmDY~l6~gu{6#dS4GW5t^ER49`wrw%#x-nVt6TX6y6Dh}(MdXMA(_46xl0GUY{uv%k z5FmcM_Qw-ubyit_9JlQfN-X<58s^GVX!*%a^a1DlKGnjrRJC7SP|aa{f3@h`7D9d-~y zi~7?QWuNdd?yEoa+nr_Cb!7xw?D|9K{rnH#Ih@=RQHwwFKmH_=)?R#x*|jhP`+O~0 zst>}AYF$3joXxvOqW!7lenC~M|da>3y=F_OruX!JXcoDEHta%WF|jC*d7TM+iy3-{HSKZ6ujgG#^OC; z=LU!=d5T?p&T8mnoaCSV_%@V%j!sC;EKeEKVm@t?ABO(+b$-^6_G9BuWN{ifqM{T^ zjtB7zK&iXqCRWXUq%y~cpU^xP`DWj#Z|3T}{2ab<*i6GC1HD?z`8~?H7o9xoiPU_< zquj#gLn%%+@pd!L)0g555rx3o0Xm&lWGsrcu`FTWdMMFwW`kCV>Ox%TFgGjC9&9K) zlGg*gQcT#|rKB9$@1Qh&?|@fg*oXw78?akhPhqa2eGzT%NWYGyo?saPe*@P79T)Q+ zn5lR1K{~@k6R-SVwIMxH;*a*Nxltqq#to?t zv(wsB9o|wG-&6I(D|0k4Z<+g-tvJ16x47{1JV6pi)LiineMqCWWXt>r!_ZQ}C3R05&YvJ>T=$ej!i@5#al>FY|CkXedSZN z)>B_h8{H&NjXWS*@l(ZMGj7XuW!unJPLLHd{`IQ_;M>81d3v7=-u!Da<8toJp`3DBotf=`(xLg;&X*x zck|1A(8UW1M9c-j(M zRTRb7o;5k(i!)G!)s^vZYd$1gy;uAy{}z--rvU*7qSF|v^>pOWTT;AtJUHeEK5}A~ zm~RMxql>+fP8);qb>a7h$@iz1E%p~=ST&TufwL513V zvsF;XW@v1TZN5%(RMpOhdMa?gI>oYYigME8Y*2p&R$6;}2qI^GGDRRj_GN(I>kg2o z&COjcK$Y}{023HEKS-Pp6dFHT&iH70I5nfT_|xBt$J37+rZXTA(+pw|mheOp5_p`3 znY{zG8D|qW7UtMXT^4Wks*Jm{@Mu}8W*RO#%@=RAVVIloLFBf2tYunMWdqRc)mTh? zyj-g%1nR=6iJ7xu2DHMz8&qtJChMowZnh7WJbCdtBqv&OK6W-&VrDI@>t4`89JhyJdiL~}Pu|_}Z$vANp1O6u zN+r19f3MQ?;RgxykQx}}wu`rN&f6J5jtA4+=CPxIld-UJdJlB`moE(f)w`d-V0{sv ziwMX&+*zD6BrtwB%QC&=t_CH1$+hbt*;4al^GycvVo-3w4SDG|vuCZ1S!OrReR zd~X9E5>H_FN5u12tv-+6@rPf1=Ja@?Mkj5;A|Em9{ZTzsPyQlRzoBa{UZhrOjttc` zWM;cvaJLti6?(AIaww*>3OhpCcT~F?F85yk@r=J3F)=NAt@?*AHac4leSEdhz;iAf z_$V@#EgHSv8{RtF{?_gdI&s&S*hz3q^K51MD zvQX6Hkn>gaesJTFDrzTqI3fqPTZcz|yh4gn)XvRaP$=`eN}lre&&bZm7WLie2}J|9 zd2^49j6gfZwB(yx-bc4YM!t}ZBQrQs{j24huQkRIk8U%1L`=V_%nxd&@5Li+X!d{x z?Mh1n;13hd1>gy+CUR*bO0P5nA2=81N=SP7pu&8AstB#Et?dNr5w1tGcLYJz`%1u_ zBRZKtjZ=8KLlgA>tL!JKrq-~c%UzF3AJ0+c-%{Vb8*woVeoE3$T^DLT=~3k2 zr03@220XOmo{L%|1ElLi|MqIA%gsn^4_x&QZ~W<{V#S?TD^L7HwzVvL<_D~QExi2` ztAgsK;ZF;SRf;;319Z+Z^#9o5)a?b0jrn>Wipt}w6M0g#PRl~?cf007Bjv-}^YLb# z|HN=`W}V_sU<_<_0N{Z!aC;?IM;Zs|{I*j!%Xu|N*|FM9hY-8|m zix)Ry_Y~_MuN6w+Bu}?tu|`q?V?dPplJ=JFs|ft}$Ify!6{9J{JMCDzf-ufk2cTCV zp@J+4rK_m_LEBpfRMoBR!UEFW-2&1j-5t{1Dc#*5y=al{PEoqMyHmQ6?yhg*v-f`Y zd%pAc{9npkYtAvoedUx>=|5Vmg$MW-<3@e?nce0hP2)IAQ8hIzJ-=s{(PGhj z{p}laCeCYGg6LoYXM^daC8wzRhn;(B@Tc zrMYN)sv%^Fq3a%SYwrPuS5!%QoN ziG*f%@M&C({aM_n^1gIQJUI<2N2xiX+CHUg6)AFU!1RG#T*YI_v*)g_x~YA}KkqHr zb#Gil8G(DiZ=%%cGC>4R)bL)t$^FKqYBOX#_YKIW`@Jk2fM{Z0u%65fcE$NS;_rtd zi986O|CYz$U2d32c1=Dz|MIkzhl^8J%ba}=A3~Rm{CoCNzEA-vC9>oZ+i;=7=a0b) zo}RB5!|YN}mL;cs%XLYzw z1@_8tJQC3aCC_QVr2)r%yEfGrsnb9+&iDC}pBpIFFNUC#ds^}{sXGw(^l6)A(A(+s zdJqYlW0-vQAxws7z7O9(MMUMX6e*OKy0Y z&wAM@*dhN^QepNg089^nH`r+HY({zSt!(~NRh1CbNvZlHd}eN>TkAh8j5%_Ad>&HAZcK| z#EL90={oZ;%sx-3oRNldnSxivI2@WQfDOgT|c)Kphb%l!-2tKbBV;(bra z@IRP+$0iF$nN_fB;seV;EZ~cf`|xM8H-d?UMY!H}MLJy^jxRx)f#R`(G6|@0tYR z*zyFL-)oZFhO4}O`0ycHK8xQ(jtVl%Y%E=9Z!AMdR7GE^fK(6e4I|TlETj=*!GB8q z5}CMV!&i8|2E-ac75##uqVAEAvXT9Ki+qbP&;jdT9!^y3TjEh;+7Ck=*=K zDofGu;NYa(=ls`$6GE83tC}qb={+!vl8{YFD9Os~yIxhjQItPSsT7aO)Z3$d;&FFI%AgOhqPC>~bZu}yCsP4JbTkne z(EB-;mwSdM=Y{4)@ooHwGf`UI7SU9Nx9Y;JuTEF`?u1x2Y3BVoCDfj>&Vlm^$^#K2 z@Ws6^c^MJ-SR;qvTi^8*oCpu0e8M48=a|$a{UUbi_QA^q-8ePlD@R&9W~DzR3Fzi8 z&q4lB=O$r(Z82($T5{_=<6^M)sx3*TK{w3oluXC^>JdG4Xu9b+4nMrd{{k zA2!1ermfT9v2COaXymI&+~^#3xY;&d7QVQik3KN<$?}!&w<>KCOK=hcdqg%g>R-S& ztNr_o@ZinNWU_YN!HY0IJiy8jqJV8BM4&L$Se)#|guG@02`7ipD4CYff5p1yE(KRG z)V3syR+DcAZqGr*>G^t-wu*+6n0!iR9B~EPAGv9=xqX~JsCMQuvRXA4K{fO6m zAL*;At83Y+fqNCf<94zhO6)rUm2TH^4y9FR4GY}2DL)4X2TrG51U=t-ldFT-&r8w1 z($a9QM+^P{ecwGch9rvFYoN@C+u=H=Q|2py-BRKQc(tT9IDNX%Z#GYN$MPzjOt4oP zdd$l%?g>7#RiiNJXnxTvRz^9%4N#R3{l+nny`2=FVzeBBym1d;wzMS?rngv48lklQ z?$_MQ-6Re3)tb1Cv#bZMnI*ICZnD>SE|4y6z)t&3*Tq>_g)OPxZqpsmT2W2CM{ZC+ ztdl=z)WytR0UOYrKFNN{W|YaWGZw2bf@l%Gf4E1!AndK@f+y$q#I<@0S!ZiM5!`&N zP2%9gId)5o=+zx?s_sKaFzi>^6#}6=p|Bp4ayaPD;X#mp1Wtuxq<7yh(lqPMfVa`2a){P@g*w=1BW_VQAX^QjK|w z?uf}s5xd7mfL6F?)092f=ay3P^N6Tejf*?#&p2g!5oMR*c${08UfvjjARES+9LXEV zpkwteD@_5L;u4>fo6YLu)CdoV)I_I!3&8VGn?g1FX%x|6r|-}6q$Fo=Mu&gH^57z8 z$M8MgoK2ISGwK0BaV+CITjS7RXrM2Q???O74&$Qm$lFHhBRP(1i8gDq=5tHP?RKK` zVP<5y)=J$bYIM3tJ`h-}SL&vwl)1UNXD7|4SilYn1qF2m&^)zP^9uxss=)Tiy)HKc znV#hG)dhAV^-1-!hK{UwZc}os<~gUM5(K<9#SkO3L;vPCTbnS~s#2|8Wvn{FGr^WM zo_lCLY*Nb~NPrW|Udw})A~mUgwUQFjA*`^XmR^Nb)fSfa5CiZqd9Vz4=Hi#d5DIGK ze9|~MLSVd~Po6O2TFt_ao_L0BD0yT1RKKcdD_iRSuv=>@kfUN#j7>-g21fP2-yqHz zzR8(XIY%L$JHy$lX=ay_FYRH@?310?{AVtZ<~4Pn?fA3uZ!jWS34nY{J3uQ;vc+@_U=Yv{zS?gW!p+lG3qE#0G=Ktb0 zkF#~K?TZVSW~$kfZ-rE3rF{7h3fJ`9B&EFjoU8d#aV$k~gI^Z)ro;ZO4TpoCkMALS zyG;YS9CPEk_v=xLdRVvyo@? z9eW%9o&B?(_rXRC4<1CUa`-sA4V)=gl7LFQXC$(kguzOgiAE8YfL|p+#LF`ZLHrWA zr(ro#$JL3V`)k7q-@-WRDZM>%A<_bbxq!T~20{kN<9S%oI36T@4d|LycFG=Ce`4!w zGSu}vAc3PpiZDdV#;mZYC=bvlDdebT&m?7JW?aeM=75L6t}gJ(%F2qG8akJzKY#wP z6p_-DbsB?>OCD?-c>Hc~$h%n^jH43Cy0^)Sa6Km4_(^n={cw03gSFm2n?z#OV}+p7 zE(O*PU{d>?A-k*I8ufqX%l*6uq12e&GCDhPsjRD+t}^DOCZjAV5f||0BjIlS z^YJhYePd?;FHBU0??QOg9|GEv2PRf>yugrLB6?=ENm$e+rna{BCb8NNKmzWUqa5%$ z1K(`bBO)VbG8dQtsU0{aA)pXCazsLFWJj(}R`3z=c#oSO{azo5+n#TEv~NG|(!E{#bI9w$fH)_|4dE%;4$9$!J zZy|WasMvtd)Dv_kiNFN=&C+QXG7IJw;lE3=)k%NHw%wKetYWOO`pZ>m6mfsf`R^R* zqMs)oRg)3IGLvuiH|}rQbGzoJZ&^$|*i50DnpiB(=cFF-cTiNBeY>_vrzCZVYTnk& zJ=r%fpu(yV2be~rJ4D_qMj7L$v8`u55N+D^khAu`s}gq+&>ovKM|spHi%gJCPOAgs zEAY5NDZwopkP+&|NjV-833dK5s*w3u2IbCilJ6v3$yF+{y>K94on zjQP(&GahfCb`}^Mjyi#5QkwxKoe!TTn$XM6ZlzFnz;J*L_(DWQmA)!Iss5glx|CFR z4g>C8oz?z(v-J-DMRbCFed>iT%}t^%q0Y_wDXeBS*i`cAoc_Z}jDetoq82%!0%`au zF`0c*-Q^FZbbtE|bP~LqrS|hZXjq8>&SGjX62oU1v zg7w|qH;2c@KrFeWloVjQ^6?lQ!yzIYR6DIsrUe1CIb4+G zeBeQ%AxcxD@`-o5P*O^3ZsCiPZ1=fcajU4U4bI5Wt=ua3rVPg^pTP}DR{EH~)#xlC z?r?E3_iYHOMLUotJOg^x)q$3IUm&pZo;V{5DbA%Y(j_D3_LCWNzXNUhm~BX}K(pb1 z5bHu~_E+fyu;5y3@Wdz~Gf03i$dV}Q4Yp#Qpz?rB2n_3;?`m@0ORWp-!OxzMOKqx6%#8ciLWe`mSQFHnEY;9@gaSoO6d|eZSNyOb6zdH;Syj34^c&_=SaM)xR$)h3 z9yJE_q{7HE6zxNHq7``mZ?DQNUFt!VjVU}gnN+)QJAMc7YT4XP-1<9st-6`@0_;U$ zzZz;Y*(6qZJ`*6 zcDz?6Ooe^mN9`bds)`;0yA`_XCnWufj>t1id!-LsO46U5iFQD>0{2GZc9>7B@0x$| zFm+$i?a~crP>J}DO@ptSU_=QP)q>`(L^mJI5mxUIO`T`bFcWcYot)O{I<#~O2Q`2WDFu6Kow*>}C$(~7U>i75ecT#TvMEg}~kOv=hK(l|R ztK_xV8#@Fu)hkn1E49;WP|e<$1`<_f3<~lIw&UNA^yz&3Mv6Fo_@S7W4cnxU$tp4O zi_KoZV1x4x`&A6wpdu=`@j`_E*Jnra# zaK+uV4VJeZ8osP3(pAGoW+R_$9i>*tt69IkIHPt7`~3K>fBE#}k?hq%y-01+G;ckFC+Eb=+}eI} zQ(fa1YOwv}b@uQe;;seSc|nN|^W{o*>mX#mSia5Rur9|jP5y7-zWL2`<0x{!n!v#D zV`BZYvP=sL&c^4m%(k$t9CxcC%o~}{{mUMTlIVdaAE-oDx)Az|h&=i^P%0XU7hfEq zg#4*`91$lpG6MhI>QSu^k!yBA$Hq_~$jXRAk-I2=fFZfK%VD<~`SSd@HLI@g!*a4% zYsKlX`TlKt;o;$VgQ0}=v`#`Srva3T9zZZF;>0)fYnat!ehOT@teHVI+W`V_XsZ^z zl||^JES)Q;@v23^h!uB}xntrL$wl_jWQ|v3NCy4EdAsIoubxEM&FjUd)U?Lju zSTU%zPpi}~>yt6LC~?YVor&6c;E^HcXRizkZolQFF-R?M!IEd`ak6ZWf^9bK%#~2E zFc5!uIEfWggAbDDB;!wEOwW%?R0R8L82lF!7c6ONHt3#b*c{{&mC=g4G{!bGd~J!f zfYJ2^r#Bt#lj|>B98YR^aiaU3`R>sp@mpZ=mnnw>=Hd@Z1B$;5s+z3q&YHt*|r@U|KfBydU{1-`&Z%X*=lyuZeaf*0%|2l^7wrhmY_vNcjn*1 z`KDxK%tZqq8-XX2Ub1pl ztsIT7Ud%td+$JV7jDgt}e|RenV7R-dE4(+r2MzV1&reBFaVj-yCd9hYdb(`5NvQD2 z$ja6thdFzBs;FS#eJa+U#mw}1?J|$QiouXpyGdp=%zoQUfTj6$8=jNU8168I>_dx! zbIo6b9VMQNCl)9xOG)-m#(D>djlwOLVZEgcVmAfM;fHTe2H0uW>f}4Qg>Z6#rjA9S zmLxSYmFwuP#|ROJhg$-7TgR`JH*Cr%N#=0cOTspegYxg{Km+Lk=}dzQj~yAk;s9m6 zW)aQNLB-L*D&Y3E&p1^C``Bi!@8ksM>a-U`unAq?#h4>h%jD|XU-!Zw8Q(QueZH_k z=ub$bT;XZz_2yL?%8mu|ZFB`oYtxJtu$_M*A#`1UH@*29u@Ac~M0{ zHzf0v&(3ZpU}1bYSQV2c^u-YiZyY(OP9v`^rc5BuzONiUJ)gbXq|bbQ_1!U@mOzHo z9MK#WH7IP*Kh3F4EA8NYPk&06Q8d^#vuw^-OVKm0hu!g5*6q9QLUWxy9#yj)!PQ)9 zIs(EPWaL}pWTqDcqoSw~zL<2CUM+U3uwRT?Mqm8u$VIqA$Gk&BZvigeb3~G0&8Fwv zCrI56MRmq+Tx_FHR)Op6sw^bmq=0<$NuBfV8EgjHP4&0N6{En%G+ck@Z79d%gqF2w z-~P`w`rwK-1#*$X3JSc|-nzB*IoJsN3HImsUkBW7Hw9m*?SI&pZ`|6O`tdG4jP{0{ z_ceC2I2b4~k&&HtTDVKq`$f!W7z9@&=#yO(Og6c)v!!shZoZRq+Yd!FinC-m1wT|Z zvtO6Sc5nI6XGTGCv_@T#r6CS2I4{56&3yi+)+X1MpOl^-(rrX$GFn2ml+x`~T{XPd zbpa4V4;CuPK{Uc^F_x-s-c-5Y&oF+5e6pTE@jKoIJt80UN1r?p&u{Esxh+e!gH2hi z=5sMn>IzmWxtZMVhuUd3j?LGDHiPBR1L?B+h4H zqoA6=){EWmDH%-w0h}sYJd19xga+P{Ir9o`@IzDjZthynbPEK7$#&v^K*u$aM?DRc zZGc1-8 zt&N+Bl?1d6`>Q{SfPjl4y3?75_hwx+MYNc0p-3G_Gk8ivS0J|Lse>hyrDLASnR>>U zm-^hM0Yfe_XH>8!&+iTQ!qc+tU>2%wy;_HEM(#}}ZPHHn?j{(z&Qb8p4M|MD`#1W= znEb1&)-!B+xC}+WNX{=9teEcry(v`T9$!YS!w#KuhGCP@>zJYYrsIsu!Lb47BMS=} zu=95UxHG2x<+>bj6?v+?X<#1NiU9JdTe#LneGr)>8r<=LCO7cb%zy`GHAP)OVG0J& zmcjNwtVXS6LS0=UhNHCM9z0{qJ3#(5`x|g5jU25Bg8>}W-1G7V2VY^9Ys~$3H|1-k z|I^K7?)*Oj0>}Zcqrr<&CTkv<{b%^t51ZUvF)w$zi=fb-La>aRjBF63B6jV_lZVLyyF_;3uF|@SDnG#&8ygHeTNs$;ddQ1k4K;#BL;B-fy{7-u zOGdl@9JFQXWzrVi@udQ13$nb7UZa#KCgbu#S8@_GzE?-6LAhHy+G(Nh=Z!NBuN~9S z#a;iQZ1t5(NB+9YFT%N)vUcT>qK-g*Ix&^FIIYX_Npb{#n#klPNnBJ*2}B*7>OpE6 zfkmGgls45qwI-_a%~|K5{fwJ#ksZ}9Z0pzCbQQi8Q%`}1jTc&2_=jy0QBOp+w!bjo z@*w)&(F%G*YZv@ct)S&k7A%Zz1GEGhX>>W4I|*wyN&DoPGZPSl;1xxJ6YiKO>VID7 z=+&4vg<^Nd-vVYa`Iy5+#{df6q^OXzS|RG;SvKT?mmLH(A8&B8U#s)%^s`OP5G_wS z6WZ}$aCF$gL-3n8guA$rJr-cedkPhFn7eVcCCWMII4`sgMgSTD#|yJq)G+!ML(BU}Q(Mm1nssaZV0Z|YL}dc%Q5~)< z9mOak%A4^`%}0fXs5uFs6t%hCfGshwqX9*F9qZ+fFrc@ zvqH!cQ^GXd0iQppXeKFRm&gdPybcD@y$=dID<5bfGv!4KFM)3lY5lmMjqzwC-B5Nl z&31``9$o1#i$bvbl%KJ9*^ltg*cG?5`;!|oCzDjebbIu;Hg@(Xco)i9jWN@xS5*>fxUbjGBZ*H(I>U zEy!Dv1>B#>OZ@VkgWo{#c}~M{oNO3PpV8IlBiYYF11k^%Nvo49X33V&JG7)jgotg{vn)@jW2^^*`f4=C5`-#?A2?Y4u3oy~boGKB zh6*|L-`auu8G1~bjE4jHILfeaR$Ei%1xl{L+3RQM>Usf&*xal!Mus5Ulp4&+G4x9M z0kqLxhgUhEwCWtTvq_cM$kVN4gk%Wi4)xIOxAFB|7a!O^^=8Rz_&kJZmh)bl595_z zyugq4G%o_o*(_nE1XA6t9}E!lrBU7}E6k!GS!Cs985u@y={XGc)x3@0G;lm}yBIw6 zm3f$SwuKwwstID-g%zi(?=8Yo+$kBkItoT1MbmvA+KiFK@*2}x*}uy2kO_~UFeLA- zzK@08R5T^$Iv`+{Z9A)uBE%vxD3($o!e-Q)d7*_&>y7P_Danv6*`-8H$O)#f)*BTy zGGdnH*IY21%Vhv9`C^6jj# zA&YHkx%R_GVB}J5v*QN7(F6+Dnvy&3{+GSzDoxG1|1P(R$}z14nogH=^&qkm&LKkw zfy($4lW@O3+hE`f#@1-?b7vFPihQspr z!VZsu%zL!!Lrs8Ruxis`J72tom?9HsojNJxd{wnIFNv1uDVej!rI{_26zO@vSU^4n zPuoB;_hNxFtCH4FUH*-$cTvuqGw#?Tz(|nuh;APz8-kt?F(ag)*_yQ%oT&tu9#q2r zH4iiNu33=y&7xtc$Hi(aGfT&X4Uof{ulCB!=gYtzwdxw4&lcGeqJh8m_S>(2kuDK3 z7Xri{;s99kMB}b^el3125WH&^`hAX0-*6a*$X4JvPL1Aeu~RH7DxO>jBW*_alCCVG z9S>=$NyW&EZ>j5hJGw~`880C*wS5l|wGpIwIc0QB23ij4f-sr{X{?azHRnJce$3)P z(lQ&EFt|^MiXQ+)UW)?Okob;N$K-w95khjLHq6qib^qir^TPHSM}C<`)Qqb*)9oET ziyA?vwioZ&G0*25$C_X=HX>#gsyAmAW1o9{Q_5CC?N!uUk z93rMOczOR_#lp?}k#xliR7BD1eOYQ3Rx#Z~%&#+7F1gYE)B`*5Hg`AIbo`HS=4|Ee zVX3zLN{5!hyc|&2(XG|=JO(yrl|NAh@A-@pd^v}dyeck(?nV?lsLRyqr|bY_4vl>X zBTCQ=O?6vH(H`Bx$IDI^uylRM>30JTL?hs3G)zJ~^kst30YgfHWa&@p6<@tf?U4el zG$k0CmG5$*@+(|76n#jOwQ;a1XgAe;#_7&!*TI{GiI!q`*$#PKmzMT>o=A&L&142z zxP%^BoCX`HJo(Sxv-x&2G%*9{mvkyT;~<7i-z{12%iH26*>d>VS#mC(xCFas4%1&Z z=u3O#FvWr$CF6m}l{N(94O6wb3_5ce3PKt&b6TVLZ>#GFx1gwE7%Rw4+0!p%jgO9^ zZJu?%;kXES&$%C+MRy>@P;2nT**K|FL8aA((LhNsrW#+gLrkh?hTo}Bl&zll%T}^( ztSAQ;qx^zBij!Q!g=OdCin6*ZwXn^Oq;7Rs z?|s8s*2qHy&4CoOX~fwz#Yk>_t%#~a)H5O{IAUb>p7>G}C-D$04&{Dj z|7N?41K9TYR{sRAH;hlbi@Z)J#%X(S4(S2QKF`pIZ{LztSZP2CXC9TmLo@1aWZKgp}*{y9K)SD`i`(~S8l4~^vxisiq z+8~{BQ2hSGZgbq`eoG4IOf#6AQM)U*>s|K4nGFkamK*F*h zL8!|{i5yZ@&)P*&csu99|Fq!H&s1#haBHTJ>9x3B+yC(HT;uD>kd@%+zxmkOq5zud zGaZ;_XQwSa{$c8la*mH?sJVXgSfl@IW9)Nljg3tapU2M|9F8IgN~nx)7wc3rQ{1Ro zvt5%yk7xD*A+THHB(96*3#>jr*mY`a!-RtzFTYnjwZ_7zrF6Nh!eM|`Q&YN!@+Wwu z(VgRmW?6#Wi?h+xsg+np4VUEbs0-^^x>RT6N@rBEGr02QhR?!jc|Vb*%d+{aLa(?h zJ5jLMf-E92nJkK$RpoLNF!;cR+x1x5dQ*|xgOy@~+!GR9ee$J;XMQ20UlH;t94&PV z=AYt$UVWt_`x=MO@8CQDZGRH?T1|DS7@OqS}=7&7ahZ=FL zc375(i#m2r+VsZ+EhUei?=#cVIopPtnVJXhx0xna+~EMgwZ3OixSapC($b5U7fUOr zkq(*znNTFZg*JdEci@qF=-thUZiTN8Cz&mvp{DrXBwqckD0%2SoLwHQVl)^esa!s6 zT~|ADbhPJZ!uf$0)fXbB))e;C!ZcHr0yA2LDYo~!422@ zMl9qoRG_BSai1W#X0Zmx$)ER&Trn;VF0^Q9i&tgw@xWzv)jz#f2=!j@g*Jv0*45tx!l9Thv_ET|w z!#1SG!%o{$eylWk?K-4jBj|*dt-R=vNiMSOZ>W|s@=3Nz!Y$V|rIE8m$=O>XDMd%v z32`qvZPs9U$(oSZ3S1M*VzBF2GNC!B!X;g8(Qf%w`g!e#^W$8;AOY$;@+^&_;OQhh z82$sM-xSFZ9+9tW@}FkxA}{w`H%w>Kxu0s@WTY#ZIm&LxZ+r@{{MGk6)oGm4o_ zz5$*^Lr>7~^sUn~!V|Qv;FkCBH#fK55E7o_Fi=Yxgr}~4^uSBCA>)|nOn;tzp$((8 zJKGvUh%S@&gr0X3U;x@&-XDu)WM-i(rwj+|SHF`v%*d9(Z$Y<}5^l(;Gx!G+VafAr z??hEvhTg}Q)k>)_FKUlMv!V9eA23mB-}bfZ=Il|JA_(uy3NM zHyb=}qC_H~hVt$cXxm2WeHQN)vm7(|WB&ewUzofE-P}sF%>og_FmG+YJmG%gxk2O# zC1G)|mnG1+LZT>czKC&CK#z?CvydKmP0QcEK;jUvCP_I&f~3(PgsoGE>6r#O3@@ut zAbQ{DbSXLzhy>d5wPoeAp<_1xjp4qC<+f}GSHxvUA`?$hvv}Lx60CVQ&MZDjx_<_g6fg%A|$QMgd?Q~``6T-Zk7^X+NIQ(kc> zW+uOW4q60h4Q=p^EVDvvym#=-D$64B0Mf6E@iK#b7=flpeXx%tO>kErZ+1K|A*vCv(w>=Ecpr9{jvRD-6_`JXf|JBEz zRJtLEF5vTO*5-#%o8L#9R!Y*RRBgo412b{AmHz-4WUf z%I@z+L!d#$yj4|IG&F`u$N3802;&7D!-ot}N~&mh#R^jMNhk2(wc_{^s7*ioi% z{?XN1dBI)2hy8SOuT~!`2)%g3u^>9e({Qd%uQ!_UN6R`Y-nT~?g4-Bx&=gzn@NRaI z31Zj?5?H0H{Hv{r=7GbS@9*4zQwf^5r>WDyEE};iJUXH)Z$QPC#i%=5ZGeWn#avyu zbUFDZq82pU~J{#&kPjdR&d*#PQzx2!3e}7v?ft*z%_=yBJKfH!_^< z4Qr)`S}(%1wd8rCilmf_=kNs^cR_)$B|DAj$9Q#?>tOTA4t$zBK7C$D+8>Wl)X8 z;+P&m7)?S(GyB``VSTC?#a*>(PY`g<&_DRwOpaYe#xddjib9zdPn=+sS>n3`B5nb7jIq1$CE4^%Tp+TPhx*70XT>k zJxb+=_EM#vyg0E*mRks@Y%lNmWsEENdl!Vdc5e^?;?Q=z?gjnf0%blU9?i9f(bIe7 zI?2K1Zpmyk)4r3lXlAmwkSpfa>QHfloy-t98(khN_AGFr{rR=agSt&?FaMc#i^s1) z9wF$rqQJuWA2EO--E4c{pCg79&Vxc!oZm731bTeX3ER@gokRN3g`LFxio6lKS!D(> zV={`E*3s}g;_XsP-^n8a7mW75HP&$O46ml{lXV-qj0xPNF{(VN*VYBzA(&7nFL9N1 zcCD9LVz6!ukasyYk_3b)Rh=N4A){-HRnQ-?6%_iyQVVfDGXt4w2T%)5fb1&2ybAdz zWMbjDVpLGE5%B(tE@)%%0LhEdSKpq5AINV#9MJ$f*yzIn!4v%o|N3A`djK(-7n)pu z3^9Oc$xl#1k2j2$=MlHN`9TpPmnIL#e;qOmCY|@aKMiZ721>w~_&pVqNPo0=u&E{N zG`90np)lzSroiB~fC|%bQQ9xSNb>bZF(u}Y*qra|*hG!R(XqD8GEZA@EGJ*`>b_el z>dLkS&kdQH&*nlFd#>DVA%DbM0qpnt<*eB98;e=(o8x886K3s2s{sc>NP3oQNLNoE zii$QAkuKvdim!`8r>IYjXZR5DKlN;PPES-AuC!B#UEFWD+zoWgzi+A+;tqimk5fauMCi&@FSTdQ>-h^T`y&c(@11q(V!0RQE-akGb;d}%p%pt585|cgF z!IJ*Q0*XAJ9CU!OFFZe>mubG#bd$*>*MuDe38u;jcs^eF+u#AaNqhd* zW3irJpam`KpXw}hL5*E(0>wcCYR``K0;oyZ?%sb%U4W!lOIU7K>c zce)kaUek}y{wy?WwKO>jkg(559*pRxh_CM+=uRFeJ`_-P<()QX@0po>`B?1jE<()5 zF{MgGR%!~zGqUi4X^Mek?*DawwQ;;%XmuyJQ@g#>V1Ka5Zato7#NnQ!DRav2G%_sf zI5@5rJj^O&U8y?JT~FNl6_vbZT-g3x9c7aBI|H$bDhB~qD#716gjuY&l~DXq6AEeE zt$)rGZdr}1%PkKT@JY@dw*`k4=Z=m4`;`~mm@|Sa#cb)j?na(|6#tQv>%v?KQd4v1 zMLFCN*@9aJTE1#Q);KwI2YBcj=nPqv`f&yRn-p|GB1(4Ytugua$A*%AnwZCW&-j{0 z7JfA0Uovq(GO{_HoGyKO2D48h1RVk^>IQxQJ@Y1CDXYU}BG_VG(r!{t{aR?Ui5FoG z{O!7A?x!qwz7$-j`>2p25oI7a4s4Ks!WYg$7>W4^_2yMQz=K#AOMUzxsq%{EUlP~l z@DN0mk9C#G6Vo@ApzFMa_TOw>tVfQVP_Y?|8lh&;S0N~h7CpQ!tSrF@&Fac&#Z>wC ziH8FH-;ZG{vdlC$n_HYdU^t1S8a+JR!_=V+s}*fr^=EDQ=o=hDK?5{pV8kcGe>eQI zF7A%ulmcdK|NX8y~r#Wg2xdzL`AEhYEXhWO4E?_-= zxbX-BNyf~0-|rm>_*Cq`fj~53wkELJ9(cB^G^Xiq8tg$p!?9Vc#?i>X*)@vxueO0f(smNS{#)}jL;5~dTmj$PcCCMExQcX^(nE_UgKv3wuaa}jhD&v;MZ+> zNrq1g=ftFEp0I2pEk#^NarPQI-YqpX_;iFJ9X>%kAqc+cC&Wix6o7>!u^HV3Y|n(y zKv%eb^g^B9(18s%td}h*3p0kCimjqTHSr1jAE7k)ttvYCCybU0RMFN+4&Wr|p-AnT zt5cv?Xrw4BQ~u^&aCPH*{C^Tsa3^0661i0>OWBFmhDkl9QCjXx8n$zOhdP*+ugj{t zH8h7C22vUBoPR;#V~h;9O!(gil}3ndbN#x#&ZoJX^q_5%PDzg(3c5a-u49u>rn@r@ z(WVEH*?y$(?a!dZsNUUi@ocFcg2?AjkfwyPIg()^MkgE^lhCy>Fg9!HzOZ~=c%)lX z6veAZou={zYhF$jta$|u3SRgtFO}%Ne11LY{*OI-grxj-*|vo4wjug{kZ;dwVV6k& zJqzXv?jv=Bc}O6UxQN&5Y_tI)ynpOAeT2T}t96rt#`e42HlWsuWpd zgx$PmSRW}xvHraqFq`Jt8DQ4o64a(vHr2o7#Z^P>kNF7hoDe&O)ZOobHh1y>$I2a0 zyy#G`msXtXa2Eh+8dUx@jtnbWZBkH}n>;hzG4r+lzfQ*#~;%C%Lz-7|75b+9Da3lUc$JNbq zl0;re)I_$B$QRJKvby~+|4B$G{ibiJDu_xwS>hU@Qjs_NXiJDPE23m@TZi#T+P z=0mAr_TB{?FE_iQGbU}?t0E$wz!ifr)F~G<%u}nP!=fy!WU_^?9_S^VZ$!+9n!~P! z{<<_s9HfNv{1+!McXYgu$9BhlopD#d2`x1l1-il3BL5dConaa1C9QP8w{oXH zOu|pxB{3Ca61N@7(3>O5Orz`?_4pJpi>kq4g*z8^pUwPL?9~?r$?>a$1+n0WfNd@O z93xWa0E)T3{DFJ%{P#(F3y9p*g4_OEM@g>8TGT=ug1*JnEANWpzfkvWM%tv2jccx- zykEg&s%k*&o#HyH_i9gvM^*P}p=Ywa;MA!)`Iz|oeXWOEZU@EDQwOyA7K0G84Xd6P z9~u@u1oM92ScSW$j!#nsq&CA{04O{uHUkX6tc>v2{$;4h^(sQW39vmHQyb5#-SqShXf?_FM1R@!dRV< z1y;1+69(rWeN%)uE6W;~$p#2$cJU9wm3}uFnQ3$iT_h1O(W>wYsto_xId3KSb=pl3 z^Lf*!_*)K3_j)${nGsOYkbWlfgI#gKu_(ACy1XrzvW1iPJX;7yc$b9VwR3OKPG?`^Q19hDd!!~5%Zs*(c3!l%FXvE7 zq7Jxcz=#1`q*8ApEFB7p2j%TO2TuH>_1T;qlZI#22|nizl9SF0Vm`TgymEF6LN8r-a0P=#-I z_ePTd3Li?K!R>Ly$|DgAKiypl7UvHKXMe`JB0Qnkp8>Oxn8{XX;jzR$9m_ogc63_r z=3Rl&`wcL21C@-5h+a>3%%IZ9|3fo?EF;h{#E%Vw+$uwPHHO3R5k|eJLyeZ3AI%kn ziX_-I@{a(g5^(PGGX{$TqEH?oMwgQ0J@0RXtYvSkbVkgCRhR;%`RwiUXfaBbm~9_y zKltQ+ZAz2UU?Qa zUC228ru{O#O7LGfyBL=#BX$58X@s*YBS1r`AXHEx)+YkF4g9csu~AntM$+KEPsh+t zdn0-?rieX$dEmvGvYk2lc{6(LUMS|}@A z4>ctr28xdgx@a3&g8NE8p?b*&3uUdSu84^^$avalnN3_yR|s`;Yr&Qt2%yWqT7t@A z5s0JHV|Haz^M1wQe?03fOwnMrNN9jdhnP~tqhYrEZNJ=@6>KW2QISLA$N{S^%UgM& z&+5N6XRz?yKJuY#;?vH;C2a!PvdrjL3{Og3xh|)l6(x#7Kc6|!srM}xOtCLhOq07y zm+&>trSxs0razoxjaK4|J`{(wP(S?U>}*p;o>7~s^zM5Y)ZnopubTaxeURYE1F0Qt z`+gP?Dhgr!3lEANPqe5_fq7X+4cqEnj~4`yInmcr^~8^_(DQL{4A+|I9_R?}qqr;j zb)o!^{3mq2^3Bn)t!rR>0=RChXZtTZ*>B+r(owN*F1Ig)4bH>?4I8c0-hDoi4{GP**mmS^RhJfxqP%(qzLYLPTkvleyc{F5b z^bWrO2&{1&>K6~le=1HMiL5+%%6MPM{4jE*qU&y*@XwNze?B5P>Y7a0o`^q@uUAFU z**aO4RLiRgkMrp(tliOX@V`rxtd#0+T1T-;=E?1x)0#ttL}Ufx)W;M^jhE7vwr%*n zt>e_cePQ7&xS);<2*CB^f(o>K0w2J~3%H7*BueAg2*g1=h;*X$seI;8k$&2Bu=l0H zp*np_4B1Yk2d*gyq?c`1zWli|glPkD=l${_$_?jylqa@s1Scys%iJMoWG|u33bbSd z#Kn~zwlhs!ef#7QxYewYpr38?^_WyPpVyY6RnBWdPo*QvRrWs6^hlU=x!mhq(dQYT zzZD(k(j=T}$cc_iI$^!U)sr+%81(xEbsSR6Ae?9Ja>{fWI>hcwP1#mBXauOA9q@ zo&r-#IR`aaMffw8esko4le(d;FfPUX-gXtNAA~1fg^<0c^L`<{=jP9k0fglsb%OTZ z(k)6R=E~mX9Xpa25rH5R9I$=ditClg#$$HFZ7=o7ZXwdH3HM~qRxq(t4ZBKdnN=cC zn^YPT)gOXv6;hFn@QxiKradfSQBgKA^oWY!Hki+?kr;6)8qL-u@rs)Pdj~ilwIFa) zi8Ri_I7W;kkcRWZ>30_rJ)5ZMzz+q;ZBR=13;J?LO-wy3QJN^@>akeS-K4LzK<5K{Qa@hGW6}fK}aXh}8 zK}(p%+<_qsJ8Z8`g1~<({+<_}8`GhfnkPEAF>CoTXq8qE1V^g1qQlMghTMkmeJ^cj z&Cw<#CTZm2-g|-cOd`X-+Hg?$peL)_{Z}41Dho{HoyVkvoYSej-5@)tZLle2S7B8p z;FB#GNSmBs+ESKqXY>Ar?=Zj7VC!gYMN3`Eo{v(=DSQPD6`gVU!SLE*_|dsw_D_ND z4Wz2{=&*NsX=8QlHm3^g32?U}v*RHK{k)T5mQqW8yw_RKi>EOSV+m6_8pa^fxKDxJ z?5)&(R%~Q{mCHr>svTr~q0&=CV|eX~Z2kWc_Eu4Gc3ZPB z7Th|xyNBTJP7>VREx5b8OK{hO#@$^SNpN>}cbC(7_degh_jfM-bpc~=(J-E-=bE#s zW>sW1!g&t;r%@Q|d7IFtVV;MIp==su$g(d;%zAi18~K^&6mk|nI0v^X#!-8h`4KW# z1~x4jUsEd9TtjTcsj;K$L`O7NnH?fOPz<(cOb8K!v#>%O4~a)qtOuJTXcC_8DPio? z4EFMq5AwqY@tX_?iKtLvIM>Oi#|b*d{G#GyR;s-`^l8rqDD+@*GuN^6&*_A?&m($Q z?y(dKDfnN^dUu2pC-(WYv-AZq_Oa2#G|Cq)ZQ;Wn$-$;X2;5BuxPpAUk;$)`GKEWr z0eg@?-rEt3clFU-kB|-u2@bo&O21W9opw7i{J-RmRAR? zr^s5-&@cL*G-jab9ij)!=H$QMG1!CkI#WqYD$;634?Z} zrz(@&-aSxkz3Sax5~9D+Av&KOqP7J!)i{fq>+t4AQ-d?xu4yRV7cD z%A{8vdfbF4Y1s=-Wo1l?oW>K^dic83+i`I$~!Ka{Q|Dy1dhKx=CF;nnD z1c;kO=Gy^19bfhE%fIDk%b6XE-0e2?$fF#BsU#*VrkzD`JVB=IjnyWHo`Ikiw-nbL^jitYFj$)U5k$bcPu>H`%nXJEhu4ovNN8;dUTn*KA7gD&==;wv z!_LX5X1Yv-O)IB}-DH>2EzJ{S6M!nqIlq{>m>x~2zO<)4)P38;pn8k9G;aJ8{8-)O zA0m~o#E7-tc-@Vv_$y-g0ozLO1^cVS$1PPg+FQB#Fn-^}9HnUCi$HN0IpRR!WIV}F z@FM$AnQ?f$uAkZk8iEgzTGw6ITr*z65P!WoPrIC5A?8^1=>IcwCu=+GzkJ}l-HQFW zMc9&UyPWz5)P-jGho|c>@!r&u{5Q$>EmG?rkWSf-aErAk+l=Pf7+j%wa%(wUe6ik(bjqK zW*yMzGdZ*VBhMQE&t#@FTVr7T!()44ig+meqGvLkHDz^(ka}-#tNSB)rDw#W9VJ;E zhg+*ko6D&M^mfX?e^KEEZQoWaYUt7dTa1CScfvBs@npY09180@{D{w}4E|2wGz7XX zvNF=4NzkV>?XAzuh8LK}#;2Z|&`5H(=4&!RQPM>v@7FBdbpL3j5aReP1@RQ5b{Z!9 zwe@obyB&>OFCi2~iZEJhz_@YdJ_Z`+6NJ%P!9HWKV{#*$qK@t9;ILs{>wV~+flswk|QXJzf)9PfNuh^8l&-rZQv=P6nnw{Rp z5oMLz)C;z?4L#%T9NWj3DNoMb%hK5mtdxNwjte#46_`?mOYfl||R za3xcP8{V@0h9ty9f{SM+Y|2U;5G50tJM)WagbS|Eyfe8GyLc9Ky5PGTql9e>6L-J< zaXL;+#_9vBidq^TKMr;Ig-FB7XR$>!>=t$Imi%riqZEs;&Q=@o+9bXp4tH7YqjpS281<7 zwS4(-9?s`4Zq^H1F=lTU&!iIGm9f>9J|FYp5;wHA96esB1*m?%PWA|DAh59m2Cx1u z_bJwyICr*T3+68Mw1KnwN~lBh4mynQNQe{!Zm{MErl4&%)?lFOS)c(zt|!@-YI zb8*zA;ag*m64IJ0HT5P9yIJe-c!R0E_ZlBR7o!HhKWFE40!1(2I>Qeq0Kcjrq~6bI zm;8aA9RG5J7wp2Ajv;VKWu=kNLH6O~@BWY@hrwLx)~oVi;48o{Deb`Uneb%bszVh86*iCQ*HJHdq7b#@T+3i z>cS;AtW~D8W^u!T0wxv>O3^`Zfgj@+27U)p%`BWlP&+iSD9}-BjJ8hc_Rp zwGP3wB)c9jW4p?#l_oXB9+#VcTA(in><9W@H+jkF% zPhh>zoG>d0B1TB9dS4v;5?kr01Cc&KBI38-Y`FJHn$JjK1A%+svec7+f3z!YUJ)gg*tXK3eg-g?7pY}yDo%VaH!n<-_ z_rx2oPOP&7CWYuW4vd1IBT_F`b=^)Dcwrd}=X=c$-N+F-;+7HJ${(zeRWhl2-Z3YX zTnS1mJK+y~UWOe{%?J$t+%z;Vl_S^|ryC8-VcAF9Gu?6&(75(#74}s3sfz2LB6pqo z+FOHp`M;-B1PpG*=dYlPt4{dgC|(UrXiH1?OMG*Ng3VRT&&32^kHZn3NMXL#&s;Zr@G$RBPO!yp#vj zk#t5R4-y&TB!t@r==W4H#N)aVAX?SY{ApiAl&bWwg41rdFYfbz(%HdCSLekD z)%(pDW;SHGd0nv_Pm``HKOrZ=km(@Bkp5R&wyQQj*snsBf^3(|+wBnfE(bx(X0BR9 zEE<8BE_R1MMID@)K~PX4f}yZ#f2#)NEB{QSriTq2tzUi^G$OF;p8H*zSzl=ygCB6z z7(BCXe|DvLB6v%6lde@L8AbhdVZ0WM9Vlsb=aEsgU2SNULh_(FO@Or+-v;1%SBhM5 z>`Ma!Mj*hMOV!JMLOZNH(o#<-H(9GhO?7sKniy--UsZ%X7@CGY87xggQDEB+M8}c` zzX$-DVgmXP#x7QyaeV0y=U$S-z30z|9mjneKhpJe_L$+6gql;Tr5uO+aJVgn7e2)# zmmU@V^Vy8FlwLBFk)?T10r{APup!y`6UoVWH1s=``&xa>XUsfq*{zN7xAi@8^mp>ZMMZL=4#d%G?ry=`W#UWX+_o6PKgS2@0FNUVPq4e-|~KCtaQxb%gBr3NCe7To`e zu95bu9x$`{TLVq8|6aG3*bXGHLu4U}lBr@-FTjn&=9t(LO{QxQdg;UB(pRmwzC}>`< zKZYNDO2=v!N=I1!*myZZBzVCWl2ObP_Ve6Es?>d{&y8xJE4(zpu0{M-uhaOuud1g` z1+4sUa;9jJA*kZ7jL==aVHQ^U!R}iA;GiCcr+4#ny^R8T3{HO``rj;cq4oX~0}kK% zzhW~Wf0fl;#DYdjVw7mY{EksQ2iXSE_+f#5BE=sou))1V!W0P+iR%-iu8lhOF-8rN zj45+lEAmed=8?Tg>FNYO4cQp2Zj{49$I7P0wq2og(?>Gtp9YotjclQa2}=^-O0 z>Gql!krRxCn_NYxv!<#SUlw6H&{|_ZiL~TF`TF9g(bMOxrA82TLCNSUz-BKi$mnDs z=T=OHGb(M8H)0rL#6O1P-0^cE(dD-G{XqdTLvnQx1bkWE+j`wKA|a%c6u&?fPaYAQ zB{8b0T>HSS5;iGcDc1h;`cht*`EXp%-OnZ5y)`MM1YD&)`%xdw)$637Eu6Ce04_+H zQ51O)0iZes{45BUa&DSgmAnx{Y{wLf_%|h%uW-eA3k<{owg;S8Rlkg1u`w+5Z>5Ir zERtR~eIDA`5n4X`UX+$~k5Lo?+_za~R8GW`^{F{Q?)gVq*A=iIkc?`+xCH!3;B6MD z$1LR9DRB40t3CVO)BkGZ?J&AMMQi&=U2Isa}dTvP=wwp(!hiJ~|7!Rtr<)1xSlPVCoWX%j{iVXiak zf+&TMTl4H|N0#Gdv;C>;$)ONF9otEYqEB}x*GKXVw9DtPuTLh?Ys68Sew8853S6`e zTY^GoK1DGS^E@h^ds_V>B2V;0YaWe=`3b5Q_sR-2bx^j6G@_4H&90A4u!@i0(==vT zi!a0$ON~^#DFauzVj;`a3tg*`oWYpj6-XlI*_fRco9C--1=16V;^u9bOn=<0zb7ng z=G;J0x49y90jxS111bK8WORL3l$+(LjdO(%XBKN^4NTWY!n+B+tqb!U$T=!3;iem( z{x}HNPdULi6=dOV_Jb=}o-%}5K`R^ZnCj#G{Fhbw`<#%&bZ-h=!Nx~zSmX;gqUuTn zE@{ah(U_(^gW>iIM#hPb08HW)*nRjC(vLr&e7;k^BqP>j)6v4CiZ~?T{Ah}pP{zuA z#?D(`W!r2hz~#e#W%2w5SxS8XGN&&cpfXrRcA#kHz;^5GguX-?Zz2ate{U&=n=>*i z8x&pKcV$9%X|j8>>Q+^^jITe7tCmP!KapBRb9qn{fc2WKvJ)bFKcvAu?))%Gg)tAS z7e{HF^9z{{qfX%$0OutU^!TK{N?`d_k4#q%EUURpP6%fcbO$b#6*I#cG>NllFTX@<1AQD2z6)nI!&m zq|p04Ps&iQ0&lpn@~SS4b%bQ;C)tl#iJat;!(tCBHq3$+!j`dtX-(5Ck|p8;^(vUK zaD^th*a?2JJ={_h^f8G1KI0=zzFs_gpT>K*D*zr{F`^M<$T|DklKr#}I?loO=NK%5 zv*D`winRQ={*T0@wZ4{`QBFDBgU{JKscPOzL2nqGWagppM|+&IMuPjRWMdv8h+lEm zBDPprR==6TkNA=(ikaG?N0wF!4x(hZ?`iF1I2Yw=DP!@DcuS(WB``&=odx-j2Q2`E z5RU)I0EfA`iifgh{M?p-HEL=bU0@YY1S90Y2n$f;TieX6rl3QR`5*lF-ru5^6GzzJvLw^&s#q zMpZ$ZZ=D!H#Im57EFvosbC!rKBAxq~rK|+=5b0aKVreya0lEf>5xPQGA6=6TMMogx z2!V$;a-GItxBsb?)90NXdL<8!7M8;@j~zdcn6um7olA`|asVIfhupahDFj2Y>j0g? zlohKoi_#NU+;d%SWlgd6b$(mGAy?_UMfbx1(x<+c8f>v$X6`;01A*UYQK`tB!`QSH zS=VDvg3ZPU6DeHzTUlJqhq#8Fc6LCCm@i?ILA&S)B+>Q(4fP5o;a)E3%tN=%Zg#)% zpZ=)YSuhk^aMmPJA@xY)J|A~gNX(iaqYE@?j1iS?K_~L3Fkc=49>%S0WVQnJVJ&Sr zfILM3&oR6+kxVYCh2^e#L8V$;2klyTd%l)Wg1pTU2Fxa3V%mf6xO1&hI`&$j4Yp6q zJ_!51gFRxKF3aL3m01>_RrOS3lt1(UX*Pr!8UX93wfn{ZUG0F<%);t3oPad$E(ioC zli^Tapz_D~!rK79KZaYwl7}UDBaukr{RIk1C`WO;m(F5cqG(+;^h(&`#&L3R_n84( zCq}`prd}B~3jGPz+3p3}9bHhrDR?d%X>ITF;ps@|B~M1+FU2LTi=X+6e!&>^BQw!fKMJ}M}O+?r)9M|dW5OdF>9!^BSTg#y5 zp7trETHXu}ai;v-jzL$Xd43x_pTyw4**r|)O|cE;`-5S~4k(W4`((b+mCSjL+W6OZ%lp`oaSfBYTd*RU`&p9Q5ctp;rE; zjb)~1!LqNT??3bl`PLcKSnrOhmm0VcdsMxzggnuEZ2@(YUTE*o6W~|}xKGG~qM~kSyL@R^`b|BCt*CGv^LM#9 z4BUPZw{`LPFDbGN8Ge_o#X|k%H10uORG;;2zsZXF3_iU|%-w{WUJ@DW`XuhmLiXyW zA-q$-ZM0$+^Ri;y4h^4i?6n5R?d(1(&{vGzY*Z61Rnh?kkQ6$SZ*5#xeBh$gZCYAY zC8a(*X6u;+z{5k(cD1|096|GjVWX)(=Iq{Ey}Gb3pR4LQ?HkO(qvb=>D(&N|B|^TD zA+Ccp97lSG`$^J9R}gi-V^zbcZ*;wvUxuy`{STdH11Txse?W{UvsB>10`H$BO`U7dEqhkht)sT|sbA^Wwb#k1E zPWAHRY9kXDHVr5!OKge?AQFg(n-qhMiow6%1v6!VlDw7yc8BS|I?=R%mx^2FN}`|* z@G}WwV5cxfZ|8#Cos_s3LlDiWW8x=>p%vPQ3~7nLb>k+PM7qwmY_PZC_wUI0PU~5J z?RBT-W^OQ>Vq-5u7wlFK>k(CF=sYJZa1!osJ`Hg7l%YVxk=X1T)|9@a6+fxf^{+!r z{1~0IYY5a?`OV1_0G{r^=L9}z)RtX%QJz>7nGifiqfD7H>A zV9X>zX0}UlfRNOQD4L4`>sj-p>eL~3*Bg;5?+@%7`WO{QQ0=|xTvTcc@5_&pld(t9 zEK)XGpC%2h9`|cwYEtn9+waFfAHB{XXUsm&6vhL-?wGqmd7p*)wH2sO78w{quUEFr zmbZQ!ktVC<0Mht8PzGwmDKL!BorNANoK1OOog@r=L(`h%CC(& zdEmr*EwsGv-hcc$x5==b3M_p^Q((+|x>qa(D8GUKwNzWe)4J>YY6j~Um)cXr5JhT} z#ex~=MD(`F{KR{+9TT11d=yz`z^jF}4~ehQptt4uI!Lm?;|>FKnk6a`)4%KvUw3$R zHTBcx>B?QN*%m5zlS&-53#)isPk4{8f+VK-8-yG;8*~JLeoGn2wP$YE|568QnecFz zqFfbqQKno4rG`x=-09v4pHjPR{3DWCvXlEDf~Ula#kLu$@6WX2;fyK{D^XQ?8CHZ)b4&Z%jy*i@BXc*)kZc%8p7+1%I0X;acBmv>#CxT-yT&y~cwn z?EImW`*1($81DX*0fR=*msdZ)wWSsJPrX+9?<{+nHyip$(D@;cqyk$^8@iu7e`Adk zPr=wezJHPnK|*2&Ho^PHFo$vvQIiJOpT`OJROL#;fuu!e(13;+jeznGhqQG)$4gr+ ziSbu-;lM=A>&NV&4CaM;dU|@dc?x$A!WX8-LR7#L72`-yg;f4P!(_O5@n1XKeamef zA<5iW9^E-qTO?PofaRM1vf5Z zsX-9n-sf#1$z_ndfRhZJ!Hbh#$NvGc60BjWb@<=chWnllNjo35hkb~d33A{)bsm2! z{2I@H!6#gRLe~Kb@@aUk3I@U$uY7*3U`#*fwBHTpb96TD2nG6|!dTInIbub&uFaP^ zRqxG6$%(?fs9-a=Zo}7CAYy_LE~3Pif`lzCKC1ZH(GGk~;tM9T@?du7rCFYh<$a9d zLnl!1@BYCKM4};^2chW+%@$a95!~QmD8BqBnj{z&nNUrN(}0fyr2Y`_ht2SNmgFj( z=*SE!ZIFMfq!48lvIyu(2lJdsY)+Ra9N(*kiX+?;YMHyMNy=1?{fBGh^Q|B?kPAe5 zt;m(cj}_;gsPSGX$sJZq0ir+?Nzb9x!b2w12|1MKp`Zc#Ur(su3b0QI#zz>4@&9O? z5&NzJdPARnP$y5me{criT5AD7Zi2m%KH*OfkIgR6VYLv&&4$tvyTOFzC~hIG5^;Iz zjbzq2h~r^w2?tdoyS2m8tEJ@ood)i9l~M&2!5LGXXf>le$X2;HTuisgTj=Kqr!X~d z7~A~;e}Z-8dZdR@{EM~1!w(;6(Nb3bRAUwIkqb+OltB%M@;xL%4w^wnyNY33qJVrygGEeS)J|yo)hWnihn5WS;qmZ$UBqOP@OG9rV z2dtrQn*SH#u!aLY6LlIT-A}mhShQA$xEs?0zoANhi;j4-;V1?5BM39;b2|n|pN7Ju z7U!bO7M0_t{I?oaHY5TGi$mK|;bhzy6>!^ltQ56bcjI#)1z~#WMs9k|U!J`gSMGNV z&Shu-NsgW4nDtjO!aA(2`!^?$R|+VgooECgPZI)+V1;?I;x5*A^Bp~`rX#n5a96!d zQTNa==ReTl_eUH<+11!xHO*{wTa|FS$H}ioq(-ZO?`8f5+|?U*(Mxo7&H*hTDk41> zweWi*8~&R-Khb1q^%vvqc%AgfhxN+9?*8L% zrzD1fPcdw%I}5JW*vWi9&^xr-6R7wEjtpOMEtLkr_w>h(r<aZVC2if|dwiA}xu17xu%A}Oj zHV$ZgNvb4lI9mBD6j9_OED7Of$*;{+BpOmeNT|y7@%2m{3UZ}pf;ix3X3ho(>#{xv!Q~%5HaItSZsRDSG39MyB1t*~ z5$#C|a3BX_F`!*%@J5{~xb-Y73{2zE)T~{Fu2~45LU1(?oBSRoFuafOdI2^5^B(m4 zN=}4hE)*do9f&N(f_3O`wk7-y6s~V8Fb?p4i!;^uOf26%{7_?v5Qr3 z6g^k@HRvT0w$gqKuv*5%y>7S}p;m$MSE=9KnOLzy3Z43UbOwLm|V_yjs4GqreoD*Vk6;62x z4*en^J4b{k>O#_L3P9XAt&ztRwwSO(-HPpZ%mr89FnD8vuq!JiaXYcA!lJmR70|dI z4P2`TdTSjw=*r4$bb~O380(3*ne|iFFpuqCrXb8K5K2hNt%}sn#onK%s@3?#I6Ckn zCpgF^{-8Y_Z0xB8m0DhU2D>k4*#th@oXKKbY7#3hTc5tHQDY!e%lDUSL~#QQ2G%nJ zR^_9v->`$+xepP3cH+Z=P%5FtM;0e;x|LWWT?R^szdUDUj0!WZ90`dxaN9OVKJIit zK3ovze*PFF%dn3}3^xw)6hE=G)F%fwAMR&FANu}GPT0*F^$XkKa+UX1u15#$Pr@9q zNs-ZbB3tKQg-uy>mxkaez|k8mv!?;7KocF63n|!fV4YC3+gIV20xbt&FnIcX5gW6~dcXDC2&Nsz+$eTTm(U%n9lK*^qwoy8l3~ zpJ?xhP%rlA7axe%r@IhAcF4O=^iG1IEj92+x|DDjcb$1SXiVUgR1U+38%&FS+2~!J zcY`*wt;h|yhHwqsfY%%?r|;4zybBPghc3To;7IS%;l=s>{79=CRoz3*1bHlfiK^Z= zsy=l?pdA?%*Lm;?&&6SE9Q8~JDT1o;ULXpL70?R6+N~_=aGo|b)5v!&#w{w zpb41ZW^btB8Ps3dX4(=EY|yVtg!-)P<1>$iGB!5G`5qe`9n9Fq<$-7>?+wp()=DDK zLlos*&1#7y`M$+Dfk#0+XE+}9ckD)+alXv)X2kY+x)T`)Of`%$sXi1qNhM$KCcKk@ z%>)lLBEPdtNi9bUvT&PQnztkHh)Aw7?`(s5j0xM}GUA2oIHTjZ8Uj4%{`UQIgErmv zXatty%aRq#8DRyhc9E|g0F&ppWc*a-nVcb8GL#kZ0YL?$989($X(Ov$4CorcMB)+6M=Tt2uvGbv_&bI>?O z1Jj&Ezc_k*I*0$$7H&!k&`7zIZzlrVX2;V7KN_Ku63i;H6}lp(L1d zF93`|vy;~1=5eQ2VGRoooj=UVsRs=i`Lq5Ldoa|QK7OvQ;~O_V!#2F#j{qJ7z_zDc zC45GrQ~K}W5_@^T$Ebwm{guD7-7hPgHQ0XU25y-9 zK_7X4miz2|@m=c9=Nb=L68h@x4Zl3ST@TGSWBszy{x(_tnm7-R`$CsW@NtXe;X3ns zwJEDkBH40yn8)gBvQEFl7G=<=t6}w`EUYdEdR$1qVaB@80fMcEJ2zqqrcu&aY91TE z8H(t+p7l}6K|O^k&@nS?#9QD(f|puA)!*wEyH63aD>SEig#R2;|1#H9o#~#5Kht7@jLFt{)86A zukrP+2nW4sK*L^i4_8Kpv zO7pC9c%TM|IE>St+Rx(Rcl|vi-+#XCrDA;hB(K_muHV{txO>vDz($}}WUA^+BEH)Z z1gwL#?d2=h3*qlVAT#&bi`$us`*$*-0NS?x|A-W7d5}3PzHFoR%SB6kr}+Hka^;Kk zBjya$J=nu`F>3(Pgi%^*kxCE4nI^|AVkzGNXX`v-u<_eVZ0203v1cscuE0bDUFkj` zJY(@vhuyK_*CX)H{L$SDBVnRa*#y-BP3|f<5`9$)rUfCP1^73_ARE+!q{wi4@x5>| z?|+SKi|~MMYVhFqDh?D^1I9cXz0v-klmIZn#F-SZietu$Jo+#@sew z0Uf3(_8*1Q`XMO{kv7g0;1W}b)8(Hs(a0IYG=Zj?;c`p=P4P?r|55xhpt3`aE>Q52 z`YWJTnZG08AC9>C6E>EgJIQ4e#7`ueeCNAo>CPHVI;2{K&7DAFYLvZ-a8Xc}hQ$@9 zVNPb6`VnPOvyEswew0Ryz79UI+vCwZVV!RT%#N)iTA!k|#NUgp@ zWVxA>K7kx*p&^yGaVZ6bNR~SGQJoq_3VjKba7+sw{b4OT*!Diji}?3(QbrhtLL$n9 z=>l3Y3xK$SxF9%8rVV6 z7e=9TeOzedh9_Cm5AN5m*GZLDksRpb@nYNy$Ex&ZfiJ1FLNBH!)e9!e7|=2hMRX+R zmuIT77n$I>j&afmSukybFvp^%!lnDum$!S%yIB6eYWm1iuHu?L?LQz`qpGnz|~62n-7!#Rb`r`ECjsp)xgJ74`U)pObY)?|zt za|c>P>TCSwqEzMaKoP^YFf04_J*<6^K`2^VS4AtbEanY{O4 z*`f4&0OU@~wpzv4o*V?Ln(v)_GX?N6KEuITq*yhXvT64UD3MLA6eb-DIiqCK+9dEy z4G^0F#|oT6kNj2>Po2NBMhFZ+0H|^iN~+T}OKg%1`x} z+8lM&ioq#ozYvFho5=36SXF;+z!lsgEW_DfsD0o|sP!P88@rI2>$(MRq*5kQv=>gX ztoQk=PT$b-AD|54d=o#=2u|A+eq>8bXr+SKUbEn_=A4on?Y+>V|2?>8a2iypz$IlY zDaQkKroQ=TPyO+g1E@niuwH7E)qKX)5-YYfZJhVU2*uW@5@|4f9awhYq0ijTHBZ5^ zf|2ZHnIEkiH1f<&?$7VG;xrGU>_x%4B(F}#uoWNXREMd;KCY1nPHcg^P(cE)2$1Ze zQRmpvkojqn)f+u;_urj=MedC}?UByyHiloMZ9oS7)dr-6Mtnt~w*>L5Re}GBwv_Kd z|2-d@8nveWMo)VcEC~I*LW-%Xn|*?u;r^txvxY!lxhjB!Q1TO~SQx+j6}YGa%FvnN zuSUo;vrsHs3k#Xox%nVES9zy%Y5$CoDswKY5j?XAwMT*RTqjqH*v=bD||la(I(hD)b1g@ ze0s~g8>Fk2$R*+TkF>ipTrMW*&UppCg?Dy52mYJ;CMW8D92N;dWMCzOEO|}@;ADlg ziUdpu`5i$XMrh5u5M6^A>zAp6s30xtYSMth}XtkAp{zsk~_K zJT&I2V3S!_>0WSL5TV$ZxmmOSkFlIo;AnI(;&%+fMAvC_=sTOpZ0X*1SeevxV*IzR zGq)hM<-1!?tK$NcCyweOn1M-2?*l++!x(uMhfjDkh@@AOB~R&=|DEMD7*djD-G)iL zk94in=sHX4+B4fa?PK6fKYfw7oJ8bNY<$0rd-iREL+Oh8TYHI#8?v{MjB`mL0Xgc5@An}O;pzG~d=R94JPs7W zc6`Ggt}|Of-b|&~zscxIPMmy_Y#(? z{j!{Hx$|(4%Ayzq!8AF8Icwe%GxOLi{I;Qavu;^Pp}Wn4mNzFMkaMQbralf{piT=J zh74n{(cmv$3{>oY9;=$_~12xwuhtEk13hX?CdQEU zNa2$&qY|=f{LQ)M)~QzF&5spd+Nbi4qUZ&S^ZpDNOfQ9BJ1<_>gjZGw&yFf;+(!w^ zWa;|{^8hqr{*yU}wEkbr`7F{Cmghr^YCVJ~w+qtPz8ZqTV&cH2x&yk(L^zm@GxIN-Y5YOEghgcta zLcrG2uQ9{Q7DS@Xi+~@PQNhcO@%$j7?67?5MTpB)+VSYHH4TKmA?Y1=i@XD9^j8^} zf@}$u4Q7G}WgQ8F1;@09&mEKONT)$an=Q2XfS*QYQUNS+#fAe5ip=eVD6eXalE^oq z4t@0AjwGK)AsG4NsD*QR5YadZPWVhQYf}#aLQ|(Ve?Q`^et8VO0-B%&8Aivg-P=~K z0X`~HU&V@r%KQt$W)!PPWO!SrPW)hjCoAzN<1dfGAE;+BSV|o1|8@oRa2UUp3KKpT zbp2mR0C|!1X=k&||0dqUpBd-LtpwFC2RJ;fGfv|o?TX2tW+N7E;wwiFz0IV0Ol@g< zn>>4De`V;Ysp5oKEBt%v7ij(J>N>q0Jv1b}Q0tXgY~Z^=k;Y@l=^3a^OdLD=#L?{Y zfIETr|8ebAV+UITk6Ps|^qxm6I0jL~V`)*DVX>kz6UNo%tP3aeg8(|GlmH+{l%tV- z$MLN@FF)R#bw5AR+KVxZB=TYFU9(rI`Zvew@7jWMARCCqPN7P9;a5crJ#Tla@h0^m0CehTse@QNujpU?pZWe8H?%)}Jg+eQ_g6&@6LN3Z^lD!-TFVsnhVQF* zIl4_S`h@)c?I1h<*0I(pj-l0;k8df}cyoDmwcO_B<~pDMa@+qpwOCTFj;CY5IOCfcK%fWVYv%omX61IP(svli0P*Z_@4=X1AVbiO>M(Sfu zy$H{kdV*cVPQIGTaZ|r@VlDq>MaR^%&=sJ?NJusUM}B}$W7uCHKvz+*rH#1f&o;9y z#Amtf&y?U90B|Sw5B=U&WDZVF`g@K({euQb&8(KitEEy2rw`D+4&aGQCTE#H|Ccc&QmE_ju<1lDWV_kh$#8h7J`3PR9t3U>M@7~-YGlg zMSw+m2HQw`yDGtGMAH4wX%_QY*5ZAe05W7BLw<}o@XM;a9tI)L9rV-Pq1EmF5C)C> z#>Qrl{SHr=^6lBIwhqn>&U_>a=`u~%_WJun$D@|KuOGg=hMh|QhET4sjV=oEJBvSW z+)M2J={D&bwlC|u09ew)*dp*_{gtHuakU2)%o!;8%>F#ODf zWt_G_4l|qvUlFrnF86I|$}$s^6X#*{-|wxwOmohVT0gf;s-?+ILm! z+Znl`bN5@nQu~VuE_XM1mU7KpJ)etys~T&^CL{~k<~$Mpb_3w|t{t~`Fnt~6t^HPMP=e&b%b0O0P0?it93{Ybh$$-h$G z@xgf@Jj~@_x(zLyH*sqd(V8Wkc>?3B4+nB20lT(x!VWWu_K$(?dLDeLOhW+~Sd}Pd zr>ru7WFgy%95#8w5Xzw)NZ4vb>>>8o56a&Q%+a2PSU*td;Wai9e_pMeIwzaANMh|d z%E#OS1y&&J{y3T(4A+rr1|-a{!;JUnxl=OZ&z&?5N*ap2WKOi8K)Y1BXkTCK32_FT z^j#eDJ3L=3Ulw~DR-17Nc~j{58DZE?#z47LqTSg_^p-`5+>Kfd$u@uS!XVE1_(416 zb_~%;`g!GiN?4c1@0sA?&vQ#2(l(b_QW7 z1tQ(2RtL%$nTomvbX(g}WC_dQF^~@Jl)n(ZZa3~hlm{)7Wz{ThS z5NLlke#C|WI~x8y)_8w0np!~`rV9^asw?bJ3h0DzfJKah-R;RA-q8zP8gc}StT7KcDPGcqUJ$BU=W_X zmI;d~WNT~#GwF?iC~*%{SVCSgAjuydQ@c-K{4J;Pd>DV>&tu0w*iOC`;YgV8Vxwz} zrzT1VSR(ZzaJevmDs6)pBx^-(JF_oDGA-$4M~{eeq-Y_p&+ITEt(9hemhBNONaW-j z5Ibqz`M1)4k=Q-+gkg#cdIw>D-Sdbaf&~H>zKae;y2}vyM->&2vf_WZv)8`>6C+_V z5(gvp!C^AJGeft)=Kj;t#Vr4c4Taz+j}TZHQFqC7>-t}bcdA%Z(4q-mz{U9JlC;)R zSn>UNvGMcNwliWwX+LkBHpvbJ5R+w$&HZx^Cuc>3H?KW-MWKTQndFTVp|pz&)0pZv zQSZge&DZj!T9jD2kPBa4T&;!9-wk*}>sn~rODynffT*hja`$~0vhhWnoZI9DpMCP;>H=jr7M~C`=;G zo;;Z57?xNL%sPP3-xB+plEGj2^S^{1?IZ2l^U!CLCp54_{1pit@&2b&p#hmA@1n$g zCsPN+GY-Fh;antxjV6fm#}I#`8e#2;5Qc=?iFgG0UcC5;6?z&cS?stJ^iWKZ-(D`2 zqX@kVL>vdQM=!HNTX{#t^GK|8oQ6wH3|uZ;)CWdOECLDh0<_MfdHyJGv~dvDeFOVj z8wMIyiRc`cODyErA0)&!ptXv=YQvZj%7`o02ma`8K z2bx-7A!37!vcWQGDa$+$T8!_?;>=A7s7{cmvxYZ`$9ZnjQgeGswDLIJG*mFW&IL?U zEG{B=&bDGK4u||3kJ!gtEr>OcAK>Y}1PT3)|Col9+v~9a_`BSKmXv{*#4{o~7AdSE z@IT8m=&4tNMt7!F=J{p=dRG*r`iAoVlGi+nKaKs7*9f@Zi>&z& zDTaiRSiY^Wutwo+)^2t%9;-5sw&?2s^k1bGu(2TFVQV_EJ)YtUPZPY~WfqJoZ3FCS7cDpmAF@>_Na3*oS@fhP@%I&R}$Q+SY!R{8p2AKxKK6;dJ~ zi4O46k~}B*SVxE|;`Df&^SocZJKS0icn7`lU3Bx26^<-`!70rO8wD1gbeI@60T$HQ!x zy_e%<&3{+1gclCjIp&Czr#Cr~f@LF3;27%^Nz8SqhZbAF3TfkXPtvW}W<{rLDLv#9 zE{8r&@!&#wvb31|yrRiT-d=m0_Lf5`6*HbQRRo%W^^ybm7|r zucJg6pf~0zzDlGMv8g?GvqQ*MokrULs#^MJ&L5dBsKQncL%22YQbbF9B@ThG1`E^* zxjoT*lnNi;w?pjG#`kcX5Cp5R-66S&4p}<F(}8@(>d{qpN8UsH%1;9)2rjzk>7~PEVZ?2}J>)jSyUh zI+frwXuYDz>CKP20HVG0Ty}E7v6NfR0&T^gbC3?|sp>?(h0E~X92LhP9b1y1x5*rB z+J1LXvl!P)8*B96hnB+_9ag3L%;ukXkwReX zM;uD{dqI`uRXwc>DnSojP@8R^U=Alq?C_8d{vq0ppXvHwbgT;ieooYFKV12$5%iAY z9;UjWFHCH&(oBg-@^-ShAKaEhlcL&6c!sjdfWy5SN0VN``(aGfFLJJOP4qa{;|jxz zrPx2A!kY_Crua>m`O%?iyVjOJ)llM?b?e03>?7U?-~|z|>D+ey5?5MAd2qtv9;2$) z?N5;03@?;MeB%@{W@V>34s=uqc>kxDIxeu+vOBP2k|9>R%k_I z$lh}A5tG8JAhVr6poy64;!caIYX)G=@_vw%lg*zAIrf#Ay}+NX7sx;IDw!+s`0BrV zh+{0pC7*BS&Yy=cEwD4*dsm~>qrQQZ+Du-zG?ef+TGLb%w3;syI!JpSrNE7xNAIB1 zccs@2Nzp~`j=H3tS_r?ilvK8+nXYbYY?}_NWawIP?u+I}{tG3Y z?|gU@sq|RV-i$Nr`4G~*GAI~#NbcSO@k4y5m!bzbnCi%35sb+sN>WnL_$yFZh#cp; ziQ;dU3YqK|Y;8Y&CDrnS7Q=*UwlDQB1U{Ee-PFvSyWZC{?>O`vsKaeME}Zv!se5X85B^;&rSnNpECuMY+X;TEel|MsvB<o$&En>uc#Pk!0S#G2C)5pQ=eMy$gga$1DdcV7?c7&p zsJxL0%K0$M>>ymkv5Af7s|R*lLY$GG`!>}8J1sdWrGhuFe@?4^jGA+N z&8u~UtRN2&5}G7E-g6CETAJRZ;jvLDh!t*Mz>$+woRBUAkxCbMm7!cxeIHGw7}`Cf zEmgCTYd0kmEY^?s1cS!cxF8{ZlMj0?jO8*6@Xh613-Cp_0W-k;64FiIi0|wnYG#u= zbA$zQ wWU`*t-Zq*+4e(If2GLBY;veL%nvlQ;Z%NXRsQOjE>_?f0IvJQMfb@ra zNK*|>)N2VL%_q5zab$4$g8pHsyHPqWQxwtRNHH^+KEiC8s;J1|Z7Hg5#SKq?WF>U! z#D{QgGrqQTZL{m8^#}7a;o*>)AO%BPSL`{~Tfsy9A_g~Ff;4{WPRUc(p9#usY|{5d zRVLcO(5b~pckN1koxep%W!_gT86G;g(o;?lq#29^^X0|kD{O=zjD-JiLaD+V1g;$z z4g@mAZH()lY941>JXaM+o_-wvT;Dl4={4p5a_*QEg%)D{>{ZXfk@U)an{sJ2?eyEL zZvVEx8|R5}1O@^7RNvS>&B|*?9;TmATLrLP`T0R(rm`cB5Cj(rr|Tp@sp0Oxnxr;?TL(YlpGq)L8^uX z@(^5@d#oS3zr8+L^mL=Z>ecFUv4(D`oj|*Lro$W9aM*m1+o2kx& z%&TdyJwABn%s~m07)3HehLJ0THpO1USgJsTAvGXkF3xTz#KQjBa`9tFzc$sU1|6yy zj(5BCSs|Q^S`VZ+VR)OqB{|03E9*#j@);Th=Y-Js570)zx3d20n|es9_p1bvQ-JrV z`kAP>?0v82~+c*XsbB;Y8Z!>@L=D^0|36q90+S3I#ALAX>k78RTg(~+Bz^z|Rn!F>q|;ku%%w&h@= zvDBGz;W2M+6<474IC3BL3(#W1fbWi~WPSvBHE8x?-+J+6Q6OH%fq+?Zq?;?UzK&xw z;LuZ~H+d}ESOT`+gC`C@yki!jcYQoxXDH4>szaql`{%daQLcc2QD2fNJM%D|x)zMv z#ntwO((?5Yh<(bk#eerXy|@!1X^^Jih3z#dkuT;35NN{W5P^jS*`kw+C`%a;FEAmuw64yX zkTc-GnYRaX%J%{aFjhqN;s>Q-h5mrA5t$D7V}>_Z`;{dTv^)=VfwJ}d{Z1hH>p#6; zfz$Jp|C|aINWM=;$&Q4?b@EfdWoUL~Yb_XyrOPHaAxwPguOM++UlP}I^9!M~LCW31 zQGAD_!hf?Uhzn&1y?fJLVVeI`z_l4rFl}f~{R{wZ5H z29S9fe=_VDvzsKGCKMSQ0i0xLCe)uh4JBzl8%_zbbt3K=Q8CBZf^c*M)q)8)r-<0z zg5~Y33jB9%~Wfn(-1VDgEpZQceP4&@_BEv%t9?6AMAH95IQlKp6v9k(rD_?j@( zvjspJ_`Y>U%YY`sx7HUxc-j@YsxLY3x(ge@_T(pvbkMnWjO?4l{!WJ7`Rr{39#^N< zM4^5n+6~R1@YGK#14!ZQpX!8^g*_*#cf1#*UVn<%ROBTl9OeX{(~?A{i_i`dD=?C` zn}ldX+NXe0FS~kAe}cx_$mt9ciLf@29${;YLfd4oO*GE}+)l>JWjK(z%UV_cWu!ze zcO4GMSTyKT7NhG``m|XOYof5Y>Z{aG$4-?iTo|%~cgmhl1DEQzKUk;$74r5kN7aDOiCZ6HUpSl~>wajk{ zUvp9O_ImC=gYR*lanW7ZxM)Dm)88($&ET#v_IGU`-xh}}u`52W62xeJ0(VYf2h45{ zP7heSoj~x)x7Gb_y#R)FbxBDFsm8^J*ZnRd=Rk7`zYsi?_!?eFdhZKR)Lz?I}CMoMPuB8iT?6{1oL*CG2S^T|JIC zq5EAM$A(~>d8AxE5MT0G*kb&?KaoU|KEw+pHRtwjHslhM*eHCeIny%A$A`Ppy=MJ9lO*af>s{HD6q5J-l7>O>35#9sTVoj>9@S=#g{)n(v9ZBH{`CWs%<`12ZP;xsiKq&N< zuoyZZuhD z)N=N=Xfud2{LV}$AX$G>K{w?c2Fw8g%W*_Y4k-a8`AHhP^UD)82IMt$jaSwMXOhF+ zC9u2&gF*ZkahWHLpP5ay$2$2wXKZj3&fU5(J9wyjCu#5X+<}{nuv#jod^#4%q{N*f zv@gQEpk4=^1tE9t1Z1s4fz~6iSiE5-f*y(TR!AkiSR;Cc^FMXd6)-~AY5CUb zT_*D~h2b+{fH3z0KpLZh^q1ytcdSQ)S^C^3Q z*&kgQ42Xhh_XA6sccT{JZ`s7j`-+S9tK=v*v9e|4n|*xyD`o+cQW|xEpL^ve z-?mD9kuM;Rg{+*PHw&GY2p2By6CJ;}jPcm+Ihqaqsb7&4x8KD7QJ8_h=19KM>VHF9 z`$00C1-7XWAWa0-_3sx4KazxblzJpH>)*3O`mbM4#hZ@XDiVv~EDVEVR}^v#x~2^Q;VcHW5rn++4_Mll2(vfVIZ>ALn&eM*jth;$*e5Bd{|=Yb;cvTMSF`SZ@+$xIUzK) zYL3^L9horc*b(Di5-?+wO`ET>E}aW0gTh1w0#|jEiFt_78b*@d77r$b6c)RD3di%%1$hvmXh?EvQ+#S4&m1?g=?%HcST%@S`=<~_^ zqvlVW93)F*+MZp+2Fexf0Gc+KDH>^!LmkZB&!QQYzZPL=()@q?gecH=&j7lhzQBBx z{W6}nKMmj6(k=xy3KY`%zPaZ8(c5{4MnX0N= zAv@J;8*49CE~hjB7XNu6IH+H=fU7#{evB$1&S32`-_SS}8cj$KXG~MQOo8`yrc{nJ zi0u{p76YcWR%zER#VoNfH=5=jzhv}z6ej01=C6dt3>*qcd!Xh2)hR)l`pEmBo%-AHH?5?z6FmXbe2QgC<&ZTft0B~Ftd^>B zIcjHMLFa#F_uB0#L*U4VMv?1MY?+u%xKxH~db{H7jNxxlH^_pDeFsNK6W!bI&?{63 ze@gwLKiJmFHa<}cv1f`_DhgaL7Dah=6=A~z>bP;Uw1@5uQ+b>)2!8<XSDmZfah!m63v&6#DGXDiJ47Lo~b#wH?o>&mj5wsUrKPiq*i!Mxo6mNWmd922sO zNu7y+wz}5KD6YXsn6}eU7iEb1$vRYxjDWWn3hlcGeVefFMSO@nCp%=1)+vl#Q+x9! zp{gT#4!}wzkJ593 z?w>;@ub+c$rFQ_hDrgpeM->VqTr`ecPD4mByJP|W)cN$p5p14AlxIemR_N4-Qy4vj zzU8BDh#IET$ZxY^P@|-XPjkO^3x>Sqx=#JY6f+6Rh09y)b7n*F!~}mPYlZ@sLIm&m zv(6Sc)z_H?RWqJjf3t8Z0qx6*ubqplUW|~EtAQSV^(Mh>sPB?@h-SQ0xK z^$08G%5K4m0DnkV5qgGf3)H5#NgmP)Gdf((`p1dm(`e+oG z^tC=wKGG>TIo!$V5N*h+!Gpe*QFCY?(>lDmwI6<9@#|VP25G0tmHBoAe=u%MfR+v9`ttNlUo(;YPTS*cjq*JBGe!1A5p zM#3c9?4cFsX-brs0-v8g%f4+*hOw%Fm_P-<*UnHQ0pyH0cY};r8(c^m6l31`H(xPp znIs{}jUP6m*fZZqv`P5b{s53m&M@gsh`p<0V*EE>b}_}W7gjMh9((mQZrB;auZCMW zNd#x&?$54mM*kby03&nnA7}&7%`^)+3L}zp0oo~g>WMGj%e`_j3%OejaxuP91M5qV z#SVT+A020q@R(1B8?|C0?9TbErHMw1-=|M>xeKw2T3vUvqPrXfrTbm33v0(%AMv=cje2Tbajh~D5r`-Khj>ScI+=qh(((KnvA>mZ?mPJh zn2)H%QExcV-xYBQzIkswLmM13su8kAgX6fnd9A2n*Dm0{@F^501}PhQ2)XBmR6|(D zIJf&Xg}o=!x=%I0IYYVILX}tFM=H;hCTv2S&Ny1c$(ZJ@;(-SNprP9dV*?d@3uli$&&WZuc{HyzI(YBmx0DlR)v2 zk37=qKNWnNs6Pt+cO;7vZS`r9R87VyY@^nVOVI?V#?-rrrcQgEN#ntOj{YTP=sbEy z-Rsde-GCKJKTREeR@tb?yVz{fQR96(A`VBSC}OOr?=4qO3q3xruN1?^-QTGg4VZJUQ$q=2sM6X}{vu zXmPhCRN?s2tp=1@*|gbBY#Dj9`X;v2{ktJwQ6VMj9a$xaCKDKGX<=h8C-!#)d*o!S zlKczo^mPpg=cnQtLI{?e*^Lds+-p&8bNxD#D=*_rtVnK)6*=+N#df;v#fdp1#C{1W za{p9=xAgN!(HF5L*ZH_EhiMWxVu z+Pa49Hul{@v824hLY_Jcs%v66)1s{}j*5@8_=a`EsF?*XCz;{tktwUY&!O+J04tl*g5HjtGgZU9IWsjIBKGEV6$&c@;z#&-96Vd5K1dlb({?dV~n9 zy|^xisPY)ht$B$sFAD|@vxe6~WlGu1;&Capd&Gait~zfjXde~CTl-;YsR3`nR}DZM z(v<~nnk=_ff;EgCdU-B!J1z5q8W+Vj=C0%p9#{#q)<5qg+}`#3EeIXfqnq1m<@-o8 zmg7_ZkjK5?waM%M`ZhQJLwf&@YFH<}GB^-?H3OrkGW9IhdQz?wMEZO(O8FpFz%NR7 zBGkqXB}!V<{m*5LAAM7~lydL;~#6y1rzh-WdyzzL0^>1Gg73Kliv?sG~3}x%@Rmsq{dyhYiV!&y;^^T?y+s9{UUWn#IXR;x^Uc zo&fkBw5iULQG3D-o?q}Kl`1>9vnyECEC&Qyr~fQ24Fv1QCPGu#r6FV0ZJrqIGp83Bggb84;Il zX)ih->jO->Znkcy)>GkY#PvSq*|wG$OLs&|y5@o`q@VeLzv)f1D9De(ZZ`(x9?l!& zyILPWJKXfP(op4NHqq*(fwR#x!q4;2`%gcukVYDFYSpOscUZo|d56R5JznV+NV44N z8|+VVLjD7<#ir=1KO3Zr#Cd}}`lc&S(E3dsN4Wj2rz`izp02Sc0p9)(A)*Jg>rM8; zpjkA`Pj#$2TM<=2Wmk$W4gOR>NfaWh4#9txC0qX91;Zgs(I6V-UnK2r7SRjUSuA;a9H@+a|RgK5&eX(Cl(_jzAt4b9&$Q3TmLE0tK;zt+Pn!9dPX8kRC* zvE%IdXY~LENyM!{wyQwbe|$TKtsOcF=Ka%kID8XoSZUyBZ_GWeJjrWvb)~)dJA)XttcDJh@!a!D|HU*DH z>qE()_*Ycdzs7{Op?Q50Q9oz@51w4r`P7$ur1JjkoclmYD3HBDxoSS~l)F3ilEge7 znAJP2zM;22g0B!kHX3G$p9_O^LAa7iZ$f#zV<#~jWkRX>EH8sl=Ga0Y8%WXhTb@bw zr0ESJ)*N@p$B(H|{9Ksmv=d!x1))tl(2-|xOCr4d>i)<3CdJzqh!-Kt+J8d4d^l&5 zx!|K7S3WeiFt zruQh1dK_r;$wvQ`fa5Ct|H!{}k}34Kl>M=djXQ5|6#lmD^a_zmp1k={c_pAy;2GK; z<{L~IqAd5d;D2&sy>{p(HQsPC4^kOkw3%^9S4%ss`Le4%>R7wBWZ}p&_ThTCmEn&T z(})j{y~a;sLXJHjUQhR$8Z;Xww_t0RWbZ}JRUDSzi1oygU$(q#LJ2SZksjxPs9(HRC#y?@LB%co2ZvaiU zJNKho7Yal3n}r*lrJK*KFrV{vyUwf&JWIc62|1SY@BKF22r+IGyLCYM^+clXw<7Mv zzKXS436;Ml6J)gDGHP)jt41odbZvHAL}i%D86ql&ZRK)9Q9-Kzu~!Z|wLvu#U)I5r zWG0X*rbUSNv{q5iTL3;E>8*m)-FIKxrN(ikG~VP$h-bxZIlXT}UnW=fYM#y6gYTxz zcU+^e^49gq)BQ>IK{h4c<%5GRZA6inJiQHRBLh_OGQSpke`vrN{b0AqzU~D?g!}zk zsBikls`dlCohTo)n8y4w6^cD&I7Zs`n}DkC`aFZr3e-M)Do$Ff7nR8~*m+h|I_4aJ zyN{Iu5!y_?ffRP4sVBKttvy>Sg;7z_Qp)Se!if1H9kxgry$h}0r9LrV9!(@H6e)+F zON#mld8+QLkZNYOf}XGv-e9*-P^noL2RqCf`n;la1)J~)*Z*gJ&lI$}>hZa;{bDd@ za5FgrK1=5I7sM+iPbjk)*_5GcY~HSG^amL`){$43cwA4U{k(3^`aDm!x0bQ7E%0VD zPU{rhcY|OrUTi&;dQ-3W{T>77_t$(O=l9R8UC&C#{UcBHz#mXCQD0 zSgcWF519=p?=kA~HWlJo61@)^e_!0g5FL=#c=W@?c4H@sys*odH%p z8nG=?1@%i#C|C_5Ct}?!i@?Oif|(VvBIJ|UUv~q@BT0uL=u(+k?g6pCe^~5rmjjD5 zZ}IYjX!8E@f}8rHL)Iws*92+^*j<*PYL8fPL{&N|(U(HcuLf>ypOo_=0# z!ihqoVI(qm?f#ElQ_FLs;XEfeZm5<&R{R3QYR)0+KKF26l?&?&1g>Fht2ssxeG`$GqgLiUXH7dLcC!$l~=9Z7qlI zAQ9sGrq~1Gazho&>ur?{lz6VA17xwhY~#Viy7Novwmvl|sR8c&bIEKXo!dBteFo_K zI$_YUnpYVvz6K06_V6zR#dO-q@$w@{?2^){SOr!^h^S%VGiU)J!ySAQ=M zjAZ)8v6k?#sE8K2`ey~tN-NyaLRBQOS7ZLb`Tc#Bq#Y5sK(xOckW-)fOAia$1p{DD z=;+^?_Cd|uNKcrHDeAxTAwp(#JT2qCsYY$U7NS}{+CW~x(n~7=^K8LRvMoa7riMbI zMc1|&Rrw+WYZQoOviKDMZ~MN+dW9fcwhxGW1<`o{S#ps5HPz-frEFe9bkVys949B- zuNX#MyCvQ(bD-B_d8ES<2Ot0dGRKD3l((P9x z@Y=h8$vLw1&!?7CMRp2RZ|;nD)PFb!uv6$mrY~Zk?`?0nn*hqc$F~{He4};_;K%Mh z9PqA(dubOG@KoRiEKXKjT_-8;TwWd_{KGpPF+)_|b2**J>ekap6Ve$NQ{ByqPU0|6 z*RJX>0V_Iq#!yf$LJAa*f9dq z9ZmYt(AEU_KwG>PSW3(t&f^q?ojOs{LF9TpT}u+t!!R-7JdmZD3OmlVp!0W_cTc+? z{Yz6qyRN=-6C(B03iF(W;ZTYxIf>>HkJi1B$Sh=VG0p%EUDo=}y*Wc&I+G!kt>+-t zJ)x<-vA)tpzF2=2xdvAB-)Kt>KYR5H7#Bm_&h23E&aOo9i`fjDd4n8FrD)qf;pB9xCr<0gH>*w=tpcwHjc0K;_7=1Ow9EbLUgPQ2|W z$oQ2StTRxkjU8wDsTJ#(jbNj*FA==!O!@P>b@AVNn7|UlBRTA-1TH9hli2Nu70Z*a zE!^1z^k-K$MkE6ux{zUCZCQ1%nRq^khC){;;6<|)qb%h2gah&Ixo=p0=!?DWuA#42 zWUUxhm#~p4pfyNHOnucNzPhUkKe0e=;Dr}3hn!~~C!RZOrKwTs&k~*UB7VSN1`y_L zw;|_?Xd)0nF{dk9jGCib4=(<0pN!gzOx6l&Lk#+YG-<~In^cG{zhH$_`Sx^4S<7fu zybfp!p{PB3y*-FGeEn*|5I8Gtg+VLTM>w#wDRVD%d#M$ylV{oJgI!p0Wv@MV$DouR z);{Do856_H=y>63;5ufuMzYTw|4V|1UKEZ$L7Ph1f>ChUwDX2i7E9a2unhrPK2q;S zmc>+RwS&tA!hGVicVn*dS%0(nn(1I3eehMi*^+==gJL#l+%)+E80U*L#1yZ^z0*A3 zgV)1pg1_*oO|))?!p5OT&M3iGp1nYBKb!&4&NsQ4Nl9akv%-Y=(EZmOmVuA%vDU#t zTF8l^TK6MaSvbo?`?M0{m;z}THM0#tI1Xhvlr7!TU32HC6x~dA%|5lgE7XN652#u~ zqmnr;)T~;~+?5yy>Nc^S(U#yatm3ah5{rG$Tlg)KBP8If;4qMQ?nC_4`i1kO5*q|x z8kDT`IjH+qq1c2mn!U}L`J1Vo9a>xDY*wunyp=6wfq#C2085GYKF3ZMJ7@*xY75{i z!)_|5DV+vL@E$w&tC%Sov z^Pvk__VhmW|0aQ)apq}36hL9SmAzoXwqGz|7L)Hm?ZxK6ocI;=db+GS`Y9gE)|T!c z%vO!vhY2xm7(AlU!n3&9uAo7B>0P8jjvc+zlX1JN+b`FXB<*-S1SVsV@8h|@)g7rp zgTvhe5ZsfmLxau%p`q6=5V0BlQb*C@AB-nUTyO#L*_o?FJwe_p43?k#HQTT$Iy?SQ z#1_5r{KjdF9C=z(Ri4K^?_D9o28bl{W9@8gmn-P?` zYTv-t4kZ;0$gH8?0k06-RUbhRUdWAHdVqWvT;_<0^~wWhp6jT4X-RtijF(sM+e(jb z_lmcSU-jLI3B01Zz6p7tqaa6r6C8DSAZgI}y8(wX4qhc1E$ zf00|hL8ruYsh!+z){sB?jdtb6UmCppmOtkj0hh8>-#VG;If2O$`Giv`>!0nGQ7@v< zgQ&6R#%%ttgs^y(IpEm<=P%}LZ0RrN%vxI8^{)Bx-!W$kc}Z})F0H_36Ar9T9_!qy zZ_5x#&NDf5-|QTt* z?M&nAWIazS2*87u*H@Lzc$3ue3GWV#Gs)zb6^pyK!!-l;_WX0#jT1`qB;c3|}h3Xr|ft;p^4?NdH;Qis|)v_5zRj>QbzVZ(vi-V*M)zYD6&mV0S8 z1YEmW`1Af#kn?gWiU}G!q@j<}a>zit>&CGY07_e@&uzi*@#zi1ALl_EZj*Q@7{$FAjLBQYOaOI?56#8ib`zy?RYv?y5 zw({WAfd2qArt~*SSHPhxLIFU@_C{$opQ_>V$W%{Ur`DC|}55ei#Ven+}POm7$Y7eEvGY4$%G<8TMkfNbLat8Y+#zT(gi z#(fSVVk>gfIAPMd8OX=Tf|ENT^7TFkG41F-564r9FRm*>T#xSOZbaAl_~*{HHYy=m zqPp8}Bh-w$MP~fcc=w!1u0qd|13~-c(>?{H|L4pJA*H&$_0B#QN*nWUsLWoi94b?) z@b5Zlo^IAhUpSDA%ilUFPI1QPVy^A7asBmioJ}aPjCvPxJH0CX>3vX39+Le0z{$H% zk&8@KCq8<=k*Ge9@*k)`kuT;-*a78k~s(&|ish}Lv|M+GfBb?a0-8xH6q<1x$+ zQ@|0Ire)!&Ul#c>z<4-G-Rp@QWW}2pti4hX+Zg{5rLrHs5!e3Yjs~+~+T}0rqT&eo zX*Z5Z6^T4HSCmxK@7rVKRL8zIv$37M+*iHmFX|ZN5&uri=u#>%@ua~2%v&yI@`(m+ zhC-k`=rFaKfG%8bA%ocf$q+Yr3jN@DGzCx$?coBF0H|*8OAq^bbjbI!ZMJ(g1jjop zfD^+5Rd5u?ieM&gnCtv1TA@vnPqgl%8_Kt9q^waKEPqFb6da~4{FFjwdNB3#<93B( z@Mr~>y_&fdeiVC_mBim21?Yi?lM?!Y-TBMfKBHReQ_qIS#~Yp5(!FFgEIUdpZre$%PgdBy0zdS zI%pt(OXdUI%CC&F3IVafs&m(F++ZzK8LquDg3`YxKblVucZ!148k4Ey$e>uh^_6rq zPU+pyxC5;h_*EZL#pk(^&5UkH_g7tjJMGX}Sx#Ek*opn}U3f5sq)D=dI)F@-$x>!a z4<^2F&`yS+KYmh_*VN-c5d5g%at8ly`n4&JM;1oSf8uFN_?48|%qPt(=jW`P%jRsHcz6Gi<-C2`O7NyfZ_f z7Q1NPmjjhhaQ$(t6C)Mv+1>Gm=%wGl3q_tur3>swx-8rC4E>L;G(ZXe+dzR6!&f?a z4XGTYBpy8MZ+Y3w%86A)`$3m&{#L;7KnN6^JG2H?ejpR_nwLe;73ZN2$ep=$eDye81J^_V{ zmy44S*vdBds5Qq|EBUsiTwr)Qiq(~M3-%e7Hnd$()J$6$4aauh4)CANs9RZ_pCj|$ zv}@>{M{pgzns3xv-+8-xcCgfd3VaXa%lE1{PjTv&9VcsD>W>-$Zom(8_v`xT=m-W5 zj`LB=;phq&hIMy|Z~0=*qlnkQk-5Jp%gwp9^hOd|S;{u#M!@hPLiyg-6D_-6FI!j^ z`y0Bd|DG{faZWv^_jA2@HC$2NyBCAifgDbHPv;0Mg{}vyZG?eH_@=YGKz^UK zt?hf{m~=KPc-4T6kpXL(^nv!tH|B$vCRR00FGKBj1uv;!i*i0+WK&y#VRRzsL-u>_ zV_aV)SAB+6S&@%CKULuG^ z&F~T;%-($fU4|qV&VH2VWra2)wDWJ|z#n$+ttMl{s<&lPIHYv}K$DZ33UuX@l2n@!(r@qXP4QyLTrK<7o!SDrMFT$5ZtTz+Mxn!O62qtWv z^eUuZoAhx5&LP$e4AE>iec`Qm@=vs4AW7CB2IW@P5a5pBAbgYa`50AQ2*a`AKzwNr z{+)oNAT>H{_*-JXl(g9A3wGe);nIM~+>GF?hNi~&Rw_;^R#)TvRn@Ism2egf*}Pjl z&7leGYr{T%+WhL+mDtHzbbwK(6gO)Aqy^<0cUhsB9luWz_WAz>BJ`uZm_K^wn^AlbcrQYRgQr;9Wc_Hns_Yip;EA>dVU5?^4kX zJR36T9>cpBv?C76qXx*zdW)(f_ZgmwpGBDNNNIo`GB7~!q!p_QW^@CE-rs&i2=VK` z$x1Kso0)$FnfAq;S!cQvp#U7c;1XvzXf{O0mY5q;1YowC56J5bZy4k9ux!pESULejFfB!W(oWiU!EAZbKMUe!Y5ih(Y0fN-e( zE8Yr518-dW)LE-D3=R&COJkqCs*m_BFj~InZr=;an5jZz zX909I8#Pr^h0!MGV3`K`P1lAM8%;6?AF-De&>bktp!VRNSF`Cose-89-j4Vw zbOGh1Lq?#WwDN(EWf;}kY9~QE@%v;{3J=l>xO9Jd9j>UEG%J2H=sZ4r2VwNV>{BQ) zP<&d8YILX9rRMkpG=)3pm=%cu?PC3U+wnO<eiTL^EYWzUBH*Y)xr`Ji4LQ73pKOjl-_GUOax*mI{YobOJ$Be!Rph~D zAvt!si}rOM% z)#e=Pe|!`N@xNjS2?-YoxF|OHpqGq;4e7uY8Ld)o?zU3-n3!^##)su*<~#(JWN4=<1LGm8Bg`Mob~y;dTe3q8-*4|{I1x-`0*Y*S43Kx3 z49r(BjMa6smpmjXsq-r#s^SR7X&0%wq#CSf4jl$%d^hXQ#I6`tt6*Qf>@HPE2&^yD z$~=t5-53_f@nFun@k1loK}@EeSuQHAcfnLMXJdZ;j%rJ2U5aw66@fXcm02~dil+Va zFFAP`YEOgmO{RqJ2=TgEG&~DwtgKtikdTnZ7TVuMj-cnE3YS>1!GPzE{d`~PP_Co; zu7{@E*659ab_M03I=`eU9)-A>7Z6?*UCVD^HmgX0Z5+RBfKQcTW=XFF?7>2jjRh<^ z88)R_|EmgT`W;$VZYwQ8g^0zKH_01)k!(1dMo-P??E1Mc^iRg|jf<0!WH$YSxk{sNo4XR5 z9u0?3+E`Bth+`f9kFvLpt15W+MllGH5EN+;5D+Orx+N8)OB$u5yHi0rq#LBWySrPu zd(+*0XK(zS_nh~h`^TL>_^|h0Yu2opC%#Y2Gh_f8X%|c(Bhr&Ig^^3pmxj=pMPhWD0*W*g>`P8-jkT*HWkB1N&ZCevVFExoB^g#I;%LZ!Zn+jY5nv z#OaAtx?!%7)b|c2oA9I@?xTY+B@%0=!t^+kaQCl`gAqYu?aHLYA&uo%t@MviByS{ zH{CiX=QjXN!(5LJ&mv;LY9{+NV#bc>BcR~8F=(}yUf2UH(cIi@)zj z&rqADk2s(@JZO8B;NKaY-WjT~NLG_H!Z+A&7j_d?|!`uh-wIW;+Xi-&3(Eq4c-VCJO6V z-kS|ch^8z8F#Vwh^t5S1pAC!$fgXp0`cFw~n*Zb0o$>>BK#2=F(a^U3jbS3yq$Na2 zP@9C@#KV0HUvzTkk9`(LX8F?c4S9; z+5t?h1D%2ZSQyZfVZ9T&gUkJP4Db13C=FV6KXAtg^F)<#LOW>vzHcik93zwJbHnGV^T71UDJ&3|*700>eE71s#N7wMH*&ywm&FWv}bO~XmwL!hAk zKcpuI&Pg_yaJ04}bv)j%Y>FycT8KXT^ffBjdGMN(t0JovGH#kq!evL)tk>J(KZ$$Z zi8O*EE=7?4&Q<;HjHx$@4S%sDu~Bxbo?~=L_YqH@%ft5%+n7j7Fqk;;?{cAhY@M0# zSC0-u4UdSd^Aaq54vCnN%gxF7E7EE69#i)p74uDN0ZZaq@V*s}ue4)2qA}1K-1QV6 zHn?(Q8?vsD-s~cCl`YL@GLN-n6_nV=C`RtK8*dmE+VmyvJMOrCO`9vAcLN9^*vmaiD}C%eM(850q<8WFD*n-WyIH zJQl1U`F%X|XQob?9_cm%`M!Md4=V3Y% z@Tt4Oyyy5MTLr;t1mf?qMHf}a%^hqFrw7;HUlb^Bh}R7rF1`IM+SQ?^afk0Ze`s6F zbwzJ?Cuw+)Vg7H)7`1%Fi{Iu3N@zRAxjz4?(#=?y+xwKnmJ@7(?bKL`cr?9#o2AQk zcVxnHTdK=BLqpC&=(Q+3Ua+quG(0^}v1gL)tA1x%Tm6l5v*3KvSejpOD8O}x6mqwys1AmPP)JMb1#=)`l&G~dv?|i)BR>y^QTqIvnWyPir z02;`+1^4PDl>dW468$HIH6O|ZO+fG}7RU2;cf()p7IX@R-Az9Ac1+0@6g03B;qMwd z)Hz?-RMylydelz3rXd@Pa7#fX)WB|AKF(W$8OkSEzHY%U4HGh_K%gjijSl%3d0n2Z zJqtOOR3*Nka871K z0&27MxY{^m&Dfd3z4u7mwrI|AkNZdf#V?-IHYO)bGJ$KdHt;WSdFm0_taM^nhFjaK zR<1^<^s5xh2D&aZJ~%p8&U;xg=dfj;lc7?oIyS1Pfhs9EU>QL!pw6x?E*@}EhT^d* z=@=;hm1Al_K%|f>5#A&??rykg9)ZXWJn1Guo#TlB@tYmIv-k#QBvVt<<1K4uy0%Z( zC@vX3xrr#~v9=3j8my+4vYuWMS!xQ_mX!lnaBb5usu=nJ;f|BogMWD@o)G9<69o=Gz@7pl*38V+>&``T6R7wus_!u zQkI&CzP`Th1?g_hVq#eKN|(}}u@Q^KD=P)AH-<-sxIEo((g=aTN5Y|2JiN5f@OoMuw~sJNhv6JCbejvRJz--uRO`@ zGTfi&)E#EtZI`uuxzLY(=aIET%_J;1%f~`X5*r21UMCa7R(^yldb{U($GPQvl)Ve^ zPsa3VX;^t!QU(eExmZ^}M7v8=Y}A~cck)p+3c)IqF?=B7>oSjU#usHCX%t1L)yxl`TUbw2Qam2_JwtVM#S6XL^h;K%!6-DLDbKsa zDlCALq^NZ_y<}U8%EA`DJ;jL-nX%HP&}eWMYPfsKV|&_o(t?mwk5MU$l0Tn-dSf{) zU2yC^WrxZilGwBdOcn*chzZpy3v%zwqtY>wz_Q>ED*(?qbNmh?Nh2=}Bd3}E%lIX1 zSj|5oK0;|u<)@|+hwLc|ea?}}Sj*q`bQCU~EUC#VAVff3B{qN?X<cN3}kt7g>vyB7~6 z>#U!l_uU}xZ667BCKCJrTgI-x!}H9_{u+1=S=2gmTW<9EFj3NQIfCT1f3eoscjgc^ z&pvl3HnZ&{Ro|?3c8y8jLEo4>|G7O?;|7_;7X2ZHbps3;V=4=dRB3BY)LxeTLOG_Z z@O4l*GMTf{Rnh+VCdZ{mCbBOluqXTIWyC4-^tUWLI`_|$B)`+%R*`!fi633`0QXF# zzEYxiEKBs656$A+={=gaZ#mS+)lc2%BFV+9l_RW+$OWO6O{O7uAv)V-(~RbWVB7tT zLicms=9|hK`wU*^)}SRnk@3V0l#g@YjpnW|voNMi+_$C%d6QOl3-*Ujciu?EdqwVH z?w#bnO5WAlU|NScF0ARqOqXf979?)1+G}-0`117CPgE54B6u6FX7~D$@pWn_%D1QWuqaSyb=kix*Lj(ve%E32?B$ zXtks%2&V?|c~qKolu+OKaSGJ+-+n%5rfsx34VGk)&a#D68@2X(soJ$fA0%t9eUKok zoHN8B;AQjvMDE&dyqC^*2Qt|z$T-ofk!2H|5P~k}-~4q{AST;HE2gx9f_A7wr%(rx zFXH#Xx9l#BZl=BrpeZZaYq>P&*CGy9IHvjOkD#NC&-+hteg&ZnlYMTU%LVEg<~6Fg z{5XfR_Y>At2^`%Yg!`swF4_v%PC*Ue)$7CzGs_lV=19<(z;g2zyL0(EC(<(civ z@VE3l!JFo!ZTSq9N7GH&>my}ox2S#(b(i5gK5{wl$zwBT0X^Q`-3=7~4`7qPnl%Nm zZu3{oi4*9nKw^Xfp{1o|3xIMz@J%Wo2x`}9V;xf_*!?F09{&qiFGYz%Ta35cE*so< zt~Xm6=F6yLQw*m%ti)o1kslFaDMFt>-wrg`)l`V8@LuZJitu&pZIgspcPz;ZCwV)$ zOWkInnK?zJ6w-=Y@Ckc>JvfjDasbw%9-O3Km3V5kq)W+zJsPc76;Z zBH7=tgVLCNru>2=I(-iYpeC#l5v*s}J!3X;* zB?oogEb-*sGR>xk_l_qpLb^8CuNQ5>Uwu*Jy)zxZWdA8C{m*)kBR-pCQ@WAA?aVHW zz>E_dVbT_%Ki#ipkGN{JJH;08RH$gf@h}v&?O(pVp zFn8s~IzHkNVd=Xa!m41z_oc;cGBYAnf=7qQZC-=UX^j89G=?=ILhSu-X)HQj3<{qp zH=QC7ks=V0?^jb$Eue{F5=*R;loJz#id#UH7+3>)E~q&s2`7WQKt#`tM8Il~uz=dFgt_xJbVFvz*|!>@51T5e$8S!=MRclY5q<9gu`W5Xg_gxd&c|X z<;xg>zUpd@%F0TZhXx8k3*T}~hEGi?TiUU^-a1`xDmE~Jk_$9N>=r8@EeG|P@D3*R z5`TD4mFx7ptgNp7*6xp+At1g10zmEV=seyt*8ei?zfLf@_z+QZheYm;M~}E~(Glr2azJa$}9#@f3_Gv*vh2 z;yuss>CiUx2t9F%IM z$G_PdlNvN@hHiVJFc(xoVr&Aab0%UwQ#>20(w>e6K~`)6$q0WQ5Ilx0boI*~!{^e^ zp>7v#&KOFGxbNeY7PWJAocjZb=qO!*oqNKL4gWUO3C;qpo(%Z$2r)T5JsqHPmdC5- zgr3mLR2_H9b_}u?0cs??;)V(q(5jKZESMbcOk;z%c8$#r$DSPszRDYWLEUE@;{mL5 z-cY%KO<)SL6ZQ`eAKvqwv@LLk*y!{|F`S<-2Nk*A-74_%TCG0=u$^`W7yz%5$GT*q zfRWVE9)Lehum)CuPfKeVo^$K|u^@v9?Nu>ZamSJ4ULCedxesDMC3gmHOvs+UyZfX1t6k2p@bIsVZV#dub&!GgslHRUWwIF! zjBFAaOp>j(e#zBd!#sg@H=M9%OkiLjAlb%|ELrn;=d&{E-wcGzBrL25j|%V}lR6HK zC((zrL~5AT2Ju`XxnA^W6k2a75U`oSg@=bj384=i*`)47fn}8s9G!||0Bp8kT2SoI zMob~tI4@=!sJ$W}4{}wj4r_-E5xy7RE$De4G+&wT>Q&o>6`)(f=C1*ma#OL{4d?e801VOsClg&e=tLm_}OH&TUuvkby999g~?+=n*~da+P;+Qf@q5sNIG6&xxhP z2_B~93>+hsOTN?~E^g+J$J|Y@8x|H8)k27CF=yUE_^MbW;@uH3aK3Ix@xFT1IFqic zr9}p#TOd{+0OKN9yU_BekF{ld92*2AgQ}+T$U93tcybgA+I}X2wjF$$r_&yi zcr?^U&(Y)`oYg1zcg*lM?zzf)?|HJN%x{ESyO}_^Qv0n9omJ|ChmG28t8;pLOr-G5 zSEDq(c9q!jkFRa-7=3??FzZ11lFNlvSj~C2)Pk2umHF{k$pPUg+xhZSBD^^#_~#K$ zk7liJRt3LB-!Oa|v*O~>FuH?>=qIq;;;XLBIo&FL?JnlkoGa_gz#8^hBukfQ*9!8! zp*vd+WPNrWg0E0eHGRD|xbI55{EOGwEhs0*XZ5(PQN@{o-UWI0(&W9%-MI+?=JK_a zELp@};D<+W9ZAc z^;sQ|d3vE;2qhD$yN+* zGcc=y@`P0dnA8*KA9YgyX(6gDy#>xNy}`*ILbLZou4|BCQ}ntjyrB9WpLZGu5d4Gp zD-y38@O`DRk9LTc{8lPxheuM5hvaB_j#_)r%O?8UiHpugne9%K_JZSxLHXs+)MIP2 z%;z`2VQGW0ve94CNliH)WWAA5zI-KG`>Ytj&?&L~XU+icz}8A>LlrUpuqlsi`h02B z>6LPA_&Ku6osmZEWv-sAl!5dS1E$Lz16PEgR*SYCTeq=FnKH^WN|3nh{^5Lvcd$z< z#9ME_D>tJ^`=?H`gOh~=1+Us%Lz=h5QQ`%hBKIj`?omTCS3`EBdQ*wL#^Py*R}%*I zKv&mB+}FI5pL5ro{P!waJHWxcx=p85XXHVQ7fYX*u}zF;;(p6e&L8~0!c;;ctTQf# zt_0cH*wl)i*S3gX=Spl@;J^MYONgpikzmTb!byyZ<+EzctO_+>z2pzOUE}JxfoRb< z;vz{_4-=eQqv-kLEqm@|qa|Jiw_xEg-?{YGJFt$KTxE@BAznE0pUsjG)JCNf6ySME zvyP@@XFpogPbk1or^R}(9YMRc-H{zYoU*AneBh13yb4!k9K_{6n&Sem<|we(b5mi& z<+&^pi@yGJmTbuG1XG}I3;-q-QJO?`>jOe4>{)UK=h-T~hvsU%&g3jZG1mUXEY{T* zDC>tBMAsoe(!;Q|E4QNI%$hzsC0uynOg=X|h7?~>@^QrAApYtE$K2Y_+yuuH163ns zv*9q{V{86F)6ZyLQq~eo)V#iuqL&wv&TiDiHN>)XMN<|zcxa2uf0c{!jpfv^n=;nK zZ_LeHshcQWnr&lyq}ab9d8&Q(8HyR$m#)GWo|&mwhUhc!d8AjjWM=a?Cdh|>!#5@T zOUk$H_hI~0s77tKA+6=vXGf#Q-Neoa!+QDc#n?RUB3G`0A_j9P?(kwT^#Q-90+d!v z(OZs_k9qK{5i+r~IjI^Pti5(aGFUg1+XJ0~{N1l|UB-s5>#u+DYAGbxO`4$~ZWT1Q zMpd1=Hz4(Ow-r9m8#vg8E1}PiWk-G9qTVre$g8=el<2cscg!(|$B0UQ2k|Y@lPSR; zkeGI*D73`!(C;AgH~`%X~bhsv4A`8d}ERN9R2IFaRpS}L5;%@B$3hdYlf+wCF(*I!*T z-q9k8qqXHcPyb_ZrgyF_LO#|%?_c&6eYq`)BvQ?wr0nhb%m0djje%3ePrlH)?71yaluiEJYt9m_Q<2UpEI(zCt9fzhoHM1YPX0gTQ zsykU&reo4a7xtdBS=>=XTb%8?V$ca$q>c*M0=N_(?M?Ig46 z>BH(fo~VRy`m28!HN2*Qzojmr?_n!(k!#0SyK{7Q+lKOVvRm4QyC;E)Y7gQY3N9#V ztez6ZkU=gwZz^vX0~aFRuIJt4_3X6+%yl29(MH!U!K3+Mk_h6TKqpU?Dv;(`W~Z`V zm~=$4akZin(Y9nhNci%{wgaM9?mZ}5+pwwYF)JIyEXE@op5`osQNPMlgRj_!>nc&X zzE13KKfcYkJEkT6NKoqXuk4liRY_B&GhB7VwkD+(DvKsp^YuVpvGZ))MwEiAH?QeN z<>p8v^T1xihg;d$gIVrSh9V&n_1WW^#VTvEh&ty?DyOjN)4v95O%PIL0&mbmT*;)lF=lnEj3ItJ&YFvC~0H`;mP(UpvF(a9v*8;KS z*;6b9AudXIhD9u-@Oy6$%RV;Gn6_()Ijhia*sf}0e6Krs7*XfoSCz3X9VD_`6v?tU zIoPlavRT;CT6anyr1p?M3hDI^pKEoH-Lb~@?zz}G`XM!=EmwC$CLbTOp$+!g<75@D z?V9okH=FVZH0WBI)iUGI(;w+;P_-Tz>A54L;8{|JXw=u7pxFRL^m5O=>Qemtd#};V zD8{6cpZy#i!p;6Jew6wg*B7j5UPYt3F9(OQvmYz<8YaesnV3#Hy!Dgp4uTapmd($E zEczwwsCKY=l__p9F4??|kJ>^aDJvR|ULDuvx{9Gx;Rn%Q5V?-g3%R&IBDjLP$tV0_ zzmwVR%Cna9ldcHZtJ18?v)EAhUvtbswZJ$!KAw`Jt*003Dk3cWb6uuuL3g=5Ad1u0 zBqy;)YIsKMk_`)ACc#r6k>^#hb)ww1$br|@{$B0Pnz6|T7uIyiM6`Q!m;7Jp0N+9# zQlH9~l*xU%6C0&o$1v#L=U*}*Fk+u+A{>rDSkBKGI;hr)_88!~c>!Xj21iHESEtaS z!P+F)Cpe@ zoBQ1}JF1rhIrl*ZPfFi_4!%e3Pl;2=X3l`d3x$XY0(Ohn|IlDA2z+i9(Tp1FJYgpN z$-a(`gak8)ppY7v6Wmk3M2#^|Ueo0Li&@Oyzxv|d&ZgnmZ-%?w6VhY3 z)(>`CLR)a2ro{*D1eEvF$gGk}dU7{y-XQH)Vi7{t;nL{s{qArhU3v6xuOiZzbxtgAH zeq#DUf8oiyBm|`&<6o`#-tY^ge=}&56Ks&9@C>CjlOyPJorYo%tAj6AAO=(oEb<{C z8Qb(%q-77gU;W7+Lhll*`+X(DAc~mr=Zp036RZ2Pqw=2?D{Srem&hXpWQ>K+gAJA+(i7q^$&ZRJN~;9 z5AE%{^w#b%kRUfI$huZb%|;hBHxk8UEEy*~%kmjSiShp3r5=UzJc!R0eiMTp6cQEo zj@3bC$d&er9(YZ5bip@*72aIRjlIQuFcB8%UfM;v?}7S!al7}zWuig{u^JKVrGT~M z1n(w_A)!Nu*QiOOK1kv6h2wG`j1Q_9TXpj`zI2$!X*Ga1o z)4s||`TYRLPz`LSN0Qhk;<4}togKxf*O%Om6n;1=%#ylR$XPh^A`lE1{XiwwnChQy zu%WOMVdoS#f6SPD&MElMf(1bV@P3?`$WNb9~pjC36%7yK;ZelkyGy4Wvo7drN6O|Ig_-I*UTnR4s_a*OXr98m4 zT+n!ZZ4kZA@vQxPf^#smQ|hR7fLH79vet*wwzds}>j^Xeq<=oUN%*;0%=nH0(uL`g zrMtllTjJvvB7rw<({~F2hrKtit`7GKP8ZN~lKtyzI*OLCiFXJpvg zW@tQ*bM)@U*8bgpCL3CL8`BzYc?z6@YRWK3hO!Y9Bp^Au$y2nxc;(6Qa$1-Sy2_-R z(ZGiXWlV5*ZkyQaj&r`^irwmDR z?-BITSu}s?B%%ZfxEcCI6L#`R#Z0hLa~J7;;Np?vO0s5boWOxg_G>F2x_@5>3J|Nq z?kaS~AL)wjbdq{{(j&@*axA$2SW+_?WnY10`TjJpqa2i6M#-c*=~Z5@1$W?1R; zx6dey$q(a~rH-%JG;@fw8h(y)>ebMOw+BVMT4vU3t&RQ3fQF#`c{t^rlU9kdMMCs$ zuRy(Q>IC`&DVx^iQ<{Hn4UDp#%P`^{6oJKI-ZdM@4sOOTWemtN%qs}6}iqu`L3-Jiu%AC z_X)~PH`esuC21VaQs<-nSoejv$AUCYPp5vID9n~a^l2-mpS}re!8*8X;(yIe5WxKI zLp*`kXAGk;$Al@$@w8Xx*v7p_r|eN=rvi4`NmbwtC(!>1S#7L;5tywZ`Qnn2z6LTf zvJWGZwJy9UiFL>9&}}_vX?TT(=nFdqzlvF(e4r0%@(h0Q)1!a znyDq1fhYU9^v;#0M^Cv%T{CF;z6GFrID9>;)$PRWPZ-dwtGb3%Pq(qZsDC-80`Kx<8WhpNyJfL?f+|_n;&Y zHSgW^dxwxj$E;2)*%J`!PezkEGI;#0q8x|Kj)L(y<n} z{Knm_TA24W{R#i>U4<>LnRGm2{au4#*m5Fmi-AUCj8)Vv*)q$)5{r4#sQRZe>iqH_ z?XlVB_(Ih~L$e4UD{#NNAbd1=n5qK5b0}ho8l#qyI_gVB5w(7M+_4rUfkW?2XAOcDNMymoQA38Y=g48FX)&BIdiMimC+=IAeX<2^`CLhq=x8( z8x+kk2a06mXpUmyO6uikdWGT4k|(}b#JXsakC1+4DdUS`>KBu;mJQKk2~R9=B~p6B zose--&$czA7PCKmVj;;mQaqOSbB6~Noj|dpiS~)oc7`$ZHCIW>?7$kHgtVQQ-sL6_CRz>2Ki`!|}nk?i`xmteXntks-RAon# zH)t=WxCl`$ZGwzF&H0-~NGHyg`Jq6^*ymJoKDX~|Vr5dDTGG*-MQ%E*Cg-#M5K*|K zrBa74c_PW0bDQ#aLxoQcX)(skYkR~cpmr~E=`9`g97*tW7xs99^b# z)nqWFu$A2R^epIP+$l{aU&p>%rAARrp<%tyx?kEy6p4s9Jej>|P!=`_xHZy=$CsT~ z+2?ry)C&XIv`z4h;f6JOdl! zyJh@+kEv&BuaBaq#pKwnei$f(Wi8O@nJz|2#viQ{jpomhX%uojzC?sQN>ydX7wuTS z!(mk?f|`!4BRx84M&)%!lOQv9OvWW5VWe%~r>Egn9Fmrno2%!wlID2Vac9-5yR4liU_1L7p)HP%4y5xEwN zf3h&;wDV?)9M&ye2cM34QBhH~vj4>6d_?LdBgd(4=g`Dgk5#~pozjv zjg3ifl%)>?_6=PAV?V?P<0J9|*Y}^{FpM6Ke+h$wVigKK=%807*! z{V|QwdS2=FoH&|ebT-d=pkUMs!XV_ktWX1TzOup_E~}oY|C}G_=v#(8@fE={qlehf z-j7Iyovh8P&;0p_iP9j9diUP=X1?KNbI(VuR0$hIOaT4SHE@+C32~jf?XPi5x2!Hmm%~mP<#Qin#^ddM0VDH{SoxHS27+J zn;#0Fz^;RPwE`Z0|1T2z<5)i8i}IS)xlP&Dr?oU^^VMb4uT-B)-(QgU3QCbIb%NyY zjn{a;|8f@U8OxGg&$aBTQ(0#XW*(=8^%L2gy$-tBgiuY>DE4Kl&JHuFR|K78-IUn` zxMoTWpB9X?$GcFE#Af>1cOg?k>Sd~2hTdwGjw1f>dF!+^78F#bOrkp^LFM8tdApMK z_GmiwLyJ)+f%sw0x9)P=;AcmgQZaHEOc>jItZ0N9~6up(A~->%u|lx z7F({klE=|a(v`Z}Rb$Lh$XxQWiQX&S^pKbjbj_8fPV^uByC%xSP_0JY5Sv4L#G*g; zA_x8N6Xpjfm>w~pZ@!5|1*-*LTwmhY!5TdrnWzEg=s2}pr5&M|v)MiBJ&kFd1oj0} zMG>Qr5Ccnv*9EXvz|Yct}(7}vnHBn$m6^)up_!(k(Ea| zu~W+5r&&n_n=!WsLWNI`GlFf%iKjDXd?R^rhj8dPSi8AdRr1^D@;F(BB=$KhAG#NI6J zbsyTVl=BVp?AY7MVxNZSiJJEX{MJW2j=hyN!Zmv@VRtvWX|@77hBmj~0{X&e!X%`_YUDbUw9OU%R_sUUgR1cxK_vQ?WUq~h1Fio? z@b5@Afxz7zAcDNzNY$vIBP^^(>u8fsS<)GpF}mDWpp#689Pp-uQqjj9nonwl~$XVzLZ>(`UyU}l3qxh-8NIf$G3)Dky%Xk{x!_Xz<_xUYbR2dhYjUQ zI!TT+{Q`r`-&$tNUY4ui`h>sb-5d#FHepAP$SGdK_3U*Mu#8yiHqVrKAHm!eIg*UZ zQlb7OoNmWVzxl(jRLjd|BdJ9Lfhut<(f7)7Jb8jAyx;)oQpJ`GBZWRSclK&{*z6^F zs0{t!v6xd#&n@TI5sxJqmnDkUBV-LBu!uVe{t^5;vo(QGK)5k%&&%bodoc$i@36SzmTkJCRu=lc?s4EkF2v}tq& z!*SnbQQ6AwLguygH1IVn@tp++d7aiM|RvGT;^E78vEnT?%eh2EKv zV?F_^_)tjpx3n)Ob%@-)SH-22U!raC;c(1I-l1ZGCk&c;6CncksT%`B2a%S(SeN3z@eaD)!@9=_NY)DdN8(kGgoalClf5G}p z{do=wIAQBgE&HS|{wVo-^CVF*f_s8lH>08yZTc`6r-e&(A<* zJSk~NV6@WzoDR@ahvF9}oH zsIfQP(Rrm(k>XI+QyN98uYzevYH?aTx7@XYkLpn1z9y-Fp;f|xu1NjAdfsk|RcvHp zSqLL*WhUJXpE{<^TZl+j`t36SrdPM$(s{r)fgEV^8VL}wHx6KL`0L4i-q5=!jS|Wm zz99k9HIY?!^cx2&*&>(y`8|y09=`_D;^w}^hi-*JfKK3^NkdhvhskaDJsZ4R{~t;W zI!~ZMWz;*VIUrIyY^at54QgPo+{g?Sw(k8Lkux;|ZwWY6R(Ydyy`N|8Ai!=Ke{s*` z)Zts$d5pqh^^Jm9JYl)k%mGu(<#GWGp4p;kokXVN6}v@QmsB+g<`sr>#Vq2rv+02q zXq~)es?4^r*|*XOE}X3jZIp1y6+ht0Xv?IfY^=BTuq4P++V`Og@R`z+4 z8iX^CgMmY-B>lD6#zo9ajlA%VkUTefjjp|XIqQMH>`^r3$+*?jx#Q;_7{f6(4zlVjZSENphwr`-&y~0)PW)VR z5q-I~^;D3NUmW_ve0N_1#s36x%m-6c8nq2V(wIa971 zGP@ErCPduo@dI*Ot1BPT*s4bHpbv2~{H6JP{a(MiC@ju0PdVG}?dE>U=&7%kQ^|3# zWgShR!{^qpzSA}Cvze_=<@fu$&8SZOw^xJW&5NbRbE+P>5W>4pO_dhLH*y*@-8-`h z!@J%eprj6`smT!c@cc1ArQBbrbg$A?^PK)t5EeBLdL0S?69M{sRSl1rMoORwwwm)N zC5`?X{X(0r~V9pke!A7QY=XCbJ;q$-Qmj@dz;bLr-D!;WgoQgNs^B!rKLBA>V<3^SHz8 zJLx;7={zk61Bnv~K3+=m-H9xW@1CK70Y1gSc+Y=#k2r}`QE~%ylNS0$(T{9?m=EFcoqjh74F8I_q`oAi3WX>Ni<>}}Y zE%_81b5NhwC*kfQ7{ZVQ+(I{ii#LrmEGqV#18-~11K%PKW3kN9D4wR!%9P5ADXhL- z6&;f;<{#qrO3$>j_r$zccV??!un5=5EKPli#Z)5Lni@qls4fyj^-Sva zidp^mQRea|n|!|c_vscQomIQA2!qgyG^P3ttn8W&xmBk~yktTJHCbB3jPI5={F6*y z?B(z5^6=)26m$&AxzO)~aZxQtnR56bsV_Fp99J(yJt+hoSMAe;0-O6RGHkLIA4D2( zE-_taQmqA1huND2#3;}Gu3!?kb?83H#WHQ54axB>U{y-eFF{d>tZi47m+O^*++2ZEl}4)3PFy(HA?eR(1Z4FW<~YC;hxex%q|l6D?6WDJG3-lks_(rck^=Zgn)_ z*65(_Nz6%6&p|As+_hbRg{g^5PXPQ|b?J0}0o182L#Zx+VH9p+P}?kcfLWXfqbR<| zUt57IqW`KpOkO!NS6|InOf5N?e@!nC{}UQ}|78~=CZ?ll9SaKX1KIi(!oT7^bz~^< z{g#_v{=hoN(J_9cP=kr-F!lY5u^b;Gx^?H#r9;(ArY~vfpUH&k2YP#=GgDLFYsuAR zySAnwY^l;3r~h@_L{>FVn>K}VpNW(Eu(m-l=cS%ufc%tBxDG+N4Z_}U zMc5Dr2VijS|Al)-SQ%KTe;hgFRSqBv&6@;M{!acq=mqcYj~}{n?NI$zAx*_RRWgA^ z>A~*pfWoFdqQOv1GPh{Xd@g$mfN_1+8=*nv&C9Xr-#^Kl52z;2xf8WHE5RQ5>L*mO zj25ZeN3Z$<@u;u+=IkYPA?JUP(DGqFgMJdD;+npRL>)om8I=S{V=!sT8%cO7S6BNJ z*~m9%xRH?l`9GC>k^a#-*_B(hlnR@#Wy$^2ruNL<92m+7$h#NQMV#Q_TFn1nNQvg- zV>muu-{M=Fr$El_`)-!6zrDC|QKOcZm*<|2iz9gO$auzCLvFen4K;u$+eOErbPY?t z`L&ln2-(GWlvne`rzf+ul++O%M>Ej*aAYK8klTsT*b+xp<`iD zQ1ruyZ9LH=k2035ky9t6B#dAbL;f;^51WNQ=rHM-#GX^G9|-#f&WzjyAR$=u!1)PN zO5g*DmnHxnnVD}MENY$?F2Z=`mFl|=3bO}5tdS`^W8!yRtzKO&)@+@;$>NA~aI&#~ zBbb^|UBhhEDHYH#V6Rkgwr%5lc@SOiUEO-rpKn{Vw%9#u)`H4$Fysm|%H7QP3ZJMp z{w5j1`|3ZE-8OnT>_z-WrWGY%i1)e&^Ty&+z;(wp|2doeW-5_tr0K8N^b>2A5nF8E zU6`b;JcUYHZ$gZmmfJJt-Sh^zl> zoC_V!?L!bd%MY=22&*#CYMm_wZg6lY4v%BO4}p^ku+E`wDL51hlxWzeI6uwjIB)ih z<#x61ryI`gR^Q0d^o{x z?zw!^SuNQUSsU(Ulkr*|;~2XdaY9qV->wE#2D>csHz`~@j` z))F;}G$FU6Y02?2*Uu8KyTs&A(PcKy%D;~lh%!kd%EgpPEVD+6oehj|wDqt6E8>c- zsvG^IClx&L8il^b*ZeW-DQ$xH;kBusFZA83C}HDm)C9|LEd4*-2d(SceIVI7ZOu^G zsZ4=LOrby9iM*jkW|Vv2oz;?dh;B_}_pN$a{avHj;iO6#1B-@AVie6z?`Wzm^LqU7 zu2#TX2Sx?4#1j7Ab(_3vll=1QS9i4o%*mYEpB+T8Y!e2ns{-)u_7!MvWHM}Sas{Q;;{o!qy z8bql>YujdW;Ii}8|AxqN)^k`BWnJHKWX#^$ShrG8Wv!KU^bqYSITKap7r%%2FA#jLO0*!SEq{v=5^6Zj1VMdJ59KA&ZdAvDf5 zpHx$>a0N$YnckzdJSiq6hcodq#CF3%&Wu^tFWHap#0*OKJI}vU$DtrZC^$^xy|X4g z_i)o76p>h8j)0#xPTuhi+LPNN&b=wHF&L-Ukl7yJ7ERcv4d-TlxG!#?+yBbesU9UU(;*H~Efe!Hw z@rb3N%l5X-U4?$}jhUaX%gSF_g;)9#eTr=wueTagWy0w!x6+C{IYi=}F=KVtBto|` zj>5RR!%X@VCs`ZP(on0q`zPN_e@gt89+^4QPY~;lkwgJq6U}!%|BDpsyExMr*~*z8 z8zcdCU$0GFtp;AAZsdV-uf9_^+y{)?eMCU5}`jK8;rkg$MBW&L%0o03Jp97ZTW zm;nS+=?%=z6X^vqp%5)fo{_?&7LWbsY`BBJ@ja2Cm%-!?T;s_LnBSxk3%L8>7974+ z*+YMVGBl{ClS+x?>GtM_?=j|R$n(Pdpl*dCg+5#KqW?NeEaalgZ!q~qFyC)c zDP=H5dmQ_wB(GnD6aa+m1 z`-!DYPLJBu>jn0{sBDj1MW@^c;UB%9s2FQ$4FVH#Vz8n`N6NA1O$C_K(N?=ftC+>rQz zP>asW_dp5H`xt3c8CGr+6hUAtRb`r_{w0)Tc^^TiPhIPmiP~C39;1U~QH3hG*V^VU z>u5#}gYYuVI<8PiwxL{lH;ZA&#X zW8y9*nU$wsYU(M%=?z2r_SaE|vzECB#KT&2jZ^a83&kq3@apl-?(Uf#2Vya|e^JSq zP510Eucqg^Ta@qF<=5FOBYG?nH#b5)oSo7-?5uh6i|ia&m}$oXWd?_nBgYQDjKog@ zXO6RPF(UDVKS6QfBWzc~wHjbiH|oK=K0t0#aR>kEJl)d_o!5Ey>a#s}laMh1BWLbT zl-#7r=ilXyxnvT!JV9K-$=f#6g@)HglhMHu?E#-GT)5S+a{lHG4p2(QT9>!PGA~aG z$}>T_F$mf&_J~mF(z*1?rq4&DJH*k%Khnzfq36C}nNX*0Wp>dhSiT#YMs%oYdn;Bn zXPx`bGDKvRcmCC$@zd~^v&kX<9Y3B#=b%+w_Hs?t?CtEU?*niEm)OP&qz#hoBB9Y? z4GMxsQe_~*Dy<6HKx{fBEJLhY0tuXLdSPCf+3#XWcuxDEBS$h z&zFPGn5b-%=j;y$^}5~t5c`;^OLywGimWg$TPzz42M?+*dK zFr;I-#_eJNzuglT9g$Z5dj-7c1`w%tXoke*g~-{P5Q6tXn>B62qhD&pkmwP)`W%j< zz2M=J=tb*@$3e%hLVyVz`R*?cu5`-G!;FXA(*qqY>PWn-f((zI00jVZIRMN1ehklm zNdBK<)%xi8CPqRnxI)1|xBq2yvpu|e#Fgpn6c!jvBqdaqdP@PkNEd|FUEQq$57+po z*(w%%i{aPi?nb>ZU&mi%YL$IMC_7J;J(R4%S+@G2g5`2ahjT1z!hZE_v_XQ3F0ZAh z1oKOXfm()mJA-VOSa(>WuIyGQU6rk9IiD9(njkYTlYE%`>-WaB{{0Gs-U)f#9ePyi z<1wT4uId@>6=<24rwy_qlk_9(V-#204WR|w?0uK=J`|g7q9tSc*ANSFmlS3DpgNki zn8W|4w(ksRDr>ineMC_#s8lO3pad0y0tyVh7> zB(~G$r$E}Aio9*U;bk#8NSK!0CIkcAvJ%YL#{vgxcmHy!@?(hmZ8u7|rLDB1+}wU%3Aw@8YV`C$(L)34fAu>1HSD z5g9(2>-;o@E8RW_ZMd}L*;t5l!dehl?xucav^8|`;f?#`SD(8e$<|>1#w|z0dUOD; zqAw#W_lf*u51M)#Edpo7erD$p$E7`Qgni>DR+OKR$&{&r!gP@a>2|GE&jM5R7}QEv ztMi4i%%t2i^N*Td)ue7dldLuQ_$$;UXX;r!e0JQh6a%70I{sKL63)KiUFtb1+t}4Y z{A2X%-5+OD!IBe$Qi1)Fg1T7r3!b;3YjSlX>wMYeM|F{UqwCR_qM ztn|=#w?7t0(i88YHEXm_5-hOnVWn9h<9Vj{sm`7Lv zhRP~IRn7oPX^XKf+evWd0-&{|){2<1J8<>^pc>=Tp$*!V%0!WCrd>B6dqNj{^3A-y zlHx>JZP?j#TbEy(|9zs^h!BochR(+n8Q!io3V5MS-(AXT^-IMMavR3c)@R#W?Q^e_*yPM9I#m3%|dO_tVam zF7)rNt==OKb9RZD(!HIFS z%r-Dh`x~2cbx*pQC7a>$#3Gw#$mhLg9lZd`(l899OOX3Q8WT(fW5<(2JkmnoLX3k;22mp&+- zyZ>w#DEKl^)ixt2K9Q9@I(%y)AU?{*u;VPrW&vPk7hCy+$OQ>nhv!TSQ;20q95?;!+NHc+QRq0sV$MVO)Wo*ibnTYG&iUPu ztGVD3apOo}Fb3~XXRfBz%q)nUCZMG;+t6Z5>$`-WG#uz)m>3qQ+tZUEc1Gb1S;faE z%3QQ_D3elk99Q_S3?{!_o?5J&e>SJ|Gaf)dDM*lQl3_Z zOEUUV#Ua#Yu9|jCuGK=6y1DhXmE*%vAOnQu+fVCC#xj20K$*&zBNlgZH$RLg9+@Quc)`c%*IS zm;9@yL;-+s28PIDiLKask1>wCVWo|PyjC7JOs0K6;A698yBwddu9N&a!$jAM(L0#y zJ_z)SL&d|?9kUTwNyOlASWQk0s}kBXq1DdUHgosw6@%!3NcG;9x82WtN9&c9ynUv< zI87`NuSZ|au>C;)NqY%=+q?vH_VIry>Hm$bu&xdOgNO+ToDI|wurIv0HG7x0EK_7X zv`9q^i{B(F(#<)N4>ISw;%OCRQ0X2kEvpGrOky!o+kNw#T0g1X0%63Cu|xw z2Hj96$T-))+w3dai0zhNjqEoJai^A_&kOn?!yvb#39A3LuK3~ z6#3CS5=9^q8cvJQ@|G-1{O}x=1=<;@#cG;g=sc{jPhAI`SZkk&NQLCwp#qfHMsLEA zq!j8(xEf#-Qschp5PP~(KSS=;s_tjg+sQCEEC-pw*XHe>XA9MAAF4cDt|$5Bo&4VM zr&~lZ!BmOCdIN!YBVr;qH?Fvggn`I6COYHpJ!!&q;%d$3+O6#etxatXFHvx^;sUF& z@F{837m+U7s@Nsm_p9q*#u9nKlEg?x^Rsz%6%W%U27j%bk}{{YsWkIxw_mRRjE7dC z4x{7-qEY~*8bA|SBt)f#w?r|*Jtr&SV=ERI*co)BrDG|a`jV=$)er>YIHZ+JFSKvZCr~{ zdc}A`iS@74?u5d}yl*A0yu2#TD?pmL1%c#L6M4N{RWjdnZp{i53npjnO6OetY9lV* zs4%nYoEnJ72~seAW+CpaQAa*}ha6;2;oYh%)YwFOh2I6r0Zq~(BI;F&rEQqp00o8D zN3NVdE?Q=8!DwvC9II-$2I&49_y}J|z%Z~r8xCN8l}NnPJ`mXPPr>ZOVHQtUkpd{n zZ&0Q_c8slZ(LYvx3H}af)@IlI!3RO0z56#k4xiaMCvo-6B9JNp<23q3P!F(naH;%7 zJX8);?Ma!C&lo){B^I;t!gCxjMNso*5K7)MQ$dy@^0H@HMYyWCw2TL=^rGcrn&q-Xn2Ns!YZqy{5mzE9f%N_ z?X)a-^0D567CTO$0n@?9YzX`?%@5xZ>PfM2flthIoeK+n95`6S1_bIj#XRIP16yb; z#>K~FSIiR|;k`QjO6*D~>x%+?IL<_r&*^Iud&wK?g4~WKv-fg}J2-~4l2Ggls0CT& z#fX)L9j23|J`F_gh7q0hS|WrTTuU&~ucHP`lQMYZk`o7Ja|oSTtuegf#q|?UYA_Cb z5Hs^9#|mtq362Vt%IJy;D8!4mxfdwuNJEomoT4XlH|>%BPfP+gLb{7Ipp;%`-LGS4 znI&IU#Eoxb2zY(lI$sDs6ft6y)g1TOBHKp|q4YRRTg>RCOUq-jUv5E5>xT?7&eSj~ zuWQNS(;-89uPn;Kt#W@j<7QyyCMbk6cQcdS_x)uy61V^9-rrM1?3D~9K6Uax(}{0 z=T?Fx{OJ{&g0_n;bG&4JDM;20^TFIYET+?qrV+ESaIAICJ!7eR98OKS&%JC_Y#?}R z+-IbiVg36RSyhZGco-Rwmfl|c@ImHzRW*GqM}qY()*;=XH8ua5NrlVOPZ4Z=vunOCgfEaK;_k_25}D>U0rkQ=m$)L+wn;AY7<-~I4OHyESj9n*tGVlWdFC6x9GGRnBg{EJ z(U)sEZ`d3a!42K zGGZ6rs&@cF5vZ)+f|i9r=EhKfSV8Y z6(CC|M%`vCt_+CaXWsypP4dpdzuAr9fZe#vwns+4jU?WdW|Z1(7Z%9_sCSPN0}4#~ zw&YT6Z(5#P_l)C~E)=umgZbJN7Q!22eiZ90oKQ$#3UX{A0z|>@&Z_|i!2yvsWtdx` z)zncCO`ygkk`m?WC_icKtnu+^zsOw?U#w>Q_`6awbo-M(|n4BZ^MfMNdWVQF{P z;611MUqs@6l{NO3N*<7LYIt!HOxw-~7)$*pS$?9wED4i)w?RblDPT4Soux>VbduNz zbMDChKo~`vu%noD6y4nPPRJCCJ{Hm|hX+SfXe zl&Ehw-MArad=Hfe@IBH|l49hUMcdf7%g-pv5YH94wf4x%sc_zNg8D(FGHAoZIXOM7 z+MOPUrmC?{J{!uv9U3spSDI8WjwM@%7`RLrnC7dC3IWBWQa7ic{f2c^skZJ( zBV*a_w;}(a9nF2A$+C%7x`Tk)y z+MrkMZ0~Nh+h%mbF1gST(ozkw8pDsGoEzJpw>4^27DqDVg&8k9=2zV?%g1^1EXW>> zWlp<(9!tPEg(R(r;WRv|I5GVgb2!HFo~KfJq%-~CNK#{TUWFYQ;&hud)Vc7`pJ zq7D9^qehV=6VH=kek7RqFO2hqK@h$4im?8(tfuJrpMDknA9uWLU%jz)Z`wnGsy3O@ z%G{;ZBi-rm*M@p)InVpYA@zYey8DMu6VI%MfMB`OeuL~_vFTv>&iphp0ZB`}MtAhq zgG}s^sNSNC)?trC>qpo>&Ff&dLxZ&!WGb=5FxWUeYV>7RBgg8&r01G~m@WT@Wkupf ziS+5A;`%rHb5OX|2he$+q5aq23ZSLF^N$u2muVvh3V(E4q&2(=r*A1>h5OnaA&%t$ zK+b!I0abcx+Ci=;$`quARemrQwH`*F6YEFc{tOzMI?b zg9WDM^}gwA0ufSbVg?&?U;Gkd<@9H6_-LHEZg=7h)w6H-5rNUaEy`j|zZpz3!6KL< z$yAaZbBQMaL_K&Waw1%;ZLwlC=c@8IxdR0@VNgb6w`opDmg!;wz9z%Ie_n=Ta5$NT zGfy>ud}?o$a>652Lo50ATd+P7rxZf#ZKMhVZg=FJ-O7%}Ag?a=Wy zrysESb;dRg4W=C7WlTmnSpAm>ZlNvtU~@D Doux!c diff --git a/READMEs/lake-and-etl.md b/READMEs/lake-and-etl.md deleted file mode 100644 index af26b972a..000000000 --- a/READMEs/lake-and-etl.md +++ /dev/null @@ -1,251 +0,0 @@ - - -# Lake & ETL Overview - -This README describes how you can operate the lake and use analytics to understand the world of predictoor. - -First, we want to make sure we get all the data we'll need! Then, we'll process this data so it's easy to chart and understand things. - -To complete this we'll be interacting different components in our stack, such as the: Lake, GQLDataFactory, and the ETL. - - -## Content -- [**ETL Tables & Architecture**](#etl-tables--architecture) -- [**Lake - "Storage"**](#lake---storage) -- [**GQL Data Factory & RAW**](#gql-data-factory--raw-data) -- [**Data Warehouse - "Database"**](#data-warehouse---database) -- [**ETL**](#etl) -- [**Checkpoints**](#checkpoints) -- [**Dumb Components**](#dumb-components) -- [**Export to parquet files**](#export-to-parquet-file) -- [**Examples**](#examples) -- [**Dos and Don'ts**](#dos-and-donts) - - -## ETL Tables & Architecture -To provide summaries on Predictoor users and systems, we want to fetch all new data and make it available for analysis. - -The GraphQL Data Factory & ETL helps us achieve this by breaking the process down into 3 steps. -1. Ingesting + Loading Data - GQLDataFactory -1. Processing the data - ETL -1. Describing, visualization, and querying the data - -The following diagram presents the ETL tables and workflow. Please maintain the [diagram](diagrams/lake.html) and image so they are up-to-date. - -![Lake & ETL Tables](images/lake_tables_diagram.png) - - -## Lake - "Storage" -For most users, the lake can simply be thought of disk storage. - -It keeps all records stored as a timeseries CSV with a max number of records, where you can search and sample sections of the data if required. - -In python, the lake (raw) data can be accessed via CSVDataStore (a CSV wrapper) and the CLI Lake module (cli_module_lake.py). - -As a user, you can operate the lake via the CLI command: `pdr lake raw update ppss.yaml sapphire-mainnet` - -Some features include: -1. The lake has a few commands: `describe`, `validate`, `update`, `drop`, and `query` -1. The lake is made up of many timeseries objects that should exist from `lake_ss.st_ts` and `lake_ss.end_ts`. -1. All the data inside lake folders should exist between `st_ts` and `end_ts`. -1. The `st_ts` and `end_ts` checkpoints come from `ppss.yaml` and the `lake_ss` component. -1. You can set `st_ts` and `end_ts` to relative times ("3 hours ago" -> "now"), so new records are always fetched and processed. -1. The lake is designed so raw data is fetched only once from subgraph and then saved into `lake_data/` and DuckDB. - -**Note:** The lake currently does not support backfilling. If you need to, drop all data, adjust `st_ts` and `end_ts`, and then fetch again. - -![GQLDF Fetch & Write](images/gql_data_factory_fetch_1_write_n.png) - - -## GQL Data Factory & Raw Data -Is responsible for running a series of graphql fetches against subgraphs and then saves this raw data against 1->N buckets. - -GQLDF features a buffer, and will write out records as they arrive. Because ingesting is expensive, we use this routine to write it to (local) disk as CSVs, an into our (local) Data Warehouse (DuckDB). - -When the GQL Data Factory updates, it looks at each query and their respective `lake_data/` folder to figure out where to resume from. Once all data has been fetched and loaded into `lake_data/` and the Data Warehouse (DuckDB), the update routine ends. - -**Note:** The lake is designed to only be filled once. By default GQL Data Factory will not delete data from `lake_data/`. - -**[DX-Self-Healing Lake]** - -If you delete RAW CSV data sequentially from the end, i.e. "drop_tail()" then GQLDF will attempt to self-heal and simply fill in the data that it's missing. - -![GQLDF Fetch & Write](images/gql_data_factory_fetch.png) - -**[DX-How to clear your Lake and start from scratch]** -1. Delete the `lake_data` folder -```console -sudo rm -r lake_data/ -``` - -2. Fetch the raw data (if required, update `st_ts` and `end_ts`) -```console -pdr lake raw update ppss.yaml sapphire-mainnet -``` - -## Data Warehouse - "Database" -For most users, the Data Warehouse (DuckDB) is just a database. - -To deliver a complete data stack capable of storing, processing, and enriching all of our data, we load all CSVs (lake) into DuckDB (DW) and then process this data through a series of SQL queries (ETL) inside the DW. - -Currently, the DW (DB) can be accessed via the DuckDBDataStore (DuckDB Wrapper) and operated with via the CLI module `lake` commands `pdr lake etl update ppss.yaml sapphire-mainnet` (cli_module_lake.py) - -Some features include: -1. The DW is atomic and designed to be destroyed/rebuilt by leveraging raw data from `lake_data`. There are no migrations. -1. To rebuild the DW, please use a combination of `lake etl drop` and `lake etl update` commands. -1. The DW is rebuilt using a series of SQL queries that Extract-Transform-Load (ETL) into new tables. -1. All ETL SQL queries run on DuckDB and follow a "mini-batch" routine to be as efficient as possible. -1. ETL tables use a "Medallion Achitecture" (bronze, silver, gold) to deliver a structured ETL architecture. -1. All the data inside ETL tables exist between `st_ts` and `end_ts`. - -**Note:** All ETL is done on the DW to be efficient and future-proof ourselves towards distributed DBs. Do not jump between python -> sql -> python, this is computationally and memory expensive. All queries are designed to function as mini-batch opeations to reduce the amount of scans, joins, inserts, and updates. - -**[DX-How to clear your Data Warehouse without clearing your lake]** -1. Drop all records from the Data Warehouse -```console -pdr lake raw drop ppss.yaml sapphire-mainnet 2020-01-01 -pdr lake etl drop ppss.yaml sapphire-mainnet 2020-01-01 -``` - -2. Fetch if needed, load from lake, and run the full ETL pipeline -```console -pdr lake etl update ppss.yaml sapphire-mainnet -``` - - -## ETL -Is responsible for running a series of queries that transform and enrich the data so it can provide standard calculations accuately and valuable insights more readily. - -### Update from CLI -From the cli - `pdr lake etl update ppss.yaml sapphire-mainnet` - -### Data Flow -As you are developing and building around the data and lake, you might need to update how the system works, and be able to follow this workflow. -1. GQLDF completes succesfully. Fetch from source RAW => into CSV & DuckDB. -1. ETL runs SQL queries over the RAW data to clean it, join w/ other tables, transform => into Bronze Tables -1. Aggregating + Summarizing it => into Silver & Gold tables. -1. Serving this data into dahboards and other locations. - -### Workflow -As you are developing and building around the lake, your workflow migh look like this. -1. Writing & Updating ETL code -1. Dropping ETL tables via CLI -1. Rebuilding ETL tables via CLI - -### Limitations -1. No backfilling data before `st_ts`. If you want to backfill drop all records or select a new `lake_path`. - -## Checkpoints -In order to only process new data, we want to "maintain a checkpoint" that helps us know where to start/resume from. - -The simplest way to do this is to use the first and last event timestamps from our data. - -### GQL Data Factory -All CSVs should be in-sync... with nearly the same [st_ts => end_ts] across all folders. -1. GQLDF fetches [st_ts => end_ts] from CSVs if available so it can resume, otherwise it uses ppss.yaml `st_ts` -1. For each GQL, we fetch all records [st_ts => end_ts] and save them as they arrive -1. Write raw data to CSV [st_ts => end_ts] -1. Write raw data to DW [st_ts => end_ts] - -![GQLDF Fetch & Write](images/gql_use_cache_and_swap.png) - -### ETL -All ETL tables should be in-sync with nearly the same [st_ts => end_ts]. -1. ETL looks at CSV and ETL Tables last_records to identify how to resume, otherwise it uses ppss.yaml. -1. ETL first processes RAW records, before building ETL records/tables -1. RAW records are processed into NewEvents (INSERT) and UpdateEvents(UPDATE) and stored in temporary tables: [TempTable] & [TempUpdateTable]. -1. NewEvents and UpdateEvents are used to yield/update ETL tables. -1. ETL tabels follow a "Medallion Architecture": bronze, silver, gold - -![ETL Update Routine](images/etl_checkpoints.png) - -**Exceptions to the rule** -This doesn't always have to be the case. -1. RAW + ETL records could have been dropped. -2. CSV + GQLDF could be far ahead. - -**[DX-How to resolve checkpoint and data problems]** -1. Run `describe` and `validate` to make sure there are no errors. -2. Drop all RAW + ETL Tables from DW and rebuild the DW from scratch. -3. RAW Tables are rebuilt from CSV records. -4. ETL Tables are rebuilt from RAW tables. - -All systems [GQLDF + ETL + CSV + DuckDB] should be working out-of-the-box by using ppss.yaml & the cli. - - -## Examples & How To's - -### Run Lake end to end - -1. Fetch the data and create the Lake with **RAW** and **ETL** data -```console -pdr lake etl update ./ppss.yaml sapphire-mainnet -``` -2. Validate the Lake -```console -pdr lake validate ./ppss.yaml sapphire-mainnet -``` -3. Inspect the Lake -```console -pdr lake describe ./ppss.yaml sapphire-mainnet -``` -4. Query data from the Lake -```console -pdr lake query ./lake_data "SELECT * FROM pdr_predictions" -``` - - -### Modify Lake data -5. Drop data from the Lake at **ETL** level starting from a specified date -```console -pdr lake etl drop ppss.yaml sapphire-mainnet 2024-01-10 -``` - -6. Drop data from the Lake at **RAW** level starting from a specified date -```console -pdr lake raw drop ppss.yaml sapphire-mainnet 2024-01-10 -``` - -7. Recover data at **RAW** level starting from a specified date -```console -pdr lake raw update ppss.yaml sapphire-mainnet -``` - -8. Recover data at **ETL** level starting from a specified date -```console -pdr lake etl update ppss.yaml sapphire-mainnet -``` - -9. Validate the Lake -```console -pdr lake validate ppss.yaml sapphire-mainnet -``` - -## DO'S and DONT'S -**Don't**: - - !! Don't modify the CSV files in any way, otherwise data is going to be eronated !! - -**Do's**: - - If data is eronated or there is any issue with the Lake, reset the lake - - Reset the Lake by deleting `lake_data/` folder - - Recreate the Lake by running `lake raw update` and `lake etl update` commands - - -## "Dumb" Components -Lake components should be self-contained, "dumb", and perform one role. - -GQLDF is upstream from ETL and does not have any knowledge of it. Do not create dependencies where there are none. I.E. If you delete CSV data from `lake_data`, do not expect this change to be reflected in RAW or ETL tables. Similarly, ETL should assume that GQLDF is performing it's role as expected. - -Rather, help improve the lake validation and CLI tools to improve the lake DX and operations. Think about the entry points, validations, and [how to improve the user flow](https://github.com/oceanprotocol/pdr-backend/issues/1087#issuecomment-2155527087) so these checks being done outside core systems, once, while remaining user friendly. - -## Export to parquet files -By default, the ETL process exports DuckDB lake data into Parquet files stored in the exports directory. This setup allows the dashboard to read the data without interfering with the direct connection to the lake. - -The process of exporting is done periodically at a specified `seconds_between_parquet_exports` frequency inside `PPSS.yaml` config file and can be changed to the user needs. - -To nuke and re-export parquet files for periodical cleanups, the `number_of_files_after_which_re_export_db` it's used, and can be easily configured. - -Additionally, the export process can be disabled entirely by setting `export_db_data_to_parquet_files = False` in the configuration file. \ No newline at end of file diff --git a/READMEs/payout.md b/READMEs/payout.md deleted file mode 100644 index 81c93c7a6..000000000 --- a/READMEs/payout.md +++ /dev/null @@ -1,62 +0,0 @@ - - -# Claim Payout for Predictoor Bot - -This README describes how you can claim the $ based on running a predictoor bot. - -First, congratulations on your participation and progress in making predictions! Whether you've made accurate or erroneous predictions, it's now time to claim your earnings from correct predictions. - -There are two sections below: to claim OCEAN payout, and ROSE payout, respectively. - -## Steps to Request OCEAN Rewards - -### 1. Preparation - -Ensure you pause or stop any ongoing prediction submissions. You can use `Ctrl-C` to stop the predictions. This is crucial as active submissions can interfere with the payout process. - -### 2. Execute Payout - -From console: - -```console -pdr claim_OCEAN ppss.yaml -``` - -### 3. Completion - -Once the payout module concludes its operation, your balance will reflect the updated amount. - -### 4. Verification - -It's good practice to run the payout module again. This ensures any failed blockchain calls from the previous attempt are addressed and verifies that all eligible payouts have been claimed. - -### Steps to Request ROSE Rewards - -- 1. Preparation - -- Make sure you requested your Payout mentioned above, between the DF round end and ROSE rewards distribution(on Monday, 4 days after the DF round ends), for all your predictions from the DF round to be counted in ROSE rewards calculation. -- Ensure you pause or stop any ongoing prediction submissions. You can use `Ctrl-C` to stop the predictions. This is crucial as active submissions can interfere with the payout process. - -- 2. Claim ROSE Rewards - -From console: - -```console -pdr claim_ROSE ppss.yaml -``` - -- 3. Completion - -Once the claim module concludes its operation, your balance will reflect the updated amount. - -- 4. Verification - -It's good practice to run the payout module again. This ensures any failed blockchain calls from the previous attempt are addressed and verifies that all eligible payouts have been claimed. - -## FAQ - -- Q: how often to request? -- A: While you can request a payout at any time, we suggest doing so periodically. The payout module processes requests in batches, handling up to 250 slots per transaction for efficiency. diff --git a/READMEs/predictoor-dashboard.md b/READMEs/predictoor-dashboard.md deleted file mode 100644 index 3a62a3b18..000000000 --- a/READMEs/predictoor-dashboard.md +++ /dev/null @@ -1,71 +0,0 @@ -# Predictoor Dashboard - -**The Predictoor dashboard provides insights into blockchain data through interactive plots and tables.** - -## **How it works** - -Live data from a specified supported blockchain is fetched and stored in a local database. By running a Dash dashboard, this data is processed and displayed in various formats to provide valuable information and control. - -## **How to setup and run** - -To set up and run the Predictoor dashboard, follow these steps: - -1. **Fetch chain data into the lake and export to paruqet files** - -The first step is to fetch the data from the blockchain using the lake's ETL, by this command: - -```console -pdr lake etl update ./my_ppss.yaml sapphire-mainnet -``` - -By default the lake is going to automatically export data from lake to parquet files. -Be aware that the export is executed periodically and could be configured and even disabled using this PPSS lake config params: -- export_db_data_to_parquet_files -- seconds_between_parquet_exports -- number_of_files_after_which_re_export_db - -For more information on how the lake works and how to configure it, refer to [`this readme`](./lake-and-etl.md). - -2. **Configure ppss(Optional)** - -This step is optional but very useful and **highly recommended if you are running a Predictoor bot**. - -By configuring the **ppss -> predictoor_ss -> my_addresses** list and providing one or multiple predictoor addresses, you can easily track those addresses. The app will automatically read the addresses and display all relevant data when it starts. Additionally, if you modify settings and select different Predictoors and feeds, you can easily reset the dashboard to your Predictoor settings. - -3. **Run the dash app from command line** - -After fetching the chain data locally into the lake and exporting it into parquet files, the next step is to read, process, and display the data by running the dashboard with the following command: - -```console -pdr dashboard ./my_ppss.yaml sapphire-mainnet -``` - -This command will open a browser window where you can select predictoors and feeds to visualize their performance. - -## **How to use** - -By default, if ppss is not configured with predictoor addresses, the plots will be empty until at least one predictoor and feed are selected. Otherwise you will see stats on the provided predictoor addresses. - -After **selecting one or more predictors and feeds combinations** where predictions has been submitted, and the payout method called, the plots and metrics will be populated with the relevant data. - -You can then observe how your predictoor bots or others have been performing on different feeds and even compare them. - -**IMPORTANT: Only predictions data where the payout method has been called are visible.** - -The displayed charts are: -1. **Accuracy** - how predictoor accuracy has evolved durring the selected period of time. -2. **Profit** - what is the profit in OCEAN over the period. Here you can clearly see if you are profitable or not. -3. **Costs** - how much predictoor has staked for each epoch. - - -To summarize the stats across multiple feeds and Predictoors, follow the **displayed metrics**. These include: **Average Accuracy, Total Profit, and Average Stake**. These metrics make it easy to track overall statistics for the selected Predictoors and users. - - -Furthermore, you can select different periods of time for the data calculation, so you can easily see stats on **last day, last week, or last month**. - -## **How to contribute** - -We are constantly looking for ways to improve the Predictoor dashboard to help predictoors become more profitable and are open to suggestions and ideas. - -If you are a predictoor and want to help us improve this tool, [join our Discord channel](https://discord.gg/Tvqd7Z648H) and drop a message, or open a GitHub issue. - diff --git a/READMEs/predictoor.md b/READMEs/predictoor.md deleted file mode 100644 index d1ba6c3c0..000000000 --- a/READMEs/predictoor.md +++ /dev/null @@ -1,397 +0,0 @@ - - -# Run a Predictoor Bot - -This README shows how to earn $ by running a predictoor bot on mainnet. - -**Main flow:** - -1. **[Install](#1-install-pdr-backend-repo)** -1. **[Simulate modeling & trading](#2-simulate-modeling-and-trading)** -1. **[Run bot on testnet](#3-run-predictoor-bot-on-sapphire-testnet)** -1. **[Run bot on mainnet](#4-run-predictoor-bot-on-sapphire-mainnet)** -1. **[Claim payout](#5-claim-payout)** -1. **[Run dashboard to monitor and analyze performance](#6-run-dashboard)** - -Once you're done the main flow, you can go beyond, with any of: - -- [Optimize model](#optimize-model) -- [Right-size staking](#right-size-staking) -- [Run local network](#run-local-network) -- [Run many bots](#run-many-bots). Steps: [give keys](#many-bots-give-keys), [templates](#many-bots-generate-templates), [deploy agents](#many-bots-deploy-agents), [monitor agents](#many-bots-monitor-agents), [destroy agents](#many-bots-destroy-agents) - -## 1. Install pdr-backend Repo - -Prerequisites: -- Python 3.12. Earlier _will_ fail, e.g. can't find `UTC`. [Details](https://blog.miguelgrinberg.com/post/it-s-time-for-a-change-datetime-utcnow-is-now-deprecated) -- Ubuntu MacOS. _Not_ Windows. - -In a new console: - -```console -# clone the repo and enter into it -git clone https://github.com/oceanprotocol/pdr-backend -cd pdr-backend - -# create & activate virtualenv -python -m venv venv -source venv/bin/activate - -# install modules in the environment -pip install -r requirements.txt - -# add pwd to bash path -export PATH=$PATH:. -``` - -You need a local copy of Ocean contract addresses [`address.json`](https://github.com/oceanprotocol/contracts/blob/main/addresses/address.json). In console: -```console -# make directory if needed -mkdir -p ~/.ocean; mkdir -p ~/.ocean/ocean-contracts; mkdir -p ~/.ocean/ocean-contracts/artifacts/ - -# copy from github to local directory. Or, use wget if Linux. Or, download via browser. -curl https://raw.githubusercontent.com/oceanprotocol/contracts/main/addresses/address.json -o ~/.ocean/ocean-contracts/artifacts/address.json -``` - -If you're running MacOS, then in console: - -```console -# so that sapphire.py works. Details in #66 -codesign --force --deep --sign - venv/sapphirepy_bin/sapphirewrapper-arm64.dylib - -# so that xgboost works. Details in #1339 -brew install libomp -``` - -## 2. Simulate Modeling and Trading - -Simulation allows us to quickly build intuition, and assess the performance of the data / predicting / trading strategy (backtest). - -Copy [`ppss.yaml`](../ppss.yaml) into your own file `my_ppss.yaml` and change parameters as you see fit. - -```console -cp ppss.yaml my_ppss.yaml -``` - -Let's run the simulation engine. In console: -```console -pdr sim my_ppss.yaml -``` - -What the engine does does: -1. Set simulation parameters. -1. Grab historical price data from exchanges and stores in `lake_data/` dir. It re-uses any previously saved data. -1. Run through many 5min epochs. At each epoch: - - Build a model - - Predict - - Trade - - Log to console and `logs/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 z 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 min) - - Step-by-step: - 1. In epoch 1, if Condition is true, we buy. - 2. In epoch 2, we sell. - 3. In epoch 2, if Condition is true, we buy. - """ - ### Close previous order if it exists - if self.order is not None and isinstance(self.order, dict): - # get existing long position - amount = 0.0 - if self.ppss.trader_ss.exchange_str == "mexc": - amount = float(self.order["info"]["origQty"]) - - # close it - order = self.exchange.create_market_sell_order( - self.ppss.trader_ss.pair_str, amount - ) - - logger.info("[Trade Closed] %s", self.exchange) - logger.info("[Previous Order] %s", self.order) - logger.info("[Closing Order] %s", order) - - self.order = None - - ### Create new order if prediction meets our criteria - if not isinstance(prediction, Prediction): - prediction = Prediction(prediction) - - logger.info( - "%s has a new prediction: %s / %s.", - feed, - prediction.pred_nom, - prediction.pred_denom, - ) - - if prediction.pred_denom == 0: - logger.warning("There's no stake on this, one way or the other. Exiting.") - return - - logger.info("prediction properties are: %s", prediction.properties) - - if prediction.direction == 1 and prediction.confidence > 0.5: - order = self.exchange.create_market_buy_order( - self.ppss.trader_ss.pair_str, self.ppss.trader_ss.position_size - ) - - # If order is successful, we log the order so we can close it - if order is not None and isinstance(order, dict): - self.order = order - logger.info("[Trade Opened] %s", self.exchange) - logger.info("[Opening Order] %s", order) - else: - logger.info( - "[No Trade] prediction does not meet requirements: %s", - prediction.properties, - ) diff --git a/pdr_backend/trader/approach2/__init__.py b/pdr_backend/trader/approach2/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/pdr_backend/trader/approach2/portfolio.py b/pdr_backend/trader/approach2/portfolio.py deleted file mode 100644 index 59b6bff8c..000000000 --- a/pdr_backend/trader/approach2/portfolio.py +++ /dev/null @@ -1,136 +0,0 @@ -from enum import Enum -import logging -from typing import Dict, List, Optional -from enforce_typing import enforce_types -from pdr_backend.util.time_types import UnixTimeMs - -logger = logging.getLogger("portfolio") - - -class OrderState(Enum): - OPEN = "OPEN" - CLOSED = "CLOSED" - - -class Order: - """ - @description - Base class for handling orders from different exchanges - Exchanges return a blob as a trade, there is no solution for this in CCXT - """ - - def __init__(self, order: Dict): - self.order = order - - def __str__(self): - return f"<{self.order}, {self.__class__}>" - - @property - def id(self): - return None - - @property - def amount(self): - return None - - @property - def timestamp(self) -> Optional[UnixTimeMs]: - return None - - -class MexcOrder(Order): - def __init__(self, order: Dict): # pylint: disable=useless-parent-delegation - super().__init__(order) - - @property - def id(self): - return self.order["id"] - - @property - def amount(self): - return self.order["info"]["origQty"] - - @property - def timestamp(self) -> UnixTimeMs: - return UnixTimeMs(self.order["timestamp"]) - - -@enforce_types -def create_order(order: Dict, exchange_str: str) -> Order: - return MexcOrder(order) if exchange_str == "mexc" else Order(order) - - -class Position: - """ - @description - Has an open and and a close order minimum - """ - - def __init__(self, order: Order): - self.open_order: Order = order - self.close_order: Optional[Order] = None - self.state: OrderState = OrderState.OPEN - - logger.info("[Opening Order] %s", self.open_order) - - def __str__(self): - return f"<{self.open_order}, {self.close_order}, {self.__class__}>" - - def close(self, order: Order): - self.close_order = order - self.state = OrderState.CLOSED - - # calculate costs, profits, and PNL - logger.info("[Opening Order]: %s", self.open_order) - logger.info("[Closing Order]: %s", self.close_order) - - -class Sheet: - """ - @description - Holds N positions for an asset, specified by an addr (key) - """ - - def __init__(self, addr: str): - self.asset: str = addr - self.open_positions: List[Position] = [] - self.closed_positions: List[Position] = [] - - def open_position(self, open_order: Order) -> Position: - position = Position(open_order) - self.open_positions.append(position) - logger.info("[Position added to Sheet]") - return position - - def close_position(self, close_order: Order) -> Optional[Position]: - position = self.open_positions.pop() if self.open_positions else None - - if not position: - return None - - position.close(close_order) - self.closed_positions.append(position) - logger.info("[Position closed in Sheet]") - return position - - -class Portfolio: - """ - @description - Handles assets across a variety of exchanges, and instruments. - They map 1:1 to the prediction feeds that we trade against - """ - - def __init__(self, feeds: List[str]): - self.sheets: Dict[str, Sheet] = {addr: Sheet(addr) for addr in feeds} - - def get_sheet(self, addr: str) -> Optional[Sheet]: - return self.sheets.get(addr, None) - - def open_position(self, addr: str, order: Order) -> Optional[Position]: - sheet = self.get_sheet(addr) - return sheet.open_position(order) if sheet else None - - def close_position(self, addr: str, order: Order) -> Optional[Position]: - sheet = self.get_sheet(addr) - return sheet.close_position(order) if sheet else None diff --git a/pdr_backend/trader/approach2/test/conftest.py b/pdr_backend/trader/approach2/test/conftest.py deleted file mode 100644 index fc9ed034c..000000000 --- a/pdr_backend/trader/approach2/test/conftest.py +++ /dev/null @@ -1 +0,0 @@ -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import diff --git a/pdr_backend/trader/approach2/test/test_portfolio.py b/pdr_backend/trader/approach2/test/test_portfolio.py deleted file mode 100644 index 1131ad2f3..000000000 --- a/pdr_backend/trader/approach2/test/test_portfolio.py +++ /dev/null @@ -1,67 +0,0 @@ -from pdr_backend.trader.approach2.portfolio import ( - MexcOrder, - Order, - OrderState, - Portfolio, - Position, - Sheet, - create_order, -) - - -def test_order_classes(): - order_dict = {"id": 1, "info": {"origQty": 2}, "timestamp": 3000} - - order = Order(order_dict) - assert order.id is None - assert order.amount is None - assert order.timestamp is None - - mexc_order = MexcOrder(order_dict) - assert mexc_order.id == 1 - assert mexc_order.amount == 2 - assert mexc_order.timestamp == 3000 - - assert isinstance(create_order(order_dict, "mexc"), MexcOrder) - assert isinstance(create_order(order_dict, "other"), Order) - - -def test_position(): - position = Position(Order({})) - assert position.state == OrderState.OPEN - assert position.close_order is None - - position.close(Order({})) - assert position.state == OrderState.CLOSED - assert isinstance(position.close_order, Order) - - -def test_sheet(): - sheet = Sheet("0x123") - assert sheet.asset == "0x123" - assert sheet.open_positions == [] - assert sheet.closed_positions == [] - - # no effect - sheet.close_position(Order({})) - assert sheet.open_positions == [] - assert sheet.closed_positions == [] - - # open and close - sheet.open_position(Order({})) - assert isinstance(sheet.open_positions[0], Position) - - sheet.close_position(Order({})) - assert isinstance(sheet.closed_positions[0], Position) - assert sheet.open_positions == [] - - -def test_portfolio(): - portfolio = Portfolio(["0x123", "0x456"]) - assert portfolio.sheets.keys() == {"0x123", "0x456"} - - assert portfolio.get_sheet("0x123").asset == "0x123" - assert portfolio.get_sheet("xxxx") is None - - assert isinstance(portfolio.open_position("0x123", Order({})), Position) - assert isinstance(portfolio.close_position("0x123", Order({})), Position) diff --git a/pdr_backend/trader/approach2/test/test_trader_agent2.py b/pdr_backend/trader/approach2/test/test_trader_agent2.py deleted file mode 100644 index a3e7a7bdd..000000000 --- a/pdr_backend/trader/approach2/test/test_trader_agent2.py +++ /dev/null @@ -1,126 +0,0 @@ -from unittest.mock import Mock, patch - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.ppss.ppss import mock_feed_ppss -from pdr_backend.ppss.web3_pp import inplace_mock_feedgetters -from pdr_backend.trader.approach2.trader_agent2 import TraderAgent2 -from pdr_backend.trader.test.trader_agent_runner import ( - do_constructor, - do_run, - setup_trade, -) -from pdr_backend.util.time_types import UnixTimeMs - - -@enforce_types -@patch.object(TraderAgent2, "check_subscriptions_and_subscribe") -def test_trader_agent2_constructor(check_subscriptions_and_subscribe_mock): - do_constructor(TraderAgent2, check_subscriptions_and_subscribe_mock) - - -@enforce_types -@patch.object(TraderAgent2, "check_subscriptions_and_subscribe") -def test_trader_agent2_run(check_subscriptions_and_subscribe_mock): - do_run(TraderAgent2, check_subscriptions_and_subscribe_mock) - - -@enforce_types -@pytest.mark.asyncio -@patch.object(TraderAgent2, "check_subscriptions_and_subscribe") -async def test_trader_agent2_do_trade(check_subscriptions_and_subscribe_mock): - agent, feed = setup_trade( - TraderAgent2, - check_subscriptions_and_subscribe_mock, - ) - - await agent._do_trade(feed, (1.0, 1.0)) - assert agent.exchange.create_market_buy_order.call_count == 1 - - -@enforce_types -@patch.object(TraderAgent2, "check_subscriptions_and_subscribe") -def test_trader_agent2_update_positions( # pylint: disable=unused-argument - check_subscriptions_and_subscribe_mock, -): - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - - agent = TraderAgent2(ppss) - - agent.exchange = Mock() - agent.exchange.create_market_sell_order.return_value = {"info": {"origQty": 1}} - - agent.portfolio = Mock() - mock_sheet = Mock() - mock_sheet.open_positions = [Mock(), Mock()] - agent.portfolio.get_sheet.return_value = mock_sheet - agent.should_close = Mock() - agent.should_close.return_value = True - - agent.close_position = Mock() - agent.update_cache = Mock() - - agent.update_positions() - - assert agent.portfolio.get_sheet.call_count == 1 - assert agent.exchange.create_market_sell_order.call_count == 2 - assert agent.portfolio.close_position.call_count == 2 - assert agent.portfolio.close_position.call_args == ( - (feed.address, {"info": {"origQty": 1}}), - ) - assert agent.update_cache.call_count == 2 - - original_call_count = agent.update_cache.call_count - - # does nothing without sheet - agent.portfolio = Mock() - mock_sheet = None - agent.portfolio.get_sheet.return_value = mock_sheet - agent.update_positions() - assert agent.update_cache.call_count == original_call_count - - # does nothing without a portfolio - agent.portfolio = None - agent.update_positions() - assert agent.update_cache.call_count == original_call_count - - -@enforce_types -@patch.object(TraderAgent2, "check_subscriptions_and_subscribe") -def test_trader_agent2_should_close( # pylint: disable=unused-argument - check_subscriptions_and_subscribe_mock, -): - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - - agent = TraderAgent2(ppss) - - # test 1 - creating mock objects and functions to handle should_close - mock_order = Mock() - mock_order.timestamp = 1 - - result = agent.should_close(mock_order) - assert result - - # test 2 - ensure more order recent, now it should not close - mock_order.timestamp = UnixTimeMs.now() - - result = agent.should_close(mock_order) - assert not result - - -@enforce_types -@pytest.mark.asyncio -@patch.object(TraderAgent2, "check_subscriptions_and_subscribe") -async def test_trader_agent2_do_trade_edges( - check_subscriptions_and_subscribe_mock, caplog -): - agent, feed = setup_trade( - TraderAgent2, - check_subscriptions_and_subscribe_mock, - ) - - await agent._do_trade(feed, (1.0, 0)) - assert "There's no stake on this" in caplog.text diff --git a/pdr_backend/trader/approach2/trader_agent2.py b/pdr_backend/trader/approach2/trader_agent2.py deleted file mode 100644 index 007622b17..000000000 --- a/pdr_backend/trader/approach2/trader_agent2.py +++ /dev/null @@ -1,146 +0,0 @@ -import logging -from typing import List, Optional, Tuple, Union - -import ccxt -from enforce_typing import enforce_types - -from pdr_backend.exchange.exchange_mgr import ExchangeMgr -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed -from pdr_backend.trader.approach2.portfolio import Order, Portfolio, create_order -from pdr_backend.trader.base_trader_agent import BaseTraderAgent, Prediction -from pdr_backend.util.time_types import UnixTimeMs - - -logger = logging.getLogger("trader_approach2") - - -@enforce_types -class TraderAgent2(BaseTraderAgent): - """ - @description - Trader agent that's slightly less naive than agent 1. - """ - - def __init__(self, ppss: PPSS): - # Initialize cache params. Must be *before* calling parent constructor! - self.portfolio = None - self.reset_cache = False - - # - super().__init__(ppss) - - # If cache params are empty, instantiate - if self.portfolio is None: - self.portfolio = Portfolio([self.feed.address]) - - # Generic exchange clss - exchange_manager = ExchangeMgr(self.ppss.exchange_mgr_ss) - self.exchange: ccxt.Exchange = exchange_manager.exchange( - self.ppss.trader_ss.exchange_type - ) - - self.update_positions([self.feed.address]) - - def update_cache(self): - super().update_cache() - self.cache.save(f"portfolio_{self.__class__}", self.portfolio) - - def load_cache(self): - if self.reset_cache: - return - - super().load_cache() - portfolio = self.cache.load(f"portfolio_{self.__class__}") - if portfolio is not None: - self.portfolio = portfolio - - def should_close(self, order: Order): - """ - @description - Check if order has lapsed in time relative to trader_ss.timeframe - """ - now_ts = UnixTimeMs.now() - tx_ts = order.timestamp if order.timestamp else 0 - order_lapsed = now_ts - tx_ts > self.ppss.trader_ss.timeframe_ms - - return order_lapsed - - def update_positions(self, feeds: Optional[List[str]] = None): - """ - @description - Cycle through open positions and asses them - """ - feeds = feeds if feeds else [self.feed.address] - - if not feeds or not self.portfolio: - return - - for addr in feeds: - sheet = self.portfolio.get_sheet(addr) - if not sheet: - continue - - open_positions = sheet.open_positions - if not open_positions: - continue - - for position in open_positions: - should_close = self.should_close(position.open_order) - if not should_close: - continue - - logger.info("[Close Position] Requirements met") - order = self.exchange.create_market_sell_order( - self.ppss.trader_ss.exchange_str, - position.open_order.amount, - ) - self.portfolio.close_position(addr, order) - self.update_cache() - - async def do_trade(self, feed: SubgraphFeed, prediction: Union[Prediction, Tuple]): - """ - @description - Logic: - 1. We're only going to buy. We'll always sell in 5m. - 2. Condition(If prediction == long and confidence > min) - - Step-by-step: - 1. In epoch 1, if Condition is true, we buy. - 2. In epoch 2, we sell. - 3. In epoch 2, if Condition is true, we buy. - """ - ### First, update existing orders - self.update_positions([feed.address]) - - ### Then, create new order if our criteria is met - if not isinstance(prediction, Prediction): - prediction = Prediction(prediction) - logger.info( - "%s has a new prediction: %s / %s.", - feed.address, - prediction.pred_nom, - prediction.pred_denom, - ) - - if prediction.pred_denom == 0: - logger.warning("There's no stake on this, one way or the other. Exiting.") - return - - logger.info("prediction properties are: %s", prediction.properties) - - if prediction.direction == 1 and prediction.confidence > 0.5: - logger.info("[Open Position] Requirements met") - order = self.exchange.create_market_buy_order( - symbol=self.ppss.trader_ss.exchange_str, - amount=self.ppss.trader_ss.position_size, - ) - if order and self.portfolio: - order = create_order(order, self.ppss.trader_ss.exchange_str) - self.portfolio.open_position(feed.address, order) - self.update_cache() - else: - logger.info( - "[No Trade] prediction does not meet requirements: %s", - prediction.properties, - ) diff --git a/pdr_backend/trader/base_trader_agent.py b/pdr_backend/trader/base_trader_agent.py deleted file mode 100644 index 1cdce46d4..000000000 --- a/pdr_backend/trader/base_trader_agent.py +++ /dev/null @@ -1,233 +0,0 @@ -import asyncio -import logging -import time -from collections import namedtuple -from typing import Any, Callable, List, Optional, Tuple, Union - -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed, print_feeds -from pdr_backend.util.cache import Cache -from pdr_backend.util.logutil import logging_has_stdout -from pdr_backend.util.time_types import UnixTimeS - -BasePrediction = namedtuple("BasePrediction", "pred_nom pred_denom") - -logger = logging.getLogger("trader_agent") - - -class Prediction(BasePrediction): - def __new__(cls, prediction: Tuple): - return super().__new__(cls, *prediction) - - @property - def confidence(self): - return self.pred_nom / self.pred_denom - - @property - def direction(self): - return 1 if self.confidence >= 0.5 else 0 - - @property - def stake(self): - return self.pred_denom - - @property - def properties(self): - return { - "confidence": self.confidence, - "direction": self.direction, - "stake": self.pred_denom, - } - - -# pylint: disable=too-many-instance-attributes -class BaseTraderAgent: - def __init__( - self, - ppss: PPSS, - _do_trade: Optional[Callable[[SubgraphFeed, Tuple], Any]] = None, - cache_dir=".cache", - ): - # ppss - self.ppss = ppss - if logging_has_stdout(): - print("\n" + "-" * 80) - logger.info(self.ppss) - - # _do_trade - self._do_trade = _do_trade or self.do_trade - - # set self.feeds - cand_feeds = ppss.web3_pp.query_feed_contracts() - print_feeds(cand_feeds, f"cand feeds, owner={ppss.web3_pp.owner_addrs}") - - feed = ppss.trader_ss.get_feed_from_candidates(cand_feeds) - if not feed: - raise ValueError("No feeds found.") - - print_feeds({feed.address: feed}, "filtered feeds") - - self.feed = feed - self.feed_contract = ppss.web3_pp.get_single_contract(feed.address) - - # set attribs to track block - self.prev_block_timestamp: UnixTimeS = UnixTimeS(0) - self.prev_block_number: int = 0 - - self.prev_traded_epochs: List[int] = [] - - self.cache = Cache(cache_dir=cache_dir) - self.load_cache() - - self.check_subscriptions_and_subscribe() - - def check_subscriptions_and_subscribe(self): - if not self.feed_contract.is_valid_subscription(): - logger.info("Purchase subscription for feed %s: begin", self.feed) - receipt = self.feed_contract.buy_and_start_subscription( - gasLimit=8000000, - wait_for_receipt=True, - ) - if receipt["status"] != 1: - txhash = receipt["transactionHash"].hex() - raise Exception(f"Failed to purchase subscription, tx: {txhash}") - logger.info("Purchase subscription for feed %s: done", self.feed) - time.sleep(1) - - def update_cache(self): - epochs = self.prev_traded_epochs - if epochs: - last_epoch = epochs[-1] - self.cache.save(f"trader_last_trade_{self.feed.address}", last_epoch) - - def load_cache(self): - last_epoch = self.cache.load(f"trader_last_trade_{self.feed.address}") - if last_epoch is not None: - self.prev_traded_epochs.append(last_epoch) - - def run(self, testing: bool = False): - while True: - asyncio.run(self.take_step()) - if testing: - break - - async def take_step(self): - web3_config = self.ppss.web3_pp.web3_config - w3 = web3_config.w3 - - # at new block number yet? - block_number = w3.eth.block_number - if block_number <= self.prev_block_number: - time.sleep(1) - return - self.prev_block_number = block_number - - # is new block ready yet? - block = web3_config.get_block(block_number, full_transactions=False) - if not block: - return - - self.prev_block_number = block_number - self.prev_block_timestamp = UnixTimeS(block["timestamp"]) - logger.debug("before: %s", time.time()) - s_till_epoch_ends = await self._process_block(UnixTimeS(block["timestamp"])) - - logger.debug("after: %s", time.time()) - if s_till_epoch_ends == -1: - # -1 means subscription expired for one of the assets - self.check_subscriptions_and_subscribe() - return - - sleep_time = s_till_epoch_ends - 1 - logger.info("epoch is in %d seconds, waiting...", sleep_time) - - time.sleep(sleep_time) - - async def _process_block(self, timestamp: UnixTimeS, tries: int = 0) -> int: - """ - @param: - timestamp - timestamp/epoch to process - [tries] - number of attempts made in case of an error, 0 by default - @return: - epoch_s_left - number of seconds left till the epoch end - logs - list of strings of function logs - """ - feed_contract = self.feed_contract - s_per_epoch = self.feed.seconds_per_epoch - epoch = int(timestamp / s_per_epoch) - epoch_s_left = epoch * s_per_epoch + s_per_epoch - timestamp - - logger.info("Processing %s", self.feed) - logger.info("Epoch %s", epoch) - logger.info("Seconds remaining in epoch: %d", epoch_s_left) - - if self.prev_traded_epochs and epoch == self.prev_traded_epochs[-1]: - logger.info("Done feed: already traded this epoch") - return epoch_s_left - - if epoch_s_left < self.ppss.trader_ss.min_buffer: - logger.info("Done feed: not enough time left in epoch") - return epoch_s_left - - try: - loop = asyncio.get_event_loop() - prediction = await loop.run_in_executor( - None, feed_contract.get_agg_predval, (epoch + 1) * s_per_epoch - ) - except Exception as e: - if tries < self.ppss.trader_ss.max_tries: - logger.warning(e.args[0]["message"]) - if ( - len(e.args) > 0 - and isinstance(e.args[0], dict) - and "message" in e.args[0] - ): - revert_reason = e.args[0]["message"] - if "No subscription" in revert_reason: - return -1 - logger.warning("Could not get aggpredval, trying again in a second") - await asyncio.sleep(1) - return await self._process_block(timestamp, tries + 1) - logger.warning( - "Done feed: aggpredval not available, an error occured: %s", e - ) - return epoch_s_left - - await self._do_trade(self.feed, prediction) - self.prev_traded_epochs.append(epoch) - self.update_cache() - - return epoch_s_left - - async def do_trade(self, feed: SubgraphFeed, prediction: Union[Prediction, Tuple]): - """ - @description - This function is called each time there's a new prediction available. - By default, it prints the signal. - The user should implement their trading algorithm here. - @params - feed : Feed - An instance of the Feed object. - - prediction : Tuple[float, float] - A tuple containing two float values, the unit is ETH: - - prediction[0]: Amount staked for the price going up. - - prediction[1]: Total stake amount. - @note - The probability of the price going up is determined by dividing - prediction[0] by prediction[1]. The magnitude of stake amounts indicates - the confidence of the prediction. Ensure stake amounts - are sufficiently large to be considered meaningful. - """ - if not isinstance(prediction, Prediction): - prediction = Prediction(prediction) - - logger.info( - "%s has a new prediction: %s / %s.", - feed, - prediction.pred_nom, - prediction.pred_denom, - ) - logger.info("%s prediction properties: %s", feed, str(prediction.properties)) - # Trade here - # ... diff --git a/pdr_backend/trader/test/conftest.py b/pdr_backend/trader/test/conftest.py deleted file mode 100644 index fc9ed034c..000000000 --- a/pdr_backend/trader/test/conftest.py +++ /dev/null @@ -1 +0,0 @@ -from pdr_backend.conftest_ganache import * # pylint: disable=wildcard-import diff --git a/pdr_backend/trader/test/test_base_trader_agent.py b/pdr_backend/trader/test/test_base_trader_agent.py deleted file mode 100644 index f5470bf19..000000000 --- a/pdr_backend/trader/test/test_base_trader_agent.py +++ /dev/null @@ -1,135 +0,0 @@ -import os -from pathlib import Path -from unittest.mock import Mock, patch - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.ppss.ppss import mock_feed_ppss -from pdr_backend.ppss.web3_pp import ( - inplace_mock_feedgetters, - inplace_mock_w3_and_contract_with_tracking, -) -from pdr_backend.trader.base_trader_agent import BaseTraderAgent -from pdr_backend.trader.test.trader_agent_runner import ( - INIT_BLOCK_NUMBER, - INIT_TIMESTAMP, - do_constructor, - do_run, - setup_take_step, -) - - -@enforce_types -@patch.object(BaseTraderAgent, "check_subscriptions_and_subscribe") -def test_trader_agent_constructor(check_subscriptions_and_subscribe_mock): - do_constructor(BaseTraderAgent, check_subscriptions_and_subscribe_mock) - - -@enforce_types -@patch.object(BaseTraderAgent, "check_subscriptions_and_subscribe") -def test_trader_agent_run(check_subscriptions_and_subscribe_mock): - do_run(BaseTraderAgent, check_subscriptions_and_subscribe_mock) - - -@enforce_types -@pytest.mark.asyncio -@patch.object(BaseTraderAgent, "check_subscriptions_and_subscribe") -async def test_trader_agent_take_step( - check_subscriptions_and_subscribe_mock, - monkeypatch, -): - agent = setup_take_step( - BaseTraderAgent, - check_subscriptions_and_subscribe_mock, - monkeypatch, - ) - - await agent.take_step() - - assert check_subscriptions_and_subscribe_mock.call_count == 2 - assert agent._process_block.call_count == 1 - - -@enforce_types -def custom_do_trade(feed, prediction): - return (feed, prediction) - - -@pytest.mark.asyncio -@patch.object(BaseTraderAgent, "check_subscriptions_and_subscribe") -async def test_process_block( # pylint: disable=unused-argument - check_subscriptions_and_subscribe_mock, - monkeypatch, -): - feed, ppss = mock_feed_ppss("1m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - _mock_pdr_contract = inplace_mock_w3_and_contract_with_tracking( - ppss.web3_pp, - INIT_TIMESTAMP, - INIT_BLOCK_NUMBER, - ppss.trader_ss.timeframe_s, - feed.address, - monkeypatch, - ) - - agent = BaseTraderAgent(ppss, custom_do_trade) - - agent.prev_traded_epochs = [] - - async def _do_trade(feed, prediction): # pylint: disable=unused-argument - pass - - agent._do_trade = Mock(side_effect=_do_trade) - - # mock feed seconds per epoch is 60 - # test agent config min buffer is 30 - # so it should trade if there's more than 30 seconds left in the epoch - - # epoch_s_left = 60 - 55 = 5, so we should not trade - # because it's too close to the epoch end - s_till_epoch_end = await agent._process_block(55) - assert len(agent.prev_traded_epochs) == 0 - assert s_till_epoch_end == 5 - - # epoch_s_left = 60 + 60 - 80 = 40, so we should trade - s_till_epoch_end = await agent._process_block(80) - assert len(agent.prev_traded_epochs) == 1 - assert s_till_epoch_end == 40 - - # but not again, because we've already traded this epoch - s_till_epoch_end = await agent._process_block(80) - assert len(agent.prev_traded_epochs) == 1 - assert s_till_epoch_end == 40 - - # but we should trade again in the next epoch - _mock_pdr_contract.get_current_epoch = Mock() - _mock_pdr_contract.get_current_epoch.return_value = 2 - s_till_epoch_end = await agent._process_block(140) - assert len(agent.prev_traded_epochs) == 2 - assert s_till_epoch_end == 40 - - -@enforce_types -@patch.object(BaseTraderAgent, "check_subscriptions_and_subscribe") -def test_save_and_load_cache( - check_subscriptions_and_subscribe_mock, -): # pylint: disable=unused-argument - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - - agent = BaseTraderAgent(ppss, custom_do_trade, cache_dir=".test_cache") - - agent.prev_traded_epochs = [1, 2, 3] - - agent.update_cache() - - agent_new = BaseTraderAgent(ppss, custom_do_trade, cache_dir=".test_cache") - assert agent_new.prev_traded_epochs == [3] - cache_dir_path = ( - Path(os.path.dirname(os.path.abspath(__file__))).parent.parent - / "util/.test_cache" - ) - for item in cache_dir_path.iterdir(): - item.unlink() - cache_dir_path.rmdir() diff --git a/pdr_backend/trader/test/trader_agent_runner.py b/pdr_backend/trader/test/trader_agent_runner.py deleted file mode 100644 index 9c03c63c4..000000000 --- a/pdr_backend/trader/test/trader_agent_runner.py +++ /dev/null @@ -1,84 +0,0 @@ -from unittest.mock import Mock, patch - -from enforce_typing import enforce_types - -from pdr_backend.ppss.ppss import mock_feed_ppss -from pdr_backend.ppss.web3_pp import ( - inplace_mock_feedgetters, - inplace_mock_w3_and_contract_with_tracking, -) -from pdr_backend.util.time_types import UnixTimeS - -INIT_TIMESTAMP = UnixTimeS(107) -INIT_BLOCK_NUMBER = 13 - - -@enforce_types -def do_constructor(agent_class, check_subscriptions_and_subscribe_mock): - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - - # 1 predict feed - assert ppss.trader_ss.feed - agent = agent_class(ppss) - assert agent.ppss == ppss - assert agent.feed - check_subscriptions_and_subscribe_mock.assert_called_once() - - -@enforce_types -def do_run( # pylint: disable=unused-argument - agent_class, - check_subscriptions_and_subscribe_mock, -): - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - - agent = agent_class(ppss) - - with patch.object(agent, "take_step") as mock_stake_step: - agent.run(True) - mock_stake_step.assert_called_once() - - -@enforce_types -def setup_take_step( # pylint: disable=unused-argument - agent_class, - check_subscriptions_and_subscribe_mock, - monkeypatch, -): - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - _mock_feed_contract = inplace_mock_w3_and_contract_with_tracking( - ppss.web3_pp, - INIT_TIMESTAMP, - INIT_BLOCK_NUMBER, - ppss.trader_ss.timeframe_s, - feed.address, - monkeypatch, - ) - - agent = agent_class(ppss) - - # Create async mock fn so we can await asyncio.gather(*tasks) - async def _process_block(timestamp): # pylint: disable=unused-argument - return -1 - - agent._process_block = Mock(side_effect=_process_block) - - return agent - - -@enforce_types -def setup_trade( # pylint: disable=unused-argument - agent_class, check_subscriptions_and_subscribe_mock -): - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - inplace_mock_feedgetters(ppss.web3_pp, feed) # mock publishing feeds - - agent = agent_class(ppss) - - agent.exchange = Mock() - agent.exchange.create_market_buy_order.return_value = {"info": {"origQty": 1}} - - return agent, feed diff --git a/pdr_backend/trueval/get_trueval.py b/pdr_backend/trueval/get_trueval.py deleted file mode 100644 index b4c6899f7..000000000 --- a/pdr_backend/trueval/get_trueval.py +++ /dev/null @@ -1,67 +0,0 @@ -from typing import Tuple - -from enforce_typing import enforce_types - -from pdr_backend.exchange.fetch_ohlcv import fetch_ohlcv -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed -from pdr_backend.util.time_types import UnixTimeS - - -@enforce_types -def get_trueval( - feed: SubgraphFeed, - init_timestamp_s: UnixTimeS, - end_timestamp_s: UnixTimeS, -) -> Tuple[bool, bool]: - """ - @description - Checks if the price has risen between two given timestamps. - If the round should be canceled, the second value in the returned tuple is set to True. - - @arguments - feed -- SubgraphFeed -- The feed object containing pair details - init_timestamp_s -- int -- The starting timestamp. - end_timestamp_s -- int -- The ending timestamp. - - @return - trueval -- did price rise y/n? - cancel_round -- should we cancel the round y/n? - """ - symbol = feed.pair - symbol = symbol.replace("-", "/") - symbol = symbol.upper() - - # since we will get close price - # we need to go back 1 candle - init_timestamp_s = UnixTimeS(init_timestamp_s - feed.seconds_per_epoch) - end_timestamp_s = UnixTimeS(end_timestamp_s - feed.seconds_per_epoch) - - # convert seconds to ms - init_timestamp = init_timestamp_s.to_milliseconds() - end_timestamp = end_timestamp_s.to_milliseconds() - - exchange_str: str = feed.source - tohlcvs = fetch_ohlcv( - exchange_str, symbol, feed.timeframe, since=init_timestamp, limit=2 - ) - assert len(tohlcvs) == 2, f"expected exactly 2 tochlv tuples. {tohlcvs}" - init_tohlcv, end_tohlcv = tohlcvs[0], tohlcvs[1] - - if init_tohlcv[0] != init_timestamp: - raise Exception( - f"exchange's init_tohlcv[0]={init_tohlcv[0]} should have matched" - f" target init_timestamp={init_timestamp}" - ) - if end_tohlcv[0] != end_timestamp: - raise Exception( - f"exchange's end_tohlcv[0]={end_tohlcv[0]} should have matched" - f" target end_timestamp={end_timestamp}" - ) - - init_c, end_c = init_tohlcv[4], end_tohlcv[4] # c = closing price - if end_c == init_c: - return False, True - - trueval = end_c > init_c - cancel_round = False - return trueval, cancel_round diff --git a/pdr_backend/trueval/trueval_agent.py b/pdr_backend/trueval/trueval_agent.py deleted file mode 100644 index 26e74f5b2..000000000 --- a/pdr_backend/trueval/trueval_agent.py +++ /dev/null @@ -1,188 +0,0 @@ -import logging -import os -import time -from collections import defaultdict -from typing import Dict, List, Optional, Tuple - -from enforce_typing import enforce_types - -from pdr_backend.contract.predictoor_batcher import PredictoorBatcher -from pdr_backend.contract.feed_contract import FeedContract -from pdr_backend.contract.slot import Slot -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed -from pdr_backend.subgraph.subgraph_sync import wait_until_subgraph_syncs -from pdr_backend.trueval.get_trueval import get_trueval -from pdr_backend.util.logutil import logging_has_stdout -from pdr_backend.util.time_types import UnixTimeS - -logger = logging.getLogger("trueval_agent") - - -@enforce_types -class TruevalSlot(Slot): - def __init__(self, slot_number: int, feed: SubgraphFeed): - super().__init__(slot_number, feed) - self.trueval: Optional[bool] = None - self.cancel = False - - def set_trueval(self, trueval: Optional[bool]): - self.trueval = trueval - - def set_cancel(self, cancel: bool): - self.cancel = cancel - - -@enforce_types -class TruevalAgent: - def __init__(self, ppss: PPSS, predictoor_batcher_addr: str): - self.ppss = ppss - self.predictoor_batcher: PredictoorBatcher = PredictoorBatcher( - self.ppss.web3_pp, predictoor_batcher_addr - ) - self.contract_cache: Dict[str, tuple] = {} - - def run(self, testing: bool = False): - while True: - self.take_step() - if testing or os.getenv("TEST") == "true": - break - - def take_step(self): - wait_until_subgraph_syncs( - self.ppss.web3_pp.web3_config, self.ppss.web3_pp.subgraph_url - ) - pending_slots = self.get_batch() - - if len(pending_slots) == 0: - logger.info( - "No pending slots, sleeping for %d seconds...", - self.ppss.trueval_ss.sleep_time, - ) - time.sleep(self.ppss.trueval_ss.sleep_time) - return - - # convert slots to TruevalSlot - trueval_slots = [ - TruevalSlot(slot.slot_number, slot.feed) for slot in pending_slots - ] - - # get the trueval for each slot - for slot in trueval_slots: - self.process_trueval_slot(slot) - if logging_has_stdout(): - print(".", end="", flush=True) - - logger.debug("Submitting transaction...") - - tx_hash = self.batch_submit_truevals(trueval_slots) - logger.info( - "Tx sent: %s, sleeping for %d seconds...", - tx_hash, - self.ppss.trueval_ss.sleep_time, - ) - - time.sleep(self.ppss.trueval_ss.sleep_time) - - def get_batch(self) -> List[Slot]: - timestamp = self.ppss.web3_pp.web3_config.get_current_timestamp() - - pending_slots = self.ppss.web3_pp.get_pending_slots( - timestamp, - allowed_feeds=self.ppss.trueval_ss.feeds, - ) - logger.info( - "Found %d pending slots, processing %d", - len(pending_slots), - self.ppss.trueval_ss.batch_size, - ) - pending_slots = pending_slots[: self.ppss.trueval_ss.batch_size] - return pending_slots - - def get_contract_info(self, contract_address: str) -> Tuple[FeedContract, int]: - if contract_address in self.contract_cache: - feed_contract, seconds_per_epoch = self.contract_cache[contract_address] - else: - feed_contract = FeedContract(self.ppss.web3_pp, contract_address) - seconds_per_epoch = feed_contract.get_secondsPerEpoch() - self.contract_cache[contract_address] = ( - feed_contract, - seconds_per_epoch, - ) - return (feed_contract, seconds_per_epoch) - - def get_init_and_ts( - self, slot: int, seconds_per_epoch: int - ) -> Tuple[UnixTimeS, UnixTimeS]: - initial_ts = UnixTimeS(slot - seconds_per_epoch) - end_ts = UnixTimeS(slot) - return initial_ts, end_ts - - def get_trueval_slot(self, slot: Slot): - """ - @description - Get trueval at the specified slot - - @arguments - slot - - @return - trueval: bool - cancel_round: bool - """ - _, s_per_epoch = self.get_contract_info(slot.feed.address) - init_ts, end_ts = self.get_init_and_ts(slot.slot_number, s_per_epoch) - - logger.info( - "Get trueval slot: begin. For slot_number %d of %s", - slot.slot_number, - slot.feed, - ) - try: - # calls to get_trueval() func below, via Callable attribute on self - (trueval, cancel_round) = get_trueval(slot.feed, init_ts, end_ts) - except Exception as e: - if "Too many requests" in str(e): - logger.warning("Get trueval slot: too many requests, wait for a minute") - time.sleep(60) - return self.get_trueval_slot(slot) - - # pylint: disable=line-too-long - raise Exception(f"An error occured: {e}") from e - - logger.info( - "Get trueval slot: done. trueval=%s, cancel_round=%s", trueval, cancel_round - ) - return (trueval, cancel_round) - - def batch_submit_truevals(self, slots: List[TruevalSlot]) -> str: - contracts: dict = defaultdict( - lambda: {"epoch_starts": [], "trueVals": [], "cancelRounds": []} - ) - - w3 = self.ppss.web3_pp.web3_config.w3 - for slot in slots: - if slot.trueval is None: # We only want slots with non-None truevals - continue - data = contracts[w3.to_checksum_address(slot.feed.address)] - data["epoch_starts"].append(slot.slot_number) - data["trueVals"].append(slot.trueval) - data["cancelRounds"].append(slot.cancel) - - contract_addrs = list(contracts.keys()) - epoch_starts = [data["epoch_starts"] for data in contracts.values()] - trueVals = [data["trueVals"] for data in contracts.values()] - cancelRounds = [data["cancelRounds"] for data in contracts.values()] - - tx = self.predictoor_batcher.submit_truevals_contracts( - contract_addrs, epoch_starts, trueVals, cancelRounds, True - ) - return tx["transactionHash"].hex() - - def process_trueval_slot(self, slot: TruevalSlot): - # (don't wrap with try/except because the called func already does) - (trueval, cancel_round) = self.get_trueval_slot(slot) - - slot.set_trueval(trueval) - if cancel_round: - slot.set_cancel(True) diff --git a/pdr_backend/util/constants_opf_addrs.py b/pdr_backend/util/constants_opf_addrs.py deleted file mode 100644 index 45332e190..000000000 --- a/pdr_backend/util/constants_opf_addrs.py +++ /dev/null @@ -1,27 +0,0 @@ -from typing import Dict - -from enforce_typing import enforce_types - - -@enforce_types -def get_opf_addresses(network_name: str) -> Dict[str, str]: - if network_name == "sapphire-testnet": - return { - "predictoor1": "0xE02A421dFc549336d47eFEE85699Bd0A3Da7D6FF", - "predictoor2": "0x00C4C993e7B0976d63E7c92D874346C3D0A05C1e", - "predictoor3": "0x005C414442a892077BD2c1d62B1dE2Fc127E5b9B", - "trueval": "0x005FD44e007866508f62b04ce9f43dd1d36D0c0c", - "websocket": "0x008d4866C4071AC9d74D6359604762C7B581D390", - "dfbuyer": "0xeA24C440eC55917fFa030C324535fc49B42c2fD7", - } - - if network_name == "sapphire-mainnet": - return { - "predictoor20": "0x784b52987A894d74E37d494F91eD03a5Ab37aB36", - "predictoor21": "0x74c52ce6c26780B78140D183596F6a8Dfa135BE3", - "trueval": "0x886A892670A7afc719Dcf36eF92c798203F74B67", - "websocket": "0x6Cc4Fe9Ba145AbBc43227b3D4860FA31AFD225CB", - "dfbuyer": "0x2433e002Ed10B5D6a3d8d1e0C5D2083BE9E37f1D", - } - - raise ValueError(network_name) diff --git a/pdr_backend/util/contract.py b/pdr_backend/util/contract.py deleted file mode 100644 index af3b60dc0..000000000 --- a/pdr_backend/util/contract.py +++ /dev/null @@ -1,54 +0,0 @@ -import copy -import os -from pathlib import Path -from typing import Union - -import artifacts -from enforce_typing import enforce_types - - -@enforce_types -def get_contract_filename(contract_name: str, address_file: Union[str, None]): - """Returns filename for a contract name.""" - contract_basename = f"{contract_name}.json" - - # first, try to find locally - path: Union[None, str, Path] = None - if address_file: - address_file = os.path.expanduser(address_file) - address_dir = os.path.dirname(address_file) - root_dir = os.path.join(address_dir, "..") - paths = list(Path(root_dir).rglob(contract_basename)) - if paths: - assert len(paths) == 1, f"had duplicates for {contract_basename}" - path = paths[0] - path = Path(path).expanduser().resolve() - assert ( - path.exists() - ), f"Found path = '{path}' via glob, yet path.exists() is False" - return path - - # didn't find locally, so use use artifacts lib - path = os.path.join(os.path.dirname(artifacts.__file__), "", contract_basename) - path = Path(path).expanduser().resolve() - - if not path.exists(): - raise TypeError(f"Contract '{contract_name}' not found in artifacts.") - - return path - - -@enforce_types -def _condition_sapphire_keys(d: dict) -> dict: - """ - For each sapphire-related key seen from address.json, - transform it to something friendly to pdr-backend (and named better) - """ - d2 = copy.deepcopy(d) - names = list(d.keys()) # eg ["mumbai", "oasis_saphire"] - for name in names: - if name == "oasis_saphire_testnet": - d2["sapphire-testnet"] = d[name] - elif name == "oasis_saphire": - d2["sapphire-mainnet"] = d[name] - return d2 diff --git a/pdr_backend/util/networkutil.py b/pdr_backend/util/networkutil.py deleted file mode 100644 index 75c68c428..000000000 --- a/pdr_backend/util/networkutil.py +++ /dev/null @@ -1,31 +0,0 @@ -from enforce_typing import enforce_types - - -@enforce_types -def get_sapphire_postfix(network: str) -> str: - if network == "sapphire-testnet": - return "testnet" - if network == "sapphire-mainnet": - return "mainnet" - - raise ValueError(f"'{network}' is not valid name") - - -@enforce_types -def get_subgraph_url(network: str) -> str: - """ - Returns the subgraph URL for the given network. - - Args: - network (str): The network name ("mainnet" or "testnet"). - - Returns: - str: The subgraph URL for the specified network. - """ - if network not in ["mainnet", "testnet"]: - raise ValueError( - "Invalid network. Acceptable values are 'mainnet' or 'testnet'." - ) - - # pylint: disable=line-too-long - return f"https://v4.subgraph.sapphire-{network}.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph" diff --git a/pdr_backend/pdr_dashboard/pages/__init__.py b/pdr_backend/util/test/__init__.py similarity index 100% rename from pdr_backend/pdr_dashboard/pages/__init__.py rename to pdr_backend/util/test/__init__.py diff --git a/pdr_backend/util/test_noganache/test_cache.py b/pdr_backend/util/test/test_cache.py similarity index 100% rename from pdr_backend/util/test_noganache/test_cache.py rename to pdr_backend/util/test/test_cache.py diff --git a/pdr_backend/util/test_noganache/test_contract.py b/pdr_backend/util/test/test_contract.py similarity index 100% rename from pdr_backend/util/test_noganache/test_contract.py rename to pdr_backend/util/test/test_contract.py diff --git a/pdr_backend/util/test_noganache/test_csvs.py b/pdr_backend/util/test/test_csvs.py similarity index 100% rename from pdr_backend/util/test_noganache/test_csvs.py rename to pdr_backend/util/test/test_csvs.py diff --git a/pdr_backend/util/test_noganache/test_currency_types.py b/pdr_backend/util/test/test_currency_types.py similarity index 100% rename from pdr_backend/util/test_noganache/test_currency_types.py rename to pdr_backend/util/test/test_currency_types.py diff --git a/pdr_backend/util/test_noganache/test_dictutil.py b/pdr_backend/util/test/test_dictutil.py similarity index 100% rename from pdr_backend/util/test_noganache/test_dictutil.py rename to pdr_backend/util/test/test_dictutil.py diff --git a/pdr_backend/util/test_noganache/test_env.py b/pdr_backend/util/test/test_env.py similarity index 100% rename from pdr_backend/util/test_noganache/test_env.py rename to pdr_backend/util/test/test_env.py diff --git a/pdr_backend/util/test_noganache/test_listutil.py b/pdr_backend/util/test/test_listutil.py similarity index 100% rename from pdr_backend/util/test_noganache/test_listutil.py rename to pdr_backend/util/test/test_listutil.py diff --git a/pdr_backend/util/test_noganache/test_mathutil.py b/pdr_backend/util/test/test_mathutil.py similarity index 100% rename from pdr_backend/util/test_noganache/test_mathutil.py rename to pdr_backend/util/test/test_mathutil.py diff --git a/pdr_backend/util/test_noganache/test_point.py b/pdr_backend/util/test/test_point.py similarity index 100% rename from pdr_backend/util/test_noganache/test_point.py rename to pdr_backend/util/test/test_point.py diff --git a/pdr_backend/util/test_noganache/test_point_meta.py b/pdr_backend/util/test/test_point_meta.py similarity index 100% rename from pdr_backend/util/test_noganache/test_point_meta.py rename to pdr_backend/util/test/test_point_meta.py diff --git a/pdr_backend/util/test_noganache/test_strutil.py b/pdr_backend/util/test/test_strutil.py similarity index 100% rename from pdr_backend/util/test_noganache/test_strutil.py rename to pdr_backend/util/test/test_strutil.py diff --git a/pdr_backend/util/test_noganache/test_time_types.py b/pdr_backend/util/test/test_time_types.py similarity index 100% rename from pdr_backend/util/test_noganache/test_time_types.py rename to pdr_backend/util/test/test_time_types.py diff --git a/pdr_backend/util/test_noganache/test_util_constants.py b/pdr_backend/util/test/test_util_constants.py similarity index 100% rename from pdr_backend/util/test_noganache/test_util_constants.py rename to pdr_backend/util/test/test_util_constants.py diff --git a/pdr_backend/util/test_noganache/__init__.py b/pdr_backend/util/test_noganache/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/pdr_backend/util/test_noganache/test_constants_get_opf_addrs.py b/pdr_backend/util/test_noganache/test_constants_get_opf_addrs.py deleted file mode 100644 index 34d7700fe..000000000 --- a/pdr_backend/util/test_noganache/test_constants_get_opf_addrs.py +++ /dev/null @@ -1,36 +0,0 @@ -import pytest -from enforce_typing import enforce_types - -from pdr_backend.util.constants_opf_addrs import get_opf_addresses - - -@enforce_types -def test_get_opf_addresses_testnet(): - addrs = get_opf_addresses("sapphire-testnet") - assert len(addrs) > 3 - assert "dfbuyer" in addrs - assert "websocket" in addrs - assert "trueval" in addrs - - -@enforce_types -def test_get_opf_addresses_mainnet(): - # sapphire testnet - addrs = get_opf_addresses("sapphire-mainnet") - assert len(addrs) > 3 - assert "dfbuyer" in addrs - assert "websocket" in addrs - assert "trueval" in addrs - - -@enforce_types -def test_get_opf_addresses_other(): - for s in ( - "", - "foo", - "development", - "oasis_saphire_testnet", - "oasis_saphire", - ): - with pytest.raises(ValueError): - get_opf_addresses(s) diff --git a/pdr_backend/util/test_noganache/test_topup.py b/pdr_backend/util/test_noganache/test_topup.py deleted file mode 100644 index 1e0fedca9..000000000 --- a/pdr_backend/util/test_noganache/test_topup.py +++ /dev/null @@ -1,81 +0,0 @@ -from unittest.mock import MagicMock, patch - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.contract.token import NativeToken, Token -from pdr_backend.ppss.ppss import mock_ppss -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.topup import topup_main -from pdr_backend.util.currency_types import Eth, Wei - - -@pytest.fixture(name="mock_token_") -def mock_token(): - token = MagicMock(spec=Token) - token.balanceOf.side_effect = [ - Eth(500).to_wei(), - Eth(500).to_wei(), - Wei(0), - Wei(0), - Wei(0), - Wei(0), - ] # Mock balance in wei - token.transfer.return_value = None - return token - - -@pytest.fixture(name="mock_native_token_") -def mock_native_token(): - native_token = MagicMock(spec=NativeToken) - native_token.balanceOf.side_effect = [ - Eth(500).to_wei(), - Eth(500).to_wei(), - Wei(0), - Wei(0), - Wei(0), - Wei(0), - ] # Mock balance in wei - native_token.transfer.return_value = None - return native_token - - -@pytest.fixture(name="mock_get_opf_addresses_") -def mock_get_opf_addresses(): - return MagicMock( - return_value={ - "predictoor1": "0x1", - "predictoor2": "0x2", - } - ) - - -@enforce_types -def test_topup_main(mock_token_, mock_native_token_, mock_get_opf_addresses_, tmpdir): - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - ) - - mock_web3_pp = MagicMock(spec=Web3PP) - mock_web3_pp.network = "sapphire-testnet" - mock_web3_pp.OCEAN_Token = mock_token_ - mock_web3_pp.NativeToken = mock_native_token_ - - ppss.web3_pp = mock_web3_pp - - topup_ss = MagicMock() - topup_ss.all_topup_addresses = mock_get_opf_addresses_ - topup_ss.get_min_bal.side_effect = [Eth(20), Eth(30), Eth(20), Eth(30)] - topup_ss.get_topup_bal.side_effect = [Eth(20), Eth(30), Eth(20), Eth(30)] - ppss.topup_ss = topup_ss - - PATH = "pdr_backend.util.topup" - with patch(f"{PATH}.sys.exit") as mock_exit: - topup_main(ppss) - - mock_exit.assert_called_with(0) - - assert mock_token_.transfer.called - assert mock_native_token_.transfer.called diff --git a/pdr_backend/util/topup.py b/pdr_backend/util/topup.py deleted file mode 100644 index 78bf43078..000000000 --- a/pdr_backend/util/topup.py +++ /dev/null @@ -1,93 +0,0 @@ -import logging -import sys -from typing import Dict, Tuple - -from enforce_typing import enforce_types - -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.util.currency_types import Eth - -logger = logging.getLogger("topup") - - -@enforce_types -def topup_main(ppss: PPSS): - # if there is not enough balance, exit 1 so we know that script failed - failed = False - - web3_pp = ppss.web3_pp - topup_ss = ppss.topup_ss - owner = web3_pp.web3_config.owner - - OCEAN = web3_pp.OCEAN_Token - ROSE = web3_pp.NativeToken - - owner_OCEAN_bal = OCEAN.balanceOf(owner).to_eth() - owner_ROSE_bal = ROSE.balanceOf(owner).to_eth() - logger.info( - "Topup address %s has %.2f OCEAN and %.2f ROSE", - owner, - owner_OCEAN_bal, - owner_ROSE_bal, - ) - - addresses: Dict[str, str] = ppss.topup_ss.all_topup_addresses(web3_pp.network) - - for addr_label, address in addresses.items(): - OCEAN_bal = OCEAN.balanceOf(address).to_eth() - ROSE_bal = ROSE.balanceOf(address).to_eth() - - logger.info("%s: %.2f OCEAN, %.2f ROSE", addr_label, OCEAN_bal, ROSE_bal) - - min_bal = topup_ss.get_min_bal(OCEAN, addr_label) - topup_bal = topup_ss.get_topup_bal(OCEAN, addr_label) - - OCEAN_transferred, failed_OCEAN = do_transfer( - OCEAN, address, owner, owner_OCEAN_bal, min_bal, topup_bal - ) - - owner_OCEAN_bal = owner_OCEAN_bal - OCEAN_transferred - - min_bal = topup_ss.get_min_bal(ROSE, addr_label) - topup_bal = topup_ss.get_topup_bal(ROSE, addr_label) - - ROSE_transferred, failed_ROSE = do_transfer( - ROSE, address, owner, owner_ROSE_bal, min_bal, topup_bal - ) - - owner_ROSE_bal = owner_ROSE_bal - ROSE_transferred - - if failed_ROSE or failed_OCEAN: - failed = True - - if failed: - sys.exit(1) - - sys.exit(0) - - -def do_transfer( - token, address, owner, owner_bal, min_bal: Eth, topup_bal: Eth -) -> Tuple[Eth, bool]: - bal = token.balanceOf(address).to_eth() - - symbol = "ROSE" if token.name == "ROSE" else "OCEAN" - - failed = False - transfered_amount = Eth(0) - - if min_bal > Eth(0) and bal < min_bal: - logger.info("Transferring %s %s to %s...", topup_bal.amt_eth, symbol, address) - if owner_bal > topup_bal: - token.transfer( - address, - topup_bal.to_wei(), - owner, - True, - ) - transfered_amount = topup_bal - else: - failed = True - logger.error("Not enough %s :(", symbol) - - return transfered_amount, failed diff --git a/pdr_backend/util/web3_accounts.py b/pdr_backend/util/web3_accounts.py deleted file mode 100644 index 675ed7300..000000000 --- a/pdr_backend/util/web3_accounts.py +++ /dev/null @@ -1,76 +0,0 @@ -import logging -import sys -from os import getenv -from typing import List -from enforce_typing import enforce_types - -from eth_account import Account -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.currency_types import Eth - -logger = logging.getLogger("web3_accounts") - - -@enforce_types -def create_accounts(n_accounts: int): - """ - @description - Create new accounts using the web3 provider and print the private_key and the public_key - """ - # loop through n_wallets - for i in range(n_accounts): - # pylint: disable=no-value-for-parameter - new_account = Account.create() - logger.info("Wallet #%s", i) - logger.info("Private Key: %s", new_account._private_key.hex()) - logger.info("Public Key: %s", new_account.address) - - -@enforce_types -def print_balances(addr: str, web3_pp: Web3PP): - """ - @description - Print account balances for the given address - - @notes - Does *not* use logger.info on purpose. We want output to be compact. - """ - ROSE, OCEAN = web3_pp.NativeToken, web3_pp.OCEAN_Token - ROSE_bal: float = ROSE.balanceOf(addr).to_eth().amount - OCEAN_bal: float = OCEAN.balanceOf(addr).to_eth().amount - print(f"{ROSE_bal} ROSE, {OCEAN_bal} OCEAN") - - -@enforce_types -def fund_accounts( - amount: Eth, to_addresses: List[str], web3_pp: Web3PP, is_native_token: bool -): - """ - @description - Fund multiple accounts using native or OCEAN tokens. - Sends a total of (Amount * n_accounts). - """ - private_key = getenv("PRIVATE_KEY") - assert private_key is not None, "Need PRIVATE_KEY env var" - - if web3_pp.network not in ["sapphire-testnet", "sapphire-mainnet"]: - logger.error("Unknown network %s", web3_pp.network) - sys.exit(1) - - token = web3_pp.NativeToken if is_native_token else web3_pp.OCEAN_Token - - assert hasattr(token, "name") - assert hasattr(token, "transfer") - - account = Account.from_key(private_key) # pylint: disable=no-value-for-parameter - - for address in to_addresses: - logger.info( - "Sending %s to %s for the amount of %s", token.name, address, amount - ) - token.transfer( - address, - amount.to_wei(), - account.address, - True, - ) diff --git a/pdr_backend/util/web3_config.py b/pdr_backend/util/web3_config.py deleted file mode 100644 index 46df45150..000000000 --- a/pdr_backend/util/web3_config.py +++ /dev/null @@ -1,111 +0,0 @@ -import logging -import time - -from typing import Optional - -from enforce_typing import enforce_types -from eth_account.signers.local import LocalAccount -from eth_keys import KeyAPI -from eth_keys.backends import NativeECCBackend -from eth_typing import BlockIdentifier -from web3 import Web3 -from web3.middleware import ( - construct_sign_and_send_raw_middleware, - http_retry_request_middleware, -) -from web3.types import BlockData - -from pdr_backend.util.constants import WEB3_MAX_TRIES -from pdr_backend.util.constants import ( - SAPPHIRE_MAINNET_CHAINID, - SAPPHIRE_TESTNET_CHAINID, -) -from pdr_backend.util.time_types import UnixTimeS - -_KEYS = KeyAPI(NativeECCBackend) -logger = logging.getLogger("web3_config") - - -@enforce_types -class Web3Config: - def __init__(self, rpc_url: str, private_key: Optional[str] = None): - self.rpc_url: str = rpc_url - self.w3 = Web3(Web3.HTTPProvider(rpc_url)) - - if private_key is not None: - self.account: LocalAccount = self.w3.eth.account.from_key(private_key) - self.owner = self.account.address - self.private_key = private_key - self.w3.middleware_onion.add( - construct_sign_and_send_raw_middleware(self.account) - ) - self.w3.middleware_onion.add(http_retry_request_middleware) - - def copy_with_pk(self, pk: str): - return Web3Config(self.rpc_url, pk) - - def get_block( - self, block: BlockIdentifier, full_transactions: bool = False, tries: int = 0 - ) -> BlockData: - try: - block_data = self.w3.eth.get_block(block) - return block_data - except Exception as e: - logger.warning("An error occured while getting block, error: {%s}", e) - if tries < WEB3_MAX_TRIES: - logger.info("Trying again...") - # sleep times for the first 5 tries: - # 2.5, 10.0, 22.5, 40.0, 62.5 - time.sleep(((tries + 1) / 2) ** (2) * 10) - return self.get_block(block, full_transactions, tries + 1) - raise Exception("Couldn't get block") from e - - def get_auth_signature(self): - """ - @description - Digitally sign - - @return - auth -- dict with keys "userAddress", "v", "r", "s", "validUntil" - """ - valid_until = self.get_block("latest").timestamp + 3600 - message_hash = self.w3.solidity_keccak( - ["address", "uint256"], - [self.owner, valid_until], - ) - pk = _KEYS.PrivateKey(self.account.key) - prefix = "\x19Ethereum Signed Message:\n32" - signable_hash = self.w3.solidity_keccak( - ["bytes", "bytes"], - [ - self.w3.to_bytes(text=prefix), - self.w3.to_bytes(message_hash), - ], - ) - signed = _KEYS.ecdsa_sign(message_hash=signable_hash, private_key=pk) - auth = { - "userAddress": self.owner, - "v": (signed.v + 27) if signed.v <= 1 else signed.v, - "r": self.w3.to_hex(self.w3.to_bytes(signed.r).rjust(32, b"\0")), - "s": self.w3.to_hex(self.w3.to_bytes(signed.s).rjust(32, b"\0")), - "validUntil": valid_until, - } - return auth - - @property - def is_sapphire(self): - return self.w3.eth.chain_id in [ - SAPPHIRE_TESTNET_CHAINID, - SAPPHIRE_MAINNET_CHAINID, - ] - - @enforce_types - def get_max_gas(self) -> int: - """Returns max block gas""" - block = self.get_block(self.w3.eth.block_number, full_transactions=False) - return int(block["gasLimit"] * 0.99) - - @enforce_types - def get_current_timestamp(self) -> UnixTimeS: - """Returns latest block""" - return UnixTimeS(self.get_block("latest")["timestamp"]) diff --git a/ppss.yaml b/ppss.yaml index 05859c97c..263d37961 100644 --- a/ppss.yaml +++ b/ppss.yaml @@ -1,203 +1,61 @@ -# (web3_pp / network settings is at bottom, because it's long) +sim_ss: + log_dir: logs + test_n: 26275 # ************ number of epochs to simulate. For 5m: 2y->210200ep; 1y->105100ep; 6mo->52550ep; 3mo->26275ep + tradetype: histmock # histmock | livemock | livereal + + # sim also relies on: + # - lake_ss - what data to put into lake + # - predictoor_ss - ai model settings + # - trader_ss - trading settings + # - exchange_mgr_ss - exchange settings + + lake_ss: lake_dir: lake_data feeds: - binance BTC/USDT ETH/USDT 5m # - binance BTC/USDT ETH/USDT BNB/USDT XRP/USDT ADA/USDT DOGE/USDT SOL/USDT LTC/USDT TRX/USDT DOT/USDT 5m # - kraken BTC/USDT 5m - st_timestr: 30 days ago # starting date for data + st_timestr: 750 days ago # starting date for data fin_timestr: now # ending date for data - export_db_data_to_parquet_files: True # export duckdb data base tables to parquet files - seconds_between_parquet_exports: 600 # export again to parquet after this amount of seconds have passed from last - number_of_files_after_which_re_export_db: 2 # number of files at which re-export table as 1 parquet file - api: ccxt + predictoor_ss: predict_train_feedsets: - predict: binance BTC/USDT c 5m train_on: - binance BTC/USDT c 5m - ta_features: [] # list of TA features to use. - approach: 2 # 1->50/50; 2->two-sided model-based; 3-> one-sided model-based - stake_amount: 100 # How much your bot stakes. In OCEAN per epoch, per feed - sim_only: - others_stake: 10000 # How much all others' bots stake. In OCEAN per epoch, per feed. Calcs: stake volume = 10e6 $/day/20_feeds = 34700 $/epoch/20_feeds (bc 288 5m epochs/day) = 1735 $/epoch/feed = 2313 OCEAN/epoch/feed (at 1 OCEAN=$0.75) - others_accuracy: 0.50001 # What percent of others' bots stake is correct. Value in range 0.0-1.0. 0.50001 means mostly 50-50 stake and some small fry predicting a bit accurately - revenue: 0.93006 # Sales revenue going towards predictoors. In OCEAN per epoch, per feed. Calcs: 37500 OCEAN/week/20_feeds (Predictoor DF rewards) = 18.6012 OCEAN/epoch/20_feeds (bc 2016 5m epochs/week) = 0.93006 OCEAN/epoch/feed - - bot_only: - pred_submitter_mgr: "DeployNewMgr" # DeployNewMgr |
- s_start_payouts: 220 # in s. Run payout if > this time left. 0 to disable - s_until_epoch_end: 60 # in s. Start predicting if > this time left - payout_batch_size: 8 # no. epochs to payout in each batch - min_payout_slots: 0 # Run payout if payout is available for > this many slots - + aimodel_data_ss: # used by AimodelDataFactory - max_n_train: 1000 # no. epochs to train model on - autoregressive_n: 2 # no. epochs that model looks back, to predict next - transform: None # None -> raw value of signal; RelDiff -> rel % diff + max_n_train: 5700 # ************ no. epochs to train model on. For 5m: 30d->8850ep, 20d->5700ep, 10d->2850ep, 1d->285ep + autoregressive_n: 12 # ************ no. epochs that model looks back, to predict next. For 5m: 1h->12ep, 4h->48ep, 8h->96ep, 24h->288ep. "spot a pattern" + transform: None # ************ None -> raw value of signal; RelDiff -> rel % diff aimodel_ss: # used by AimodelFactory approach: ClassifLinearRidge # ClassifLinearLasso | ClassifLinearLasso_Balanced | ClassifLinearRidge | ClassifLinearRidge_Balanced | ClassifLinearElasticNet | ClassifLinearElasticNet_Balanced | ClassifLinearSVM | ClassifGaussianProcess | ClassifXgboost | ClassifConstant | RegrLinearLS | RegrLinearLasso | RegrLinearRidge | RegrLinearElasticNet | RegrGaussianProcess | RegrXgboost | RegrConstant - weight_recent: 10x_5x # 10x_5x | 10000x | None + weight_recent: 10x_5x # ************ 10x_5x | 10000x | None balance_classes: None # SMOTE | RandomOverSampler | None calibrate_probs: CalibratedClassifierCV_Sigmoid # CalibratedClassifierCV_Sigmoid | CalibratedClassifierCV_Isotonic | None calibrate_regr: CurrentYval # CurrentYval | None train_every_n_epochs: 1 - calc_imps: True - # seed: 42 - - my_addresses: [] - -exchange_mgr_ss: # used by trader and sim - timeout: 30000 - ccxt_params: - createMarketBuyOrderRequiresPrice: False - defaultType: spot trader_ss: feed: binance BTC/USDT c 5m sim_only: buy_amt: 1000 USD # buy this amount in each epoch - fee_percent: 0.0 # simulated % fee, in decimal, where 1.0 = 100% - confidence_threshold: 0.02 # skip trade if confidence < this, in decimal, where 1.0 = 100% - stop_loss_percent: 1.0 # sell if price drops by this %, in decimal, where 1.0 = 100%, . 1.0 = disabled - take_profit_percent: 100.0 # sell if price rises by this %, in decimal, where 100.0 = 10000%, . 100.0 = disabled + fee_percent: 0.00025 # ************ simulated % fee, in decimal, where 1.0->100%, 0.1->10%, 0.01->1%, 0.001->0.1%, 0.00025->0.025%, 0.0001->0.01% + confidence_threshold: 0.90 # ************ skip trade if confidence < this, in decimal, where 1.0 = 100% + stop_loss_percent: 0.002 # ************ sell if price drops by this %, in decimal, where 1.0 = 100%, 1.0 = disabled; 0.1->10%, 0.01->1%, 0.001->0.1% + take_profit_percent: 0.002 # ************ sell if price rises by this %, in decimal, where 100.0 = 10000%, 100.0 = disabled; 1.0->100%, 0.1->10%, 0.01->1%, 0.001->0.1% bot_only: min_buffer: 30 # in s. only trade if there's > this time left max_tries: 10 # max no. attempts to process a feed position_size: 3 # buy/sell this amount in each epoch -sim_ss: # sim only - log_dir: logs - test_n: 5000 # number of epochs to simulate - tradetype: histmock # histmock | livemock | livereal - use_own_model: True # use own model predictions signals if true, else use chain signals - -multisim_ss: - approach: SimpleSweep # SimpleSweep | FastSweep (future) | .. - sweep_params: - - trader_ss.buy_amt: 1000 USD - - predictoor_ss.aimodel_data_ss.max_n_train: 500, 1000, 1500 - - predictoor_ss.aimodel_data_ss.autoregressive_n: 1, 2 - - predictoor_ss.predict_train_feedsets: - - - - predict: binance BTC/USDT c 5m - train_on: - - binance BTC/USDT c 5m - - - - predict: binance BTC/USDT ETH/USDT c 5m - train_on: - - binance BTC/USDT ETH/USDT c 5m -# - binance BTC/USDT c 5m -# - kraken BTC/USDT c 5m - - - -# ------------------------------------------------------------------ -# Bots run by OPF - -publisher_ss: - sapphire-mainnet: - fee_collector_address: 0x0000000000000000000000000000000000000000 - feeds: - - binance BTC/USDT ETH/USDT BNB/USDT XRP/USDT ADA/USDT DOGE/USDT SOL/USDT LTC/USDT TRX/USDT DOT/USDT c 5m,1h - sapphire-testnet: - fee_collector_address: 0x0000000000000000000000000000000000000000 - feeds: - - binance BTC/USDT ETH/USDT BNB/USDT XRP/USDT ADA/USDT DOGE/USDT SOL/USDT LTC/USDT TRX/USDT DOT/USDT c 5m,1h - development: - fee_collector_address: 0x0000000000000000000000000000000000000000 - feeds: - - binance BTC/USDT ETH/USDT XRP/USDT c 5m -trueval_ss: - feeds: - - binance BTC/USDT 5m - # - binance BTC/USDT ETH/USDT BNB/USDT XRP/USDT ADA/USDT DOGE/USDT SOL/USDT LTC/USDT TRX/USDT DOT/USDT 5m - # - kraken BTC/USDT 5m - batch_size: 30 - sleep_time: 30 - -dfbuyer_ss: - feeds: - - binance BTC/USDT 5m - # - binance BTC/USDT ETH/USDT BNB/USDT XRP/USDT ADA/USDT DOGE/USDT SOL/USDT LTC/USDT TRX/USDT DOT/USDT 5m - # - kraken BTC/USDT 5m - batch_size: 20 - consume_interval_seconds: 86400 - weekly_spending_limit: 37000 - -payout_ss: - batch_size: 250 - -topup_ss: - addresses: - - opf_addresses -# - 0xabcd... -# min_bal: 20 -# topup_bal: 30 - -# ------------------------------------------------------------------ -# Network settings - -web3_pp: - sapphire-testnet: - address_file: "~/.ocean/ocean-contracts/artifacts/address.json" - rpc_url: https://testnet.sapphire.oasis.dev - subgraph_url: https://v4.subgraph.sapphire-testnet.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph - owner_addrs: "0xe02a421dfc549336d47efee85699bd0a3da7d6ff" # OPF deployer address - - sapphire-mainnet: - address_file: "~/.ocean/ocean-contracts/artifacts/address.json" - rpc_url: https://sapphire.oasis.io - subgraph_url: https://v4.subgraph.sapphire-mainnet.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph - owner_addrs: "0x4ac2e51f9b1b0ca9e000dfe6032b24639b172703" # OPF deployer address - - development: - address_file: "~/.ocean/ocean-contracts/artifacts/address.json" - rpc_url: http://localhost:8545 - subgraph_url: http://localhost:9000/subgraphs/name/oceanprotocol/ocean-subgraph - owner_addrs: "0xe2DD09d719Da89e5a3D0F2549c7E24566e947260" # OPF deployer address. Taken from ocean.py setup-local.md FACTORY_DEPLOYER_PRIVATE_KEY - - development2: - address_file: "~/barge-pytest.address.json" - private_key: "0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58" - rpc_url: http://74.234.16.165:8545 - subgraph_url: http://74.234.16.165:9000/subgraphs/name/oceanprotocol/ocean-subgraph - owner_addrs: "0xe2DD09d719Da89e5a3D0F2549c7E24566e947260" # OPF deployer address. Taken from ocean.py setup-local.md FACTORY_DEPLOYER_PRIVATE_KEY - - barge-predictoor-bot: - address_file: "~/barge-predictoor-bot.address.json" - private_key: "0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58" # address is 0xe2DD... - rpc_url: http://4.245.224.119:8545 # from VPS - subgraph_url: http://4.245.224.119:9000/subgraphs/name/oceanprotocol/ocean-subgraph # from VPS - owner_addrs: "0xe2DD09d719Da89e5a3D0F2549c7E24566e947260" # OPF deployer address. Taken from ocean.py setup-local.md FACTORY_DEPLOYER_PRIVATE_KEY - - barge-pytest: - address_file: "~/barge-pytest.address.json" - private_key: "0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58" - rpc_url: http://74.234.16.165:8545 - subgraph_url: http://74.234.16.165:9000/subgraphs/name/oceanprotocol/ocean-subgraph - owner_addrs: "0xe2DD09d719Da89e5a3D0F2549c7E24566e947260" # OPF deployer address. Taken from ocean.py setup-local.md FACTORY_DEPLOYER_PRIVATE_KEY - -deployment_configs: - testnet_predictoor_deployment: - cpu: "1" - memory: "512Mi" - source: "binance" - type: "predictoor" - approach: 3 - network: "sapphire-testnet" - s_until_epoch_end: 20 - pdr_backend_image_source: "oceanprotocol/pdr-backend:latest" - agents: - - pair: "BTC/USDT" - stake_amt: 0.1 - timeframe: 5m - approach: 1 - - pair: "ETH/USDT" - stake_amt: 1 - timeframe: 1h - s_until_epoch_end: 100 +exchange_mgr_ss: # used by trader and sim + timeout: 30000 + ccxt_params: + createMarketBuyOrderRequiresPrice: False + defaultType: spot From a2611e4db7fcfc8edeb02d3be178e019dea54106 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 16:01:39 +0100 Subject: [PATCH 05/44] pytest passing --- mypy.ini | 41 - pdr_backend/aimodel/aimodel_data_factory.py | 1 - pdr_backend/aimodel/aimodel_plotdata.py | 74 - pdr_backend/aimodel/aimodel_plotter.py | 438 --- .../test/test_aimodel_factory_general.py | 152 +- .../test/test_aimodel_factory_pricedata.py | 38 - pdr_backend/aimodel/test/test_aiplotdata.py | 1 - pdr_backend/aimodel/test/test_aiplotter.py | 1 - pdr_backend/cli/cli_module.py | 1 - pdr_backend/cli/nested_arg_parser.py | 7 - pdr_backend/cli/test/test_cli_module.py | 60 +- pdr_backend/cli/test/test_cli_module_lake.py | 233 -- pdr_backend/lake/ohlcv_data_factory.py | 23 +- pdr_backend/lake/plutil.py | 26 - pdr_backend/lake/prediction.py | 328 --- pdr_backend/lake/test/conftest.py | 675 ----- pdr_backend/lake/test/pdr_payouts.csv | 2350 ----------------- pdr_backend/lake/test/pdr_subscriptions.csv | 2141 --------------- pdr_backend/lake/test/resources.py | 150 -- pdr_backend/lake/test/test_alt_bar.py | 68 - .../lake/test/test_duckdb_data_store.py | 525 ---- pdr_backend/lake/test/test_etl.py | 447 ---- .../lake/test/test_gql_data_factory.py | 463 ---- pdr_backend/lake/test/test_prediction.py | 22 - pdr_backend/lake/test/test_slots.py | 14 - pdr_backend/lake/test/test_subscriptions.py | 22 - pdr_backend/lake/test/test_table.py | 205 -- pdr_backend/ppss/ppss.py | 5 - pdr_backend/ppss/test/test_ppss.py | 1 - pdr_backend/sim/sim_engine.py | 143 +- pdr_backend/sim/sim_logger.py | 56 - pdr_backend/sim/sim_state.py | 93 +- pdr_backend/sim/test/test_sim_engine.py | 2 +- pdr_backend/sim/test/test_sim_logger.py | 49 - pdr_backend/util/constants.py | 42 - pdr_backend/util/core_accounts.py | 52 - pdr_backend/util/csvs.py | 107 - pdr_backend/util/test/test_contract.py | 58 - pdr_backend/util/test/test_csvs.py | 58 - pdr_backend/util/test/test_util_constants.py | 19 - setup.py | 13 - 41 files changed, 47 insertions(+), 9157 deletions(-) delete mode 100644 pdr_backend/aimodel/aimodel_plotdata.py delete mode 100644 pdr_backend/aimodel/aimodel_plotter.py delete mode 100644 pdr_backend/aimodel/test/test_aiplotdata.py delete mode 100644 pdr_backend/aimodel/test/test_aiplotter.py delete mode 100644 pdr_backend/cli/test/test_cli_module_lake.py delete mode 100644 pdr_backend/lake/prediction.py delete mode 100644 pdr_backend/lake/test/pdr_payouts.csv delete mode 100644 pdr_backend/lake/test/pdr_subscriptions.csv delete mode 100644 pdr_backend/lake/test/test_alt_bar.py delete mode 100644 pdr_backend/lake/test/test_duckdb_data_store.py delete mode 100644 pdr_backend/lake/test/test_etl.py delete mode 100644 pdr_backend/lake/test/test_gql_data_factory.py delete mode 100644 pdr_backend/lake/test/test_prediction.py delete mode 100644 pdr_backend/lake/test/test_slots.py delete mode 100644 pdr_backend/lake/test/test_subscriptions.py delete mode 100644 pdr_backend/lake/test/test_table.py delete mode 100644 pdr_backend/sim/sim_logger.py delete mode 100644 pdr_backend/sim/test/test_sim_logger.py delete mode 100644 pdr_backend/util/core_accounts.py delete mode 100644 pdr_backend/util/csvs.py delete mode 100644 pdr_backend/util/test/test_contract.py delete mode 100644 pdr_backend/util/test/test_csvs.py diff --git a/mypy.ini b/mypy.ini index 3ea042d16..9da91760a 100644 --- a/mypy.ini +++ b/mypy.ini @@ -2,21 +2,12 @@ exclude = venv|codacy-analysis-cli-master disable_error_code = annotation-unchecked -[mypy-dash_bootstrap_components.*] -ignore_missing_imports = True - -[mypy-addresses.*] -ignore_missing_imports = True - [mypy-artifacts.*] ignore_missing_imports = True [mypy-ccxt.*] ignore_missing_imports = True -[mypy-dash.*] -ignore_missing_imports = True - [mypy-dateparser.*] ignore_missing_imports = True @@ -26,36 +17,15 @@ ignore_missing_imports = True [mypy-enforce_typing.*] ignore_missing_imports = True -[mypy-eth_account.*] -ignore_missing_imports = True - -[mypy-eth_keys.*] -ignore_missing_imports = True - -[mypy-eth_typing.*] -ignore_missing_imports = True - -[mypy-flask.*] -ignore_missing_imports = True - -[mypy-numerize.*] -ignore_missing_imports = True - [mypy-numpy.*] ignore_missing_imports = True -[mypy-ocean_lib.*] -ignore_missing_imports = True - [mypy-pandas.*] ignore_missing_imports = True [mypy-pdr_backend.predictoor.examples.*] ignore_missing_imports = True -[mypy-plotly.*] -ignore_missing_imports = True - [mypy-polars.*] ignore_missing_imports = True @@ -68,9 +38,6 @@ ignore_missing_imports = True [mypy-requests.*] ignore_missing_imports = True -[mypy-sapphirepy.*] -ignore_missing_imports = True - [mypy-scipy.*] ignore_missing_imports = True @@ -83,17 +50,9 @@ ignore_missing_imports = True [mypy-statsmodels.*] ignore_missing_imports = True -[mypy-web3.*] -ignore_missing_imports = True - -[mypy-solcx.*] -ignore_missing_imports = True - [mypy-stopit.*] ignore_missing_imports = True [mypy-yaml.*] ignore_missing_imports = True -[mypy-ta.*] -ignore_missing_imports = True diff --git a/pdr_backend/aimodel/aimodel_data_factory.py b/pdr_backend/aimodel/aimodel_data_factory.py index 30db4247c..ea2293af3 100644 --- a/pdr_backend/aimodel/aimodel_data_factory.py +++ b/pdr_backend/aimodel/aimodel_data_factory.py @@ -10,7 +10,6 @@ from pdr_backend.cli.arg_feed import ArgFeed from pdr_backend.cli.arg_feeds import ArgFeeds from pdr_backend.ppss.predictoor_ss import PredictoorSS -from pdr_backend.technical_indicators import get_indicator from pdr_backend.util.mathutil import fill_nans, has_nan logger = logging.getLogger("aimodel_data_factory") diff --git a/pdr_backend/aimodel/aimodel_plotdata.py b/pdr_backend/aimodel/aimodel_plotdata.py deleted file mode 100644 index 7ad7efc98..000000000 --- a/pdr_backend/aimodel/aimodel_plotdata.py +++ /dev/null @@ -1,74 +0,0 @@ -from typing import List, Optional - -from enforce_typing import enforce_types -import numpy as np - -from pdr_backend.aimodel.aimodel import Aimodel - - -class AimodelPlotdata: - """Simple class to manage many inputs going into plot_model.""" - - # pylint: disable=too-many-instance-attributes - # pylint: disable=too-many-positional-arguments - def __init__( - self, - model: Aimodel, - X_train: np.ndarray, - ytrue_train: np.ndarray, - ycont_train: Optional[np.ndarray], - y_thr: Optional[float], - colnames: List[str], - slicing_x: np.ndarray, - sweep_vars: Optional[List[int]] = None, - ): - """ - @arguments - model -- Aimodel - X_train -- 2d array [sample_i, var_i]:cont_value -- model trn inputs - ytrue_train -- 1d array [sample_i]:bool_value -- model trn classif out - ycont_train -- 1d array [sample_i]:cont_value -- model trn regr out - y_thr -- threshold value for True vs False - colnames -- [var_i]:str -- name for each of the X inputs - slicing_x -- array [var_i]:floatval - values for non-sweep vars - sweep_vars -- list with [sweepvar_i] or [sweepvar_i, sweepvar_j] - -- If 1 entry, do line plot (1 var), where y-axis is response - -- If 2 entries, do contour plot (2 vars), where z-axis is response - """ - - # preconditions - N, n = X_train.shape - assert len(colnames) == n, (len(colnames), n) - assert slicing_x.shape[0] == n, (slicing_x.shape[0], n) - assert ytrue_train.shape[0] == N, (ytrue_train.shape[0], N) - if ycont_train is not None: - assert ycont_train.shape[0] == N, (ycont_train.shape[0], N) - assert sweep_vars is None or len(sweep_vars) in [1, 2] - - # set values - self.model = model - self.X_train = X_train - self.ytrue_train = ytrue_train - self.ycont_train = ycont_train - self.y_thr = y_thr - self.colnames = colnames - self.slicing_x = slicing_x - self.sweep_vars = sweep_vars - - @property - @enforce_types - def n(self) -> int: - """Number of input dimensions == # columns in X""" - return self.X_train.shape[1] - - @property - @enforce_types - def n_sweep(self) -> int: - """Number of variables to sweep in the plot""" - if self.sweep_vars is None: - return 0 - - if self.n == 1: - return 1 - - return len(self.sweep_vars) diff --git a/pdr_backend/aimodel/aimodel_plotter.py b/pdr_backend/aimodel/aimodel_plotter.py deleted file mode 100644 index 7e47c32c7..000000000 --- a/pdr_backend/aimodel/aimodel_plotter.py +++ /dev/null @@ -1,438 +0,0 @@ -import numpy as np -import plotly.graph_objects as go -from plotly.subplots import make_subplots -from enforce_typing import enforce_types -from pdr_backend.sim.sim_plotter import empty_fig - -from pdr_backend.aimodel.aimodel_plotdata import AimodelPlotdata - - -@enforce_types -def plot_aimodel_response(aimodel_plotdata: AimodelPlotdata): - """ - @description - Plot the model response in a line plot (1 var) or contour plot (2 vars). - And overlay X-data. (Training data or otherwise.) - - @arguments - aimodel_plotdata -- - - @return - figure -- - """ - d = aimodel_plotdata - - if d.n_sweep == 1: - return _plot_lineplot_1var(aimodel_plotdata) - - return _plot_contour(aimodel_plotdata) - - -@enforce_types -def _plot_lineplot_1var(aimodel_plotdata: AimodelPlotdata): - """ - @description - Do a 1d lineplot, when exactly 1 input x-var - Will fail if not 1 var. - Because one var total, we can show more info of true-vs-actual - """ - # aimodel data - d = aimodel_plotdata - assert d.n_sweep == 1 - X, ytrue, ycont, y_thr = d.X_train, d.ytrue_train, d.ycont_train, d.y_thr - - # take 1 var - nvars = X.shape[1] - sweep_vars = aimodel_plotdata.sweep_vars - assert nvars > 0 - if nvars == 1: - chosen_i = 0 - elif sweep_vars is not None and len(sweep_vars) >= 1: - chosen_i = sweep_vars[0] - else: - imps = d.model.importance_per_var() - chosen_i = np.argsort(imps)[::-1][0] # type:ignore[assignment] - - # base data - x = X[:, chosen_i] - colname = d.colnames[chosen_i] - N = len(x) - - # calc mesh_X = uniform grid on chosen_i, - # and every other dimension i has value slicing_x[i] - mesh_chosen_x = np.linspace(min(x), max(x), 200) - slicing_X = np.reshape(d.slicing_x, (1, nvars)) # [0][var_i] - mesh_N = len(mesh_chosen_x) - mesh_X = np.repeat(slicing_X, mesh_N, axis=0) # [sample_i][var_i] - mesh_X[:, chosen_i] = mesh_chosen_x - - # calc model classifier response - mesh_yptrue_hat = d.model.predict_ptrue(mesh_X) - ytrue_hat = d.model.predict_true(X) - - # calc model regressor response - mesh_ycont_hat = None - if d.model.do_regr: - mesh_ycont_hat = d.model.predict_ycont(mesh_X) - - # build up "fig"... - fig = make_subplots(specs=[[{"secondary_y": True}]]) - - # orange vertical bars: where classifier was wrong - correct = ytrue_hat == ytrue - wrong = np.invert(correct) - for i, xi in enumerate(x[wrong]): - label = "classif: wrong" if i == 0 else None - fig.add_trace( - go.Scatter( - x=[xi, xi], - y=[0.0, 1.0], - mode="lines", - line={"color": "orange", "width": 1}, - name=label, - showlegend=bool(label), - ) - ) - - # blue line curve: classifier probability response - fig.add_trace( - go.Scatter( - x=mesh_chosen_x, - y=mesh_yptrue_hat, - mode="lines", - line={"color": "blue"}, - name="classif: model prob(true)", - ) - ) - - # scatterplots blue=training_T, brown=training_F - jj = _get_jitter(N) - yfalse = np.invert(ytrue) - y1 = ytrue[ytrue] - jj[ytrue] + 0.015 - y2 = ytrue[yfalse] + jj[yfalse] - 0.015 - - fig.add_trace( - go.Scatter( - x=x[ytrue], - y=y1, - mode="markers", - marker={"color": "blue", "size": 5}, - name="classif: trn data class=true", - ) - ) - - fig.add_trace( - go.Scatter( - x=x[yfalse], - y=y2, - mode="markers", - marker={"color": "brown", "size": 5}, - name="classif: trn data class=false", - ) - ) - fig.update_yaxes(title_text="classif: prob(True)", secondary_y=False) - - # line plot: regressor response, training data - if d.model.do_regr: - assert mesh_ycont_hat is not None - assert y_thr is not None - assert ycont is not None - fig.add_trace( - go.Scatter( - x=mesh_chosen_x, - y=mesh_ycont_hat, - mode="lines", - line={"color": "black"}, - name="regr: model yhat", - ), - secondary_y=True, - ) - fig.add_trace( - go.Scatter( - x=x, - y=ycont, - mode="markers", - marker={"color": "black", "size": 5}, - name="regr: trn data y", - ), - secondary_y=True, - ) - fig.add_trace( - go.Scatter( - x=[min(mesh_chosen_x), max(mesh_chosen_x)], - y=[y_thr, y_thr], - mode="lines", - line={"color": "black", "dash": "dot"}, - name="regr: threshold up/down", - ), - secondary_y=True, - ) - fig.update_yaxes(title_text="regr: y-value", secondary_y=True) - - fig.update_xaxes(title_text=colname) - - return fig - - -@enforce_types -def _plot_contour(aimodel_plotdata: AimodelPlotdata): - """ - @description - Plot the model, when there's >=2 input x-vars. Use a contour plot. - If >2 vars, it plots the 2 most important vars. Will fail if <2 vars. - It overlays X-data. (Training data or otherwise.) - - @arguments - aimodel_plotdata -- - """ - # pylint: disable=too-many-statements - # aimodel data - d = aimodel_plotdata - X = d.X_train - nvars = d.n - assert nvars >= 2 - - # take 2 vars - nvars = X.shape[1] - sweep_vars = aimodel_plotdata.sweep_vars - assert nvars > 1 - if nvars == 1: - chosen_I = [0, 0] - elif nvars == 2: - chosen_I = [0, 1] - elif sweep_vars is not None and len(sweep_vars) >= 2: - chosen_I = list(sweep_vars)[:2] - else: - imps = d.model.importance_per_var() - chosen_I = np.argsort(imps)[::-1][:2] # type:ignore[assignment] - chosen_X = X[:, chosen_I] - chosen_colnames = [d.colnames[i] for i in chosen_I] - - # calc min/max - x0_min, x0_max = min(chosen_X[:, 0]), max(chosen_X[:, 0]) - x1_min, x1_max = min(chosen_X[:, 1]), max(chosen_X[:, 1]) - - # calc mesh_X = uniform grid across two most important dimensions, - # and every other dimension i has value slicing_x[i] - feature_x = np.linspace(x0_min, x0_max, 200) - feature_y = np.linspace(x1_min, x1_max, 200) - dim0, dim1 = np.meshgrid(feature_x, feature_y) - mesh_0, mesh_1 = dim0.ravel(), dim1.ravel() - mesh_chosen_X = np.array([mesh_0, mesh_1]).T # [sample_i][chosen_var_i] - slicing_X = np.reshape(d.slicing_x, (1, nvars)) # [0][var_i] - mesh_N = mesh_chosen_X.shape[0] - mesh_X = np.repeat(slicing_X, mesh_N, axis=0) # [sample_i][var_i] - mesh_X[:, chosen_I] = mesh_chosen_X - - # make subplots - s1 = "classif: contours = model prob(true)" - s2 = "regr: contours = model y-value" - if d.model.do_regr: - fig = make_subplots( - rows=2, cols=1, subplot_titles=[s1, s2], vertical_spacing=0.07 - ) - else: - fig = make_subplots(rows=1, cols=1, subplot_titles=s1) - - # subplot at row 1: classifier response - Z = d.model.predict_ptrue(mesh_X) - colorscale = "RdBu" # red=False, blue=True, white=between - _add_contour_subplot(d, chosen_I, dim0, dim1, Z, colorscale, fig, row=1) - - # subplot at row 2: regressor response - if d.model.do_regr: - Z = d.model.predict_ycont(mesh_X) - colorscale = "Greys" - _add_contour_subplot(d, chosen_I, dim0, dim1, Z, colorscale, fig, row=2) - - # global: axes ranges - fig.update_xaxes(range=[x0_min, x0_max]) - fig.update_yaxes(range=[x1_min, x1_max]) - - # global: axes labels - xlabel_row = 2 if d.model.do_regr else 1 - fig.update_xaxes(title=chosen_colnames[0], row=xlabel_row, col=1) - fig.update_yaxes(title=chosen_colnames[1]) - - return fig - - -@enforce_types -# pylint: disable=too-many-positional-arguments -def _add_contour_subplot(d, chosen_I, dim0, dim1, Z, colorscale, fig, row): - """In-place update 'fig' at specified subplot row""" - Z = Z.reshape(dim1.shape) - - # base data - X = d.X_train - ytrue = d.ytrue_train - chosen_X = X[:, chosen_I] - - # calc other data for plots - ytrue_hat = d.model.predict_true(X) - correct = ytrue_hat == ytrue - wrong = np.invert(correct) - yfalse = np.invert(ytrue) - - # contour plot: model response - fig.add_trace( - go.Contour( - z=Z, - x=dim0[0], - y=dim1[:, 0], - showscale=False, - line_width=0, - ncontours=25, - colorscale=colorscale, - ), - row=row, - col=1, - ) - - # scatterplots: orang_outline=misclassified - fig.add_trace( - go.Scatter( - x=chosen_X[:, 0][wrong], - y=chosen_X[:, 1][wrong], - mode="markers", - marker={"color": "orange", "size": 10}, - name="classif: wrong", - showlegend=(row == 1), - ), - row=row, - col=1, - ) - - # scatterplots: blue=training_T - fig.add_trace( - go.Scatter( - x=chosen_X[:, 0][ytrue], - y=chosen_X[:, 1][ytrue], - mode="markers", - marker={"color": "blue", "size": 5}, - name="true", - showlegend=(row == 1), - ), - row=row, - col=1, - ) - - # scatterplots: brown=training_F - fig.add_trace( - go.Scatter( - x=chosen_X[:, 0][yfalse], - y=chosen_X[:, 1][yfalse], - mode="markers", - marker={"color": "brown", "size": 5}, - name="false", - showlegend=(row == 1), - ), - row=row, - col=1, - ) - - -@enforce_types -def plot_aimodel_varimps(d: AimodelPlotdata): - """ - @description - Bar plot showing rel importance of vars - Including 95% confidence intervals (2.0 stddevs) - - @arguments - d -- AimodelPlotdata - """ - try: - imps_avg, imps_stddev = d.model.importance_per_var(include_stddev=True) - except Exception: - return empty_fig("Can't plot var imp for chain data") - - imps_avg = imps_avg + 1e-15 # give imp > 0, so before dummy vars in plot - varnames = d.colnames - n = len(varnames) - - sweep_vars = d.sweep_vars if hasattr(d, "sweep_vars") else [] - - # if >40 vars, truncate to top 40+1 - if n > 40: - rest_avg = sum(imps_avg[40:]) - rest_stddev = np.average(imps_stddev[40:]) - imps_avg = np.append(imps_avg[:40], rest_avg) - imps_stddev = np.append(imps_stddev[:40], rest_stddev) - varnames = varnames[:40] + ["rest"] - n = 40 + 1 - - # if <10 vars, make it like 10 - if n < 10: - n_extra = 10 - n - imps_avg = np.append(imps_avg, [0.0] * n_extra) - imps_stddev = np.append(imps_stddev, [0.0] * n_extra) - varnames = varnames + [""] * n_extra - n = 10 - - # put in percent scales - imps_avg = imps_avg * 100.0 - imps_stddev = imps_stddev * 100.0 - imps_lower = np.clip(imps_avg - imps_stddev * 2.0, 0.0, np.inf) - imps_upper = imps_avg + imps_stddev * 2.0 - error_x_lower = imps_avg - imps_lower - error_x_upper = imps_upper - imps_avg - - labelalias = {} - colors = [] - - for i in range(n): - # avoid overlap in figure by giving different labels, - # but alias them to "" for the legend - if varnames[i] == "": - varnames[i] = f"var{i}" - labelalias[varnames[i]] = "" - - colors.append("#636EFA" if not sweep_vars or i in sweep_vars else "#D4D5DD") - - # build up "fig"... - fig = go.Figure() - - # bar plot - fig.add_trace( - go.Bar( - x=imps_avg, - y=varnames, - error_x={ - "type": "data", - "array": error_x_upper, - "arrayminus": error_x_lower, - }, - orientation="h", - marker_color=colors, - ) - ) - - bar_lw = 0.2 if n < 15 else 0.3 - err_lw = 3 if n < 15 else 1 - fig.update_traces( - marker_line_width=bar_lw, - error_x_width=err_lw, - ) - - fig.update_layout( - yaxis={ - "categoryorder": "total ascending", - "labelalias": labelalias, - } - ) - fig.update_layout(xaxis_title="Relative importance (%)") - fig.update_layout(title="Variable importances") - - return fig - - -J = np.array([], dtype=float) # jitter - - -@enforce_types -def _get_jitter(N: int) -> np.ndarray: - global J - while J.shape[0] < N: - J = np.append(J, np.random.rand()) - return J[:N] diff --git a/pdr_backend/aimodel/test/test_aimodel_factory_general.py b/pdr_backend/aimodel/test/test_aimodel_factory_general.py index 927066864..7266ebc10 100644 --- a/pdr_backend/aimodel/test/test_aimodel_factory_general.py +++ b/pdr_backend/aimodel/test/test_aimodel_factory_general.py @@ -4,16 +4,10 @@ from enforce_typing import enforce_types from numpy.testing import assert_array_equal -from plotly.graph_objs._figure import Figure import pytest from pytest import approx from pdr_backend.aimodel.aimodel_factory import AimodelFactory -from pdr_backend.aimodel.aimodel_plotdata import AimodelPlotdata -from pdr_backend.aimodel.aimodel_plotter import ( - plot_aimodel_response, - plot_aimodel_varimps, -) from pdr_backend.aimodel.ycont_to_ytrue import ycont_to_ytrue from pdr_backend.ppss.aimodel_ss import ( AimodelSS, @@ -22,24 +16,22 @@ ) from pdr_backend.statutil.scoring import classif_acc -# set env variable as true to show plots -SHOW_PLOT = os.getenv("SHOW_PLOT", "false").lower() == "true" - @enforce_types @pytest.mark.parametrize( "approach,func", [ ("ClassifLinearRidge", "lin"), - ("ClassifGaussianProcess", "nonlin"), - ("ClassifXgboost", "nonlin"), + ("ClassifLinearRidge_Balanced", "lin"), + # ("ClassifGaussianProcess", "nonlin"), + # ("ClassifXgboost", "nonlin"), ("RegrLinearRidge", "lin"), - ("RegrGaussianProcess", "nonlin"), - ("RegrXgboost", "nonlin"), + # ("RegrGaussianProcess", "nonlin"), + # ("RegrXgboost", "nonlin"), ], ) def test_aimodel_1var(approach: str, func: str): - """1 input var. It will plot that var on both axes""" + """1 input var.""" # settings, factory ss = AimodelSS(aimodel_ss_test_dict(approach=approach)) factory = AimodelFactory(ss) @@ -62,28 +54,9 @@ def test_aimodel_1var(approach: str, func: str): imps = model.importance_per_var() assert_array_equal(imps, np.array([1.0])) - # plot response: always classifier, and regressor if relevant - colnames = ["x0"] - slicing_x = np.array([0.1]) # arbitrary - sweep_vars = [0] - aimodel_plotdata = AimodelPlotdata( - model, - X, - ytrue, - ycont, - y_thr, - colnames, - slicing_x, - sweep_vars, - ) - figure = plot_aimodel_response(aimodel_plotdata) - assert isinstance(figure, Figure) - if SHOW_PLOT: - figure.show() - - @enforce_types -@pytest.mark.parametrize("approach", APPROACH_OPTIONS) +#@pytest.mark.parametrize("approach", APPROACH_OPTIONS) +@pytest.mark.parametrize("approach", ["ClassifLinearRidge", "RegrLinearRidge"]) def test_aimodel_2vars(approach: str): # settings, factory ss = AimodelSS(aimodel_ss_test_dict(approach=approach)) @@ -126,25 +99,6 @@ def test_aimodel_2vars(approach: str): assert imps[0] == approx(0.333, abs=0.3) assert imps[1] == approx(0.667, abs=0.3) - # plot model response - colnames = ["x0", "x1"] - slicing_x = np.array([0.0, 1.0]) # arbitrary - sweep_vars = [0, 1] - d = AimodelPlotdata( - model, - X, - ytrue, - ycont, - y_thr, - colnames, - slicing_x, - sweep_vars, - ) - fig = plot_aimodel_response(d) - assert isinstance(fig, Figure) - if SHOW_PLOT: - fig.show() - # test predict_ycont() if not model.do_regr: return @@ -240,8 +194,8 @@ def test_aimodel_classif_accuracy(): @enforce_types -@pytest.mark.parametrize("approach", ["ClassifLinearRidge", "RegrLinearRidge"]) -def test_aimodel_5varmodel_lineplot(approach: str): +@pytest.mark.parametrize("approach", ["ClassifLinearRidge"]) +def test_aimodel_5varmodel(approach: str): """5 input vars; sweep 1 var.""" # settings, factory ss = AimodelSS(aimodel_ss_test_dict(approach=approach)) @@ -270,26 +224,6 @@ def test_aimodel_5varmodel_lineplot(approach: str): assert len(imps) == 5 assert imps[0] < imps[1] < imps[2] < imps[3] < imps[4] - # plot - colnames = ["x0", "x1", "x2", "x3", "x4"] - slicing_x = np.array([0.1] * 5) # arbitrary - sweep_vars = [2] # x2 - aimodel_plotdata = AimodelPlotdata( - model, - X, - ytrue, - ycont, - y_thr, - colnames, - slicing_x, - sweep_vars, - ) - figure = plot_aimodel_response(aimodel_plotdata) - assert isinstance(figure, Figure) - - if SHOW_PLOT: - figure.show() - @enforce_types @pytest.mark.parametrize( @@ -297,12 +231,12 @@ def test_aimodel_5varmodel_lineplot(approach: str): [ ("ClassifLinearRidge", 1), ("ClassifLinearRidge", 2), - ("RegrLinearRidge", 1), - ("RegrLinearRidge", 2), + # ("RegrLinearRidge", 1), + # ("RegrLinearRidge", 2), ], ) def test_aimodel_4vars_response(approach: str, target_n_classes: int): - """4 input vars. It will plot the 2 most important vars.""" + """4 input vars.""" assert target_n_classes in [1, 2] # settings, factory @@ -336,48 +270,7 @@ def test_aimodel_4vars_response(approach: str, target_n_classes: int): else: assert min(imps) == max(imps) == 0.25 - # plot model response - slicing_x = np.array([0.1, 1.0, 2.0, 3.0]) # arbitrary - sweep_vars = [0, 1] - aimodel_plotdata = AimodelPlotdata( - model, - X, - ytrue, - ycont, - y_thr, - colnames, - slicing_x, - sweep_vars, - ) - - figure = plot_aimodel_response(aimodel_plotdata) - assert isinstance(figure, Figure) - if SHOW_PLOT: - figure.show() - - -@enforce_types -@pytest.mark.parametrize("n", [1, 2, 3, 4, 5, 10, 25, 100]) -def test_aimodel_nvars_varimps(n: int): - varnames = [f"x{i}" for i in range(n)] - imps_avg = np.array([n - i + 1 for i in range(n)]) - assert imps_avg.shape[0] == n - imps_stddev = imps_avg / 4.0 - _sum = sum(imps_avg) - imps_avg = imps_avg / _sum - imps_stddev = imps_stddev / _sum - - plot_data = Mock(spec=AimodelPlotdata) - plot_data.model = Mock() - plot_data.model.importance_per_var.return_value = (imps_avg, imps_stddev) - plot_data.colnames = varnames - - figure = plot_aimodel_varimps(plot_data) - assert isinstance(figure, Figure) - - if SHOW_PLOT: - figure.show() @enforce_types @@ -432,22 +325,3 @@ def _test_aimodel__regr_0error(d: dict, curprice_xval): yhat = model.predict_ycont(X) err = abs(ycont[-1] - yhat[-1]) / np.std(ycont) assert abs(err) < 0.1, err - - # plot response - colnames = ["x0"] - slicing_x = np.array([0.1]) # arbitrary - sweep_vars = [0] - aimodel_plotdata = AimodelPlotdata( - model, - X, - ytrue, - ycont, - y_thr, - colnames, - slicing_x, - sweep_vars, - ) - figure = plot_aimodel_response(aimodel_plotdata) - assert isinstance(figure, Figure) - if SHOW_PLOT: - figure.show() diff --git a/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py b/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py index 14a865069..4f1c4e0c0 100644 --- a/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py +++ b/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py @@ -6,11 +6,6 @@ from pdr_backend.aimodel.aimodel_data_factory import AimodelDataFactory from pdr_backend.aimodel.aimodel_factory import AimodelFactory -from pdr_backend.aimodel.aimodel_plotdata import AimodelPlotdata -from pdr_backend.aimodel.aimodel_plotter import ( - plot_aimodel_response, - plot_aimodel_varimps, -) from pdr_backend.aimodel.ycont_to_ytrue import ycont_to_ytrue from pdr_backend.lake.merge_df import merge_rawohlcv_dfs from pdr_backend.lake.test.resources import _df_from_raw_data @@ -21,14 +16,9 @@ PredictoorSS, predictoor_ss_test_dict, ) -from pdr_backend.statutil.dist_plotter import plot_dist from pdr_backend.statutil.scoring import classif_acc -# set env variable as true to show plots -SHOW_PLOT = os.getenv("SHOW_PLOT", "false").lower() == "true" - - # run a single test below with e.g. # pytest pdr_backend/aimodel/test/test_aimodel_factory_btc.py::test_aimodel_btc_static[ClassifLinearRidge-1] # pylint: disable=line-too-long @@ -88,33 +78,10 @@ def test_aimodel_prices_static(approach: str, autoregr_n: int, transform: str): if model.do_regr: _ = model.predict_ycont(X) - # plot model response - sweep_vars = [0, 1] - if autoregr_n == 1: - sweep_vars = [0] - plot_data = AimodelPlotdata( - model, - X, - ytrue, - ytran, - y_thr, - colnames=list(x_df.columns), - slicing_x=X[-1, :], # arbitrary - sweep_vars=sweep_vars, - ) - fig = plot_aimodel_response(plot_data) - if SHOW_PLOT: - fig.show() - # test variable importances imps = model.importance_per_var() assert sum(imps) == approx(1.0, 0.01) - # plot variable importances - fig = plot_aimodel_varimps(plot_data) - if SHOW_PLOT: - fig.show() - @enforce_types @pytest.mark.parametrize("transform", ["None", "RelDiff"]) @@ -134,11 +101,6 @@ def test_aimodel_prices_dynamic(transform: str): ) yerrs.append(yerr) - fig = plot_dist(yerrs, True, False, False) - assert fig is not None - if SHOW_PLOT: - fig.show() - @enforce_types def _run_one_iter(autoregr_n, max_n_train, transform, sim_test_n, test_i) -> float: diff --git a/pdr_backend/aimodel/test/test_aiplotdata.py b/pdr_backend/aimodel/test/test_aiplotdata.py deleted file mode 100644 index fc3489139..000000000 --- a/pdr_backend/aimodel/test/test_aiplotdata.py +++ /dev/null @@ -1 +0,0 @@ -# nothing here, see testing in test_aimodel_general.py diff --git a/pdr_backend/aimodel/test/test_aiplotter.py b/pdr_backend/aimodel/test/test_aiplotter.py deleted file mode 100644 index fc3489139..000000000 --- a/pdr_backend/aimodel/test/test_aiplotter.py +++ /dev/null @@ -1 +0,0 @@ -# nothing here, see testing in test_aimodel_general.py diff --git a/pdr_backend/cli/cli_module.py b/pdr_backend/cli/cli_module.py index 8637a911e..ef4a6894f 100644 --- a/pdr_backend/cli/cli_module.py +++ b/pdr_backend/cli/cli_module.py @@ -47,7 +47,6 @@ def _do_main(): def do_sim(args, nested_args=None): ppss = PPSS( yaml_filename=args.PPSS_FILE, - network="development", nested_override_args=nested_args, ) feedset = ppss.predictoor_ss.predict_train_feedsets[0] diff --git a/pdr_backend/cli/nested_arg_parser.py b/pdr_backend/cli/nested_arg_parser.py index 617582dd6..3ac536a61 100644 --- a/pdr_backend/cli/nested_arg_parser.py +++ b/pdr_backend/cli/nested_arg_parser.py @@ -22,13 +22,6 @@ def parse_known_args(self, args=None, namespace=None): if eq: # Only proceed if '=' is found self._process_nested_arg(key, value) - if hasattr(namespace, "PPSS_FILE") and hasattr(namespace, "NETWORK"): - namespace.PPSS = PPSS( - yaml_filename=namespace.PPSS_FILE, - network=namespace.NETWORK, - nested_override_args=self.nested_args, - ) - return namespace, self.nested_args def _process_nested_arg(self, key, value): diff --git a/pdr_backend/cli/test/test_cli_module.py b/pdr_backend/cli/test/test_cli_module.py index fc8d42743..d14e8630e 100644 --- a/pdr_backend/cli/test/test_cli_module.py +++ b/pdr_backend/cli/test/test_cli_module.py @@ -23,24 +23,6 @@ class _PPSS_OBJ: ) -class _LOOKBACK: - LOOKBACK_HOURS = 24 - - -class _ST: - ST = "2023-06-22" - - -class _END: - END = "2023-06-24" - - -class _PQDIR: - PQDIR = "my_lake_data/" - -class _NUM: - NUM = 1 - class _Base: def __init__(self, *args, **kwargs): pass @@ -54,46 +36,6 @@ class MockArgs(Namespace, _PPSS, _PPSS_OBJ): return MockArgs() -class MockArgParser_APPROACH_PPSS(_Base): - def __init__(self, approach=_APPROACH): - self.approach = approach - super().__init__() - - def parse_args(self): - class MockArgs(Namespace, self.approach, _PPSS, _PPSS_OBJ): - pass - - return MockArgs() - - -class MockArgParser_ST_END_PQDIR_PPSS_PDRS(_Base): - def parse_args(self): - class MockArgs( # pylint: disable=too-many-ancestors - Namespace, _ST, _END, _PQDIR, _PPSS, _PDRS, _PPSS_OBJ - ): - pass - - return MockArgs() - - -class MockArgParser_ST_END_PQDIR_PPSS_FEEDS(_Base): - def parse_args(self): - class MockArgs( # pylint: disable=too-many-ancestors - Namespace, _ST, _END, _PQDIR, _PPSS, _FEEDS, _PPSS_OBJ - ): - pass - - return MockArgs() - - -class MockArgParser_NUM(_Base): - def parse_args(self): - class MockArgs(Namespace, _NUM): - pass - - return MockArgs() - - _CLI_PATH = "pdr_backend.cli.cli_module" @@ -119,7 +61,7 @@ def test_do_ohlcv(monkeypatch): mock_f = Mock() monkeypatch.setattr(f"{_CLI_PATH}.OhlcvDataFactory.get_mergedohlcv_df", mock_f) - do_ohlcv(MockArgParser_PPSS_NETWORK().parse_args()) + do_ohlcv(MockArgParser_PPSS().parse_args()) mock_f.assert_called() diff --git a/pdr_backend/cli/test/test_cli_module_lake.py b/pdr_backend/cli/test/test_cli_module_lake.py deleted file mode 100644 index b339032b5..000000000 --- a/pdr_backend/cli/test/test_cli_module_lake.py +++ /dev/null @@ -1,233 +0,0 @@ -from argparse import Namespace -from unittest.mock import Mock, patch - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.cli.cli_module_lake import ( - DuckDBDataStore, - do_lake_describe, - do_lake_etl_drop, - do_lake_etl_update, - do_lake_query, - do_lake_raw_drop, - do_lake_raw_update, - do_lake_subcommand, - do_lake_validate, -) -from pdr_backend.ppss.ppss import PPSS -from pdr_backend.util.time_types import UnixTimeMs - - -@enforce_types -def test_do_lake_subcommand(): - with patch( - "pdr_backend.cli.cli_module_lake.do_lake_describe" - ) as mock_do_lake_describe: - do_lake_subcommand(["describe", "ppss.yaml", "sapphire-mainnet"]) - - mock_do_lake_describe.assert_called_once() - - with patch("pdr_backend.cli.cli_module_lake.do_lake_query") as mock_do_lake_query: - do_lake_subcommand(["query", "ppss.yaml", "sapphire-mainnet", "query"]) - - mock_do_lake_query.assert_called_once() - - -@enforce_types -def test_do_lake_describe(): - args = Namespace() - args.subcommand = "describe" - args.PPSS_FILE = "ppss.yaml" - args.NETWORK = "sapphire-mainnet" - args.HTML = False - - ppss = Mock() - - with patch("pdr_backend.cli.cli_module_lake.LakeInfo") as mock_lake_info: - do_lake_describe(args, ppss) - - mock_lake_info.assert_called_once_with(ppss, use_html=False) - - -@enforce_types -def test_do_lake_validate(): - args = Namespace() - args.subcommand = "validate" - args.PPSS_FILE = "ppss.yaml" - args.NETWORK = "sapphire-mainnet" - - ppss = Mock() - - with patch("pdr_backend.cli.cli_module_lake.LakeInfo") as mock_lake_info: - do_lake_validate(args, ppss) - - mock_lake_info.assert_called_once_with(ppss) - - -@enforce_types -def test_do_lake_query(caplog): - query = "SELECT * FROM table" - - args = Namespace() - args.QUERY = query - args.PPSS_FILE = "ppss.yaml" - args.NETWORK = "sapphire-mainnet" - - mock_pds = Mock() - mock_pds.query_data.return_value = "query result" - mock_ppss = Mock() - - with patch( - "pdr_backend.cli.cli_module_lake.DuckDBDataStore", return_value=mock_pds - ): - do_lake_query(args, mock_ppss) - - mock_pds.query_data.assert_called_once_with(query) - - mock_pds_err = Mock() - mock_pds_err.query_data.side_effect = Exception("boom!") - - with patch( - "pdr_backend.cli.cli_module_lake.DuckDBDataStore", return_value=mock_pds_err - ): - do_lake_query(args, mock_ppss) - - assert "Error querying lake: boom!" in caplog.text - - -@enforce_types -def test_do_lake_raw_delegation(): - args = ["raw", "drop", "ppss.yaml", "sapphire-mainnet", "2021-01-01"] - - with patch("pdr_backend.cli.cli_module_lake.do_lake_raw_drop") as raw_drop: - do_lake_subcommand(args) - - assert raw_drop.called - - args = ["raw", "update", "ppss.yaml", "sapphire-mainnet"] - - with patch("pdr_backend.cli.cli_module_lake.do_lake_raw_update") as raw_update: - do_lake_subcommand(args) - - assert raw_update.called - - -@enforce_types -def test_do_lake_etl_delegation(): - args = ["etl", "drop", "ppss.yaml", "sapphire-mainnet", "2021-01-01"] - - with patch("pdr_backend.cli.cli_module_lake.do_lake_etl_drop") as etl_drop: - do_lake_subcommand(args) - - assert etl_drop.called - assert isinstance(etl_drop.call_args[0][0].ST, UnixTimeMs) - - args.append("2021-01-01") - with pytest.raises(SystemExit): - # raw does not recognize the extra END argument - do_lake_subcommand(args) - - args = ["etl", "update", "ppss.yaml", "sapphire-mainnet"] - - with patch("pdr_backend.cli.cli_module_lake.do_lake_etl_update") as etl_update: - do_lake_subcommand(args) - - assert etl_update.called - - -def _make_and_fill_timestamps(db, table_name, first_entry_ts): - one_day = 1000 * 60 * 60 * 24 - db.query_data(f"CREATE TABLE {table_name} (id INT, timestamp INT64)") - - for i in range(5): - db.query_data( - f"INSERT INTO {table_name} VALUES ({i}, {first_entry_ts + i * one_day})" - ) - - -@enforce_types -def test_do_lake_raw_drop(tmpdir, caplog): - args = Namespace() - args.ST = UnixTimeMs.from_timestr("2021-01-01") # 1609459200000 - args.LAKE_DIR = "" - args.PPSS_FILE = "ppss.yaml" - args.NETWORK = "sapphire-mainnet" - - ts = 1609459200000 - one_day = 1000 * 60 * 60 * 24 - - db = DuckDBDataStore(str(tmpdir)) - _make_and_fill_timestamps(db, "_temp_test1", ts - 3 * one_day) - _make_and_fill_timestamps(db, "test2", ts - 2 * one_day) - _make_and_fill_timestamps(db, "_etl_bronze_test", ts - 2 * one_day) - - mock_ppss = Mock() - - with patch("pdr_backend.cli.cli_module_lake.DuckDBDataStore", return_value=db): - do_lake_raw_drop(args, mock_ppss) - - assert "drop table _temp_test1 starting at 1609459200000" in caplog.text - assert "rows before: 5" in caplog.text - assert "rows after: 3" in caplog.text - assert "drop table test2 starting at 1609459200000" in caplog.text - assert "rows before: 5" in caplog.text - assert "rows after: 3" in caplog.text - assert "truncated 8 rows from 3 tables" in caplog.text - - -@enforce_types -def test_do_lake_etl_drop(tmpdir, caplog): - args = Namespace() - args.ST = UnixTimeMs.from_timestr("2021-01-01") # 1609459200000 - args.LAKE_DIR = "" - args.PPSS_FILE = "ppss.yaml" - args.NETWORK = "sapphire-mainnet" - - one_day = 1000 * 60 * 60 * 24 - ts = 1609459200000 - - db = DuckDBDataStore(str(tmpdir)) - _make_and_fill_timestamps(db, "_temp_bronze_test1", ts - 3 * one_day) - _make_and_fill_timestamps(db, "_new_events_silver_test2", ts - 2 * one_day) - _make_and_fill_timestamps(db, "_unknown_test_raw", ts - 2 * one_day) - - mock_ppss = Mock() - - with patch("pdr_backend.cli.cli_module_lake.DuckDBDataStore", return_value=db): - do_lake_etl_drop(args, mock_ppss) - - assert "drop table _temp_bronze_test1 starting at 1609459200000" in caplog.text - assert "rows before: 5" in caplog.text - assert "rows after: 3" in caplog.text - assert ( - "drop table _new_events_silver_test2 starting at 1609459200000" in caplog.text - ) - assert "rows before: 5" in caplog.text - assert "rows after: 3" in caplog.text - assert "skipping non-etl table _unknown_test_raw" in caplog.text - assert "truncated 5 rows from 2 tables" in caplog.text - - -@enforce_types -def test_do_lake_raw_update(capsys): - args = Namespace() - ppss = Mock(spec=PPSS) - - with patch("pdr_backend.cli.cli_module_lake.GQLDataFactory"): - do_lake_raw_update(args, ppss) - - assert capsys.readouterr().out == "" - - -# -@enforce_types -def test_do_lake_etl_update(capsys): - args = Namespace() - ppss = Mock(spec=PPSS) - - with patch("pdr_backend.cli.cli_module_lake.GQLDataFactory"): - with patch("pdr_backend.cli.cli_module_lake.ETL"): - do_lake_etl_update(args, ppss) - - assert capsys.readouterr().out == "" diff --git a/pdr_backend/lake/ohlcv_data_factory.py b/pdr_backend/lake/ohlcv_data_factory.py index 620cff9dd..2c802d6c8 100644 --- a/pdr_backend/lake/ohlcv_data_factory.py +++ b/pdr_backend/lake/ohlcv_data_factory.py @@ -10,7 +10,6 @@ from pdr_backend.cli.arg_timeframe import ArgTimeframe from pdr_backend.cli.arg_threshold import ArgThreshold from pdr_backend.exchange.fetch_ohlcv import fetch_ohlcv -from pdr_backend.lake.alt_bar import get_dollar_bars, get_tick_bars, get_volume_bars from pdr_backend.lake.clean_raw_ohlcv import clean_raw_ohlcv from pdr_backend.lake.constants import TOHLCV_COLS, TOHLCV_SCHEMA_PL from pdr_backend.lake.merge_df import merge_rawohlcv_dfs @@ -95,16 +94,7 @@ def get_mergedohlcv_df(self) -> pl.DataFrame: "Cumulative Ticks", ] df = rawohlcv_dfs[str(feed.exchange)][str(feed.pair)] - if feed.threshold is not None: - logger.info(f"Get {feed.threshold.prefix} bars for %s", feed) - bars = [] - df_pandas = df.to_pandas() - bars = self._get_threshold_bars(df_pandas, feed.threshold) - bars_df = pl.DataFrame(bars, schema=columns).with_columns( - pl.col("timestamp").cast(pl.Int64) - ) - rawohlcv_dfs[str(feed.exchange)][str(feed.pair)] = bars_df - + mergedohlcv_df = merge_rawohlcv_dfs(rawohlcv_dfs) logger.info("Get historical data, across many exchanges & pairs: done.") @@ -295,14 +285,3 @@ def _volbar_filename(self, feed: ArgFeed) -> str: filename = os.path.join(self.ss.lake_dir, basename) return filename - def _get_threshold_bars(self, df_pandas: pl.DataFrame, threshold: ArgThreshold): - prefix, threshold_val = threshold.prefix, threshold.threshold() - if prefix == "vb": - bars, _ = get_volume_bars(df_pandas, threshold_val) - elif prefix == "db": - bars, _ = get_dollar_bars(df_pandas, threshold_val) - elif prefix == "tb": - bars, _ = get_tick_bars(df_pandas, threshold_val) - else: - raise ValueError(f"Unknown threshold type with prefix: {prefix}") - return bars diff --git a/pdr_backend/lake/plutil.py b/pdr_backend/lake/plutil.py index 161160b53..624ccc85c 100644 --- a/pdr_backend/lake/plutil.py +++ b/pdr_backend/lake/plutil.py @@ -15,7 +15,6 @@ from enforce_typing import enforce_types from pdr_backend.lake.constants import TOHLCV_COLS, TOHLCV_SCHEMA_PL -from pdr_backend.lake.lake_mapper import LakeMapper from pdr_backend.util.time_types import UnixTimeMs logger = logging.getLogger("lake_plutil") @@ -185,31 +184,6 @@ def text_to_df(s: str) -> pl.DataFrame: return df -@enforce_types -def _object_list_to_df(objects: List[LakeMapper], fallback_schema=None) -> pl.DataFrame: - """ - @description - Convert list objects to a dataframe using their __dict__ structure. - """ - if len(objects) == 0: - return pl.DataFrame({}, schema=fallback_schema) - - types = {type(obj) for obj in objects} - if len(types) != 1: - raise ValueError("All objects must be of the same type") - - assert hasattr(objects[0], "get_lake_schema") - - schema = objects[0].get_lake_schema() - - # Get all predictions into a dataframe - obj_dicts = [obj.__dict__ for obj in objects] - obj_df = pl.DataFrame(obj_dicts, schema=schema, orient="row") - assert obj_df.schema == schema - - return obj_df - - @enforce_types def left_join_with( target: pl.DataFrame, diff --git a/pdr_backend/lake/prediction.py b/pdr_backend/lake/prediction.py deleted file mode 100644 index 967e507d4..000000000 --- a/pdr_backend/lake/prediction.py +++ /dev/null @@ -1,328 +0,0 @@ -from collections import OrderedDict -from typing import Callable, List, Union - -from enforce_typing import enforce_types -from polars import Boolean, Float64, Int64, Utf8 - -from pdr_backend.lake.lake_mapper import LakeMapper -from pdr_backend.util.time_types import UnixTimeS - - -@enforce_types -class Prediction(LakeMapper): - # pylint: disable=too-many-instance-attributes - # pylint: disable=too-many-positional-arguments - def __init__( - self, - ID: str, - contract: str, - pair: str, - timeframe: str, - predvalue: Union[bool, None], - stake: Union[float, None], - truevalue: Union[bool, None], - timestamp: UnixTimeS, # timestamp == prediction submitted timestamp - source: str, - payout: Union[float, None], - slot: UnixTimeS, # slot/epoch timestamp - user: str, - ) -> None: - self.ID = ID - self.contract = contract - self.pair = pair - self.timeframe = timeframe - self.predvalue = predvalue - self.stake = stake - self.truevalue = truevalue - self.timestamp = timestamp - self.source = source - self.payout = payout - self.slot = slot - self.user = user - - self.check_against_schema() - - @staticmethod - def get_lake_schema(): - return OrderedDict( - { - "ID": Utf8, - "contract": Utf8, - "pair": Utf8, - "timeframe": Utf8, - "predvalue": Boolean, - "stake": Float64, - "truevalue": Boolean, - "timestamp": Int64, - "source": Utf8, - "payout": Float64, - "slot": Int64, - "user": Utf8, - } - ) - - @staticmethod - def get_lake_table_name(): - return "pdr_predictions" - - @staticmethod - def get_fetch_function() -> Callable: - # pylint: disable=import-outside-toplevel - from pdr_backend.subgraph.subgraph_predictions import ( - fetch_filtered_predictions, - ) - - return fetch_filtered_predictions - - -# ========================================================================= -# utilities for testing - - -@enforce_types -def mock_prediction(prediction_tuple: tuple) -> Prediction: - ( - contract, - pair_str, - timeframe_str, - predvalue, - stake, - truevalue, - timestamp, - source, - payout, - slot, - user, - ) = prediction_tuple - - ID = f"{contract}-{slot}-{user}" - return Prediction( - ID=ID, - contract=contract, - pair=pair_str, - timeframe=timeframe_str, - predvalue=predvalue, - stake=stake, - truevalue=truevalue, - timestamp=UnixTimeS(timestamp), - source=source, - payout=payout, - slot=UnixTimeS(slot), - user=user, - ) - - -@enforce_types -def mock_first_predictions(multiplier: int = 1) -> List[Prediction]: - return [ - mock_prediction(prediction_tuple) - for prediction_tuple in _FIRST_PREDICTION_TUPS * multiplier - ] - - -@enforce_types -def mock_second_predictions() -> List[Prediction]: - return [ - mock_prediction(prediction_tuple) - for prediction_tuple in _SECOND_PREDICTION_TUPS - ] - - -@enforce_types -def mock_daily_predictions() -> List[Prediction]: - return [ - mock_prediction(prediction_tuple) for prediction_tuple in _DAILY_PREDICTION_TUPS - ] - - -# In subgraph, timestamp will be in seconds -_FIRST_PREDICTION_TUPS = [ - ( - "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "ADA/USDT", - "5m", - True, - 0.0500, - False, - 1701503000, # Dec 02 2023 - "binance", - 0.0, - 1701503100, # Dec 02 2023 - "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152", - "BTC/USDT", - "5m", - True, - 0.0500, - True, - 1701589400, # Dec 03 2023 - "binance", - 0.0, - 1701589500, # Dec 03 2023 - "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd", - ), -] - -_SECOND_PREDICTION_TUPS = [ - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "ETH/USDT", - "5m", - True, - 0.0500, - True, - 1701675800, # Dec 04 - "binance", - 0.0500, - 1701675900, # Dec 04 - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd", - "BTC/USDT", - "1h", - True, - 0.0500, - False, - 1701503100, # Dec 02 2023 - "binance", - 0.0, - 1701503000, # Dec 02 2023 - "0xbbbb4cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "ADA/USDT", - "5m", - True, - 0.0500, - True, - 1701589400, # Dec 03 2023 - "binance", - 0.0500, - 1701589500, # Dec 03 2023 - "0xbbbb4cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd", - "BNB/USDT", - "1h", - True, - 0.0500, - True, - 1701675800, # Dec 04 2023 - "kraken", - 0.0500, - 1701675900, # Dec 04 2023 - "0xbbbb4cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "ETH/USDT", - "1h", - True, - None, - False, - 1701589400, - "binance", - 0.0, - 1701589500, - "0xcccc4cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "ETH/USDT", - "5m", - True, - 0.0500, - True, - 1701675800, - "binance", - 0.0500, - 1701675900, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), -] - -_DAILY_PREDICTION_TUPS = [ - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "ETH/USDT", - "5m", - True, - 0.0500, - True, - 1698865200, # Nov 01 2023 19:00:00 GMT - "binance", - 0.0500, - 1698865200, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0xe66421fd29fc2d27d0724f161f01b8cbdcd69690", - "BTC/USDT", - "1h", - True, - 0.0500, - False, - 1698951600, # Nov 02 2023 19:00:00 GMT - "binance", - 0.0, - 1698951600, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "ADA/USDT", - "5m", - True, - 0.0500, - True, - 1699038000, # Nov 03 2023 19:00:00 GMT - "binance", - 0.0500, - 1699038000, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd", - "BNB/USDT", - "1h", - True, - 0.0500, - True, - 1699124400, # Nov 04 2023 19:00:00 GMT - "kraken", - 0.0500, - 1699124400, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0xaa6515c138183303b89b98aea756b54f711710c5", - "ETH/USDT", - "1h", - True, - None, - False, - 1699214400, # Nov 05 2023 19:00:00 GMT - "binance", - 0.0, - 1701589500, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "ETH/USDT", - "5m", - True, - 0.0500, - True, - 1699300800, # Nov 06 2023 19:00:00 GMT - "binance", - 0.0500, - 1699300800, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), -] diff --git a/pdr_backend/lake/test/conftest.py b/pdr_backend/lake/test/conftest.py index d44ecd0d5..1f1ab5b84 100644 --- a/pdr_backend/lake/test/conftest.py +++ b/pdr_backend/lake/test/conftest.py @@ -1,82 +1,6 @@ -import os -from typing import List - -import polars as pl import pytest -from enforce_typing import enforce_types from pdr_backend.lake.csv_data_store import CSVDataStore -from pdr_backend.lake.duckdb_data_store import DuckDBDataStore -from pdr_backend.lake.etl import ETL -from pdr_backend.lake.payout import Payout, mock_payout, mock_payouts -from pdr_backend.lake.plutil import _object_list_to_df -from pdr_backend.lake.prediction import ( - Prediction, - mock_daily_predictions, - mock_first_predictions, - mock_prediction, - mock_second_predictions, -) -from pdr_backend.lake.slot import Slot, mock_slot, mock_slots -from pdr_backend.lake.subscription import mock_subscriptions -from pdr_backend.lake.table import Table -from pdr_backend.lake.test.resources import ( - _gql_data_factory, - get_filtered_timestamps_df, - create_sample_etl, - create_sample_raw_data, -) -from pdr_backend.lake.trueval import Trueval, mock_trueval, mock_truevals -from pdr_backend.util.time_types import UnixTimeMs - - -@pytest.fixture(autouse=True) -def clean_up_persistent_data_store(tmpdir): - # Clean up duckDB - db = DuckDBDataStore(str(tmpdir)) - - # Select tables from duckdb - table_names = db.get_table_names() - - # Drop the tables - for table in table_names: - db.execute_sql(f"DROP TABLE {table}") - - db.duckdb_conn.close() - - -@pytest.fixture() -def sample_payouts(): - return mock_payouts() - - -@pytest.fixture() -def sample_daily_predictions(): - return mock_daily_predictions() - - -@pytest.fixture() -def sample_subscriptions(): - return mock_subscriptions() - - -@pytest.fixture() -def sample_truevals(): - return mock_truevals() - - -@pytest.fixture() -def sample_slots(): - return mock_slots() - - -@pytest.fixture() -def _get_test_DuckDB(): - def create_duckdb_datastore(tmpdir): - return DuckDBDataStore(str(tmpdir)) - - return create_duckdb_datastore - @pytest.fixture() def _get_test_CSVDataStore(): @@ -85,602 +9,3 @@ def create_csv_datastore_identifier(tmpdir, name): return create_csv_datastore_identifier - -# pylint: disable=line-too-long -_ETL_PAYOUT_TUPS = [ - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1698865200-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", # user - 1698865202, # timestamp - "ETH/USDT", # token - 1698865200, # slot # Nov 01 2023 19:00:00 GMT - 0.0, # payout - True, # predictedValue - False, # trueValue - 5.464642, # stake - ), - ( - "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1698951600-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", # user - 1698951602, # timestamp - "BTC/USDT", # token - 1698951600, # slot # Nov 02 2023 19:00:00 GMT - 10.928642693189679, # payout - False, # predictedValue - False, # trueValue - 5.46464, # stake - ), - ( - "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1699038000-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", # user - 1699038002, # timestamp - "ADA/USDT", # token - 1699038000, # slot # Nov 03 2023 19:00:00 GMT - 7.041434095860760067, # payout - False, # predictedValue - False, # trueValue - 3.4600000000000004, # stake - ), - ( - "0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1699124400-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", # user - 1699124402, # timestamp - "BNB/USDT", - 1699124400, # slot # Nov 04 2023 19:00:00 GMT - 7.160056238874628619, # payout - True, # predictedValue - True, # trueValue - 3.46000, # stake - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1699300800-0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", # user - 1699300802, # timestamp - "ETH/USDT", # token - 1699300800, # slot # Nov 06 2023 19:00:00 GMT - 0.0, # payout - True, # predictedValue - False, # trueValue - 3.4600000000000004, # stake - ), -] - - -# pylint: disable=line-too-long -_ETL_PREDICTIONS_TUPS = [ - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "ETH/USDT", - "5m", - None, - None, - None, - 1698865100, # Nov 01 2023 19:00:00 GMT - "binance", - None, - 1698865200, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152", - "BTC/USDT", - "1h", - None, - None, - None, - 1698951500, # Nov 02 2023 19:00:00 GMT - "binance", - None, - 1698951600, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "ADA/USDT", - "5m", - None, - None, - None, - 1699037900, # Nov 03 2023 19:00:00 GMT - "binance", - None, - 1699038000, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd", - "BNB/USDT", - "1h", - None, - None, - None, - 1699124300, # Nov 04 2023 19:00:00 GMT - "kraken", - None, - 1699124400, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "ETH/USDT", - "1h", - None, - None, - None, - 1699214300, # Nov 05 2023 19:00:00 GMT - "binance", - None, - 1699214400, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "ETH/USDT", - "5m", - None, - None, - None, - 1699300700, # Nov 06 2023 19:00:00 GMT - "binance", - None, - 1699300800, - "0xd2a24cb4ff2584bad80ff5f109034a891c3d88dd", - ), -] - - -# pylint: disable=line-too-long -_ETL_TRUEVAL_TUPS = [ - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1698865200", - 1698865201, - "ETH/USDT", - True, - 1698865200, # Nov 01 2023 19:00:00 GMT - 0.928046, # revenue - 15.629683, # roundSumStakesUp - 34.314841, # roundSumStakes - ), - ( - "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1698951600", - 1698951601, - "BTC/USDT", - True, - 1698951600, # Nov 02 2023 19:00:00 GMT - 0.92804, # revenue - 45.62968, # roundSumStakesUp - 72.31484, # roundSumStakes - ), - ( - "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1699038000", - 1699038001, - "ADA/USDT", - False, - 1699038000, # Nov 03 2023 19:00:00 GMT - 0.93671, # revenue - 47.61968, # roundSumStakesUp - 72.31484, # roundSumStakes - ), - ( - "0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1699124400", - 1699124401, - "BNB/USDT", - True, - 1699124400, # Nov 04 2023 19:00:00 GMT - 0.92804, # revenue - 38.09065, # roundSumStakesUp - 93.31532, # roundSumStakes - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1699214300", - 1699214301, - "ETH/USDT", - False, - 1699214300, # Nov 05 2023 19:00:00 GMT - 0.92804, # revenue - 47.71968, # roundSumStakesUp - 74.30484, # roundSumStakes - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1699300800", - 1699300801, - "ETH/USDT", - False, - 1699300800, # Nov 06 2023 19:00:00 GMT - 0.92804, # revenue - 47.71968, # roundSumStakesUp - 74.30484, # roundSumStakes - ), -] - - -# pylint: disable=line-too-long -_ETL_SLOT_TUPS = [ - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1698865200", - 1698865200, - 1698865200, # Nov 01 2023 19:00:00 GMT - None, - None, - None, - ), - ( - "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1698951600", - 1698951600, - 1698951600, # Nov 02 2023 19:00:00 GMT - None, - None, - None, - ), - ( - "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1699038000", - 1699038000, - 1699038000, # Nov 03 2023 19:00:00 GMT - None, - None, - None, - ), - ( - "0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1699124400", - 1699124400, - 1699124400, # Nov 04 2023 19:00:00 GMT - None, - None, - None, - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1699214300", - 1699214300, - 1699214300, # Nov 05 2023 19:00:00 GMT - None, - None, - None, - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1699300800", - 1699300800, - 1699300800, # Nov 06 2023 19:00:00 GMT - None, - None, - None, - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1699315100", - 1699315100, - 1699315100, # Nov 07 2023 19:00:00 GMT - None, - None, - None, - ), - ( - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1699401600", - 1699401600, - 1699401600, # Nov 08 2023 19:00:00 GMT - None, - None, - None, - ), -] - - -@enforce_types -def mock_etl_payouts() -> List[Payout]: - return [mock_payout(payout_tuple) for payout_tuple in _ETL_PAYOUT_TUPS] - - -@enforce_types -def mock_etl_predictions() -> List[Prediction]: - return [ - mock_prediction(prediction_tuple) for prediction_tuple in _ETL_PREDICTIONS_TUPS - ] - - -@enforce_types -def mock_etl_truevals() -> List[Trueval]: - return [mock_trueval(trueval_tuple) for trueval_tuple in _ETL_TRUEVAL_TUPS] - - -@enforce_types -def mock_etl_slots() -> List[Slot]: - return [mock_slot(slot_tuple) for slot_tuple in _ETL_SLOT_TUPS] - - -@pytest.fixture() -def _gql_datafactory_etl_payouts_df(): - _payouts = mock_etl_payouts() - payouts_df = _object_list_to_df(_payouts) - payouts_df = payouts_df.with_columns( - [pl.col("timestamp").mul(1000).alias("timestamp")] - ) - - return payouts_df - - -@pytest.fixture() -def _gql_datafactory_etl_predictions_df(): - _predictions = mock_etl_predictions() - predictions_df = _object_list_to_df(_predictions) - predictions_df = predictions_df.with_columns( - [pl.col("timestamp").mul(1000).alias("timestamp")] - ) - - return predictions_df - - -@pytest.fixture() -def _gql_datafactory_etl_truevals_df(): - _truevals = mock_etl_truevals() - truevals_df = _object_list_to_df(_truevals) - truevals_df = truevals_df.with_columns( - [pl.col("timestamp").mul(1000).alias("timestamp")] - ) - - return truevals_df - - -@pytest.fixture() -def _gql_datafactory_etl_slots_df(): - _slots = mock_etl_slots() - slots_df = _object_list_to_df(_slots) - slots_df = slots_df.with_columns([pl.col("timestamp").mul(1000).alias("timestamp")]) - print("_gql_datafactory_etl_slots_df", slots_df) - return slots_df - - -@pytest.fixture() -def _mock_fetch_gql(): - # return a callable that returns a list of objects - def fetch_function( - network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config - ): - print( - f"{network}, {st_ut}, {fin_ut}, {save_backoff_limit}, {pagination_limit}, {config}" - ) - return mock_daily_predictions() - - return fetch_function - - -@pytest.fixture() -def _mock_fetch_gql_predictions(): - # return a callable that returns a list of objects - def fetch_function( - network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config - ): - print( - f"{network}, {st_ut}, {fin_ut}, {save_backoff_limit}, {pagination_limit}, {config}" - ) - return mock_daily_predictions() - - return fetch_function - - -@pytest.fixture() -def _mock_fetch_gql_subscriptions(): - # return a callable that returns a list of objects - def fetch_function( - network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config - ): - print( - f"{network}, {st_ut}, {fin_ut}, {save_backoff_limit}, {pagination_limit}, {config}" - ) - return mock_subscriptions() - - return fetch_function - - -@pytest.fixture() -def _mock_fetch_gql_truevals(): - # return a callable that returns a list of objects - def fetch_function( - network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config - ): - print( - f"{network}, {st_ut}, {fin_ut}, {save_backoff_limit}, {pagination_limit}, {config}" - ) - return mock_truevals() - - return fetch_function - - -@pytest.fixture() -def _mock_fetch_gql_slots(): - # return a callable that returns a list of objects - def fetch_function( - network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config - ): - print( - f"{network}, {st_ut}, {fin_ut}, {save_backoff_limit}, {pagination_limit}, {config}" - ) - return mock_slots() - - return fetch_function - - -@pytest.fixture() -def _mock_fetch_gql_payouts(): - # return a callable that returns a list of objects - def fetch_function( - network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config - ): - print( - f"{network}, {st_ut}, {fin_ut}, {save_backoff_limit}, {pagination_limit}, {config}" - ) - return mock_payouts() - - return fetch_function - - -@pytest.fixture() -def _mock_fetch_empty_gql(): - # return a callable that returns a list of objects - def fetch_function( - network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config - ): - print( - f"{network}, {st_ut}, {fin_ut}, {save_backoff_limit}, {pagination_limit}, {config}" - ) - return mock_first_predictions(0) - - return fetch_function - - -@pytest.fixture() -def _gql_datafactory_first_predictions_df(): - _predictions = mock_first_predictions() - predictions_df = _object_list_to_df(_predictions) - predictions_df = predictions_df.with_columns( - [pl.col("timestamp").mul(1000).alias("timestamp")] - ) - - return predictions_df - - -@pytest.fixture() -def _gql_datafactory_1k_predictions_df(): - _predictions = mock_first_predictions(500) - predictions_df = _object_list_to_df(_predictions) - predictions_df = predictions_df.with_columns( - [pl.col("timestamp").mul(1000).alias("timestamp")] - ) - - return predictions_df - - -@pytest.fixture() -def _gql_datafactory_second_predictions_df(): - _predictions = mock_second_predictions() - predictions_df = _object_list_to_df(_predictions) - predictions_df = predictions_df.with_columns( - [pl.col("timestamp").mul(1000).alias("timestamp")] - ) - - return predictions_df - - -@pytest.fixture(autouse=True) -def clean_up_test_folder(): - def _clean_up(tmpdir): - for root, dirs, files in os.walk(tmpdir): - for file in files: - os.remove(os.path.join(root, file)) - for directory in dirs: - # clean up the directory - _clean_up(os.path.join(root, directory)) - os.rmdir(os.path.join(root, directory)) - - return _clean_up - - -@enforce_types -def get_table_dfs( - st_timestr: str, - fin_timestr: str, - _gql_datafactory_etl_payouts_df, - _gql_datafactory_etl_predictions_df, - _gql_datafactory_etl_truevals_df, - _gql_datafactory_etl_slots_df, -): - predictions = get_filtered_timestamps_df( - _gql_datafactory_etl_predictions_df, st_timestr, fin_timestr - ) - truevals = get_filtered_timestamps_df( - _gql_datafactory_etl_truevals_df, st_timestr, fin_timestr - ) - payouts = get_filtered_timestamps_df( - _gql_datafactory_etl_payouts_df, st_timestr, fin_timestr - ) - slots = get_filtered_timestamps_df( - _gql_datafactory_etl_slots_df, st_timestr, fin_timestr - ) - - return { - "pdr_predictions": predictions, - "pdr_truevals": truevals, - "pdr_payouts": payouts, - "pdr_slots": slots, - } - - -@pytest.fixture -def setup_data( - _gql_datafactory_etl_payouts_df, - _gql_datafactory_etl_predictions_df, - _gql_datafactory_etl_truevals_df, - _gql_datafactory_etl_slots_df, - _get_test_DuckDB, - tmpdir, - request, -): - st_timestr = request.param[0] - fin_timestr = request.param[1] - - table_dfs = get_table_dfs( - st_timestr, - fin_timestr, - _gql_datafactory_etl_payouts_df, - _gql_datafactory_etl_predictions_df, - _gql_datafactory_etl_truevals_df, - _gql_datafactory_etl_slots_df, - ) - - ppss, gql_data_factory = _gql_data_factory( - tmpdir, - "binanceus ETH/USDT h 5m", - st_timestr, - fin_timestr, - ) - - gql_tables = { - "pdr_predictions": Table.from_dataclass(Prediction), - "pdr_truevals": Table.from_dataclass(Trueval), - "pdr_payouts": Table.from_dataclass(Payout), - "pdr_slots": Table.from_dataclass(Slot), - } - - gql_tables["pdr_predictions"].append_to_storage(table_dfs["pdr_predictions"], ppss) - gql_tables["pdr_truevals"].append_to_storage(table_dfs["pdr_truevals"], ppss) - gql_tables["pdr_payouts"].append_to_storage(table_dfs["pdr_payouts"], ppss) - gql_tables["pdr_slots"].append_to_storage(table_dfs["pdr_payouts"], ppss) - - assert ppss.lake_ss.st_timestamp == UnixTimeMs.from_timestr(st_timestr) - assert ppss.lake_ss.fin_timestamp == UnixTimeMs.from_timestr(fin_timestr) - - # provide the setup data to the test - etl = ETL(ppss, gql_data_factory) - db = _get_test_DuckDB(tmpdir) - - assert etl is not None - assert etl.gql_data_factory == gql_data_factory - - _records = db.query_data("SELECT * FROM pdr_predictions") - assert len(_records) == 5 - - yield etl, db, gql_tables - - -@pytest.fixture() -def _sample_raw_data(request): - """ - Load sample raw data for testing the ETL pipeline - """ - - return create_sample_raw_data(str(request.node.fspath)) - - -@pytest.fixture() -def _sample_etl(_sample_raw_data, _get_test_DuckDB, tmpdir, request): - st_timestr = request.param[0] - fin_timestr = request.param[1] - enforce_null_values = request.param[2] - - etl, db, gql_tables = create_sample_etl( - _sample_raw_data, - _get_test_DuckDB, - tmpdir, - st_timestr, - fin_timestr, - enforce_null_values, - ) - - yield etl, db, gql_tables diff --git a/pdr_backend/lake/test/pdr_payouts.csv b/pdr_backend/lake/test/pdr_payouts.csv deleted file mode 100644 index 7f2e3bc5d..000000000 --- a/pdr_backend/lake/test/pdr_payouts.csv +++ /dev/null @@ -1,2350 +0,0 @@ -ID,token,user,slot,timestamp,payout,predvalue,truevalue,stake -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,285.0,true,true,285.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,315.0,false,false,315.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,1151.487779582412,true,true,580.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,520.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721951700-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721951700,1721952155000,0.0,true,true,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,903.6813285699579,true,true,456.88381004516214 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,443.11618995483786 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,0.0,true,true,305.8358662613983 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,590.1578680049753,false,false,294.1641337386017 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,903.2986099547117,true,true,451.3100436681221 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,448.6899563318779 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721951700-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721951700,1721952155000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,0.0,true,true,286.3636363636364 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,613.0090534283988,false,false,313.6363636363636 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,0.0,true,true,520.7720588235294 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,1149.594534534197,false,false,579.2279411764706 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,1145.3408424311808,true,true,577.1111111111111 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,522.8888888888889 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,1064.8522368127383,true,true,529.6714579055441 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,570.3285420944558 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,595.3539662826878,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,305.38226299694185 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,1703.6573013220275,true,true,852.2838499184337 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,847.7161500815663 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,1124.2680300414258,true,true,564.2857142857142 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,535.7142857142857 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,0.0,true,true,295.0007878978885 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,608.9410925670903,false,false,304.9992121021116 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,898.8078212913912,true,true,447.44801512287336 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,452.55198487712664 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,0.0,true,true,836.7647058823529 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,1720.9608410092287,false,false,863.235294117647 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,0.0,true,true,574.4074311338887 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,1059.1745285930074,false,false,525.5925688661114 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721951700-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721951700,1721952155000,0.0,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,889.4953849115612,true,true,441.28474042999477 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,458.71525957000523 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,901.7094672615733,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,451.0927790872081 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,1131.8420966779447,true,true,568.69918699187 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,0.0,false,false,531.30081300813 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952000,1721952155000,0.0,true,true,578.2786885245902 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952000,1721952155000,1050.879695215064,false,false,521.7213114754098 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721952000,1721952166000,610.35,false,false,610.35 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721952000,1721952166000,0.0,false,false,424.54 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721952000,1721952172000,0.0,false,false,486.49 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721952000,1721952190000,610.35,true,true,610.35 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,3.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,3.0,true,true,3.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,542.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,1076.045476782185,true,true,542.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,5.933771182309769,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721952000,1721952190000,839.7077392459298,true,true,424.54 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,6.01865897624417,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,6.00451035354511,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,5.863564858880337,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,0.0,true,true,3.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,1075.708185713548,false,false,542.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,0.0,true,true,542.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,542.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,1075.658958294051,true,true,542.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,542.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,1089.6375550132566,true,true,542.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,6.062302687599302,true,true,3.0 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,542.0 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,1083.4210426548732,true,true,542.0 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,542.0 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,1079.866558475233,true,true,542.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,5.989599989817886,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,6.026227344273078,true,true,3.0 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,1080.540592099423,false,false,542.0 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,0.0,true,true,542.0 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,1092.2387957955477,false,false,542.0 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,0.0,true,true,542.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,6.047084592443575,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,6.026030047554612,true,true,3.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,0.0,false,false,542.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,1078.7045778003123,true,true,542.0 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952000,1721952190000,1091.7261424414908,false,false,542.0 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952000,1721952190000,0.0,true,true,542.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721952000,1721952196000,1211.2350567725518,false,false,603.74 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721952000,1721952196000,0.0,false,false,458.52 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721952000,1721952196000,781.7695574183191,false,false,399.98 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721952000,1721952196000,0.0,false,false,552.78 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721952000,1721952196000,1101.9466407933953,false,false,551.93 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721952000,1721952196000,0.0,false,false,471.52 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721952000,1721952196000,0.0,false,false,465.71 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721952000,1721952196000,977.201119278281,true,true,486.49 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721952000,1721952214000,1117.0398932170474,true,true,552.78 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721952000,1721952214000,0.0,true,true,551.93 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721952000,1721952219000,0.0,true,true,603.74 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721952000,1721952219000,917.7293624358347,true,true,458.52 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721952000,1721952219000,0.0,true,true,399.98 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721952000,1721952219000,947.1622391238807,true,true,471.52 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721952000,1721952219000,938.7292551822991,true,true,465.71 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721952000,1721952237000,6.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721952000,1721952237000,7.911694909746359,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721952000,1721952254000,12.03731795248834,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721952000,1721952254000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721952000,1721952254000,19.54521619626779,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721952000,1721952254000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721952000,1721952254000,0.0,true,true,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721952000,1721952254000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,5.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,5.0,false,false,5.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,1675.623838790715,true,true,843.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,843.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,9.889618637182949,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,10.031098293740284,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,10.007517255908517,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,9.772608098133896,false,false,5.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,0.0,true,true,843.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,1673.1033220600016,false,false,843.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,1673.0267561658393,true,true,843.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,843.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,1694.7683743102864,true,true,843.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,843.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,10.103837812665503,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,5.0 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,1685.099518372801,true,true,843.0 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,843.0 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,1679.5710494365708,true,true,843.0 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,843.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,9.982666649696478,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,10.04371224045513,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,5.0 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,0.0,true,true,843.0 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,1680.6194080070363,false,false,843.0 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,0.0,true,true,843.0 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,1698.8142156008244,false,false,843.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,10.078474320739291,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721952000,1721952260000,10.078474320739291,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,10.04338341259102,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721952000,1721952260000,0.0,false,false,6.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,1677.7637621506703,true,true,843.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,0.0,false,false,843.0 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952000,1721952260000,0.0,true,true,843.0 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952000,1721952260000,1698.0168599228352,false,false,843.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,591.4740752713924,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,0.0,false,false,307.908787541713 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,0.0,true,true,447.8417266187051 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,905.6498951379149,false,false,452.1582733812949 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,0.0,true,true,292.7027027027027 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,607.9351622576017,false,false,307.2972972972973 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,901.4104682036968,true,true,449.4587280108254 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,0.0,false,false,450.5412719891746 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,583.6046872906127,true,true,290.9794742527908 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,0.0,false,false,309.02052574720926 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,294.61773700305815,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,305.38226299694185,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,591.0296167212737,true,true,295.0007878978885 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,0.0,false,false,304.9992121021116 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,894.3622274237665,true,true,443.19899244332487 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,0.0,false,false,456.801007556675 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,590.716432142656,true,true,290.3486529318542 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,0.0,false,false,309.6513470681458 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952300,1721952442000,591.1117983021196,true,true,291.18518518518516 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952300,1721952442000,0.0,false,false,308.8148148148148 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,6.074890822220745,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,6.008846559626262,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,5.9355486238645305,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,6.016640096364884,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,6.016967576038729,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,3.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,3.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,6.010454625556992,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,6.053909706517226,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,6.103521674832421,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952300,1721952448000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952300,1721952448000,6.0900605014591305,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721952300,1721952454000,0.0,false,false,611.06 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721952300,1721952461000,852.1345601091323,false,false,425.44 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721952300,1721952461000,0.0,false,false,401.51 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721952300,1721952461000,551.46,false,false,551.46 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721952300,1721952461000,0.0,false,false,472.68 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721952300,1721952461000,0.0,false,false,487.94 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952000,1721952467000,3.9563511415516275,true,true,2.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721952300,1721952467000,1197.9466074952845,false,false,605.42 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721952300,1721952467000,0.0,false,false,458.86 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952000,1721952467000,0.0,true,true,4.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721952300,1721952467000,0.0,false,false,550.41 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952000,1721952467000,0.0,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721952300,1721952467000,0.0,false,false,464.14 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721952300,1721952484000,1237.3742619420696,true,true,611.06 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721952300,1721952490000,0.0,true,true,425.44 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721952300,1721952490000,0.0,true,true,605.42 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721952300,1721952490000,920.2651582059968,true,true,458.86 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721952300,1721952490000,805.2908838184367,true,true,401.51 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721952300,1721952490000,551.46,true,true,551.46 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721952300,1721952490000,1102.7381101509413,true,true,550.41 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721952300,1721952490000,953.8540133588542,true,true,472.68 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721952300,1721952490000,944.2961833855733,true,true,464.14 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721952300,1721952490000,990.5280403606561,true,true,487.94 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,10.124818037034574,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,10.014744266043769,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,9.893891327057165,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,10.027733493941472,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,10.028279293397881,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,5.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,5.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,10.017424375928321,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,10.089849510862043,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,10.172536124720702,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952300,1721952496000,10.150100835765217,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952300,1721952496000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721952300,1721952549000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721952300,1721952549000,0.0,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721952300,1721952549000,11.872669592468599,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721952300,1721952549000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721952300,1721952549000,20.056558586795763,true,true,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721952300,1721952549000,7.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721952300,1721952555000,14.024394126299649,true,true,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721952300,1721952555000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721952300,1721952555000,0.0,false,false,6.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721952300,1721952567000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.20373869569835,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.122243217419009,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.018571340708842,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.011142804425305,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.161936735573331,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.097162041343998,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.060863580038626,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.036518148023176,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.100017612129445,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.060010567277667,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.103823247757049,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.062293948654229,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.099505985693867,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.05970359141632,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.183383548925448,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.11003012935527,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,10.172319168833628,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,6.103391501300177,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952600,1721952689000,3.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721952600,1721952689000,5.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721952600,1721952689000,5.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952600,1721952689000,3.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721952600,1721952730000,0.0,false,false,613.26 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721952600,1721952730000,0.0,false,false,426.32 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721952600,1721952730000,0.0,false,false,604.12 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721952600,1721952730000,0.0,false,false,457.13 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721952600,1721952730000,0.0,false,false,401.55 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721952600,1721952730000,0.0,false,false,552.9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,581.6131056548058,true,true,285.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,315.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,893.2925795245337,true,true,445.8183453237409 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,454.18165467625903 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,587.1031031568878,true,true,288.8736263736264 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,311.12637362637366 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,899.2661506760438,true,true,446.91300280636113 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,453.0869971936388 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,578.4555541492318,true,true,286.3636363636364 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,313.6363636363636 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,595.3531080666143,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721952600,1721952742000,0.0,false,false,551.14 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,595.8724446318263,true,true,295.0007878978885 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,304.9992121021116 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,585.3566687578826,true,true,287.4077490774908 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,312.59225092250927 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721952600,1721952742000,0.0,false,false,473.05 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721952600,1721952742000,0.0,false,false,465.1 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,590.7038335727445,true,true,290.3486529318542 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,0.0,false,false,309.6513470681458 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952600,1721952742000,448.9072209127919,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952600,1721952742000,451.0927790872081,false,false,451.0927790872081 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721952600,1721952742000,487.63,false,false,487.63 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721952600,1721952754000,1251.508958504794,true,true,613.26 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952300,1721952754000,0.0,true,true,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721952600,1721952754000,854.2234667941987,true,true,426.32 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721952600,1721952754000,1227.805844138912,true,true,604.12 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721952600,1721952754000,919.8245136686115,true,true,457.13 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952300,1721952754000,8.022866218638711,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721952600,1721952754000,811.1324144301158,true,true,401.55 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721952600,1721952754000,1117.2807747369745,true,true,552.9 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952300,1721952754000,0.0,false,false,2.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721952600,1721952760000,1113.2483457910635,true,true,551.14 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721952600,1721952760000,963.4499175638367,true,true,473.05 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721952600,1721952760000,946.2291290849041,true,true,465.1 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721952600,1721952760000,487.63,true,true,487.63 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000-0xeee327ce9510fb16ad75fd46de121026b18c3bdb,ETH/USDT,0xeee327ce9510fb16ad75fd46de121026b18c3bdb,1721952000,1721952801000,0.0,false,false,1797.16 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000-0x6257c5e83883bfc84082eb0cd34a04098cc792ef,SOL/USDT,0x6257c5e83883bfc84082eb0cd34a04098cc792ef,1721952000,1721952807000,3690.5656524495353,false,false,1856.78 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000-0x84cf52b231524d6ee0def6f2b7ce848f22a94f2b,XRP/USDT,0x84cf52b231524d6ee0def6f2b7ce848f22a94f2b,1721952000,1721952819000,0.0,false,false,2123.24 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000-0x8e3652d395a2c698553dd98cb967127f3c559409,BNB/USDT,0x8e3652d395a2c698553dd98cb967127f3c559409,1721952000,1721952819000,3623.3795585512557,false,false,1817.49 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000-0x769057efa29f64d6924af1c9e3c31af9e1732600,SOL/USDT,0x769057efa29f64d6924af1c9e3c31af9e1732600,1721952000,1721952825000,0.0,true,true,1856.78 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000-0x12e21c6ec4841a5b1d725ac8a8509e67829d68bf,DOT/USDT,0x12e21c6ec4841a5b1d725ac8a8509e67829d68bf,1721952000,1721952825000,0.0,false,false,1994.14 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000-0x94b74afa319667e3152f0079a5959c1ede62ad83,ETH/USDT,0x94b74afa319667e3152f0079a5959c1ede62ad83,1721952000,1721952825000,3580.6143620467706,true,true,1797.16 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000-0xbbe7d8db067d3aa810b0b4a3098ce570fe4426d1,LTC/USDT,0xbbe7d8db067d3aa810b0b4a3098ce570fe4426d1,1721952000,1721952825000,4151.0973024206105,false,false,2060.86 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000-0xa17fd219faa6b47d486eaa87107c181480afa038,DOGE/USDT,0xa17fd219faa6b47d486eaa87107c181480afa038,1721952000,1721952831000,0.0,false,false,1874.12 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000-0x4411763f0f167655150f8866ba3e9d4f07c69148,XRP/USDT,0x4411763f0f167655150f8866ba3e9d4f07c69148,1721952000,1721952843000,4221.10261866261,true,true,2123.24 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721952600,1721952843000,8.014857072567073,true,true,4.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000-0x9660fafb6023e20f46d3c406005382541c14767a,BTC/USDT,0x9660fafb6023e20f46d3c406005382541c14767a,1721952000,1721952843000,0.0,false,false,1554.48 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000-0x7cc21e12728bb9702699c76f0805266427423ba1,ADA/USDT,0x7cc21e12728bb9702699c76f0805266427423ba1,1721952000,1721952843000,0.0,false,false,2038.84 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000-0x3b58b52be0413e4322b785df2e67b5aaf99a32b5,BNB/USDT,0x3b58b52be0413e4322b785df2e67b5aaf99a32b5,1721952000,1721952843000,0.0,true,true,1817.49 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000-0x8aeeda98786f4226842b4ecaf91192889670c52f,TRX/USDT,0x8aeeda98786f4226842b4ecaf91192889670c52f,1721952000,1721952843000,4097.6890128832265,false,false,2033.39 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721952600,1721952848000,0.0,false,false,6.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000-0x1a418e9206c9b2ba511d844e97a601b6fabcf8ef,DOT/USDT,0x1a418e9206c9b2ba511d844e97a601b6fabcf8ef,1721952000,1721952848000,4012.4201040229736,true,true,1994.14 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000-0x7641f8996b475321c44e389855b5f59b35a04515,LTC/USDT,0x7641f8996b475321c44e389855b5f59b35a04515,1721952000,1721952848000,0.0,true,true,2060.86 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721952600,1721952854000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721952600,1721952854000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721952600,1721952854000,20.20003522425889,true,true,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721952600,1721952854000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721952600,1721952854000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721952600,1721952854000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721952600,1721952854000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721952600,1721952854000,6.0,false,false,6.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000-0x06ad44372d17d21f736bede6eb0f727aeb9b9d45,DOGE/USDT,0x06ad44372d17d21f736bede6eb0f727aeb9b9d45,1721952000,1721952854000,3729.9295633710726,true,true,1874.12 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000-0xecefd19314ee798921b053694a23974e406da47b,BTC/USDT,0xecefd19314ee798921b053694a23974e406da47b,1721952000,1721952866000,3089.9603440819064,true,true,1554.48 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000-0xe1d3f7fe664e9b936a3b8f62d17ab54c299bdfa4,ADA/USDT,0xe1d3f7fe664e9b936a3b8f62d17ab54c299bdfa4,1721952000,1721952866000,4075.502137650298,true,true,2038.84 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000-0x6adab3b1e5eee7c427d468147533a48b7c6e02d1,TRX/USDT,0x6adab3b1e5eee7c427d468147533a48b7c6e02d1,1721952000,1721952866000,0.0,true,true,2033.39 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.123019675103995,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.1083204027713025,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.071725981057468,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.084448335322025,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.160352214882688,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,5.941922629517888,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.132284590632821,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.11073187808108,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.147218123453043,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721952900,1721953019000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721952900,1721953019000,6.139198577081212,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721952900,1721953025000,0.0,false,false,487.87 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,581.6868691348795,true,true,285.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,315.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721952900,1721953043000,0.0,false,false,612.54 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721952900,1721953043000,0.0,false,false,424.7 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,591.4851673176217,true,true,290.49810503519217 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,309.50189496480783 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721952900,1721953043000,0.0,false,false,604.5 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,592.40353490858,true,true,292.7027027027027 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,307.2972972972973 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,591.9635376340798,true,true,291.87372708757636 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,308.12627291242364 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721952900,1721953043000,0.0,false,false,457.56 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,585.2334604138554,true,true,285.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,315.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721952900,1721953043000,0.0,false,false,398.88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,0.0,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,604.8525930516373,false,false,305.38226299694185 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721952900,1721953043000,1097.88904425602,false,false,554.31 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721952900,1721953043000,0.0,false,false,551.1 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,582.567036110118,true,true,285.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,315.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,585.4238980984504,true,true,287.4077490774908 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,312.59225092250927 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721952900,1721953043000,0.0,false,false,473.18 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721952900,1721953043000,0.0,false,false,466.16 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,583.9857217280392,true,true,285.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,315.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721952900,1721953043000,998.3769366002036,true,true,487.87 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721952900,1721953043000,583.2238648227152,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721952900,1721953043000,0.0,false,false,315.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952600,1721953060000,4.007428536283537,true,true,2.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952600,1721953060000,8.080014089703557,true,true,4.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952600,1721953060000,0.0,false,false,2.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721952900,1721953066000,1250.1981572627337,true,true,612.54 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721952900,1721953066000,864.7345583523241,true,true,424.7 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721952900,1721953066000,1223.4527851830796,true,true,604.5 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721952900,1721953066000,928.0000601033154,true,true,457.56 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721952900,1721953066000,819.0804304908022,true,true,398.88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721952900,1721953066000,0.0,true,true,554.31 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721952900,1721953066000,1126.5006792992492,true,true,551.1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721952900,1721953066000,963.8253700234685,true,true,473.18 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721952900,1721953066000,955.1957334762902,true,true,466.16 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721952900,1721953160000,0.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721952900,1721953166000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721952900,1721953166000,0.0,false,false,4.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721952900,1721953171000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721952900,1721953171000,0.0,false,false,10.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721952900,1721953171000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721952900,1721953171000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721952900,1721953171000,0.0,false,false,6.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721952900,1721953177000,13.864486135541739,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721952900,1721953189000,0.0,false,false,7.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,5.933044863979534,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,0.0,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,5.938089134684075,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,3.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,3.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,5.909201831794181,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,5.856423321167751,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,5.942207706149208,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,5.913761634198644,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,5.913042405722233,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,6.145960113563678,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953200,1721953284000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953200,1721953284000,6.137980376124284,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,0.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,9.888408106632555,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,9.896815224473459,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,5.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,5.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,9.848669719656968,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,9.760705535279586,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,9.90367951024868,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,9.856269390331073,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,9.855070676203722,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,10.243266855939464,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953200,1721953290000,10.229967293540474,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953200,1721953290000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,0.0,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,608.9455501661753,false,false,307.908787541713 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,0.0,true,true,294.8571428571429 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,603.9884948421517,false,false,305.1428571428571 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,286.7374361730717,true,true,286.7374361730717 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,313.2625638269282,false,false,313.2625638269282 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,0.0,true,true,289.7248736664795 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,611.1594482967366,false,false,310.27512633352046 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,0.0,true,true,285.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,614.9244487226139,false,false,315.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,0.0,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,604.8816121672373,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,0.0,true,true,290.4491883477874 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,610.2032379279684,false,false,309.5508116522126 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,0.0,true,true,289.7604107244723 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,611.6828376605779,false,false,310.2395892755277 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721953200,1721953349000,0.0,false,false,467.66 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,583.8662107885494,true,true,285.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,0.0,false,false,315.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953200,1721953349000,583.108135731807,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953200,1721953349000,0.0,false,false,315.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721953200,1721953355000,1214.434953207971,false,false,614.07 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952900,1721953355000,0.0,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721953200,1721953355000,841.3084686020399,false,false,425.04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721953200,1721953355000,603.12,false,false,603.12 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721953200,1721953355000,902.5517904488038,false,false,458.21 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952900,1721953355000,8.213802953176918,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721953200,1721953355000,780.5050574230968,false,false,399.82 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721953200,1721953355000,1096.5353953747338,false,false,553.6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721953200,1721953355000,1086.4959999737555,false,false,551.17 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721953200,1721953355000,934.7970955894696,false,false,474.12 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721952900,1721953355000,0.0,false,false,2.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721953200,1721953355000,0.0,false,false,489.72 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721953200,1721953372000,0.0,true,true,614.07 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721953200,1721953372000,0.0,true,true,425.04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721953200,1721953372000,603.12,true,true,603.12 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721953200,1721953372000,0.0,true,true,458.21 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721953200,1721953372000,0.0,true,true,399.82 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721953200,1721953372000,0.0,true,true,553.6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721953200,1721953372000,0.0,true,true,551.17 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721953200,1721953372000,0.0,true,true,474.12 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721953200,1721953372000,958.0732355697298,true,true,467.66 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721953200,1721953372000,1001.9639165985282,true,true,489.72 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721953200,1721953442000,11.866089727959068,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721953200,1721953442000,7.917452179578768,false,false,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721953200,1721953442000,6.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721953200,1721953454000,7.878935775725574,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721953200,1721953454000,19.52141107055917,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721953200,1721953454000,13.865151314348152,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721953200,1721953454000,13.798777146463502,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721953200,1721953454000,5.914939860728103,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721953200,1721953454000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721953200,1721953454000,0.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,10.12400959057918,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,9.902286041570012,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,10.185737987710757,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,10.11026589961537,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,9.761174829574792,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,10.108997419174594,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,10.158815102338881,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,10.048482694415325,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,9.774328048112059,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953500,1721953589000,0.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953500,1721953589000,9.958066232573607,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,6.0744057543475085,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,5.941371624942007,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,6.1114427926264545,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,6.066159539769222,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,5.856704897744875,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,6.065398451504756,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,6.095289061403329,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,6.029089616649196,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,5.864596828867236,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953500,1721953625000,5.97593038945444,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953500,1721953625000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721953500,1721953630000,0.0,false,false,605.81 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,591.4268472503197,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,0.0,false,false,307.908787541713 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,0.0,true,true,295.2631578947368 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,603.5182755862144,false,false,304.7368421052632 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,584.1264792253692,true,true,286.7374361730717 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,0.0,false,false,313.2625638269282 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,594.6373707252131,true,true,294.07602956705387 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,0.0,false,false,305.9239704329462 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,0.0,true,true,285.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,614.9540142632118,false,false,315.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,595.6579886013948,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,0.0,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,590.1239202099146,true,true,290.4491883477874 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,0.0,false,false,309.5508116522126 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,899.2347273225361,true,true,447.44801512287336 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,0.0,false,false,452.55198487712664 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,0.0,true,true,285.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,615.7826670310598,false,false,315.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721953500,1721953642000,0.0,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721953500,1721953642000,898.7303437699144,false,false,451.0927790872081 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721953500,1721953648000,0.0,false,false,617.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721953500,1721953648000,842.8033695701068,false,false,425.56 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721953500,1721953648000,1234.1243860670106,true,true,605.81 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721953500,1721953648000,0.0,false,false,458.63 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721953500,1721953648000,783.3538024230361,false,false,401.26 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721953500,1721953648000,0.0,false,false,554.86 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721953500,1721953648000,0.0,false,false,552.53 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721953500,1721953648000,0.0,false,false,476.02 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721953500,1721953648000,916.8710682251036,false,false,469.02 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721953500,1721953648000,974.679574782545,false,false,489.2 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721953500,1721953671000,1249.302783477471,true,true,617.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721953500,1721953671000,0.0,true,true,425.56 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721953500,1721953671000,927.3742499081194,true,true,458.63 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721953500,1721953671000,0.0,true,true,401.26 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721953500,1721953671000,1121.8156616006431,true,true,554.86 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721953500,1721953671000,1122.6100216990603,true,true,552.53 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721953500,1721953671000,956.6557464391167,true,true,476.02 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721953500,1721953671000,0.0,true,true,469.02 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721953500,1721953671000,0.0,true,true,489.2 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721953200,1721953677000,3.958726089789384,false,false,2.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721953200,1721953677000,0.0,true,true,4.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721953200,1721953677000,0.0,false,false,2.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721953500,1721953736000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721953500,1721953736000,7.921828833256009,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721953500,1721953742000,19.522349659149583,false,false,10.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721953500,1721953754000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721953500,1721953754000,0.0,false,false,4.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721953500,1721953754000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721953500,1721953754000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721953500,1721953754000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721953500,1721953759000,9.774328048112059,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721953500,1721953759000,11.954369273702515,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,5.975963063123047,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,0.0,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,5.9790195743253465,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,5.975509244021555,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,5.980474041735141,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,6.0797027647342805,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,5.967951261863808,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,5.968054117286879,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,6.02427266929937,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,5.974823219533426,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721953800,1721953883000,3.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721953800,1721953883000,3.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,0.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,9.959938438538412,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,9.965032623875578,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,9.959182073369258,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,9.967456736225234,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,10.132837941223801,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,9.946585436439682,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,9.946756862144799,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,10.040454448832286,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,9.958038699222376,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721953800,1721953918000,5.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721953800,1721953918000,5.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721953800,1721953924000,1233.0802184448096,false,false,619.02 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721953800,1721953930000,0.0,false,false,477.49 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721953800,1721953936000,851.5319677754158,false,false,427.26 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721953800,1721953936000,1209.6223362672831,false,false,607.29 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721953800,1721953936000,916.9661499057767,false,false,459.98 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721953800,1721953936000,0.0,false,false,403.33 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721953800,1721953936000,1100.848289763398,false,false,553.38 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721953800,1721953936000,1104.507775486283,false,false,555.21 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721953800,1721953936000,938.3858187825214,false,false,471.17 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721953800,1721953936000,491.7,false,false,491.7 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721953800,1721953948000,0.0,true,true,619.02 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721953500,1721953948000,3.9609144166280044,false,false,2.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721953500,1721953948000,0.0,true,true,4.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721953800,1721953948000,958.8433189545855,true,true,477.49 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721953500,1721953948000,3.909731219244824,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721953800,1721953953000,0.0,true,true,427.26 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721953800,1721953953000,0.0,true,true,607.29 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721953800,1721953953000,0.0,true,true,459.98 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721953800,1721953953000,817.3755053667591,true,true,403.33 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721953800,1721953953000,0.0,true,true,553.38 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721953800,1721953953000,0.0,true,true,555.21 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721953800,1721953953000,0.0,true,true,471.17 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721953800,1721953953000,491.7,true,true,491.7 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721953800,1721954042000,11.951926126246095,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721953800,1721954042000,7.972026099100462,false,false,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721953800,1721954042000,11.95101848804311,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721953800,1721954042000,7.973965388980187,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721953800,1721954048000,0.0,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721953800,1721954048000,13.925219611015553,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721953800,1721954048000,13.925459607002718,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721953800,1721954048000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721953800,1721954053000,9.958038699222376,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721953800,1721954053000,6.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,0.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,9.920892719629904,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,10.11802810501251,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,10.000392407836395,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,9.988188779372178,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,10.117909247791811,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,9.885215141116683,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,9.90787649533209,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,9.912536088438443,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,9.993549744355258,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954100,1721954208000,10.2346067830088,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954100,1721954208000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,5.952535631777942,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,0.0,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,6.070816863007506,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,6.000235444701837,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,5.992913267623306,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,6.070745548675087,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,5.93112908467001,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,5.944725897199254,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,5.947521653063066,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,5.9961298466131545,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954100,1721954220000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954100,1721954220000,6.14076406980528,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721954100,1721954226000,1212.5475794501629,false,false,606.2499999999999 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721954100,1721954226000,1091.525455882104,false,false,552.1 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721954100,1721954226000,0.0,false,false,494.02 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721954100,1721954238000,1222.392875556479,false,false,616.07 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721954100,1721954238000,861.2667883548748,false,false,425.61 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721954100,1721954238000,914.5185646393165,false,false,457.8 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721954100,1721954238000,0.0,false,false,400.06 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721954100,1721954238000,1094.2655116504573,false,false,552.22 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721954100,1721954238000,941.6314531851215,false,false,474.97 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721954100,1721954238000,945.6696252088493,false,false,473.14 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,0.0,true,true,295.14 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,604.8966709012745,false,false,304.86 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,0.0,true,true,456.88381004516214 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,896.6924127498223,false,false,443.11618995483786 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,0.0,true,true,452.57787325456496 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,894.8793678806123,false,false,447.42212674543504 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721954100,1721954244000,0.0,true,true,606.2499999999999 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,0.0,true,true,450.450112528132 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,898.0378283629074,false,false,449.549887471868 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,905.3052365419319,true,true,447.37762237762246 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,0.0,false,false,452.62237762237754 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,0.0,true,true,441.26089729959597 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,906.946944767263,false,false,458.73910270040403 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721954100,1721954244000,0.0,true,true,552.1 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,0.0,true,true,295.0007878978885 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,604.3789049362636,false,false,304.9992121021116 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,0.0,true,true,294.11006018916595 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,606.4290134930311,false,false,305.88993981083405 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,0.0,true,true,450.4280821917807 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,898.5638648563266,false,false,449.5719178082193 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721954100,1721954244000,1011.2200885884015,true,true,494.02 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954100,1721954244000,583.3725866315016,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954100,1721954244000,0.0,false,false,315.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721954100,1721954255000,0.0,true,true,616.07 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721954100,1721954255000,0.0,true,true,425.61 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721954100,1721954255000,0.0,true,true,457.8 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721954100,1721954255000,809.5541547343184,true,true,400.06 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721954100,1721954255000,0.0,true,true,552.22 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721954100,1721954255000,0.0,true,true,474.97 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721954100,1721954255000,0.0,true,true,473.14 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721954100,1721954338000,11.905071263555884,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721954100,1721954338000,0.0,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721954100,1721954338000,12.000470889403674,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721954100,1721954343000,7.990551023497742,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721954100,1721954343000,0.0,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721954100,1721954343000,13.839301197563357,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721954100,1721954355000,13.871027093464926,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721954100,1721954355000,5.947521653063066,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721954100,1721954355000,9.993549744355258,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721954100,1721954355000,0.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,10.121664625641978,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,9.907583710084783,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,9.978218527739866,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,9.991598480926546,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,10.16061940213373,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,9.9987522117179,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,10.100394037151709,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,10.040825081350796,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,9.905867659425365,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954400,1721954496000,0.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954400,1721954496000,9.786498119393176,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,6.072998775385187,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,5.94455022605087,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,5.98693111664392,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,5.9949590885559285,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,6.096371641280237,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,5.9992513270307395,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,6.060236422291025,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,6.024495048810477,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,5.943520595655219,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954400,1721954508000,5.871898871635906,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954400,1721954508000,0.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721954400,1721954525000,0.0,false,false,618.21 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721954400,1721954537000,0.0,false,false,424.56 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721954400,1721954537000,0.0,false,false,608.95 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721954400,1721954537000,0.0,false,false,459.27 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721954400,1721954537000,0.0,false,false,397.96 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721954400,1721954537000,0.0,false,false,554.3 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,564.0905250280646,true,true,278.6550166852058 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,293.74498331479424 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721954400,1721954543000,1251.4628576436255,true,true,618.21 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,516.0340636937607,true,true,260.4237717257424 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,252.5762282742576 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,567.6156619348952,true,true,284.4273556231004 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,273.5726443768996 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,576.3132016362076,true,true,288.39889970376623 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,282.2011002962338 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,306.95854005296843,true,true,151.05306473171663 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,162.14693526828336 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,747.8683723429222,true,true,373.98085106382985 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,365.81914893617017 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721954400,1721954543000,0.0,false,false,554.49 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,492.23391768122434,true,true,243.67065080365586 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,251.92934919634413 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,602.9777295510514,true,true,300.26303847827444 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,302.73696152172556 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721954400,1721954543000,0.0,false,false,475.81 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721954400,1721954543000,0.0,false,false,469.46 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,595.2573901434572,true,true,300.45696682464455 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,0.0,false,false,291.74303317535544 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954400,1721954543000,0.0,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954400,1721954543000,616.5493815217701,false,false,315.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721954400,1721954543000,963.6764698166461,false,false,492.35 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954100,1721954549000,0.0,true,true,2.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954100,1721954549000,0.0,false,false,4.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954100,1721954549000,0.0,true,true,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721954400,1721954555000,841.272747990719,true,true,424.56 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721954400,1721954555000,1215.2472344934383,true,true,608.95 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721954400,1721954555000,917.7682868670271,true,true,459.27 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721954400,1721954555000,808.7040194546278,true,true,397.96 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721954400,1721954555000,1108.4616701910463,true,true,554.3 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721954400,1721954561000,1120.1134979320502,true,true,554.49 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721954400,1721954561000,955.5049963915044,true,true,475.81 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721954400,1721954561000,930.0817262787663,true,true,469.46 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721954400,1721954561000,0.0,true,true,492.35 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721954400,1721954637000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721954400,1721954637000,7.926066968067826,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721954400,1721954643000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721954400,1721954643000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721954400,1721954643000,0.0,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721954400,1721954649000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721954400,1721954649000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721954400,1721954649000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721954400,1721954655000,9.905867659425365,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721954400,1721954655000,11.743797743271813,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.199450171195531,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.012991476395916,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.19999124291464,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.059541121529561,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.056395895835786,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.020315279152866,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.211189731354308,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.040800830789118,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.130392685973751,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721954700,1721954761000,10.235156563289419,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721954700,1721954761000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.119670102717318,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.00779488583755,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.119994745748785,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.035724672917737,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.033837537501472,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721954700,1721954819000,0.0,false,false,553.33 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.012189167491719,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.126713838812584,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.024480498473471,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.07823561158425,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721954700,1721954819000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721954700,1721954819000,6.141093937973651,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721954700,1721954837000,0.0,false,false,617.8 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721954700,1721954837000,0.0,false,false,424.86 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721954700,1721954837000,0.0,false,false,607.92 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721954700,1721954837000,0.0,false,false,459.07 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721954700,1721954837000,0.0,false,false,400.65 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721954700,1721954837000,1108.9082106827311,true,true,553.33 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721954700,1721954837000,0.0,false,false,553.93 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721954700,1721954837000,0.0,false,false,476.71 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721954700,1721954837000,0.0,false,false,469.39 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721954700,1721954837000,0.0,false,false,492.18 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,562.7648626458846,true,true,275.88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,304.92 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,627.7929547970532,true,true,313.48920863309354 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,316.51079136690646 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,553.4923248055201,true,true,271.32 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,299.88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,668.9660717461547,true,true,332.5032740879327 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,337.09672591206726 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,381.7609009977181,true,true,189.81 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,209.79000000000002 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,517.2188895525275,true,true,258.08513761467896 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,267.51486238532107 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,512.193276924732,true,true,250.79999999999995 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,277.2 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,692.9727319343585,true,true,345.07841735562886 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,347.92158264437114 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,681.2870865290978,true,true,336.25897220765603 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,349.541027792344 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721954700,1721954843000,583.4039241074969,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721954700,1721954843000,0.0,false,false,315.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954400,1721954849000,3.963033484033913,true,true,2.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954400,1721954849000,8.128495521706984,true,true,4.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954400,1721954849000,3.962347063770146,true,true,2.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721954700,1721954861000,1260.2440631529198,true,true,617.8 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721954700,1721954861000,850.8239117323137,true,true,424.86 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721954700,1721954861000,1240.1557352785337,true,true,607.92 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721954700,1721954861000,923.6067085321151,true,true,459.07 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721954700,1721954861000,805.8190031333216,true,true,400.65 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721954700,1721954861000,1131.2568655778182,true,true,553.93 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721954700,1721954861000,957.3100328090961,true,true,476.71 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721954700,1721954861000,951.0210045738438,true,true,469.39 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721954700,1721954861000,1007.5078714639573,true,true,492.18 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721954700,1721954949000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721954700,1721954949000,8.010393181116733,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721954700,1721954949000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721954700,1721954949000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721954700,1721954949000,20.112791791671572,true,true,10.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721954700,1721954949000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721954700,1721954972000,14.028441390814013,true,true,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721954700,1721954972000,0.0,false,false,7.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721954700,1721954972000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721954700,1721954972000,0.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,10.122423531196375,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,10.108456272319486,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,10.10555723088579,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,9.871996999118082,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,9.806958701745401,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,10.105716661442825,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,10.150592992216701,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,10.090208958242938,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,10.159573616145094,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955000,1721955079000,5.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955000,1721955079000,5.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,6.073454118717826,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,6.065073763391692,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,6.063334338531474,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,5.923198199470849,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,5.884175221047241,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,6.063429996865696,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,6.090355795330021,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,6.054125374945763,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,6.095744169687057,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955000,1721955085000,3.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955000,1721955085000,3.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721955000,1721955140000,0.0,false,false,616.14 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721955000,1721955140000,0.0,false,false,426.3 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721955000,1721955140000,0.0,false,false,607.5 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721955000,1721955140000,905.4990527471069,false,false,458.62 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721955000,1721955140000,787.8518342634185,false,false,401.68 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721955000,1721955140000,0.0,false,false,551.44 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721955000,1721955140000,0.0,false,false,552.24 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721955000,1721955140000,0.0,false,false,475.24 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721955000,1721955140000,0.0,false,false,470.25 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721955000,1721955140000,495.54,false,false,495.54 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,570.046161520536,true,true,281.57592880978865 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,0.0,false,false,296.8240711902114 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954700,1721955146000,0.0,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,393.5075342590466,true,true,194.64274447949526 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,0.0,false,false,201.35725552050474 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,561.5339509506764,true,true,277.8342342342342 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,0.0,false,false,289.76576576576576 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,0.0,true,true,206.2841100505334 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,436.17620052772685,false,false,220.9158899494666 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954700,1721955146000,8.045116716668629,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,0.0,true,true,177.83999999999997 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,385.5311604830151,false,false,196.55999999999997 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,512.0996202572022,true,true,253.37125382263 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,0.0,false,false,262.62874617737 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,509.4544024808202,true,true,250.94809873248832 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,0.0,false,false,267.4519012675117 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,439.20953067645365,true,true,217.6414445399828 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,0.0,false,false,226.3585554600172 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721954700,1721955146000,0.0,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,430.6735030162213,true,true,211.95451664025356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,0.0,false,false,226.04548335974644 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955000,1721955146000,448.9072209127919,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955000,1721955146000,451.0927790872081,false,false,451.0927790872081 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721955000,1721955158000,1247.366006902267,true,true,616.14 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721955000,1721955158000,861.8469817779594,true,true,426.3 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721955000,1721955158000,1227.8252035526236,true,true,607.5 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721955000,1721955158000,0.0,true,true,458.62 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721955000,1721955158000,0.0,true,true,401.68 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721955000,1721955158000,1114.5392791572065,true,true,551.44 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721955000,1721955158000,1121.1126948043502,true,true,552.24 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721955000,1721955158000,959.0541810630748,true,true,475.24 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721955000,1721955158000,955.5078985984461,true,true,470.25 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721955000,1721955158000,495.54,true,true,495.54 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721955000,1721955238000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721955000,1721955238000,0.0,false,false,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721955000,1721955244000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721955000,1721955244000,7.897597599294465,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721955000,1721955244000,19.613917403490802,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721955000,1721955250000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721955000,1721955250000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721955000,1721955250000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721955000,1721955256000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721955000,1721955256000,6.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.934347833634684,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.944517501709195,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.901304245381498,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.949565990976357,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.909750575971586,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.9445029448205435,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.918894733864126,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.954378899836365,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.900741577208224,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955300,1721955375000,5.91508506504337,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955300,1721955375000,0.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.890579722724473,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.907529169515325,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.83550707563583,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.915943318293928,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.849584293285977,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.90750490803424,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.86482455644021,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.923964833060609,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.83456929534704,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955300,1721955416000,0.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955300,1721955416000,9.858475108405615,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721955300,1721955428000,1223.543836338799,false,false,618.54 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721955300,1721955428000,841.9220137670733,false,false,424.89 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721955300,1721955428000,1195.0927937463584,false,false,607.54 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721955300,1721955428000,909.6688081336484,false,false,458.69 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721955300,1721955428000,970.3105540697144,false,false,492.12 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721955300,1721955433000,792.5960480807225,false,false,402.35 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721955300,1721955433000,1094.065951984405,false,false,552.14 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721955300,1721955433000,1093.3974241867202,false,false,554.19 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721955300,1721955433000,944.5034290217103,false,false,475.87 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721955300,1721955439000,922.3842542105989,false,false,468.95 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,282.16011123470525 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,588.3705865102895,false,false,297.43988876529477 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721955300,1721955445000,0.0,true,true,618.54 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955000,1721955445000,0.0,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,198.18170347003155 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,406.24495063100096,false,false,205.01829652996844 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721955300,1721955445000,0.0,true,true,424.89 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,271.82708949207205 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,584.1758325145784,false,false,296.97291050792796 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721955300,1721955445000,0.0,true,true,607.54 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,212.32289334741287 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,438.04097397516335,false,false,220.87710665258714 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721955300,1721955445000,0.0,true,true,458.69 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955000,1721955445000,0.0,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,184.04166507542485 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,389.17349453616515,false,false,197.55833492457515 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,254.54972477064223 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,522.8195793642094,false,false,263.85027522935775 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,252.10989548587946 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,530.1161482166766,false,false,268.69010451412055 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,219.99432502149614 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,454.13189441827353,false,false,228.80567497850384 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955000,1721955445000,0.0,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,213.20760651987416 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,453.9487573038596,false,false,230.79239348012584 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721955300,1721955445000,0.0,true,true,492.12 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955300,1721955445000,0.0,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955300,1721955445000,621.0839318295539,false,false,315.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721955300,1721955451000,0.0,true,true,402.35 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721955300,1721955451000,0.0,true,true,552.14 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721955300,1721955451000,0.0,true,true,554.19 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721955300,1721955451000,0.0,true,true,475.87 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721955300,1721955457000,0.0,true,true,468.95 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721955300,1721955534000,11.868695667269368,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721955300,1721955539000,7.92602333561226,false,false,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721955300,1721955539000,11.802608490762996,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721955300,1721955545000,7.932754654635143,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721955300,1721955545000,19.699168586571954,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721955300,1721955545000,13.870506871247937,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721955300,1721955545000,13.810754379016293,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721955300,1721955557000,5.954378899836365,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721955300,1721955557000,9.83456929534704,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721955300,1721955569000,0.0,true,true,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.073084096841193,true,true,3.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1077.658883322104,true,true,542.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.023753252374968,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.051614402052294,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.0115482792619055,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.126959286943886,true,true,3.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1088.4943577328022,true,true,542.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1095.209584589414,true,true,542.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1091.1799245537995,true,true,542.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.063397165409079,true,true,3.0 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1092.4958511545922,true,true,542.0 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1088.4727230514222,true,true,542.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.089899637172804,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.039861556456836,true,true,3.0 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1081.554644004232,true,true,542.0 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1080.4142393973475,true,true,542.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.077543737785754,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,6.1405854397326864,true,true,3.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1088.2952458192713,true,true,542.0 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955600,1721955717000,0.0,false,false,542.0 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955600,1721955717000,1077.874114828763,true,true,542.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721955600,1721955723000,0.0,false,false,459.46 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721955600,1721955728000,0.0,false,false,621.44 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721955600,1721955728000,0.0,false,false,425.02 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721955600,1721955728000,0.0,false,false,610.67 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721955600,1721955728000,0.0,false,false,402.49 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721955600,1721955728000,0.0,false,false,552.72 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721955600,1721955728000,0.0,false,false,557.05 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721955600,1721955728000,0.0,false,false,476.56 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.121806828068657,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1676.1373406651912,true,true,843.0 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955300,1721955741000,3.96301166780613,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.03958875395828,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.08602400342049,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721955600,1721955741000,920.688657463225,true,true,459.46 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.019247132103176,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955300,1721955741000,0.0,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.211598811573142,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1692.9903017873658,true,true,843.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1703.434833595712,true,true,843.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1697.16729962888,true,true,843.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.105661942348464,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1699.2140267957957,true,true,843.0 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1692.9566522737066,true,true,843.0 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.149832728621341,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.06643592742806,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1682.1966141984642,true,true,843.0 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1680.4228852619262,true,true,843.0 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955300,1721955741000,3.933827718138816,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721955600,1721955741000,0.0,false,false,470.59 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.129239562976256,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,10.234309066221144,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721955600,1721955741000,0.0,false,false,495.02 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1692.680612962446,true,true,843.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955600,1721955741000,1676.472101108205,true,true,843.0 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955600,1721955741000,0.0,false,false,843.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,571.1940281008102,true,true,282.16011123470525 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,297.43988876529477 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721955600,1721955747000,1258.0191270469973,true,true,621.44 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1152.3996732298115,true,true,579.5902883156297 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,520.4097116843703 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,602.483666123331,true,true,300.0539568345324 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,302.9460431654676 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721955600,1721955747000,853.4052024414697,true,true,425.02 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,847.6839520334861,true,true,420.2270149991759 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,431.1729850008241 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721955600,1721955747000,1231.846455633758,true,true,610.67 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,649.3285931981271,true,true,324.04061135371165 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,322.15938864628833 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721955600,1721955747000,822.0132811340148,true,true,402.49 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,376.7562068401853,true,true,184.47464192051643 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,194.72535807948356 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1084.2216521045543,true,true,539.8724681170293 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,560.1275318829707 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1050.7545830009137,true,true,520.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,580.0 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1066.3595230178462,true,true,529.6714579055441 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,570.3285420944558 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,514.4786932099911,true,true,254.54972477064223 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,263.85027522935775 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721955600,1721955747000,1117.1202937549685,true,true,552.72 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1057.4772585802698,true,true,524.6268656716418 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,575.3731343283582 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1084.9460361618667,true,true,540.2439024390243 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,559.7560975609756 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721955600,1721955747000,1130.7928642957033,true,true,557.05 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,510.5954494112195,true,true,251.5289971091839 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,268.0710028908161 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,668.8896074738091,true,true,332.23755274261606 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,339.162447257384 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721955600,1721955747000,959.4521411150232,true,true,476.56 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1126.0853199081596,true,true,564.3156790770844 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,535.6843209229156 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1145.0147007614478,true,true,574.4074311338887 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,525.5925688661114 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,657.9661669115383,true,true,324.78556895647614 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,337.61443104352384 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,583.3556167746052,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,315.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1085.3647609646669,true,true,540.5405405405405 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,559.4594594594595 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955600,1721955747000,1150.0214566748716,true,true,578.2786885245902 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955600,1721955747000,0.0,false,false,521.7213114754098 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721955600,1721955758000,953.3437691881993,true,true,470.59 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721955600,1721955758000,1013.2375347921582,true,true,495.02 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721955600,1721955834000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721955600,1721955840000,0.0,false,false,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721955600,1721955840000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721955600,1721955840000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721955600,1721955846000,0.0,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721955600,1721955846000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721955600,1721955852000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721955600,1721955852000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721955600,1721955852000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721955600,1721955852000,0.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.073039228518487,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.068471948951864,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.107955610810358,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.035704839294669,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.044195716958908,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.063042977553943,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.089879192578016,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.028338656252217,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,6.110275160069289,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721955900,1721955989000,3.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721955900,1721955989000,3.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.121732047530811,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.114119914919774,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.179926018017264,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.059508065491116,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.073659528264846,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.105071629256571,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.149798654296692,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.047231093753695,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,10.183791933448815,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721955900,1721956006000,5.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721955900,1721956006000,5.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721955900,1721956024000,0.0,false,false,426.49 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721955900,1721956030000,0.0,false,false,622.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721955900,1721956030000,0.0,false,false,611.48 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721955900,1721956030000,0.0,false,false,457.79 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721955900,1721956030000,0.0,false,false,557.93 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721955900,1721956036000,0.0,false,false,400.35 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721955900,1721956036000,0.0,false,false,553.86 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721955900,1721956036000,0.0,false,false,477.3 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721955900,1721956036000,0.0,false,false,472.38 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721955900,1721956036000,495.16,false,false,495.16 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,571.1898080838349,true,true,282.16011123470525 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,297.43988876529477 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955600,1721956042000,4.015835501583312,true,true,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,600.0112537060187,true,true,296.6205951448708 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,306.3794048551292 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721955900,1721956042000,862.7142005028269,true,true,426.49 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,553.4359321444502,true,true,271.82708949207205 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,296.97291050792796 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,647.384393707696,true,true,321.7773620205801 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,326.22263797942 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955600,1721956042000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,571.4533447767153,true,true,283.6374125874126 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,286.96258741258737 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,514.5209369498978,true,true,254.58549717759445 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,263.81450282240553 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,511.7729355874918,true,true,252.10989548587946 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,268.69010451412055 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,672.5437961129836,true,true,334.6911153119093 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,338.50888468809075 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955600,1721956042000,0.0,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,433.07872560247125,true,true,212.63136974549616 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,0.0,false,false,230.16863025450388 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721955900,1721956042000,285.0,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721955900,1721956042000,315.0,false,false,315.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721955900,1721956048000,1259.143466712833,true,true,622.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721955900,1721956048000,1244.9642322994393,true,true,611.48 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721955900,1721956048000,921.0284394602355,true,true,457.79 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721955900,1721956048000,1132.5754326383505,true,true,557.93 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721955900,1721956054000,806.5979184281663,true,true,400.35 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721955900,1721956054000,1119.358994516009,true,true,553.86 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721955900,1721956054000,959.1086802097277,true,true,477.3 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721955900,1721956054000,962.1239267045103,true,true,472.38 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721955900,1721956054000,495.16,true,true,495.16 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721955900,1721956136000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721955900,1721956136000,0.0,false,false,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721955900,1721956142000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721955900,1721956142000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721955900,1721956148000,0.0,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721955900,1721956148000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721955900,1721956148000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721955900,1721956148000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721955900,1721956154000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721955900,1721956154000,6.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.074208316742185,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.097458984351816,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.111172437475474,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.066297240320599,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.096775771825829,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.065605794149905,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.094999924128455,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.060558727029719,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.124198502535023,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956200,1721956261000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956200,1721956261000,6.0930408606303725,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.123680527903641,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.162431640586359,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.185287395792457,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.110495400534331,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.161292953043048,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.109342990249841,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.158333206880759,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.1009312117162,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.206997504225038,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956200,1721956267000,10.155068101050622,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956200,1721956267000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721956200,1721956326000,0.0,false,false,619.44 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721956200,1721956326000,0.0,false,false,399.33 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721956200,1721956326000,0.0,false,false,492.65 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721956200,1721956332000,0.0,false,false,425.11 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721956200,1721956332000,0.0,false,false,608.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721956200,1721956332000,0.0,false,false,457.05 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721956200,1721956332000,0.0,false,false,552.15 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721956200,1721956338000,0.0,false,false,555.12 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721956200,1721956338000,0.0,false,false,476.04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721956200,1721956338000,0.0,false,false,469.59 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,591.407623987145,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,307.908787541713 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721956200,1721956344000,1254.2025332409262,true,true,619.44 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955900,1721956344000,0.0,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,592.8578925018455,true,true,291.69096209912533 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,308.30903790087467 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,584.1006389110864,true,true,286.7374361730717 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,313.2625638269282 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,594.6508688690192,true,true,294.07602956705387 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,305.9239704329462 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955900,1721956344000,8.058927622611877,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721956200,1721956344000,811.541822987736,true,true,399.33 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,552.8591199976778,true,true,272.04171878152107 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,287.1582812184789 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,595.6783508750274,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,590.0959269809786,true,true,290.4491883477874 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,309.5508116522126 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,594.1570973288952,true,true,294.11006018916595 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,305.88993981083405 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721955900,1721956344000,0.0,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,588.1647317919324,true,true,288.1183871890192 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,311.88161281098087 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721956200,1721956344000,1000.5788599965177,true,true,492.65 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956200,1721956344000,591.4010771145184,true,true,291.18518518518516 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956200,1721956344000,0.0,false,false,308.8148148148148 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721956200,1721956350000,864.0302629459334,true,true,425.11 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721956200,1721956350000,1238.5309473283628,true,true,608.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721956200,1721956350000,924.2003845628432,true,true,457.05 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721956200,1721956350000,1116.37474641329,true,true,552.15 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721956200,1721956355000,1127.8187859607294,true,true,555.12 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721956200,1721956355000,961.6894588050759,true,true,476.04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721956200,1721956355000,958.6207916018071,true,true,469.59 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600-0x7cc21e12728bb9702699c76f0805266427423ba1,ADA/USDT,0x7cc21e12728bb9702699c76f0805266427423ba1,1721955600,1721956402000,0.0,false,false,2038.24 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600-0xeee327ce9510fb16ad75fd46de121026b18c3bdb,ETH/USDT,0xeee327ce9510fb16ad75fd46de121026b18c3bdb,1721955600,1721956402000,0.0,false,false,1788.7400000000002 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600-0xe1d3f7fe664e9b936a3b8f62d17ab54c299bdfa4,ADA/USDT,0xe1d3f7fe664e9b936a3b8f62d17ab54c299bdfa4,1721955600,1721956419000,4108.429416341948,true,true,2038.24 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600-0x94b74afa319667e3152f0079a5959c1ede62ad83,ETH/USDT,0x94b74afa319667e3152f0079a5959c1ede62ad83,1721955600,1721956419000,3592.241141385611,true,true,1788.7400000000002 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600-0x84cf52b231524d6ee0def6f2b7ce848f22a94f2b,XRP/USDT,0x84cf52b231524d6ee0def6f2b7ce848f22a94f2b,1721955600,1721956425000,0.0,false,false,2141.92 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600-0x6257c5e83883bfc84082eb0cd34a04098cc792ef,SOL/USDT,0x6257c5e83883bfc84082eb0cd34a04098cc792ef,1721955600,1721956425000,0.0,false,false,1860.82 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600-0x12e21c6ec4841a5b1d725ac8a8509e67829d68bf,DOT/USDT,0x12e21c6ec4841a5b1d725ac8a8509e67829d68bf,1721955600,1721956425000,0.0,false,false,1995.14 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600-0x8e3652d395a2c698553dd98cb967127f3c559409,BNB/USDT,0x8e3652d395a2c698553dd98cb967127f3c559409,1721955600,1721956425000,0.0,false,false,1812.97 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721956200,1721956437000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721956200,1721956437000,0.0,false,false,4.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600-0x9660fafb6023e20f46d3c406005382541c14767a,BTC/USDT,0x9660fafb6023e20f46d3c406005382541c14767a,1721955600,1721956437000,0.0,false,false,1539.5899999999997 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600-0x8aeeda98786f4226842b4ecaf91192889670c52f,TRX/USDT,0x8aeeda98786f4226842b4ecaf91192889670c52f,1721955600,1721956437000,0.0,false,false,2052.47 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600-0xa17fd219faa6b47d486eaa87107c181480afa038,DOGE/USDT,0xa17fd219faa6b47d486eaa87107c181480afa038,1721955600,1721956437000,0.0,false,false,1867.04 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600-0xbbe7d8db067d3aa810b0b4a3098ce570fe4426d1,LTC/USDT,0xbbe7d8db067d3aa810b0b4a3098ce570fe4426d1,1721955600,1721956437000,0.0,false,false,2055.42 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600-0x4411763f0f167655150f8866ba3e9d4f07c69148,XRP/USDT,0x4411763f0f167655150f8866ba3e9d4f07c69148,1721955600,1721956443000,4258.7806556555,true,true,2141.92 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721956200,1721956443000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721956200,1721956443000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721956200,1721956443000,0.0,false,false,10.0 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600-0x769057efa29f64d6924af1c9e3c31af9e1732600,SOL/USDT,0x769057efa29f64d6924af1c9e3c31af9e1732600,1721955600,1721956443000,3737.0702412478836,true,true,1860.82 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600-0x1a418e9206c9b2ba511d844e97a601b6fabcf8ef,DOT/USDT,0x1a418e9206c9b2ba511d844e97a601b6fabcf8ef,1721955600,1721956443000,4016.7098056720806,true,true,1995.14 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600-0x3b58b52be0413e4322b785df2e67b5aaf99a32b5,BNB/USDT,0x3b58b52be0413e4322b785df2e67b5aaf99a32b5,1721955600,1721956443000,3617.7603744286944,true,true,1812.97 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721956200,1721956449000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721956200,1721956449000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721956200,1721956449000,0.0,false,false,3.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600-0xecefd19314ee798921b053694a23974e406da47b,BTC/USDT,0xecefd19314ee798921b053694a23974e406da47b,1721955600,1721956455000,3111.021631619955,true,true,1539.5899999999997 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600-0x6adab3b1e5eee7c427d468147533a48b7c6e02d1,TRX/USDT,0x6adab3b1e5eee7c427d468147533a48b7c6e02d1,1721955600,1721956455000,4091.3612803244905,true,true,2052.47 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721956200,1721956455000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721956200,1721956455000,0.0,false,false,6.0 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600-0x06ad44372d17d21f736bede6eb0f727aeb9b9d45,DOGE/USDT,0x06ad44372d17d21f736bede6eb0f727aeb9b9d45,1721955600,1721956455000,3748.875933126222,true,true,1867.04 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600-0x7641f8996b475321c44e389855b5f59b35a04515,LTC/USDT,0x7641f8996b475321c44e389855b5f59b35a04515,1721955600,1721956455000,4087.608880260767,true,true,2055.42 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.81557384035546,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.77214639892471,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.813244403888886,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.903841126885474,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.77851981513691,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.903696038723917,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.796821221781913,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.829764667197598,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.774987018321974,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956500,1721956614000,0.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956500,1721956614000,9.78748134322679,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721956500,1721956619000,1220.743287377328,false,false,621.84 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.889344304213276,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721956500,1721956631000,831.6292028412906,false,false,425.51 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.863287839354825,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721956500,1721956631000,1197.1765642968285,false,false,609.98 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.887946642333332,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.942304676131284,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721956500,1721956631000,906.9343473534104,false,false,457.87 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.867111889082146,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721956500,1721956631000,786.6819191277644,false,false,402.25 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.94221762323435,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721956500,1721956631000,1096.8343362886737,false,false,553.75 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.878092733069147,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.897858800318558,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.864992210993185,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956500,1721956631000,5.872488805936074,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956500,1721956631000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721956500,1721956631000,971.2117736883944,false,false,496.15 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721956500,1721956637000,0.0,true,true,621.84 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721956500,1721956637000,1092.717845435111,false,false,557.69 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721956500,1721956637000,937.6809111333132,false,false,476.96 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721956500,1721956637000,921.5075761912492,false,false,471.36 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,285.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,618.381151942394,false,false,315.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,272.46 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,588.5568333144374,false,false,301.14 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,285.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,618.2343974449998,false,false,315.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,294.07602956705387 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,605.9644800147817,false,false,305.9239704329462 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,240.54 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,519.9434556104599,false,false,265.86 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,604.8826216678716,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,285.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,617.1997369722604,false,false,315.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,287.4077490774908 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,614.5416526715693,false,false,312.59225092250927 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,285.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,615.8241821542845,false,false,315.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956500,1721956643000,0.0,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956500,1721956643000,616.6113246232878,false,false,315.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956200,1721956649000,0.0,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721956500,1721956649000,0.0,true,true,425.51 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721956500,1721956649000,0.0,true,true,609.98 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721956500,1721956649000,0.0,true,true,457.87 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956200,1721956649000,8.129034362434439,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721956500,1721956649000,0.0,true,true,402.25 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721956500,1721956649000,0.0,true,true,553.75 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956200,1721956649000,0.0,false,false,2.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721956500,1721956649000,0.0,true,true,496.15 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721956500,1721956655000,0.0,true,true,557.69 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721956500,1721956655000,0.0,true,true,476.96 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721956500,1721956655000,0.0,true,true,471.36 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721956500,1721956739000,11.778688608426553,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721956500,1721956739000,7.817717119139767,false,false,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721956500,1721956751000,11.775893284666664,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721956500,1721956751000,7.923072901508379,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721956500,1721956751000,19.55703963027382,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721956500,1721956751000,13.865174454213482,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721956500,1721956757000,13.715549710494678,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721956500,1721956757000,5.897858800318558,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721956500,1721956757000,9.774987018321974,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721956500,1721956762000,11.744977611872148,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,10.123100855677336,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,10.117268782799092,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,9.894763455658733,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,9.949947064948708,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,10.12737931173202,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,9.903858816095491,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,9.908674346912145,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,9.912826717442867,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,9.933566050093077,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721956800,1721956887000,10.047825016682822,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721956800,1721956887000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,6.073860513406402,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,6.070361269679455,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,5.93685807339524,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,5.969968238969225,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,6.076427587039211,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,5.942315289657294,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,5.945204608147287,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,5.94769603046572,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,5.9601396300558465,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721956800,1721956916000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721956800,1721956916000,6.0286950100096925,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721956800,1721956928000,0.0,false,false,623.77 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721956800,1721956928000,863.9540504383457,false,false,426.97 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721956800,1721956928000,1213.2958949328738,false,false,613.1 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721956800,1721956940000,912.4698455381862,false,false,458.53 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721956800,1721956940000,815.274289353051,false,false,402.51 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721956800,1721956940000,1099.78390609214,false,false,555.23 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721956800,1721956940000,1109.454449275059,false,false,559.84 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721956800,1721956940000,946.8930337035777,false,false,477.61 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721956800,1721956940000,941.2649846426195,false,false,473.78 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721956800,1721956940000,0.0,false,false,495.9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,591.3737605544632,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,0.0,false,false,307.908787541713 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721956800,1721956946000,1262.8973241491701,true,true,623.77 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956500,1721956946000,3.9088585595698837,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,0.0,true,true,443.17729574380724 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,869.726365581893,false,false,429.8227042561927 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721956800,1721956946000,0.0,true,true,426.97 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,0.0,true,true,292.7027027027027 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,608.1268134639988,false,false,307.2972972972973 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721956800,1721956946000,0.0,true,true,613.1 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,0.0,true,true,446.91300280636113 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,901.638327578654,false,false,453.0869971936388 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956500,1721956946000,0.0,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,0.0,true,true,425.5569105691056 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,833.3680463715094,false,false,411.4430894308944 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,0.0,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,604.8925635322909,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,0.0,true,true,295.0007878978885 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,604.4275737569218,false,false,304.9992121021116 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,0.0,true,true,294.11006018916595 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,606.4467935907652,false,false,305.88993981083405 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956500,1721956946000,3.9099948073287902,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,0.0,true,true,444.773519163763 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,904.4044630276379,false,false,455.22648083623693 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721956800,1721956946000,902.1082408914224,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721956800,1721956946000,0.0,false,false,451.0927790872081 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721956800,1721956958000,0.0,true,true,458.53 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721956800,1721956958000,0.0,true,true,402.51 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721956800,1721956958000,0.0,true,true,555.23 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721956800,1721956958000,0.0,true,true,559.84 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721956800,1721956958000,0.0,true,true,477.61 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721956800,1721956958000,0.0,true,true,473.78 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721956800,1721956958000,996.5432851546022,true,true,495.9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721956800,1721957034000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721956800,1721957040000,0.0,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721956800,1721957040000,11.87371614679048,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721956800,1721957046000,7.959957651958966,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721956800,1721957046000,0.0,true,true,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721956800,1721957046000,13.865402342533686,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721956800,1721957046000,13.872144085677002,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721956800,1721957052000,5.94769603046572,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721956800,1721957052000,9.933566050093077,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721956800,1721957052000,0.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,6.0737942164358,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,6.0702118346189105,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,6.110360689838604,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,5.969997474326725,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,5.947455269028648,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,6.065313903032839,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,6.133260102146925,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,6.029014857605275,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,6.026932057311958,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957100,1721957174000,5.977369608442801,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957100,1721957174000,0.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,10.122990360726334,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,10.11701972436485,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,10.18393448306434,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,9.949995790544541,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,9.91242544838108,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,10.108856505054732,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,10.222100170244873,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,10.048358096008792,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,10.044886762186598,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957100,1721957180000,0.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957100,1721957180000,9.962282680738001,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721957100,1721957227000,0.0,false,false,624.6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721957100,1721957227000,866.482271312952,false,false,428.23 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721957100,1721957227000,0.0,false,false,614.64 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721957100,1721957233000,914.2653132099757,false,false,459.43 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721957100,1721957233000,0.0,false,false,403.33 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721957100,1721957233000,0.0,false,false,555.97 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721957100,1721957233000,0.0,false,false,560.85 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721957100,1721957233000,0.0,false,false,478.42 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721957100,1721957239000,954.5856787841168,false,false,475.16 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721957100,1721957239000,990.2508984653574,false,false,497.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,591.3673056336214,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,0.0,false,false,307.908787541713 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721957100,1721957244000,1264.5639558619337,true,true,624.6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956800,1721957244000,0.0,true,true,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,0.0,true,true,441.34976050362667 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,866.1185432007815,false,false,428.05023949637337 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721957100,1721957244000,0.0,true,true,428.23 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,584.0230527656811,true,true,286.7374361730717 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,0.0,false,false,313.2625638269282 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721957100,1721957244000,1251.8906981341331,true,true,614.64 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,0.0,true,true,446.91300280636113 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,901.6427429654345,false,false,453.0869971936388 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956800,1721957244000,8.101903449385615,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,564.5324541361992,true,true,284.76 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,0.0,false,false,257.64 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,595.6496854415738,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,0.0,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,582.6597097039578,true,true,285.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,0.0,false,false,315.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,899.2235770605978,true,true,447.44801512287336 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,0.0,false,false,452.55198487712664 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721956800,1721957244000,0.0,true,true,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,0.0,true,true,455.2193089928938 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,893.5543350346977,false,false,444.7806910071062 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957100,1721957244000,0.0,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957100,1721957244000,898.7827561012934,false,false,451.0927790872081 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721957100,1721957250000,0.0,true,true,459.43 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721957100,1721957250000,799.5957112191082,true,true,403.33 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721957100,1721957250000,1124.044190223056,true,true,555.97 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721957100,1721957250000,1146.6129760963674,true,true,560.85 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721957100,1721957250000,961.4670960585053,true,true,478.42 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721957100,1721957256000,0.0,true,true,475.16 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721957100,1721957256000,0.0,true,true,497.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721957100,1721957337000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721957100,1721957343000,0.0,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721957100,1721957343000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721957100,1721957343000,7.959996632435633,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721957100,1721957343000,0.0,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721957100,1721957349000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721957100,1721957349000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721957100,1721957349000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721957100,1721957355000,10.044886762186598,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721957100,1721957355000,11.954739216885603,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,591.39507385492,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,0.0,false,false,307.908787541713 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,0.0,true,true,445.0048309839879 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,873.3411429972705,false,false,431.5951690160121 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,0.0,true,true,286.7374361730717 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,615.9714851927538,false,false,313.2625638269282 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,0.0,true,true,446.91300280636113 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,901.6354283748113,false,false,453.0869971936388 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,0.0,true,true,267.95675675675676 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,554.4803708538328,false,false,282.84324324324325 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,0.0,true,true,294.65914025184543 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,604.8314690247311,false,false,305.34085974815457 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,590.0732469492956,true,true,290.4491883477874 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,0.0,false,false,309.5508116522126 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,0.0,true,true,445.3586497890295 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,903.8006440937396,false,false,454.6413502109705 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,907.2790800319459,true,true,455.2193089928938 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,0.0,false,false,444.7806910071062 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957400,1721957543000,448.9072209127919,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957400,1721957543000,451.0927790872081,false,false,451.0927790872081 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957100,1721957549000,0.0,true,true,2.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957100,1721957549000,0.0,false,false,4.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957100,1721957549000,0.0,true,true,2.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721957400,1721957567000,0.0,false,false,621.04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721957400,1721957567000,860.2587488847797,false,false,425.13 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721957400,1721957567000,1200.6882131343866,false,false,610.6299999999999 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721957400,1721957567000,911.2928215273843,false,false,457.94 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721957400,1721957567000,785.7793048222345,false,false,400.83 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721957400,1721957567000,1097.5439730982432,false,false,554.08 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721957400,1721957567000,0.0,false,false,557.23 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721957400,1721957567000,946.320039759466,false,false,476.03 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721957400,1721957567000,0.0,false,false,471.56 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721957400,1721957567000,494.15,false,false,494.15 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,10.12346569548675,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,10.11759636916684,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,9.831552766277342,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,9.94991507105062,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,9.801902362874966,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,9.904201316581027,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,10.157942776599098,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,9.939710099778019,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,9.965296529700906,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957400,1721957573000,5.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957400,1721957573000,5.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721957400,1721957585000,1257.4154271050184,true,true,621.04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721957400,1721957585000,0.0,true,true,425.13 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721957400,1721957585000,0.0,true,true,610.6299999999999 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721957400,1721957585000,0.0,true,true,457.94 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721957400,1721957585000,0.0,true,true,400.83 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721957400,1721957585000,0.0,true,true,554.08 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721957400,1721957585000,1132.062090680863,true,true,557.23 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721957400,1721957585000,0.0,true,true,476.03 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721957400,1721957585000,939.8470463091519,true,true,471.56 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721957400,1721957585000,494.15,true,true,494.15 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,6.07407941729205,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,6.070557821500104,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,5.898931659766406,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,5.969949042630373,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,5.8811414177249794,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,5.942520789948616,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,6.094765665959459,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,5.963826059866811,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,5.979177917820544,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957400,1721957620000,3.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957400,1721957620000,3.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721957400,1721957639000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721957400,1721957639000,0.0,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721957400,1721957644000,11.797863319532812,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721957400,1721957644000,7.959932056840496,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721957400,1721957644000,19.60380472574993,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721957400,1721957644000,13.865881843213437,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721957400,1721957650000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721957400,1721957650000,5.963826059866811,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721957400,1721957650000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721957400,1721957656000,6.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,0.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,9.889538708296403,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,10.117862749871984,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,9.831374772569326,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,10.060838231970523,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,10.039855970814674,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,9.995673576842195,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,9.796573725046622,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,9.91690900837138,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,10.099421733592658,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721957700,1721957791000,10.047861183549948,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721957700,1721957791000,0.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,5.933723224977842,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,0.0,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,6.070717649923191,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,5.898824863541596,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,6.036502939182314,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,6.023913582488804,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,5.997404146105317,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,5.877944235027973,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,5.950145405022828,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,6.059653040155595,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721957700,1721957797000,0.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721957700,1721957797000,6.028716710129969,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721957700,1721957827000,1233.5221630858102,false,false,623.65 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721957700,1721957827000,0.0,false,false,495.18 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721957700,1721957833000,863.7417072310716,false,false,426.84 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721957700,1721957833000,1198.7198632698328,false,false,609.64 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721957700,1721957833000,0.0,false,false,457.51 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721957700,1721957833000,808.2686447864062,false,false,402.53 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721957700,1721957833000,1105.6014629873614,false,false,553.04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721957700,1721957833000,1090.57418021964,false,false,556.61 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721957700,1721957838000,942.8600408799174,false,false,475.38 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721957700,1721957838000,952.0320891388455,false,false,471.33 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,0.0,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,609.0151746036769,false,false,307.908787541713 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721957700,1721957844000,0.0,true,true,623.65 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957400,1721957844000,0.0,true,true,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,0.0,true,true,456.88381004516214 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,896.6777584418505,false,false,443.11618995483786 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,0.0,true,true,286.7374361730717 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,615.9603334396901,false,false,313.2625638269282 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,899.2638849997975,true,true,446.91300280636113 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,0.0,false,false,453.0869971936388 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957400,1721957844000,7.841521890299972,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,0.0,true,true,411.12808777429467 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,826.2237469563559,false,false,411.47191222570535 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,0.0,true,true,452.596653202539 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,894.4195623548292,false,false,447.403346797461 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,0.0,true,true,285.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,617.1841446779372,false,false,315.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,0.0,true,true,443.19899244332487 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,906.0108053743827,false,false,456.801007556675 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957400,1721957844000,3.9861186118803626,true,true,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,0.0,true,true,455.2193089928938 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,898.4055554879058,false,false,444.7806910071062 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721957700,1721957844000,995.0999801740527,true,true,495.18 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721957700,1721957844000,902.1114880049846,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721957700,1721957844000,0.0,false,false,451.0927790872081 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721957700,1721957850000,0.0,true,true,426.84 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721957700,1721957850000,0.0,true,true,609.64 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721957700,1721957850000,920.5868199017667,true,true,457.51 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721957700,1721957850000,0.0,true,true,402.53 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721957700,1721957850000,0.0,true,true,553.04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721957700,1721957850000,0.0,true,true,556.61 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721957700,1721957857000,0.0,true,true,475.38 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721957700,1721957857000,0.0,true,true,471.33 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721957700,1721957933000,11.867446449955684,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721957700,1721957939000,0.0,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721957700,1721957939000,11.797649727083192,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721957700,1721957939000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721957700,1721957945000,0.0,true,true,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721957700,1721957945000,13.993943007579073,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721957700,1721957950000,13.715203215065271,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721957700,1721957950000,5.950145405022828,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721957700,1721957950000,0.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721957700,1721957956000,0.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,10.122830959242785,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,9.84399793075781,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,9.974428830839388,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,10.021989040592967,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,10.052821466445167,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,9.959181975568875,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,10.103767475082227,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,10.040844048880652,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,9.897789644774786,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958000,1721958080000,5.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958000,1721958080000,5.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,6.073698575545671,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,5.906398758454687,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,5.984657298503633,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,6.01319342435578,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,6.0316928798671,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,5.975509185341324,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,6.062260485049337,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,6.024506429328391,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,5.938673786864872,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958000,1721958106000,3.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958000,1721958106000,3.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721958000,1721958129000,0.0,false,false,625.8 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721958000,1721958129000,0.0,false,false,428.44 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721958000,1721958135000,0.0,false,false,613.71 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721958000,1721958135000,0.0,false,false,457.42 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721958000,1721958135000,0.0,false,false,401.85 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721958000,1721958135000,0.0,false,false,555.28 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721958000,1721958135000,0.0,false,false,560.78 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721958000,1721958135000,0.0,false,false,476.72 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957700,1721958141000,0.0,true,true,2.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957700,1721958141000,8.03188477665174,false,false,4.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721957700,1721958141000,0.0,true,true,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721958000,1721958141000,0.0,false,false,472.82 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721958000,1721958141000,495.16,false,false,495.16 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,591.3579936791018,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,307.908787541713 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721958000,1721958147000,1266.973522858827,true,true,625.8 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,608.73235717582,true,true,309.1896003319043 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,290.8103996680957 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721958000,1721958147000,843.5124946907753,true,true,428.44 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,610.107616388486,true,true,305.8358662613983 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,294.1641337386017 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,902.8812182181615,true,true,450.450112528132 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,449.549887471868 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,890.4926275353166,true,true,442.9068150208623 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,457.09318497913773 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,912.5264414330301,true,true,458.1332300542214 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,441.86676994577863 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,596.1238731772632,true,true,295.0007878978885 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,304.9992121021116 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,899.9684605980312,true,true,448.15378877354397 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,451.84621122645603 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,903.9087704976924,true,true,456.6215301286391 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,0.0,false,false,443.3784698713609 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958000,1721958147000,448.9072209127919,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958000,1721958147000,451.0927790872081,false,false,451.0927790872081 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721958000,1721958153000,1224.2813435548883,true,true,613.71 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721958000,1721958153000,916.8516453896069,true,true,457.42 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721958000,1721958153000,807.945261258198,true,true,401.85 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721958000,1721958153000,1106.026913478777,true,true,555.28 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721958000,1721958153000,1133.1981449353223,true,true,560.78 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721958000,1721958153000,957.334234996477,true,true,476.72 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721958000,1721958158000,935.9745799684828,true,true,472.82 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721958000,1721958158000,495.16,true,true,495.16 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721958000,1721958235000,0.0,false,false,6.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721958000,1721958240000,0.0,false,false,6.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721958000,1721958240000,20.105642932890333,true,true,10.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721958000,1721958246000,7.875198344606249,true,true,4.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721958000,1721958246000,0.0,false,false,4.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721958000,1721958246000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721958000,1721958246000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721958000,1721958252000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721958000,1721958252000,9.897789644774786,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721958000,1721958252000,6.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,6.073640515186783,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,5.967484528315575,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,6.0708702190400325,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,6.066304227748263,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,5.930593635040536,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,6.065490101840172,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,6.094230465305265,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,6.02909555153338,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,6.059650365239998,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958300,1721958388000,3.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958300,1721958388000,3.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,10.12273419197797,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,9.945807547192626,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,10.118117031733387,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,10.110507046247104,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,9.88432272506756,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,10.10915016973362,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,10.157050775508775,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,10.048492585888967,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,10.099417275399997,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958300,1721958393000,5.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958300,1721958393000,5.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721958300,1721958423000,494.91,false,false,494.91 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721958300,1721958429000,0.0,false,false,626.53 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721958300,1721958429000,0.0,false,false,428.86 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721958300,1721958429000,0.0,false,false,456.97 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721958300,1721958429000,0.0,false,false,472.1 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721958300,1721958435000,0.0,false,false,610.3700000000001 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721958300,1721958435000,0.0,false,false,399.61 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721958300,1721958435000,0.0,false,false,553.66 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721958300,1721958435000,0.0,false,false,562.09 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721958300,1721958435000,0.0,false,false,475.83 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,591.3523407055608,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,307.908787541713 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958000,1721958441000,3.9375991723031243,true,true,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,903.706303021649,true,true,454.3151969981239 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,445.6848030018761 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,592.3200402901222,true,true,292.7027027027027 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,307.2972972972973 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,594.6515538140139,true,true,294.07602956705387 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,305.9239704329462 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958000,1721958441000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,904.5896434296244,true,true,457.5880758807587 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,442.4119241192413 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,595.6669892062001,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,590.0214307507576,true,true,290.4491883477874 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,309.5508116522126 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,899.2356125065854,true,true,447.44801512287336 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,452.55198487712664 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958000,1721958441000,3.9591158579099144,true,true,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,898.3906726165919,true,true,444.773519163763 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,0.0,false,false,455.22648083623693 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721958300,1721958441000,494.91,true,true,494.91 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958300,1721958441000,290.3225806451613,true,true,290.3225806451613 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958300,1721958441000,309.6774193548387,false,false,309.6774193548387 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721958300,1721958447000,1268.4393306599916,true,true,626.53 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721958300,1721958447000,853.0718049378058,true,true,428.86 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721958300,1721958447000,924.0396809847078,true,true,456.97 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721958300,1721958447000,953.5869791432676,true,true,472.1 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721958300,1721958453000,1235.1590185318219,true,true,610.3700000000001 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721958300,1721958453000,789.9748408328495,true,true,399.61 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721958300,1721958453000,1119.4064165949433,true,true,553.66 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721958300,1721958453000,1141.8353340811454,true,true,562.09 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721958300,1721958453000,956.2748454287093,true,true,475.83 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721958300,1721958538000,0.0,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721958300,1721958544000,7.9566460377541,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721958300,1721958544000,0.0,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721958300,1721958544000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721958300,1721958550000,19.76864545013512,true,true,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721958300,1721958550000,0.0,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721958300,1721958550000,0.0,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721958300,1721958550000,0.0,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721958300,1721958550000,0.0,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721958300,1721958556000,6.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.88959008570723,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.992214989244983,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.831010424176716,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.84859018191394,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.853536155840334,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.903661873620486,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.876207532997418,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.91250957149803,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,9.87592988292854,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958600,1721958673000,5.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958600,1721958673000,5.0,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.933754051424338,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.99532899354699,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.89860625450603,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.909154109148364,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.9121216935042,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.942197124172291,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.925724519798451,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.947505742898818,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,5.925557929757124,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958600,1721958699000,3.0,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958600,1721958699000,3.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721958600,1721958736000,495.57,false,false,495.57 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,609.0183385149319,false,false,307.908787541713 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958300,1721958742000,0.0,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,447.8417266187051 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,903.6125353583412,false,false,452.1582733812949 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,286.7374361730717 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,615.937506097371,false,false,313.2625638269282 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,289.7248736664795 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,611.1545125800834,false,false,310.27512633352046 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958300,1721958742000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,291.8902562033488 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,607.194100093401,false,false,308.1097437966512 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,604.8805349845513,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,292.13286713286715 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,608.1119393569389,false,false,307.8671328671329 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,294.11006018916595 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,606.4273912399697,false,false,305.88993981083405 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958300,1721958742000,0.0,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,0.0,true,true,441.28474042999477 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,906.0479479485473,false,false,458.71525957000523 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958600,1721958742000,448.9072209127919,true,true,448.9072209127919 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958600,1721958742000,451.0927790872081,false,false,451.0927790872081 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721958600,1721958748000,1234.3988553178053,false,false,624.09 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721958600,1721958748000,858.571080735886,false,false,429.62 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721958600,1721958748000,1194.7037107876513,false,false,607.62 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721958600,1721958748000,901.7369170560403,false,false,457.8 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721958600,1721958748000,789.741215818291,false,false,400.74 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721958600,1721958748000,1096.2165254673043,false,false,553.44 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721958600,1721958748000,1101.967484116786,false,false,557.89 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721958600,1721958754000,495.57,true,true,495.57 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721958600,1721958760000,941.1531337754518,false,false,474.73 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721958600,1721958760000,934.4209818031667,false,false,473.08 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721958600,1721958766000,0.0,true,true,624.09 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721958600,1721958766000,0.0,true,true,429.62 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721958600,1721958766000,0.0,true,true,607.62 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721958600,1721958766000,0.0,true,true,457.8 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721958600,1721958766000,0.0,true,true,400.74 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721958600,1721958766000,0.0,true,true,553.44 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721958600,1721958766000,0.0,true,true,557.89 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721958600,1721958778000,0.0,true,true,474.73 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721958600,1721958778000,0.0,true,true,473.08 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721958600,1721958833000,11.867508102848676,false,false,6.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721958600,1721958833000,11.79721250901206,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721958600,1721958839000,0.0,true,true,4.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721958600,1721958845000,7.878872145531152,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721958600,1721958845000,19.70707231168067,false,false,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721958600,1721958845000,13.86512662306868,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721958600,1721958851000,13.826690546196385,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721958600,1721958851000,5.947505742898818,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721958600,1721958851000,9.87592988292854,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721958600,1721958863000,6.0,false,false,6.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ADA/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ADA/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,9.889863680509055,false,false,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,ETH/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,ETH/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,9.992197753541916,false,false,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BNB/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BNB/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,9.894271245241892,false,false,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,SOL/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,10.110363103102927,true,true,5.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,SOL/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,0.0,false,false,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,XRP/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,XRP/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,10.264319276162889,false,false,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOT/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOT/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,9.903649744691602,false,false,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,LTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,LTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,9.957869897509548,false,false,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,DOGE/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,DOGE/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,9.969291256553179,false,false,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,BTC/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,BTC/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,9.9185562923995,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,TRX/USDT,0x4f4487d4508ad3ccef77b778244ddee7200b9da6,1721958900,1721958969000,0.0,true,true,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,TRX/USDT,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,1721958900,1721958969000,9.787306063730137,false,false,5.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,ADA/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,5.933918208305433,false,false,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,ADA/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,ETH/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,5.99531865212515,false,false,3.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,ETH/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,BNB/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,5.936562747145135,false,false,3.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,BNB/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,SOL/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,0.0,false,false,3.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,SOL/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,6.066217861861756,true,true,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,XRP/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,6.1585915656977335,false,false,3.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,XRP/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOT/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,5.942189846814962,false,false,3.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,DOT/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,LTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,5.974721938505729,false,false,3.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,LTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,DOGE/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,5.981574753931907,false,false,3.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,DOGE/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,BTC/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,5.9511337754397,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,BTC/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,TRX/USDT,0x460fb37185e4504d2e6d282507e7552dc97c7356,1721958900,1721959010000,5.872383638238082,false,false,3.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,TRX/USDT,0xac82646af513586dbe301415e6df32ec71d95f04,1721958900,1721959010000,0.0,true,true,3.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,ADA/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,292.091212458287 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,ADA/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,609.0351869636734,false,false,307.908787541713 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x768c5195ea841c544cd09c61650417132615c0b9,ETH/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958600,1721959045000,3.996885995697993,false,false,2.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,ETH/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,447.8417266187051 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,ETH/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,903.6109767051934,false,false,452.1582733812949 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,BNB/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,292.7027027027027 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,BNB/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,608.0965624778395,false,false,307.2972972972973 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,SOL/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,594.6430877683492,true,true,294.07602956705387 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,SOL/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,0.0,false,false,305.9239704329462 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x768c5195ea841c544cd09c61650417132615c0b9,XRP/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958600,1721959045000,0.0,true,true,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,XRP/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,315.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,XRP/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,585.0661987412847,false,false,285.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,DOT/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,294.61773700305815 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOT/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,604.8797941926014,false,false,305.38226299694185 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,LTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,448.71191985279086 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,LTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,898.773597680554,false,false,451.28808014720914 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,DOGE/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,448.15378877354397 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,DOGE/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,900.9172965773178,false,false,451.84621122645603 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x768c5195ea841c544cd09c61650417132615c0b9,BTC/USDT,0x768c5195ea841c544cd09c61650417132615c0b9,1721958600,1721959045000,3.9503719531714157,false,false,2.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,BTC/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,445.36423841059604 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,BTC/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,901.8660787724842,false,false,454.6357615894039 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,TRX/USDT,0x35842372c513f8f217b968adc57a9296ba573d5c,1721958900,1721959045000,0.0,true,true,285.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,TRX/USDT,0x361a86f86f9317bdec76227a05b59cd22d73d180,1721958900,1721959045000,616.6002820149986,false,false,315.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,BNB/USDT,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,1721958900,1721959104000,1204.6275241082005,false,false,608.7500000000001 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,ADA/USDT,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,1721958900,1721959110000,1239.0812408036186,false,false,626.44 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,ETH/USDT,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,1721958900,1721959110000,854.63267386044,false,false,427.65 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,SOL/USDT,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,1721958900,1721959110000,0.0,false,false,457.96 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0xd651f6e28122e492394a1e41987d4000dfa23cc6,XRP/USDT,0xd651f6e28122e492394a1e41987d4000dfa23cc6,1721958900,1721959110000,824.3274810686416,false,false,401.55 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,DOT/USDT,0x5b7b92110290e45f16ae75b1b2362c0620094b5a,1721958900,1721959110000,1095.9973026460411,false,false,553.33 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,LTC/USDT,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,1721958900,1721959110000,1115.4208386996347,false,false,560.07 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0xb7f87637ceceebc4c183c4de06abe59996761007,DOGE/USDT,0xb7f87637ceceebc4c183c4de06abe59996761007,1721958900,1721959110000,948.4983087309824,false,false,475.71 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,BTC/USDT,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,1721958900,1721959110000,935.9149717508168,false,false,471.8 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,TRX/USDT,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,1721958900,1721959110000,969.8633070792741,false,false,495.47 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,BNB/USDT,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,1721958900,1721959122000,0.0,true,true,608.7500000000001 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,ADA/USDT,0x43584049fe6127ea6745d8ba42274e911f2a2d5c,1721958900,1721959127000,0.0,true,true,626.44 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,ETH/USDT,0xaedaf8e9f0b35bae051c3b17d30e429f84326351,1721958900,1721959127000,0.0,true,true,427.65 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,SOL/USDT,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,1721958900,1721959127000,926.0283773394033,true,true,457.96 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,XRP/USDT,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,1721958900,1721959127000,0.0,true,true,401.55 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,DOT/USDT,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,1721958900,1721959127000,0.0,true,true,553.33 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,LTC/USDT,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,1721958900,1721959127000,0.0,true,true,560.07 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,DOGE/USDT,0xa54165212d7efba6fb2878a1efcfcdd799b4345f,1721958900,1721959127000,0.0,true,true,475.71 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,BTC/USDT,0xeaffa8323a6674f6601eeab52fbbd509ac8df423,1721958900,1721959127000,0.0,true,true,471.8 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,TRX/USDT,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,1721958900,1721959127000,0.0,true,true,495.47 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0xf7a0d37a9d016df6704fc965c421d52e294397b4,ADA/USDT,0xf7a0d37a9d016df6704fc965c421d52e294397b4,1721958900,1721959139000,11.867836416610865,false,false,6.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0xf830b2c2504d4c61927d116c288b0d154230bbc4,ETH/USDT,0xf830b2c2504d4c61927d116c288b0d154230bbc4,1721958900,1721959139000,0.0,true,true,4.0 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x95546216d84fd764d89fe7a7841d50d661f90bb2,BNB/USDT,0x95546216d84fd764d89fe7a7841d50d661f90bb2,1721958900,1721959139000,11.87312549429027,false,false,6.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0xf9d2f5a42d599f39cd52c3119085568795010dab,SOL/USDT,0xf9d2f5a42d599f39cd52c3119085568795010dab,1721958900,1721959145000,0.0,false,false,4.0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x555e8de68d589d7495b5ed4bdf626f34968e8add,XRP/USDT,0x555e8de68d589d7495b5ed4bdf626f34968e8add,1721958900,1721959145000,0.0,true,true,10.0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,DOT/USDT,0x20d0eb8f700aeaf77ce38a390174d63b056f836e,1721958900,1721959145000,13.865109642568244,false,false,7.0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,LTC/USDT,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,1721958900,1721959157000,13.941017856513367,false,false,7.0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,DOGE/USDT,0x305591e801de18fbd8ad9eab63a7d7783ceedcef,1721958900,1721959157000,5.981574753931907,false,false,3.0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,BTC/USDT,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,1721958900,1721959157000,9.9185562923995,false,false,5.0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,TRX/USDT,0xa00062af913122d6de032612f1a0fc79a1f6fe2a,1721958900,1721959163000,11.744767276476164,false,false,6.0 \ No newline at end of file diff --git a/pdr_backend/lake/test/pdr_subscriptions.csv b/pdr_backend/lake/test/pdr_subscriptions.csv deleted file mode 100644 index 2155aa339..000000000 --- a/pdr_backend/lake/test/pdr_subscriptions.csv +++ /dev/null @@ -1,2141 +0,0 @@ -ID,pair,timeframe,source,tx_id,last_price_value,timestamp,user -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-112,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-126,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-14,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-140,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-28,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-42,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-56,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-70,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-84,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0-98,ADA/USDT,5m,binance,0x1c7eee10e1ace2c99122f2e47ef334522ce1acdcb3195daedfd4edaab90fa6f0,0.0,1721952125000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-112,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-126,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-14,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-140,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-28,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-42,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-56,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-70,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-84,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f-98,ADA/USDT,5m,binance,0x3c1c87d084a7019a29744a695f56db9a476128b8d7f9883c2912b87fe852f06f,0.0,1721952143000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-112,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-126,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-14,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-140,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-154,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-168,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-182,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-196,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-210,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-224,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-238,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-252,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-266,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-28,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-280,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-42,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-56,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-70,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-84,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513-98,ADA/USDT,5m,binance,0xfafd16481513e2907539a3fe921623000c390add5c48f423e6e3703f783dd513,0.0,1721952160000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-112,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-126,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-14,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-140,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-154,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-168,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-182,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-196,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-210,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-224,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-238,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-252,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-266,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-28,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-280,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-42,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-56,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-70,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-84,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae-98,ADA/USDT,5m,binance,0x00019edc5186daf2492023c0b6e2bd7df7267da71850c79fa11c9d5d45761cae,0.0,1721952172000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-112,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-126,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-14,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-140,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-154,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-168,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-182,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-196,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-210,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-224,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-238,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-252,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-266,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-28,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-280,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-42,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-56,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-70,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-84,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01-98,ADA/USDT,5m,binance,0x5e88b5a891092eae5fcf46da7a2c66d6c399914cfd8d26c0c0542c6a8058bb01,0.0,1721952190000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-112,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-126,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-14,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-140,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-154,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-168,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-182,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-196,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-210,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-224,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-238,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-252,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-266,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-28,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-280,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-42,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-56,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-70,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-84,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3-98,ADA/USDT,5m,binance,0xd62c27d76cd756d1da9d0d69a69581fe1bd9cb9fadab7c7e32231e2ed554cbe3,0.0,1721952202000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-15,ADA/USDT,5m,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-29,ADA/USDT,5m,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-43,ADA/USDT,5m,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-57,ADA/USDT,5m,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-71,ADA/USDT,5m,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-85,ADA/USDT,5m,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-99,ADA/USDT,5m,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-115,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-129,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-143,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-157,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-171,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-185,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-199,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-213,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-227,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-241,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-255,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-269,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f-283,XRP/USDT,1h,binance,0x2fe569c0278e6fb6b8309fefc0569d861136d5b7d136a59758e4369ad318e78f,0.0,1721952214000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-101,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-115,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-129,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-143,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-157,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-17,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-171,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-185,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-199,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-213,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-227,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-241,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-255,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-269,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-283,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-31,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-45,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-59,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-73,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75-87,XRP/USDT,1h,binance,0x607f80463a195918b7e7e14b297d79b60cd64c2856108818cc0479d64e8e5e75,0.0,1721952226000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-100,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-114,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-128,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-142,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-156,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-16,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-170,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-184,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-198,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-212,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-226,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-240,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-254,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-268,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-282,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-30,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-44,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-58,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-72,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a-86,XRP/USDT,1h,binance,0xb154c0dbf123b31b578f6be49a3d470c34627ccd6a0d2686bb8024269126ba0a,0.0,1721952237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-112,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-126,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-14,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-140,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-154,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-168,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-182,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-196,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-210,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-224,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-238,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-252,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-266,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-28,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-280,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-42,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-56,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-70,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-84,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913-98,XRP/USDT,1h,binance,0x6b2645ec7c1422aa1d33340fcce685bf6d010a81819b7338fd97dcc3a7069913,0.0,1721952243000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-106,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-120,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-134,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-148,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-162,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-176,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-190,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-204,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-218,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-22,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-232,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-246,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-260,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-274,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-288,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-36,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-50,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-64,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-78,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4-92,XRP/USDT,1h,binance,0x713d665adffce20d79c8e7161962f87e96e024e6ef0c7e16e892498c5c3ccba4,0.0,1721952254000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-112,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-126,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-14,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-140,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-154,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-168,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-182,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-196,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-28,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-42,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-56,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-70,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-84,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-98,XRP/USDT,1h,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-212,ETH/USDT,5m,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-226,ETH/USDT,5m,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-240,ETH/USDT,5m,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-254,ETH/USDT,5m,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-268,ETH/USDT,5m,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27-282,ETH/USDT,5m,binance,0x83d1e7b5be7e75d053b49647ae25fb06ce64f1e80214600adee36530d8756a27,0.0,1721952284000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-112,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-126,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-14,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-140,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-154,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-168,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-182,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-196,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-210,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-224,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-238,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-252,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-266,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-28,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-280,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-42,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-56,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-70,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-84,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807-98,ETH/USDT,5m,binance,0x895ec7f70d7f3e2328f0dc64f5d2e452cb93a3e09efec4209a93b1ab3e0f4807,0.0,1721952301000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-112,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-126,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-14,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-140,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-154,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-168,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-182,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-196,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-210,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-224,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-238,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-252,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-266,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-28,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-280,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-42,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-56,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-70,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-84,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830-98,ETH/USDT,5m,binance,0xef2b6488ebc46dc6c1ffe6565dfae391e2878acbee4859f148f028cd3a404830,0.0,1721952313000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-112,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-126,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-14,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-140,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-154,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-168,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-182,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-196,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-210,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-224,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-238,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-252,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-266,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-28,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-280,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-42,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-56,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-70,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-84,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389-98,ETH/USDT,5m,binance,0x530843bff8dcc385cd4626bb3cbebc9268c6fef93f292a31422d036ea7245389,0.0,1721952319000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-112,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-126,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-14,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-140,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-154,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-168,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-182,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-196,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-210,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-224,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-238,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-252,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-266,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-28,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-280,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-42,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-56,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-70,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-84,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418-98,ETH/USDT,5m,binance,0x47d197b1bbb910e63cde8afe366c52af33b1c4a6943fda6e46adcbbe98b00418,0.0,1721952325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-112,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-126,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-14,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-140,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-154,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-168,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-182,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-196,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-210,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-224,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-238,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-252,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-266,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-28,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-280,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-42,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-56,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-70,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-84,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf-98,ETH/USDT,5m,binance,0x290dcb42b1233b8646b8f9b4b242bea34bfe8a299f14ccee2e75e0829f0a71bf,0.0,1721952337000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-0x0d0d0f0f3c5daf1b60c6b7083f7a84ca7422620dec76eb6f6a1947b290814ebb-14,ETH/USDT,5m,binance,0x0d0d0f0f3c5daf1b60c6b7083f7a84ca7422620dec76eb6f6a1947b290814ebb,0.0,1721952372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-112,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-126,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-14,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-28,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-42,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-56,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-70,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-84,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3-98,BNB/USDT,5m,binance,0x59c2c6e9237077c6b0ff30c9dfcb24e16d9f0579b1cff5b20af65c491a66eee3,0.0,1721952395000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-100,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-114,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-128,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-142,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-16,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-30,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-44,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-58,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-72,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb-86,BNB/USDT,5m,binance,0x04bec38a3aa3bf330cc176aea694690ef7e9335833bfb7333114779c6d15afbb,0.0,1721952412000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-101,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-115,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-129,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-143,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-157,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-17,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-171,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-185,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-199,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-213,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-227,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-241,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-255,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-269,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-283,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-31,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-45,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-59,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-73,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644-87,BNB/USDT,5m,binance,0xbbc793cf1b30ff76a40a4482a494e5d84afa8fc4218c6a7cab615c9dc45af644,0.0,1721952424000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-100,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-114,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-128,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-142,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-156,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-16,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-170,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-184,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-198,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-212,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-226,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-240,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-254,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-268,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-282,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-30,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-44,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-58,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-72,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872-86,BNB/USDT,5m,binance,0xabfaf212a1356067d56e5d7070dc63a5d2ca455f01341058956f6c43ceaa5872,0.0,1721952436000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-112,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-126,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-14,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-140,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-154,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-168,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-182,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-196,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-210,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-224,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-238,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-252,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-266,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-28,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-280,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-42,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-56,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-70,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-84,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d-98,BNB/USDT,5m,binance,0xcf1bdf45d91462d5e9030c4c6ff8348be1c3b64e800b4765a15f56706660fb7d,0.0,1721952448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-112,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-126,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-14,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-140,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-154,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-168,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-182,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-196,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-210,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-224,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-238,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-252,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-266,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-28,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-280,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-42,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-56,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-70,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-84,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4-98,BNB/USDT,5m,binance,0xfc9827f93af4802a81a9c09317876af8c074b7ec7a660b17721b499c3f6d8ae4,0.0,1721952461000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35-112,BNB/USDT,5m,binance,0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35,0.0,1721952496000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35-14,BNB/USDT,5m,binance,0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35,0.0,1721952496000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35-28,BNB/USDT,5m,binance,0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35,0.0,1721952496000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35-42,BNB/USDT,5m,binance,0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35,0.0,1721952496000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35-56,BNB/USDT,5m,binance,0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35,0.0,1721952496000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35-70,BNB/USDT,5m,binance,0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35,0.0,1721952496000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35-84,BNB/USDT,5m,binance,0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35,0.0,1721952496000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35-98,BNB/USDT,5m,binance,0x129ce43b4f294854ea62317c4ba498516a2632ca0aa680d59c20b625a8451d35,0.0,1721952496000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-112,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-126,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-14,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-140,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-154,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-168,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-28,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-42,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-56,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-70,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-84,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033-98,SOL/USDT,5m,binance,0x94db6089585ae6d1559cad14e267d97ad6d8fe64573dd3bc812890f55f1c1033,0.0,1721952508000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-112,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-126,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-14,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-140,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-154,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-168,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-182,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-196,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-210,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-224,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-238,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-252,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-266,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-28,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-280,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-42,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-56,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-70,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-84,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d-98,SOL/USDT,5m,binance,0x54e726bd130dc897938239d0a9e567e80e5a087a66eca7e790d47be28101947d,0.0,1721952520000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-112,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-126,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-14,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-140,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-154,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-168,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-182,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-196,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-210,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-224,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-238,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-252,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-266,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-28,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-280,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-42,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-56,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-70,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-84,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e-98,SOL/USDT,5m,binance,0xe4debdc1d1db28b86368706fb6ec2984366bf63d90bd40426381884ea080ad8e,0.0,1721952531000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-112,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-126,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-14,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-140,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-154,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-168,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-182,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-196,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-210,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-224,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-238,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-252,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-266,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-28,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-280,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-42,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-56,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-70,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-84,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f-98,SOL/USDT,5m,binance,0x9c6c25674471a1b77b23756db9d59e31346a6ef23713f400f4a6e37b6fa8cb7f,0.0,1721952549000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-113,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-127,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-141,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-15,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-155,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-169,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-183,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-197,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-211,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-225,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-239,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-253,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-267,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-281,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-29,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-43,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-57,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-71,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-85,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af-99,SOL/USDT,5m,binance,0x9d6fc02caa021d4afdb16c27c261a8af0cf275772564f274787868281b1f68af,0.0,1721952567000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-112,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-126,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-14,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-140,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-154,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-168,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-182,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-196,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-210,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-28,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-42,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-56,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-70,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-84,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd-98,SOL/USDT,5m,binance,0xaff1c4466e9618bbf52e63a1149c56f37ec287c7a80d32d5fb1bd8b9214e24bd,0.0,1721952590000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1-14,XRP/USDT,5m,binance,0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1,0.0,1721952596000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1-28,XRP/USDT,5m,binance,0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1,0.0,1721952596000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1-42,XRP/USDT,5m,binance,0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1,0.0,1721952596000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1-56,XRP/USDT,5m,binance,0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1,0.0,1721952596000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1-70,XRP/USDT,5m,binance,0x9b314ce285e02f2d9092045526054c5e96710bf3d010c9e004638f36d15d4af1,0.0,1721952596000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-112,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-126,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-14,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-140,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-154,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-168,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-182,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-196,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-210,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-224,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-238,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-252,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-266,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-28,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-280,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-42,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-56,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-70,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-84,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad-98,XRP/USDT,5m,binance,0x8096546f04937a502d51ab87bc28062f933f23385d3fe1185d3eb0ddda7bd2ad,0.0,1721952608000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-112,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-126,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-14,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-140,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-154,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-168,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-182,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-196,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-210,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-224,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-238,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-252,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-266,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-28,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-280,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-42,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-56,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-70,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-84,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9-98,XRP/USDT,5m,binance,0x48983a0eb29d6dfd9746e3d45c55823649f1838d581cf556125727a8e0c204f9,0.0,1721952625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-112,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-126,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-14,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-140,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-154,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-168,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-182,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-196,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-210,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-224,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-238,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-252,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-266,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-28,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-280,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-42,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-56,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-70,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-84,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8-98,XRP/USDT,5m,binance,0x51754ea03cb6f3eeb2896b0686f6c3c8d39f71f92ca413898b15c8b4a1f299f8,0.0,1721952636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-112,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-126,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-14,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-140,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-154,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-168,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-182,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-196,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-210,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-224,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-238,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-252,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-266,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-28,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-280,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-42,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-56,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-70,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-84,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645-98,XRP/USDT,5m,binance,0x180ee835597ddb22e17feef3f97d4705ad465d20e58c5adc580fce6fa5633645,0.0,1721952649000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-112,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-126,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-14,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-140,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-154,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-168,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-182,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-196,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-210,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-224,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-238,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-252,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-266,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-28,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-280,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-42,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-56,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-70,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-84,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5-98,XRP/USDT,5m,binance,0x36f7f3ab494efa66d65be5a27acfccc3d2d40573883f89a992e299c963883ee5,0.0,1721952660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-14,XRP/USDT,5m,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-28,XRP/USDT,5m,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-100,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-114,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-128,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-142,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-156,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-170,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-184,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-198,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-212,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-226,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-240,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-254,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-268,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-282,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-44,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-58,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-72,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52-86,SOL/USDT,1h,binance,0xc62035cf04103fd7414683e288a681557556ca25326e8dde1648e0e5b97d3c52,0.0,1721952672000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-112,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-126,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-14,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-140,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-154,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-168,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-182,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-196,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-210,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-224,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-238,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-252,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-266,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-28,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-280,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-42,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-56,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-70,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-84,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451-98,SOL/USDT,1h,binance,0x9327470e775ed0845eaf853f398d3b61ceb0c90a77286bf39fe8ff59e949c451,0.0,1721952695000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-112,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-126,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-14,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-140,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-154,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-168,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-182,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-196,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-210,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-224,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-238,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-252,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-266,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-28,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-280,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-42,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-56,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-70,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-84,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a-98,SOL/USDT,1h,binance,0x857e59e9cb5361f57d40ae38552e656912ce8fd638886de7c632ecaf1477340a,0.0,1721952706000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-112,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-126,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-14,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-140,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-154,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-168,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-182,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-196,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-210,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-224,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-238,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-252,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-266,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-28,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-280,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-42,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-56,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-70,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-84,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07-98,SOL/USDT,1h,binance,0x5337306f74539a5707d3297a212c35d0655a47ea8fa67dbcedbf8414cd00ec07,0.0,1721952718000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-112,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-126,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-14,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-140,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-154,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-168,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-182,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-196,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-210,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-224,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-238,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-252,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-266,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-28,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-280,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-42,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-56,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-70,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-84,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4-98,SOL/USDT,1h,binance,0xe52d5a3aec9b60f2ed7af3f8a93dc135d1f2999ee2f2e58b149ac43ff6b043d4,0.0,1721952730000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-112,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-126,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-14,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-28,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-42,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-56,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-70,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-84,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-98,SOL/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-142,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-156,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-170,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-184,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-198,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-212,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-226,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-240,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-254,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-268,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950-282,BTC/USDT,1h,binance,0xf6140424be10eb1fc23f11129c2cb64e4923ca895e48c14f1192ba01e577d950,0.0,1721952736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-112,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-126,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-14,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-140,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-154,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-168,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-182,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-196,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-210,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-224,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-238,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-252,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-266,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-28,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-280,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-42,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-56,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-70,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-84,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd-98,BTC/USDT,1h,binance,0x361adecbc4b347eb6bafd0b786fb035f5d56041807ef0b547c5eec1fbe8fabdd,0.0,1721952754000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-112,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-126,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-14,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-140,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-154,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-168,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-182,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-196,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-210,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-224,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-238,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-252,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-266,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-28,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-280,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-42,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-56,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-70,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-84,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293-98,BTC/USDT,1h,binance,0x16df647d103d854a82c9d89347124a68c30d036a7a903d683c8c84c78ba2f293,0.0,1721952766000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-112,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-126,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-14,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-140,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-154,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-168,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-182,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-196,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-210,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-224,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-238,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-252,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-266,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-28,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-280,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-42,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-56,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-70,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-84,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595-98,BTC/USDT,1h,binance,0x2fc663e9910d7a72e6c82d50c4d2340f5219b25ac03fc09092e2ce9f01dfb595,0.0,1721952778000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-112,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-126,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-14,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-140,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-154,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-168,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-182,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-196,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-210,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-224,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-238,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-252,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-266,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-28,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-280,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-42,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-56,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-70,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-84,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716-98,BTC/USDT,1h,binance,0xd5dc79611636df03f87e7ccbed52531ed84345e8bb0c0451435081a53f393716,0.0,1721952789000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-112,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-126,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-14,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-140,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-154,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-168,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-182,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-196,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-210,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-224,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-28,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-42,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-56,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-70,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-84,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-98,BTC/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-240,DOT/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-254,DOT/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-268,DOT/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27-282,DOT/USDT,1h,binance,0xe2131d407e8b801015d331579e989c42a681458ca6ce1d8797677a370817bd27,0.0,1721952801000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-113,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-127,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-141,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-15,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-155,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-169,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-183,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-197,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-211,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-225,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-239,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-253,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-267,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-281,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-29,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-43,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-57,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-71,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-85,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5-99,DOT/USDT,1h,binance,0xa03485ae33f59047b925d0d87ae34c67ade7c6ff397a50049cd524f1896e48a5,0.0,1721952819000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-102,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-116,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-130,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-144,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-158,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-172,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-18,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-186,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-200,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-214,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-228,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-242,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-256,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-270,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-284,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-32,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-46,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-60,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-74,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac-88,DOT/USDT,1h,binance,0x8e01ac952f165dde8794345efebcfb3fe22d6c07b4bc32b7a2142d77831e26ac,0.0,1721952831000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-113,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-127,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-141,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-15,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-155,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-169,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-183,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-197,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-211,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-225,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-239,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-253,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-267,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-281,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-29,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-43,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-57,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-71,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-85,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa-99,DOT/USDT,1h,binance,0xb0b170765938165db83b5aa374b9a143c0f0ed1cba1180b193168b95a2378bfa,0.0,1721952843000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-112,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-126,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-14,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-140,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-154,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-168,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-182,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-196,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-210,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-224,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-238,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-252,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-266,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-28,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-280,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-42,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-56,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-70,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-84,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148-98,DOT/USDT,1h,binance,0x62fe186a0dce1210659a8905515c339064bfcd39d7876e9648cb2f2680565148,0.0,1721952860000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-112,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-126,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-14,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-140,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-154,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-168,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-182,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-196,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-210,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-224,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-238,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-252,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-266,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-28,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-280,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-42,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-56,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-70,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-84,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b-98,DOT/USDT,1h,binance,0x5455cf5e882e8876d82c7de0db876b0909cdbb5433b87114d4e38eb7b6607a4b,0.0,1721952872000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa94aeedd25c20a2373d404ec57055e4c67b372a25b8341452ab10084558e3c1e-20,DOT/USDT,1h,binance,0xa94aeedd25c20a2373d404ec57055e4c67b372a25b8341452ab10084558e3c1e,0.0,1721952901000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa94aeedd25c20a2373d404ec57055e4c67b372a25b8341452ab10084558e3c1e-34,DOT/USDT,1h,binance,0xa94aeedd25c20a2373d404ec57055e4c67b372a25b8341452ab10084558e3c1e,0.0,1721952901000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-0xa94aeedd25c20a2373d404ec57055e4c67b372a25b8341452ab10084558e3c1e-48,DOT/USDT,1h,binance,0xa94aeedd25c20a2373d404ec57055e4c67b372a25b8341452ab10084558e3c1e,0.0,1721952901000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-112,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-126,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-14,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-140,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-154,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-168,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-182,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-196,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-210,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-224,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-238,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-28,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-42,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-56,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-70,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-84,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c-98,DOT/USDT,5m,binance,0x3b56892fe5f3ef8fb3943c60af12c2f3faa62b30dcc8424d097ed17dc983fe1c,0.0,1721952914000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-112,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-126,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-14,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-140,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-154,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-168,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-182,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-196,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-210,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-224,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-238,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-252,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-266,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-28,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-280,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-42,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-56,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-70,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-84,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2-98,DOT/USDT,5m,binance,0x016ef81de1598667ce37169f4364816470f6a228ea9adc462bcdb3ccf858cbd2,0.0,1721952926000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-112,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-126,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-14,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-140,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-154,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-168,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-182,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-196,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-210,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-224,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-238,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-252,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-266,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-28,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-280,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-42,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-56,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-70,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-84,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d-98,DOT/USDT,5m,binance,0xba86cb4916a86d9c0d4586a2285b25ac2842cf622ccbac987a5ca370c7634d4d,0.0,1721952938000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-112,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-126,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-14,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-140,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-154,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-168,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-182,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-196,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-210,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-224,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-238,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-252,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-266,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-28,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-280,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-42,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-56,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-70,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-84,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273-98,DOT/USDT,5m,binance,0xf9a31882e9e6db8f15596bb1b8e91b56f253054db806d9ea3e84942785b41273,0.0,1721952955000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-112,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-126,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-14,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-140,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-154,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-168,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-182,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-196,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-210,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-224,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-238,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-252,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-266,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-28,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-280,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-42,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-56,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-70,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-84,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7-98,DOT/USDT,5m,binance,0x1020f60e322cd7dfcae93f0d853849861609cec338dcf2d016953d13951d23c7,0.0,1721952967000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-112,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-126,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-14,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-140,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-28,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-42,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-56,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-70,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-84,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-98,DOT/USDT,5m,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-156,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-170,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-184,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-198,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-212,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-226,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-240,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-254,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-268,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed-282,ADA/USDT,1h,binance,0xdd362e75fc775230a0475d5ec9bde027cb368e45e9e585fb4c764814c757e5ed,0.0,1721952978000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-112,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-126,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-14,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-140,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-154,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-168,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-182,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-196,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-210,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-224,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-238,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-252,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-266,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-28,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-280,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-42,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-56,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-70,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-84,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e-98,ADA/USDT,1h,binance,0x66e1927ec8bfaaab35d4f8b260efff859ae3bf280cd478c8a051ac2b37a6c85e,0.0,1721952990000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-112,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-126,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-14,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-140,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-154,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-168,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-182,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-196,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-210,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-224,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-238,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-252,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-266,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-28,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-280,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-42,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-56,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-70,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-84,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62-98,ADA/USDT,1h,binance,0x4e4795a98edad870be85de5642b2852550bf1467639fa49600c423c8b17b5d62,0.0,1721953002000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-102,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-116,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-130,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-144,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-158,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-172,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-186,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-200,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-214,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-228,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-242,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-256,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-270,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-284,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-298,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-312,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-46,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-60,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-74,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b-88,ADA/USDT,1h,binance,0x3344c37ddb02f30dba4fbcf53fda2765fc6ac16b108d9d6d4678650ec4f7b63b,0.0,1721953019000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-112,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-126,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-14,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-140,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-154,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-168,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-182,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-196,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-210,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-224,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-238,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-252,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-266,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-28,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-280,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-42,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-56,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-70,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-84,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06-98,ADA/USDT,1h,binance,0x391f0eb2a34c4fb85afb4234925f3d5aab5b51a218508055e36e22005240ea06,0.0,1721953031000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-112,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-126,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-14,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-140,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-154,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-168,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-182,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-196,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-210,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-224,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-238,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-28,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-42,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-56,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-70,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-84,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-98,ADA/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-254,ETH/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-268,ETH/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab-282,ETH/USDT,1h,binance,0x7d05a481d4b1745881523520d09eb704825848bd9970fdbfb39f70943c5d35ab,0.0,1721953043000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-112,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-126,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-14,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-140,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-154,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-168,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-182,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-196,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-210,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-224,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-238,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-252,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-266,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-28,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-280,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-42,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-56,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-70,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-84,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80-98,ETH/USDT,1h,binance,0x5a86f679d8b4075a067ab04bfa99d58244b50fc1723a5e9546d9fc54ddf6ff80,0.0,1721953054000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-112,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-126,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-14,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-140,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-154,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-168,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-182,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-196,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-210,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-224,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-238,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-252,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-266,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-28,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-280,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-42,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-56,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-70,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-84,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a-98,ETH/USDT,1h,binance,0x33dd2c13ff7072b7aaca46841b5c39c8597a9df044fed05d50f52b256b1f895a,0.0,1721953066000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-112,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-126,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-14,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-140,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-154,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-168,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-182,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-196,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-210,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-224,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-238,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-252,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-266,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-28,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-280,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-42,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-56,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-70,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-84,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5-98,ETH/USDT,1h,binance,0x6262a317c8487d38d406570f8d3819af04c68d60ed47d54085393bb981ca6aa5,0.0,1721953084000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-112,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-126,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-14,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-140,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-154,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-168,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-182,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-196,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-210,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-224,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-238,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-252,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-266,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-28,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-280,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-42,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-56,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-70,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-84,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a-98,ETH/USDT,1h,binance,0x2466653f370e26678ef61d1caddcab1858876861480b201e6282edfdf4a75e7a,0.0,1721953095000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-112,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-126,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-14,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-140,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-154,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-168,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-182,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-196,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-210,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-224,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-238,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-252,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-266,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-28,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-280,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-42,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-56,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-70,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-84,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79-98,ETH/USDT,1h,binance,0x9b97e2f9ef791c3c066d83f7dce5742bca2942234d8799b449a2e5f1af820b79,0.0,1721953101000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0xdc2478dd28edf9a53f3323a633a014fe4ccd574d506bfd0c4e0c236cb5b5bf26-14,ETH/USDT,1h,binance,0xdc2478dd28edf9a53f3323a633a014fe4ccd574d506bfd0c4e0c236cb5b5bf26,0.0,1721953136000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0xdc2478dd28edf9a53f3323a633a014fe4ccd574d506bfd0c4e0c236cb5b5bf26-28,ETH/USDT,1h,binance,0xdc2478dd28edf9a53f3323a633a014fe4ccd574d506bfd0c4e0c236cb5b5bf26,0.0,1721953136000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0xdc2478dd28edf9a53f3323a633a014fe4ccd574d506bfd0c4e0c236cb5b5bf26-42,ETH/USDT,1h,binance,0xdc2478dd28edf9a53f3323a633a014fe4ccd574d506bfd0c4e0c236cb5b5bf26,0.0,1721953136000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xaa6515c138183303b89b98aea756b54f711710c5-0xdc2478dd28edf9a53f3323a633a014fe4ccd574d506bfd0c4e0c236cb5b5bf26-56,ETH/USDT,1h,binance,0xdc2478dd28edf9a53f3323a633a014fe4ccd574d506bfd0c4e0c236cb5b5bf26,0.0,1721953136000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-110,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-124,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-138,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-152,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-166,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-180,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-194,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-208,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-222,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-236,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-26,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-40,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-54,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-68,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-82,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4-96,LTC/USDT,5m,binance,0x0d5414ac68fdd52f4255bba15bb804328f87439f7e9ad53d35448abca24b34d4,0.0,1721953148000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-112,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-126,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-14,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-140,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-154,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-168,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-182,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-196,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-210,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-224,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-238,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-252,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-266,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-28,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-280,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-42,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-56,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-70,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-84,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7-98,LTC/USDT,5m,binance,0xa2cca4a609e40481b29a11661f5787267a71d1b15b7d26f61962cc09f39612e7,0.0,1721953171000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-112,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-126,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-14,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-140,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-154,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-168,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-182,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-196,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-210,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-224,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-238,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-252,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-266,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-28,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-280,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-42,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-56,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-70,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-84,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942-98,LTC/USDT,5m,binance,0x90a63e0cb30252f8891fd96fada81737e7a572bc27092190ca1d6c76a26d1942,0.0,1721953189000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-112,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-126,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-14,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-140,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-154,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-168,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-182,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-196,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-210,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-224,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-238,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-252,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-266,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-28,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-280,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-42,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-56,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-70,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-84,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149-98,LTC/USDT,5m,binance,0x4b8090991fb60284ef32b4e33f32b046a9f2f2b8f88046f42afba54c33486149,0.0,1721953201000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-112,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-126,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-14,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-140,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-154,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-168,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-182,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-196,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-210,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-224,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-238,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-252,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-266,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-28,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-280,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-42,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-56,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-70,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-84,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7-98,LTC/USDT,5m,binance,0x3d18c9b97d36c98863f7098db6db70eb1eff7b32b1b26e0878210c80b8dd27b7,0.0,1721953213000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-112,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-126,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-14,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-140,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-154,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-28,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-42,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-56,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-70,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-84,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xb1c55346023dee4d8b0d7b10049f0c8854823766-0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315-98,LTC/USDT,5m,binance,0x8971241a5b60ea7749de7a486ef33def191cd046725326919f636238eda75315,0.0,1721953237000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-112,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-126,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-14,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-28,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-42,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-56,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-70,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-84,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9-98,DOGE/USDT,5m,binance,0x475243cd8e406f4b6e3f7668dec3f9c6fd12c591f465a171a79b345c586356d9,0.0,1721953249000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-112,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-126,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-14,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-140,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-154,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-168,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-182,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-196,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-210,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-224,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-238,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-252,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-266,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-28,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-280,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-42,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-56,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-70,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-84,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757-98,DOGE/USDT,5m,binance,0x0944a8837d7fab0b3dd8df106e9ab135e59142032c89072cfc01083534823757,0.0,1721953267000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-112,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-126,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-14,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-140,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-154,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-168,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-182,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-196,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-210,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-224,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-238,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-252,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-266,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-28,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-280,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-42,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-56,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-70,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-84,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373-98,DOGE/USDT,5m,binance,0x318585aff8d27dd58f9c6494eea1ffc245b76f6ffacd1b37849a231acc17f373,0.0,1721953278000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-103,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-117,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-131,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-145,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-159,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-173,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-187,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-201,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-215,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-229,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-243,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-257,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-271,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-285,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-299,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-313,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-47,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-61,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-75,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387-89,DOGE/USDT,5m,binance,0x5acd5a14482c30f96742586d2367ecb739a624a9671ea7288cfb194474edd387,0.0,1721953290000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-112,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-126,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-14,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-140,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-154,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-168,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-182,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-196,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-210,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-224,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-238,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-252,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-266,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-28,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-280,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-42,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-56,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-70,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-84,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768-98,DOGE/USDT,5m,binance,0xf90232c5a86430a9a6e62420b54d3aec2d43ec682de40b703941866dd3587768,0.0,1721953307000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-100,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-114,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-128,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-142,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-156,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-16,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-170,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-184,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-198,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-212,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-226,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-240,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-254,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-30,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-44,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-58,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-72,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-86,DOGE/USDT,5m,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-270,BNB/USDT,1h,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0-284,BNB/USDT,1h,binance,0x2572ae0e2aaf9bcf9fdb34c54b60b0931d12f59edbb7835294417f55d87609e0,0.0,1721953325000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-112,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-126,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-14,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-140,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-154,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-168,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-182,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-196,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-210,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-224,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-238,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-252,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-266,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-28,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-280,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-42,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-56,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-70,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-84,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b-98,BNB/USDT,1h,binance,0x2f142695a5f151ab9345f5acbd9b8f2ab19c7e9114448483d800dd57e14d341b,0.0,1721953349000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-112,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-126,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-14,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-140,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-154,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-168,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-182,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-196,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-210,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-224,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-238,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-252,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-266,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-28,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-280,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-42,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-56,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-70,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-84,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e-98,BNB/USDT,1h,binance,0x7277409178e06e114b87026ae7a0bc6d1abc3166c74559642ddfaf65cf03203e,0.0,1721953360000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-112,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-126,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-14,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-140,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-154,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-168,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-182,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-196,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-210,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-224,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-238,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-252,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-266,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-28,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-280,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-42,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-56,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-70,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-84,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb-98,BNB/USDT,1h,binance,0xda7882103da4fa10689c45bc8bd82b111850ab5d57a8c5d2b657770de47d8abb,0.0,1721953372000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-112,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-126,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-14,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-140,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-154,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-168,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-182,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-196,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-210,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-224,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-238,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-252,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-266,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-28,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-280,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-42,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-56,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-70,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-84,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809-98,BNB/USDT,1h,binance,0x5df654fc69e9c5c016a309b06233f99f09040bae93cd1ba8506a755fbd346809,0.0,1721953384000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-112,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-126,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-14,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-140,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-154,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-168,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-182,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-196,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-210,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-224,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-238,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-252,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-266,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-28,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-280,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-42,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-56,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-70,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-84,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8-98,BNB/USDT,1h,binance,0x75366c958accf1e572d4f7ee3f2f6273731a6ced5627db884c2fee00f27607f8,0.0,1721953396000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-14,BNB/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-28,BNB/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-42,BNB/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-56,BNB/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd41ffee162905b45b65fa6b6e4468599f0490065-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-70,BNB/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-100,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-114,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-128,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-142,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-156,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-170,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-184,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-198,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-212,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-226,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-240,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-254,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-268,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-282,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774-86,TRX/USDT,1h,binance,0x94d418523c39d3923d0806f7643a2444cc1900e82226367af70058ac98ba9774,0.0,1721953407000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-100,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-114,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-128,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-142,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-156,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-16,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-170,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-184,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-198,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-212,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-226,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-240,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-254,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-268,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-282,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-30,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-44,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-58,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-72,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9-86,TRX/USDT,1h,binance,0xf98f1a5c33d0d081f5a4a655c442942f6f31b605ee5adea214a148fe8039a9b9,0.0,1721953419000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-108,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-122,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-136,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-150,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-164,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-178,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-192,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-206,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-220,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-234,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-24,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-248,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-262,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-276,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-290,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-38,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-52,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-66,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-80,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f-94,TRX/USDT,1h,binance,0xbd4650fa6a9cd2eb0aa1792300fc963c79bd2da92546c87fde6d9ca38e4e682f,0.0,1721953431000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-112,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-126,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-14,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-140,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-154,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-168,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-182,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-196,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-210,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-224,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-238,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-252,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-266,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-28,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-280,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-42,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-56,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-70,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-84,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7-98,TRX/USDT,1h,binance,0x603a7671db39c1d7bbda16bd6b5377481651568a3c387bed0f1580fb00030ae7,0.0,1721953442000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-112,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-126,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-14,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-140,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-154,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-168,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-182,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-196,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-210,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-224,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-238,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-252,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-266,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-28,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-280,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-42,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-56,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-70,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-84,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6-98,TRX/USDT,1h,binance,0x836f6d1abc943c29c8469af10c8a80dfe6b20ba2f8d4f0d15fc8b3de1aa306d6,0.0,1721953448000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-112,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-126,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-14,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-140,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-154,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-168,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-28,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-42,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-56,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-70,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-84,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-98,TRX/USDT,1h,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-184,BTC/USDT,5m,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-198,BTC/USDT,5m,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-212,BTC/USDT,5m,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-226,BTC/USDT,5m,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-240,BTC/USDT,5m,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-254,BTC/USDT,5m,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-268,BTC/USDT,5m,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78-282,BTC/USDT,5m,binance,0x0608c3a802011d2521466f39d96f5179ce713566729daaa09b1428daca213f78,0.0,1721953483000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-112,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-126,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-14,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-140,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-154,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-168,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-182,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-196,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-210,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-224,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-238,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-252,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-266,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-28,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-280,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-42,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-56,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-70,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-84,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b-98,BTC/USDT,5m,binance,0x9d1afb7b3d4d6c8568e70dabd11cacf7f5bb4b458bcaf19b9812dbeff4975a6b,0.0,1721953501000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-112,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-126,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-14,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-140,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-154,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-168,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-182,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-196,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-210,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-224,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-238,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-252,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-266,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-28,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-280,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-42,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-56,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-70,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-84,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf-98,BTC/USDT,5m,binance,0x7d9630d8749a637d7385a233503b3ceac922ed11dbc00ec00384a2d4e04b18cf,0.0,1721953513000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-112,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-126,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-14,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-140,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-154,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-168,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-182,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-196,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-210,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-224,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-238,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-252,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-266,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-28,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-280,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-42,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-56,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-70,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-84,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200-98,BTC/USDT,5m,binance,0xfa12a7c16d74e076528681ebb5ee6b73ff663f25d74f56a98fd2ddee9eb41200,0.0,1721953519000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-112,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-126,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-14,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-140,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-154,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-168,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-182,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-196,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-210,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-224,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-238,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-252,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-266,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-28,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-280,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-42,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-56,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-70,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-84,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb-98,BTC/USDT,5m,binance,0x5ea0cc8ac6ca63751037a1f8b9f7593a7b84071275fd8d41e39d14e2c63deecb,0.0,1721953524000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-112,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-126,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-14,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-140,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-154,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-168,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-182,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-196,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-210,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-224,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-238,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-252,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-266,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-28,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-42,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-56,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-70,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-84,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be-98,BTC/USDT,5m,binance,0x36b7311bd59be1dad0132d8f96203f0d66414c10e04ee0ad83a934896bf107be,0.0,1721953554000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xbb7d6d4e06ab47f72a0e6e5fa49518e63edd826f21babbcf0d5c6eaf93105e43-14,TRX/USDT,5m,binance,0xbb7d6d4e06ab47f72a0e6e5fa49518e63edd826f21babbcf0d5c6eaf93105e43,0.0,1721953571000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-112,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-126,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-14,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-140,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-154,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-168,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-182,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-196,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-210,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-224,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-238,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-252,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-266,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-28,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-280,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-42,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-56,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-70,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-84,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4-98,TRX/USDT,5m,binance,0xd6b127c48ba1c71db7380677ed993722a81851b5ddeb62f25109a0089e96a4d4,0.0,1721953584000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-112,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-126,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-14,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-140,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-154,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-168,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-182,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-196,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-210,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-224,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-238,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-252,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-266,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-28,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-280,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-42,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-56,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-70,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-84,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202-98,TRX/USDT,5m,binance,0xba2cb02c18b5c305252eff6686136fbbaacdcc67870ec8f4504752afd8764202,0.0,1721953595000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-112,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-126,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-14,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-140,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-154,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-168,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-182,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-196,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-210,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-224,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-238,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-252,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-266,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-28,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-280,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-42,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-56,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-70,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-84,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1-98,TRX/USDT,5m,binance,0xfa0302c6bf21c648e6beb271f2420c468e50101bfb308c33a6f158452d44c1a1,0.0,1721953607000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-102,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-116,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-130,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-144,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-158,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-172,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-186,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-200,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-214,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-228,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-242,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-256,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-270,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-284,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-298,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-312,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-46,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-60,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-74,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111-88,TRX/USDT,5m,binance,0xa1d3e4cd8200abd1c1e7f185ca7333b5cb06f440c3f74654cbb379ede40f1111,0.0,1721953625000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-112,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-126,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-14,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-140,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-154,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-168,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-182,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-196,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-210,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-224,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-238,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-252,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-266,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-28,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-280,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-42,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-56,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-70,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-84,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf-98,TRX/USDT,5m,binance,0xfa1ad81cd00f1e672b58071bd7896d7fd4b0720eed06e5a59741911db6382dbf,0.0,1721953636000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-14,TRX/USDT,5m,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-28,TRX/USDT,5m,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-42,TRX/USDT,5m,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-56,TRX/USDT,5m,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-70,TRX/USDT,5m,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-84,TRX/USDT,5m,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-100,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-114,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-128,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-142,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-156,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-170,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-184,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-198,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-212,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-226,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-240,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-254,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-268,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada-282,DOGE/USDT,1h,binance,0x022a275f5c6b19e9b47964329521b6c1d3283248de669d12334b359d0fa14ada,0.0,1721953648000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-112,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-126,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-14,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-140,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-154,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-168,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-182,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-196,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-210,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-224,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-238,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-252,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-266,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-28,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-280,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-42,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-56,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-70,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-84,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a-98,DOGE/USDT,1h,binance,0xf9b2f10fcf58a7ce3672865f4ebba5de1c0bff53f6881d61e5a4f68acb87b22a,0.0,1721953660000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-112,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-126,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-14,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-140,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-154,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-168,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-182,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-196,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-210,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-224,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-238,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-252,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-266,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-28,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-280,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-42,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-56,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-70,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-84,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334-98,DOGE/USDT,1h,binance,0xefd0e17c804577470bdfcd4d25acca290a68a577040afdc169f84ab468466334,0.0,1721953671000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-112,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-126,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-14,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-140,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-154,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-168,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-182,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-196,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-210,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-224,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-238,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-252,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-266,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-28,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-280,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-42,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-56,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-70,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-84,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8-98,DOGE/USDT,1h,binance,0x91af31d834303f9c61edafdd2f1cc967e99b8a464ddc3518efe4e906d78ff4a8,0.0,1721953689000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-112,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-126,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-14,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-140,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-154,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-168,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-182,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-196,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-210,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-224,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-238,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-252,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-266,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-28,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-280,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-42,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-56,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-70,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-84,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a-98,DOGE/USDT,1h,binance,0x11bad13af49ced81a2a01e437d3c9efaa86630d10923cf58494d2c552be4527a,0.0,1721953700000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-112,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-126,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-14,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-140,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-154,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-168,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-182,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-28,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-42,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-56,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-70,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-84,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-98,DOGE/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-198,LTC/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-212,LTC/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-226,LTC/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-240,LTC/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-254,LTC/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-268,LTC/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89-282,LTC/USDT,1h,binance,0xc4d527c60e20fcd4ddf36ba6ebb449ae7466e90c85cf82fe787a5fa838443f89,0.0,1721953712000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-112,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-126,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-14,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-140,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-154,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-168,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-182,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-196,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-210,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-224,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-238,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-252,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-266,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-28,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-280,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-42,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-56,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-70,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-84,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928-98,LTC/USDT,1h,binance,0x01e75413ed2548676ca84c8c6116c583b1e1b4212a1e3247eebc51ba53bf1928,0.0,1721953724000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-102,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-116,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-130,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-144,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-158,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-172,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-18,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-186,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-200,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-214,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-228,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-242,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-256,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-270,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-284,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-32,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-46,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-60,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-74,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf-88,LTC/USDT,1h,binance,0x385a0d37a3453110836beb94091645a2893bf67698142f11f8ddeca2e34455cf,0.0,1721953736000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-112,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-126,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-14,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-140,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-154,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-168,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-182,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-196,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-210,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-224,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-238,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-252,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-266,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-28,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-280,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-42,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-56,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-70,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-84,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530-98,LTC/USDT,1h,binance,0x2db600daaf8e5bbb6b934eca27986959f2fcc938988a9e1387c29269e3448530,0.0,1721953759000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-112,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-126,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-14,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-140,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-154,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-168,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-182,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-196,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-210,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-224,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-238,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-252,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-266,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-28,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-280,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-42,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-56,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-70,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-84,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6-98,LTC/USDT,1h,binance,0xbd78886fbf9d99590118464a07a24a2f2fee4f33f7463b6df3e84ef33bd261b6,0.0,1721953771000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-112,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-126,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-14,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-140,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-154,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-168,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-182,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-196,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-210,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-224,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-238,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-252,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-266,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-28,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-280,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-42,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-56,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-70,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-84,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319-98,LTC/USDT,1h,binance,0xf3bd0d0b2e2dc8f5feaa274f281f52c67452d32a397801373f04f60e2721c319,0.0,1721953777000,0x2433e002ed10b5d6a3d8d1e0c5d2083be9e37f1d \ No newline at end of file diff --git a/pdr_backend/lake/test/resources.py b/pdr_backend/lake/test/resources.py index 084882758..232690ff3 100644 --- a/pdr_backend/lake/test/resources.py +++ b/pdr_backend/lake/test/resources.py @@ -10,21 +10,12 @@ # Local application imports from pdr_backend.aimodel.aimodel_data_factory import AimodelDataFactory from pdr_backend.lake.constants import TOHLCV_COLS, TOHLCV_SCHEMA_PL -from pdr_backend.lake.etl import ETL -from pdr_backend.lake.gql_data_factory import GQLDataFactory from pdr_backend.lake.merge_df import merge_rawohlcv_dfs from pdr_backend.lake.ohlcv_data_factory import OhlcvDataFactory -from pdr_backend.lake.payout import Payout from pdr_backend.lake.plutil import concat_next_df, initialize_rawohlcv_df, text_to_df -from pdr_backend.lake.prediction import Prediction -from pdr_backend.lake.slot import Slot -from pdr_backend.lake.subscription import Subscription -from pdr_backend.lake.table import Table -from pdr_backend.lake.trueval import Trueval from pdr_backend.ppss.lake_ss import LakeSS from pdr_backend.ppss.ppss import mock_ppss from pdr_backend.ppss.predictoor_ss import PredictoorSS, predictoor_ss_test_dict -from pdr_backend.ppss.web3_pp import mock_web3_pp from pdr_backend.util.time_types import UnixTimeMs @@ -51,32 +42,6 @@ def _lake_ss_1feed(tmpdir, feed, st_timestr=None, fin_timestr=None): return ss, ohlcv_data_factory -@enforce_types -def _gql_data_factory(tmpdir, feed, st_timestr=None, fin_timestr=None): - network = "sapphire-mainnet" - ppss = mock_ppss( - [{"predict": feed, "train_on": feed}], - network, - str(tmpdir), - st_timestr, - fin_timestr, - ) - ppss.web3_pp = mock_web3_pp(network) - - # setup lake - lake_dir = str(tmpdir) - lake_ss = _lake_ss(lake_dir, [feed], st_timestr, fin_timestr) - ppss.lake_ss = lake_ss - - gql_data_factory = GQLDataFactory(ppss) - return ppss, gql_data_factory - - -def _filter_gql_tables_config(record_config: Dict, record_filter: str) -> Dict: - # Return a filtered version of record_config for testing - return {k: v for k, v in record_config["tables"].items() if k == record_filter} - - @enforce_types def _lake_ss(lake_dir, feeds, st_timestr=None, fin_timestr=None): return LakeSS( @@ -196,118 +161,3 @@ def _addval(DATA: list, val: float) -> list: """ ) - -def create_sample_etl( - sample_raw_data, - get_test_DuckDB, - tmpdir, - st_timestr, - fin_timestr, - enforce_null_values, -): - ppss = None - gql_data_factory = None - - with patch( - "pdr_backend.lake.gql_data_factory.get_all_contract_ids_by_owner", - return_value=[], - ): - ppss, gql_data_factory = _gql_data_factory( - tmpdir, - "binanceus ETH/USDT h 5m", - st_timestr, - fin_timestr, - ) - - gql_tables = { - "pdr_predictions": Table.from_dataclass(Prediction), - "pdr_payouts": Table.from_dataclass(Payout), - "pdr_truevals": Table.from_dataclass(Trueval), - "pdr_subscriptions": Table.from_dataclass(Subscription), - "pdr_slots": Table.from_dataclass(Slot), - } - - _sample_predictions = ( - sample_raw_data["pdr_predictions"] - .filter(pl.col("timestamp") >= UnixTimeMs.from_timestr(st_timestr)) - .filter(pl.col("timestamp") <= UnixTimeMs.from_timestr(fin_timestr)) - ) - - _sample_payouts = ( - sample_raw_data["pdr_payouts"] - .filter(pl.col("timestamp") >= UnixTimeMs.from_timestr(st_timestr)) - .filter(pl.col("timestamp") <= UnixTimeMs.from_timestr(fin_timestr)) - ) - - _sample_truevals = ( - sample_raw_data["pdr_truevals"] - .filter(pl.col("timestamp") >= UnixTimeMs.from_timestr(st_timestr)) - .filter(pl.col("timestamp") <= UnixTimeMs.from_timestr(fin_timestr)) - ) - - _sample_subscriptions = ( - sample_raw_data["pdr_subscriptions"] - .filter(pl.col("timestamp") >= UnixTimeMs.from_timestr(st_timestr)) - .filter(pl.col("timestamp") <= UnixTimeMs.from_timestr(fin_timestr)) - ) - - _sample_slots = ( - sample_raw_data["pdr_slots"] - .filter(pl.col("timestamp") >= UnixTimeMs.from_timestr(st_timestr)) - .filter(pl.col("timestamp") <= UnixTimeMs.from_timestr(fin_timestr)) - ) - - if enforce_null_values is True: - _sample_predictions = _sample_predictions.with_columns( - pl.lit(None).alias("predvalue"), - pl.lit(None).alias("truevalue"), - pl.lit(None).alias("stake"), - pl.lit(None).alias("payout"), - ) - - gql_tables["pdr_predictions"].append_to_storage(_sample_predictions, ppss) - gql_tables["pdr_payouts"].append_to_storage(_sample_payouts, ppss) - gql_tables["pdr_truevals"].append_to_storage(_sample_truevals, ppss) - gql_tables["pdr_subscriptions"].append_to_storage(_sample_subscriptions, ppss) - gql_tables["pdr_slots"].append_to_storage(_sample_slots, ppss) - - assert ppss.lake_ss.st_timestamp == UnixTimeMs.from_timestr(st_timestr) - assert ppss.lake_ss.fin_timestamp == UnixTimeMs.from_timestr(fin_timestr) - - etl = ETL(ppss, gql_data_factory) - db = get_test_DuckDB(tmpdir) - - return etl, db, gql_tables - - -def create_sample_raw_data(path: str): - """ - Load sample raw data for testing the ETL pipeline - """ - - test_dir = os.path.dirname(path) - predictions_df = pl.read_csv(os.path.join(test_dir, "pdr_predictions.csv")) - payouts_df = pl.read_csv(os.path.join(test_dir, "pdr_payouts.csv")) - truevals_df = pl.read_csv(os.path.join(test_dir, "pdr_truevals.csv")) - subscriptions_df = pl.read_csv(os.path.join(test_dir, "pdr_subscriptions.csv")) - slots_df = pl.read_csv(os.path.join(test_dir, "pdr_slots.csv")) - - predictions_schema_order = list(Prediction.get_lake_schema().keys()) - payouts_schema_order = list(Payout.get_lake_schema().keys()) - truevals_schema_order = list(Trueval.get_lake_schema().keys()) - subscriptions_schema_order = list(Subscription.get_lake_schema().keys()) - slots_schema_order = list(Slot.get_lake_schema().keys()) - - predictions_df = predictions_df[predictions_schema_order] - payouts_df = payouts_df[payouts_schema_order] - truevals_df = truevals_df[truevals_schema_order] - subscriptions_df = subscriptions_df[subscriptions_schema_order] - slots_df = slots_df[slots_schema_order] - - return { - "pdr_predictions": predictions_df, - "pdr_payouts": payouts_df, - "pdr_truevals": truevals_df, - "pdr_subscriptions": subscriptions_df, - "pdr_slots": slots_df, - } diff --git a/pdr_backend/lake/test/test_alt_bar.py b/pdr_backend/lake/test/test_alt_bar.py deleted file mode 100644 index 920366f8f..000000000 --- a/pdr_backend/lake/test/test_alt_bar.py +++ /dev/null @@ -1,68 +0,0 @@ -import pytest -import pandas as pd -from pdr_backend.lake.alt_bar import ( - _extract_bars, - get_dollar_bars, - get_volume_bars, - get_tick_bars, -) - - -@pytest.fixture(name="sample_data") -def fixture_sample_data(): - data = { - "timestamp": pd.date_range(start="2024-01-01", periods=5, freq="min"), - "open": [100, 101, 102, 103, 104], - "high": [101, 102, 103, 104, 105], - "low": [99, 100, 101, 102, 103], - "close": [100.5, 101.5, 102.5, 103.5, 104.5], - "volume": [1000, 1500, 2000, 2500, 3000], - } - df = pd.DataFrame(data) - return df.sort_values(by="timestamp", ascending=True) - - -def test_extract_bars_dollar_metric(sample_data): - bars, start_tm = _extract_bars( - sample_data, metric="cum_dollar_value", threshold=1000000 - ) - assert len(bars) == 1 - assert start_tm == sample_data.iloc[4, 0] - assert bars[0][5] == sum(sample_data["volume"]) - - -def test_extract_bars_volume_metric(sample_data): - bars, start_tm = _extract_bars(sample_data, metric="cum_volume", threshold=4000) - assert len(bars) == 2 - assert start_tm == sample_data.iloc[4, 0] - assert bars[0][5] == float(4500) - assert bars[1][5] == float(5500) - - -def test_extract_bars_tick_metric(sample_data): - bars, start_tm = _extract_bars(sample_data, metric="cum_ticks", threshold=3) - assert len(bars) == 1 - assert start_tm == sample_data.iloc[2, 0] - assert bars[0][7] == 3 - - -def test_get_dollar_bars(sample_data): - bars, start_tm = get_dollar_bars(sample_data, threshold=1000000) - assert len(bars) == 1 - assert start_tm == sample_data.iloc[4, 0] - assert bars[0][5] == sum(sample_data["volume"]) - - -def test_get_volume_bars(sample_data): - bars, start_tm = get_volume_bars(sample_data, threshold=4000) - assert len(bars) == 2 - assert start_tm == sample_data.iloc[4, 0] - assert bars[0][5] == float(4500) - assert bars[1][5] == float(5500) - - -def test_get_tick_bars(sample_data): - bars, start_tm = get_tick_bars(sample_data, threshold=3) - assert len(bars) == 1 - assert start_tm == sample_data.iloc[2, 0] - assert bars[0][7] == 3 diff --git a/pdr_backend/lake/test/test_duckdb_data_store.py b/pdr_backend/lake/test/test_duckdb_data_store.py deleted file mode 100644 index 788290602..000000000 --- a/pdr_backend/lake/test/test_duckdb_data_store.py +++ /dev/null @@ -1,525 +0,0 @@ -import os -import threading -import time -from unittest.mock import patch, MagicMock - -import duckdb -import polars as pl - -from pdr_backend.lake.duckdb_data_store import DuckDBDataStore -from pdr_backend.lake.table import Table, TempTable -from pdr_backend.util.time_types import UnixTimeS - - -# Initialize the DuckDBDataStore instance for testing -def _setup_fixture(tmpdir, df=None): - example_df = df - if example_df is None: - example_df = pl.DataFrame( - { - "timestamp": ["2022-01-01", "2022-02-01", "2022-03-01"], - "value": [10, 20, 30], - } - ) - table_name = "test_df" - - return [DuckDBDataStore(str(tmpdir)), example_df, table_name] - - -def test_insert(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - - db.create_from_df(example_df, table_name) - - # Check if the table is registered - table_exists = db.table_exists(table_name) - assert table_exists - - -def test_insert_to_exist_table(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - - db.create_from_df(example_df, table_name) - - # Check if the table is registered - table_exists = db.table_exists(table_name) - assert table_exists - - # Insert new data to the table - example_df = pl.DataFrame( - {"timestamp": ["2022-04-01", "2022-05-01", "2022-06-01"], "value": [40, 50, 60]} - ) - db.insert_from_df(example_df, table_name) - - # Check if the table is registered - table_exists = db.table_exists(table_name) - assert table_exists - - # Check if the new data is inserted - result = db.duckdb_conn.execute(f"SELECT * FROM {table_name}").fetchall() - assert len(result) == 6 - assert result[3][0] == "2022-04-01" - assert result[3][1] == 40 - assert result[4][0] == "2022-05-01" - assert result[4][1] == 50 - assert result[5][0] == "2022-06-01" - assert result[5][1] == 60 - - -def test_insert_to_new_table(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - - db.insert_from_df(example_df, table_name) - - # Check if the table is registered - table_exists = db.table_exists(table_name) - assert table_exists - - # Check if the new data is inserted - result = db.duckdb_conn.execute(f"SELECT * FROM {table_name}").fetchall() - assert len(result) == 3 - assert result[0][0] == "2022-01-01" - assert result[0][1] == 10 - assert result[1][0] == "2022-02-01" - assert result[1][1] == 20 - assert result[2][0] == "2022-03-01" - assert result[2][1] == 30 - - -def test_query(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - db.insert_from_df(example_df, table_name) - - # Check if the table is registered - table_exists = db.table_exists(table_name) - assert table_exists - - # Execute the provided SQL query - result_df = db.query_data(f"SELECT * FROM {table_name} WHERE value > 15") - assert len(result_df) == 2, "Query did not return the expected number of rows." - - -def test_drop_table(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - - db.insert_from_df(example_df, table_name) - - # Check if the table is registered - table_exists = db.table_exists(table_name) - assert table_exists - - # Drop the table - db.drop_table(table_name) - - # Check if the table is dropped - table_names = db.get_table_names() - assert table_name not in table_names - - -def test_insert_from_csv(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - csv_folder_path = os.path.join(str(tmpdir), "csv_folder") - os.makedirs(csv_folder_path, exist_ok=True) - example_df.write_csv(os.path.join(str(csv_folder_path), "data.csv")) - - db.insert_from_csv(table_name, csv_folder_path) - - # Check if the table is registered - table_exists = db.table_exists(table_name) - assert table_exists - - # Check if the new data is inserted - result = db.duckdb_conn.execute(f"SELECT * FROM {table_name}").fetchall() - assert len(result) == 3 - assert result[0][0] == "2022-01-01" - assert result[0][1] == 10 - assert result[1][0] == "2022-02-01" - assert result[1][1] == 20 - assert result[2][0] == "2022-03-01" - assert result[2][1] == 30 - - # clean csv folder - # delete files in the folder - for file in os.listdir(csv_folder_path): - file_path = os.path.join(csv_folder_path, file) - os.remove(file_path) - - # delete the folder - os.rmdir(csv_folder_path) - - -def test_multiton_instances(tmpdir): - duckdb_1 = DuckDBDataStore(str(tmpdir)) - duckdb_2 = DuckDBDataStore(str(tmpdir)) - - assert id(duckdb_1) == id(duckdb_2) - - -def test_clear_instances(tmpdir): - duckdb_1 = DuckDBDataStore(str(tmpdir)) - DuckDBDataStore.clear_instances() - duckdb_2 = DuckDBDataStore(str(tmpdir)) - - assert id(duckdb_1) != id(duckdb_2) - - -def test_clear_instances_with_multiple_instances(tmpdir): - duckdb_1 = DuckDBDataStore(str(tmpdir)) - duckdb_2 = DuckDBDataStore(str(tmpdir)) - DuckDBDataStore.clear_instances() - duckdb_3 = DuckDBDataStore(str(tmpdir)) - duckdb_4 = DuckDBDataStore(str(tmpdir)) - - assert id(duckdb_1) != id(duckdb_3) - assert id(duckdb_2) != id(duckdb_3) - assert id(duckdb_1) != id(duckdb_4) - assert id(duckdb_2) != id(duckdb_4) - assert id(duckdb_3) == id(duckdb_4) - - -def test_multiton_instances_with_different_base_paths(tmpdir): - duckdb_1 = DuckDBDataStore(str(tmpdir)) - - different_path = str(tmpdir) + "/1" - os.makedirs(different_path, exist_ok=True) - duckdb_2 = DuckDBDataStore(different_path) - - assert id(duckdb_1) != id(duckdb_2) - - -def test__duckdb_connection(tmpdir): - """ - Test datastore. - """ - assert isinstance( - DuckDBDataStore(str(tmpdir)).duckdb_conn, duckdb.DuckDBPyConnection - ), "The connection is not a DuckDBPyConnection" - - -def test_move_table_data(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - db.insert_from_df(example_df, TempTable(table_name).table_name) - - # Check if the table is registered - table_exists = db.table_exists(TempTable(table_name).table_name) - assert table_exists - - # Move the table - table = Table(table_name) - db.move_table_data(TempTable(table_name), table) - - # Assert table hasn't dropped - table_names = db.get_table_names() - assert TempTable(table_name).table_name in table_names - - # Drop interim TEMP table - db.drop_table(TempTable(table_name).table_name) - - # Assert temp table is dropped - table_names = db.get_table_names() - assert TempTable(table_name).table_name not in table_names - - # Check if the new table is created - assert table_name in table_names - - # Check if the new data is inserted - result = db.duckdb_conn.execute(f"SELECT * FROM {table_name}").fetchall() - - assert len(result) == 3 - assert result[0][0] == "2022-01-01" - - -def test_etl_view(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - db.insert_from_df(example_df, Table(table_name).table_name) - - other_df = pl.DataFrame( - {"timestamp": ["2022-04-01", "2022-05-01", "2022-06-01"], "value": [40, 50, 60]} - ) - db.insert_from_df(other_df, TempTable(table_name).table_name) - - # Assemble view query and create the view - view_name = "_update" - view_query = """ - CREATE VIEW {} AS - ( - SELECT * FROM {} - UNION ALL - SELECT * FROM {} - )""".format( - view_name, - Table(table_name).table_name, - TempTable(table_name).table_name, - ) - db.query_data(view_query) - - # Assert number of views is equal to 1 - view_names = db.get_view_names() - assert len(view_names) == 1 - - # Assert view is registered - check_result = db.view_exists(view_name) - assert check_result - - # Assert view returns the correct, min(timestamp) - result = db.duckdb_conn.execute( - f"SELECT min(timestamp) FROM {view_name}" - ).fetchall() - assert result[0][0] == "2022-01-01" - - # Assert view returns the correct, max(timestamp) - result = db.duckdb_conn.execute( - f"SELECT max(timestamp) FROM {view_name}" - ).fetchall() - assert result[0][0] == "2022-06-01" - - -def thread_with_return_value(db, table_name): - result = db.query_data(f"SELECT * FROM {table_name}") - return result - - -def test_multiple_thread_table_updates(tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - csv_folder_path = os.path.join(str(tmpdir), "csv_folder") - os.makedirs(csv_folder_path, exist_ok=True) - example_df.write_csv(os.path.join(str(csv_folder_path), "data.csv")) - - # Check that table is empty by default - result = db.query_data(f"SELECT * FROM {table_name}") - assert result is None - - thread_result = [] - thread1 = threading.Thread( - target=thread_function_write_to_db, args=(csv_folder_path, tmpdir) - ) - thread2 = threading.Thread( - target=thread_function_read_from_db, - args=(csv_folder_path, tmpdir, thread_result), - ) - thread1.start() - thread2.start() - - time.sleep(2) - - assert thread_result[0] is not None - assert len(thread_result[0]) == 3 - assert thread_result[0]["timestamp"][0] == "2022-01-01" - assert thread_result[0]["value"][0] == 10 - assert thread_result[0]["timestamp"][1] == "2022-02-01" - assert thread_result[0]["value"][1] == 20 - assert thread_result[0]["timestamp"][2] == "2022-03-01" - assert thread_result[0]["value"][2] == 30 - - -def thread_function_write_to_db(csv_folder_path, tmpdir): - db, _, table_name = _setup_fixture(tmpdir) - db.insert_from_csv(table_name, csv_folder_path) - - -def thread_function_read_from_db(csv_folder_path, tmpdir, thread_result): - db, _, table_name = _setup_fixture(tmpdir) - - # Wait for the first thread to finish - time.sleep(1) - # Check if the new data is inserted - thread_result.append(db.query_data(f"SELECT * FROM {table_name}")) - - # clean csv folder - # delete files in the folder - for file in os.listdir(csv_folder_path): - file_path = os.path.join(csv_folder_path, file) - os.remove(file_path) - - # delete the folder - os.rmdir(csv_folder_path) - - -def test_create_table(tmpdir): - """ - Test create table if not exists. - """ - db, example_df, table_name = _setup_fixture(tmpdir) - - example_df_schema = example_df.schema - # Create table - db.create_empty(table_name, example_df_schema) - - # Check if the table is registered - check_result = db.table_exists(table_name) - assert check_result - - -def test_should_export(tmpdir): - db, _, _ = _setup_fixture(tmpdir) - table_folder_path = os.path.join(str(tmpdir), "test_table") - os.makedirs(table_folder_path, exist_ok=True) - - # Create a test case where max timestamp from parquet files is in the past - seconds_between_exports = UnixTimeS(600) # 10 minutes - current_timestamp = UnixTimeS(int(time.time())).to_milliseconds() - - # Mock _get_max_timestamp_from_parquet_files to return a timestamp 15 minutes ago - db._get_max_timestamp_from_parquet_files = ( - lambda path: current_timestamp - 15 * 60 * 1000 - ) - - assert db._should_export(table_folder_path, seconds_between_exports) is True - - # Now mock it to return a more recent timestamp, within the export window - db._get_max_timestamp_from_parquet_files = ( - lambda path: current_timestamp - 5 * 60 * 1000 - ) - - assert db._should_export(table_folder_path, seconds_between_exports) is False - - -@patch("pdr_backend.lake.duckdb_data_store.duckdb.execute") -def test_get_max_timestamp_from_parquet_files(mock_duckdb_execute, tmpdir): - db, example_df, table_name = _setup_fixture(tmpdir) - table_folder_path = os.path.join(str(tmpdir), "exports") - os.makedirs(table_folder_path, exist_ok=True) - - # Simulate the existence of a Parquet file with a max timestamp - parquet_file = os.path.join(table_folder_path, f"{table_name}_1640995200.parquet") - example_df.write_parquet(parquet_file) - - # Mock DuckDB to return a known max timestamp - mock_duckdb_execute.return_value.fetchone.return_value = (1640995200,) - - max_timestamp = db._get_max_timestamp_from_parquet_files(table_folder_path) - assert max_timestamp == 1640995200 - - # Simulate no Parquet files - db._get_max_timestamp_from_parquet_files = lambda path: 0 - assert db._get_max_timestamp_from_parquet_files(table_folder_path) == 0 - - -@patch("pdr_backend.lake.duckdb_data_store.DuckDBDataStore.query_scalar") -def test_export_table_to_parquet(mock_query_scalar, tmpdir): - # read the pdr_payouts.csv file in the same folder - df = pl.read_csv("pdr_backend/lake/test/pdr_payouts.csv") - db, example_df, table_name = _setup_fixture(tmpdir, df) - table_folder_path = os.path.join(str(tmpdir), "test_table") - os.makedirs(table_folder_path, exist_ok=True) - - # Mocking _get_max_timestamp_from_parquet_files to return 0 (i.e., no previous export) - db._get_max_timestamp_from_parquet_files = lambda path: 0 - - # Insert example data into DuckDB table - db.create_from_df(example_df, table_name) - - mock_query_scalar.return_value = 1640995200 - # Export the table to Parquet - db._export_table_to_parquet(table_name, table_folder_path) - - # Check if the Parquet file is created - files = os.listdir(table_folder_path) - assert any(file.endswith(".parquet") for file in files), "No Parquet file created" - - -def test_should_nuke_table_folders_and_re_export_db_bronze(tmpdir): - db, _, _ = _setup_fixture(tmpdir) - table_folder_path = os.path.join(str(tmpdir), "bronze_table") - os.makedirs(table_folder_path, exist_ok=True) - with open(f"{table_folder_path}/table.parquet", "a"): - pass - - # Test when "bronze" is in the table_name - result = db._should_nuke_table_folders_and_re_export_db( - table_folder_path, 5, "bronze_table", 0 - ) - assert result is True, "Failed to nuke bronze table folders" - - -def test_should_nuke_table_folders_and_re_export_db_non_bronze_exceed_file_limit( - tmpdir, -): - db, _, _ = _setup_fixture(tmpdir) - table_folder_path = os.path.join(str(tmpdir), "test_table") - os.makedirs(table_folder_path, exist_ok=True) - - # Create dummy files - for i in range(10): - with open(os.path.join(table_folder_path, f"file_{i}.parquet"), "w"): - pass - - # Test when the number of files exceeds the limit - result = db._should_nuke_table_folders_and_re_export_db( - table_folder_path, 5, "test_table", 20 - ) - assert result is True, "Failed to detect exceeding file limit" - - -def test_should_nuke_table_folders_and_re_export_db_non_bronze_below_file_limit(tmpdir): - db, _, _ = _setup_fixture(tmpdir) - table_folder_path = os.path.join(str(tmpdir), "test_table") - os.makedirs(table_folder_path, exist_ok=True) - - # Create dummy files - for i in range(3): - with open(os.path.join(table_folder_path, f"file_{i}.parquet"), "w"): - pass - - # Test when the number of files is below the limit - result = db._should_nuke_table_folders_and_re_export_db( - table_folder_path, 5, "test_table", 20 - ) - assert result is False, "Incorrectly detected nuke requirement for non-bronze table" - - -@patch("pdr_backend.lake.duckdb_data_store.delete_folder") -def test_nuke_table_folders_and_re_export_db(mock_delete_folder, tmpdir): - db, _, _ = _setup_fixture(tmpdir) - table_folder_path = os.path.join(str(tmpdir), "test_table") - os.makedirs(table_folder_path, exist_ok=True) - - # Simulate deleting the files by mocking `delete_folder` - db._nuke_table_folders(table_folder_path) - - # Ensure delete_folder was called with the correct folder path - mock_delete_folder.assert_called_once_with(table_folder_path) - - -@patch("pdr_backend.lake.duckdb_data_store.DuckDBDataStore._should_export") -@patch("pdr_backend.lake.duckdb_data_store.DuckDBDataStore._export_table_to_parquet") -@patch("pdr_backend.lake.duckdb_data_store.DuckDBDataStore._nuke_table_folders") -@patch( - "pdr_backend.lake.duckdb_data_store.DuckDBDataStore._should_nuke_table_folders_and_re_export_db" -) -@patch("pdr_backend.lake.duckdb_data_store.get_export_folder_path") -def test_export_tables_to_parquet_files( - mock_get_export_folder_path, - mock_should_nuke_table_folders, - mock_nuke_table_folders, - mock_should_export, - mock_export_table_to_parquet, - tmpdir, -): - db, _, _ = _setup_fixture(tmpdir) - - # Mock return values for internal methods - mock_get_export_folder_path.return_value = os.path.join(str(tmpdir), "exports") - mock_should_nuke_table_folders.return_value = False # Simulate no nuke - mock_should_export.return_value = True # Simulate exporting is needed - - # Simulate tables in the database - db.query_data = MagicMock(return_value={"name": ["table1", "table2"]}) - - # Call the method - db.export_tables_to_parquet_files( - seconds_between_exports=UnixTimeS(600), - number_of_files_after_which_re_export_db=5, - ) - - # Check that _should_nuke_table_folders_and_re_export_db was called for each table - assert mock_should_nuke_table_folders.call_count == 2 - - # Ensure _export_table_to_parquet was called for each table - assert mock_export_table_to_parquet.call_count == 2 - - # Ensure _nuke_table_folders was not called since nuke condition is False - mock_nuke_table_folders.assert_not_called() - - # Ensure _should_export was called for each table - assert mock_should_export.call_count == 2 diff --git a/pdr_backend/lake/test/test_etl.py b/pdr_backend/lake/test/test_etl.py deleted file mode 100644 index a4aa8d0e0..000000000 --- a/pdr_backend/lake/test/test_etl.py +++ /dev/null @@ -1,447 +0,0 @@ -import pytest -from enforce_typing import enforce_types - -import polars as pl - -from pdr_backend.lake.table import Table, NewEventsTable -from pdr_backend.lake.prediction import Prediction -from pdr_backend.lake.payout import Payout -from pdr_backend.lake.table_bronze_pdr_predictions import BronzePrediction - - -@enforce_types -@pytest.mark.parametrize( - "_sample_etl", [("2024-07-26_00:00", "2024-07-26_02:00", False)], indirect=True -) -def test_etl_tables(_sample_etl): - _, db, _ = _sample_etl - - # Assert all dfs are not the same size as mock data - pdr_predictions_df = db.query_data("SELECT * FROM pdr_predictions") - pdr_payouts_df = db.query_data("SELECT * FROM pdr_payouts") - pdr_truevals_df = db.query_data("SELECT * FROM pdr_truevals") - pdr_subscriptions_df = db.query_data("SELECT * FROM pdr_subscriptions") - pdr_slots_df = db.query_data("SELECT * FROM pdr_slots") - - # Assert len of all dfs - assert len(pdr_predictions_df) == 2369 - assert len(pdr_payouts_df) == 2349 - assert len(pdr_truevals_df) == 260 - assert len(pdr_subscriptions_df) == 2140 - assert len(pdr_slots_df) == 260 - - -# pylint: disable=too-many-statements -@enforce_types -@pytest.mark.parametrize( - "_sample_etl", [("2024-07-26_00:00", "2024-07-26_02:00", True)], indirect=True -) -def test_etl_do_bronze_step(_sample_etl): - etl, db, _ = _sample_etl - - # assert the number of predictions we expect to see in prod table - # assert all predictions have null payouts - table_name = Table.from_dataclass(Prediction).table_name - pdr_predictions = db.query_data("SELECT * FROM {}".format(table_name)) - expected_pdr_predictions = len(pdr_predictions) - assert expected_pdr_predictions == 2369 - - # all predictions have null payouts - assert pdr_predictions["payout"].is_null().sum() == 2369 - - # assert we have valid payouts to join with predictions - table_name = Table.from_dataclass(Payout).table_name - pdr_payouts = db.query_data("SELECT * FROM {}".format(table_name)) - expected_pdr_payouts = len(pdr_payouts) - assert expected_pdr_payouts == 2349 - - # all payouts have have payout values - assert pdr_payouts["payout"].is_null().sum() == 0 - - # Work 1: Do bronze - etl.do_bronze_step() - - # assert bronze_pdr_predictios and related tables are created correctly - new_events_bronze_pdr_predictions_table = NewEventsTable.from_dataclass( - BronzePrediction - ) - records = db.query_data( - "SELECT * FROM {}".format(new_events_bronze_pdr_predictions_table.table_name) - ) - - prod_bronze_pdr_predictions_null_payouts = records["payout"].is_null().sum() - prod_bronze_pdr_predictions_valid_payouts = records["payout"].is_not_null().sum() - - # assert temp_bronze_pdr_predictions table that will be moved to production - assert prod_bronze_pdr_predictions_null_payouts == 349 - assert prod_bronze_pdr_predictions_valid_payouts == 2020 - assert ( - prod_bronze_pdr_predictions_null_payouts - + prod_bronze_pdr_predictions_valid_payouts - == expected_pdr_predictions - ) - - # move tables to production - etl._do_bronze_swap_to_prod_atomic() - - # assert bronze_pdr_predictions_df is created correctly - table_name = Table.from_dataclass(BronzePrediction).table_name - bronze_pdr_predictions_records = db.query_data( - "SELECT * FROM {}".format(table_name) - ) - assert bronze_pdr_predictions_records is not None - - # verify final production table - prod_bronze_pdr_predictions_null_payouts = ( - bronze_pdr_predictions_records["payout"].is_null().sum() - ) - prod_bronze_pdr_predictions_valid_payouts = ( - bronze_pdr_predictions_records["payout"].is_not_null().sum() - ) - - # all predictions with valid payouts that can be joined, have been updated - assert prod_bronze_pdr_predictions_null_payouts == 349 - assert prod_bronze_pdr_predictions_valid_payouts == 2020 - assert ( - prod_bronze_pdr_predictions_null_payouts - + prod_bronze_pdr_predictions_valid_payouts - == expected_pdr_predictions - ) - - -# pylint: disable=too-many-statements -@enforce_types -@pytest.mark.parametrize( - "_sample_etl", [("2024-07-26_00:00", "2024-07-26_00:40", True)], indirect=True -) -def test_etl_do_incremental_bronze_step(_sample_raw_data, _sample_etl): - etl, db, gql_tables = _sample_etl - - # We are gonna operate the ETL manually in 3 steps - etl._clamp_checkpoints_to_ppss = True - - def _step1(): - # Step 1: 00:00 - 00:40 - # get all predictions we expect to end up in bronze table - prediction_table = Table.from_dataclass(Prediction).table_name - query = f""" - SELECT - * - FROM {prediction_table} - where - {prediction_table}.timestamp >= {etl.ppss.lake_ss.st_timestamp} - and {prediction_table}.timestamp <= {etl.ppss.lake_ss.fin_timestamp} - """ - expected_rows = db.query_data(query) - assert len(expected_rows) == 741 - - # execute the ETL - etl.do_bronze_step() - etl._do_bronze_swap_to_prod_atomic() - - # get all bronze_pdr_predictions for this period - bronze_prediction_table = Table.from_dataclass(BronzePrediction).table_name - query = f""" - SELECT - * - FROM {bronze_prediction_table} - where - {bronze_prediction_table}.timestamp >= {etl.ppss.lake_ss.st_timestamp} - and {bronze_prediction_table}.timestamp <= {etl.ppss.lake_ss.fin_timestamp} - """ - bronze_pdr_predictions_records = db.query_data(query) - - # get count of null and valid prediction.payouts - prod_null_payouts = bronze_pdr_predictions_records["payout"].is_null().sum() - prod_valid_payouts = ( - bronze_pdr_predictions_records["payout"].is_not_null().sum() - ) - - # assert those numbers so we can track progress - assert prod_null_payouts == 209 - assert prod_valid_payouts == 532 - - # validate that rows are equal to what we expected - assert prod_null_payouts + prod_valid_payouts == len(expected_rows) - - def _step2(): - # Step 2: 00:40 - 01:20 - # override ppss timestamps - etl.ppss.lake_ss.d["st_timestr"] = "2024-07-26_00:40:01" - etl.ppss.lake_ss.d["fin_timestr"] = "2024-07-26_01:20:00" - - # sim gql_data_factory saving data to storage so it can be processed - _sample_predictions = ( - _sample_raw_data["pdr_predictions"] - .filter(pl.col("timestamp") >= etl.ppss.lake_ss.st_timestamp) - .filter(pl.col("timestamp") <= etl.ppss.lake_ss.fin_timestamp) - ) - - _sample_payouts = ( - _sample_raw_data["pdr_payouts"] - .filter(pl.col("timestamp") >= etl.ppss.lake_ss.st_timestamp) - .filter(pl.col("timestamp") <= etl.ppss.lake_ss.fin_timestamp) - ) - - def _transform_columns(df, dtype_mapping): - for column, dtype in dtype_mapping.items(): - df = df.with_columns(df[column].cast(dtype).alias(column)) - return df - - _sample_predictions = _transform_columns( - _sample_predictions, Prediction.get_lake_schema() - ) - _sample_payouts = _transform_columns(_sample_payouts, Payout.get_lake_schema()) - - gql_tables["pdr_predictions"].append_to_storage(_sample_predictions, etl.ppss) - gql_tables["pdr_payouts"].append_to_storage(_sample_payouts, etl.ppss) - - # get all predictions we expect to end up in bronze table - prediction_table = Table.from_dataclass(Prediction).table_name - query = f""" - SELECT - * - FROM {prediction_table} - where - {prediction_table}.timestamp >= {etl.ppss.lake_ss.st_timestamp} - and {prediction_table}.timestamp <= {etl.ppss.lake_ss.fin_timestamp} - """ - expected_rows = db.query_data(query) - assert len(expected_rows) == 824 - - # execute the ETL - etl.do_bronze_step() - etl._do_bronze_swap_to_prod_atomic() - - # get all bronze_pdr_predictions for this period - bronze_prediction_table = Table.from_dataclass(BronzePrediction).table_name - query = f""" - SELECT - * - FROM {bronze_prediction_table} - where - {bronze_prediction_table}.timestamp >= {etl.ppss.lake_ss.st_timestamp} - and {bronze_prediction_table}.timestamp <= {etl.ppss.lake_ss.fin_timestamp} - """ - bronze_pdr_predictions_records = db.query_data(query) - - # get count of null and valid prediction.payouts - prod_null_payouts = bronze_pdr_predictions_records["payout"].is_null().sum() - prod_valid_payouts = ( - bronze_pdr_predictions_records["payout"].is_not_null().sum() - ) - - # assert those numbers so we can track progress - assert prod_null_payouts == 269 - assert prod_valid_payouts == 555 - - # validate that rows are equal to what we expected - assert prod_null_payouts + prod_valid_payouts == len(expected_rows) - - def _step3(): - # Step 3: 01:20 - 02:00 - # override ppss timestamps - etl.ppss.lake_ss.d["st_timestr"] = "2024-07-26_01:20:01" - etl.ppss.lake_ss.d["fin_timestr"] = "2024-07-26_02:00:00" - - # sim gql_data_factory saving data to storage so it can be processed - _sample_predictions = ( - _sample_raw_data["pdr_predictions"] - .filter(pl.col("timestamp") >= etl.ppss.lake_ss.st_timestamp) - .filter(pl.col("timestamp") <= etl.ppss.lake_ss.fin_timestamp) - ) - - _sample_payouts = ( - _sample_raw_data["pdr_payouts"] - .filter(pl.col("timestamp") >= etl.ppss.lake_ss.st_timestamp) - .filter(pl.col("timestamp") <= etl.ppss.lake_ss.fin_timestamp) - ) - - def _transform_columns(df, dtype_mapping): - for column, dtype in dtype_mapping.items(): - df = df.with_columns(df[column].cast(dtype).alias(column)) - return df - - _sample_predictions = _transform_columns( - _sample_predictions, Prediction.get_lake_schema() - ) - _sample_payouts = _transform_columns(_sample_payouts, Payout.get_lake_schema()) - - gql_tables["pdr_predictions"].append_to_storage(_sample_predictions, etl.ppss) - gql_tables["pdr_payouts"].append_to_storage(_sample_payouts, etl.ppss) - - # get all predictions we expect to end up in bronze table - prediction_table = Table.from_dataclass(Prediction).table_name - query = f""" - SELECT - * - FROM {prediction_table} - where - {prediction_table}.timestamp >= {etl.ppss.lake_ss.st_timestamp} - and {prediction_table}.timestamp <= {etl.ppss.lake_ss.fin_timestamp} - """ - expected_rows = db.query_data(query) - assert len(expected_rows) == 804 - - # execute the ETL - etl.do_bronze_step() - etl._do_bronze_swap_to_prod_atomic() - - # get all bronze_pdr_predictions for this period - bronze_prediction_table = Table.from_dataclass(BronzePrediction).table_name - query = f""" - SELECT - * - FROM {bronze_prediction_table} - where - {bronze_prediction_table}.timestamp >= {etl.ppss.lake_ss.st_timestamp} - and {bronze_prediction_table}.timestamp <= {etl.ppss.lake_ss.fin_timestamp} - """ - bronze_pdr_predictions_records = db.query_data(query) - - # get count of null and valid prediction.payouts - prod_null_payouts = bronze_pdr_predictions_records["payout"].is_null().sum() - prod_valid_payouts = ( - bronze_pdr_predictions_records["payout"].is_not_null().sum() - ) - - # assert those numbers so we can track progress - assert prod_null_payouts == 249 - assert prod_valid_payouts == 555 - - # validate that rows are equal to what we expected - assert prod_null_payouts + prod_valid_payouts == len(expected_rows) - - _step1() - _step2() - _step3() - - # assert bronze_pdr_predictions_df is created correctly - bronze_table_name = Table.from_dataclass(BronzePrediction).table_name - query = f"""SELECT * FROM {bronze_table_name}""" - bronze_pdr_predictions_records = db.query_data(query) - # bronze_pdr_predictions_records.write_csv('final_bronze_pdr_predictions_records.csv') - - # verify final production table - prod_null_payouts = bronze_pdr_predictions_records["payout"].is_null().sum() - prod_valid_payouts = bronze_pdr_predictions_records["payout"].is_not_null().sum() - - # - assert prod_null_payouts == 349 - assert prod_valid_payouts == 2020 - assert bronze_pdr_predictions_records.shape[0] == 2369 - assert ( - prod_null_payouts + prod_valid_payouts - == bronze_pdr_predictions_records.shape[0] - ) - - -# pylint: disable=too-many-statements -@enforce_types -@pytest.mark.parametrize( - "_sample_etl", [("2024-07-26_00:00", "2024-07-26_00:40", True)], indirect=True -) -def test_etl_do_incremental_broken_date_bronze_step(_sample_etl): - etl, db, _ = _sample_etl - - # We are gonna operate the ETL manually in 3 steps - etl._clamp_checkpoints_to_ppss = True - prediction_table = Table.from_dataclass(Prediction).table_name - bronze_prediction_table = Table.from_dataclass(BronzePrediction).table_name - - def _step1(): - # Step 1: 00:00 - 00:40 - # get all predictions we expect to end up in bronze table - query = f""" - SELECT - * - FROM {prediction_table} - where - {prediction_table}.timestamp >= {etl.ppss.lake_ss.st_timestamp} - and {prediction_table}.timestamp <= {etl.ppss.lake_ss.fin_timestamp} - """ - expected_rows = db.query_data(query) - assert len(expected_rows) == 741 - - # execute the ETL - etl.do_bronze_step() - etl._do_bronze_swap_to_prod_atomic() - - # get all bronze_pdr_predictions for this period - bronze_prediction_table = Table.from_dataclass(BronzePrediction).table_name - query = f""" - SELECT - * - FROM {bronze_prediction_table} - where - {bronze_prediction_table}.timestamp >= {etl.ppss.lake_ss.st_timestamp} - and {bronze_prediction_table}.timestamp <= {etl.ppss.lake_ss.fin_timestamp} - """ - bronze_pdr_predictions_records = db.query_data(query) - - # get count of null and valid prediction.payouts - prod_null_payouts = bronze_pdr_predictions_records["payout"].is_null().sum() - prod_valid_payouts = ( - bronze_pdr_predictions_records["payout"].is_not_null().sum() - ) - - # assert those numbers so we can track progress - assert prod_null_payouts == 209 - assert prod_valid_payouts == 532 - - # validate that rows are equal to what we expected - assert prod_null_payouts + prod_valid_payouts == len(expected_rows) - - def _step2_introduce_error_in_date(): - # Step 2: 00:00 - 00:35 - # new_payouts -> 0 - # new_predictions -> 0 - # new bronze_pdr_predictions -> 0 - - # disable clamp so checkpoint algo runs - etl._clamp_checkpoints_to_ppss = False - - # override ppss timestamps to a date we aleady processed - # this introduces room for errors and duplicates - etl.ppss.lake_ss.d["st_timestr"] = "2024-07-26_00:00" - etl.ppss.lake_ss.d["fin_timestr"] = "2024-07-26_00:35" - - # execute the ETL - etl.do_bronze_step() - - # do the final swap - etl._do_bronze_swap_to_prod_atomic() - - # get all bronze_pdr_predictions for this period - bronze_prediction_table = Table.from_dataclass(BronzePrediction).table_name - - # validate we have 0 duplicates - query_duplicate_summary = f""" - SELECT - '{bronze_prediction_table}' as table_name, - COUNT(*) as incident_count - FROM ( - SELECT - ID as ID, - timestamp, - FROM {bronze_prediction_table} - GROUP BY ID, timestamp - HAVING COUNT(*) > 1 - ) as inner_query - GROUP BY table_name - """ - duplicate_records = db.query_data(query_duplicate_summary) - assert len(duplicate_records) == 0 - - _step1() - _step2_introduce_error_in_date() - - # get count of final prod table - bronze_pdr_predictions_records = db.query_data( - f"SELECT * FROM {bronze_prediction_table}" - ) - prod_null_payouts = bronze_pdr_predictions_records["payout"].is_null().sum() - prod_valid_payouts = bronze_pdr_predictions_records["payout"].is_not_null().sum() - - assert prod_null_payouts == 209 - assert prod_valid_payouts == 532 diff --git a/pdr_backend/lake/test/test_gql_data_factory.py b/pdr_backend/lake/test/test_gql_data_factory.py deleted file mode 100644 index f04a9a6d0..000000000 --- a/pdr_backend/lake/test/test_gql_data_factory.py +++ /dev/null @@ -1,463 +0,0 @@ -from unittest.mock import MagicMock, patch - -import polars as pl -from pdr_backend.lake.duckdb_data_store import DuckDBDataStore -from pdr_backend.lake.gql_data_factory import ( - _GQLDF_REGISTERED_LAKE_TABLES, - _GQLDF_REGISTERED_TABLE_NAMES, - GQLDataFactory, -) -from pdr_backend.lake.payout import Payout -from pdr_backend.lake.prediction import Prediction, mock_daily_predictions -from pdr_backend.lake.slot import Slot -from pdr_backend.lake.subscription import Subscription -from pdr_backend.lake.table import Table, TempTable, NewEventsTable, UpdateEventsTable -from pdr_backend.lake.trueval import Trueval -from pdr_backend.ppss.ppss import mock_ppss -from pdr_backend.util.time_types import UnixTimeMs - - -def test_gql_data_factory(): - """ - Test GQLDataFactory initialization - """ - st_timestr = "2023-12-03" - fin_timestr = "2023-12-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - ".", - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - gql_data_factory = GQLDataFactory(ppss) - - assert gql_data_factory.record_config["config"] is not None - assert gql_data_factory.ppss is not None - - -def test_update_end_to_end( - _mock_fetch_gql_predictions, - _mock_fetch_gql_subscriptions, - _mock_fetch_gql_truevals, - _mock_fetch_gql_payouts, - _mock_fetch_gql_slots, - tmpdir, - caplog, -): - """ - Test GQLDataFactory update calls the update function for all the tables - """ - st_timestr = "2023-11-03" - fin_timestr = "2023-11-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - fns = { - Prediction: _mock_fetch_gql_predictions, - Subscription: _mock_fetch_gql_subscriptions, - Trueval: _mock_fetch_gql_truevals, - Payout: _mock_fetch_gql_payouts, - Slot: _mock_fetch_gql_slots, - } - - gql_data_factory = GQLDataFactory(ppss) - for dataclass in fns: - dataclass.get_fetch_function = MagicMock(return_value=fns[dataclass]) - - gql_data_factory._update() - - assert caplog.text.count("Updating table") == len(_GQLDF_REGISTERED_TABLE_NAMES) - - -def test_update_partial_then_resume( - _gql_datafactory_etl_predictions_df, - _mock_fetch_gql_predictions, - _mock_fetch_gql_subscriptions, - _mock_fetch_gql_truevals, - _mock_fetch_gql_payouts, - _mock_fetch_gql_slots, - _get_test_DuckDB, - tmpdir, -): - """ - Test GQLDataFactory should update end-to-end, but fail in the middle - Work 1: Update csv data (11-03 -> 11-05) and then fail inserting to db - Work 2: Update and verify new records (11-05 -> 11-07) + table has all records (11-03 -> 11-07) - """ - st_timestr = "2023-11-03" - fin_timestr = "2023-11-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - # Work 1: update csv files and insert into temp table - fns = { - Prediction: _mock_fetch_gql_predictions, - Subscription: _mock_fetch_gql_subscriptions, - Trueval: _mock_fetch_gql_truevals, - Payout: _mock_fetch_gql_payouts, - Slot: _mock_fetch_gql_slots, - } - - work_1_expected_predictions = _gql_datafactory_etl_predictions_df.filter( - pl.col("timestamp") >= UnixTimeMs.from_timestr(st_timestr) - ).filter(pl.col("timestamp") <= UnixTimeMs.from_timestr(fin_timestr)) - assert len(work_1_expected_predictions) == 2, "Expected 2 records" - - gql_data_factory = GQLDataFactory(ppss) - with patch("pdr_backend.lake.gql_data_factory.GQLDataFactory._do_swap_to_prod"): - for dataclass in _GQLDF_REGISTERED_LAKE_TABLES: - dataclass.get_fetch_function = MagicMock(return_value=fns[dataclass]) - - gql_data_factory._update() - - # Verify records exist in new_events table - db = _get_test_DuckDB(ppss.lake_ss.lake_dir) - target_table = NewEventsTable.from_dataclass(Prediction) - target_records = db.query_data( - "SELECT * FROM {}".format(target_table.table_name) - ) - - assert len(target_records) == 2 - assert len(target_records) == len(work_1_expected_predictions) - assert target_records["pair"].to_list() == ["ADA/USDT", "BNB/USDT"] - assert target_records["timestamp"].to_list() == [1699038000000, 1699124400000] - - # Work 2: apply simulated error, update ppss "poorly", and verify it works as expected - # Inject error by dropping db tables - for dataclass in _GQLDF_REGISTERED_LAKE_TABLES: - db.drop_table(NewEventsTable.from_dataclass(dataclass).table_name) - db.drop_table(TempTable.from_dataclass(dataclass).table_name) - db.drop_table(Table.from_dataclass(dataclass).table_name) - - target_table = NewEventsTable.from_dataclass(dataclass) - target_records = db.query_data("SELECT * FROM {}".format(target_table.table_name)) - assert target_records is None - - target_table = TempTable.from_dataclass(dataclass) - target_records = db.query_data("SELECT * FROM {}".format(target_table.table_name)) - assert target_records is None - - target_table = Table.from_dataclass(dataclass) - target_records = db.query_data("SELECT * FROM {}".format(target_table.table_name)) - assert target_records is None - - # Validate expected records we'll be finding - st_timestr = "2023-11-03" - fin_timestr = "2023-11-07" - - work_2_expected_predictions = [ - x - for x in mock_daily_predictions() - if UnixTimeMs.from_timestr(st_timestr) - <= x.timestamp * 1000 - <= UnixTimeMs.from_timestr(fin_timestr) - ] - assert len(work_2_expected_predictions) == 4, "Expected 4 records" - - # manipulate ppss poorly and run gql_data_factory again - gql_data_factory.ppss.lake_ss.d["st_timestr"] = st_timestr - gql_data_factory.ppss.lake_ss.d["fin_timestr"] = fin_timestr - - # patch GQL to pre-process predictions that should already exist in CSV - with patch( - "pdr_backend.lake.gql_data_factory.GQLDataFactory._prepare_subgraph_fetch", - return_value=None, - ): - new_events_table = NewEventsTable.from_dataclass(Prediction) - new_events_table._append_to_db(work_1_expected_predictions, ppss) - gql_data_factory._update() - - # Verify expected records were written to db - target_table = Table.from_dataclass(Prediction) - target_records = db.query_data("SELECT * FROM {}".format(target_table.table_name)) - assert len(target_records) == 4, "Expected 4 records" - assert len(target_records) == len( - work_2_expected_predictions - ), "Expected records to match" - - assert target_records["pair"].to_list() == [ - "ADA/USDT", - "BNB/USDT", - "ETH/USDT", - "ETH/USDT", - ] - - assert target_records["timestamp"].to_list() == [ - 1699037900000, - 1699124300000, - 1699214400000, - 1699300800000, - ] - - -def test_calc_start_ut(tmpdir): - """ - Test GQLDataFactory's calc_start_ut returns the correct UnixTimeMs - """ - st_timestr = "2023-12-03" - fin_timestr = "2024-12-05" - ppss = mock_ppss( - [{"train_on": "binance BTC/USDT c 5m", "predict": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - gql_data_factory = GQLDataFactory(ppss) - table = Table.from_dataclass(Prediction) - - st_ut = gql_data_factory._calc_start_ut(table) - assert st_ut.to_seconds() == 1701561601 - - -def test_do_subgraph_fetch( - _mock_fetch_gql, - tmpdir, - caplog, -): - st_timestr = "2023-11-03" - fin_timestr = "2023-11-05" - ppss = mock_ppss( - [{"train_on": "binance BTC/USDT c 5m", "predict": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - gql_data_factory = GQLDataFactory(ppss) - - gql_data_factory._do_subgraph_fetch( - Prediction, - "sapphire-mainnet", - UnixTimeMs(1701634300000), - UnixTimeMs(1701634500000), - {"contract_list": ["0x123"]}, - ) - - assert "Fetched" in caplog.text - - -def test_do_fetch_with_empty_data( - _mock_fetch_empty_gql, - tmpdir, - caplog, -): - st_timestr = "2023-12-03" - fin_timestr = "2023-12-05" - ppss = mock_ppss( - [{"train_on": "binance BTC/USDT c 5m", "predict": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - gql_data_factory = GQLDataFactory(ppss) - - gql_data_factory._do_subgraph_fetch( - Prediction, - "sapphire-mainnet", - UnixTimeMs(1701634300000), - UnixTimeMs(1701634500000), - {"contract_list": ["0x123"]}, - ) - - assert "Fetched" in caplog.text - - # check if the db table is created - - new_events_table = NewEventsTable("pdr_predictions") - db = DuckDBDataStore(ppss.lake_ss.lake_dir) - all_tables = db.get_table_names() - - assert new_events_table.table_name in all_tables - assert ( - len(db.query_data("SELECT * FROM {}".format(new_events_table.table_name))) == 0 - ) - - -def test_do_subgraph_fetch_stop_loop_when_restarting_fetch( - tmpdir, - caplog, -): - # If wrong timestamps in response data filter them out and stop the fetch loop - - st_timestr = "2023-11-03" - fin_timestr = "2023-11-05" - ppss = mock_ppss( - [{"train_on": "binance BTC/USDT c 5m", "predict": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - gql_data_factory = GQLDataFactory(ppss) - - initial_response = mock_daily_predictions() - - assert len(initial_response) == 6 - - # set wrong dates from the data within reponse - initial_response[3].timestamp = 1697865200000 - initial_response[4].timestamp = 1697865700000 - initial_response[5].timestamp = 1697866200000 - - mocked_function = MagicMock() - mocked_function.return_value = initial_response - Prediction.get_fetch_function = MagicMock(return_value=mocked_function) - - gql_data_factory._do_subgraph_fetch( - Prediction, - "sapphire-mainnet", - UnixTimeMs(1698865200000), - UnixTimeMs(1699300800000), - {"contract_list": ["0x123"]}, - ) - new_events_table = NewEventsTable("pdr_predictions") - db = DuckDBDataStore(ppss.lake_ss.lake_dir) - all_tables = db.get_table_names() - - assert new_events_table.table_name in all_tables - assert ( - len(db.query_data("SELECT * FROM {}".format(new_events_table.table_name))) == 3 - ) - assert "Fetched" in caplog.text - - -def test_prepare_subgraph_fetch_empty_prod( - _gql_datafactory_etl_predictions_df, - _mock_fetch_gql_predictions, - _mock_fetch_gql_subscriptions, - _mock_fetch_gql_truevals, - _mock_fetch_gql_payouts, - _mock_fetch_gql_slots, - _get_test_DuckDB, - tmpdir, -): - """ - Test that validates: - 1. after production table is created - 2. we drop values from the production table - 3. prepare_subgraph_fetch() is called to pre-load data from CSV - 4. pipeline resumes from latest CSV records - """ - - st_timestr = "2023-11-03" - fin_timestr = "2023-11-05" - ppss = mock_ppss( - [{"train_on": "binance BTC/USDT c 5m", "predict": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - gql_data_factory = GQLDataFactory(ppss) - db = DuckDBDataStore(ppss.lake_ss.lake_dir) - - fns = { - Prediction: _mock_fetch_gql_predictions, - Subscription: _mock_fetch_gql_subscriptions, - Trueval: _mock_fetch_gql_truevals, - Payout: _mock_fetch_gql_payouts, - Slot: _mock_fetch_gql_slots, - } - gql_data_factory = GQLDataFactory(ppss) - - # Work 1: We're going to validate that the expected data is processed - # From: Subgraph - # To: CSV + DB Prod tables - # patch GQL to only process predictions (all daa) - work_1_expected_predictions = _gql_datafactory_etl_predictions_df.filter( - pl.col("timestamp") >= UnixTimeMs.from_timestr(st_timestr) - ).filter(pl.col("timestamp") <= UnixTimeMs.from_timestr(fin_timestr)) - assert len(work_1_expected_predictions) == 2, "Expected 2 records" - - work_1_data = None - with patch("pdr_backend.lake.gql_data_factory.GQLDataFactory._do_swap_to_prod"): - for dataclass in _GQLDF_REGISTERED_LAKE_TABLES: - dataclass.get_fetch_function = MagicMock(return_value=fns[dataclass]) - gql_data_factory._update() - - db = _get_test_DuckDB(ppss.lake_ss.lake_dir) - target_table = NewEventsTable.from_dataclass(Prediction) - work_1_data = db.query_data("SELECT * FROM {}".format(target_table.table_name)) - - assert len(work_1_data) == 2 - assert len(work_1_data) == len(work_1_expected_predictions) - - assert work_1_data["pair"].to_list() == ["ADA/USDT", "BNB/USDT"] - assert work_1_data["timestamp"].to_list() == [1699038000000, 1699124400000] - - # Work 2: We're going to drop records from prod - # We're going to assert that the data will be correctly loaded from CSV - # We'll then verify that everything resumes and is processed correctly - # Drop any tables - db.drop_table(Table.from_dataclass(Prediction).table_name) - db.drop_table(NewEventsTable.from_dataclass(Prediction).table_name) - db.drop_table(UpdateEventsTable.from_dataclass(Prediction).table_name) - - # verify that subgraph prepares everything correctly - gql_data_factory._prepare_subgraph_fetch( - Prediction, - UnixTimeMs.from_timestr(st_timestr), - UnixTimeMs.from_timestr(fin_timestr), - ) - - # assert that the data was loaded from CSV to the temp table - work_2_data = db.query_data( - "SELECT * FROM {}".format(NewEventsTable.from_dataclass(Prediction).table_name) - ) - assert len(work_2_data) == 2 - assert len(work_2_data) == len(work_1_data) - - # Work 3: We're going to drop Work 2 records and run it again e2e - # This time, we'll adjust the end date so we should have data from csvs + subgraph - # From the CSV + the rest from the mock_daily_predictions - # Drop any tables - db.drop_table(Table.from_dataclass(Prediction).table_name) - db.drop_table(NewEventsTable.from_dataclass(Prediction).table_name) - db.drop_table(UpdateEventsTable.from_dataclass(Prediction).table_name) - - fin_timestr = "2023-11-07" - work_3_expected_data = _gql_datafactory_etl_predictions_df.filter( - pl.col("timestamp") >= UnixTimeMs.from_timestr(st_timestr) - ).filter(pl.col("timestamp") <= UnixTimeMs.from_timestr(fin_timestr)) - assert len(work_3_expected_data) == 4, "Expected 4 records" - - # verify that subgraph prepares everything correctly - gql_data_factory.ppss.lake_ss.d["fin_timestr"] = fin_timestr - - # patch GQL to only process predictions (all daa) - with patch( - "pdr_backend.lake.gql_data_factory.GQLDataFactory._prepare_subgraph_fetch", - return_value=None, - ): - with patch( - "pdr_backend.lake.gql_data_factory._GQLDF_REGISTERED_LAKE_TABLES", - [Prediction], - ): - new_events_table = NewEventsTable.from_dataclass(Prediction) - new_events_table._append_to_db(work_1_data, ppss) - gql_data_factory._update() - - # assert that the data was loaded from CSV to the temp table - work_3_data = db.query_data( - "SELECT * FROM {}".format(Table.from_dataclass(Prediction).table_name) - ) - assert len(work_3_data) == 4 - assert len(work_3_data) == len(work_3_expected_data) diff --git a/pdr_backend/lake/test/test_prediction.py b/pdr_backend/lake/test/test_prediction.py deleted file mode 100644 index 56ee55b7b..000000000 --- a/pdr_backend/lake/test/test_prediction.py +++ /dev/null @@ -1,22 +0,0 @@ -from enforce_typing import enforce_types - -from pdr_backend.lake.prediction import Prediction, mock_first_predictions - - -@enforce_types -def test_predictions(): - predictions = mock_first_predictions() - contract_address_1 = "0x18f54cc21b7a2fdd011bea06bba7801b280e3151" - contract_address_2 = "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152" - - assert len(predictions) == 2 - assert isinstance(predictions[0], Prediction) - assert isinstance(predictions[1], Prediction) - assert ( - predictions[0].ID - == contract_address_1 + "-1701503100-0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - ) - assert ( - predictions[1].ID - == contract_address_2 + "-1701589500-0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" - ) diff --git a/pdr_backend/lake/test/test_slots.py b/pdr_backend/lake/test/test_slots.py deleted file mode 100644 index f05a70b1a..000000000 --- a/pdr_backend/lake/test/test_slots.py +++ /dev/null @@ -1,14 +0,0 @@ -from enforce_typing import enforce_types - -from pdr_backend.lake.slot import Slot, mock_slots - - -@enforce_types -def test_slots(): - slots = mock_slots() - - assert len(slots) == 6 - assert isinstance(slots[0], Slot) - assert isinstance(slots[1], Slot) - assert slots[0].ID == "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838400" - assert slots[1].ID == "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838100" diff --git a/pdr_backend/lake/test/test_subscriptions.py b/pdr_backend/lake/test/test_subscriptions.py deleted file mode 100644 index 81521fc12..000000000 --- a/pdr_backend/lake/test/test_subscriptions.py +++ /dev/null @@ -1,22 +0,0 @@ -from enforce_typing import enforce_types - -from pdr_backend.lake.subscription import Subscription, mock_subscriptions - - -@enforce_types -def test_subscriptions(): - subscriptions = mock_subscriptions() - - assert len(subscriptions) == 9 - assert isinstance(subscriptions[0], Subscription) - assert isinstance(subscriptions[1], Subscription) - assert ( - subscriptions[0].ID - == """0x18f54cc21b7a2fdd011bea06bba7801b280e3151- - 0xe4599d8d1a02330fbc3a2a8fb4950f6d5a44d2e85fe750438246f535b47eda35-98""" - ) - assert ( - subscriptions[1].ID - == """0x18f54cc21b7a2fdd011bea06bba7801b280e3151- - 0xe4599d8d1a02330fbc3a2a8fb4950f6d5a44d2e85fe750438246f535b47eda35-98""" - ) diff --git a/pdr_backend/lake/test/test_table.py b/pdr_backend/lake/test/test_table.py deleted file mode 100644 index cfdab7ee2..000000000 --- a/pdr_backend/lake/test/test_table.py +++ /dev/null @@ -1,205 +0,0 @@ -import os - -import polars as pl -from polars import Boolean, Float64, Int64, Utf8 - -from pdr_backend.lake.csv_data_store import CSVDataStore -from pdr_backend.lake.duckdb_data_store import DuckDBDataStore -from pdr_backend.lake.prediction import Prediction -from pdr_backend.lake.table import Table -from pdr_backend.ppss.ppss import mock_ppss - - -# pylint: disable=too-many-instance-attributes -class MyClass: - def __init__(self, data): - self.ID = data["ID"] - self.pair = data["pair"] - self.timeframe = data["timeframe"] - self.prediction = data["prediction"] - self.payout = data["payout"] - self.timestamp = data["timestamp"] - self.slot = data["slot"] - self.user = data["user"] - - -mocked_object = { - "ID": "0x123", - "pair": "ADA-USDT", - "timeframe": "5m", - "prediction": True, - "payout": 28.2, - "timestamp": 1701634400000, - "slot": 1701634400000, - "user": "0x123", -} - - -def mock_fetch_function( - network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config -): - print(network, st_ut, fin_ut, save_backoff_limit, pagination_limit, config) - return [MyClass(mocked_object)] - - -def get_table_df(network, st_ut, fin_ut, config): - print(network, st_ut, fin_ut, config) - return pl.DataFrame([mocked_object], table_df_schema) - - -def _get_lake_dir(ppss): - # if ppss.lake_ss has an attribute lake_dir, return it - if hasattr(ppss.lake_ss, "lake_dir"): - return ppss.lake_ss.lake_dir - # otherwise, return the default lake_dir - return ppss.lake_ss.parquet_dir - - -table_df_schema = { - "ID": Utf8, - "pair": Utf8, - "timeframe": Utf8, - "prediction": Boolean, - "payout": Float64, - "timestamp": Int64, - "slot": Int64, - "user": Utf8, -} -table_name = "pdr_test_df" -file_path = f"./parquet_data/{table_name}.parquet" -file_path2 = "./parquet_data/test_prediction_table_multiple.parquet" - -# delete test file if already exists -if os.path.exists(file_path): - os.remove(file_path) -if os.path.exists(file_path2): - os.remove(file_path2) - - -def _table_exists(db, searched_table_name): - table_names = db.get_table_names() - return [searched_table_name in table_names, table_name] - - -def test_csv_data_store( - _gql_datafactory_first_predictions_df, - _gql_datafactory_1k_predictions_df, - tmpdir, -): - """ - Test that create table and append existing mock prediction data - """ - st_timestr = "2023-11-01" - fin_timestr = "2024-11-03" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - # Initialize Table, fill with data, validate - table = Table.from_dataclass(Prediction) - table._append_to_csv(_gql_datafactory_first_predictions_df, ppss) - - assert CSVDataStore.from_table(table, ppss).has_data() - - csv_file_path = os.path.join( - ppss.lake_ss.lake_dir, - table.table_name, - f"{table.table_name}_from_1701503000000_to_.csv", - ) - - assert os.path.exists(csv_file_path) - - with open(csv_file_path, "r") as file: - lines = file.readlines() - assert len(lines) == 3 - file.close() - - # Add second batch of predictions, validate - table._append_to_csv(_gql_datafactory_1k_predictions_df, ppss) - - files = os.listdir(os.path.join(ppss.lake_ss.lake_dir, table.table_name)) - files.sort(reverse=True) - - assert len(files) == 2 - - new_file_path = os.path.join( - ppss.lake_ss.lake_dir, - table.table_name, - files[0], - ) - with open(new_file_path, "r") as file: - lines = file.readlines() - assert len(lines) == 3 - - -def test_persistent_store( - _gql_datafactory_first_predictions_df, - _gql_datafactory_second_predictions_df, - tmpdir, -): - """ - Test that create table and append existing mock prediction data - """ - st_timestr = "2023-12-03" - fin_timestr = "2024-12-05" - ppss = mock_ppss( - [{"train_on": "binance BTC/USDT c 5m", "predict": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - str(tmpdir), - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - predictions_table_name = Prediction.get_lake_table_name() - # Initialize Table, fill with data, validate - db = DuckDBDataStore(ppss.lake_ss.lake_dir) - db.create_from_df(_gql_datafactory_first_predictions_df, predictions_table_name) - - assert _table_exists(db, predictions_table_name) - - result = db.query_data(f"SELECT * FROM {predictions_table_name}") - assert len(result) == 2, "Length of the table is not as expected" - - # Add second batch of predictions, validate - db.insert_from_df( - _gql_datafactory_second_predictions_df, Prediction.get_lake_table_name() - ) - - result = db.query_data(f"SELECT * FROM {predictions_table_name}") - - assert len(result) == 8, "Length of the table is not as expected" - - assert ( - result["ID"][0] - == "0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1701503100-0xaaaa4cb4ff2584bad80ff5f109034a891c3d88dd" # pylint: disable=line-too-long - ) - assert result["pair"][0] == "ADA/USDT" - assert result["timeframe"][0] == "5m" - assert result["predvalue"][0] is True - assert len(result) == 8 - - -def test_append_to_db(caplog): - """ - Test that table is saving to local file - """ - st_timestr = "2023-12-03" - fin_timestr = "2023-12-05" - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - "sapphire-mainnet", - ".", - st_timestr=st_timestr, - fin_timestr=fin_timestr, - ) - - table = Table.from_dataclass(Prediction) - data = pl.DataFrame([mocked_object], Prediction.get_lake_schema()) - - table._append_to_db(data, ppss) - - assert "Appended 1 rows to db table: pdr_predictions" in caplog.text diff --git a/pdr_backend/ppss/ppss.py b/pdr_backend/ppss/ppss.py index 4e1873350..a918e2f89 100644 --- a/pdr_backend/ppss/ppss.py +++ b/pdr_backend/ppss/ppss.py @@ -219,11 +219,6 @@ def mock_ppss( } ) - assert hasattr(ppss, "trueval_ss") - assert "feeds" in ppss.trueval_ss.d # type: ignore[attr-defined] - ppss.trueval_ss.d["feeds"] = predict_train_feedsets.feed_strs # type: ignore[attr-defined] - ) - return ppss diff --git a/pdr_backend/ppss/test/test_ppss.py b/pdr_backend/ppss/test/test_ppss.py index 0ce3ca356..ddcd4a437 100644 --- a/pdr_backend/ppss/test/test_ppss.py +++ b/pdr_backend/ppss/test/test_ppss.py @@ -98,7 +98,6 @@ def test_mock_ppss_onefeed1(feed_str): {"predict": feed_str, "train_on": feed_str} ] assert ppss.trader_ss.d["feed"] == feed_str - assert ppss.dfbuyer_ss.d["feeds"] == [feed_str] ppss.verify_feed_dependencies() diff --git a/pdr_backend/sim/sim_engine.py b/pdr_backend/sim/sim_engine.py index a8cccd85a..e513352a5 100644 --- a/pdr_backend/sim/sim_engine.py +++ b/pdr_backend/sim/sim_engine.py @@ -12,16 +12,12 @@ from pdr_backend.aimodel.aimodel import Aimodel from pdr_backend.aimodel.aimodel_data_factory import AimodelDataFactory from pdr_backend.aimodel.aimodel_factory import AimodelFactory -from pdr_backend.aimodel.aimodel_plotdata import AimodelPlotdata from pdr_backend.aimodel.ycont_to_ytrue import ycont_to_ytrue from pdr_backend.cli.arg_feed import ArgFeed from pdr_backend.cli.arg_timeframe import ArgTimeframe from pdr_backend.cli.predict_train_feedsets import PredictTrainFeedset from pdr_backend.lake.ohlcv_data_factory import OhlcvDataFactory from pdr_backend.ppss.ppss import PPSS -from pdr_backend.sim.sim_chain_predictions import SimChainPredictions -from pdr_backend.sim.sim_logger import SimLogLine -from pdr_backend.sim.sim_plotter import SimPlotter from pdr_backend.sim.sim_trader import SimTrader from pdr_backend.sim.sim_state import SimState from pdr_backend.util.strutil import shift_one_earlier @@ -44,15 +40,10 @@ def __init__( assert self.predict_feed.signal == "close", "only operates on close predictions" self.ppss = ppss - # can be disabled by calling disable_realtime_state() - self.do_state_updates = True - self.st = SimState() self.trader = SimTrader(ppss, self.predict_feed) - self.sim_plotter = SimPlotter() - self.logfile = "" if multi_id: @@ -61,7 +52,6 @@ def __init__( self.multi_id = str(uuid.uuid4()) # timestamp -> prob up - self.chain_predictions_map: Dict[int, float] = {} self.model: Optional[Aimodel] = None @property @@ -78,24 +68,6 @@ def _init_loop_attributes(self): logger.addHandler(fh) self.st.init_loop_attributes() - logger.info("Initialize plot data.") - self.sim_plotter.init_state(self.multi_id) - - # fetch predictions data - if not self.ppss.sim_ss.use_own_model: - self.load_chain_prediction_data() - - @enforce_types - def load_chain_prediction_data(self): - SimChainPredictions.verify_use_chain_data_in_syms_dependencies(self.ppss) - if not SimChainPredictions.verify_prediction_data(self.ppss): - raise Exception("Couldn't get prediction data") - self.chain_predictions_map = SimChainPredictions.get_predictions_data( - UnixTimeMs(self.ppss.lake_ss.st_timestamp).to_seconds(), - UnixTimeMs(self.ppss.lake_ss.fin_timestamp).to_seconds(), - self.ppss, - self.predict_feed, - ) @enforce_types def run(self, mergedohlcv_df: Optional[pl.DataFrame] = None): @@ -117,9 +89,6 @@ def run(self, mergedohlcv_df: Optional[pl.DataFrame] = None): def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): ppss, pdr_ss, st = self.ppss, self.ppss.predictoor_ss, self.st transform = pdr_ss.aimodel_data_ss.transform - stake_amt = pdr_ss.stake_amount.amt_eth - others_stake = pdr_ss.others_stake.amt_eth - revenue = pdr_ss.revenue.amt_eth testshift = ppss.sim_ss.test_n - test_i - 1 # eg [99, 98, .., 2, 1, 0] data_f = AimodelDataFactory(pdr_ss) # type: ignore[arg-type] @@ -156,7 +125,7 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): if ( self.model is None - or self.st.iter_number % pdr_ss.aimodel_ss.train_every_n_epochs == 0 + or st.iter_number % pdr_ss.aimodel_ss.train_every_n_epochs == 0 ): model_f = AimodelFactory(pdr_ss.aimodel_ss) self.model = model_f.build(X_train, ytrue_train, ytran_train, y_thr) @@ -165,32 +134,17 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): recent_ut = UnixTimeMs(int(mergedohlcv_df["timestamp"].to_list()[-1])) timeframe: ArgTimeframe = predict_feed.timeframe # type: ignore ut = UnixTimeMs(recent_ut - testshift * timeframe.ms) - prob_up: float = 0.0 + # predict price direction - if self.ppss.sim_ss.use_own_model: - prob_up = self.model.predict_ptrue(X_test)[0] # in [0.0, 1.0] - else: - ut_seconds = ut.to_seconds() - if not ut_seconds in self.chain_predictions_map: - logger.error("No prediction found at time %s", ut_seconds) - return - prob_up = self.chain_predictions_map[ut_seconds] - + prob_up: float = self.model.predict_ptrue(X_test)[0] # in [0.0, 1.0] prob_down: float = 1.0 - prob_up conf_up = (prob_up - 0.5) * 2.0 # to range [0,1] conf_down = (prob_down - 0.5) * 2.0 # to range [0,1] conf_threshold = self.ppss.trader_ss.sim_confidence_threshold pred_up: bool = prob_up > 0.5 and conf_up > conf_threshold pred_down: bool = prob_up < 0.5 and conf_down > conf_threshold - st.probs_up.append(prob_up) - - # predictoor: (simulate) submit predictions with stake - acct_up_profit = acct_down_profit = 0.0 - stake_up = stake_amt * prob_up - stake_down = stake_amt * (1.0 - prob_up) - acct_up_profit -= stake_up - acct_down_profit -= stake_down + # trade profit = self.trader.trade_iter( cur_close, pred_up, @@ -201,75 +155,34 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): cur_low, ) - st.trader_profits_USD.append(profit) - # observe true price true_up = next_close > cur_close - st.ytrues.append(true_up) - - # update classifier metrics - n_correct = sum(np.array(st.ytrues) == np.array(st.ytrues_hat)) - n_trials = len(st.ytrues) - acc_est = n_correct / n_trials - acc_l, acc_u = proportion_confint(count=n_correct, nobs=n_trials) - (precision, recall, f1, _) = precision_recall_fscore_support( - st.ytrues, - st.ytrues_hat, - average="binary", - zero_division=0.0, - ) - if min(st.ytrues) == max(st.ytrues): - loss = 3.0 - else: - loss = log_loss(st.ytrues, st.probs_up) - yerr = 0.0 - if self.model.do_regr: - pred_ycont = self.model.predict_ycont(X_test)[0] - if transform == "None": - pred_next_close = pred_ycont - else: # transform = "RelDiff" - relchange = pred_ycont - pred_next_close = cur_close + relchange * cur_close - yerr = next_close - pred_next_close - - st.aim.update(acc_est, acc_l, acc_u, f1, precision, recall, loss, yerr) - - # track predictoor profit - tot_stake = others_stake + stake_amt - others_stake_correct = others_stake * pdr_ss.others_accuracy - if true_up: - tot_stake_correct = others_stake_correct + stake_up - percent_to_me = stake_up / tot_stake_correct - acct_up_profit += (revenue + tot_stake) * percent_to_me - else: - tot_stake_correct = others_stake_correct + stake_down - percent_to_me = stake_down / tot_stake_correct - acct_down_profit += (revenue + tot_stake) * percent_to_me - pdr_profit_OCEAN = acct_up_profit + acct_down_profit - st.pdr_profits_OCEAN.append(pdr_profit_OCEAN) + + # update state + st.probs_up.append(prob_up) + st.profits.append(profit) - SimLogLine(ppss, st, test_i, ut, acct_up_profit, acct_down_profit).log_line() + # log + self._log_line(test_i, ut) + # save state save_state, is_final_state = self.save_state(test_i, self.ppss.sim_ss.test_n) - if save_state: - colnames = [shift_one_earlier(colname) for colname in colnames] - most_recent_x = X[-1, :] - slicing_x = most_recent_x # plot about the most recent x - d = AimodelPlotdata( - self.model, - X_train, - ytrue_train, - ytran_train, - y_thr, - colnames, - slicing_x, - ) - self.st.iter_number = test_i - self.sim_plotter.save_state(self.st, d, is_final_state) - - def disable_realtime_state(self): - self.do_state_updates = False + def _log_line(self, test_i, ut): + s = f"Iter #{test_i+1}/{self.ppss.sim_ss.test_n}" + s += f" ut={ut}" + s += f" dt={ut.to_timestr()[:-7]}" + s += " ║" + + s += f" prob_up={self.st.probs_up[-1]:.3f}" + + s += " ║" + + s += f" tdr_profit=${self.st.profits[-1]:6.2f}" + s += f" (cumul ${sum(self.st.profits):6.2f})" + + logger.info(s) + @enforce_types def save_state(self, i: int, N: int): @@ -277,10 +190,6 @@ def save_state(self, i: int, N: int): if self.ppss.sim_ss.is_final_iter(i): return True, True - # don't save if disabled - if not self.do_state_updates: - return False, False - # don't save first 5 iters -> not interesting # then save the next 5 -> "stuff's happening!" # then save every 5th iter, to balance "stuff's happening" w/ speed diff --git a/pdr_backend/sim/sim_logger.py b/pdr_backend/sim/sim_logger.py deleted file mode 100644 index ac23d7d1a..000000000 --- a/pdr_backend/sim/sim_logger.py +++ /dev/null @@ -1,56 +0,0 @@ -import logging - -import numpy as np -from enforce_typing import enforce_types - -from pdr_backend.util.strutil import compactSmallNum - -logger = logging.getLogger("sim_engine") - - -@enforce_types -# pylint: disable=too-many-instance-attributes -class SimLogLine: - def __init__(self, ppss, st, test_i, ut, acct_up_profit, acct_down_profit): - self.st = st - - self.test_n = ppss.sim_ss.test_n - self.test_i = test_i - self.ut = ut - self.acct_up_profit = acct_up_profit - self.acct_down_profit = acct_down_profit - - self.n_correct = sum(np.array(st.ytrues) == np.array(st.ytrues_hat)) - self.n_trials = len(st.ytrues) - - for key, item in st.recent_metrics(extras=["prob_up"]).items(): - setattr(self, key, item) - - # unused for now, but supports future configuration from ppss - self.format = "compact" - - def log_line(self): - s = f"Iter #{self.test_i+1}/{self.test_n}" - s += f" ut={self.ut}" - s += f" dt={self.ut.to_timestr()[:-7]}" - s += " ║" - - s += f" prob_up={self.prob_up:.3f}" - s += " pdr_profit=" - s += f"{compactSmallNum(self.acct_up_profit)} up" - s += f" + {compactSmallNum(self.acct_down_profit)} down" - s += f" = {compactSmallNum(self.pdr_profit_OCEAN)} OCEAN" - s += f" (cumul {compactSmallNum(sum(self.st.pdr_profits_OCEAN))} OCEAN)" - s += " ║" - - s += f" Acc={self.n_correct:4d}/{self.n_trials:4d} " - s += f"= {self.acc_est*100:6.2f}% [{self.acc_l*100:5.1f}%, {self.acc_u*100:5.1f}%]" - s += f" prcsn={self.precision:.3f} recall={self.recall:.3f}" - s += f" f1={self.f1:.3f}" - s += f" loss={self.loss:.3f}" - s += " ║" - - s += f" tdr_profit=${self.trader_profit_USD:6.2f}" - s += f" (cumul ${sum(self.st.trader_profits_USD):6.2f})" - - logger.info(s) diff --git a/pdr_backend/sim/sim_state.py b/pdr_backend/sim/sim_state.py index 660d64968..a932708af 100644 --- a/pdr_backend/sim/sim_state.py +++ b/pdr_backend/sim/sim_state.py @@ -2,69 +2,6 @@ from enforce_typing import enforce_types - -@enforce_types -class AimodelMetrics: - # pylint: disable=too-many-instance-attributes - - def __init__(self): - # 'i' is iteration number i - self.acc_ests: List[float] = [] # [i] : %-correct - self.acc_ls: List[float] = [] # [i] : %-correct-lower - self.acc_us: List[float] = [] # [i] : %-correct-upper - - self.f1s: List[float] = [] # [i] : f1-score - self.precisions: List[float] = [] # [i] : precision - self.recalls: List[float] = [] # [i] : recall - - self.losses: List[float] = [] # [i] : log-loss - - self.yerrs: List[float] = [] # [i] : regressor pred'n errs, w/ sign - - # pylint: disable=too-many-positional-arguments - def update(self, acc_est, acc_l, acc_u, f1, precision, recall, loss, yerr): - self.acc_ests.append(acc_est) - self.acc_ls.append(acc_l) - self.acc_us.append(acc_u) - - self.f1s.append(f1) - self.precisions.append(precision) - self.recalls.append(recall) - - self.losses.append(loss) - - self.yerrs.append(yerr) - - @staticmethod - def recent_metrics_names() -> List[str]: - return [ - "acc_est", - "acc_l", - "acc_u", - "f1", - "precision", - "recall", - "loss", - "yerr", - ] - - def recent_metrics(self) -> Dict[str, Union[int, float, None]]: - """Return most recent aimodel metrics""" - if not self.acc_ests: - return {key: None for key in AimodelMetrics.recent_metrics_names()} - - return { - "acc_est": self.acc_ests[-1], - "acc_l": self.acc_ls[-1], - "acc_u": self.acc_us[-1], - "f1": self.f1s[-1], - "precision": self.precisions[-1], - "recall": self.recalls[-1], - "loss": self.losses[-1], - "yerr": self.yerrs[-1], - } - - # pylint: disable=too-many-instance-attributes @enforce_types class SimState: @@ -76,44 +13,24 @@ def init_loop_attributes(self): # 'i' is iteration number i # base data - self.ytrues: List[bool] = [] # [i] : was-truly-up self.probs_up: List[float] = [] # [i] : predicted-prob-up - # aimodel metrics - self.aim = AimodelMetrics() - # profits - self.pdr_profits_OCEAN: List[float] = [] # [i] : predictoor-profit - self.trader_profits_USD: List[float] = [] # [i] : trader-profit + self.profits: List[float] = [] # [i] : trader_profit @staticmethod def recent_metrics_names() -> List[str]: - return AimodelMetrics.recent_metrics_names() + [ - "pdr_profit_OCEAN", - "trader_profit_USD", - ] + return ["profit"] def recent_metrics( self, extras: Optional[List[str]] = None ) -> List[Union[int, float]]: """Return most recent aimodel metrics + profit metrics""" - rm = self.aim.recent_metrics().copy() - rm.update( - { - "pdr_profit_OCEAN": self.pdr_profits_OCEAN[-1], - "trader_profit_USD": self.trader_profits_USD[-1], - } - ) - + rm = { + "profit": self.profits[-1], + } if extras and "prob_up" in extras: rm["prob_up"] = self.probs_up[-1] return rm - @property - def ytrues_hat(self) -> List[bool]: - return [p > 0.5 for p in self.probs_up] - - @property - def n_correct(self) -> int: - return sum((p > 0.5) == t for p, t in zip(self.probs_up, self.ytrues)) diff --git a/pdr_backend/sim/test/test_sim_engine.py b/pdr_backend/sim/test/test_sim_engine.py index e1b25eb52..abe65b7b6 100644 --- a/pdr_backend/sim/test/test_sim_engine.py +++ b/pdr_backend/sim/test/test_sim_engine.py @@ -16,7 +16,7 @@ # pylint: disable=unused-argument def test_sim_engine(tmpdir): s = fast_test_yaml_str(tmpdir) - ppss = PPSS(yaml_str=s, network="development") + ppss = PPSS(yaml_str=s) # set feeds; we'll use them below feedset_list = [ diff --git a/pdr_backend/sim/test/test_sim_logger.py b/pdr_backend/sim/test/test_sim_logger.py deleted file mode 100644 index 64cb8daf2..000000000 --- a/pdr_backend/sim/test/test_sim_logger.py +++ /dev/null @@ -1,49 +0,0 @@ -import os -from unittest.mock import Mock - -from pdr_backend.ppss.ppss import PPSS, fast_test_yaml_str -from pdr_backend.ppss.sim_ss import SimSS, sim_ss_test_dict -from pdr_backend.sim.sim_logger import SimLogLine -from pdr_backend.sim.sim_state import SimState -from pdr_backend.util.time_types import UnixTimeMs - - -def test_compact_num(tmpdir, caplog): - s = fast_test_yaml_str(tmpdir) - ppss = PPSS(yaml_str=s, network="development") - - log_dir = os.path.join(tmpdir, "logs") - d = sim_ss_test_dict(log_dir, test_n=5) - ppss.sim_ss = SimSS(d) - - st = Mock(spec=SimState) - st.ytrues = [True, False, True, False, True] - st.recent_metrics.return_value = { - "pdr_profit_OCEAN": 1.0, - "trader_profit_USD": 2.0, - "prob_up": 0.5, - "acc_est": 0.6, - "acc_l": 0.7, - "acc_u": 0.8, - "f1": 0.9, - "precision": 0.1, - "recall": 0.2, - "loss": 0.3, - } - st.pdr_profits_OCEAN = [1.0, 2.0, 3.0, 4.0, 5.0] - st.trader_profits_USD = [2.0, 3.0, 4.0, 5.0, 6.0] - - ut = UnixTimeMs(1701634400000) - log_line = SimLogLine(ppss, st, 1, ut, 0.5, 0.6) - log_line.log_line() - - assert "pdr_profit=0.50 up" in caplog.text - assert "prcsn=0.100" in caplog.text - assert f"Iter #2/{ppss.sim_ss.test_n}" in caplog.text - - log_line = SimLogLine(ppss, st, 1, ut, 0.003, 0.4) - log_line.log_line() - - assert "pdr_profit=3.00e-3 up" in caplog.text - assert "prcsn=0.100" in caplog.text - assert f"Iter #2/{ppss.sim_ss.test_n}" in caplog.text diff --git a/pdr_backend/util/constants.py b/pdr_backend/util/constants.py index 8de6935e8..6abc9f5b6 100644 --- a/pdr_backend/util/constants.py +++ b/pdr_backend/util/constants.py @@ -1,52 +1,10 @@ -ZERO_ADDRESS = "0x0000000000000000000000000000000000000000" MAX_UINT = 2**256 - 1 -DEVELOPMENT_CHAINID = 8996 - -SAPPHIRE_TESTNET_RPC = "https://testnet.sapphire.oasis.dev" -SAPPHIRE_TESTNET_CHAINID = 23295 - -SAPPHIRE_MAINNET_RPC = "https://sapphire.oasis.io" -SAPPHIRE_MAINNET_CHAINID = 23294 - -OCEAN_TOKEN_ADDRS = { - SAPPHIRE_MAINNET_CHAINID: "0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520", - SAPPHIRE_TESTNET_CHAINID: "0x973e69303259B0c2543a38665122b773D28405fB", -} - S_PER_MIN = 60 S_PER_DAY = 86400 S_PER_WEEK = S_PER_DAY * 7 -SUBGRAPH_MAX_TRIES = 5 -WEB3_MAX_TRIES = 5 - CAND_USDCOINS = ["USDT", "USDC", "DAI", "RAI", "USD"] # add more if needed CAND_TIMEFRAMES = ["1s", "30s", "1m", "5m", "15m", "30m", "1h", "1d", "1w", "1M"] CHAR_TO_SIGNAL = {"o": "open", "h": "high", "l": "low", "c": "close", "v": "volume"} -# font size for plots -FONTSIZE = 9 - -WHITELIST_FEEDS_MAINNET = [ - "0x18f54cc21b7a2fdd011bea06bba7801b280e3151", - "0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152", - "0x30f1c55e72fe105e4a1fbecdff3145fc14177695", - "0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd", - "0x3fb744c3702ff2237fc65f261046ead36656f3bc", - "0x55c6c33514f80b51a1f1b63c8ba229feb132cedb", - "0x74a61f733bd9a2ce40d2e39738fe4912925c06dd", - "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553", - "0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f", - "0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f", - "0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0", - "0xaa6515c138183303b89b98aea756b54f711710c5", - "0xb1c55346023dee4d8b0d7b10049f0c8854823766", - "0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434", - "0xd41ffee162905b45b65fa6b6e4468599f0490065", - "0xd49cbfd694f4556c00023ddd3559c36af3ae0a80", - "0xe66421fd29fc2d27d0724f161f01b8cbdcd69690", - "0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30", - "0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3", - "0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd", -] diff --git a/pdr_backend/util/core_accounts.py b/pdr_backend/util/core_accounts.py deleted file mode 100644 index 71138234c..000000000 --- a/pdr_backend/util/core_accounts.py +++ /dev/null @@ -1,52 +0,0 @@ -import logging -import os -from typing import List - -from enforce_typing import enforce_types -from eth_account import Account - -from pdr_backend.contract.token import Token -from pdr_backend.ppss.web3_pp import Web3PP -from pdr_backend.util.currency_types import Eth - -logger = logging.getLogger("core_accounts") - - -@enforce_types -def fund_accounts_with_OCEAN(web3_pp: Web3PP): - """ - Fund accounts, with opinions: use OCEAN, and choices of amounts. - Meant to be used from CLI. - """ - logger.info("Fund accounts with OCEAN, network = %s", web3_pp.network) - accounts_to_fund = [ - # account_key_env, OCEAN_to_send - ("PREDICTOOR_PRIVATE_KEY", Eth(2000.0)), - ("PREDICTOOR2_PRIVATE_KEY", Eth(2000.0)), - ("PREDICTOOR3_PRIVATE_KEY", Eth(2000.0)), - ("TRADER_PRIVATE_KEY", Eth(2000.0)), - ("DFBUYER_PRIVATE_KEY", Eth(10000.0)), - ("PDR_WEBSOCKET_KEY", Eth(10000.0)), - ("PDR_MM_USER", Eth(10000.0)), - ] - - OCEAN = web3_pp.OCEAN_Token - _fund_accounts(accounts_to_fund, web3_pp.web3_config.owner, OCEAN) - logger.info("Done funding.") - - -@enforce_types -def _fund_accounts(accounts_to_fund: List[tuple], owner: str, token: Token): - """Worker function to actually fund accounts""" - for private_key_name, amount in accounts_to_fund: - if private_key_name in os.environ: - private_key = os.getenv(private_key_name) - account = Account.from_key( # pylint: disable=no-value-for-parameter - private_key - ) - logger.info( - "Sending OCEAN to account defined by envvar %s, with address %s", - private_key_name, - account.address, - ) - token.transfer(account.address, amount.to_wei(), owner) diff --git a/pdr_backend/util/csvs.py b/pdr_backend/util/csvs.py deleted file mode 100644 index ebf5f38fa..000000000 --- a/pdr_backend/util/csvs.py +++ /dev/null @@ -1,107 +0,0 @@ -import csv -import logging -import os -from typing import Dict, List - -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_predictions import Prediction - -logger = logging.getLogger("csvs") - - -@enforce_types -def get_plots_dir(pq_dir: str): - plots_dir = os.path.join(pq_dir, "plots") - - if not os.path.exists(plots_dir): - os.makedirs(plots_dir) - - return plots_dir - - -@enforce_types -def key_csv_filename_with_dir(csv_output_dir: str, key: str) -> str: - return os.path.join( - csv_output_dir, - key + ".csv", - ) - - -@enforce_types -def generate_prediction_data_structure( - predictions: List[Prediction], -) -> Dict[str, List[Prediction]]: - data: Dict[str, List[Prediction]] = {} - for prediction in predictions: - key = ( - prediction.pair.replace("/", "-") + prediction.timeframe + prediction.source - ) - - if key not in data: - data[key] = [] - data[key].append(prediction) - - return data - - -@enforce_types -def _save_prediction_csv( - all_predictions: List[Prediction], - csv_output_dir: str, - headers_attrs: dict, -): - if not os.path.isdir(csv_output_dir): - os.makedirs(csv_output_dir) - - data = generate_prediction_data_structure(all_predictions) - - for key, predictions in data.items(): - predictions.sort(key=lambda x: x.timestamp) - filename = key_csv_filename_with_dir(csv_output_dir, key) - with open(filename, "w", newline="") as file: - writer = csv.writer(file) - - writer.writerow(headers_attrs.keys()) - - for prediction in predictions: - writer.writerow( - [ - getattr(prediction, attribute_name) - for attribute_name in headers_attrs.values() - ] - ) - - logger.info("CSV file '%s' created successfully.", filename) - - -def save_prediction_csv(all_predictions: List[Prediction], csv_output_dir: str): - _save_prediction_csv( - all_predictions, - csv_output_dir, - { - "Predicted Value": "predvalue", - "True Value": "truevalue", - "Timestamp": "timestamp", - "Stake": "stake", - "Payout": "payout", - }, - ) - - -@enforce_types -def save_analysis_csv(all_predictions: List[Prediction], csv_output_dir: str): - _save_prediction_csv( - all_predictions, - csv_output_dir, - { - "PredictionID": "ID", - "Timestamp": "timestamp", - "Slot": "slot", - "Stake": "stake", - "Wallet": "user", - "Payout": "payout", - "True Value": "truevalue", - "Predicted Value": "predvalue", - }, - ) diff --git a/pdr_backend/util/test/test_contract.py b/pdr_backend/util/test/test_contract.py deleted file mode 100644 index 725b7e497..000000000 --- a/pdr_backend/util/test/test_contract.py +++ /dev/null @@ -1,58 +0,0 @@ -from pathlib import Path - -import pytest -from enforce_typing import enforce_types - -from pdr_backend.ppss.ppss import mock_ppss -from pdr_backend.util.contract import ( - _condition_sapphire_keys, - get_contract_filename, -) - -_NETWORKS = [ - "sapphire-testnet", - "sapphire-mainnet", - "development", -] - - -@enforce_types -@pytest.mark.parametrize("network", _NETWORKS) -def test_contract_main(network): - # setup - - ppss = mock_ppss( - [{"predict": "binance BTC/USDT c 5m", "train_on": "binance BTC/USDT c 5m"}], - network, - ) - web3_pp = ppss.web3_pp - assert web3_pp.network == network - - result = web3_pp.get_contract_abi("ERC20Template3") - assert len(result) > 0 and isinstance(result, list) - - result = get_contract_filename("ERC20Template3", web3_pp.address_file) - assert result is not None and isinstance(result, Path) - - with pytest.raises(TypeError): - web3_pp.get_contract_abi("xyz") - - -@enforce_types -def test_condition_sapphire_keys(): - assert _condition_sapphire_keys({}) == {} - - assert _condition_sapphire_keys({"foo": "bar"}) == {"foo": "bar"} - - k1 = {"oasis_saphire_testnet": "test", "oasis_saphire": "main", "foo": "bar"} - k2 = { - "oasis_saphire_testnet": "test", - "oasis_saphire": "main", - "sapphire-testnet": "test", - "sapphire-mainnet": "main", - "foo": "bar", - } - assert _condition_sapphire_keys(k1) == k2 - - k3 = {"sapphire-testnet": "test", "sapphire-mainnet": "main", "foo": "bar"} - assert _condition_sapphire_keys(k3) == k3 diff --git a/pdr_backend/util/test/test_csvs.py b/pdr_backend/util/test/test_csvs.py deleted file mode 100644 index b89e48abe..000000000 --- a/pdr_backend/util/test/test_csvs.py +++ /dev/null @@ -1,58 +0,0 @@ -import csv -import os - -from pdr_backend.lake.prediction import mock_daily_predictions -from pdr_backend.util.csvs import save_analysis_csv, save_prediction_csv - - -def test_save_analysis_csv(tmpdir): - predictions = mock_daily_predictions() - key = ( - predictions[0].pair.replace("/", "-") - + predictions[0].timeframe - + predictions[0].source - ) - save_analysis_csv(predictions, str(tmpdir)) - - with open(os.path.join(str(tmpdir), key + ".csv")) as f: - data = csv.DictReader(f) - data_rows = list(data) - - assert data_rows[0]["Predicted Value"] == str(predictions[0].predvalue) - assert data_rows[0]["True Value"] == str(predictions[0].truevalue) - assert data_rows[0]["Timestamp"] == str(predictions[0].timestamp) - assert list(data_rows[0].keys()) == [ - "PredictionID", - "Timestamp", - "Slot", - "Stake", - "Wallet", - "Payout", - "True Value", - "Predicted Value", - ] - - -def test_save_prediction_csv(tmpdir): - predictions = mock_daily_predictions() - key = ( - predictions[0].pair.replace("/", "-") - + predictions[0].timeframe - + predictions[0].source - ) - save_prediction_csv(predictions, str(tmpdir)) - - with open(os.path.join(str(tmpdir), key + ".csv")) as f: - data = csv.DictReader(f) - data_rows = list(row for row in data) - - assert data_rows[0]["Predicted Value"] == str(predictions[0].predvalue) - assert data_rows[0]["True Value"] == str(predictions[0].truevalue) - assert data_rows[0]["Timestamp"] == str(predictions[0].timestamp) - assert list(data_rows[0].keys()) == [ - "Predicted Value", - "True Value", - "Timestamp", - "Stake", - "Payout", - ] diff --git a/pdr_backend/util/test/test_util_constants.py b/pdr_backend/util/test/test_util_constants.py index d6736a2b0..c9bea8071 100644 --- a/pdr_backend/util/test/test_util_constants.py +++ b/pdr_backend/util/test/test_util_constants.py @@ -7,33 +7,14 @@ CHAR_TO_SIGNAL, S_PER_DAY, S_PER_MIN, - SAPPHIRE_MAINNET_CHAINID, - SAPPHIRE_MAINNET_RPC, - SAPPHIRE_TESTNET_CHAINID, - SAPPHIRE_TESTNET_RPC, - SUBGRAPH_MAX_TRIES, - WEB3_MAX_TRIES, - ZERO_ADDRESS, ) @enforce_types def test_util_constants(): - assert ZERO_ADDRESS[:3] == "0x0" - - assert "https://" in SAPPHIRE_TESTNET_RPC - assert isinstance(SAPPHIRE_TESTNET_CHAINID, int) - assert "https://" in SAPPHIRE_MAINNET_RPC - assert isinstance(SAPPHIRE_MAINNET_CHAINID, int) - assert S_PER_MIN == 60 assert S_PER_DAY == 86400 - assert 1 <= SUBGRAPH_MAX_TRIES <= np.inf - assert isinstance(SUBGRAPH_MAX_TRIES, int) - assert 1 <= WEB3_MAX_TRIES <= np.inf - assert isinstance(WEB3_MAX_TRIES, int) - assert "USDT" in CAND_USDCOINS assert "5m" in CAND_TIMEFRAMES assert "close" in CHAR_TO_SIGNAL.values() diff --git a/setup.py b/setup.py index 9d9b79907..a69bdba5a 100644 --- a/setup.py +++ b/setup.py @@ -8,22 +8,13 @@ "black==24.10.0", "bumpversion", "ccxt==4.4.33", - "coverage", - "dash[testing]==2.18.2", - "dash_bootstrap_components==1.6.0", "dateparser==1.2.0", - "duckdb==1.1.3", "enforce_typing", - "eth-account==0.11.0", - "eth-keys==0.6.0", "imblearn", - "kaleido==0.4.1", "mypy==1.13.0", "numpy==2.1.3", - "numerize==0.12.0", "pandas==2.2.3", "pathlib", - "plotly==5.24.1", "polars==1.14.0", "polars[timezone]", "pyarrow==18.0.0", @@ -39,11 +30,7 @@ "time_machine==2.16.0", "typeguard==4.4.1", "xgboost==2.1.2", - "web3==6.20.2", - "sapphire.py==0.2.3", "stopit==1.1.2", - "ta==0.11.0", - "ocean-contracts==2.2.1", # install this last ] # Required to run setup.py: From 5ec0babcb90ebdd1ccd0a4f61ed9259fb619bebf Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 16:02:06 +0100 Subject: [PATCH 06/44] black --- pdr_backend/aimodel/test/test_aimodel_factory_general.py | 5 ++--- pdr_backend/cli/cli_arguments.py | 4 ---- pdr_backend/cli/cli_module.py | 1 - pdr_backend/cli/test/test_cli_module.py | 4 +--- pdr_backend/lake/ohlcv_data_factory.py | 3 +-- pdr_backend/lake/test/conftest.py | 2 +- pdr_backend/lake/test/resources.py | 1 - pdr_backend/ppss/lake_ss.py | 1 - pdr_backend/ppss/ppss.py | 2 +- pdr_backend/ppss/predictoor_ss.py | 1 + pdr_backend/sim/sim_engine.py | 9 ++++----- pdr_backend/sim/sim_state.py | 4 ++-- pdr_backend/util/constants.py | 1 - 13 files changed, 13 insertions(+), 25 deletions(-) diff --git a/pdr_backend/aimodel/test/test_aimodel_factory_general.py b/pdr_backend/aimodel/test/test_aimodel_factory_general.py index 7266ebc10..26bea4cee 100644 --- a/pdr_backend/aimodel/test/test_aimodel_factory_general.py +++ b/pdr_backend/aimodel/test/test_aimodel_factory_general.py @@ -54,8 +54,9 @@ def test_aimodel_1var(approach: str, func: str): imps = model.importance_per_var() assert_array_equal(imps, np.array([1.0])) + @enforce_types -#@pytest.mark.parametrize("approach", APPROACH_OPTIONS) +# @pytest.mark.parametrize("approach", APPROACH_OPTIONS) @pytest.mark.parametrize("approach", ["ClassifLinearRidge", "RegrLinearRidge"]) def test_aimodel_2vars(approach: str): # settings, factory @@ -271,8 +272,6 @@ def test_aimodel_4vars_response(approach: str, target_n_classes: int): assert min(imps) == max(imps) == 0.25 - - @enforce_types @pytest.mark.parametrize("approach", ["RegrLinearRidge", "RegrConstant"]) def test_aimodel__regr_0error__via_10000x(approach): diff --git a/pdr_backend/cli/cli_arguments.py b/pdr_backend/cli/cli_arguments.py index 3ec5c8bc8..fd41a7ab3 100644 --- a/pdr_backend/cli/cli_arguments.py +++ b/pdr_backend/cli/cli_arguments.py @@ -50,14 +50,12 @@ def add_argument_APPROACH(self): self.add_argument("APPROACH", type=int, help="1|2|..") - @enforce_types class PPSS_Mixin: def add_argument_PPSS(self): self.add_argument("PPSS_FILE", type=str, help="PPSS yaml settings file") - # ======================================================================== # argparser base classes class CustomArgParser(NestedArgParser): @@ -89,7 +87,6 @@ def __init__(self, description: str, command_name: str): self.add_arguments_bulk(command_name, ["APPROACH", "PPSS"]) - # ======================================================================== # actual arg-parser implementations are just aliases to argparser base classes # In order of help text. @@ -128,7 +125,6 @@ def print_args(arguments: Namespace, nested_args: dict): OHLCVArgParser = _ArgParser_PPSS - # below, list each entry in defined_parsers in same order as HELP_LONG defined_parsers = { "do_sim": SimArgParser("Run simulation", "sim"), diff --git a/pdr_backend/cli/cli_module.py b/pdr_backend/cli/cli_module.py index ef4a6894f..8c9150d60 100644 --- a/pdr_backend/cli/cli_module.py +++ b/pdr_backend/cli/cli_module.py @@ -63,4 +63,3 @@ def do_ohlcv(args, nested_args=None): ohlcv_data_factory = OhlcvDataFactory(ppss.lake_ss) df = ohlcv_data_factory.get_mergedohlcv_df() print(df) - diff --git a/pdr_backend/cli/test/test_cli_module.py b/pdr_backend/cli/test/test_cli_module.py index d14e8630e..8fb1ff569 100644 --- a/pdr_backend/cli/test/test_cli_module.py +++ b/pdr_backend/cli/test/test_cli_module.py @@ -13,6 +13,7 @@ ) from pdr_backend.ppss.ppss import PPSS as PPSSClass + class _PPSS: PPSS_FILE = os.path.abspath("ppss.yaml") @@ -36,7 +37,6 @@ class MockArgs(Namespace, _PPSS, _PPSS_OBJ): return MockArgs() - _CLI_PATH = "pdr_backend.cli.cli_module" # =============================================================== @@ -65,8 +65,6 @@ def test_do_ohlcv(monkeypatch): mock_f.assert_called() - - @enforce_types def test_do_main(capfd): with patch("sys.argv", ["pdr", "help"]): diff --git a/pdr_backend/lake/ohlcv_data_factory.py b/pdr_backend/lake/ohlcv_data_factory.py index 2c802d6c8..ed9582f4a 100644 --- a/pdr_backend/lake/ohlcv_data_factory.py +++ b/pdr_backend/lake/ohlcv_data_factory.py @@ -94,7 +94,7 @@ def get_mergedohlcv_df(self) -> pl.DataFrame: "Cumulative Ticks", ] df = rawohlcv_dfs[str(feed.exchange)][str(feed.pair)] - + mergedohlcv_df = merge_rawohlcv_dfs(rawohlcv_dfs) logger.info("Get historical data, across many exchanges & pairs: done.") @@ -284,4 +284,3 @@ def _volbar_filename(self, feed: ArgFeed) -> str: basename = f"volume_bar_{feed.exchange}_{pair_str}.parquet" filename = os.path.join(self.ss.lake_dir, basename) return filename - diff --git a/pdr_backend/lake/test/conftest.py b/pdr_backend/lake/test/conftest.py index 1f1ab5b84..95328796e 100644 --- a/pdr_backend/lake/test/conftest.py +++ b/pdr_backend/lake/test/conftest.py @@ -2,10 +2,10 @@ from pdr_backend.lake.csv_data_store import CSVDataStore + @pytest.fixture() def _get_test_CSVDataStore(): def create_csv_datastore_identifier(tmpdir, name): return CSVDataStore(tmpdir, name) return create_csv_datastore_identifier - diff --git a/pdr_backend/lake/test/resources.py b/pdr_backend/lake/test/resources.py index 232690ff3..b04716435 100644 --- a/pdr_backend/lake/test/resources.py +++ b/pdr_backend/lake/test/resources.py @@ -160,4 +160,3 @@ def _addval(DATA: list, val: float) -> list: 4|40.4|41.4 """ ) - diff --git a/pdr_backend/ppss/lake_ss.py b/pdr_backend/ppss/lake_ss.py index 35fd0c1c3..753b19454 100644 --- a/pdr_backend/ppss/lake_ss.py +++ b/pdr_backend/ppss/lake_ss.py @@ -79,7 +79,6 @@ def fin_timestamp(self) -> UnixTimeMs: """ return UnixTimeMs.from_timestr(self.fin_timestr) - @enforce_types def __str__(self) -> str: s = "LakeSS:\n" diff --git a/pdr_backend/ppss/ppss.py b/pdr_backend/ppss/ppss.py index a918e2f89..1882b7b40 100644 --- a/pdr_backend/ppss/ppss.py +++ b/pdr_backend/ppss/ppss.py @@ -140,7 +140,7 @@ def __str__(self): s += f"predictoor_ss={self.predictoor_ss}\n" s += f"trader_ss={self.trader_ss}\n" s += f"exchange_mgr_ss={self.exchange_mgr_ss}\n" - + return s diff --git a/pdr_backend/ppss/predictoor_ss.py b/pdr_backend/ppss/predictoor_ss.py index 71d21fd49..4a1d3da2a 100644 --- a/pdr_backend/ppss/predictoor_ss.py +++ b/pdr_backend/ppss/predictoor_ss.py @@ -17,6 +17,7 @@ from pdr_backend.subgraph.subgraph_feed import SubgraphFeed from pdr_backend.util.strutil import StrMixin + class PredictoorSS(StrMixin): __STR_OBJDIR__ = ["d"] diff --git a/pdr_backend/sim/sim_engine.py b/pdr_backend/sim/sim_engine.py index e513352a5..ed7b7c72e 100644 --- a/pdr_backend/sim/sim_engine.py +++ b/pdr_backend/sim/sim_engine.py @@ -134,7 +134,7 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): recent_ut = UnixTimeMs(int(mergedohlcv_df["timestamp"].to_list()[-1])) timeframe: ArgTimeframe = predict_feed.timeframe # type: ignore ut = UnixTimeMs(recent_ut - testshift * timeframe.ms) - + # predict price direction prob_up: float = self.model.predict_ptrue(X_test)[0] # in [0.0, 1.0] prob_down: float = 1.0 - prob_up @@ -157,7 +157,7 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): # observe true price true_up = next_close > cur_close - + # update state st.probs_up.append(prob_up) st.profits.append(profit) @@ -175,15 +175,14 @@ def _log_line(self, test_i, ut): s += " ║" s += f" prob_up={self.st.probs_up[-1]:.3f}" - + s += " ║" - + s += f" tdr_profit=${self.st.profits[-1]:6.2f}" s += f" (cumul ${sum(self.st.profits):6.2f})" logger.info(s) - @enforce_types def save_state(self, i: int, N: int): "Save state on this iteration Y/N?" diff --git a/pdr_backend/sim/sim_state.py b/pdr_backend/sim/sim_state.py index a932708af..9ee70ae08 100644 --- a/pdr_backend/sim/sim_state.py +++ b/pdr_backend/sim/sim_state.py @@ -2,6 +2,7 @@ from enforce_typing import enforce_types + # pylint: disable=too-many-instance-attributes @enforce_types class SimState: @@ -27,10 +28,9 @@ def recent_metrics( ) -> List[Union[int, float]]: """Return most recent aimodel metrics + profit metrics""" rm = { - "profit": self.profits[-1], + "profit": self.profits[-1], } if extras and "prob_up" in extras: rm["prob_up"] = self.probs_up[-1] return rm - diff --git a/pdr_backend/util/constants.py b/pdr_backend/util/constants.py index 6abc9f5b6..ae4292467 100644 --- a/pdr_backend/util/constants.py +++ b/pdr_backend/util/constants.py @@ -7,4 +7,3 @@ CAND_USDCOINS = ["USDT", "USDC", "DAI", "RAI", "USD"] # add more if needed CAND_TIMEFRAMES = ["1s", "30s", "1m", "5m", "15m", "30m", "1h", "1d", "1w", "1M"] CHAR_TO_SIGNAL = {"o": "open", "h": "high", "l": "low", "c": "close", "v": "volume"} - From d4a1a524116dd9affc37ce3433fb59c695b38b76 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 16:46:15 +0100 Subject: [PATCH 07/44] wip pylint --- pdr_backend/aimodel/aimodel_data_factory.py | 22 +- .../test/test_aimodel_factory_general.py | 9 +- .../test/test_aimodel_factory_pricedata.py | 2 - pdr_backend/cli/arg_feed.py | 67 +- pdr_backend/cli/arg_feeds.py | 18 - pdr_backend/cli/arg_threshold.py | 82 - pdr_backend/cli/cli_arguments.py | 1 - pdr_backend/cli/nested_arg_parser.py | 2 - pdr_backend/cli/test/test_arg_threshold.py | 79 - pdr_backend/lake/ohlcv_data_factory.py | 25 +- pdr_backend/lake/slot.py | 129 - pdr_backend/lake/test/pdr_predictions.csv | 2370 ----------------- pdr_backend/lake/test/pdr_slots.csv | 261 -- pdr_backend/lake/test/pdr_truevals.csv | 261 -- pdr_backend/lake/test/resources.py | 4 - pdr_backend/lake/trueval.py | 160 -- pdr_backend/ppss/ppss.py | 3 - pdr_backend/ppss/test/test_ppss.py | 2 +- pdr_backend/ppss/test/test_predictoor_ss.py | 1 - pdr_backend/sim/sim_engine.py | 17 +- pdr_backend/sim/sim_state.py | 2 +- pdr_backend/sim/test/test_sim_engine.py | 1 - pdr_backend/subgraph/subgraph_feed.py | 3 - .../subgraph/test/test_subgraph_feed.py | 1 - pdr_backend/util/test/test_util_constants.py | 1 - 25 files changed, 24 insertions(+), 3499 deletions(-) delete mode 100644 pdr_backend/cli/arg_threshold.py delete mode 100644 pdr_backend/cli/test/test_arg_threshold.py delete mode 100644 pdr_backend/lake/slot.py delete mode 100644 pdr_backend/lake/test/pdr_predictions.csv delete mode 100644 pdr_backend/lake/test/pdr_slots.csv delete mode 100644 pdr_backend/lake/test/pdr_truevals.csv delete mode 100644 pdr_backend/lake/trueval.py diff --git a/pdr_backend/aimodel/aimodel_data_factory.py b/pdr_backend/aimodel/aimodel_data_factory.py index ea2293af3..32d90c12a 100644 --- a/pdr_backend/aimodel/aimodel_data_factory.py +++ b/pdr_backend/aimodel/aimodel_data_factory.py @@ -60,7 +60,6 @@ def create_xy( predict_feed: ArgFeed, train_feeds: Optional[ArgFeeds] = None, do_fill_nans: bool = True, - ta_features: Optional[List[str]] = None, ) -> Tuple[np.ndarray, np.ndarray, np.ndarray, pd.DataFrame, np.ndarray]: """ @description @@ -114,26 +113,7 @@ def create_xy( diff = 0 if ss.transform == "None" else 1 features: List[pd.Series] = [] - if ta_features: - for feed in train_feeds_list: - # Generate feed keys - feed_keys = { - key: f"{feed.exchange}:{feed.pair}:{key}" - for key in ["close", "open", "high", "low", "volume"] - } - - for feature in ta_features: - ta_class = get_indicator.get_ta_indicator(feature) - if ta_class is None: - raise ValueError(f"Unknown TA feature: {feature}") - - ta = ta_class(mergedohlcv_df.to_pandas(), **feed_keys) - features.append(ta.calculate()) - - # Verify the results - num_features = len(ta_features) * len(train_feeds_list) - assert len(features) == num_features - assert len(features[0]) == len(mergedohlcv_df) + # main work xcol_list = [] # [col_i] : name_str x_list = [] # [col_i] : Series. Build this up. Not df here (slow) diff --git a/pdr_backend/aimodel/test/test_aimodel_factory_general.py b/pdr_backend/aimodel/test/test_aimodel_factory_general.py index 26bea4cee..f0d854baf 100644 --- a/pdr_backend/aimodel/test/test_aimodel_factory_general.py +++ b/pdr_backend/aimodel/test/test_aimodel_factory_general.py @@ -1,5 +1,3 @@ -from unittest.mock import Mock -import os import numpy as np from enforce_typing import enforce_types @@ -9,11 +7,7 @@ from pdr_backend.aimodel.aimodel_factory import AimodelFactory from pdr_backend.aimodel.ycont_to_ytrue import ycont_to_ytrue -from pdr_backend.ppss.aimodel_ss import ( - AimodelSS, - aimodel_ss_test_dict, - APPROACH_OPTIONS, -) +from pdr_backend.ppss.aimodel_ss import AimodelSS, aimodel_ss_test_dict from pdr_backend.statutil.scoring import classif_acc @@ -254,7 +248,6 @@ def test_aimodel_4vars_response(approach: str, target_n_classes: int): else: y_thr = 1000.0 ytrue = ycont > y_thr - colnames = ["x0", "x1", "x3", "x4"] # build model model = factory.build(X, ytrue, ycont, y_thr, show_warnings=False) diff --git a/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py b/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py index 4f1c4e0c0..3342014a8 100644 --- a/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py +++ b/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py @@ -1,5 +1,3 @@ -import os - from enforce_typing import enforce_types import pytest from pytest import approx diff --git a/pdr_backend/cli/arg_feed.py b/pdr_backend/cli/arg_feed.py index aee0abaed..c8beba4f8 100644 --- a/pdr_backend/cli/arg_feed.py +++ b/pdr_backend/cli/arg_feed.py @@ -11,7 +11,6 @@ ArgTimeframes, timeframes_str_ok, ) -from pdr_backend.cli.arg_threshold import ArgThreshold, ArgThresholds, threshold_str_ok class ArgFeed: @@ -21,8 +20,6 @@ def __init__( signal: Union[ArgSignal, str, None] = None, pair: Union[ArgPair, str, None] = None, timeframe: Optional[Union[ArgTimeframe, str]] = None, - threshold: Optional[Union[ArgThreshold, str]] = None, - contract: Optional[str] = None, ): if signal is not None: self.signal = ArgSignal(signal) if isinstance(signal, str) else signal @@ -43,15 +40,6 @@ def __init__( else: self.timeframe = timeframe - if threshold is None: - self.threshold = None - elif isinstance(threshold, str): - self.threshold = ArgThreshold(threshold) - else: - self.threshold = threshold - - self.contract = contract - def __str__(self): feed_str = f"{self.exchange} {self.pair}" @@ -63,9 +51,6 @@ def __str__(self): if self.timeframe is not None: feed_str += f" {self.timeframe}" - if self.threshold is not None: - feed_str += f" {self.threshold}" - return feed_str def str_without_exchange(self): @@ -87,7 +72,6 @@ def __eq__(self, other) -> bool: and str(self.signal) == str(other.signal) and str(self.pair) == str(other.pair) and str(self.timeframe) == str(other.timeframe) - and str(self.threshold) == str(other.threshold) ) def __hash__(self): @@ -135,9 +119,6 @@ def _unpack_feeds_str(feeds_str: str) -> List[ArgFeed]: @arguments feeds_str - " " - volume_bar_feeds = " " - dollar_bar_feeds = " " - ticks_bar_feeds = " " do_verify - typically T. Only F to avoid recursion from verify functions @return @@ -149,16 +130,8 @@ def _unpack_feeds_str(feeds_str: str) -> List[ArgFeed]: exchange_str = feeds_str_split[0] - threshold_str = feeds_str_split[-1] offset_end = None - if threshold_str_ok(threshold_str): - # last part is a valid volume_threshold - threshold_str_list = ArgThresholds.from_str(threshold_str) - feeds_str_split = feeds_str_split[:-1] - else: - threshold_str_list = [None] - timeframe_str = feeds_str_split[-1] if timeframes_str_ok(timeframe_str): timeframe_str_list = ArgTimeframes.from_str(timeframe_str) @@ -191,14 +164,12 @@ def _unpack_feeds_str(feeds_str: str) -> List[ArgFeed]: pairs = ArgPairs.from_str(pairs_list_str) - if isinstance(threshold_str_list[0], ArgThreshold): - feeds = argfeed_with_threshold( - exchange_str, signal_str_list, pairs, timeframe_str_list, threshold_str_list - ) - else: - feeds = argfeed_without_threshold( - exchange_str, signal_str_list, pairs, timeframe_str_list - ) + feeds = [ + ArgFeed(exchange_str, signal_str, pair_str, timeframe_str) + for signal_str in signal_str_list + for pair_str in pairs + for timeframe_str in timeframe_str_list + ] return feeds @@ -257,29 +228,3 @@ def _pack_feeds_str(feeds: List[ArgFeed]) -> List[str]: strs.append(s) return strs - - -def argfeed_with_threshold( - exchange_str, signal_str_list, pairs, timeframe_str_list, threshold_str_list -): - if len(pairs) != len(threshold_str_list): - raise ValueError( - f"The lists 'pairs' and 'thresholds' do not have the same length,\ - Found: {len(pairs)} pairs: {str(pairs)}, {threshold_str_list} ;\ - thresholds: {str(threshold_str_list)}." - ) - return [ - ArgFeed(exchange_str, signal_str, pair_str, timeframe_str, threshold_str) - for signal_str in signal_str_list - for pair_str, threshold_str in zip(pairs, threshold_str_list) - for timeframe_str in timeframe_str_list - ] - - -def argfeed_without_threshold(exchange_str, signal_str_list, pairs, timeframe_str_list): - return [ - ArgFeed(exchange_str, signal_str, pair_str, timeframe_str) - for signal_str in signal_str_list - for pair_str in pairs - for timeframe_str in timeframe_str_list - ] diff --git a/pdr_backend/cli/arg_feeds.py b/pdr_backend/cli/arg_feeds.py index 2433c58c0..da54eaeb7 100644 --- a/pdr_backend/cli/arg_feeds.py +++ b/pdr_backend/cli/arg_feeds.py @@ -73,21 +73,3 @@ def __str__(self) -> str: @enforce_types def to_strs(self) -> List[str]: return _pack_feeds_str(self[:]) - - @staticmethod - def from_table_data(table_data: Optional[List[Dict]]) -> "ArgFeeds": - if not table_data: - return ArgFeeds([]) - - return ArgFeeds( - [ - ArgFeed( - pair=row["pair"], - contract=row["contract"], - exchange=row["source"], - timeframe=row["timeframe"], - threshold=row.get("threshold"), - ) - for row in table_data - ] - ) diff --git a/pdr_backend/cli/arg_threshold.py b/pdr_backend/cli/arg_threshold.py deleted file mode 100644 index dce282edb..000000000 --- a/pdr_backend/cli/arg_threshold.py +++ /dev/null @@ -1,82 +0,0 @@ -from typing import List, Union - -from enforce_typing import enforce_types - - -class ArgThreshold: - def __init__(self, threshold_str: str): - """ - @arguments - threshold_str -- e.g. "vb_2100" "db_2090.5" "tb_208" - """ - res = threshold_str.split("_") - if len(res) != 2: - raise ValueError("wrong format for threshold") - prefix, value_str = res - - if prefix not in ["vb", "db", "tb"]: - raise ValueError("threshold should start with vb, db or tb") - - self.prefix = prefix # 'db', 'vb', 'tb' - self.value_str = value_str - self.value = float(self.value_str) - - def __eq__(self, other): - return str(self) == str(other) - - def __str__(self): - return self.prefix + "_" + self.value_str - - def threshold(self) -> float: - return self.value - - -class ArgThresholds(List[ArgThreshold]): - def __init__(self, thresholds: Union[List[str], List[ArgThreshold]]): - if not isinstance(thresholds, list): - raise TypeError("thresholds must be a list") - - thres = [] - for thre in thresholds: - thre = ArgThreshold(thre) if isinstance(thre, str) else thre - thres.append(thre) - - super().__init__(thres) - - @staticmethod - def from_str(thresholds_str: str): - """ - @description - Parses a comma-separated string of thresholds, e.g. "vb-105.3,vb-200" - """ - if not isinstance(thresholds_str, str): - raise TypeError("thresholds_str must be a string") - - return ArgThresholds(thresholds_str.split(",")) - - def __str__(self): - if not self: - return "" - - return ",".join([str(th) for th in self]) - - -@enforce_types -def threshold_str_ok(s: str) -> bool: - try: - ArgThresholds.from_str(s) - return True - except ValueError: - return False - - -@enforce_types -def verify_threshold_str(s: str): - """Raise an error if input string is invalid.""" - _ = ArgThreshold(s) - - -@enforce_types -def verify_thresholds_str(s: str): - """Raise an error if input string is invalid.""" - _ = ArgThresholds.from_str(s) diff --git a/pdr_backend/cli/cli_arguments.py b/pdr_backend/cli/cli_arguments.py index fd41a7ab3..31373a894 100644 --- a/pdr_backend/cli/cli_arguments.py +++ b/pdr_backend/cli/cli_arguments.py @@ -1,4 +1,3 @@ -import argparse import logging import sys from argparse import Namespace diff --git a/pdr_backend/cli/nested_arg_parser.py b/pdr_backend/cli/nested_arg_parser.py index 3ac536a61..82e7c4fe9 100644 --- a/pdr_backend/cli/nested_arg_parser.py +++ b/pdr_backend/cli/nested_arg_parser.py @@ -3,8 +3,6 @@ from enforce_typing import enforce_types -from pdr_backend.ppss.ppss import PPSS - @enforce_types class NestedArgParser(argparse.ArgumentParser): diff --git a/pdr_backend/cli/test/test_arg_threshold.py b/pdr_backend/cli/test/test_arg_threshold.py deleted file mode 100644 index 6e13e2eb2..000000000 --- a/pdr_backend/cli/test/test_arg_threshold.py +++ /dev/null @@ -1,79 +0,0 @@ -import pytest -from enforce_typing import enforce_types - -from pdr_backend.cli.arg_threshold import ( - ArgThreshold, - threshold_str_ok, - verify_threshold_str, - verify_thresholds_str, -) - - -# ========================================================================== -# conversions -@enforce_types -def test_argThreshold_to_str(): - arg_t = ArgThreshold("db_210.5") - assert str(arg_t) == "db_210.5" - - -@enforce_types -def test_verify_threshold_str(): - verify_threshold_str("tb_210") - verify_threshold_str("db_210.5") - verify_threshold_str("vb_210") - - for bad_val in [ - "", - " ", - "foo", - "vb", - "tbab", - "tb-210.1", - "210", - "pb_2015", - "vb_ab", - ]: - with pytest.raises(ValueError): - verify_threshold_str(bad_val) - - for bad_val in [None, 1.1, [], ["tb210"]]: - with pytest.raises(TypeError): - verify_threshold_str(bad_val) - - -@enforce_types -def test_verify_thresholds_str(): - verify_thresholds_str("tb_210") - verify_thresholds_str("tb_210.5,tb_214") - - for bad_val in [ - "", - " ", - "foo", - "tb-", - "tb-ab", - "tb210", - "210", - "tb-2", - "tb_12,", - ]: - with pytest.raises(ValueError): - verify_thresholds_str(bad_val) - - for bad_val in [None, 1.1, [], ["vb210"]]: - with pytest.raises(TypeError): - verify_thresholds_str(bad_val) - - -@enforce_types -def test_tb_str_ok(): - assert threshold_str_ok("tb_210") - threshold_str_ok("tb_210,tb_210") - - for bad_val in ["", " ", "foo", "tb-", "tb210", "210", "tb-2"]: - assert not threshold_str_ok(bad_val) - - for bad_val in [None, 1.1, [], ["tb210"]]: - with pytest.raises(TypeError): - threshold_str_ok(bad_val) diff --git a/pdr_backend/lake/ohlcv_data_factory.py b/pdr_backend/lake/ohlcv_data_factory.py index ed9582f4a..6d1073cbe 100644 --- a/pdr_backend/lake/ohlcv_data_factory.py +++ b/pdr_backend/lake/ohlcv_data_factory.py @@ -8,7 +8,6 @@ from pdr_backend.cli.arg_feed import ArgFeed from pdr_backend.cli.arg_timeframe import ArgTimeframe -from pdr_backend.cli.arg_threshold import ArgThreshold from pdr_backend.exchange.fetch_ohlcv import fetch_ohlcv from pdr_backend.lake.clean_raw_ohlcv import clean_raw_ohlcv from pdr_backend.lake.constants import TOHLCV_COLS, TOHLCV_SCHEMA_PL @@ -71,7 +70,7 @@ def get_mergedohlcv_df(self) -> pl.DataFrame: """ logger.info("Get historical data, across many exchanges & pairs: begin.") - # Ss_timestamp is calculated dynamically if ss.fin_timestr = "now". + # ss_timestamp is calculated dynamically if ss.fin_timestr = "now". # But, we don't want fin_timestamp changing as we gather data here. # To solve, for a given call to this method, we make a constant fin_ut fin_ut = self.ss.fin_timestamp @@ -82,18 +81,16 @@ def get_mergedohlcv_df(self) -> pl.DataFrame: asyncio.run(self._update_rawohlcv_files(fin_ut)) logger.info("Update all rawohlcv files: done") rawohlcv_dfs = self._load_rawohlcv_files(fin_ut) - for feed in self.ss.feeds: - columns = [ - "timestamp", - "open", - "high", - "low", - "close", - "volume", - "Cumulative Dollar Value", - "Cumulative Ticks", - ] - df = rawohlcv_dfs[str(feed.exchange)][str(feed.pair)] + # for feed in self.ss.feeds: + # columns = [ + # "timestamp", + # "open", + # "high", + # "low", + # "close", + # "volume", + # ] + # df = rawohlcv_dfs[str(feed.exchange)][str(feed.pair)] mergedohlcv_df = merge_rawohlcv_dfs(rawohlcv_dfs) logger.info("Get historical data, across many exchanges & pairs: done.") diff --git a/pdr_backend/lake/slot.py b/pdr_backend/lake/slot.py deleted file mode 100644 index 528cf59bf..000000000 --- a/pdr_backend/lake/slot.py +++ /dev/null @@ -1,129 +0,0 @@ -from collections import OrderedDict -from typing import Callable, List, Union - -from enforce_typing import enforce_types -from polars import Boolean, Float64, Int64, Utf8 - -from pdr_backend.lake.lake_mapper import LakeMapper - - -@enforce_types -class Slot(LakeMapper): - # pylint: disable=too-many-instance-attributes - def __init__( - self, - ID: str, - timestamp: int, - slot: int, - truevalue: Union[bool, None], - roundSumStakesUp: Union[float, None], - roundSumStakes: Union[float, None], - ) -> None: - self.ID = ID - self.timestamp = timestamp - self.slot = slot - self.truevalue = truevalue - self.roundSumStakesUp = roundSumStakesUp - self.roundSumStakes = roundSumStakes - - self.check_against_schema() - - @staticmethod - def get_lake_schema(): - return OrderedDict( - { - "ID": Utf8, - "timestamp": Int64, - "slot": Int64, - "truevalue": Boolean, - "roundSumStakesUp": Float64, - "roundSumStakes": Float64, - } - ) - - @staticmethod - def get_lake_table_name(): - return "pdr_slots" - - @staticmethod - def get_fetch_function() -> Callable: - # pylint: disable=import-outside-toplevel - from pdr_backend.subgraph.subgraph_slot import ( - fetch_slots, - ) - - return fetch_slots - - -# ========================================================================= -# utilities for testing - - -@enforce_types -def mock_slot(slot_tuple: tuple) -> Slot: - (ID, timestamp, slot, truevalue, roundSumStakesUp, roundSumStakes) = slot_tuple - return Slot( - ID=ID, - timestamp=timestamp, - slot=slot, - truevalue=truevalue, - roundSumStakesUp=roundSumStakesUp, - roundSumStakes=roundSumStakes, - ) - - -@enforce_types -def mock_slots() -> List[Slot]: - return [mock_slot(slot_tuple) for slot_tuple in _SLOT_TUPS] - - -_SLOT_TUPS = [ - ( - "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838400", - 1696838400000, - 1696838400, - None, - None, - None, - ), - ( - "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838100", - 1696838100000, - 1696838100, - None, - None, - None, - ), - ( - "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838400", - 1696838400000, - 1696838400, - None, - None, - None, - ), - ( - "0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1696838100", - 1696838100000, - 1696838100, - None, - None, - None, - ), - ( - "0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1696838400", - 1696838400000, - 1696838400, - None, - None, - None, - ), - ( - "0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1696838700", - 1696838700000, - 1696838700, - None, - None, - None, - ), -] diff --git a/pdr_backend/lake/test/pdr_predictions.csv b/pdr_backend/lake/test/pdr_predictions.csv deleted file mode 100644 index 618e2530c..000000000 --- a/pdr_backend/lake/test/pdr_predictions.csv +++ /dev/null @@ -1,2370 +0,0 @@ -ID,contract,pair,timeframe,predvalue,stake,truevalue,timestamp,source,payout,slot,user -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721952002000,binance,591.4740752713924,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721952002000,binance,0.0,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,447.8417266187051,false,1721952002000,binance,0.0,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,452.1582733812949,false,1721952002000,binance,905.6498951379149,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,292.7027027027027,false,1721952002000,binance,0.0,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,307.2972972972973,false,1721952002000,binance,607.9351622576017,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,449.4587280108254,true,1721952002000,binance,901.4104682036968,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,450.5412719891746,true,1721952002000,binance,0.0,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,290.9794742527908,true,1721952002000,binance,583.6046872906127,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,309.02052574720926,true,1721952002000,binance,0.0,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,false,1721952002000,binance,294.61773700305815,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,false,1721952002000,binance,305.38226299694185,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,295.0007878978885,true,1721952002000,binance,591.0296167212737,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,304.9992121021116,true,1721952002000,binance,0.0,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,443.19899244332487,true,1721952002000,binance,894.3622274237665,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,456.801007556675,true,1721952002000,binance,0.0,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,290.3486529318542,true,1721952002000,binance,590.716432142656,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,309.6513470681458,true,1721952002000,binance,0.0,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,291.18518518518516,true,1721952002000,binance,591.1117983021196,1721952300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,308.8148148148148,true,1721952002000,binance,0.0,1721952300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,613.26,true,1721952102000,binance,0.0,1721952600,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,426.32,true,1721952102000,binance,0.0,1721952600,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,487.63,false,1721952102000,binance,487.63,1721952600,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,613.26,true,1721952143000,binance,1251.508958504794,1721952600,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,426.32,true,1721952143000,binance,854.2234667941987,1721952600,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,604.12,true,1721952155000,binance,0.0,1721952600,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.13,true,1721952155000,binance,0.0,1721952600,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,401.55,true,1721952155000,binance,0.0,1721952600,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,552.9,true,1721952155000,binance,0.0,1721952600,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,551.14,true,1721952155000,binance,0.0,1721952600,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,473.05,true,1721952155000,binance,0.0,1721952600,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,465.1,true,1721952155000,binance,0.0,1721952600,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,487.63,false,1721952155000,binance,487.63,1721952600,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,604.12,true,1721952178000,binance,1227.805844138912,1721952600,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.13,true,1721952178000,binance,919.8245136686115,1721952600,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,401.55,true,1721952178000,binance,811.1324144301158,1721952600,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,552.9,true,1721952178000,binance,1117.2807747369745,1721952600,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,551.14,true,1721952178000,binance,1113.2483457910635,1721952600,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,473.05,true,1721952178000,binance,963.4499175638367,1721952600,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,465.1,true,1721952178000,binance,946.2291290849041,1721952600,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721952219000,binance,0.0,1721952600,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,true,1721952219000,binance,8.014857072567073,1721952600,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721952226000,binance,0.0,1721952600,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721952226000,binance,0.0,1721952600,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,10.0,true,1721952226000,binance,20.20003522425889,1721952600,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721952231000,binance,0.0,1721952600,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721952231000,binance,0.0,1721952600,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721952231000,binance,0.0,1721952600,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721952237000,binance,0.0,1721952600,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721952237000,binance,6.0,1721952600,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721952254000,binance,6.122243217419009,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721952254000,binance,6.011142804425305,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721952254000,binance,6.097162041343998,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721952254000,binance,6.036518148023176,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721952254000,binance,6.060010567277667,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721952254000,binance,6.062293948654229,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721952254000,binance,6.05970359141632,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721952254000,binance,6.11003012935527,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721952254000,binance,0.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721952254000,binance,6.103391501300177,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721952254000,binance,3.0,1721952600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721952254000,binance,3.0,1721952600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721952266000,binance,10.20373869569835,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721952266000,binance,10.018571340708842,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721952266000,binance,10.161936735573331,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721952266000,binance,10.060863580038626,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721952266000,binance,10.100017612129445,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721952266000,binance,10.103823247757049,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721952266000,binance,10.099505985693867,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721952266000,binance,10.183383548925448,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721952266000,binance,10.172319168833628,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721952266000,binance,0.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721952266000,binance,5.0,1721952600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721952266000,binance,5.0,1721952600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,285.0,true,1721952301000,binance,581.6131056548058,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,315.0,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,445.8183453237409,true,1721952301000,binance,893.2925795245337,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,454.18165467625903,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,true,1721952301000,binance,4.007428536283537,1721952600,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,288.8736263736264,true,1721952301000,binance,587.1031031568878,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,311.12637362637366,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,446.91300280636113,true,1721952301000,binance,899.2661506760438,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,453.0869971936388,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,286.3636363636364,true,1721952301000,binance,578.4555541492318,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,313.6363636363636,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,true,1721952301000,binance,8.080014089703557,1721952600,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,true,1721952301000,binance,595.3531080666143,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,295.0007878978885,true,1721952301000,binance,595.8724446318263,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,304.9992121021116,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,287.4077490774908,true,1721952301000,binance,585.3566687578826,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,312.59225092250927,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,290.3486529318542,true,1721952301000,binance,590.7038335727445,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,309.6513470681458,true,1721952301000,binance,0.0,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721952301000,binance,0.0,1721952600,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,false,1721952301000,binance,448.9072209127919,1721952600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,false,1721952301000,binance,451.0927790872081,1721952600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,612.54,true,1721952401000,binance,0.0,1721952900,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.56,true,1721952412000,binance,0.0,1721952900,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,398.88,true,1721952412000,binance,0.0,1721952900,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,466.16,true,1721952412000,binance,0.0,1721952900,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,424.7,true,1721952418000,binance,0.0,1721952900,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,604.5,true,1721952418000,binance,0.0,1721952900,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,554.31,false,1721952418000,binance,1097.88904425602,1721952900,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,551.1,true,1721952418000,binance,0.0,1721952900,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,473.18,true,1721952418000,binance,0.0,1721952900,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,487.87,true,1721952418000,binance,0.0,1721952900,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,612.54,true,1721952424000,binance,1250.1981572627337,1721952900,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.56,true,1721952436000,binance,928.0000601033154,1721952900,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,424.7,true,1721952442000,binance,864.7345583523241,1721952900,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,604.5,true,1721952442000,binance,1223.4527851830796,1721952900,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,398.88,true,1721952442000,binance,819.0804304908022,1721952900,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,554.31,false,1721952442000,binance,0.0,1721952900,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,551.1,true,1721952442000,binance,1126.5006792992492,1721952900,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,473.18,true,1721952442000,binance,963.8253700234685,1721952900,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,466.16,true,1721952442000,binance,955.1957334762902,1721952900,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,487.87,true,1721952442000,binance,998.3769366002036,1721952900,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721952525000,binance,0.0,1721952900,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,true,1721952525000,binance,0.0,1721952900,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721952525000,binance,0.0,1721952900,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721952525000,binance,0.0,1721952900,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,true,1721952525000,binance,0.0,1721952900,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721952525000,binance,13.864486135541739,1721952900,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721952537000,binance,0.0,1721952900,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721952537000,binance,0.0,1721952900,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721952537000,binance,0.0,1721952900,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721952537000,binance,0.0,1721952900,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721952567000,binance,6.123019675103995,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721952567000,binance,6.1083204027713025,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721952567000,binance,6.071725981057468,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721952567000,binance,6.084448335322025,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721952567000,binance,6.160352214882688,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721952567000,binance,5.941922629517888,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721952567000,binance,0.0,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721952567000,binance,6.132284590632821,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721952567000,binance,6.11073187808108,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721952567000,binance,6.147218123453043,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721952567000,binance,0.0,1721952900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721952567000,binance,6.139198577081212,1721952900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,285.0,true,1721952584000,binance,581.6868691348795,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,315.0,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,290.49810503519217,true,1721952584000,binance,591.4851673176217,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,309.50189496480783,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,true,1721952584000,binance,0.0,1721952900,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,292.7027027027027,true,1721952584000,binance,592.40353490858,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,307.2972972972973,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,291.87372708757636,true,1721952584000,binance,591.9635376340798,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,308.12627291242364,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,285.0,true,1721952584000,binance,585.2334604138554,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,315.0,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,true,1721952584000,binance,8.213802953176918,1721952900,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,false,1721952584000,binance,0.0,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,false,1721952584000,binance,604.8525930516373,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,285.0,true,1721952584000,binance,582.567036110118,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,315.0,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,287.4077490774908,true,1721952584000,binance,585.4238980984504,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,312.59225092250927,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,285.0,true,1721952584000,binance,583.9857217280392,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,315.0,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721952584000,binance,0.0,1721952900,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,true,1721952584000,binance,583.2238648227152,1721952900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,true,1721952584000,binance,0.0,1721952900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,614.07,false,1721952689000,binance,1214.434953207971,1721953200,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,425.04,false,1721952689000,binance,841.3084686020399,1721953200,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,603.12,false,1721952689000,binance,603.12,1721953200,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,458.21,false,1721952689000,binance,902.5517904488038,1721953200,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,399.82,false,1721952689000,binance,780.5050574230968,1721953200,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.6,false,1721952689000,binance,1096.5353953747338,1721953200,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,551.17,false,1721952701000,binance,1086.4959999737555,1721953200,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,474.12,false,1721952701000,binance,934.7970955894696,1721953200,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,467.66,true,1721952701000,binance,0.0,1721953200,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,489.72,true,1721952701000,binance,0.0,1721953200,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,614.07,false,1721952712000,binance,0.0,1721953200,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,425.04,false,1721952712000,binance,0.0,1721953200,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,603.12,false,1721952712000,binance,603.12,1721953200,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,458.21,false,1721952712000,binance,0.0,1721953200,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,399.82,false,1721952712000,binance,0.0,1721953200,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.6,false,1721952712000,binance,0.0,1721953200,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,551.17,false,1721952724000,binance,0.0,1721953200,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,474.12,false,1721952724000,binance,0.0,1721953200,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,467.66,true,1721952724000,binance,958.0732355697298,1721953200,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,489.72,true,1721952724000,binance,1001.9639165985282,1721953200,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,false,1721952819000,binance,11.866089727959068,1721953200,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,false,1721952819000,binance,7.917452179578768,1721953200,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721952831000,binance,6.0,1721953200,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721952831000,binance,7.878935775725574,1721953200,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,false,1721952831000,binance,19.52141107055917,1721953200,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721952831000,binance,13.865151314348152,1721953200,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721952831000,binance,13.798777146463502,1721953200,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721952831000,binance,5.914939860728103,1721953200,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721952837000,binance,0.0,1721953200,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721952837000,binance,0.0,1721953200,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,false,1721952854000,binance,5.933044863979534,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,false,1721952854000,binance,0.0,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721952854000,binance,5.938089134684075,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721952854000,binance,0.0,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721952854000,binance,3.0,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721952854000,binance,3.0,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721952854000,binance,5.909201831794181,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721952854000,binance,0.0,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721952854000,binance,5.856423321167751,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721952854000,binance,0.0,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721952854000,binance,5.942207706149208,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721952854000,binance,0.0,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721952854000,binance,5.913761634198644,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721952854000,binance,0.0,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721952854000,binance,5.913042405722233,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721952854000,binance,0.0,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721952854000,binance,0.0,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721952854000,binance,6.145960113563678,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721952854000,binance,0.0,1721953200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721952854000,binance,6.137980376124284,1721953200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,false,1721952866000,binance,0.0,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,false,1721952866000,binance,9.888408106632555,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721952866000,binance,0.0,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721952866000,binance,9.896815224473459,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721952866000,binance,5.0,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721952866000,binance,5.0,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721952866000,binance,0.0,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721952866000,binance,9.848669719656968,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721952866000,binance,0.0,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721952866000,binance,9.760705535279586,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721952866000,binance,0.0,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721952866000,binance,9.90367951024868,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200-0xeee327ce9510fb16ad75fd46de121026b18c3bdb,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,false,1789.68,false,1721952866000,binance,3560.185062449151,1721959200,0xeee327ce9510fb16ad75fd46de121026b18c3bdb -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721952866000,binance,0.0,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721952866000,binance,9.856269390331073,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721952866000,binance,0.0,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721952866000,binance,9.855070676203722,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721952866000,binance,10.243266855939464,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721952866000,binance,0.0,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,true,1721952866000,binance,10.229967293540474,1721953200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,true,1721952866000,binance,0.0,1721953200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200-0x6257c5e83883bfc84082eb0cd34a04098cc792ef,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,false,1851.5000000000002,true,1721952872000,binance,0.0,1721959200,0x6257c5e83883bfc84082eb0cd34a04098cc792ef -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,false,1721952901000,binance,0.0,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,false,1721952901000,binance,608.9455501661753,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200-0x84cf52b231524d6ee0def6f2b7ce848f22a94f2b,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,false,2123.1,false,1721952901000,binance,4229.944783710105,1721959200,0x84cf52b231524d6ee0def6f2b7ce848f22a94f2b -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,294.8571428571429,false,1721952901000,binance,0.0,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,305.1428571428571,false,1721952901000,binance,603.9884948421517,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,false,1721952901000,binance,3.958726089789384,1721953200,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,286.7374361730717,false,1721952901000,binance,286.7374361730717,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,313.2625638269282,false,1721952901000,binance,313.2625638269282,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,289.7248736664795,false,1721952901000,binance,0.0,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,310.27512633352046,false,1721952901000,binance,611.1594482967366,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,285.0,false,1721952901000,binance,0.0,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,315.0,false,1721952901000,binance,614.9244487226139,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,false,1721952901000,binance,0.0,1721953200,0x768c5195ea841c544cd09c61650417132615c0b9 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200-0x12e21c6ec4841a5b1d725ac8a8509e67829d68bf,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,false,2001.78,false,1721952901000,binance,3978.9017453978604,1721959200,0x12e21c6ec4841a5b1d725ac8a8509e67829d68bf -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,false,1721952901000,binance,0.0,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,false,1721952901000,binance,604.8816121672373,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200-0x94b74afa319667e3152f0079a5959c1ede62ad83,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,true,1789.68,false,1721952901000,binance,0.0,1721959200,0x94b74afa319667e3152f0079a5959c1ede62ad83 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,290.4491883477874,false,1721952901000,binance,0.0,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,309.5508116522126,false,1721952901000,binance,610.2032379279684,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,289.7604107244723,false,1721952901000,binance,0.0,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,310.2395892755277,false,1721952901000,binance,611.6828376605779,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200-0x8e3652d395a2c698553dd98cb967127f3c559409,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,false,1812.2,false,1721952901000,binance,3601.2062928603655,1721959200,0x8e3652d395a2c698553dd98cb967127f3c559409 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,285.0,true,1721952901000,binance,583.8662107885494,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,315.0,true,1721952901000,binance,0.0,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721952901000,binance,0.0,1721953200,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,true,1721952901000,binance,583.108135731807,1721953200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,true,1721952901000,binance,0.0,1721953200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200-0xa17fd219faa6b47d486eaa87107c181480afa038,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,false,1865.8,true,1721952907000,binance,0.0,1721959200,0xa17fd219faa6b47d486eaa87107c181480afa038 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200-0xbbe7d8db067d3aa810b0b4a3098ce570fe4426d1,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,false,2067.5,true,1721952907000,binance,0.0,1721959200,0xbbe7d8db067d3aa810b0b4a3098ce570fe4426d1 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200-0x4411763f0f167655150f8866ba3e9d4f07c69148,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,true,2123.1,false,1721952932000,binance,0.0,1721959200,0x4411763f0f167655150f8866ba3e9d4f07c69148 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200-0x769057efa29f64d6924af1c9e3c31af9e1732600,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,true,1851.5000000000002,true,1721952932000,binance,3718.3908489422,1721959200,0x769057efa29f64d6924af1c9e3c31af9e1732600 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200-0x9660fafb6023e20f46d3c406005382541c14767a,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,false,1542.82,true,1721952932000,binance,0.0,1721959200,0x9660fafb6023e20f46d3c406005382541c14767a -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200-0x1a418e9206c9b2ba511d844e97a601b6fabcf8ef,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,true,2001.78,false,1721952932000,binance,0.0,1721959200,0x1a418e9206c9b2ba511d844e97a601b6fabcf8ef -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200-0x7cc21e12728bb9702699c76f0805266427423ba1,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,false,2037.94,true,1721952932000,binance,0.0,1721959200,0x7cc21e12728bb9702699c76f0805266427423ba1 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200-0x3b58b52be0413e4322b785df2e67b5aaf99a32b5,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,true,1812.2,false,1721952932000,binance,0.0,1721959200,0x3b58b52be0413e4322b785df2e67b5aaf99a32b5 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200-0x8aeeda98786f4226842b4ecaf91192889670c52f,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,false,2050.3,true,1721952932000,binance,0.0,1721959200,0x8aeeda98786f4226842b4ecaf91192889670c52f -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200-0x06ad44372d17d21f736bede6eb0f727aeb9b9d45,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,true,1865.8,true,1721952944000,binance,3766.7985203006547,1721959200,0x06ad44372d17d21f736bede6eb0f727aeb9b9d45 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200-0x7641f8996b475321c44e389855b5f59b35a04515,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,true,2067.5,true,1721952944000,binance,4172.023240544774,1721959200,0x7641f8996b475321c44e389855b5f59b35a04515 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200-0xecefd19314ee798921b053694a23974e406da47b,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,true,1542.82,true,1721952973000,binance,3117.5185415438577,1721959200,0xecefd19314ee798921b053694a23974e406da47b -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200-0xe1d3f7fe664e9b936a3b8f62d17ab54c299bdfa4,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,true,2037.94,true,1721952973000,binance,4112.647494955845,1721959200,0xe1d3f7fe664e9b936a3b8f62d17ab54c299bdfa4 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200-0x6adab3b1e5eee7c427d468147533a48b7c6e02d1,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,true,2050.3,true,1721952973000,binance,4087.028295746549,1721959200,0x6adab3b1e5eee7c427d468147533a48b7c6e02d1 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,489.2,false,1721952984000,binance,974.679574782545,1721953500,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,617.0,true,1721952996000,binance,0.0,1721953500,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,425.56,false,1721952996000,binance,842.8033695701068,1721953500,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,605.81,true,1721952996000,binance,0.0,1721953500,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,458.63,true,1721952996000,binance,0.0,1721953500,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,401.26,false,1721952996000,binance,783.3538024230361,1721953500,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,554.86,true,1721952996000,binance,0.0,1721953500,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,552.53,true,1721952996000,binance,0.0,1721953500,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,476.02,true,1721952996000,binance,0.0,1721953500,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,469.02,false,1721952996000,binance,916.8710682251036,1721953500,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,489.2,false,1721953008000,binance,0.0,1721953500,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,605.81,true,1721953019000,binance,1234.1243860670106,1721953500,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,401.26,false,1721953019000,binance,0.0,1721953500,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,476.02,true,1721953019000,binance,956.6557464391167,1721953500,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,617.0,true,1721953025000,binance,1249.302783477471,1721953500,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,425.56,false,1721953025000,binance,0.0,1721953500,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,458.63,true,1721953025000,binance,927.3742499081194,1721953500,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,554.86,true,1721953025000,binance,1121.8156616006431,1721953500,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,552.53,true,1721953025000,binance,1122.6100216990603,1721953500,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,469.02,false,1721953025000,binance,0.0,1721953500,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721953136000,binance,0.0,1721953500,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,false,1721953136000,binance,7.921828833256009,1721953500,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721953142000,binance,0.0,1721953500,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721953148000,binance,0.0,1721953500,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,false,1721953148000,binance,19.522349659149583,1721953500,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721953148000,binance,0.0,1721953500,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721953148000,binance,0.0,1721953500,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721953148000,binance,9.774328048112059,1721953500,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721953148000,binance,11.954369273702515,1721953500,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721953160000,binance,0.0,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721953160000,binance,6.0744057543475085,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721953160000,binance,5.941371624942007,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721953160000,binance,0.0,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721953160000,binance,0.0,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721953160000,binance,6.1114427926264545,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721953160000,binance,0.0,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721953160000,binance,6.066159539769222,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721953160000,binance,5.856704897744875,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721953160000,binance,0.0,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721953160000,binance,0.0,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721953160000,binance,6.065398451504756,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721953160000,binance,0.0,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721953160000,binance,6.095289061403329,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721953160000,binance,0.0,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721953160000,binance,6.029089616649196,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721953160000,binance,5.864596828867236,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721953160000,binance,0.0,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721953160000,binance,5.97593038945444,1721953500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721953160000,binance,0.0,1721953500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721953166000,binance,10.12400959057918,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721953166000,binance,0.0,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721953166000,binance,0.0,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721953166000,binance,9.902286041570012,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721953166000,binance,10.185737987710757,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721953166000,binance,0.0,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721953166000,binance,10.11026589961537,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721953166000,binance,0.0,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721953166000,binance,0.0,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721953166000,binance,9.761174829574792,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721953166000,binance,10.108997419174594,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721953166000,binance,0.0,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721953166000,binance,10.158815102338881,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721953166000,binance,0.0,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721953166000,binance,0.0,1721953500,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721953166000,binance,10.048482694415325,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721953166000,binance,0.0,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721953166000,binance,0.0,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721953166000,binance,9.774328048112059,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721953166000,binance,0.0,1721953500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721953166000,binance,9.958066232573607,1721953500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721953189000,binance,591.4268472503197,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721953189000,binance,0.0,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,295.2631578947368,false,1721953189000,binance,0.0,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,304.7368421052632,false,1721953189000,binance,603.5182755862144,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,false,1721953189000,binance,3.9609144166280044,1721953500,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,286.7374361730717,true,1721953189000,binance,584.1264792253692,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,313.2625638269282,true,1721953189000,binance,0.0,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,294.07602956705387,true,1721953189000,binance,594.6373707252131,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,305.9239704329462,true,1721953189000,binance,0.0,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,285.0,false,1721953189000,binance,0.0,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,315.0,false,1721953189000,binance,614.9540142632118,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,false,1721953189000,binance,0.0,1721953500,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,true,1721953189000,binance,595.6579886013948,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,true,1721953189000,binance,0.0,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,290.4491883477874,true,1721953189000,binance,590.1239202099146,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,309.5508116522126,true,1721953189000,binance,0.0,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,447.44801512287336,true,1721953189000,binance,899.2347273225361,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,452.55198487712664,true,1721953189000,binance,0.0,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,285.0,false,1721953189000,binance,0.0,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,315.0,false,1721953189000,binance,615.7826670310598,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,false,1721953189000,binance,3.909731219244824,1721953500,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,false,1721953189000,binance,0.0,1721953500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,false,1721953189000,binance,898.7303437699144,1721953500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,619.02,false,1721953295000,binance,1233.0802184448096,1721953800,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,427.26,false,1721953295000,binance,851.5319677754158,1721953800,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,607.29,false,1721953295000,binance,1209.6223362672831,1721953800,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,459.98,false,1721953295000,binance,916.9661499057767,1721953800,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,403.33,true,1721953295000,binance,0.0,1721953800,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.38,false,1721953295000,binance,1100.848289763398,1721953800,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,555.21,false,1721953295000,binance,1104.507775486283,1721953800,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,477.49,true,1721953295000,binance,0.0,1721953800,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,471.17,false,1721953295000,binance,938.3858187825214,1721953800,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,491.7,false,1721953295000,binance,491.7,1721953800,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,471.17,false,1721953325000,binance,0.0,1721953800,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,619.02,false,1721953336000,binance,0.0,1721953800,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,427.26,false,1721953336000,binance,0.0,1721953800,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,607.29,false,1721953336000,binance,0.0,1721953800,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,459.98,false,1721953336000,binance,0.0,1721953800,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,403.33,true,1721953336000,binance,817.3755053667591,1721953800,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.38,false,1721953336000,binance,0.0,1721953800,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,555.21,false,1721953336000,binance,0.0,1721953800,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,477.49,true,1721953336000,binance,958.8433189545855,1721953800,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,491.7,false,1721953336000,binance,491.7,1721953800,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,false,1721953419000,binance,11.951926126246095,1721953800,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,false,1721953419000,binance,7.972026099100462,1721953800,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721953419000,binance,11.95101848804311,1721953800,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721953431000,binance,7.973965388980187,1721953800,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,true,1721953431000,binance,0.0,1721953800,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721953431000,binance,13.925219611015553,1721953800,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721953431000,binance,13.925459607002718,1721953800,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721953431000,binance,0.0,1721953800,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721953436000,binance,9.958038699222376,1721953800,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721953436000,binance,6.0,1721953800,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,false,1721953454000,binance,5.975963063123047,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,false,1721953454000,binance,0.0,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721953454000,binance,5.9790195743253465,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721953454000,binance,0.0,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721953454000,binance,5.975509244021555,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721953454000,binance,0.0,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721953454000,binance,5.980474041735141,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721953454000,binance,0.0,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721953454000,binance,0.0,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721953454000,binance,6.0797027647342805,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721953454000,binance,5.967951261863808,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721953454000,binance,0.0,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721953454000,binance,5.968054117286879,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721953454000,binance,0.0,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721953454000,binance,0.0,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721953454000,binance,6.02427266929937,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721953454000,binance,5.974823219533426,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721953454000,binance,0.0,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721953454000,binance,3.0,1721953800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721953454000,binance,3.0,1721953800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,false,1721953466000,binance,0.0,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,false,1721953466000,binance,9.959938438538412,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721953466000,binance,0.0,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721953466000,binance,9.965032623875578,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721953466000,binance,0.0,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721953466000,binance,9.959182073369258,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721953466000,binance,0.0,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721953466000,binance,9.967456736225234,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721953466000,binance,10.132837941223801,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721953466000,binance,0.0,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721953466000,binance,0.0,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721953466000,binance,9.946585436439682,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721953466000,binance,0.0,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721953466000,binance,9.946756862144799,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721953466000,binance,10.040454448832286,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721953466000,binance,0.0,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721953466000,binance,0.0,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721953466000,binance,9.958038699222376,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721953466000,binance,5.0,1721953800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721953466000,binance,5.0,1721953800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,606.2499999999999,false,1721953589000,binance,1212.5475794501629,1721954100,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,616.07,false,1721953601000,binance,1222.392875556479,1721954100,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,425.61,false,1721953601000,binance,861.2667883548748,1721954100,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.8,false,1721953601000,binance,914.5185646393165,1721954100,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,400.06,true,1721953601000,binance,0.0,1721954100,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,552.1,false,1721953601000,binance,1091.525455882104,1721954100,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,552.22,false,1721953601000,binance,1094.2655116504573,1721954100,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,474.97,false,1721953601000,binance,941.6314531851215,1721954100,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,473.14,false,1721953601000,binance,945.6696252088493,1721954100,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,494.02,true,1721953601000,binance,0.0,1721954100,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,606.2499999999999,false,1721953613000,binance,0.0,1721954100,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,616.07,false,1721953630000,binance,0.0,1721954100,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,425.61,false,1721953630000,binance,0.0,1721954100,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.8,false,1721953630000,binance,0.0,1721954100,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,400.06,true,1721953630000,binance,809.5541547343184,1721954100,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,552.1,false,1721953630000,binance,0.0,1721954100,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,552.22,false,1721953630000,binance,0.0,1721954100,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,474.97,false,1721953630000,binance,0.0,1721954100,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,473.14,false,1721953630000,binance,0.0,1721954100,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,494.02,true,1721953630000,binance,1011.2200885884015,1721954100,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,false,1721953718000,binance,11.905071263555884,1721954100,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,false,1721953718000,binance,0.0,1721954100,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721953724000,binance,12.000470889403674,1721954100,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721953724000,binance,7.990551023497742,1721954100,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,true,1721953724000,binance,0.0,1721954100,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721953730000,binance,13.839301197563357,1721954100,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721953730000,binance,13.871027093464926,1721954100,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721953730000,binance,5.947521653063066,1721954100,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721953736000,binance,9.993549744355258,1721954100,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721953736000,binance,0.0,1721954100,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,false,1721953754000,binance,5.952535631777942,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,false,1721953754000,binance,0.0,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721953754000,binance,6.070816863007506,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721953754000,binance,0.0,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721953754000,binance,6.000235444701837,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721953754000,binance,0.0,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721953754000,binance,5.992913267623306,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721953754000,binance,0.0,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721953754000,binance,0.0,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721953754000,binance,6.070745548675087,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721953754000,binance,5.93112908467001,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721953754000,binance,0.0,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721953754000,binance,5.944725897199254,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721953754000,binance,0.0,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721953754000,binance,5.947521653063066,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721953754000,binance,0.0,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721953754000,binance,5.9961298466131545,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721953754000,binance,0.0,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721953754000,binance,0.0,1721954100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721953754000,binance,6.14076406980528,1721954100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,false,1721953765000,binance,0.0,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,false,1721953765000,binance,9.920892719629904,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721953765000,binance,0.0,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721953765000,binance,10.11802810501251,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721953765000,binance,0.0,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721953765000,binance,10.000392407836395,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721953765000,binance,0.0,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721953765000,binance,9.988188779372178,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721953765000,binance,10.117909247791811,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721953765000,binance,0.0,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721953765000,binance,0.0,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721953765000,binance,9.885215141116683,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721953765000,binance,0.0,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721953765000,binance,9.90787649533209,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721953765000,binance,0.0,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721953765000,binance,9.912536088438443,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721953765000,binance,0.0,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721953765000,binance,9.993549744355258,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,true,1721953765000,binance,10.2346067830088,1721954100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,true,1721953765000,binance,0.0,1721954100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,295.14,false,1721953783000,binance,0.0,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,304.86,false,1721953783000,binance,604.8966709012745,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,456.88381004516214,false,1721953783000,binance,0.0,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,443.11618995483786,false,1721953783000,binance,896.6924127498223,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,false,1721953783000,binance,0.0,1721954100,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,452.57787325456496,false,1721953783000,binance,0.0,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,447.42212674543504,false,1721953783000,binance,894.8793678806123,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,450.450112528132,false,1721953783000,binance,0.0,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,449.549887471868,false,1721953783000,binance,898.0378283629074,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,447.37762237762246,true,1721953783000,binance,905.3052365419319,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,452.62237762237754,true,1721953783000,binance,0.0,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,true,1721953783000,binance,0.0,1721954100,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,441.26089729959597,false,1721953783000,binance,0.0,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,458.73910270040403,false,1721953783000,binance,906.946944767263,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,295.0007878978885,false,1721953783000,binance,0.0,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,304.9992121021116,false,1721953783000,binance,604.3789049362636,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,294.11006018916595,false,1721953783000,binance,0.0,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,305.88993981083405,false,1721953783000,binance,606.4290134930311,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,450.4280821917807,false,1721953783000,binance,0.0,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,449.5719178082193,false,1721953783000,binance,898.5638648563266,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,2.0,false,1721953783000,binance,0.0,1721954100,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,true,1721953783000,binance,583.3725866315016,1721954100,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,true,1721953783000,binance,0.0,1721954100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,618.21,true,1721953883000,binance,0.0,1721954400,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,475.81,true,1721953889000,binance,0.0,1721954400,0xb7f87637ceceebc4c183c4de06abe59996761007 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,424.56,true,1721953895000,binance,0.0,1721954400,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,608.95,true,1721953895000,binance,0.0,1721954400,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,459.27,true,1721953895000,binance,0.0,1721954400,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,397.96,true,1721953895000,binance,0.0,1721954400,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,554.3,true,1721953895000,binance,0.0,1721954400,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,554.49,true,1721953895000,binance,0.0,1721954400,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,469.46,true,1721953895000,binance,0.0,1721954400,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,492.35,false,1721953895000,binance,963.6764698166461,1721954400,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,618.21,true,1721953906000,binance,1251.4628576436255,1721954400,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,475.81,true,1721953912000,binance,955.5049963915044,1721954400,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,424.56,true,1721953918000,binance,841.272747990719,1721954400,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,608.95,true,1721953918000,binance,1215.2472344934383,1721954400,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,459.27,true,1721953918000,binance,917.7682868670271,1721954400,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,397.96,true,1721953918000,binance,808.7040194546278,1721954400,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,554.3,true,1721953918000,binance,1108.4616701910463,1721954400,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,554.49,true,1721953918000,binance,1120.1134979320502,1721954400,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,469.46,true,1721953918000,binance,930.0817262787663,1721954400,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,492.35,false,1721953918000,binance,0.0,1721954400,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721954024000,binance,0.0,1721954400,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,true,1721954024000,binance,7.926066968067826,1721954400,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721954024000,binance,0.0,1721954400,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721954024000,binance,0.0,1721954400,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,true,1721954030000,binance,0.0,1721954400,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721954030000,binance,0.0,1721954400,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721954030000,binance,0.0,1721954400,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721954030000,binance,0.0,1721954400,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721954036000,binance,9.905867659425365,1721954400,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721954036000,binance,11.743797743271813,1721954400,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721954053000,binance,6.072998775385187,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721954053000,binance,5.94455022605087,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721954053000,binance,5.98693111664392,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721954053000,binance,5.9949590885559285,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721954053000,binance,6.096371641280237,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721954053000,binance,5.9992513270307395,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721954053000,binance,6.060236422291025,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721954053000,binance,6.024495048810477,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721954053000,binance,0.0,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721954053000,binance,5.943520595655219,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721954053000,binance,5.871898871635906,1721954400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721954053000,binance,0.0,1721954400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721954066000,binance,10.121664625641978,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721954066000,binance,9.907583710084783,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721954066000,binance,9.978218527739866,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721954066000,binance,9.991598480926546,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721954066000,binance,10.16061940213373,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721954066000,binance,9.9987522117179,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721954066000,binance,10.100394037151709,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721954066000,binance,10.040825081350796,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721954066000,binance,9.905867659425365,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721954066000,binance,0.0,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721954066000,binance,0.0,1721954400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721954066000,binance,9.786498119393176,1721954400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,278.6550166852058,true,1721954083000,binance,564.0905250280646,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,293.74498331479424,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,260.4237717257424,true,1721954083000,binance,516.0340636937607,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,252.5762282742576,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,true,1721954083000,binance,3.963033484033913,1721954400,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,284.4273556231004,true,1721954083000,binance,567.6156619348952,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,273.5726443768996,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,288.39889970376623,true,1721954083000,binance,576.3132016362076,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,282.2011002962338,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,151.05306473171663,true,1721954083000,binance,306.95854005296843,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,162.14693526828336,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,true,1721954083000,binance,8.128495521706984,1721954400,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,373.98085106382985,true,1721954083000,binance,747.8683723429222,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,365.81914893617017,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,243.67065080365586,true,1721954083000,binance,492.23391768122434,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,251.92934919634413,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,300.26303847827444,true,1721954083000,binance,602.9777295510514,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,302.73696152172556,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,300.45696682464455,true,1721954083000,binance,595.2573901434572,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,291.74303317535544,true,1721954083000,binance,0.0,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,2.0,true,1721954083000,binance,3.962347063770146,1721954400,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,false,1721954083000,binance,0.0,1721954400,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,false,1721954083000,binance,616.5493815217701,1721954400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,607.92,true,1721954184000,binance,0.0,1721954700,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.33,true,1721954184000,binance,0.0,1721954700,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,492.18,true,1721954184000,binance,0.0,1721954700,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,617.8,true,1721954190000,binance,0.0,1721954700,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,424.86,true,1721954190000,binance,0.0,1721954700,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,459.07,true,1721954190000,binance,0.0,1721954700,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,400.65,true,1721954190000,binance,0.0,1721954700,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,553.93,true,1721954196000,binance,0.0,1721954700,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,476.71,true,1721954196000,binance,0.0,1721954700,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,469.39,true,1721954196000,binance,0.0,1721954700,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,607.92,true,1721954208000,binance,1240.1557352785337,1721954700,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.33,true,1721954208000,binance,1108.9082106827311,1721954700,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,492.18,true,1721954208000,binance,1007.5078714639573,1721954700,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,617.8,true,1721954220000,binance,1260.2440631529198,1721954700,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,424.86,true,1721954220000,binance,850.8239117323137,1721954700,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,459.07,true,1721954220000,binance,923.6067085321151,1721954700,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,400.65,true,1721954220000,binance,805.8190031333216,1721954700,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,553.93,true,1721954220000,binance,1131.2568655778182,1721954700,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,476.71,true,1721954220000,binance,957.3100328090961,1721954700,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,469.39,true,1721954220000,binance,951.0210045738438,1721954700,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721954320000,binance,0.0,1721954700,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,true,1721954320000,binance,8.010393181116733,1721954700,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721954320000,binance,0.0,1721954700,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721954326000,binance,0.0,1721954700,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,10.0,true,1721954326000,binance,20.112791791671572,1721954700,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,7.0,true,1721954326000,binance,14.028441390814013,1721954700,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721954338000,binance,0.0,1721954700,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721954338000,binance,0.0,1721954700,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721954338000,binance,0.0,1721954700,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721954338000,binance,0.0,1721954700,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721954355000,binance,6.119670102717318,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721954355000,binance,6.00779488583755,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721954355000,binance,6.119994745748785,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721954355000,binance,6.035724672917737,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721954355000,binance,6.033837537501472,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721954355000,binance,6.012189167491719,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721954355000,binance,6.126713838812584,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721954355000,binance,6.024480498473471,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721954355000,binance,6.07823561158425,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721954355000,binance,0.0,1721954700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721954355000,binance,6.141093937973651,1721954700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721954367000,binance,10.199450171195531,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721954367000,binance,10.012991476395916,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721954367000,binance,10.19999124291464,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721954367000,binance,10.059541121529561,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721954367000,binance,10.056395895835786,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721954367000,binance,10.020315279152866,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721954367000,binance,10.211189731354308,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721954367000,binance,10.040800830789118,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721954367000,binance,10.130392685973751,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,true,1721954367000,binance,10.235156563289419,1721954700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,true,1721954367000,binance,0.0,1721954700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,275.88,true,1721954385000,binance,562.7648626458846,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,304.92,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,313.48920863309354,true,1721954385000,binance,627.7929547970532,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,316.51079136690646,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,true,1721954385000,binance,0.0,1721954700,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,271.32,true,1721954385000,binance,553.4923248055201,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,299.88,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,332.5032740879327,true,1721954385000,binance,668.9660717461547,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,337.09672591206726,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,189.81,true,1721954385000,binance,381.7609009977181,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,209.79000000000002,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,true,1721954385000,binance,8.045116716668629,1721954700,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,258.08513761467896,true,1721954385000,binance,517.2188895525275,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,267.51486238532107,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,250.79999999999995,true,1721954385000,binance,512.193276924732,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,277.2,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,345.07841735562886,true,1721954385000,binance,692.9727319343585,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,347.92158264437114,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,336.25897220765603,true,1721954385000,binance,681.2870865290978,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,349.541027792344,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721954385000,binance,0.0,1721954700,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,true,1721954385000,binance,583.4039241074969,1721954700,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,true,1721954385000,binance,0.0,1721954700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,616.14,true,1721954484000,binance,0.0,1721955000,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,426.3,true,1721954490000,binance,0.0,1721955000,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,607.5,true,1721954490000,binance,0.0,1721955000,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,458.62,false,1721954490000,binance,905.4990527471069,1721955000,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,401.68,false,1721954490000,binance,787.8518342634185,1721955000,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,551.44,true,1721954490000,binance,0.0,1721955000,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,552.24,true,1721954502000,binance,0.0,1721955000,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,475.24,true,1721954502000,binance,0.0,1721955000,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,470.25,true,1721954502000,binance,0.0,1721955000,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.54,false,1721954502000,binance,495.54,1721955000,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,616.14,true,1721954508000,binance,1247.366006902267,1721955000,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,426.3,true,1721954514000,binance,861.8469817779594,1721955000,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,607.5,true,1721954514000,binance,1227.8252035526236,1721955000,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,458.62,false,1721954514000,binance,0.0,1721955000,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,401.68,false,1721954514000,binance,0.0,1721955000,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,551.44,true,1721954514000,binance,1114.5392791572065,1721955000,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,552.24,true,1721954525000,binance,1121.1126948043502,1721955000,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,475.24,true,1721954525000,binance,959.0541810630748,1721955000,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,470.25,true,1721954525000,binance,955.5078985984461,1721955000,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.54,false,1721954525000,binance,495.54,1721955000,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721954619000,binance,0.0,1721955000,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,true,1721954619000,binance,0.0,1721955000,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721954625000,binance,0.0,1721955000,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721954625000,binance,7.897597599294465,1721955000,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,false,1721954625000,binance,19.613917403490802,1721955000,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721954631000,binance,0.0,1721955000,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721954631000,binance,0.0,1721955000,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721954631000,binance,0.0,1721955000,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721954637000,binance,0.0,1721955000,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721954637000,binance,6.0,1721955000,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721954655000,binance,0.0,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721954655000,binance,6.073454118717826,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721954655000,binance,0.0,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721954655000,binance,6.065073763391692,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721954655000,binance,0.0,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721954655000,binance,6.063334338531474,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721954655000,binance,5.923198199470849,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721954655000,binance,0.0,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721954655000,binance,5.884175221047241,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721954655000,binance,0.0,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721954655000,binance,0.0,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721954655000,binance,6.063429996865696,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721954655000,binance,0.0,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721954655000,binance,6.090355795330021,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721954655000,binance,0.0,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721954655000,binance,6.054125374945763,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721954655000,binance,0.0,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721954655000,binance,6.095744169687057,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721954655000,binance,3.0,1721955000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721954655000,binance,3.0,1721955000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721954667000,binance,10.122423531196375,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721954667000,binance,0.0,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721954667000,binance,10.108456272319486,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721954667000,binance,0.0,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721954667000,binance,10.10555723088579,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721954667000,binance,0.0,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721954667000,binance,0.0,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721954667000,binance,9.871996999118082,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721954667000,binance,0.0,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721954667000,binance,9.806958701745401,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721954667000,binance,10.105716661442825,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721954667000,binance,0.0,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721954667000,binance,10.150592992216701,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721954667000,binance,0.0,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721954667000,binance,10.090208958242938,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721954667000,binance,0.0,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721954667000,binance,10.159573616145094,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721954667000,binance,0.0,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721954667000,binance,5.0,1721955000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721954667000,binance,5.0,1721955000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,281.57592880978865,true,1721954684000,binance,570.046161520536,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,296.8240711902114,true,1721954684000,binance,0.0,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,194.64274447949526,true,1721954684000,binance,393.5075342590466,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,201.35725552050474,true,1721954684000,binance,0.0,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,true,1721954684000,binance,0.0,1721955000,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,277.8342342342342,true,1721954684000,binance,561.5339509506764,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,289.76576576576576,true,1721954684000,binance,0.0,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,206.2841100505334,false,1721954684000,binance,0.0,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,220.9158899494666,false,1721954684000,binance,436.17620052772685,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,177.83999999999997,false,1721954684000,binance,0.0,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,196.55999999999997,false,1721954684000,binance,385.5311604830151,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,false,1721954684000,binance,0.0,1721955000,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,253.37125382263,true,1721954684000,binance,512.0996202572022,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,262.62874617737,true,1721954684000,binance,0.0,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,250.94809873248832,true,1721954684000,binance,509.4544024808202,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,267.4519012675117,true,1721954684000,binance,0.0,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,217.6414445399828,true,1721954684000,binance,439.20953067645365,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,226.3585554600172,true,1721954684000,binance,0.0,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,211.95451664025356,true,1721954684000,binance,430.6735030162213,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,226.04548335974644,true,1721954684000,binance,0.0,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721954684000,binance,0.0,1721955000,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,false,1721954684000,binance,448.9072209127919,1721955000,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,false,1721954684000,binance,451.0927790872081,1721955000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,552.14,false,1721954784000,binance,1094.065951984405,1721955300,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,618.54,false,1721954796000,binance,1223.543836338799,1721955300,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,424.89,false,1721954796000,binance,841.9220137670733,1721955300,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,607.54,false,1721954796000,binance,1195.0927937463584,1721955300,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,458.69,false,1721954796000,binance,909.6688081336484,1721955300,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,402.35,false,1721954796000,binance,792.5960480807225,1721955300,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,554.19,false,1721954796000,binance,1093.3974241867202,1721955300,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,475.87,false,1721954796000,binance,944.5034290217103,1721955300,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,468.95,false,1721954796000,binance,922.3842542105989,1721955300,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,492.12,false,1721954796000,binance,970.3105540697144,1721955300,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,552.14,false,1721954801000,binance,0.0,1721955300,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,618.54,false,1721954819000,binance,0.0,1721955300,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,424.89,false,1721954819000,binance,0.0,1721955300,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,607.54,false,1721954819000,binance,0.0,1721955300,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,458.69,false,1721954819000,binance,0.0,1721955300,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,402.35,false,1721954819000,binance,0.0,1721955300,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,554.19,false,1721954819000,binance,0.0,1721955300,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,475.87,false,1721954819000,binance,0.0,1721955300,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,468.95,false,1721954819000,binance,0.0,1721955300,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,492.12,false,1721954819000,binance,0.0,1721955300,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,false,1721954925000,binance,11.868695667269368,1721955300,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,false,1721954925000,binance,7.92602333561226,1721955300,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721954925000,binance,11.802608490762996,1721955300,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721954925000,binance,7.932754654635143,1721955300,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,false,1721954925000,binance,19.699168586571954,1721955300,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721954932000,binance,5.954378899836365,1721955300,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721954943000,binance,13.870506871247937,1721955300,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721954943000,binance,13.810754379016293,1721955300,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721954943000,binance,9.83456929534704,1721955300,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,6.0,false,1721954943000,binance,0.0,1721955300,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,false,1721954961000,binance,5.934347833634684,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721954961000,binance,5.944517501709195,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721954961000,binance,5.901304245381498,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721954961000,binance,5.949565990976357,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721954961000,binance,5.909750575971586,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721954961000,binance,5.9445029448205435,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721954961000,binance,5.918894733864126,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721954961000,binance,5.954378899836365,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721954961000,binance,5.900741577208224,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721954961000,binance,5.91508506504337,1721955300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721954961000,binance,0.0,1721955300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,false,1721954972000,binance,9.890579722724473,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721954972000,binance,9.907529169515325,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721954972000,binance,9.83550707563583,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721954972000,binance,9.915943318293928,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721954972000,binance,9.849584293285977,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721954972000,binance,9.90750490803424,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721954972000,binance,9.86482455644021,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721954972000,binance,9.923964833060609,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721954972000,binance,9.83456929534704,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721954972000,binance,0.0,1721955300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721954972000,binance,9.858475108405615,1721955300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,282.16011123470525,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,297.43988876529477,false,1721954984000,binance,588.3705865102895,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,198.18170347003155,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,205.01829652996844,false,1721954984000,binance,406.24495063100096,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,false,1721954984000,binance,3.96301166780613,1721955300,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,271.82708949207205,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,296.97291050792796,false,1721954984000,binance,584.1758325145784,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,212.32289334741287,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,220.87710665258714,false,1721954984000,binance,438.04097397516335,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,184.04166507542485,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,197.55833492457515,false,1721954984000,binance,389.17349453616515,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,false,1721954984000,binance,0.0,1721955300,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,254.54972477064223,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,263.85027522935775,false,1721954984000,binance,522.8195793642094,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,252.10989548587946,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,268.69010451412055,false,1721954984000,binance,530.1161482166766,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,219.99432502149614,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,228.80567497850384,false,1721954984000,binance,454.13189441827353,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,213.20760651987416,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,230.79239348012584,false,1721954984000,binance,453.9487573038596,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,false,1721954984000,binance,3.933827718138816,1721955300,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,false,1721954984000,binance,0.0,1721955300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,false,1721954984000,binance,621.0839318295539,1721955300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,621.44,true,1721955096000,binance,0.0,1721955600,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,425.02,true,1721955096000,binance,0.0,1721955600,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,610.67,true,1721955096000,binance,0.0,1721955600,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,459.46,true,1721955096000,binance,0.0,1721955600,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,402.49,true,1721955096000,binance,0.0,1721955600,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,552.72,true,1721955096000,binance,0.0,1721955600,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,476.56,true,1721955096000,binance,0.0,1721955600,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,470.59,true,1721955096000,binance,0.0,1721955600,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.02,true,1721955096000,binance,0.0,1721955600,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,557.05,true,1721955102000,binance,0.0,1721955600,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,621.44,true,1721955120000,binance,1258.0191270469973,1721955600,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,425.02,true,1721955120000,binance,853.4052024414697,1721955600,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,610.67,true,1721955120000,binance,1231.846455633758,1721955600,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,459.46,true,1721955120000,binance,920.688657463225,1721955600,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,402.49,true,1721955120000,binance,822.0132811340148,1721955600,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,552.72,true,1721955120000,binance,1117.1202937549685,1721955600,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,476.56,true,1721955120000,binance,959.4521411150232,1721955600,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,470.59,true,1721955120000,binance,953.3437691881993,1721955600,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.02,true,1721955120000,binance,1013.2375347921582,1721955600,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,557.05,true,1721955126000,binance,1130.7928642957033,1721955600,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721955219000,binance,0.0,1721955600,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,true,1721955219000,binance,0.0,1721955600,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721955225000,binance,0.0,1721955600,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721955225000,binance,0.0,1721955600,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,true,1721955225000,binance,0.0,1721955600,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721955231000,binance,0.0,1721955600,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721955231000,binance,0.0,1721955600,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721955231000,binance,0.0,1721955600,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721955238000,binance,0.0,1721955600,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721955238000,binance,0.0,1721955600,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721955250000,binance,6.073084096841193,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721955250000,binance,6.023753252374968,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721955250000,binance,6.051614402052294,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721955250000,binance,6.0115482792619055,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721955250000,binance,6.126959286943886,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721955250000,binance,6.063397165409079,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721955250000,binance,6.089899637172804,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721955250000,binance,6.039861556456836,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721955250000,binance,6.077543737785754,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721955250000,binance,0.0,1721955600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721955250000,binance,6.1405854397326864,1721955600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721955262000,binance,10.121806828068657,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721955262000,binance,10.03958875395828,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721955262000,binance,10.08602400342049,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721955262000,binance,10.019247132103176,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721955262000,binance,10.211598811573142,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721955262000,binance,10.105661942348464,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721955262000,binance,10.149832728621341,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721955262000,binance,10.06643592742806,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721955262000,binance,10.129239562976256,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,true,1721955262000,binance,10.234309066221144,1721955600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,true,1721955262000,binance,0.0,1721955600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,282.16011123470525,true,1721955286000,binance,571.1940281008102,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,297.43988876529477,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,300.0539568345324,true,1721955286000,binance,602.483666123331,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,302.9460431654676,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,true,1721955286000,binance,4.015835501583312,1721955600,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,420.2270149991759,true,1721955286000,binance,847.6839520334861,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,431.1729850008241,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,324.04061135371165,true,1721955286000,binance,649.3285931981271,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,322.15938864628833,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,184.47464192051643,true,1721955286000,binance,376.7562068401853,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,194.72535807948356,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,true,1721955286000,binance,0.0,1721955600,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,254.54972477064223,true,1721955286000,binance,514.4786932099911,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,263.85027522935775,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,251.5289971091839,true,1721955286000,binance,510.5954494112195,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,268.0710028908161,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,332.23755274261606,true,1721955286000,binance,668.8896074738091,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,339.162447257384,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,324.78556895647614,true,1721955286000,binance,657.9661669115383,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,337.61443104352384,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721955286000,binance,0.0,1721955600,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,true,1721955286000,binance,583.3556167746052,1721955600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,true,1721955286000,binance,0.0,1721955600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,622.0,true,1721955387000,binance,0.0,1721955900,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,426.49,true,1721955387000,binance,0.0,1721955900,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,611.48,true,1721955387000,binance,0.0,1721955900,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.79,true,1721955387000,binance,0.0,1721955900,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.16,false,1721955387000,binance,495.16,1721955900,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,400.35,true,1721955393000,binance,0.0,1721955900,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.86,true,1721955393000,binance,0.0,1721955900,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,557.93,true,1721955393000,binance,0.0,1721955900,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,477.3,true,1721955393000,binance,0.0,1721955900,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,472.38,true,1721955398000,binance,0.0,1721955900,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,622.0,true,1721955410000,binance,1259.143466712833,1721955900,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,426.49,true,1721955410000,binance,862.7142005028269,1721955900,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,611.48,true,1721955410000,binance,1244.9642322994393,1721955900,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.79,true,1721955410000,binance,921.0284394602355,1721955900,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.16,false,1721955410000,binance,495.16,1721955900,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,400.35,true,1721955416000,binance,806.5979184281663,1721955900,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.86,true,1721955416000,binance,1119.358994516009,1721955900,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,557.93,true,1721955416000,binance,1132.5754326383505,1721955900,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,477.3,true,1721955416000,binance,959.1086802097277,1721955900,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,472.38,true,1721955422000,binance,962.1239267045103,1721955900,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721955516000,binance,0.0,1721955900,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,true,1721955522000,binance,0.0,1721955900,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721955522000,binance,0.0,1721955900,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721955528000,binance,0.0,1721955900,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,true,1721955528000,binance,0.0,1721955900,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721955528000,binance,0.0,1721955900,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721955528000,binance,0.0,1721955900,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721955534000,binance,0.0,1721955900,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721955534000,binance,0.0,1721955900,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721955539000,binance,6.0,1721955900,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721955557000,binance,6.073039228518487,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,false,542.0,false,1721955557000,binance,1079.8502532951238,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,true,542.0,false,1721955557000,binance,0.0,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721955557000,binance,6.068471948951864,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721955557000,binance,6.107955610810358,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721955557000,binance,6.035704839294669,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721955557000,binance,6.044195716958908,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,false,542.0,true,1721955557000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,true,542.0,true,1721955557000,binance,1088.5054497038468,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,false,542.0,true,1721955557000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,true,542.0,true,1721955557000,binance,1095.1990831832431,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,false,542.0,false,1721955557000,binance,1077.3235550388356,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,true,542.0,false,1721955557000,binance,0.0,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721955557000,binance,6.063042977553943,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,false,542.0,true,1721955557000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,true,542.0,true,1721955557000,binance,1093.7784931185745,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,false,542.0,false,1721955557000,binance,1078.1929193193419,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,true,542.0,false,1721955557000,binance,0.0,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721955557000,binance,6.089879192578016,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721955557000,binance,6.028338656252217,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,false,542.0,false,1721955557000,binance,1077.063133611256,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,true,542.0,false,1721955557000,binance,0.0,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,false,542.0,true,1721955557000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,true,542.0,true,1721955557000,binance,1080.4122988316974,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721955557000,binance,0.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721955557000,binance,6.110275160069289,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721955557000,binance,3.0,1721955900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721955557000,binance,3.0,1721955900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,false,542.0,true,1721955557000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,true,542.0,true,1721955557000,binance,1094.2248890572166,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,false,542.0,true,1721955557000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,true,542.0,true,1721955557000,binance,1093.7057298066588,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721955569000,binance,10.121732047530811,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,true,843.0,false,1721955569000,binance,0.0,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,false,843.0,false,1721955569000,binance,1679.5456891656631,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721955569000,binance,10.114119914919774,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721955569000,binance,10.179926018017264,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721955569000,binance,10.059508065491116,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721955569000,binance,10.073659528264846,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,true,843.0,true,1721955569000,binance,1693.0075536906693,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,false,843.0,true,1721955569000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,true,843.0,true,1721955569000,binance,1703.4185002278118,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,false,843.0,true,1721955569000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,true,843.0,false,1721955569000,binance,0.0,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,false,843.0,false,1721955569000,binance,1675.6157876342038,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721955569000,binance,10.105071629256571,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,true,843.0,true,1721955569000,binance,1701.208984684425,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,false,843.0,true,1721955569000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,true,843.0,false,1721955569000,binance,0.0,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,false,843.0,false,1721955569000,binance,1676.967953849087,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721955569000,binance,10.149798654296692,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721955569000,binance,10.047231093753695,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,true,843.0,false,1721955569000,binance,0.0,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,false,843.0,false,1721955569000,binance,1675.2107410226731,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,true,843.0,true,1721955569000,binance,1680.4198670020683,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,false,843.0,true,1721955569000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721955569000,binance,10.183791933448815,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721955569000,binance,0.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721955569000,binance,5.0,1721955900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721955569000,binance,5.0,1721955900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,true,843.0,true,1721955569000,binance,1701.9032868546747,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,false,843.0,true,1721955569000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,true,843.0,true,1721955569000,binance,1701.0958122269622,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,false,843.0,true,1721955569000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,true,528.8154897494305,false,1721955575000,binance,0.0,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,false,571.1845102505695,false,1721955575000,binance,1137.9958267017134,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,true,539.8724681170293,true,1721955575000,binance,1084.2327005358904,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,false,560.1275318829707,true,1721955575000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,true,520.0,true,1721955575000,binance,1050.744507851082,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,false,580.0,true,1721955575000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,true,520.0,false,1721955575000,binance,0.0,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,false,580.0,false,1721955575000,binance,1152.8554648017061,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,true,520.0,true,1721955575000,binance,1049.3815801137616,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,false,580.0,true,1721955575000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,true,524.3408360128617,false,1721955575000,binance,0.0,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,false,575.6591639871383,false,1721955575000,binance,1145.1506172550264,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,true,520.0,false,1721955575000,binance,0.0,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,false,580.0,false,1721955575000,binance,1152.5767850452555,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,true,574.4074311338887,true,1721955575000,binance,1145.012644164898,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,false,525.5925688661114,true,1721955575000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,true,520.0,true,1721955575000,binance,1049.8098566600602,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,false,580.0,true,1721955575000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,true,520.0,true,1721955575000,binance,1049.3117702942116,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,false,580.0,true,1721955575000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,true,1721955580000,binance,0.0,1721955900,0x768c5195ea841c544cd09c61650417132615c0b9 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,true,1721955580000,binance,8.058927622611877,1721955900,0x768c5195ea841c544cd09c61650417132615c0b9 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721955580000,binance,0.0,1721955900,0x768c5195ea841c544cd09c61650417132615c0b9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,282.16011123470525,true,1721955598000,binance,571.1898080838349,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,297.43988876529477,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,296.6205951448708,true,1721955598000,binance,600.0112537060187,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,306.3794048551292,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,271.82708949207205,true,1721955598000,binance,553.4359321444502,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,296.97291050792796,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,321.7773620205801,true,1721955598000,binance,647.384393707696,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,326.22263797942,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,283.6374125874126,true,1721955598000,binance,571.4533447767153,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,286.96258741258737,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,254.58549717759445,true,1721955598000,binance,514.5209369498978,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,263.81450282240553,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,252.10989548587946,true,1721955598000,binance,511.7729355874918,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,268.69010451412055,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,334.6911153119093,true,1721955598000,binance,672.5437961129836,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,338.50888468809075,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,212.63136974549616,true,1721955598000,binance,433.07872560247125,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,230.16863025450388,true,1721955598000,binance,0.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,false,1721955598000,binance,285.0,1721955900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,false,1721955598000,binance,315.0,1721955900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.05,true,1721955682000,binance,0.0,1721956200,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,619.44,true,1721955687000,binance,0.0,1721956200,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,425.11,true,1721955687000,binance,0.0,1721956200,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,608.0,true,1721955687000,binance,0.0,1721956200,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,399.33,true,1721955687000,binance,0.0,1721956200,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,552.15,true,1721955687000,binance,0.0,1721956200,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,555.12,true,1721955687000,binance,0.0,1721956200,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,476.04,true,1721955687000,binance,0.0,1721956200,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,469.59,true,1721955699000,binance,0.0,1721956200,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,492.65,true,1721955699000,binance,0.0,1721956200,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.05,true,1721955705000,binance,924.2003845628432,1721956200,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,619.44,true,1721955711000,binance,1254.2025332409262,1721956200,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,425.11,true,1721955711000,binance,864.0302629459334,1721956200,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,608.0,true,1721955711000,binance,1238.5309473283628,1721956200,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,399.33,true,1721955711000,binance,811.541822987736,1721956200,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,552.15,true,1721955711000,binance,1116.37474641329,1721956200,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,555.12,true,1721955711000,binance,1127.8187859607294,1721956200,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,476.04,true,1721955711000,binance,961.6894588050759,1721956200,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,469.59,true,1721955723000,binance,958.6207916018071,1721956200,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,492.65,true,1721955723000,binance,1000.5788599965177,1721956200,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721955817000,binance,0.0,1721956200,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,true,1721955823000,binance,0.0,1721956200,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721955823000,binance,0.0,1721956200,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721955823000,binance,0.0,1721956200,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,true,1721955829000,binance,0.0,1721956200,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721955829000,binance,0.0,1721956200,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721955834000,binance,0.0,1721956200,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721955834000,binance,0.0,1721956200,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721955834000,binance,0.0,1721956200,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721955834000,binance,0.0,1721956200,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721955852000,binance,6.074208316742185,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721955852000,binance,6.097458984351816,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721955852000,binance,6.111172437475474,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721955852000,binance,6.066297240320599,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721955852000,binance,6.096775771825829,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721955852000,binance,6.065605794149905,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721955852000,binance,6.094999924128455,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721955852000,binance,6.060558727029719,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721955852000,binance,6.124198502535023,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721955852000,binance,0.0,1721956200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721955852000,binance,6.0930408606303725,1721956200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721955865000,binance,10.123680527903641,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721955865000,binance,10.162431640586359,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721955865000,binance,10.185287395792457,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721955865000,binance,10.110495400534331,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721955865000,binance,10.161292953043048,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721955865000,binance,10.109342990249841,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721955865000,binance,10.158333206880759,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721955865000,binance,10.1009312117162,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721955865000,binance,10.206997504225038,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,true,1721955865000,binance,10.155068101050622,1721956200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,true,1721955865000,binance,0.0,1721956200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721955883000,binance,591.407623987145,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,291.69096209912533,true,1721955883000,binance,592.8578925018455,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,308.30903790087467,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,true,1721955883000,binance,0.0,1721956200,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,286.7374361730717,true,1721955883000,binance,584.1006389110864,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,313.2625638269282,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,294.07602956705387,true,1721955883000,binance,594.6508688690192,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,305.9239704329462,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,272.04171878152107,true,1721955883000,binance,552.8591199976778,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,287.1582812184789,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,true,1721955883000,binance,8.129034362434439,1721956200,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,true,1721955883000,binance,595.6783508750274,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,290.4491883477874,true,1721955883000,binance,590.0959269809786,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,309.5508116522126,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,294.11006018916595,true,1721955883000,binance,594.1570973288952,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,305.88993981083405,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,288.1183871890192,true,1721955883000,binance,588.1647317919324,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,311.88161281098087,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721955883000,binance,0.0,1721956200,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,291.18518518518516,true,1721955883000,binance,591.4010771145184,1721956200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,308.8148148148148,true,1721955883000,binance,0.0,1721956200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,425.51,false,1721955983000,binance,831.6292028412906,1721956500,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,621.84,false,1721955989000,binance,1220.743287377328,1721956500,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,609.98,false,1721955989000,binance,1197.1765642968285,1721956500,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.87,false,1721955989000,binance,906.9343473534104,1721956500,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,557.69,false,1721955989000,binance,1092.717845435111,1721956500,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,402.25,false,1721955994000,binance,786.6819191277644,1721956500,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.75,false,1721955994000,binance,1096.8343362886737,1721956500,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,476.96,false,1721955994000,binance,937.6809111333132,1721956500,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,471.36,false,1721955994000,binance,921.5075761912492,1721956500,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,496.15,false,1721955994000,binance,971.2117736883944,1721956500,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,425.51,false,1721956006000,binance,0.0,1721956500,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,621.84,false,1721956012000,binance,0.0,1721956500,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,609.98,false,1721956012000,binance,0.0,1721956500,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.87,false,1721956012000,binance,0.0,1721956500,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,557.69,false,1721956012000,binance,0.0,1721956500,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,402.25,false,1721956018000,binance,0.0,1721956500,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.75,false,1721956018000,binance,0.0,1721956500,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,476.96,false,1721956018000,binance,0.0,1721956500,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,471.36,false,1721956018000,binance,0.0,1721956500,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,496.15,false,1721956018000,binance,0.0,1721956500,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,false,1721956119000,binance,11.778688608426553,1721956500,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,4.0,false,1721956119000,binance,7.817717119139767,1721956500,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721956125000,binance,11.775893284666664,1721956500,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721956125000,binance,7.923072901508379,1721956500,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,false,1721956130000,binance,19.55703963027382,1721956500,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721956130000,binance,13.865174454213482,1721956500,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721956130000,binance,13.715549710494678,1721956500,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721956130000,binance,5.897858800318558,1721956500,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721956136000,binance,9.774987018321974,1721956500,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721956136000,binance,11.744977611872148,1721956500,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,false,1721956154000,binance,5.889344304213276,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721956154000,binance,5.863287839354825,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721956154000,binance,5.887946642333332,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721956154000,binance,5.942304676131284,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721956154000,binance,5.867111889082146,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721956154000,binance,5.94221762323435,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721956154000,binance,5.878092733069147,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721956154000,binance,5.897858800318558,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721956154000,binance,5.864992210993185,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721956154000,binance,5.872488805936074,1721956500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721956154000,binance,0.0,1721956500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,false,1721956160000,binance,9.81557384035546,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721956160000,binance,9.77214639892471,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721956160000,binance,9.813244403888886,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721956160000,binance,9.903841126885474,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721956160000,binance,9.77851981513691,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721956160000,binance,9.903696038723917,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721956160000,binance,9.796821221781913,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721956160000,binance,9.829764667197598,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721956160000,binance,9.774987018321974,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721956160000,binance,0.0,1721956500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721956160000,binance,9.78748134322679,1721956500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,285.0,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,315.0,false,1721956183000,binance,618.381151942394,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,272.46,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,301.14,false,1721956183000,binance,588.5568333144374,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,false,1721956183000,binance,3.9088585595698837,1721956500,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,285.0,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,315.0,false,1721956183000,binance,618.2343974449998,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,294.07602956705387,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,305.9239704329462,false,1721956183000,binance,605.9644800147817,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,240.54,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,265.86,false,1721956183000,binance,519.9434556104599,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,false,1721956183000,binance,0.0,1721956500,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,false,1721956183000,binance,604.8826216678716,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,285.0,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,315.0,false,1721956183000,binance,617.1997369722604,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,287.4077490774908,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,312.59225092250927,false,1721956183000,binance,614.5416526715693,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,285.0,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,315.0,false,1721956183000,binance,615.8241821542845,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,false,1721956183000,binance,3.9099948073287902,1721956500,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,false,1721956183000,binance,0.0,1721956500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,false,1721956183000,binance,616.6113246232878,1721956500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,623.77,true,1721956284000,binance,0.0,1721956800,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,402.51,false,1721956284000,binance,815.274289353051,1721956800,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.9,true,1721956284000,binance,0.0,1721956800,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,426.97,false,1721956290000,binance,863.9540504383457,1721956800,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,613.1,false,1721956290000,binance,1213.2958949328738,1721956800,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,458.53,false,1721956290000,binance,912.4698455381862,1721956800,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,555.23,false,1721956290000,binance,1099.78390609214,1721956800,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,559.84,false,1721956296000,binance,1109.454449275059,1721956800,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,477.61,false,1721956296000,binance,946.8930337035777,1721956800,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,473.78,false,1721956296000,binance,941.2649846426195,1721956800,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,623.77,true,1721956308000,binance,1262.8973241491701,1721956800,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,402.51,false,1721956308000,binance,0.0,1721956800,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.9,true,1721956308000,binance,996.5432851546022,1721956800,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,426.97,false,1721956314000,binance,0.0,1721956800,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,613.1,false,1721956314000,binance,0.0,1721956800,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,458.53,false,1721956314000,binance,0.0,1721956800,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,555.23,false,1721956314000,binance,0.0,1721956800,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,559.84,false,1721956320000,binance,0.0,1721956800,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,477.61,false,1721956320000,binance,0.0,1721956800,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,473.78,false,1721956320000,binance,0.0,1721956800,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721956419000,binance,0.0,1721956800,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,false,1721956419000,binance,0.0,1721956800,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721956425000,binance,11.87371614679048,1721956800,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721956425000,binance,7.959957651958966,1721956800,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,10.0,false,1721956425000,binance,0.0,1721956800,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721956431000,binance,13.865402342533686,1721956800,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721956431000,binance,13.872144085677002,1721956800,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721956431000,binance,5.94769603046572,1721956800,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721956437000,binance,9.933566050093077,1721956800,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721956437000,binance,0.0,1721956800,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721956455000,binance,0.0,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721956455000,binance,6.073860513406402,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721956455000,binance,6.070361269679455,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721956455000,binance,0.0,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721956455000,binance,5.93685807339524,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721956455000,binance,0.0,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721956455000,binance,5.969968238969225,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721956455000,binance,0.0,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721956455000,binance,6.076427587039211,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721956455000,binance,0.0,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721956455000,binance,5.942315289657294,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721956455000,binance,0.0,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721956455000,binance,5.945204608147287,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721956455000,binance,0.0,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721956455000,binance,5.94769603046572,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721956455000,binance,0.0,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721956455000,binance,5.9601396300558465,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721956455000,binance,0.0,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721956455000,binance,0.0,1721956800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721956455000,binance,6.0286950100096925,1721956800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721956461000,binance,10.123100855677336,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721956461000,binance,0.0,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721956461000,binance,0.0,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721956461000,binance,10.117268782799092,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721956461000,binance,0.0,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721956461000,binance,9.894763455658733,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721956461000,binance,0.0,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721956461000,binance,9.949947064948708,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721956461000,binance,0.0,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721956461000,binance,10.12737931173202,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721956461000,binance,0.0,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721956461000,binance,9.903858816095491,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xaa6515c138183303b89b98aea756b54f711710c5-1721962800-0xeee327ce9510fb16ad75fd46de121026b18c3bdb,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,false,1793.55,true,1721956461000,binance,0.0,1721962800,0xeee327ce9510fb16ad75fd46de121026b18c3bdb -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721956461000,binance,0.0,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721956461000,binance,9.908674346912145,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721956461000,binance,0.0,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721956461000,binance,9.912826717442867,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721956461000,binance,0.0,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721956461000,binance,9.933566050093077,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,true,1721956461000,binance,10.047825016682822,1721956800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,true,1721956461000,binance,0.0,1721956800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721962800-0x7cc21e12728bb9702699c76f0805266427423ba1,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,false,2047.71,true,1721956466000,binance,0.0,1721962800,0x7cc21e12728bb9702699c76f0805266427423ba1 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721956484000,binance,591.3737605544632,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721956484000,binance,0.0,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721962800-0x84cf52b231524d6ee0def6f2b7ce848f22a94f2b,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,false,2126.87,true,1721956484000,binance,0.0,1721962800,0x84cf52b231524d6ee0def6f2b7ce848f22a94f2b -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,443.17729574380724,false,1721956484000,binance,0.0,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,429.8227042561927,false,1721956484000,binance,869.726365581893,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,false,1721956484000,binance,0.0,1721956800,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,292.7027027027027,false,1721956484000,binance,0.0,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,307.2972972972973,false,1721956484000,binance,608.1268134639988,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,446.91300280636113,false,1721956484000,binance,0.0,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,453.0869971936388,false,1721956484000,binance,901.638327578654,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,425.5569105691056,false,1721956484000,binance,0.0,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,411.4430894308944,false,1721956484000,binance,833.3680463715094,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,false,1721956484000,binance,8.101903449385615,1721956800,0x768c5195ea841c544cd09c61650417132615c0b9 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721962800-0x6257c5e83883bfc84082eb0cd34a04098cc792ef,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,false,1861.72,true,1721956484000,binance,0.0,1721962800,0x6257c5e83883bfc84082eb0cd34a04098cc792ef -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,false,1721956484000,binance,0.0,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,false,1721956484000,binance,604.8925635322909,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xaa6515c138183303b89b98aea756b54f711710c5-1721962800-0x94b74afa319667e3152f0079a5959c1ede62ad83,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,true,1793.55,true,1721956484000,binance,3617.3509462211264,1721962800,0x94b74afa319667e3152f0079a5959c1ede62ad83 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,295.0007878978885,false,1721956484000,binance,0.0,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,304.9992121021116,false,1721956484000,binance,604.4275737569218,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,294.11006018916595,false,1721956484000,binance,0.0,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,305.88993981083405,false,1721956484000,binance,606.4467935907652,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721962800-0x8e3652d395a2c698553dd98cb967127f3c559409,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,false,1810.21,true,1721956484000,binance,0.0,1721962800,0x8e3652d395a2c698553dd98cb967127f3c559409 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,444.773519163763,false,1721956484000,binance,0.0,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,455.22648083623693,false,1721956484000,binance,904.4044630276379,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,2.0,false,1721956484000,binance,0.0,1721956800,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,true,1721956484000,binance,902.1082408914224,1721956800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,true,1721956484000,binance,0.0,1721956800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721962800-0x12e21c6ec4841a5b1d725ac8a8509e67829d68bf,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,false,2005.72,true,1721956490000,binance,0.0,1721962800,0x12e21c6ec4841a5b1d725ac8a8509e67829d68bf -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721962800-0xe1d3f7fe664e9b936a3b8f62d17ab54c299bdfa4,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,true,2047.71,true,1721956490000,binance,4132.2724457100985,1721962800,0xe1d3f7fe664e9b936a3b8f62d17ab54c299bdfa4 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721962800-0x9660fafb6023e20f46d3c406005382541c14767a,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,false,1550.44,true,1721956496000,binance,0.0,1721962800,0x9660fafb6023e20f46d3c406005382541c14767a -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721962800-0x8aeeda98786f4226842b4ecaf91192889670c52f,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,false,2047.53,true,1721956502000,binance,0.0,1721962800,0x8aeeda98786f4226842b4ecaf91192889670c52f -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721962800-0xa17fd219faa6b47d486eaa87107c181480afa038,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,false,1870.98,true,1721956502000,binance,0.0,1721962800,0xa17fd219faa6b47d486eaa87107c181480afa038 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721962800-0xbbe7d8db067d3aa810b0b4a3098ce570fe4426d1,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,false,2053.28,true,1721956502000,binance,0.0,1721962800,0xbbe7d8db067d3aa810b0b4a3098ce570fe4426d1 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721962800-0x4411763f0f167655150f8866ba3e9d4f07c69148,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,true,2126.87,true,1721956508000,binance,4228.341783587493,1721962800,0x4411763f0f167655150f8866ba3e9d4f07c69148 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721962800-0x769057efa29f64d6924af1c9e3c31af9e1732600,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,true,1861.72,true,1721956508000,binance,3757.8293567617934,1721962800,0x769057efa29f64d6924af1c9e3c31af9e1732600 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721962800-0x3b58b52be0413e4322b785df2e67b5aaf99a32b5,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,true,1810.21,true,1721956508000,binance,3637.5378791090475,1721962800,0x3b58b52be0413e4322b785df2e67b5aaf99a32b5 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721962800-0x1a418e9206c9b2ba511d844e97a601b6fabcf8ef,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,true,2005.72,true,1721956514000,binance,4011.9069979823116,1721962800,0x1a418e9206c9b2ba511d844e97a601b6fabcf8ef -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721962800-0xecefd19314ee798921b053694a23974e406da47b,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,true,1550.44,true,1721956520000,binance,3132.8453435532747,1721962800,0xecefd19314ee798921b053694a23974e406da47b -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721962800-0x6adab3b1e5eee7c427d468147533a48b7c6e02d1,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,true,2047.53,true,1721956525000,binance,4081.4972619571276,1721962800,0x6adab3b1e5eee7c427d468147533a48b7c6e02d1 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721962800-0x06ad44372d17d21f736bede6eb0f727aeb9b9d45,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,true,1870.98,true,1721956525000,binance,3756.7717693588197,1721962800,0x06ad44372d17d21f736bede6eb0f727aeb9b9d45 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721962800-0x7641f8996b475321c44e389855b5f59b35a04515,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,true,2053.28,true,1721956525000,binance,4143.460689512179,1721962800,0x7641f8996b475321c44e389855b5f59b35a04515 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,624.6,true,1721956584000,binance,0.0,1721957100,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,428.23,false,1721956590000,binance,866.482271312952,1721957100,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,614.64,true,1721956590000,binance,0.0,1721957100,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,459.43,false,1721956590000,binance,914.2653132099757,1721957100,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,403.33,true,1721956590000,binance,0.0,1721957100,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,555.97,true,1721956590000,binance,0.0,1721957100,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,497.0,false,1721956590000,binance,990.2508984653574,1721957100,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,560.85,true,1721956596000,binance,0.0,1721957100,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,478.42,true,1721956596000,binance,0.0,1721957100,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,475.16,false,1721956596000,binance,954.5856787841168,1721957100,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,624.6,true,1721956602000,binance,1264.5639558619337,1721957100,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,428.23,false,1721956614000,binance,0.0,1721957100,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,614.64,true,1721956614000,binance,1251.8906981341331,1721957100,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,459.43,false,1721956614000,binance,0.0,1721957100,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,403.33,true,1721956614000,binance,799.5957112191082,1721957100,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,555.97,true,1721956614000,binance,1124.044190223056,1721957100,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,497.0,false,1721956614000,binance,0.0,1721957100,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,560.85,true,1721956619000,binance,1146.6129760963674,1721957100,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,478.42,true,1721956619000,binance,961.4670960585053,1721957100,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,475.16,false,1721956619000,binance,0.0,1721957100,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721956722000,binance,0.0,1721957100,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,false,1721956722000,binance,0.0,1721957100,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721956733000,binance,0.0,1721957100,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721956733000,binance,7.959996632435633,1721957100,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,true,1721956733000,binance,0.0,1721957100,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721956733000,binance,0.0,1721957100,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721956739000,binance,0.0,1721957100,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721956739000,binance,0.0,1721957100,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721956739000,binance,10.044886762186598,1721957100,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721956745000,binance,11.954739216885603,1721957100,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721956751000,binance,0.0,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721956751000,binance,6.0737942164358,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721956751000,binance,6.0702118346189105,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721956751000,binance,0.0,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721956751000,binance,0.0,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721956751000,binance,6.110360689838604,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721956751000,binance,5.969997474326725,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721956751000,binance,0.0,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721956751000,binance,0.0,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721956751000,binance,5.947455269028648,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721956751000,binance,0.0,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721956751000,binance,6.065313903032839,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721956751000,binance,0.0,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721956751000,binance,6.133260102146925,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721956751000,binance,0.0,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721956751000,binance,6.029014857605275,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721956751000,binance,6.026932057311958,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721956751000,binance,0.0,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721956751000,binance,5.977369608442801,1721957100,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721956751000,binance,0.0,1721957100,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721956762000,binance,10.122990360726334,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721956762000,binance,0.0,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721956762000,binance,0.0,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721956762000,binance,10.11701972436485,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721956762000,binance,10.18393448306434,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721956762000,binance,0.0,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721956762000,binance,0.0,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721956762000,binance,9.949995790544541,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721956762000,binance,9.91242544838108,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721956762000,binance,0.0,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721956762000,binance,10.108856505054732,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721956762000,binance,0.0,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721956762000,binance,10.222100170244873,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721956762000,binance,0.0,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721956762000,binance,10.048358096008792,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721956762000,binance,0.0,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721956762000,binance,0.0,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721956762000,binance,10.044886762186598,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721956762000,binance,0.0,1721957100,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721956762000,binance,9.962282680738001,1721957100,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721956786000,binance,591.3673056336214,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721956786000,binance,0.0,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,441.34976050362667,false,1721956786000,binance,0.0,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,428.05023949637337,false,1721956786000,binance,866.1185432007815,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,false,1721956786000,binance,0.0,1721957100,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,286.7374361730717,true,1721956786000,binance,584.0230527656811,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,313.2625638269282,true,1721956786000,binance,0.0,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,446.91300280636113,false,1721956786000,binance,0.0,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,453.0869971936388,false,1721956786000,binance,901.6427429654345,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,284.76,true,1721956786000,binance,564.5324541361992,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,257.64,true,1721956786000,binance,0.0,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,true,1721956786000,binance,0.0,1721957100,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,true,1721956786000,binance,595.6496854415738,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,true,1721956786000,binance,0.0,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,285.0,true,1721956786000,binance,582.6597097039578,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,315.0,true,1721956786000,binance,0.0,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,447.44801512287336,true,1721956786000,binance,899.2235770605978,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,452.55198487712664,true,1721956786000,binance,0.0,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,455.2193089928938,false,1721956786000,binance,0.0,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,444.7806910071062,false,1721956786000,binance,893.5543350346977,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,2.0,false,1721956786000,binance,0.0,1721957100,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,false,1721956786000,binance,0.0,1721957100,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,false,1721956786000,binance,898.7827561012934,1721957100,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,621.04,true,1721956881000,binance,0.0,1721957400,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,425.13,false,1721956881000,binance,860.2587488847797,1721957400,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,610.6299999999999,false,1721956887000,binance,1200.6882131343866,1721957400,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.94,false,1721956893000,binance,911.2928215273843,1721957400,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,400.83,false,1721956893000,binance,785.7793048222345,1721957400,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,554.08,false,1721956893000,binance,1097.5439730982432,1721957400,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,557.23,true,1721956893000,binance,0.0,1721957400,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,476.03,false,1721956893000,binance,946.320039759466,1721957400,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,471.56,true,1721956893000,binance,0.0,1721957400,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,494.15,false,1721956899000,binance,494.15,1721957400,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,621.04,true,1721956911000,binance,1257.4154271050184,1721957400,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,425.13,false,1721956911000,binance,0.0,1721957400,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,610.6299999999999,false,1721956911000,binance,0.0,1721957400,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.94,false,1721956922000,binance,0.0,1721957400,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,400.83,false,1721956922000,binance,0.0,1721957400,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,554.08,false,1721956922000,binance,0.0,1721957400,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,557.23,true,1721956922000,binance,1132.062090680863,1721957400,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,476.03,false,1721956922000,binance,0.0,1721957400,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,471.56,true,1721956922000,binance,939.8470463091519,1721957400,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,494.15,false,1721956922000,binance,494.15,1721957400,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721957017000,binance,0.0,1721957400,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,false,1721957022000,binance,0.0,1721957400,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721957022000,binance,11.797863319532812,1721957400,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721957028000,binance,7.959932056840496,1721957400,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,false,1721957028000,binance,19.60380472574993,1721957400,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721957028000,binance,13.865881843213437,1721957400,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721957028000,binance,0.0,1721957400,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721957034000,binance,5.963826059866811,1721957400,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721957034000,binance,0.0,1721957400,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721957034000,binance,6.0,1721957400,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721957052000,binance,0.0,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721957052000,binance,6.07407941729205,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721957052000,binance,6.070557821500104,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721957052000,binance,0.0,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721957052000,binance,5.898931659766406,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721957052000,binance,0.0,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721957052000,binance,5.969949042630373,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721957052000,binance,0.0,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721957052000,binance,5.8811414177249794,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721957052000,binance,0.0,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721957052000,binance,5.942520789948616,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721957052000,binance,0.0,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721957052000,binance,0.0,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721957052000,binance,6.094765665959459,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721957052000,binance,5.963826059866811,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721957052000,binance,0.0,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721957052000,binance,0.0,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721957052000,binance,5.979177917820544,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721957052000,binance,3.0,1721957400,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721957052000,binance,3.0,1721957400,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721957063000,binance,10.12346569548675,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721957063000,binance,0.0,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721957063000,binance,0.0,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721957063000,binance,10.11759636916684,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721957063000,binance,0.0,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721957063000,binance,9.831552766277342,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721957063000,binance,0.0,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721957063000,binance,9.94991507105062,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721957063000,binance,0.0,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721957063000,binance,9.801902362874966,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721957063000,binance,0.0,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721957063000,binance,9.904201316581027,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721957063000,binance,10.157942776599098,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721957063000,binance,0.0,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721957063000,binance,0.0,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721957063000,binance,9.939710099778019,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721957063000,binance,9.965296529700906,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721957063000,binance,0.0,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721957063000,binance,5.0,1721957400,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721957063000,binance,5.0,1721957400,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,false,1721957081000,binance,0.0,1721957400,0x768c5195ea841c544cd09c61650417132615c0b9 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,false,1721957081000,binance,7.841521890299972,1721957400,0x768c5195ea841c544cd09c61650417132615c0b9 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,2.0,true,1721957081000,binance,3.9861186118803626,1721957400,0x768c5195ea841c544cd09c61650417132615c0b9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721957087000,binance,591.39507385492,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721957087000,binance,0.0,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,445.0048309839879,false,1721957087000,binance,0.0,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,431.5951690160121,false,1721957087000,binance,873.3411429972705,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,286.7374361730717,false,1721957087000,binance,0.0,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,313.2625638269282,false,1721957087000,binance,615.9714851927538,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,446.91300280636113,false,1721957087000,binance,0.0,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,453.0869971936388,false,1721957087000,binance,901.6354283748113,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,267.95675675675676,false,1721957087000,binance,0.0,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,282.84324324324325,false,1721957087000,binance,554.4803708538328,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.65914025184543,false,1721957087000,binance,0.0,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.34085974815457,false,1721957087000,binance,604.8314690247311,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,290.4491883477874,true,1721957087000,binance,590.0732469492956,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,309.5508116522126,true,1721957087000,binance,0.0,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,445.3586497890295,false,1721957087000,binance,0.0,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,454.6413502109705,false,1721957087000,binance,903.8006440937396,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,455.2193089928938,true,1721957087000,binance,907.2790800319459,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,444.7806910071062,true,1721957087000,binance,0.0,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,false,1721957087000,binance,448.9072209127919,1721957400,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,false,1721957087000,binance,451.0927790872081,1721957400,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,623.65,false,1721957186000,binance,1233.5221630858102,1721957700,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,426.84,false,1721957186000,binance,863.7417072310716,1721957700,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,609.64,false,1721957186000,binance,1198.7198632698328,1721957700,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.51,true,1721957192000,binance,0.0,1721957700,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,402.53,false,1721957192000,binance,808.2686447864062,1721957700,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.04,false,1721957192000,binance,1105.6014629873614,1721957700,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,556.61,false,1721957192000,binance,1090.57418021964,1721957700,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,475.38,false,1721957192000,binance,942.8600408799174,1721957700,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,471.33,false,1721957198000,binance,952.0320891388455,1721957700,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.18,true,1721957198000,binance,0.0,1721957700,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,623.65,false,1721957210000,binance,0.0,1721957700,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,426.84,false,1721957210000,binance,0.0,1721957700,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,609.64,false,1721957210000,binance,0.0,1721957700,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.51,true,1721957215000,binance,920.5868199017667,1721957700,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,402.53,false,1721957215000,binance,0.0,1721957700,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.04,false,1721957215000,binance,0.0,1721957700,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,556.61,false,1721957215000,binance,0.0,1721957700,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,475.38,false,1721957215000,binance,0.0,1721957700,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,471.33,false,1721957221000,binance,0.0,1721957700,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.18,true,1721957221000,binance,995.0999801740527,1721957700,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,false,1721957320000,binance,11.867446449955684,1721957700,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,false,1721957326000,binance,0.0,1721957700,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721957326000,binance,11.797649727083192,1721957700,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721957326000,binance,0.0,1721957700,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,10.0,false,1721957326000,binance,0.0,1721957700,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721957332000,binance,13.993943007579073,1721957700,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721957332000,binance,13.715203215065271,1721957700,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721957332000,binance,5.950145405022828,1721957700,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721957337000,binance,0.0,1721957700,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721957337000,binance,0.0,1721957700,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,false,1721957355000,binance,5.933723224977842,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,false,1721957355000,binance,0.0,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721957355000,binance,6.070717649923191,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721957355000,binance,0.0,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721957355000,binance,5.898824863541596,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721957355000,binance,0.0,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721957355000,binance,0.0,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721957355000,binance,6.036502939182314,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721957355000,binance,6.023913582488804,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721957355000,binance,0.0,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721957355000,binance,5.997404146105317,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721957355000,binance,0.0,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721957355000,binance,5.877944235027973,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721957355000,binance,0.0,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721957355000,binance,5.950145405022828,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721957355000,binance,0.0,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721957355000,binance,6.059653040155595,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721957355000,binance,0.0,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721957355000,binance,0.0,1721957700,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721957355000,binance,6.028716710129969,1721957700,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,false,1721957361000,binance,0.0,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,false,1721957361000,binance,9.889538708296403,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721957361000,binance,0.0,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721957361000,binance,10.117862749871984,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721957361000,binance,0.0,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721957361000,binance,9.831374772569326,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721957361000,binance,10.060838231970523,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721957361000,binance,0.0,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721957361000,binance,0.0,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721957361000,binance,10.039855970814674,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721957361000,binance,0.0,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721957361000,binance,9.995673576842195,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721957361000,binance,0.0,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721957361000,binance,9.796573725046622,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721957361000,binance,0.0,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721957361000,binance,9.91690900837138,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721957361000,binance,0.0,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721957361000,binance,10.099421733592658,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,true,1721957361000,binance,10.047861183549948,1721957700,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,true,1721957361000,binance,0.0,1721957700,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,false,1721957384000,binance,0.0,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,false,1721957384000,binance,609.0151746036769,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,456.88381004516214,false,1721957384000,binance,0.0,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,443.11618995483786,false,1721957384000,binance,896.6777584418505,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,false,1721957384000,binance,0.0,1721957700,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,286.7374361730717,false,1721957384000,binance,0.0,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,313.2625638269282,false,1721957384000,binance,615.9603334396901,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,446.91300280636113,true,1721957384000,binance,899.2638849997975,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,453.0869971936388,true,1721957384000,binance,0.0,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,411.12808777429467,false,1721957384000,binance,0.0,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,411.47191222570535,false,1721957384000,binance,826.2237469563559,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,false,1721957384000,binance,8.03188477665174,1721957700,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,452.596653202539,false,1721957384000,binance,0.0,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,447.403346797461,false,1721957384000,binance,894.4195623548292,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,285.0,false,1721957384000,binance,0.0,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,315.0,false,1721957384000,binance,617.1841446779372,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,443.19899244332487,false,1721957384000,binance,0.0,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,456.801007556675,false,1721957384000,binance,906.0108053743827,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,455.2193089928938,false,1721957384000,binance,0.0,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,444.7806910071062,false,1721957384000,binance,898.4055554879058,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,2.0,false,1721957384000,binance,0.0,1721957700,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,true,1721957384000,binance,902.1114880049846,1721957700,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,true,1721957384000,binance,0.0,1721957700,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,625.8,true,1721957484000,binance,0.0,1721958000,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.42,true,1721957484000,binance,0.0,1721958000,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,555.28,true,1721957484000,binance,0.0,1721958000,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,428.44,true,1721957490000,binance,0.0,1721958000,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,613.71,true,1721957490000,binance,0.0,1721958000,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,401.85,true,1721957490000,binance,0.0,1721958000,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,472.82,true,1721957490000,binance,0.0,1721958000,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.16,false,1721957490000,binance,495.16,1721958000,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,560.78,true,1721957496000,binance,0.0,1721958000,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,476.72,true,1721957496000,binance,0.0,1721958000,0xb7f87637ceceebc4c183c4de06abe59996761007 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,625.8,true,1721957508000,binance,1266.973522858827,1721958000,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.42,true,1721957508000,binance,916.8516453896069,1721958000,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,555.28,true,1721957508000,binance,1106.026913478777,1721958000,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,428.44,true,1721957514000,binance,843.5124946907753,1721958000,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,613.71,true,1721957514000,binance,1224.2813435548883,1721958000,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,401.85,true,1721957514000,binance,807.945261258198,1721958000,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,472.82,true,1721957514000,binance,935.9745799684828,1721958000,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.16,false,1721957514000,binance,495.16,1721958000,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,560.78,true,1721957520000,binance,1133.1981449353223,1721958000,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,476.72,true,1721957520000,binance,957.334234996477,1721958000,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721957620000,binance,0.0,1721958000,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,true,1721957620000,binance,7.875198344606249,1721958000,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721957626000,binance,0.0,1721958000,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721957626000,binance,0.0,1721958000,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,10.0,true,1721957626000,binance,20.105642932890333,1721958000,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721957626000,binance,0.0,1721958000,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721957633000,binance,0.0,1721958000,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721957633000,binance,0.0,1721958000,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721957633000,binance,9.897789644774786,1721958000,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721957639000,binance,6.0,1721958000,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721957656000,binance,6.073698575545671,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721957656000,binance,5.906398758454687,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721957656000,binance,5.984657298503633,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721957656000,binance,6.01319342435578,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721957656000,binance,6.0316928798671,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721957656000,binance,5.975509185341324,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721957656000,binance,6.062260485049337,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721957656000,binance,6.024506429328391,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721957656000,binance,0.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721957656000,binance,5.938673786864872,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721957656000,binance,3.0,1721958000,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721957656000,binance,3.0,1721958000,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721957662000,binance,10.122830959242785,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721957662000,binance,9.84399793075781,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721957662000,binance,9.974428830839388,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721957662000,binance,10.021989040592967,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721957662000,binance,10.052821466445167,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721957662000,binance,9.959181975568875,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721957662000,binance,10.103767475082227,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721957662000,binance,10.040844048880652,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721957662000,binance,9.897789644774786,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721957662000,binance,0.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721957662000,binance,5.0,1721958000,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721957662000,binance,5.0,1721958000,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,true,1721957680000,binance,3.9375991723031243,1721958000,0x768c5195ea841c544cd09c61650417132615c0b9 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,true,1721957680000,binance,0.0,1721958000,0x768c5195ea841c544cd09c61650417132615c0b9 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,2.0,true,1721957680000,binance,3.9591158579099144,1721958000,0x768c5195ea841c544cd09c61650417132615c0b9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721957685000,binance,591.3579936791018,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,309.1896003319043,true,1721957685000,binance,608.73235717582,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,290.8103996680957,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,305.8358662613983,true,1721957685000,binance,610.107616388486,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,294.1641337386017,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,450.450112528132,true,1721957685000,binance,902.8812182181615,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,449.549887471868,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,442.9068150208623,true,1721957685000,binance,890.4926275353166,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,457.09318497913773,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,458.1332300542214,true,1721957685000,binance,912.5264414330301,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,441.86676994577863,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,295.0007878978885,true,1721957685000,binance,596.1238731772632,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,304.9992121021116,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,448.15378877354397,true,1721957685000,binance,899.9684605980312,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,451.84621122645603,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,456.6215301286391,true,1721957685000,binance,903.9087704976924,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,443.3784698713609,true,1721957685000,binance,0.0,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,false,1721957685000,binance,448.9072209127919,1721958000,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,false,1721957685000,binance,451.0927790872081,1721958000,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,626.53,true,1721957785000,binance,0.0,1721958300,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,494.91,false,1721957785000,binance,494.91,1721958300,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,428.86,true,1721957791000,binance,0.0,1721958300,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,610.3700000000001,true,1721957791000,binance,0.0,1721958300,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,456.97,true,1721957791000,binance,0.0,1721958300,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,399.61,true,1721957791000,binance,0.0,1721958300,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.66,true,1721957791000,binance,0.0,1721958300,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,562.09,true,1721957791000,binance,0.0,1721958300,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,475.83,true,1721957797000,binance,0.0,1721958300,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,472.1,true,1721957797000,binance,0.0,1721958300,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,626.53,true,1721957808000,binance,1268.4393306599916,1721958300,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,494.91,false,1721957808000,binance,494.91,1721958300,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,428.86,true,1721957814000,binance,853.0718049378058,1721958300,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,610.3700000000001,true,1721957814000,binance,1235.1590185318219,1721958300,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,456.97,true,1721957814000,binance,924.0396809847078,1721958300,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,399.61,true,1721957814000,binance,789.9748408328495,1721958300,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.66,true,1721957814000,binance,1119.4064165949433,1721958300,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,562.09,true,1721957814000,binance,1141.8353340811454,1721958300,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,475.83,true,1721957820000,binance,956.2748454287093,1721958300,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,472.1,true,1721957820000,binance,953.5869791432676,1721958300,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721957915000,binance,0.0,1721958300,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,true,1721957921000,binance,7.9566460377541,1721958300,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721957921000,binance,0.0,1721958300,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721957921000,binance,0.0,1721958300,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,10.0,true,1721957927000,binance,19.76864545013512,1721958300,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721957927000,binance,0.0,1721958300,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721957933000,binance,0.0,1721958300,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721957933000,binance,0.0,1721958300,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721957933000,binance,0.0,1721958300,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721957939000,binance,6.0,1721958300,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721957950000,binance,6.073640515186783,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721957950000,binance,5.967484528315575,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721957950000,binance,6.0708702190400325,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721957950000,binance,6.066304227748263,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,true,1721957950000,binance,5.930593635040536,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721957950000,binance,6.065490101840172,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721957950000,binance,6.094230465305265,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721957950000,binance,6.02909555153338,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721957950000,binance,0.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721957950000,binance,6.059650365239998,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721957950000,binance,3.0,1721958300,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721957950000,binance,3.0,1721958300,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721957962000,binance,10.12273419197797,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721957962000,binance,9.945807547192626,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721957962000,binance,10.118117031733387,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721957962000,binance,10.110507046247104,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,true,1721957962000,binance,9.88432272506756,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721957962000,binance,10.10915016973362,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721957962000,binance,10.157050775508775,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721957962000,binance,10.048492585888967,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721957962000,binance,10.099417275399997,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721957962000,binance,0.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721957962000,binance,5.0,1721958300,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721957962000,binance,5.0,1721958300,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,true,1721957979000,binance,0.0,1721958300,0x768c5195ea841c544cd09c61650417132615c0b9 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,true,1721957979000,binance,0.0,1721958300,0x768c5195ea841c544cd09c61650417132615c0b9 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,true,1721957979000,binance,0.0,1721958300,0x768c5195ea841c544cd09c61650417132615c0b9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721957985000,binance,591.3523407055608,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,454.3151969981239,true,1721957985000,binance,903.706303021649,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,445.6848030018761,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,292.7027027027027,true,1721957985000,binance,592.3200402901222,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,307.2972972972973,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,294.07602956705387,true,1721957985000,binance,594.6515538140139,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,305.9239704329462,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,457.5880758807587,true,1721957985000,binance,904.5896434296244,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,442.4119241192413,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,true,1721957985000,binance,595.6669892062001,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,290.4491883477874,true,1721957985000,binance,590.0214307507576,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,309.5508116522126,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,447.44801512287336,true,1721957985000,binance,899.2356125065854,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,452.55198487712664,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,444.773519163763,true,1721957985000,binance,898.3906726165919,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,455.22648083623693,true,1721957985000,binance,0.0,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,290.3225806451613,false,1721957985000,binance,290.3225806451613,1721958300,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,309.6774193548387,false,1721957985000,binance,309.6774193548387,1721958300,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,624.09,false,1721958086000,binance,1234.3988553178053,1721958600,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,429.62,false,1721958086000,binance,858.571080735886,1721958600,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,607.62,false,1721958092000,binance,1194.7037107876513,1721958600,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.8,false,1721958092000,binance,901.7369170560403,1721958600,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,400.74,false,1721958092000,binance,789.741215818291,1721958600,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.44,false,1721958092000,binance,1096.2165254673043,1721958600,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,557.89,false,1721958092000,binance,1101.967484116786,1721958600,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,474.73,false,1721958092000,binance,941.1531337754518,1721958600,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,473.08,false,1721958100000,binance,934.4209818031667,1721958600,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.57,false,1721958100000,binance,495.57,1721958600,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,624.09,false,1721958111000,binance,0.0,1721958600,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,429.62,false,1721958111000,binance,0.0,1721958600,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,607.62,false,1721958117000,binance,0.0,1721958600,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.8,false,1721958117000,binance,0.0,1721958600,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,400.74,false,1721958117000,binance,0.0,1721958600,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.44,false,1721958117000,binance,0.0,1721958600,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,557.89,false,1721958117000,binance,0.0,1721958600,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,474.73,false,1721958117000,binance,0.0,1721958600,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,473.08,false,1721958123000,binance,0.0,1721958600,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.57,false,1721958123000,binance,495.57,1721958600,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,false,1721958217000,binance,11.867508102848676,1721958600,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721958223000,binance,11.79721250901206,1721958600,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,false,1721958223000,binance,19.70707231168067,1721958600,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,false,1721958229000,binance,0.0,1721958600,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721958229000,binance,7.878872145531152,1721958600,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721958229000,binance,13.86512662306868,1721958600,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721958229000,binance,13.826690546196385,1721958600,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721958235000,binance,5.947505742898818,1721958600,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721958235000,binance,9.87592988292854,1721958600,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721958235000,binance,6.0,1721958600,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,false,1721958252000,binance,5.933754051424338,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721958252000,binance,5.99532899354699,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721958252000,binance,5.89860625450603,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721958252000,binance,5.909154109148364,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721958252000,binance,5.9121216935042,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721958252000,binance,5.942197124172291,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721958252000,binance,5.925724519798451,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721958252000,binance,5.947505742898818,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721958252000,binance,5.925557929757124,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721958252000,binance,0.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721958252000,binance,3.0,1721958600,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721958252000,binance,3.0,1721958600,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,false,1721958264000,binance,9.88959008570723,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721958264000,binance,9.992214989244983,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721958264000,binance,9.831010424176716,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721958264000,binance,9.84859018191394,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721958264000,binance,9.853536155840334,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721958264000,binance,9.903661873620486,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721958264000,binance,9.876207532997418,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721958264000,binance,9.91250957149803,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721958264000,binance,0.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721958264000,binance,9.87592988292854,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721958264000,binance,5.0,1721958600,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721958264000,binance,5.0,1721958600,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,false,1721958281000,binance,609.0183385149319,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,447.8417266187051,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,452.1582733812949,false,1721958281000,binance,903.6125353583412,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,false,1721958281000,binance,3.996885995697993,1721958600,0x768c5195ea841c544cd09c61650417132615c0b9 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,286.7374361730717,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,313.2625638269282,false,1721958281000,binance,615.937506097371,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,289.7248736664795,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,310.27512633352046,false,1721958281000,binance,611.1545125800834,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,291.8902562033488,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,308.1097437966512,false,1721958281000,binance,607.194100093401,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,4.0,false,1721958281000,binance,0.0,1721958600,0x768c5195ea841c544cd09c61650417132615c0b9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,false,1721958281000,binance,604.8805349845513,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,292.13286713286715,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,307.8671328671329,false,1721958281000,binance,608.1119393569389,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,294.11006018916595,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,305.88993981083405,false,1721958281000,binance,606.4273912399697,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,441.28474042999477,false,1721958281000,binance,0.0,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,458.71525957000523,false,1721958281000,binance,906.0479479485473,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,false,1721958281000,binance,3.9503719531714157,1721958600,0x768c5195ea841c544cd09c61650417132615c0b9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,false,1721958281000,binance,448.9072209127919,1721958600,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,false,1721958281000,binance,451.0927790872081,1721958600,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.47,false,1721958382000,binance,969.8633070792741,1721958900,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,626.44,false,1721958388000,binance,1239.0812408036186,1721958900,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,427.65,false,1721958388000,binance,854.63267386044,1721958900,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,457.96,true,1721958388000,binance,0.0,1721958900,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,471.8,false,1721958388000,binance,935.9149717508168,1721958900,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,608.7500000000001,false,1721958393000,binance,1204.6275241082005,1721958900,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,401.55,false,1721958393000,binance,824.3274810686416,1721958900,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.33,false,1721958393000,binance,1095.9973026460411,1721958900,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,560.07,false,1721958393000,binance,1115.4208386996347,1721958900,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,475.71,false,1721958393000,binance,948.4983087309824,1721958900,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.47,false,1721958406000,binance,0.0,1721958900,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,626.44,false,1721958411000,binance,0.0,1721958900,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,427.65,false,1721958411000,binance,0.0,1721958900,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,457.96,true,1721958411000,binance,926.0283773394033,1721958900,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,471.8,false,1721958411000,binance,0.0,1721958900,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,608.7500000000001,false,1721958417000,binance,0.0,1721958900,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,401.55,false,1721958417000,binance,0.0,1721958900,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.33,false,1721958417000,binance,0.0,1721958900,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,560.07,false,1721958417000,binance,0.0,1721958900,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,475.71,false,1721958417000,binance,0.0,1721958900,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,false,1721958520000,binance,11.867836416610865,1721958900,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,false,1721958526000,binance,0.0,1721958900,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721958526000,binance,11.87312549429027,1721958900,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721958526000,binance,0.0,1721958900,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,10.0,false,1721958532000,binance,0.0,1721958900,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721958532000,binance,13.865109642568244,1721958900,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721958532000,binance,13.941017856513367,1721958900,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721958532000,binance,5.981574753931907,1721958900,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721958532000,binance,9.9185562923995,1721958900,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721958538000,binance,11.744767276476164,1721958900,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,false,1721958556000,binance,5.933918208305433,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,false,1721958556000,binance,5.99531865212515,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721958556000,binance,5.936562747145135,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721958556000,binance,0.0,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721958556000,binance,6.066217861861756,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721958556000,binance,6.1585915656977335,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721958556000,binance,5.942189846814962,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721958556000,binance,5.974721938505729,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,false,1721958556000,binance,5.981574753931907,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721958556000,binance,5.9511337754397,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721958556000,binance,5.872383638238082,1721958900,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721958556000,binance,0.0,1721958900,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,false,1721958562000,binance,9.889863680509055,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,false,1721958562000,binance,9.992197753541916,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721958562000,binance,9.894271245241892,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721958562000,binance,10.110363103102927,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721958562000,binance,0.0,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721958562000,binance,10.264319276162889,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721958562000,binance,9.903649744691602,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721958562000,binance,9.957869897509548,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,false,1721958562000,binance,9.969291256553179,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721958562000,binance,9.9185562923995,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721958562000,binance,0.0,1721958900,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721958562000,binance,9.787306063730137,1721958900,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,false,1721958579000,binance,3.9968791014167664,1721958900,0x768c5195ea841c544cd09c61650417132615c0b9 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,false,1721958579000,binance,8.21145542093031,1721958900,0x768c5195ea841c544cd09c61650417132615c0b9 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,false,1721958579000,binance,3.9674225169598,1721958900,0x768c5195ea841c544cd09c61650417132615c0b9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,false,1721958585000,binance,609.0351869636734,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,447.8417266187051,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,452.1582733812949,false,1721958585000,binance,903.6109767051934,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,292.7027027027027,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,307.2972972972973,false,1721958585000,binance,608.0965624778395,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,294.07602956705387,true,1721958585000,binance,594.6430877683492,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,305.9239704329462,true,1721958585000,binance,0.0,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,315.0,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,285.0,false,1721958585000,binance,585.0661987412847,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.61773700305815,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.38226299694185,false,1721958585000,binance,604.8797941926014,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,448.71191985279086,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,451.28808014720914,false,1721958585000,binance,898.773597680554,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,448.15378877354397,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,451.84621122645603,false,1721958585000,binance,900.9172965773178,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,445.36423841059604,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,454.6357615894039,false,1721958585000,binance,901.8660787724842,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,285.0,false,1721958585000,binance,0.0,1721958900,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,315.0,false,1721958585000,binance,616.6002820149986,1721958900,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,628.38,true,1721958699000,binance,0.0,1721959200,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,427.37,true,1721958699000,binance,0.0,1721959200,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,610.96,true,1721958699000,binance,0.0,1721959200,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,458.97,true,1721958699000,binance,0.0,1721959200,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,399.91,false,1721958699000,binance,809.3964593865419,1721959200,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,554.93,true,1721958699000,binance,0.0,1721959200,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,562.78,true,1721958699000,binance,0.0,1721959200,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.33,true,1721958699000,binance,0.0,1721959200,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,476.32,true,1721958711000,binance,0.0,1721959200,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,473.05,true,1721958711000,binance,0.0,1721959200,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.33,true,1721958718000,binance,995.4006691238192,1721959200,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,628.38,true,1721958729000,binance,1271.5374282751166,1721959200,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,427.37,true,1721958729000,binance,841.3868699712018,1721959200,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,610.96,true,1721958729000,binance,1232.5504745878764,1721959200,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,458.97,true,1721958729000,binance,923.5156628521119,1721959200,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,399.91,false,1721958729000,binance,0.0,1721959200,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,554.93,true,1721958729000,binance,1105.328217868741,1721959200,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,562.78,true,1721958729000,binance,1121.4651590220146,1721959200,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,476.32,true,1721958742000,binance,956.5326365671917,1721959200,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,473.05,true,1721958742000,binance,942.8219186471399,1721959200,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721958821000,binance,0.0,1721959200,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,true,1721958821000,binance,7.875020426994893,1721959200,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,true,1721958821000,binance,0.0,1721959200,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,true,1721958827000,binance,0.0,1721959200,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,10.0,false,1721958827000,binance,20.23946536437053,1721959200,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,true,1721958827000,binance,0.0,1721959200,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,true,1721958833000,binance,0.0,1721959200,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721958833000,binance,0.0,1721959200,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721958833000,binance,0.0,1721959200,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,true,1721958839000,binance,0.0,1721959200,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721958851000,binance,6.070550120667987,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721958851000,binance,5.9062653202461695,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,true,1721958851000,binance,6.05219887351648,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,true,1721958851000,binance,6.036444622864971,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721958851000,binance,6.0718396093111595,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721958851000,binance,0.0,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,true,1721958851000,binance,5.975500790381171,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,true,1721958851000,binance,5.978171713753232,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721958851000,binance,6.024516941765148,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,true,1721958851000,binance,5.979210983915907,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,true,1721958851000,binance,0.0,1721959200,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,true,1721958851000,binance,6.028712186565436,1721959200,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721958863000,binance,10.117583534446645,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721958863000,binance,9.843775533743615,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,true,1721958863000,binance,10.086998122527469,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,true,1721958863000,binance,10.060741038108285,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721958863000,binance,0.0,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721958863000,binance,10.119732682185266,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,true,1721958863000,binance,9.95916798396862,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,true,1721958863000,binance,9.963619522922054,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721958863000,binance,10.04086156960858,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,true,1721958863000,binance,9.965351639859845,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,true,1721958863000,binance,10.047853644275726,1721959200,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,true,1721958863000,binance,0.0,1721959200,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,2.0,true,1721958882000,binance,3.9375102134974465,1721959200,0x768c5195ea841c544cd09c61650417132615c0b9 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,false,1721958882000,binance,8.095786145748212,1721959200,0x768c5195ea841c544cd09c61650417132615c0b9 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,2.0,true,1721958882000,binance,3.986140655943938,1721959200,0x768c5195ea841c544cd09c61650417132615c0b9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.5414364640884,true,1721958888000,binance,591.962484142486,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.4585635359116,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,309.1896003319043,true,1721958888000,binance,608.7186046070332,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,290.8103996680957,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,444.2146035932092,true,1721958888000,binance,896.1583744887969,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,455.78539640679077,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,446.91300280636113,true,1721958888000,binance,899.255197559632,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,453.0869971936388,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,315.0,false,1721958888000,binance,0.0,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,285.0,false,1721958888000,binance,576.8247628845601,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,458.1332300542214,true,1721958888000,binance,912.5251594296263,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,441.86676994577863,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,457.70570309098827,true,1721958888000,binance,912.0810958140271,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,442.29429690901173,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,448.15378877354397,true,1721958888000,binance,899.9700309941517,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,451.84621122645603,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,455.2193089928938,true,1721958888000,binance,907.2840974736399,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,444.7806910071062,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,true,1721958888000,binance,902.1108111180569,1721959200,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,true,1721958888000,binance,0.0,1721959200,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,625.59,true,1721958987000,binance,0.0,1721959500,0xb6aa14222da2a9bcc27b9ab857dcf3346d13e613 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0x23aebaeeb6d29469d27c1dbb2ad49207838760cd,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,427.85,true,1721958987000,binance,0.0,1721959500,0x23aebaeeb6d29469d27c1dbb2ad49207838760cd -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,607.55,false,1721958987000,binance,607.55,1721959500,0x252db6d4b5d1fa23d8ef8f4d4da57cb472593657 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0xb7f87637ceceebc4c183c4de06abe59996761007,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,474.88,true,1721958987000,binance,0.0,1721959500,0xb7f87637ceceebc4c183c4de06abe59996761007 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,495.39,false,1721958987000,binance,495.39,1721959500,0xcdc0b24c8ec32af4c0bc93aa9961c716ea5adbee -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,456.95,false,1721958993000,binance,905.1016067310505,1721959500,0xe53ce6a503e7fc45b178d61012d72c4dc79a4fe0 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0xd651f6e28122e492394a1e41987d4000dfa23cc6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,398.65,false,1721958993000,binance,818.4620291337435,1721959500,0xd651f6e28122e492394a1e41987d4000dfa23cc6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0x5b7b92110290e45f16ae75b1b2362c0620094b5a,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,553.22,false,1721958993000,binance,1095.8300154660412,1721959500,0x5b7b92110290e45f16ae75b1b2362c0620094b5a -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,559.83,false,1721958993000,binance,1109.4345157064452,1721959500,0x016790c9d93e1a0ef9df43646b0c35a0e3242f0a -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0x1a382bb1ae1cc04221c1636be63cc64c695b3dce,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,471.59,false,1721959004000,binance,931.4595098123165,1721959500,0x1a382bb1ae1cc04221c1636be63cc64c695b3dce -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0xaedaf8e9f0b35bae051c3b17d30e429f84326351,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,427.85,true,1721959016000,binance,848.6197364119532,1721959500,0xaedaf8e9f0b35bae051c3b17d30e429f84326351 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,607.55,false,1721959016000,binance,607.55,1721959500,0xb63606b4e07d525aa7c2173f822f7a6a5b84a16d -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0xa54165212d7efba6fb2878a1efcfcdd799b4345f,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,474.88,true,1721959016000,binance,953.646870849465,1721959500,0xa54165212d7efba6fb2878a1efcfcdd799b4345f -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,495.39,false,1721959016000,binance,495.39,1721959500,0x142e01c028fa8fcfbd09e11a47fdf65dd446d70b -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0x43584049fe6127ea6745d8ba42274e911f2a2d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,625.59,true,1721959022000,binance,1266.5518504249246,1721959500,0x43584049fe6127ea6745d8ba42274e911f2a2d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,456.95,false,1721959022000,binance,0.0,1721959500,0x4ac5e0b92de8e59a90a6db4fae1520ebc8b05f88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0x140b68728fc4d095c7e279fbbee5d0b47e71fb92,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,398.65,false,1721959022000,binance,0.0,1721959500,0x140b68728fc4d095c7e279fbbee5d0b47e71fb92 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,553.22,false,1721959022000,binance,0.0,1721959500,0x891ec57e9d13ba42a6a06ce31106da76a35cf9a0 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0x1a1dedbb2a52548385f704cacf35e0603cf86b3e,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,559.83,false,1721959022000,binance,0.0,1721959500,0x1a1dedbb2a52548385f704cacf35e0603cf86b3e -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0xeaffa8323a6674f6601eeab52fbbd509ac8df423,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,471.59,false,1721959027000,binance,0.0,1721959500,0xeaffa8323a6674f6601eeab52fbbd509ac8df423 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0xf7a0d37a9d016df6704fc965c421d52e294397b4,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,6.0,true,1721959122000,binance,0.0,1721959500,0xf7a0d37a9d016df6704fc965c421d52e294397b4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0xf830b2c2504d4c61927d116c288b0d154230bbc4,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,4.0,true,1721959122000,binance,7.933806113469236,1721959500,0xf830b2c2504d4c61927d116c288b0d154230bbc4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0x95546216d84fd764d89fe7a7841d50d661f90bb2,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,6.0,false,1721959122000,binance,6.0,1721959500,0x95546216d84fd764d89fe7a7841d50d661f90bb2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0xf9d2f5a42d599f39cd52c3119085568795010dab,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,4.0,false,1721959127000,binance,7.922981566745163,1721959500,0xf9d2f5a42d599f39cd52c3119085568795010dab -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0x555e8de68d589d7495b5ed4bdf626f34968e8add,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,10.0,false,1721959127000,binance,0.0,1721959500,0x555e8de68d589d7495b5ed4bdf626f34968e8add -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0x20d0eb8f700aeaf77ce38a390174d63b056f836e,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,7.0,false,1721959127000,binance,13.865749807061006,1721959500,0x20d0eb8f700aeaf77ce38a390174d63b056f836e -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,7.0,false,1721959133000,binance,13.872142632486854,1721959500,0xd8f2f0ddb5bd7537d3a59a6b972d1560de8986f1 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0x305591e801de18fbd8ad9eab63a7d7783ceedcef,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721959133000,binance,0.0,1721959500,0x305591e801de18fbd8ad9eab63a7d7783ceedcef -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721959133000,binance,9.875734322317228,1721959500,0xe49a54a02f0ca6e0e73ec2150d790d5d8a585403 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0xa00062af913122d6de032612f1a0fc79a1f6fe2a,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,6.0,false,1721959139000,binance,6.0,1721959500,0xa00062af913122d6de032612f1a0fc79a1f6fe2a -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,3.0,true,1721959157000,binance,0.0,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,3.0,true,1721959157000,binance,6.073715294801346,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,true,542.0,true,1721959157000,binance,1077.5276564643923,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,3.0,true,1721959157000,binance,0.0,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,3.0,true,1721959157000,binance,5.950354585101928,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,3.0,false,1721959157000,binance,3.0,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,3.0,false,1721959157000,binance,3.0,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,3.0,false,1721959157000,binance,5.942236175058872,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,3.0,false,1721959157000,binance,0.0,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,3.0,false,1721959157000,binance,6.159252696353269,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,3.0,false,1721959157000,binance,0.0,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,true,542.0,true,1721959157000,binance,1094.0117264491396,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,true,542.0,true,1721959157000,binance,1095.174386758517,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,true,542.0,true,1721959157000,binance,1084.1261955339792,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,3.0,false,1721959157000,binance,5.942464203026145,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,3.0,false,1721959157000,binance,0.0,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,true,542.0,true,1721959157000,binance,1093.7543234026662,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xaa6515c138183303b89b98aea756b54f711710c5-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xaa6515c138183303b89b98aea756b54f711710c5-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,true,542.0,true,1721959157000,binance,1093.1416536209476,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,3.0,false,1721959157000,binance,5.945203985351509,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,3.0,false,1721959157000,binance,0.0,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,3.0,true,1721959157000,binance,0.0,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,3.0,true,1721959157000,binance,6.024554861330009,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,true,542.0,true,1721959157000,binance,1089.1253116915184,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,true,542.0,true,1721959157000,binance,1080.4098186501606,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,3.0,false,1721959157000,binance,5.925440593390338,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,3.0,false,1721959157000,binance,0.0,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,3.0,false,1721959157000,binance,3.0,1721959500,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0xac82646af513586dbe301415e6df32ec71d95f04,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,3.0,false,1721959157000,binance,3.0,1721959500,0xac82646af513586dbe301415e6df32ec71d95f04 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,true,542.0,true,1721959157000,binance,1088.2907882459888,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721962800-0x460fb37185e4504d2e6d282507e7552dc97c7356,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,false,542.0,true,1721959157000,binance,0.0,1721962800,0x460fb37185e4504d2e6d282507e7552dc97c7356 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721962800-0xac82646af513586dbe301415e6df32ec71d95f04,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,true,542.0,true,1721959157000,binance,1093.7405973445418,1721962800,0xac82646af513586dbe301415e6df32ec71d95f04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,5.0,true,1721959163000,binance,10.12285882466891,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,5.0,true,1721959163000,binance,0.0,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,true,843.0,true,1721959163000,binance,1675.9332368994144,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,5.0,true,1721959163000,binance,9.917257641836546,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,5.0,true,1721959163000,binance,0.0,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,5.0,false,1721959163000,binance,5.0,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,5.0,false,1721959163000,binance,5.0,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,5.0,false,1721959163000,binance,0.0,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,5.0,false,1721959163000,binance,9.903726958431454,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,5.0,false,1721959163000,binance,0.0,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,5.0,false,1721959163000,binance,10.265421160588781,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,true,843.0,true,1721959163000,binance,1701.5717442742152,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,true,843.0,true,1721959163000,binance,1703.380088629944,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,true,843.0,true,1721959163000,binance,1686.1962782936246,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,5.0,false,1721959163000,binance,0.0,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,5.0,false,1721959163000,binance,9.904107005043576,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,true,843.0,true,1721959163000,binance,1701.1713923034088,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xaa6515c138183303b89b98aea756b54f711710c5-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,true,843.0,true,1721959163000,binance,1700.2184760192965,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xaa6515c138183303b89b98aea756b54f711710c5-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,5.0,false,1721959163000,binance,0.0,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,5.0,false,1721959163000,binance,9.908673308919182,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,5.0,true,1721959163000,binance,10.040924768883349,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,5.0,true,1721959163000,binance,0.0,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,true,843.0,true,1721959163000,binance,1693.9716563762918,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,true,843.0,true,1721959163000,binance,1680.416009450342,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,5.0,false,1721959163000,binance,0.0,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,5.0,false,1721959163000,binance,9.875734322317228,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,5.0,false,1721959163000,binance,5.0,1721959500,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,5.0,false,1721959163000,binance,5.0,1721959500,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,true,843.0,true,1721959163000,binance,1692.6736798733739,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721962800-0x4f4487d4508ad3ccef77b778244ddee7200b9da6,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,true,843.0,true,1721959163000,binance,1701.1500434713075,1721962800,0x4f4487d4508ad3ccef77b778244ddee7200b9da6 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721962800-0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,false,843.0,true,1721959163000,binance,0.0,1721962800,0x5420a956ff1755ba9b1eefcda1f502b2f8ba2b88 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,true,580.0,true,1721959169000,binance,1153.0738759213052,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152,XRP/USDT,1h,false,520.0,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,true,520.7720588235294,true,1721959169000,binance,1051.163725387458,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x74a61f733bd9a2ce40d2e39738fe4912925c06dd,SOL/USDT,1h,false,579.2279411764706,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,true,520.0,true,1721959169000,binance,1050.7208138642598,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553,BTC/USDT,1h,false,580.0,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,true,855.0739957716701,true,1721959169000,binance,1710.347081062691,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f,DOT/USDT,1h,false,844.9260042283299,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,true,520.0,true,1721959169000,binance,1049.3583914564324,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0,ADA/USDT,1h,false,580.0,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xaa6515c138183303b89b98aea756b54f711710c5-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,true,524.3408360128617,true,1721959169000,binance,1057.5254770112356,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xaa6515c138183303b89b98aea756b54f711710c5-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xaa6515c138183303b89b98aea756b54f711710c5,ETH/USDT,1h,false,575.6591639871383,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,true,836.7647058823529,true,1721959169000,binance,1681.4421053626927,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xd41ffee162905b45b65fa6b6e4468599f0490065,BNB/USDT,1h,false,863.235294117647,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,true,574.4074311338887,true,1721959169000,binance,1145.0100156875817,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xd49cbfd694f4556c00023ddd3559c36af3ae0a80,TRX/USDT,1h,false,525.5925688661114,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,true,540.5405405405405,true,1721959169000,binance,1085.3603153944239,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3,DOGE/USDT,1h,false,559.4594594594595,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721962800-0x35842372c513f8f217b968adc57a9296ba573d5c,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,true,520.0,true,1721959169000,binance,1049.3452225445787,1721962800,0x35842372c513f8f217b968adc57a9296ba573d5c -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721962800-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd,LTC/USDT,1h,false,580.0,true,1721959169000,binance,0.0,1721962800,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0x768c5195ea841c544cd09c61650417132615c0b9,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,2.0,true,1721959180000,binance,0.0,1721959500,0x768c5195ea841c544cd09c61650417132615c0b9 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0x768c5195ea841c544cd09c61650417132615c0b9,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,4.0,false,1721959180000,binance,8.212336928471025,1721959500,0x768c5195ea841c544cd09c61650417132615c0b9 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0x768c5195ea841c544cd09c61650417132615c0b9,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,2.0,false,1721959180000,binance,3.9502937289268916,1721959500,0x768c5195ea841c544cd09c61650417132615c0b9 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,true,292.091212458287,true,1721959192000,binance,591.3596215283224,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x18f54cc21b7a2fdd011bea06bba7801b280e3151,ADA/USDT,5m,false,307.908787541713,true,1721959192000,binance,0.0,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,true,456.88381004516214,true,1721959192000,binance,906.2068913203562,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x30f1c55e72fe105e4a1fbecdff3145fc14177695,ETH/USDT,5m,false,443.11618995483786,true,1721959192000,binance,0.0,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,true,293.6936936936937,false,1721959192000,binance,293.6936936936937,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd,BNB/USDT,5m,false,306.30630630630634,false,1721959192000,binance,306.30630630630634,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,true,294.07602956705387,false,1721959192000,binance,0.0,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x3fb744c3702ff2237fc65f261046ead36656f3bc,SOL/USDT,5m,false,305.9239704329462,false,1721959192000,binance,605.9574946414311,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,true,315.0,false,1721959192000,binance,0.0,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x55c6c33514f80b51a1f1b63c8ba229feb132cedb,XRP/USDT,5m,false,285.0,false,1721959192000,binance,585.1290061535606,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,true,294.65914025184543,false,1721959192000,binance,0.0,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f,DOT/USDT,5m,false,305.34085974815457,false,1721959192000,binance,604.8257095915451,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,true,295.0007878978885,false,1721959192000,binance,0.0,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xb1c55346023dee4d8b0d7b10049f0c8854823766,LTC/USDT,5m,false,304.9992121021116,false,1721959192000,binance,604.4275104395145,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,true,448.15378877354397,true,1721959192000,binance,899.9756955930388,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434,DOGE/USDT,5m,false,451.84621122645603,true,1721959192000,binance,0.0,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,true,441.28474042999477,false,1721959192000,binance,0.0,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xe66421fd29fc2d27d0724f161f01b8cbdcd69690,BTC/USDT,5m,false,458.71525957000523,false,1721959192000,binance,906.0300066212315,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0x35842372c513f8f217b968adc57a9296ba573d5c,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,true,448.9072209127919,false,1721959192000,binance,448.9072209127919,1721959500,0x35842372c513f8f217b968adc57a9296ba573d5c -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959500-0x361a86f86f9317bdec76227a05b59cd22d73d180,0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30,TRX/USDT,5m,false,451.0927790872081,false,1721959192000,binance,451.0927790872081,1721959500,0x361a86f86f9317bdec76227a05b59cd22d73d180 \ No newline at end of file diff --git a/pdr_backend/lake/test/pdr_slots.csv b/pdr_backend/lake/test/pdr_slots.csv deleted file mode 100644 index 69ec8cc81..000000000 --- a/pdr_backend/lake/test/pdr_slots.csv +++ /dev/null @@ -1,261 +0,0 @@ -ID,timestamp,slot,truevalue,roundSumStakesUp,roundSumStakes -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300,1721952300000,1721952300,true,911.151212458287,1844.1200000000001 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300,1721952300000,1721952300,false,887.2817266187051,1772.88 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300,1721952300000,1721952300,false,906.1227027027027,1832.84 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300,1721952300000,1721952300,true,916.3187280108255,1837.72 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300,1721952300000,1721952300,true,714.4894742527907,1433.02 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300,1721952300000,1721952300,false,854.0777370030582,1725.92 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300,1721952300000,1721952300,true,860.4107878978884,1723.82 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300,1721952300000,1721952300,true,923.8789924433249,1864.36 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300,1721952300000,1721952300,true,762.4886529318542,1551.28 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300,1721952300000,1721952300,true,787.1251851851852,1597.8799999999999 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600,1721952600000,1721952600,true,906.26,1848.52 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600,1721952600000,1721952600,true,886.138345323741,1774.6399999999999 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600,1721952600000,1721952600,true,900.9936263736264,1830.24 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600,1721952600000,1721952600,true,912.0430028063611,1834.26 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600,1721952600000,1721952600,true,709.9136363636363,1433.1 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600,1721952600000,1721952600,true,855.5177370030582,1728.8 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600,1721952600000,1721952600,true,854.1407878978885,1725.28 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600,1721952600000,1721952600,true,768.4577490774908,1565.1 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600,1721952600000,1721952600,true,763.4486529318542,1553.2 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600,1721952600000,1721952600,false,944.5372209127919,1897.26 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900,1721952900000,1721952900,true,900.54,1837.08 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900,1721952900000,1721952900,true,718.1981050351922,1461.4 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900,1721952900000,1721952900,true,900.2027027027027,1821.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900,1721952900000,1721952900,true,752.4337270875764,1525.12 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900,1721952900000,1721952900,true,690.88,1417.76 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900,1721952900000,1721952900,false,851.927737003058,1721.62 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900,1721952900000,1721952900,true,839.1,1715.2 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900,1721952900000,1721952900,true,763.5877490774908,1555.3600000000001 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900,1721952900000,1721952900,true,754.16,1545.32 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900,1721952900000,1721952900,true,775.87,1587.74 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200,1721953200000,1721953200,false,914.1612124582871,1850.14 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200,1721953200000,1721953200,false,727.8971428571429,1472.08 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200,1721953200000,1721953200,false,897.8574361730717,1828.24 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200,1721953200000,1721953200,false,755.9348736664795,1536.42 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200,1721953200000,1721953200,false,696.82,1429.64 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200,1721953200000,1721953200,false,856.2177370030581,1730.2 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200,1721953200000,1721953200,false,849.6191883477874,1725.34 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200,1721953200000,1721953200,false,771.8804107244723,1567.24 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200,1721953200000,1721953200,true,760.66,1558.32 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200,1721953200000,1721953200,true,782.72,1601.44 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500,1721953500000,1721953500,true,917.091212458287,1856.0 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500,1721953500000,1721953500,false,728.8231578947368,1473.12 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500,1721953500000,1721953500,true,900.5474361730717,1833.62 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500,1721953500000,1721953500,true,760.7060295670539,1537.26 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500,1721953500000,1721953500,false,698.26,1432.52 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500,1721953500000,1721953500,true,857.4777370030581,1732.72 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500,1721953500000,1721953500,true,850.9791883477874,1728.06 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500,1721953500000,1721953500,true,931.4680151228733,1871.04 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500,1721953500000,1721953500,false,762.02,1561.04 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500,1721953500000,1721953500,false,946.1072209127918,1900.4 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800,1721953800000,1721953800,false,627.02,1260.04 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800,1721953800000,1721953800,false,435.26,874.52 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800,1721953800000,1721953800,false,615.29,1236.58 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800,1721953800000,1721953800,false,467.98,939.96 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800,1721953800000,1721953800,true,411.33,832.66 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800,1721953800000,1721953800,false,561.38,1129.76 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800,1721953800000,1721953800,false,563.21,1133.42 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800,1721953800000,1721953800,true,485.49,973.98 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800,1721953800000,1721953800,false,479.17,963.34 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800,1721953800000,1721953800,false,499.7,1005.4 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100,1721954100000,1721954100,false,919.21,1854.14 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100,1721954100000,1721954100,false,896.4938100451621,1773.22 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100,1721954100000,1721954100,false,1066.8278732545648,2134.5 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100,1721954100000,1721954100,false,916.250112528132,1835.6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100,1721954100000,1721954100,true,855.4376223776225,1730.12 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100,1721954100000,1721954100,false,1001.360897299596,2027.2 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100,1721954100000,1721954100,false,855.2207878978885,1727.44 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100,1721954100000,1721954100,false,777.0800601891659,1568.94 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100,1721954100000,1721954100,false,933.5680821917807,1869.28 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100,1721954100000,1721954100,true,787.02,1610.04 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400,1721954400000,1721954400,true,904.8650166852059,1830.8200000000002 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400,1721954400000,1721954400,true,698.9837717257424,1384.12 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400,1721954400000,1721954400,true,901.3773556231005,1797.9 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400,1721954400000,1721954400,true,755.6688997037662,1509.14 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400,1721954400000,1721954400,true,561.0130647317167,1139.12 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400,1721954400000,1721954400,true,936.2808510638298,1871.3999999999999 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400,1721954400000,1721954400,true,806.1606508036558,1627.58 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400,1721954400000,1721954400,true,784.0730384782745,1573.62 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400,1721954400000,1721954400,true,784.9169668246445,1554.12 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400,1721954400000,1721954400,false,785.35,1606.7 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700,1721954700000,1721954700,true,901.68,1838.4 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700,1721954700000,1721954700,true,750.3492086330936,1501.72 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700,1721954700000,1721954700,true,887.24,1809.04 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700,1721954700000,1721954700,true,799.5732740879326,1607.74 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700,1721954700000,1721954700,true,612.46,1230.9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700,1721954700000,1721954700,true,826.415137614679,1655.2600000000002 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700,1721954700000,1721954700,true,812.7299999999999,1658.86 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700,1721954700000,1721954700,true,829.7884173556289,1665.42 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700,1721954700000,1721954700,true,813.648972207656,1647.58 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700,1721954700000,1721954700,true,785.18,1606.36 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000,1721955000000,1721955000,true,905.7159288097887,1832.68 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000,1721955000000,1721955000,true,628.9427444794952,1270.6 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000,1721955000000,1721955000,true,893.3342342342343,1804.6 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000,1721955000000,1721955000,false,672.9041100505334,1364.44 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000,1721955000000,1721955000,false,591.52,1207.76 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000,1721955000000,1721955000,true,812.8112538226301,1641.88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000,1721955000000,1721955000,true,811.1880987324884,1645.88 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000,1721955000000,1721955000,true,700.8814445399828,1413.48 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000,1721955000000,1721955000,true,690.2045166402536,1401.5 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000,1721955000000,1721955000,false,952.4472209127919,1913.08 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300,1721955300000,1721955300,false,908.7001112347052,1838.68 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300,1721955300000,1721955300,false,631.0717034700316,1274.98 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300,1721955300000,1721955300,false,887.3670894920721,1805.8799999999999 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300,1721955300000,1721955300,false,679.0128933474128,1370.58 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300,1721955300000,1721955300,false,598.3916650754248,1216.3 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300,1721955300000,1721955300,false,814.6897247706422,1645.68 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300,1721955300000,1721955300,false,814.2998954858796,1652.18 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300,1721955300000,1721955300,false,703.8643250214961,1419.54 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300,1721955300000,1721955300,false,690.1576065198742,1404.9 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300,1721955300000,1721955300,false,791.12,1606.24 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600,1721955600000,1721955600,true,911.6001112347052,1844.48 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600,1721955600000,1721955600,true,4106.51028831563,8153.84 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600,1721955600000,1721955600,true,735.0739568345324,1475.04 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600,1721955600000,1721955600,true,1038.8970149991758,2094.74 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600,1721955600000,1721955600,true,791.5006113537116,1585.12 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600,1721955600000,1721955600,true,594.9646419205164,1214.18 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600,1721955600000,1721955600,true,3785.692468117029,7591.639999999999 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600,1721955600000,1721955600,true,3444.5899999999997,6949.179999999999 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600,1721955600000,1721955600,true,3909.811457905544,7860.280000000001 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600,1721955600000,1721955600,true,815.2697247706423,1646.84 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600,1721955600000,1721955600,true,3947.866865671642,7946.48 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600,1721955600000,1721955600,true,3713.9839024390244,7447.4800000000005 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600,1721955600000,1721955600,true,816.5789971091839,1656.6999999999998 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600,1721955600000,1721955600,true,816.7975527426161,1643.52 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600,1721955600000,1721955600,true,3762.2856790770843,7495.94 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600,1721955600000,1721955600,true,4011.8774311338884,7974.94 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600,1721955600000,1721955600,true,803.3755689564762,1626.58 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600,1721955600000,1721955600,true,788.02,1612.04 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600,1721955600000,1721955600,true,3792.5805405405404,7604.08 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600,1721955600000,1721955600,true,4018.69868852459,7980.84 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900,1721955900000,1721955900,true,912.1601112347053,1845.6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900,1721955900000,1721955900,true,731.1105951448708,1477.98 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900,1721955900000,1721955900,true,891.307089492072,1813.76 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900,1721955900000,1721955900,true,787.56736202058,1583.5800000000002 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900,1721955900000,1721955900,true,695.9874125874126,1401.3 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900,1721955900000,1721955900,true,816.4454971775945,1649.12 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900,1721955900000,1721955900,true,818.0398954858794,1659.6599999999999 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900,1721955900000,1721955900,true,819.9911153119093,1646.8 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900,1721955900000,1721955900,true,693.0113697454962,1410.56 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900,1721955900000,1721955900,false,788.16,1612.32 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200,1721956200000,1721956200,true,919.531212458287,1860.88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200,1721956200000,1721956200,true,724.8009620991253,1472.22 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200,1721956200000,1721956200,true,902.7374361730717,1838.0 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200,1721956200000,1721956200,true,759.1260295670538,1534.1 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200,1721956200000,1721956200,true,683.371718781521,1387.86 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200,1721956200000,1721956200,true,854.7677370030582,1727.3 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200,1721956200000,1721956200,true,853.5691883477874,1733.24 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200,1721956200000,1721956200,true,778.150060189166,1571.08 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200,1721956200000,1721956200,true,765.7083871890192,1562.18 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200,1721956200000,1721956200,true,791.8351851851852,1607.3 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500,1721956500000,1721956500,false,914.84,1865.68 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500,1721956500000,1721956500,false,705.97,1446.62 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500,1721956500000,1721956500,false,902.98,1841.96 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500,1721956500000,1721956500,false,759.9460295670539,1535.74 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500,1721956500000,1721956500,false,654.79,1340.9 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500,1721956500000,1721956500,false,856.3677370030581,1730.5 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500,1721956500000,1721956500,false,850.69,1738.38 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500,1721956500000,1721956500,false,772.3677490774908,1572.92 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500,1721956500000,1721956500,false,764.36,1565.72 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500,1721956500000,1721956500,false,789.15,1614.3 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800,1721956800000,1721956800,true,923.8612124582869,1869.54 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800,1721956800000,1721956800,false,884.1472957438073,1748.94 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800,1721956800000,1721956800,false,913.8027027027027,1848.2 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800,1721956800000,1721956800,false,913.4430028063612,1837.06 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800,1721956800000,1721956800,false,846.0669105691056,1672.02 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800,1721956800000,1721956800,false,857.8477370030581,1733.46 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800,1721956800000,1721956800,false,862.8407878978885,1742.68 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800,1721956800000,1721956800,false,779.7200601891659,1574.22 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800,1721956800000,1721956800,false,928.553519163763,1870.56 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800,1721956800000,1721956800,true,952.8072209127919,1913.8 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100,1721957100000,1721957100,true,924.6912124582869,1871.2 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100,1721957100000,1721957100,false,883.5797605036266,1747.8600000000001 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100,1721957100000,1721957100,true,909.3774361730717,1851.28 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100,1721957100000,1721957100,false,914.3430028063611,1838.86 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100,1721957100000,1721957100,true,696.09,1379.06 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100,1721957100000,1721957100,true,858.5877370030581,1734.94 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100,1721957100000,1721957100,true,853.85,1744.7 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100,1721957100000,1721957100,true,933.8680151228734,1875.84 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100,1721957100000,1721957100,false,940.3793089928938,1873.32 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100,1721957100000,1721957100,false,953.9072209127919,1916.0 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400,1721957400000,1721957400,true,921.131212458287,1864.08 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400,1721957400000,1721957400,false,884.134830983988,1748.86 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400,1721957400000,1721957400,false,905.3674361730717,1843.2599999999998 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400,1721957400000,1721957400,false,912.8530028063611,1835.8799999999999 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400,1721957400000,1721957400,false,676.7867567567567,1382.46 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400,1721957400000,1721957400,false,856.7391402518455,1731.16 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400,1721957400000,1721957400,true,855.6791883477874,1737.46 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400,1721957400000,1721957400,false,929.3886497890295,1871.06 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400,1721957400000,1721957400,true,936.7793089928938,1866.12 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400,1721957400000,1721957400,false,951.0572209127919,1910.3 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700,1721957700000,1721957700,false,923.7412124582869,1869.3 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700,1721957700000,1721957700,false,897.7238100451622,1775.68 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700,1721957700000,1721957700,false,904.3774361730717,1841.28 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700,1721957700000,1721957700,true,912.4230028063612,1835.02 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700,1721957700000,1721957700,false,831.6580877742947,1657.66 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700,1721957700000,1721957700,false,1013.6366532025389,2029.08 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700,1721957700000,1721957700,false,849.61,1736.22 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700,1721957700000,1721957700,false,926.5789924433249,1869.76 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700,1721957700000,1721957700,false,941.5493089928938,1865.66 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700,1721957700000,1721957700,true,952.0872209127918,1912.36 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000,1721958000000,1721958000,true,925.891212458287,1873.6 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000,1721958000000,1721958000,true,751.6296003319043,1478.8799999999999 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000,1721958000000,1721958000,true,927.5458662613984,1849.42 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000,1721958000000,1721958000,true,915.870112528132,1834.84 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000,1721958000000,1721958000,true,862.7568150208623,1733.7 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000,1721958000000,1721958000,true,1021.4132300542215,2033.56 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000,1721958000000,1721958000,true,863.7807878978884,1744.56 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000,1721958000000,1721958000,true,932.873788773544,1872.44 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000,1721958000000,1721958000,true,944.4415301286391,1868.64 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000,1721958000000,1721958000,false,952.0672209127919,1912.32 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300,1721958300000,1721958300,true,926.6212124582869,1875.06 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300,1721958300000,1721958300,true,895.175196998124,1779.72 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300,1721958300000,1721958300,true,911.0727027027028,1842.74 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300,1721958300000,1721958300,true,759.0460295670539,1533.94 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300,1721958300000,1721958300,true,875.1980758807587,1729.22 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300,1721958300000,1721958300,true,856.2777370030582,1730.32 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300,1721958300000,1721958300,true,860.5391883477874,1747.18 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300,1721958300000,1721958300,true,931.2780151228734,1870.66 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300,1721958300000,1721958300,true,924.873519163763,1867.2 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300,1721958300000,1721958300,false,793.2325806451613,1611.82 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600,1721958600000,1721958600,false,924.1812124582871,1870.18 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600,1721958600000,1721958600,false,889.461726618705,1781.24 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600,1721958600000,1721958600,false,902.3574361730717,1837.24 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600,1721958600000,1721958600,false,755.5248736664795,1535.6 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600,1721958600000,1721958600,false,704.6302562033488,1431.48 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600,1721958600000,1721958600,false,856.0577370030582,1729.88 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600,1721958600000,1721958600,false,858.0228671328671,1738.78 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600,1721958600000,1721958600,false,776.8400601891659,1568.46 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600,1721958600000,1721958600,false,922.3647404299948,1869.16 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600,1721958600000,1721958600,false,952.4772209127918,1913.14 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900,1721958900000,1721958900,false,926.531212458287,1874.88 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900,1721958900000,1721958900,false,887.4917266187051,1777.3 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900,1721958900000,1721958900,false,909.4527027027028,1839.5000000000002 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900,1721958900000,1721958900,true,760.0360295670538,1535.92 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900,1721958900000,1721958900,false,734.55,1433.1 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900,1721958900000,1721958900,false,855.9477370030583,1729.66 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900,1721958900000,1721958900,false,1016.7819198527909,2043.14 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900,1721958900000,1721958900,false,931.863788773544,1870.42 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900,1721958900000,1721958900,false,925.164238410596,1866.6 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900,1721958900000,1721958900,false,788.47,1612.94 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721959200,1721959200000,1721959200,true,928.9214364640884,1878.76 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721959200,1721959200000,1721959200,false,4036.9154897494304,8116.2 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721959200,1721959200000,1721959200,true,750.5596003319042,1476.74 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721959200,1721959200000,1721959200,true,1063.1746035932092,2143.92 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721959200,1721959200000,1721959200,true,913.8830028063611,1837.9399999999998 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721959200,1721959200000,1721959200,false,722.91,1429.82 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721959200,1721959200000,1721959200,true,3776.3724681170293,7573.0 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721959200,1721959200000,1721959200,true,3447.8199999999997,6955.639999999999 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721959200,1721959200000,1721959200,false,3906.7799999999997,7873.5599999999995 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721959200,1721959200000,1721959200,true,1021.0632300542213,2032.86 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721959200,1721959200000,1721959200,true,3942.94,7945.88 -0xaa6515c138183303b89b98aea756b54f711710c5-1721959200,1721959200000,1721959200,false,3699.0208360128618,7449.36 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721959200,1721959200000,1721959200,true,1028.4857030909882,2048.56 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721959200,1721959200000,1721959200,true,932.473788773544,1871.64 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721959200,1721959200000,1721959200,false,3717.2,7494.4 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721959200,1721959200000,1721959200,true,4009.707431133889,7970.6 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721959200,1721959200000,1721959200,true,938.2693089928938,1869.1 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721959200,1721959200000,1721959200,true,952.2372209127918,1912.66 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721959200,1721959200000,1721959200,true,3770.8,7601.6 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721959200,1721959200000,1721959200,true,3972.5,8005.0 \ No newline at end of file diff --git a/pdr_backend/lake/test/pdr_truevals.csv b/pdr_backend/lake/test/pdr_truevals.csv deleted file mode 100644 index 28b640809..000000000 --- a/pdr_backend/lake/test/pdr_truevals.csv +++ /dev/null @@ -1,261 +0,0 @@ -ID,token,timestamp,truevalue,revenue,roundSumStakesUp,roundSumStakes,slot -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952000,ADA/USDT,1721952143000,false,0.9280460727171802,903.35,1842.7,1721952000 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721952000,XRP/USDT,1721952143000,true,11.136552872606162,4088.24,8116.48,1721952000 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952000,ETH/USDT,1721952143000,true,0.22550652234249238,895.4238100451622,1771.08,1721952000 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952000,BNB/USDT,1721952143000,false,0.0,917.5758662613982,1829.48,1721952000 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952000,SOL/USDT,1721952143000,true,0.0,917.8300436681221,1837.04,1721952000 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952000,XRP/USDT,1721952143000,false,0.0,698.3436363636364,1429.96,1721952000 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721952000,SOL/USDT,1721952143000,false,11.136552872606162,3762.5520588235295,7583.5599999999995,1721952000 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721952000,BTC/USDT,1721952143000,true,11.240632805995006,3516.591111111111,6978.96,1721952000 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721952000,DOT/USDT,1721952143000,true,11.136552872606162,3908.811457905544,7858.280000000001,1721952000 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952000,DOT/USDT,1721952143000,true,0.0,855.3977370030582,1728.56,1721952000 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721952000,ADA/USDT,1721952143000,true,11.136552872606162,4276.123849918434,8547.68,1721952000 -0xaa6515c138183303b89b98aea756b54f711710c5-1721952000,ETH/USDT,1721952143000,true,11.136552872606162,3746.445714285714,7464.32,1721952000 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952000,LTC/USDT,1721952143000,false,0.0,861.9307878978884,1726.86,1721952000 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952000,DOGE/USDT,1721952143000,true,0.0,926.9680151228733,1862.04,1721952000 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721952000,BNB/USDT,1721952143000,false,11.656952539550375,4039.254705882353,8104.98,1721952000 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721952000,TRX/USDT,1721952143000,false,22.273105745212323,3992.797431133889,7936.78,1721952000 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952000,BTC/USDT,1721952143000,true,0.008673327782403553,919.9947404299947,1854.42,1721952000 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952000,TRX/USDT,1721952143000,true,0.0,943.3972209127919,1894.98,1721952000 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721952000,DOGE/USDT,1721952143000,true,11.136552872606162,3827.81918699187,7618.24,1721952000 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721952000,LTC/USDT,1721952143000,false,11.136552872606162,4024.13868852459,7991.72,1721952000 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952300,ADA/USDT,1721952372000,true,0.9280460727171802,911.151212458287,1844.1200000000001,1721952300 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952300,ETH/USDT,1721952372000,false,0.9280460727171802,887.2817266187051,1772.88,1721952300 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952300,BNB/USDT,1721952372000,false,0.9280460727171802,906.1227027027027,1832.84,1721952300 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952300,SOL/USDT,1721952372000,true,0.9280460727171802,916.3187280108255,1837.72,1721952300 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952300,XRP/USDT,1721952372000,true,0.043366638912017766,714.4894742527907,1433.02,1721952300 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952300,DOT/USDT,1721952372000,false,0.0,854.0777370030582,1725.92,1721952300 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952300,LTC/USDT,1721952372000,true,0.0,860.4107878978884,1723.82,1721952300 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952300,DOGE/USDT,1721952372000,true,0.0,923.8789924433249,1864.36,1721952300 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952300,BTC/USDT,1721952372000,true,0.008673327782403553,762.4886529318542,1551.28,1721952300 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952300,TRX/USDT,1721952372000,true,0.0,787.1251851851852,1597.8799999999999,1721952300 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952600,ADA/USDT,1721952654000,true,0.9280460727171802,906.26,1848.52,1721952600 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952600,ETH/USDT,1721952654000,true,0.9280460727171802,886.138345323741,1774.6399999999999,1721952600 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952600,BNB/USDT,1721952654000,true,0.9280460727171802,900.9936263736264,1830.24,1721952600 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952600,SOL/USDT,1721952654000,true,0.9280460727171802,912.0430028063611,1834.26,1721952600 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952600,XRP/USDT,1721952654000,true,0.9280460727171802,709.9136363636363,1433.1,1721952600 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952600,DOT/USDT,1721952654000,true,0.0,855.5177370030582,1728.8,1721952600 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952600,LTC/USDT,1721952654000,true,0.0,854.1407878978885,1725.28,1721952600 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952600,DOGE/USDT,1721952654000,true,0.0,768.4577490774908,1565.1,1721952600 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952600,BTC/USDT,1721952654000,true,0.008673327782403553,763.4486529318542,1553.2,1721952600 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952600,TRX/USDT,1721952654000,false,0.0,944.5372209127919,1897.26,1721952600 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721952900,ADA/USDT,1721952955000,true,0.9280460727171802,900.54,1837.08,1721952900 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721952900,ETH/USDT,1721952955000,true,0.9280460727171802,718.1981050351922,1461.4,1721952900 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721952900,BNB/USDT,1721952955000,true,0.9280460727171802,900.2027027027027,1821.0,1721952900 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721952900,SOL/USDT,1721952955000,true,0.9280460727171802,752.4337270875764,1525.12,1721952900 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721952900,XRP/USDT,1721952955000,true,0.9280460727171802,690.88,1417.76,1721952900 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721952900,DOT/USDT,1721952955000,false,0.9280460727171802,851.927737003058,1721.62,1721952900 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721952900,LTC/USDT,1721952955000,true,0.65917291146267,839.1,1715.2,1721952900 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721952900,DOGE/USDT,1721952955000,true,0.0,763.5877490774908,1555.3600000000001,1721952900 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721952900,BTC/USDT,1721952955000,true,0.008673327782403553,754.16,1545.32,1721952900 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721952900,TRX/USDT,1721952955000,true,0.0,775.87,1587.74,1721952900 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953200,ADA/USDT,1721953254000,false,0.9280460727171802,914.1612124582871,1850.14,1721953200 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953200,ETH/USDT,1721953254000,false,0.9280460727171802,727.8971428571429,1472.08,1721953200 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953200,BNB/USDT,1721953254000,false,0.9280460727171802,897.8574361730717,1828.24,1721953200 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953200,SOL/USDT,1721953254000,false,0.9280460727171802,755.9348736664795,1536.42,1721953200 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953200,XRP/USDT,1721953254000,false,0.9280460727171802,696.82,1429.64,1721953200 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953200,DOT/USDT,1721953254000,false,0.9280460727171802,856.2177370030581,1730.2,1721953200 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953200,LTC/USDT,1721953254000,false,0.9280460727171802,849.6191883477874,1725.34,1721953200 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953200,DOGE/USDT,1721953254000,false,0.9280460727171802,771.8804107244723,1567.24,1721953200 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953200,BTC/USDT,1721953254000,true,0.25152650568970303,760.66,1558.32,1721953200 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953200,TRX/USDT,1721953254000,true,0.0,782.72,1601.44,1721953200 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953500,ADA/USDT,1721953571000,true,0.9280460727171802,917.091212458287,1856.0,1721953500 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953500,ETH/USDT,1721953571000,false,0.9280460727171802,728.8231578947368,1473.12,1721953500 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953500,BNB/USDT,1721953571000,true,0.9280460727171802,900.5474361730717,1833.62,1721953500 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953500,SOL/USDT,1721953571000,true,0.9280460727171802,760.7060295670539,1537.26,1721953500 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953500,XRP/USDT,1721953571000,false,0.9280460727171802,698.26,1432.52,1721953500 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953500,DOT/USDT,1721953571000,true,0.9280460727171802,857.4777370030581,1732.72,1721953500 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953500,LTC/USDT,1721953571000,true,0.9280460727171802,850.9791883477874,1728.06,1721953500 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953500,DOGE/USDT,1721953571000,true,0.9280460727171802,931.4680151228733,1871.04,1721953500 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953500,BTC/USDT,1721953571000,false,0.9367194004995837,762.02,1561.04,1721953500 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953500,TRX/USDT,1721953571000,false,0.9280460727171802,946.1072209127918,1900.4,1721953500 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721953800,ADA/USDT,1721953853000,false,0.9280460727171802,627.02,1260.04,1721953800 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721953800,ETH/USDT,1721953853000,false,0.9280460727171802,435.26,874.52,1721953800 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721953800,BNB/USDT,1721953853000,false,0.9280460727171802,615.29,1236.58,1721953800 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721953800,SOL/USDT,1721953853000,false,0.9280460727171802,467.98,939.96,1721953800 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721953800,XRP/USDT,1721953853000,true,0.9280460727171802,411.33,832.66,1721953800 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721953800,DOT/USDT,1721953853000,false,0.9280460727171802,561.38,1129.76,1721953800 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721953800,LTC/USDT,1721953853000,false,0.9280460727171802,563.21,1133.42,1721953800 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721953800,DOGE/USDT,1721953853000,true,0.9280460727171802,485.49,973.98,1721953800 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721953800,BTC/USDT,1721953853000,false,0.9367194004995837,479.17,963.34,1721953800 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721953800,TRX/USDT,1721953853000,false,0.9280460727171802,499.7,1005.4,1721953800 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954100,ADA/USDT,1721954155000,false,0.9280460727171802,919.21,1854.14,1721954100 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954100,ETH/USDT,1721954155000,false,0.9280460727171802,896.4938100451621,1773.22,1721954100 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954100,BNB/USDT,1721954155000,false,0.9280460727171802,1066.8278732545648,2134.5,1721954100 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954100,SOL/USDT,1721954155000,false,0.9280460727171802,916.250112528132,1835.6,1721954100 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954100,XRP/USDT,1721954155000,true,0.9280460727171802,855.4376223776225,1730.12,1721954100 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954100,DOT/USDT,1721954155000,false,0.9280460727171802,1001.360897299596,2027.2,1721954100 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954100,LTC/USDT,1721954155000,false,0.9280460727171802,855.2207878978885,1727.44,1721954100 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954100,DOGE/USDT,1721954155000,false,0.9280460727171802,777.0800601891659,1568.94,1721954100 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954100,BTC/USDT,1721954155000,false,0.9367194004995837,933.5680821917807,1869.28,1721954100 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954100,TRX/USDT,1721954155000,true,0.9280460727171802,787.02,1610.04,1721954100 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954400,ADA/USDT,1721954473000,true,0.9280460727171802,904.8650166852059,1830.8200000000002,1721954400 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954400,ETH/USDT,1721954473000,true,0.9280460727171802,698.9837717257424,1384.12,1721954400 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954400,BNB/USDT,1721954473000,true,0.9280460727171802,901.3773556231005,1797.9,1721954400 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954400,SOL/USDT,1721954473000,true,0.9280460727171802,755.6688997037662,1509.14,1721954400 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954400,XRP/USDT,1721954473000,true,0.9280460727171802,561.0130647317167,1139.12,1721954400 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954400,DOT/USDT,1721954473000,true,0.9280460727171802,936.2808510638298,1871.3999999999999,1721954400 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954400,LTC/USDT,1721954473000,true,0.9280460727171802,806.1606508036558,1627.58,1721954400 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954400,DOGE/USDT,1721954473000,true,0.9280460727171802,784.0730384782745,1573.62,1721954400 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954400,BTC/USDT,1721954473000,true,0.9367194004995837,784.9169668246445,1554.12,1721954400 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954400,TRX/USDT,1721954473000,false,0.9280460727171802,785.35,1606.7,1721954400 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721954700,ADA/USDT,1721954749000,true,0.9280460727171802,901.68,1838.4,1721954700 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721954700,ETH/USDT,1721954749000,true,0.9280460727171802,750.3492086330936,1501.72,1721954700 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721954700,BNB/USDT,1721954749000,true,0.9280460727171802,887.24,1809.04,1721954700 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721954700,SOL/USDT,1721954749000,true,0.9280460727171802,799.5732740879326,1607.74,1721954700 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721954700,XRP/USDT,1721954749000,true,0.9280460727171802,612.46,1230.9,1721954700 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721954700,DOT/USDT,1721954749000,true,0.9280460727171802,826.415137614679,1655.2600000000002,1721954700 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721954700,LTC/USDT,1721954749000,true,0.9280460727171802,812.7299999999999,1658.86,1721954700 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721954700,DOGE/USDT,1721954749000,true,0.9280460727171802,829.7884173556289,1665.42,1721954700 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721954700,BTC/USDT,1721954749000,true,0.9367194004995837,813.648972207656,1647.58,1721954700 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721954700,TRX/USDT,1721954749000,true,0.9280460727171802,785.18,1606.36,1721954700 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955000,ADA/USDT,1721955055000,true,0.9280460727171802,905.7159288097887,1832.68,1721955000 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955000,ETH/USDT,1721955055000,true,0.9280460727171802,628.9427444794952,1270.6,1721955000 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955000,BNB/USDT,1721955055000,true,0.9280460727171802,893.3342342342343,1804.6,1721955000 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955000,SOL/USDT,1721955055000,false,0.9280460727171802,672.9041100505334,1364.44,1721955000 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955000,XRP/USDT,1721955055000,false,0.9280460727171802,591.52,1207.76,1721955000 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955000,DOT/USDT,1721955055000,true,0.9280460727171802,812.8112538226301,1641.88,1721955000 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955000,LTC/USDT,1721955055000,true,0.9280460727171802,811.1880987324884,1645.88,1721955000 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955000,DOGE/USDT,1721955055000,true,0.9280460727171802,700.8814445399828,1413.48,1721955000 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955000,BTC/USDT,1721955055000,true,0.9367194004995837,690.2045166402536,1401.5,1721955000 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955000,TRX/USDT,1721955055000,false,0.9280460727171802,952.4472209127919,1913.08,1721955000 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955300,ADA/USDT,1721955351000,false,0.9280460727171802,908.7001112347052,1838.68,1721955300 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955300,ETH/USDT,1721955351000,false,0.9280460727171802,631.0717034700316,1274.98,1721955300 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955300,BNB/USDT,1721955351000,false,0.9280460727171802,887.3670894920721,1805.8799999999999,1721955300 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955300,SOL/USDT,1721955351000,false,0.9280460727171802,679.0128933474128,1370.58,1721955300 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955300,XRP/USDT,1721955351000,false,0.9280460727171802,598.3916650754248,1216.3,1721955300 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955300,DOT/USDT,1721955351000,false,0.9280460727171802,814.6897247706422,1645.68,1721955300 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955300,LTC/USDT,1721955351000,false,0.9280460727171802,814.2998954858796,1652.18,1721955300 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955300,DOGE/USDT,1721955351000,false,0.9280460727171802,703.8643250214961,1419.54,1721955300 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955300,BTC/USDT,1721955351000,false,0.9367194004995837,690.1576065198742,1404.9,1721955300 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955300,TRX/USDT,1721955351000,false,0.9280460727171802,791.12,1606.24,1721955300 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955600,ADA/USDT,1721955705000,true,0.9280460727171802,911.6001112347052,1844.48,1721955600 -0x2d8e2267779d27c2b3ed5408408ff15d9f3a3152-1721955600,XRP/USDT,1721955705000,true,11.136552872606162,4106.51028831563,8153.84,1721955600 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955600,ETH/USDT,1721955705000,true,0.9280460727171802,735.0739568345324,1475.04,1721955600 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955600,BNB/USDT,1721955705000,true,0.9280460727171802,1038.8970149991758,2094.74,1721955600 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955600,SOL/USDT,1721955705000,true,0.9280460727171802,791.5006113537116,1585.12,1721955600 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955600,XRP/USDT,1721955705000,true,0.9280460727171802,594.9646419205164,1214.18,1721955600 -0x74a61f733bd9a2ce40d2e39738fe4912925c06dd-1721955600,SOL/USDT,1721955705000,true,11.136552872606162,3785.692468117029,7591.639999999999,1721955600 -0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1721955600,BTC/USDT,1721955705000,true,11.240632805995006,3444.5899999999997,6949.179999999999,1721955600 -0x93f9d558ccde9ea371a20d36bd3ba58c7218b48f-1721955600,DOT/USDT,1721955705000,true,11.136552872606162,3909.811457905544,7860.280000000001,1721955600 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955600,DOT/USDT,1721955705000,true,0.9280460727171802,815.2697247706423,1646.84,1721955600 -0xa2d9dbbdf21c30bb3e63d16ba75f644ac11a0cf0-1721955600,ADA/USDT,1721955705000,true,11.136552872606162,3947.866865671642,7946.48,1721955600 -0xaa6515c138183303b89b98aea756b54f711710c5-1721955600,ETH/USDT,1721955705000,true,11.136552872606162,3713.9839024390244,7447.4800000000005,1721955600 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955600,LTC/USDT,1721955705000,true,0.9280460727171802,816.5789971091839,1656.6999999999998,1721955600 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955600,DOGE/USDT,1721955705000,true,0.9280460727171802,816.7975527426161,1643.52,1721955600 -0xd41ffee162905b45b65fa6b6e4468599f0490065-1721955600,BNB/USDT,1721955705000,true,11.656952539550375,3762.2856790770843,7495.94,1721955600 -0xd49cbfd694f4556c00023ddd3559c36af3ae0a80-1721955600,TRX/USDT,1721955705000,true,22.273105745212323,4011.8774311338884,7974.94,1721955600 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955600,BTC/USDT,1721955705000,true,0.9367194004995837,803.3755689564762,1626.58,1721955600 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955600,TRX/USDT,1721955705000,true,0.9280460727171802,788.02,1612.04,1721955600 -0xf8c34175fc1f1d373ec67c4fd1f1ce57c69c3fb3-1721955600,DOGE/USDT,1721955705000,true,11.136552872606162,3792.5805405405404,7604.08,1721955600 -0xfa69b2c1224cebb3b6a36fb5b8c3c419afab08dd-1721955600,LTC/USDT,1721955705000,true,11.136552872606162,4018.69868852459,7980.84,1721955600 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721955900,ADA/USDT,1721955953000,true,0.9280460727171802,912.1601112347053,1845.6,1721955900 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721955900,ETH/USDT,1721955953000,true,0.9280460727171802,731.1105951448708,1477.98,1721955900 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721955900,BNB/USDT,1721955953000,true,0.9280460727171802,891.307089492072,1813.76,1721955900 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721955900,SOL/USDT,1721955953000,true,0.9280460727171802,787.56736202058,1583.5800000000002,1721955900 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721955900,XRP/USDT,1721955953000,true,0.9280460727171802,695.9874125874126,1401.3,1721955900 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721955900,DOT/USDT,1721955953000,true,0.9280460727171802,816.4454971775945,1649.12,1721955900 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721955900,LTC/USDT,1721955953000,true,0.9280460727171802,818.0398954858794,1659.6599999999999,1721955900 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721955900,DOGE/USDT,1721955953000,true,0.9280460727171802,819.9911153119093,1646.8,1721955900 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721955900,BTC/USDT,1721955953000,true,0.9367194004995837,693.0113697454962,1410.56,1721955900 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721955900,TRX/USDT,1721955953000,false,0.9280460727171802,788.16,1612.32,1721955900 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956200,ADA/USDT,1721956249000,true,0.9280460727171802,919.531212458287,1860.88,1721956200 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956200,ETH/USDT,1721956249000,true,0.9280460727171802,724.8009620991253,1472.22,1721956200 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956200,BNB/USDT,1721956249000,true,0.9280460727171802,902.7374361730717,1838.0,1721956200 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956200,SOL/USDT,1721956249000,true,0.9280460727171802,759.1260295670538,1534.1,1721956200 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956200,XRP/USDT,1721956249000,true,0.9280460727171802,683.371718781521,1387.86,1721956200 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956200,DOT/USDT,1721956249000,true,0.9280460727171802,854.7677370030582,1727.3,1721956200 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956200,LTC/USDT,1721956249000,true,0.9280460727171802,853.5691883477874,1733.24,1721956200 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956200,DOGE/USDT,1721956249000,true,0.9280460727171802,778.150060189166,1571.08,1721956200 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956200,BTC/USDT,1721956249000,true,0.9367194004995837,765.7083871890192,1562.18,1721956200 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956200,TRX/USDT,1721956249000,true,0.9280460727171802,791.8351851851852,1607.3,1721956200 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956500,ADA/USDT,1721956590000,false,0.9280460727171802,914.84,1865.68,1721956500 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956500,ETH/USDT,1721956590000,false,0.9280460727171802,705.97,1446.62,1721956500 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956500,BNB/USDT,1721956590000,false,0.9280460727171802,902.98,1841.96,1721956500 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956500,SOL/USDT,1721956590000,false,0.9280460727171802,759.9460295670539,1535.74,1721956500 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956500,XRP/USDT,1721956590000,false,0.9280460727171802,654.79,1340.9,1721956500 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956500,DOT/USDT,1721956590000,false,0.9280460727171802,856.3677370030581,1730.5,1721956500 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956500,LTC/USDT,1721956590000,false,0.9280460727171802,850.69,1738.38,1721956500 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956500,DOGE/USDT,1721956590000,false,0.9280460727171802,772.3677490774908,1572.92,1721956500 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956500,BTC/USDT,1721956590000,false,0.9367194004995837,764.36,1565.72,1721956500 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956500,TRX/USDT,1721956590000,false,0.9280460727171802,789.15,1614.3,1721956500 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721956800,ADA/USDT,1721956863000,true,0.9280460727171802,923.8612124582869,1869.54,1721956800 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721956800,ETH/USDT,1721956863000,false,0.9280460727171802,884.1472957438073,1748.94,1721956800 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721956800,BNB/USDT,1721956863000,false,0.9280460727171802,913.8027027027027,1848.2,1721956800 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721956800,SOL/USDT,1721956863000,false,0.9280460727171802,913.4430028063612,1837.06,1721956800 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721956800,XRP/USDT,1721956863000,false,0.9280460727171802,846.0669105691056,1672.02,1721956800 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721956800,DOT/USDT,1721956863000,false,0.9280460727171802,857.8477370030581,1733.46,1721956800 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721956800,LTC/USDT,1721956863000,false,0.9280460727171802,862.8407878978885,1742.68,1721956800 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721956800,DOGE/USDT,1721956863000,false,0.9280460727171802,779.7200601891659,1574.22,1721956800 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721956800,BTC/USDT,1721956863000,false,0.9367194004995837,928.553519163763,1870.56,1721956800 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721956800,TRX/USDT,1721956863000,true,0.9280460727171802,952.8072209127919,1913.8,1721956800 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957100,ADA/USDT,1721957151000,true,0.9280460727171802,924.6912124582869,1871.2,1721957100 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957100,ETH/USDT,1721957151000,false,0.9280460727171802,883.5797605036266,1747.8600000000001,1721957100 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957100,BNB/USDT,1721957151000,true,0.9280460727171802,909.3774361730717,1851.28,1721957100 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957100,SOL/USDT,1721957151000,false,0.9280460727171802,914.3430028063611,1838.86,1721957100 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957100,XRP/USDT,1721957151000,true,0.9280460727171802,696.09,1379.06,1721957100 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957100,DOT/USDT,1721957151000,true,0.9280460727171802,858.5877370030581,1734.94,1721957100 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957100,LTC/USDT,1721957151000,true,0.9280460727171802,853.85,1744.7,1721957100 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957100,DOGE/USDT,1721957151000,true,0.9280460727171802,933.8680151228734,1875.84,1721957100 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957100,BTC/USDT,1721957151000,false,0.9367194004995837,940.3793089928938,1873.32,1721957100 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957100,TRX/USDT,1721957151000,false,0.9280460727171802,953.9072209127919,1916.0,1721957100 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957400,ADA/USDT,1721957449000,true,0.9280460727171802,921.131212458287,1864.08,1721957400 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957400,ETH/USDT,1721957449000,false,0.9280460727171802,884.134830983988,1748.86,1721957400 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957400,BNB/USDT,1721957449000,false,0.9280460727171802,905.3674361730717,1843.2599999999998,1721957400 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957400,SOL/USDT,1721957449000,false,0.9280460727171802,912.8530028063611,1835.8799999999999,1721957400 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957400,XRP/USDT,1721957449000,false,0.9280460727171802,676.7867567567567,1382.46,1721957400 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957400,DOT/USDT,1721957449000,false,0.9280460727171802,856.7391402518455,1731.16,1721957400 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957400,LTC/USDT,1721957449000,true,0.9280460727171802,855.6791883477874,1737.46,1721957400 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957400,DOGE/USDT,1721957449000,false,0.9280460727171802,929.3886497890295,1871.06,1721957400 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957400,BTC/USDT,1721957449000,true,0.9367194004995837,936.7793089928938,1866.12,1721957400 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957400,TRX/USDT,1721957449000,false,0.9280460727171802,951.0572209127919,1910.3,1721957400 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721957700,ADA/USDT,1721957762000,false,0.9280460727171802,923.7412124582869,1869.3,1721957700 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721957700,ETH/USDT,1721957762000,false,0.9280460727171802,897.7238100451622,1775.68,1721957700 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721957700,BNB/USDT,1721957762000,false,0.9280460727171802,904.3774361730717,1841.28,1721957700 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721957700,SOL/USDT,1721957762000,true,0.9280460727171802,912.4230028063612,1835.02,1721957700 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721957700,XRP/USDT,1721957762000,false,0.9280460727171802,831.6580877742947,1657.66,1721957700 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721957700,DOT/USDT,1721957762000,false,0.9280460727171802,1013.6366532025389,2029.08,1721957700 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721957700,LTC/USDT,1721957762000,false,0.9280460727171802,849.61,1736.22,1721957700 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721957700,DOGE/USDT,1721957762000,false,0.9280460727171802,926.5789924433249,1869.76,1721957700 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721957700,BTC/USDT,1721957762000,false,0.9367194004995837,941.5493089928938,1865.66,1721957700 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721957700,TRX/USDT,1721957762000,true,0.9280460727171802,952.0872209127918,1912.36,1721957700 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958000,ADA/USDT,1721958056000,true,0.9280460727171802,925.891212458287,1873.6,1721958000 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958000,ETH/USDT,1721958056000,true,0.9280460727171802,751.6296003319043,1478.8799999999999,1721958000 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958000,BNB/USDT,1721958056000,true,0.9280460727171802,927.5458662613984,1849.42,1721958000 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958000,SOL/USDT,1721958056000,true,0.9280460727171802,915.870112528132,1834.84,1721958000 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958000,XRP/USDT,1721958056000,true,0.9280460727171802,862.7568150208623,1733.7,1721958000 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958000,DOT/USDT,1721958056000,true,0.9280460727171802,1021.4132300542215,2033.56,1721958000 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958000,LTC/USDT,1721958056000,true,0.9280460727171802,863.7807878978884,1744.56,1721958000 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958000,DOGE/USDT,1721958056000,true,0.9280460727171802,932.873788773544,1872.44,1721958000 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958000,BTC/USDT,1721958056000,true,0.9367194004995837,944.4415301286391,1868.64,1721958000 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958000,TRX/USDT,1721958056000,false,0.9280460727171802,952.0672209127919,1912.32,1721958000 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958300,ADA/USDT,1721958364000,true,0.9280460727171802,926.6212124582869,1875.06,1721958300 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958300,ETH/USDT,1721958364000,true,0.9280460727171802,895.175196998124,1779.72,1721958300 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958300,BNB/USDT,1721958364000,true,0.9280460727171802,911.0727027027028,1842.74,1721958300 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958300,SOL/USDT,1721958364000,true,0.9280460727171802,759.0460295670539,1533.94,1721958300 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958300,XRP/USDT,1721958364000,true,0.9280460727171802,875.1980758807587,1729.22,1721958300 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958300,DOT/USDT,1721958364000,true,0.9280460727171802,856.2777370030582,1730.32,1721958300 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958300,LTC/USDT,1721958364000,true,0.9280460727171802,860.5391883477874,1747.18,1721958300 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958300,DOGE/USDT,1721958364000,true,0.9280460727171802,931.2780151228734,1870.66,1721958300 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958300,BTC/USDT,1721958364000,true,0.9367194004995837,924.873519163763,1867.2,1721958300 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958300,TRX/USDT,1721958364000,false,0.9280460727171802,793.2325806451613,1611.82,1721958300 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958600,ADA/USDT,1721958650000,false,0.9280460727171802,924.1812124582871,1870.18,1721958600 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958600,ETH/USDT,1721958650000,false,0.9280460727171802,889.461726618705,1781.24,1721958600 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958600,BNB/USDT,1721958650000,false,0.9280460727171802,902.3574361730717,1837.24,1721958600 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958600,SOL/USDT,1721958650000,false,0.9280460727171802,755.5248736664795,1535.6,1721958600 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958600,XRP/USDT,1721958650000,false,0.9280460727171802,704.6302562033488,1431.48,1721958600 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958600,DOT/USDT,1721958650000,false,0.9280460727171802,856.0577370030582,1729.88,1721958600 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958600,LTC/USDT,1721958650000,false,0.9280460727171802,858.0228671328671,1738.78,1721958600 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958600,DOGE/USDT,1721958650000,false,0.9280460727171802,776.8400601891659,1568.46,1721958600 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958600,BTC/USDT,1721958650000,false,0.9367194004995837,922.3647404299948,1869.16,1721958600 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958600,TRX/USDT,1721958650000,false,0.9280460727171802,952.4772209127918,1913.14,1721958600 -0x18f54cc21b7a2fdd011bea06bba7801b280e3151-1721958900,ADA/USDT,1721958945000,false,0.9280460727171802,926.531212458287,1874.88,1721958900 -0x30f1c55e72fe105e4a1fbecdff3145fc14177695-1721958900,ETH/USDT,1721958945000,false,0.9280460727171802,887.4917266187051,1777.3,1721958900 -0x31fabe1fc9887af45b77c7d1e13c5133444ebfbd-1721958900,BNB/USDT,1721958945000,false,0.9280460727171802,909.4527027027028,1839.5000000000002,1721958900 -0x3fb744c3702ff2237fc65f261046ead36656f3bc-1721958900,SOL/USDT,1721958945000,true,0.9280460727171802,760.0360295670538,1535.92,1721958900 -0x55c6c33514f80b51a1f1b63c8ba229feb132cedb-1721958900,XRP/USDT,1721958945000,false,0.9280460727171802,734.55,1433.1,1721958900 -0x9c4a2406e5aa0f908d6e816e5318b9fc8a507e1f-1721958900,DOT/USDT,1721958945000,false,0.9280460727171802,855.9477370030583,1729.66,1721958900 -0xb1c55346023dee4d8b0d7b10049f0c8854823766-1721958900,LTC/USDT,1721958945000,false,0.9280460727171802,1016.7819198527909,2043.14,1721958900 -0xbe09c6e3f2341a79f74898b8d68c4b5818a2d434-1721958900,DOGE/USDT,1721958945000,false,0.9280460727171802,931.863788773544,1870.42,1721958900 -0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1721958900,BTC/USDT,1721958945000,false,0.9367194004995837,925.164238410596,1866.6,1721958900 -0xf28c94c55d8c5e1d70ca3a82744225a4f7570b30-1721958900,TRX/USDT,1721958945000,false,0.9280460727171802,788.47,1612.94,1721958900 \ No newline at end of file diff --git a/pdr_backend/lake/test/resources.py b/pdr_backend/lake/test/resources.py index b04716435..13290c4d3 100644 --- a/pdr_backend/lake/test/resources.py +++ b/pdr_backend/lake/test/resources.py @@ -1,7 +1,4 @@ -import os import copy -from typing import Dict -from unittest.mock import patch # Third-party imports import polars as pl @@ -14,7 +11,6 @@ from pdr_backend.lake.ohlcv_data_factory import OhlcvDataFactory from pdr_backend.lake.plutil import concat_next_df, initialize_rawohlcv_df, text_to_df from pdr_backend.ppss.lake_ss import LakeSS -from pdr_backend.ppss.ppss import mock_ppss from pdr_backend.ppss.predictoor_ss import PredictoorSS, predictoor_ss_test_dict from pdr_backend.util.time_types import UnixTimeMs diff --git a/pdr_backend/lake/trueval.py b/pdr_backend/lake/trueval.py deleted file mode 100644 index e8d5237c0..000000000 --- a/pdr_backend/lake/trueval.py +++ /dev/null @@ -1,160 +0,0 @@ -from collections import OrderedDict -from typing import Callable, List, Union - -from enforce_typing import enforce_types -from polars import Boolean, Float64, Int64, Utf8 - -from pdr_backend.lake.lake_mapper import LakeMapper -from pdr_backend.util.time_types import UnixTimeS - - -@enforce_types -class Trueval(LakeMapper): - # pylint: disable=too-many-instance-attributes - # pylint: disable=too-many-positional-arguments - def __init__( - self, - ID: str, - timestamp: UnixTimeS, - token: str, - truevalue: Union[bool, None], - slot: UnixTimeS, # slot/epoch timestamp - revenue: float, - roundSumStakesUp: float, - roundSumStakes: float, - ) -> None: - self.ID = ID - self.truevalue = truevalue - self.timestamp = timestamp - self.token = token - self.slot = slot - self.revenue = revenue - self.roundSumStakesUp = roundSumStakesUp - self.roundSumStakes = roundSumStakes - - self.check_against_schema() - - @staticmethod - def get_lake_schema(): - return OrderedDict( - { - "ID": Utf8, - "token": Utf8, - "timestamp": Int64, - "truevalue": Boolean, - "slot": Int64, - "revenue": Float64, - "roundSumStakesUp": Float64, - "roundSumStakes": Float64, - } - ) - - @staticmethod - def get_lake_table_name(): - return "pdr_truevals" - - @staticmethod - def get_fetch_function() -> Callable: - # pylint: disable=import-outside-toplevel - from pdr_backend.subgraph.subgraph_trueval import ( - fetch_truevals, - ) - - return fetch_truevals - - -# ========================================================================= -# utilities for testing - - -@enforce_types -def mock_trueval(trueval_tuple: tuple) -> Trueval: - ( - ID, - timestamp, - token, - truevalue, - slot, - revenue, - roundSumStakesUp, - roundSumStakes, - ) = trueval_tuple - return Trueval( - ID=ID, - token=token, - truevalue=truevalue, - slot=UnixTimeS(slot), - timestamp=UnixTimeS(timestamp), - revenue=revenue, - roundSumStakesUp=roundSumStakesUp, - roundSumStakes=roundSumStakes, - ) - - -@enforce_types -def mock_truevals() -> List[Trueval]: - return [mock_trueval(trueval_tuple) for trueval_tuple in _TRUEVAL_TUPS] - - -_TRUEVAL_TUPS = [ - ( - "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838400", - 1696838400, # Oct 09 2023 - "ETH/USDT", - False, - 1696882021, - 0.919372744934776618, # revenue - 7.635901006590730052, # roundSumStakesUp - 17.728238320965607921, # roundSumStakes - ), - ( - "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838100", - 1696838100, - "ETH/USDT", - True, - 1696885995, - 0.919372744934776618, # revenue - 7.635901006590730052, # roundSumStakesUp - 17.728238320965607921, # roundSumStakes - ), - ( - "0x8165caab33131a4ddbf7dc79f0a8a4920b0b2553-1696838400", - 1696838400, - "ETH/USDT", - True, - 1696885995, - 0.919372744934776618, - 11.201148268567394458, - 25.423083432944667468, - ), - ( - "0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1696838100", - 1696838100, - "BTC/USDT", - False, - 1696885995, - 0.919372744934776618, - 11.201148268567394458, - 25.423083432944667468, - ), - ( - "0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1696838400", - 1696838400, - "BTC/USDT", - False, - 1696885995, - 0.919372744934776618, - 11.201148268567394458, - 25.423083432944667468, - ), - ( - "0xe66421fd29fc2d27d0724f161f01b8cbdcd69690-1696838700", - 1696838700, - "BTC/USDT", - True, - 1696885995, - 0.919372744934776618, - 11.201148268567394458, - 25.423083432944667468, - ), -] diff --git a/pdr_backend/ppss/ppss.py b/pdr_backend/ppss/ppss.py index 1882b7b40..615af8898 100644 --- a/pdr_backend/ppss/ppss.py +++ b/pdr_backend/ppss/ppss.py @@ -154,7 +154,6 @@ def mock_feed_ppss( exchange, pair, tmpdir=None, - pred_submitter_mgr: Optional[str] = None, ) -> Tuple[SubgraphFeed, PPSS]: feed = mock_feed(timeframe, exchange, pair) ppss = mock_ppss( @@ -165,7 +164,6 @@ def mock_feed_ppss( } ], tmpdir, - pred_submitter_mgr=pred_submitter_mgr, ) return (feed, ppss) @@ -176,7 +174,6 @@ def mock_ppss( tmpdir: Optional[str] = None, st_timestr: Optional[str] = "2023-06-18", fin_timestr: Optional[str] = "2023-06-21", - pred_submitter_mgr: Optional[str] = None, ) -> PPSS: yaml_str = fast_test_yaml_str(tmpdir) diff --git a/pdr_backend/ppss/test/test_ppss.py b/pdr_backend/ppss/test/test_ppss.py index ddcd4a437..472d3a25f 100644 --- a/pdr_backend/ppss/test/test_ppss.py +++ b/pdr_backend/ppss/test/test_ppss.py @@ -68,7 +68,7 @@ def test_mock_feed_ppss(): @enforce_types def test_mock_ppss_simple(): - ppss = mock_ppss(feedset_test_list()) + _ = mock_ppss(feedset_test_list()) @enforce_types diff --git a/pdr_backend/ppss/test/test_predictoor_ss.py b/pdr_backend/ppss/test/test_predictoor_ss.py index 8164c20bc..fbf9566fc 100644 --- a/pdr_backend/ppss/test/test_predictoor_ss.py +++ b/pdr_backend/ppss/test/test_predictoor_ss.py @@ -1,5 +1,4 @@ from enforce_typing import enforce_types -import pytest from pdr_backend.cli.arg_feed import ArgFeed from pdr_backend.ppss.predictoor_ss import PredictoorSS, predictoor_ss_test_dict diff --git a/pdr_backend/sim/sim_engine.py b/pdr_backend/sim/sim_engine.py index ed7b7c72e..8143ffdb1 100644 --- a/pdr_backend/sim/sim_engine.py +++ b/pdr_backend/sim/sim_engine.py @@ -1,13 +1,10 @@ import logging import os import uuid -from typing import Optional, Dict +from typing import Optional -import numpy as np import polars as pl from enforce_typing import enforce_types -from sklearn.metrics import log_loss, precision_recall_fscore_support -from statsmodels.stats.proportion import proportion_confint from pdr_backend.aimodel.aimodel import Aimodel from pdr_backend.aimodel.aimodel_data_factory import AimodelDataFactory @@ -20,7 +17,6 @@ from pdr_backend.ppss.ppss import PPSS from pdr_backend.sim.sim_trader import SimTrader from pdr_backend.sim.sim_state import SimState -from pdr_backend.util.strutil import shift_one_earlier from pdr_backend.util.time_types import UnixTimeMs logger = logging.getLogger("sim_engine") @@ -94,17 +90,14 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): data_f = AimodelDataFactory(pdr_ss) # type: ignore[arg-type] predict_feed = self.predict_train_feedset.predict train_feeds = self.predict_train_feedset.train_on - features = self.predict_train_feedset.ta_features # X, ycont, and x_df are all expressed in % change wrt prev candle - X, ytran, yraw, x_df, _ = data_f.create_xy( + X, ytran, yraw, _, _ = data_f.create_xy( mergedohlcv_df, testshift, predict_feed, train_feeds, - ta_features=features, ) - colnames = list(x_df.columns) st_, fin = 0, X.shape[0] - 1 X_train, X_test = X[st_:fin, :], X[fin : fin + 1, :] @@ -113,7 +106,6 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): cur_high, cur_low = data_f.get_highlow(mergedohlcv_df, predict_feed, testshift) cur_close = yraw[-2] - next_close = yraw[-1] if transform == "None": y_thr = cur_close @@ -155,9 +147,6 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): cur_low, ) - # observe true price - true_up = next_close > cur_close - # update state st.probs_up.append(prob_up) st.profits.append(profit) @@ -166,7 +155,7 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): self._log_line(test_i, ut) # save state - save_state, is_final_state = self.save_state(test_i, self.ppss.sim_ss.test_n) + self.save_state(test_i, self.ppss.sim_ss.test_n) def _log_line(self, test_i, ut): s = f"Iter #{test_i+1}/{self.ppss.sim_ss.test_n}" diff --git a/pdr_backend/sim/sim_state.py b/pdr_backend/sim/sim_state.py index 9ee70ae08..a373d625a 100644 --- a/pdr_backend/sim/sim_state.py +++ b/pdr_backend/sim/sim_state.py @@ -1,4 +1,4 @@ -from typing import Dict, List, Optional, Union +from typing import List, Optional, Union from enforce_typing import enforce_types diff --git a/pdr_backend/sim/test/test_sim_engine.py b/pdr_backend/sim/test/test_sim_engine.py index abe65b7b6..fba67e716 100644 --- a/pdr_backend/sim/test/test_sim_engine.py +++ b/pdr_backend/sim/test/test_sim_engine.py @@ -1,6 +1,5 @@ import os -import pytest from enforce_typing import enforce_types from pdr_backend.aimodel.aimodel import Aimodel diff --git a/pdr_backend/subgraph/subgraph_feed.py b/pdr_backend/subgraph/subgraph_feed.py index ec9ad6425..a0c595783 100644 --- a/pdr_backend/subgraph/subgraph_feed.py +++ b/pdr_backend/subgraph/subgraph_feed.py @@ -22,7 +22,6 @@ def __init__( address: str, # eg '0x123' symbol: str, # eg 'binance-BTC/USDT-5m' seconds_per_subscription: int, # eg 60 * 60 * 24 - trueval_submit_timeout: int, # eg 60 owner: str, # eg '0x456' pair: str, # eg 'BTC/USDT' timeframe: str, # eg '5m' @@ -32,7 +31,6 @@ def __init__( self.address: str = address self.symbol: str = symbol self.seconds_per_subscription: int = seconds_per_subscription - self.trueval_submit_timeout: int = trueval_submit_timeout self.owner: str = owner self.pair: str = pair.replace("-", "/") self.timeframe: str = timeframe @@ -94,7 +92,6 @@ def mock_feed(timeframe_str: str, exchange_str: str, pair_str: str) -> SubgraphF address=addr, symbol=f"SYM: {addr}", seconds_per_subscription=86400, - trueval_submit_timeout=60, owner="0xowner", pair=pair_str, timeframe=timeframe_str, diff --git a/pdr_backend/subgraph/test/test_subgraph_feed.py b/pdr_backend/subgraph/test/test_subgraph_feed.py index eda39f14e..f09c64f5d 100644 --- a/pdr_backend/subgraph/test/test_subgraph_feed.py +++ b/pdr_backend/subgraph/test/test_subgraph_feed.py @@ -21,7 +21,6 @@ def test_feed(): assert feed.address == "0x12345" assert feed.symbol == "SYM:TEST" assert feed.seconds_per_subscription == 60 - assert feed.trueval_submit_timeout == 15 assert feed.owner == "0xowner" assert feed.pair == "BTC/USDT" assert feed.timeframe == "5m" diff --git a/pdr_backend/util/test/test_util_constants.py b/pdr_backend/util/test/test_util_constants.py index c9bea8071..bd1a748e6 100644 --- a/pdr_backend/util/test/test_util_constants.py +++ b/pdr_backend/util/test/test_util_constants.py @@ -1,4 +1,3 @@ -import numpy as np from enforce_typing import enforce_types from pdr_backend.util.constants import ( From 1270ce0809d1f4f89f8fba0c19d236653d9d4dbb Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 16:46:56 +0100 Subject: [PATCH 08/44] fully remove ta features --- pdr_backend/aimodel/aimodel_data_factory.py | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/pdr_backend/aimodel/aimodel_data_factory.py b/pdr_backend/aimodel/aimodel_data_factory.py index 32d90c12a..561393700 100644 --- a/pdr_backend/aimodel/aimodel_data_factory.py +++ b/pdr_backend/aimodel/aimodel_data_factory.py @@ -1,3 +1,7 @@ +# +# Copyright 2024 Ocean Protocol Foundation +# SPDX-License-Identifier: Apache-2.0 +# import logging import sys from typing import List, Optional, Tuple @@ -112,8 +116,6 @@ def create_xy( x_dim_len = len(train_feeds_list) * ss.autoregressive_n diff = 0 if ss.transform == "None" else 1 - features: List[pd.Series] = [] - # main work xcol_list = [] # [col_i] : name_str x_list = [] # [col_i] : Series. Build this up. Not df here (slow) @@ -150,16 +152,6 @@ def create_xy( x_col = hist_col + f":(z(t-{ds1})-z(t-{ds11}))/z(t-{ds11})" xcol_list += [x_col] - for i, feature in enumerate(features): - assert type(feature) == pd.Series # type check for mypy - feature_np = list(feature.values) - features_shifted = pd.Series( - _slice(feature_np, -shift - N_train - 1, -shift) - ) - x_list += [features_shifted] - xrecent_list += [pd.Series(_slice(feature_np, -shift, -shift + 1))] - xcol_list.append(f"{feature.name}_t-{ds1}-{i}") - # convert x lists to dfs, all at once. Faster than building up df. assert len(x_list) == len(xrecent_list) == len(xcol_list) x_df = pd.concat(x_list, keys=xcol_list, axis=1) @@ -189,8 +181,7 @@ def create_xy( # postconditions assert X.shape[0] == yraw.shape[0] == ytran.shape[0] assert X.shape[0] <= (N_train + 1) - feature_dims = len(features) * len(train_feeds_list) * ss.autoregressive_n - assert X.shape[1] == x_dim_len + feature_dims + assert X.shape[1] == x_dim_len assert isinstance(x_df, pd.DataFrame) assert "timestamp" not in x_df.columns From 848c9c73c04a5aeb98b453e453eac1bd7c4fbd59 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 16:56:44 +0100 Subject: [PATCH 09/44] removing RelDiff transform --- pdr_backend/aimodel/aimodel_data_factory.py | 40 ++---- .../test/test_aimodel_data_factory_reldiff.py | 125 ------------------ .../test/test_aimodel_factory_pricedata.py | 45 +++---- pdr_backend/ppss/aimodel_data_ss.py | 22 --- pdr_backend/ppss/test/test_aimodel_data_ss.py | 16 --- pdr_backend/sim/sim_engine.py | 6 +- ppss.yaml | 1 - 7 files changed, 26 insertions(+), 229 deletions(-) delete mode 100644 pdr_backend/aimodel/test/test_aimodel_data_factory_reldiff.py diff --git a/pdr_backend/aimodel/aimodel_data_factory.py b/pdr_backend/aimodel/aimodel_data_factory.py index 561393700..5638bad54 100644 --- a/pdr_backend/aimodel/aimodel_data_factory.py +++ b/pdr_backend/aimodel/aimodel_data_factory.py @@ -32,18 +32,12 @@ class AimodelDataFactory: y -- 1d array of [sample_i]:value -- target outputs for model x_df -- *pandas* DataFrame. - If transform is "None", cols are like: + Cols are like: "binanceus:ETH-USDT:open:t-2", "binanceus:ETH-USDT:open:t-1", "binanceus:ETH-USDT:high:t-2", "binanceus:ETH-USDT:high:t-1", - or, if transform is "RelDiff", cols are like: - "binanceus:ETH-USDT:open:(z(t-2)-z(t-3))/z(t-3)", - "binanceus:ETH-USDT:open:(z(t-1)-z(t-2))/z(t-2)", - "binanceus:ETH-USDT:high:(z(t-2)-z(t-3))/z(t-3)", - "binanceus:ETH-USDT:high:(z(t-1)-z(t-2))/z(t-2)", - ... (no "timestamp" or "datetime" column) (and index = 0, 1, .. -- nothing special) @@ -80,8 +74,7 @@ def create_xy( @return X -- 2d array of [sample_i, var_i]:float -- model inputs - ytran -- 1d array of [sample_i]:float -- transformed regr outputs. Eg % chg - yraw -- 1d array of [sample_i]:float. Un-transformed outputs. Eg price + y -- 1d array of [sample_i]:float -- model outputs. Eg price x_df -- *pandas* DataFrame. See class docstring. xrecent -- [var_i]:value -- most recent X value. Bots use to predict """ @@ -114,7 +107,6 @@ def create_xy( ss = self.ss.aimodel_data_ss N_train = ss.max_n_train x_dim_len = len(train_feeds_list) * ss.autoregressive_n - diff = 0 if ss.transform == "None" else 1 # main work xcol_list = [] # [col_i] : name_str @@ -127,10 +119,7 @@ def create_xy( for hist_col in target_hist_cols: assert hist_col in mergedohlcv_df.columns, f"missing data col: {hist_col}" zraw_series = mergedohlcv_df[hist_col] - if diff == 0: - z = zraw_series.to_list() - else: - z = zraw_series.pct_change()[1:].to_list() + z = zraw_series.to_list() maxshift = testshift + ss.autoregressive_n if (maxshift + N_train) > len(z): s = "Too little data. To fix:" @@ -146,10 +135,7 @@ def create_xy( xrecent_list += [pd.Series(_slice(z, -shift, -shift + 1))] ds1, ds11 = delayshift + 1, delayshift + 1 + 1 - if diff == 0: - x_col = hist_col + f":z(t-{ds1})" - else: - x_col = hist_col + f":(z(t-{ds1})-z(t-{ds11}))/z(t-{ds11})" + x_col = hist_col + f":z(t-{ds1})" xcol_list += [x_col] # convert x lists to dfs, all at once. Faster than building up df. @@ -166,20 +152,12 @@ def create_xy( # y is set from yval_{exch_str, signal_str, pair_str} hist_col = hist_col_name(predict_feed) - yraw_series = mergedohlcv_df[hist_col] - yraw_list = yraw_series.to_list() - yraw = np.array(_slice(yraw_list, -testshift - N_train - 1, -testshift)) - assert X.shape[0] == yraw.shape[0] - - if diff == 0: - ytran = yraw - else: - ytran_list = yraw_series.pct_change()[1:].to_list() - ytran = np.array(_slice(ytran_list, -testshift - N_train - 1, -testshift)) - assert X.shape[0] == ytran.shape[0] + y_series = mergedohlcv_df[hist_col] + y_list = y_series.to_list() + y = np.array(_slice(y_list, -testshift - N_train - 1, -testshift)) # postconditions - assert X.shape[0] == yraw.shape[0] == ytran.shape[0] + assert X.shape[0] == y.shape[0] assert X.shape[0] <= (N_train + 1) assert X.shape[1] == x_dim_len assert isinstance(x_df, pd.DataFrame) @@ -191,7 +169,7 @@ def create_xy( logger.debug("Create model X/y data: done.") # return - return X, ytran, yraw, x_df, xrecent + return X, y, x_df, xrecent def get_highlow( self, mergedohlcv_df: pl.DataFrame, feed: ArgFeed, testshift: int diff --git a/pdr_backend/aimodel/test/test_aimodel_data_factory_reldiff.py b/pdr_backend/aimodel/test/test_aimodel_data_factory_reldiff.py deleted file mode 100644 index d3420a7fe..000000000 --- a/pdr_backend/aimodel/test/test_aimodel_data_factory_reldiff.py +++ /dev/null @@ -1,125 +0,0 @@ -from enforce_typing import enforce_types -import numpy as np -from numpy.testing import assert_array_equal, assert_allclose -import pandas as pd -import polars as pl - -from pdr_backend.aimodel.aimodel_data_factory import AimodelDataFactory -from pdr_backend.util.mathutil import has_nan -from pdr_backend.ppss.aimodel_data_ss import aimodel_data_ss_test_dict -from pdr_backend.ppss.predictoor_ss import ( - PredictoorSS, - predictoor_ss_test_dict, -) - - -@enforce_types -def test_create_xy__reldiff(): - # pylint: disable=too-many-statements - # create predictoor_ss - feedset_list = [ - { - "predict": "binanceus ETH/USDT c 5m", - "train_on": "binanceus ETH/USDT c 5m", - } - ] - d = predictoor_ss_test_dict( - feedset_list=feedset_list, - aimodel_data_ss_dict=aimodel_data_ss_test_dict( - max_n_train=4, - autoregressive_n=2, - transform="RelDiff", - ), - ) - predictoor_ss = PredictoorSS(d) - - # create df - timestamps = [1, 2, 3, 4, 5, 6, 7, 8, 9] - # t-10 t-9 t-8 t-7 t-6 t-5 t-4 t-3 t-2 - vals = [5.5, 3.0, 4.4, 3.6, 8.6, 9.7, 0.5, 0.1, 1.1] - mergedohlcv_df = pl.DataFrame( - { - # every column is ordered from youngest to oldest - "timestamp": timestamps, # not used by AimodelDataFactory - "binanceus:ETH/USDT:close": vals, - } - ) - - # set z_d1_rel -- the main data - z_d1_abs = np.array(vals[1:]) - np.array(vals[:-1]) - z_d1_rel = z_d1_abs / np.array(vals[:-1]) - assert z_d1_abs[-1] == 1.1 - 0.1 - assert z_d1_rel[-1] == (1.1 - 0.1) / (0.1) - - # set target X,y - target_x_df = pd.DataFrame( - { - "binanceus:ETH/USDT:close:(z(t-3)-z(t-4))/z(t-4)": z_d1_rel[-7:-2], - "binanceus:ETH/USDT:close:(z(t-2)-z(t-3))/z(t-3)": z_d1_rel[-6:-1], - } - ) - target_X = target_x_df.to_numpy() - assert target_X.shape == (4 + 1, 2) # (max_n_train + 1, num_cols) - - target_xrecent = np.array(z_d1_rel[-2:]) - target_ytran = np.array(z_d1_rel[-5:]) # oldest to newest - target_yraw = np.array(vals[-5:]) # "" - assert len(target_ytran) == 4 + 1 # max_n_train + 1 - assert len(target_yraw) == 4 + 1 # "" - - ### for testshift=0, do work - testshift = 0 - factory = AimodelDataFactory(predictoor_ss) - predict_feed = predictoor_ss.predict_train_feedsets[0].predict - train_feeds = predictoor_ss.predict_train_feedsets[0].train_on - X, ytran, yraw, x_df, xrecent = factory.create_xy( - mergedohlcv_df, - testshift, - predict_feed, - train_feeds, - ) - - ### for testshift=0, see results - # all but 1 are for training, then the +1 is for testing - assert X.shape[0] == (predictoor_ss.aimodel_data_ss.max_n_train + 1) - assert X.shape[0] == ytran.shape[0] == yraw.shape[0] - assert len(x_df) == X.shape[0] - - assert not has_nan(X) - assert not has_nan(ytran) and not has_nan(yraw) - assert not has_nan(xrecent) - - assert_allclose(X, target_X) - assert_array_equal(ytran, target_ytran) - assert_array_equal(yraw, target_yraw) - assert all(x_df.columns == target_x_df.columns) - assert_allclose(x_df.to_numpy(), target_x_df.to_numpy()) - assert str(x_df) == str(target_x_df) - assert_allclose(xrecent, target_xrecent) - - ### for testshift=1, do work - testshift = 1 - X2, ytran2, yraw2, x_df2, xrecent2 = factory.create_xy( - mergedohlcv_df, - testshift, - predict_feed, - train_feeds, - ) - - ### for testshift=1, see results - # all but 1 are for training, then the +1 is for testing - assert X2.shape[0] == (predictoor_ss.aimodel_data_ss.max_n_train + 1) - assert X2.shape[0] == ytran2.shape[0] == yraw2.shape[0] - assert len(x_df2) == X2.shape[0] - - assert not has_nan(X2) - assert not has_nan(ytran2) and not has_nan(yraw2) - assert not has_nan(xrecent2) - - assert X2[-1, 0] == X[-1 - 1, 0] - assert ytran2[-1] == ytran[-1 - 1] - assert yraw2[-1] == yraw[-1 - 1] - assert all(x_df.columns == x_df2.columns) - col0 = x_df2.columns[0] - assert x_df2[col0][4] == x_df[col0][3] - assert xrecent2[1] == xrecent[0] diff --git a/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py b/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py index 3342014a8..6b4908a5a 100644 --- a/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py +++ b/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py @@ -23,19 +23,17 @@ @enforce_types @pytest.mark.parametrize( - "approach,autoregr_n,transform", + "approach,autoregr_n", [ - ("ClassifLinearRidge", 1, "None"), - ("ClassifLinearRidge", 2, "None"), - ("ClassifLinearRidge", 2, "RelDiff"), - ("RegrLinearRidge", 1, "None"), - ("RegrLinearRidge", 2, "None"), - ("RegrLinearRidge", 2, "RelDiff"), + ("ClassifLinearRidge", 1), + ("ClassifLinearRidge", 2), + ("RegrLinearRidge", 1), + ("RegrLinearRidge", 2), ], ) -def test_aimodel_prices_static(approach: str, autoregr_n: int, transform: str): +def test_aimodel_prices_static(approach: str, autoregr_n: int): max_n_train = 200 # 5000 for manual testing - pdr_ss = _get_predictoor_ss(approach, autoregr_n, max_n_train, transform) + pdr_ss = _get_predictoor_ss(approach, autoregr_n, max_n_train) mergedohlcv_df = _get_btc_data() # create X, y, x_df @@ -49,7 +47,7 @@ def test_aimodel_prices_static(approach: str, autoregr_n: int, transform: str): predict_feed, train_feeds, ) - _assert_cols_ok(x_df, autoregr_n, transform) + _assert_cols_ok(x_df, autoregr_n) # create train/test data N_train = max_n_train - 100 @@ -81,9 +79,7 @@ def test_aimodel_prices_static(approach: str, autoregr_n: int, transform: str): assert sum(imps) == approx(1.0, 0.01) -@enforce_types -@pytest.mark.parametrize("transform", ["None", "RelDiff"]) -def test_aimodel_prices_dynamic(transform: str): +def test_aimodel_prices_dynamic(): autoregr_n = 2 max_n_train = 1000 sim_test_n = 200 @@ -93,7 +89,6 @@ def test_aimodel_prices_dynamic(transform: str): yerr = _run_one_iter( autoregr_n, max_n_train, - transform, sim_test_n, test_i, ) @@ -101,13 +96,13 @@ def test_aimodel_prices_dynamic(transform: str): @enforce_types -def _run_one_iter(autoregr_n, max_n_train, transform, sim_test_n, test_i) -> float: +def _run_one_iter(autoregr_n, max_n_train, sim_test_n, test_i) -> float: """@return -- yerr""" mergedohlcv_df = _get_btc_data() # mimic sim_engine::run_one_iter() approach = "RegrLinearRidge" - pdr_ss = _get_predictoor_ss(approach, autoregr_n, max_n_train, transform) + pdr_ss = _get_predictoor_ss(approach, autoregr_n, max_n_train) testshift = sim_test_n - test_i - 1 # eg [99, 98, .., 2, 1, 0] data_f = AimodelDataFactory(pdr_ss) @@ -160,21 +155,15 @@ def _run_one_iter(autoregr_n, max_n_train, transform, sim_test_n, test_i) -> flo @enforce_types -def _assert_cols_ok(x_df, autoregr_n: int, transform: str): +def _assert_cols_ok(x_df, autoregr_n: int): assert len(x_df.columns) == autoregr_n if autoregr_n != 2: return - if transform == "None": - target_x_df_columns = [ - "binanceus:BTC/USDT:close:z(t-3)", - "binanceus:BTC/USDT:close:z(t-2)", - ] - else: - target_x_df_columns = [ - "binanceus:BTC/USDT:close:(z(t-3)-z(t-4))/z(t-4)", - "binanceus:BTC/USDT:close:(z(t-2)-z(t-3))/z(t-3)", - ] + target_x_df_columns = [ + "binanceus:BTC/USDT:close:z(t-3)", + "binanceus:BTC/USDT:close:z(t-2)", + ] assert list(x_df.columns) == target_x_df_columns @@ -183,7 +172,6 @@ def _get_predictoor_ss( approach: str, autoregr_n: int, max_n_train: int, - transform: str, ) -> PredictoorSS: feedset_list = [ { @@ -196,7 +184,6 @@ def _get_predictoor_ss( aimodel_data_ss_dict=aimodel_data_ss_test_dict( max_n_train=max_n_train, autoregressive_n=autoregr_n, - transform=transform, ), aimodel_ss_dict=aimodel_ss_test_dict( approach=approach, diff --git a/pdr_backend/ppss/aimodel_data_ss.py b/pdr_backend/ppss/aimodel_data_ss.py index c4e72f1ce..a1eddde7d 100644 --- a/pdr_backend/ppss/aimodel_data_ss.py +++ b/pdr_backend/ppss/aimodel_data_ss.py @@ -5,11 +5,6 @@ from pdr_backend.util.strutil import StrMixin -TRANSFORM_OPTIONS = [ - "None", - "RelDiff", -] - class AimodelDataSS(StrMixin): __STR_OBJDIR__ = ["d"] @@ -22,7 +17,6 @@ def __init__(self, d: dict): # test inputs self.validate_max_n_train(self.max_n_train) self.validate_autoregressive_n(self.autoregressive_n) - self.validate_transform(self.transform) # -------------------------------- # validators @@ -36,11 +30,6 @@ def validate_autoregressive_n(autoregressive_n: int): if not 0 < autoregressive_n < np.inf: raise ValueError(autoregressive_n) - @staticmethod - def validate_transform(transform: str): - if transform not in TRANSFORM_OPTIONS: - raise ValueError(transform) - # -------------------------------- # yaml properties @@ -59,11 +48,6 @@ def autoregressive_n(self) -> int: """ return self.d["autoregressive_n"] - @property - def transform(self) -> str: - """eg 'RelDiff'""" - return self.d["transform"] - # -------------------------------- # setters def set_max_n_train(self, max_n_train: int): @@ -74,10 +58,6 @@ def set_autoregressive_n(self, autoregressive_n: int): self.validate_autoregressive_n(autoregressive_n) self.d["autoregressive_n"] = autoregressive_n - def set_transform(self, transform: str): - self.validate_transform(transform) - self.d["transform"] = transform - # ========================================================================= # utilities for testing @@ -87,12 +67,10 @@ def set_transform(self, transform: str): def aimodel_data_ss_test_dict( max_n_train: Optional[int] = None, autoregressive_n: Optional[int] = None, - transform: Optional[str] = None, ) -> dict: """Use this function's return dict 'd' to construct AimodelDataSS(d)""" d = { "max_n_train": 7 if max_n_train is None else max_n_train, "autoregressive_n": 3 if autoregressive_n is None else autoregressive_n, - "transform": transform or "None", } return d diff --git a/pdr_backend/ppss/test/test_aimodel_data_ss.py b/pdr_backend/ppss/test/test_aimodel_data_ss.py index ecf11c147..7d7fc6acb 100644 --- a/pdr_backend/ppss/test/test_aimodel_data_ss.py +++ b/pdr_backend/ppss/test/test_aimodel_data_ss.py @@ -15,7 +15,6 @@ def test_aimodel_data_ss__default_values(): assert ss.max_n_train == d["max_n_train"] == 7 assert ss.autoregressive_n == d["autoregressive_n"] == 3 - assert ss.transform == d["transform"] == "None" # str assert "AimodelDataSS" in str(ss) @@ -33,9 +32,6 @@ def test_aimodel_data_ss__nondefault_values(): ss = AimodelDataSS(aimodel_data_ss_test_dict(autoregressive_n=13)) assert ss.autoregressive_n == 13 - ss = AimodelDataSS(aimodel_data_ss_test_dict(transform="RelDiff")) - assert ss.transform == "RelDiff" - @enforce_types def test_aimodel_data_ss__bad_inputs(): @@ -54,12 +50,6 @@ def test_aimodel_data_ss__bad_inputs(): with pytest.raises(TypeError): AimodelDataSS(aimodel_data_ss_test_dict(autoregressive_n=np.inf)) - with pytest.raises(ValueError): - AimodelDataSS(aimodel_data_ss_test_dict(transform="foo")) - - with pytest.raises(TypeError): - AimodelDataSS(aimodel_data_ss_test_dict(transform=3.1)) - @enforce_types def test_aimodel_data_ss__setters(): @@ -81,9 +71,3 @@ def test_aimodel_data_ss__setters(): ss.set_autoregressive_n(0) with pytest.raises(ValueError): ss.set_autoregressive_n(-5) - - # transform - ss.set_transform("RelDiff") - assert ss.transform == "RelDiff" - with pytest.raises(ValueError): - ss.set_transform("foo") diff --git a/pdr_backend/sim/sim_engine.py b/pdr_backend/sim/sim_engine.py index 8143ffdb1..2ab5f2884 100644 --- a/pdr_backend/sim/sim_engine.py +++ b/pdr_backend/sim/sim_engine.py @@ -84,7 +84,6 @@ def run(self, mergedohlcv_df: Optional[pl.DataFrame] = None): @enforce_types def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): ppss, pdr_ss, st = self.ppss, self.ppss.predictoor_ss, self.st - transform = pdr_ss.aimodel_data_ss.transform testshift = ppss.sim_ss.test_n - test_i - 1 # eg [99, 98, .., 2, 1, 0] data_f = AimodelDataFactory(pdr_ss) # type: ignore[arg-type] @@ -107,10 +106,7 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): cur_close = yraw[-2] - if transform == "None": - y_thr = cur_close - else: # transform = "RelDiff" - y_thr = 0.0 + y_thr = cur_close ytrue = ycont_to_ytrue(ytran, y_thr) ytrue_train, _ = ytrue[st_:fin], ytrue[fin : fin + 1] diff --git a/ppss.yaml b/ppss.yaml index 263d37961..37061d70c 100644 --- a/ppss.yaml +++ b/ppss.yaml @@ -29,7 +29,6 @@ predictoor_ss: aimodel_data_ss: # used by AimodelDataFactory max_n_train: 5700 # ************ no. epochs to train model on. For 5m: 30d->8850ep, 20d->5700ep, 10d->2850ep, 1d->285ep autoregressive_n: 12 # ************ no. epochs that model looks back, to predict next. For 5m: 1h->12ep, 4h->48ep, 8h->96ep, 24h->288ep. "spot a pattern" - transform: None # ************ None -> raw value of signal; RelDiff -> rel % diff aimodel_ss: # used by AimodelFactory approach: ClassifLinearRidge # ClassifLinearLasso | ClassifLinearLasso_Balanced | ClassifLinearRidge | ClassifLinearRidge_Balanced | ClassifLinearElasticNet | ClassifLinearElasticNet_Balanced | ClassifLinearSVM | ClassifGaussianProcess | ClassifXgboost | ClassifConstant | RegrLinearLS | RegrLinearLasso | RegrLinearRidge | RegrLinearElasticNet | RegrGaussianProcess | RegrXgboost | RegrConstant From d05f64633b4f60b9bd00b6217dabebb4c360c0f5 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 17:22:09 +0100 Subject: [PATCH 10/44] more pruned; pytest & black passing --- .../test_aimodel_data_factory_corner_cases.py | 4 +- .../test/test_aimodel_data_factory_main.py | 10 +- .../test/test_aimodel_factory_pricedata.py | 213 - pdr_backend/cli/test/test_arg_feed.py | 23 +- pdr_backend/cli/test/test_arg_feeds.py | 13 - pdr_backend/lake/test/resources2_btc.py | 5062 ----------------- pdr_backend/ppss/base_ss.py | 38 - pdr_backend/ppss/ppss.py | 21 - pdr_backend/ppss/predictoor_ss.py | 35 - pdr_backend/ppss/test/test_base_ss.py | 189 - pdr_backend/ppss/test/test_ppss.py | 14 - pdr_backend/sim/sim_engine.py | 10 +- pdr_backend/subgraph/subgraph_feed.py | 100 - .../subgraph/test/test_subgraph_feed.py | 81 - 14 files changed, 13 insertions(+), 5800 deletions(-) delete mode 100644 pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py delete mode 100644 pdr_backend/lake/test/resources2_btc.py delete mode 100644 pdr_backend/subgraph/subgraph_feed.py delete mode 100644 pdr_backend/subgraph/test/test_subgraph_feed.py diff --git a/pdr_backend/aimodel/test/test_aimodel_data_factory_corner_cases.py b/pdr_backend/aimodel/test/test_aimodel_data_factory_corner_cases.py index f6d670902..0e71de637 100644 --- a/pdr_backend/aimodel/test/test_aimodel_data_factory_corner_cases.py +++ b/pdr_backend/aimodel/test/test_aimodel_data_factory_corner_cases.py @@ -99,7 +99,7 @@ def test_create_xy_reg__handle_nan(): assert not has_nan(mergedohlcv_df2) # nan approach 2: explicitly tell create_xy to fill nans - X, y, _, x_df, _ = factory.create_xy( + X, y, x_df, _ = factory.create_xy( mergedohlcv_df, testshift, predict_feed, @@ -108,7 +108,7 @@ def test_create_xy_reg__handle_nan(): assert not has_nan(X) and not has_nan(y) and not has_nan(x_df) # nan approach 3: create_xy fills nans by default (best) - X, y, _, x_df, _ = factory.create_xy( + X, y, x_df, _ = factory.create_xy( mergedohlcv_df, testshift, predict_feed, diff --git a/pdr_backend/aimodel/test/test_aimodel_data_factory_main.py b/pdr_backend/aimodel/test/test_aimodel_data_factory_main.py index 995cc8809..43621cc60 100644 --- a/pdr_backend/aimodel/test/test_aimodel_data_factory_main.py +++ b/pdr_backend/aimodel/test/test_aimodel_data_factory_main.py @@ -80,7 +80,7 @@ def test_create_xy_notransform_main(): factory = AimodelDataFactory(predictoor_ss) predict_feed = predictoor_ss.predict_train_feedsets[0].predict train_feeds = predictoor_ss.predict_train_feedsets[0].train_on - X, y, _, x_df, xrecent = factory.create_xy( + X, y, x_df, xrecent = factory.create_xy( mergedohlcv_df, testshift, predict_feed, @@ -155,7 +155,7 @@ def test_create_xy_notransform__1exchange_1coin_1signal(): target_xrecent = np.array([3.0, 2.0, 1.0]) testshift = 0 - X, y, _, x_df, xrecent = aimodel_data_factory.create_xy( + X, y, x_df, xrecent = aimodel_data_factory.create_xy( mergedohlcv_df, testshift, predict_feed, @@ -221,7 +221,7 @@ def test_create_xy_notransform__1exchange_1coin_1signal(): target_xrecent = np.array([4.0, 3.0, 2.0]) testshift = 1 - X, y, _, x_df, xrecent = aimodel_data_factory.create_xy( + X, y, x_df, xrecent = aimodel_data_factory.create_xy( mergedohlcv_df, testshift, predict_feed, @@ -258,7 +258,7 @@ def test_create_xy_notransform__1exchange_1coin_1signal(): predictoor_ss.aimodel_data_ss.d["max_n_train"] = 5 testshift = 0 - X, y, _, x_df, _ = aimodel_data_factory.create_xy( + X, y, x_df, _ = aimodel_data_factory.create_xy( mergedohlcv_df, testshift, predict_feed, @@ -306,7 +306,7 @@ def test_create_xy_notransform__2exchanges_2coins_2signals(): predict_feed = predictoor_ss.predict_train_feedsets[0].predict train_feeds = predictoor_ss.predict_train_feedsets[0].train_on assert len(train_feeds) == 8 - X, y, _, x_df, _ = aimodel_data_factory.create_xy( + X, y, x_df, _ = aimodel_data_factory.create_xy( mergedohlcv_df, testshift, predict_feed, diff --git a/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py b/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py deleted file mode 100644 index 6b4908a5a..000000000 --- a/pdr_backend/aimodel/test/test_aimodel_factory_pricedata.py +++ /dev/null @@ -1,213 +0,0 @@ -from enforce_typing import enforce_types -import pytest -from pytest import approx - -from pdr_backend.aimodel.aimodel_data_factory import AimodelDataFactory -from pdr_backend.aimodel.aimodel_factory import AimodelFactory -from pdr_backend.aimodel.ycont_to_ytrue import ycont_to_ytrue -from pdr_backend.lake.merge_df import merge_rawohlcv_dfs -from pdr_backend.lake.test.resources import _df_from_raw_data -from pdr_backend.lake.test.resources2_btc import get_large_BINANCE_BTC_DATA -from pdr_backend.ppss.aimodel_data_ss import aimodel_data_ss_test_dict -from pdr_backend.ppss.aimodel_ss import aimodel_ss_test_dict -from pdr_backend.ppss.predictoor_ss import ( - PredictoorSS, - predictoor_ss_test_dict, -) -from pdr_backend.statutil.scoring import classif_acc - - -# run a single test below with e.g. -# pytest pdr_backend/aimodel/test/test_aimodel_factory_btc.py::test_aimodel_btc_static[ClassifLinearRidge-1] # pylint: disable=line-too-long - - -@enforce_types -@pytest.mark.parametrize( - "approach,autoregr_n", - [ - ("ClassifLinearRidge", 1), - ("ClassifLinearRidge", 2), - ("RegrLinearRidge", 1), - ("RegrLinearRidge", 2), - ], -) -def test_aimodel_prices_static(approach: str, autoregr_n: int): - max_n_train = 200 # 5000 for manual testing - pdr_ss = _get_predictoor_ss(approach, autoregr_n, max_n_train) - mergedohlcv_df = _get_btc_data() - - # create X, y, x_df - data_f = AimodelDataFactory(pdr_ss) - testshift = 0 - predict_feed = pdr_ss.predict_train_feedsets[0].predict - train_feeds = pdr_ss.predict_train_feedsets[0].train_on - X, ytran, _, x_df, _ = data_f.create_xy( - mergedohlcv_df, - testshift, - predict_feed, - train_feeds, - ) - _assert_cols_ok(x_df, autoregr_n) - - # create train/test data - N_train = max_n_train - 100 - X_train, X_test = X[:N_train, :], X[N_train:, :] - ytran_train, _ = ytran[:N_train], ytran[N_train:] - y_thr = 0.0 # always 0.0 when modeling % change - ytrue = ycont_to_ytrue(ytran, y_thr) - ytrue_train, ytrue_test = ytrue[:N_train], ytrue[N_train:] - - # build model - model_factory = AimodelFactory(pdr_ss.aimodel_ss) - model = model_factory.build(X_train, ytrue_train, ytran_train, y_thr) - - # test model response - ytrue_train_hat = model.predict_true(X_train) - ytrue_test_hat = model.predict_true(X_test) - train_acc = classif_acc(ytrue_train_hat, ytrue_train) - test_acc = classif_acc(ytrue_test_hat, ytrue_test) - assert 0.0 <= train_acc <= 1.0 # very loose - assert 0.0 <= test_acc <= 1.0 # "" - # print(f"train_acc={train_acc:.3f}, test_acc={test_acc:.3f}") - - _ = model.predict_ptrue(X) - if model.do_regr: - _ = model.predict_ycont(X) - - # test variable importances - imps = model.importance_per_var() - assert sum(imps) == approx(1.0, 0.01) - - -def test_aimodel_prices_dynamic(): - autoregr_n = 2 - max_n_train = 1000 - sim_test_n = 200 - yerrs = [] - for test_i in range(sim_test_n): - # print(f"Iter #{test_i+1}/{sim_test_n}") - yerr = _run_one_iter( - autoregr_n, - max_n_train, - sim_test_n, - test_i, - ) - yerrs.append(yerr) - - -@enforce_types -def _run_one_iter(autoregr_n, max_n_train, sim_test_n, test_i) -> float: - """@return -- yerr""" - mergedohlcv_df = _get_btc_data() - - # mimic sim_engine::run_one_iter() - approach = "RegrLinearRidge" - pdr_ss = _get_predictoor_ss(approach, autoregr_n, max_n_train) - - testshift = sim_test_n - test_i - 1 # eg [99, 98, .., 2, 1, 0] - data_f = AimodelDataFactory(pdr_ss) - predict_feed = pdr_ss.predict_train_feedsets[0].predict - train_feeds = pdr_ss.predict_train_feedsets[0].train_on - - # X, ytran, and x_df are all expressed in % change wrt prev candle - X, ytran, ysignal, _, _ = data_f.create_xy( - mergedohlcv_df, - testshift, - predict_feed, - train_feeds, - ) - - st_, fin = 0, X.shape[0] - 1 - X_train, X_test = X[st_:fin, :], X[fin : fin + 1, :] - ytran_train, _ = ytran[st_:fin], ytran[fin : fin + 1] - - curprice = ysignal[-2] - trueprice = ysignal[-1] - - y_thr = 0.0 # always 0.0 when modeling % change - ytrue = ycont_to_ytrue(ytran, y_thr) - ytrue_train, _ = ytrue[st_:fin], ytrue[fin : fin + 1] - - model_f = AimodelFactory(pdr_ss.aimodel_ss) - model = model_f.build(X_train, ytrue_train, ytran_train, y_thr) - - # predict price direction - prob_up: float = model.predict_ptrue(X_test)[0] # in [0.0, 1.0] - assert 0.0 <= prob_up <= 1.0 # very loose - - # update classifier metrics - assert model.do_regr - relchange = model.predict_ycont(X_test)[0] - predprice = curprice + relchange * curprice - yerr = trueprice - predprice - - s = f"prevprice={curprice:8.1f}" - s += f", true_change={(trueprice-curprice)/(curprice)*100:9.5f}%" - s += f", true_newprice={trueprice:8.1f}" - s += "||" - s += f" pred_change={relchange*100:9.5f}%" - s += f", pred_newprice={predprice:9.1f}" - s += "||" - s += f" pred_price_err={yerr:9.3f}" - print(s) - - return yerr - - -@enforce_types -def _assert_cols_ok(x_df, autoregr_n: int): - assert len(x_df.columns) == autoregr_n - if autoregr_n != 2: - return - - target_x_df_columns = [ - "binanceus:BTC/USDT:close:z(t-3)", - "binanceus:BTC/USDT:close:z(t-2)", - ] - assert list(x_df.columns) == target_x_df_columns - - -@enforce_types -def _get_predictoor_ss( - approach: str, - autoregr_n: int, - max_n_train: int, -) -> PredictoorSS: - feedset_list = [ - { - "predict": "binanceus BTC/USDT c 5m", - "train_on": "binanceus BTC/USDT c 5m", - }, - ] - d = predictoor_ss_test_dict( - feedset_list=feedset_list, - aimodel_data_ss_dict=aimodel_data_ss_test_dict( - max_n_train=max_n_train, - autoregressive_n=autoregr_n, - ), - aimodel_ss_dict=aimodel_ss_test_dict( - approach=approach, - weight_recent="None", - balance_classes="None", - calibrate_probs="None", - calibrate_regr="None", - ), - ) - return PredictoorSS(d) - - -_mergedohlcv_df = None - - -@enforce_types -def _get_btc_data(): - global _mergedohlcv_df - if _mergedohlcv_df is not None: - return _mergedohlcv_df - rawohlcv_dfs = { - "binanceus": { - "BTC/USDT": _df_from_raw_data(get_large_BINANCE_BTC_DATA()), - }, - } - _mergedohlcv_df = merge_rawohlcv_dfs(rawohlcv_dfs) - return _mergedohlcv_df diff --git a/pdr_backend/cli/test/test_arg_feed.py b/pdr_backend/cli/test/test_arg_feed.py index 592ddb9cc..7739a0881 100644 --- a/pdr_backend/cli/test/test_arg_feed.py +++ b/pdr_backend/cli/test/test_arg_feed.py @@ -11,9 +11,7 @@ def test_ArgFeed_main_constructor(): ("binance", "open", "BTC/USDT"), ("kraken", "close", "BTC/DAI"), ("kraken", "close", "BTC-DAI"), - ("binance", "open", "BTC/USDT", "5m", "vb_201"), - ("binance", "open", "BTC/USDT", "5m", "tb_201"), - ("binance", "open", "BTC/USDT", "5m", "db_201.5"), + ("binance", "open", "BTC/USDT", "5m"), ] for feed_tup in tups: ArgFeed(*feed_tup) @@ -26,8 +24,6 @@ def test_ArgFeed_main_constructor(): ("binance", "xyz", "BTC/USDT"), ("binance", "open", "BTC/XYZ"), ("binance", "open"), - ("binance", "open", "BTC/USDT", "5m", "201"), - ("binance", "open", "BTC/USDT", "5m", "tb-201.5"), ] for feed_tup in tups: with pytest.raises(ValueError): @@ -53,15 +49,6 @@ def test_ArgFeed_from_str(): assert ArgFeed.from_str("binance BTC/USDT c 1h") == target_feed assert ArgFeed.from_str("binance BTC-USDT c 1h") == target_feed - target_feed = ArgFeed("binance", "close", "BTC/USDT", "1s", "vb_201") - assert ArgFeed.from_str("binance BTC/USDT c 1s vb_201") == target_feed - - target_feed = ArgFeed("binance", "close", "BTC/USDT", "1s", "tb_201") - assert ArgFeed.from_str("binance BTC/USDT c 1s tb_201") == target_feed - - target_feed = ArgFeed("binance", "close", "BTC/USDT", "1s", "db_201.5") - assert ArgFeed.from_str("binance BTC/USDT c 1s db_201.5") == target_feed - @enforce_types def test_ArgFeed_str(): @@ -76,11 +63,3 @@ def test_ArgFeed_str(): target_feed_str = "binance BTC/USDT 5m" assert str(ArgFeed("binance", None, "BTC/USDT", "5m")) == target_feed_str assert str(ArgFeed("binance", None, "BTC-USDT", "5m")) == target_feed_str - - target_feed_str = "binance BTC/USDT 5m vb_201" - assert str(ArgFeed("binance", None, "BTC/USDT", "5m", "vb_201")) == target_feed_str - assert str(ArgFeed("binance", None, "BTC-USDT", "5m", "vb_201")) == target_feed_str - - target_feed_str = "binance BTC/USDT 5m db_201" - assert str(ArgFeed("binance", None, "BTC/USDT", "5m", "db_201")) == target_feed_str - assert str(ArgFeed("binance", None, "BTC-USDT", "5m", "db_201")) == target_feed_str diff --git a/pdr_backend/cli/test/test_arg_feeds.py b/pdr_backend/cli/test/test_arg_feeds.py index 7d29b69f2..155d2e8ab 100644 --- a/pdr_backend/cli/test/test_arg_feeds.py +++ b/pdr_backend/cli/test/test_arg_feeds.py @@ -12,10 +12,6 @@ def test_ArgFeeds_from_str(): assert ArgFeeds.from_str("binance ADA/USDT o") == target_feeds assert ArgFeeds.from_str("binance ADA-USDT o") == target_feeds - # 1 feed with volume threshold - target_feeds = [ArgFeed("binance", None, "ADA/USDT", "1s", "vb_201")] - assert ArgFeeds.from_str("binance ADA/USDT 1s vb_201") == target_feeds - # >1 signal, so >1 feed target_feeds = [ ArgFeed("binance", "open", "ADA/USDT"), @@ -61,15 +57,6 @@ def test_ArgFeeds_from_str(): ) assert ArgFeeds.from_str("binance ADA/USDT,BTC/USDT oc 1h,5m") == target - # >1 volume threshold and >1 pair, so >1 feed - target = ArgFeeds( - [ - ArgFeed("binance", None, "ADA/USDT", "1s", "vb_20"), - ArgFeed("binance", None, "BTC/USDT", "1s", "vb_190"), - ] - ) - assert ArgFeeds.from_str("binance ADA/USDT,BTC/USDT 1s vb_20,vb_190") == target - # unhappy paths. Verify section has way more, this is just for baseline strs = [ "xyz ADA/USDT o", diff --git a/pdr_backend/lake/test/resources2_btc.py b/pdr_backend/lake/test/resources2_btc.py deleted file mode 100644 index 9e08f254e..000000000 --- a/pdr_backend/lake/test/resources2_btc.py +++ /dev/null @@ -1,5062 +0,0 @@ -def get_large_BINANCE_BTC_DATA() -> list: - # shaped like BINANCE_ETH_DATA, BINANCE_BTC_DATA, etc - y = BTC_history() - t0 = 1686805500000 - return [[t0 + i, yi, yi, yi, yi, 7.0] for i, yi in enumerate(y)] - - -def BTC_history() -> list: - """5050 historical values of BTC""" - # pylint: disable=too-many-lines - return [ - 69773.91, - 69890.69, - 69928.7, - 69994.98, - 69952.65, - 69938.29, - 69908.59, - 69986.13, - 69982.72, - 69971.64, - 70038.73, - 69959.79, - 69835.86, - 69865.3, - 69968.0, - 69946.0, - 69886.19, - 69835.91, - 69794.92, - 69650.0, - 69428.53, - 69316.3, - 69368.67, - 69399.34, - 69179.35, - 69418.14, - 69296.02, - 69169.05, - 68682.0, - 68774.01, - 68166.89, - 68114.29, - 68036.14, - 67927.99, - 67843.99, - 68231.8, - 68115.77, - 67999.98, - 67880.01, - 67960.71, - 67994.25, - 67825.8, - 67700.01, - 67836.62, - 67748.63, - 67910.88, - 68094.0, - 68128.37, - 68102.48, - 68231.21, - 68212.18, - 68245.01, - 68227.01, - 68155.98, - 67966.83, - 68043.99, - 68076.0, - 68080.0, - 68107.22, - 67924.33, - 67891.0, - 67923.3, - 67987.89, - 68035.36, - 68112.63, - 68100.0, - 67881.99, - 67860.95, - 67822.78, - 67806.0, - 67941.01, - 67981.1, - 67938.01, - 68002.0, - 68069.29, - 68079.15, - 67933.98, - 67915.25, - 67825.99, - 67721.98, - 67639.25, - 67511.12, - 67360.35, - 67152.01, - 67048.51, - 66874.99, - 67042.01, - 67132.0, - 67269.97, - 67093.92, - 67199.79, - 67323.11, - 67393.06, - 67293.99, - 67390.59, - 67340.64, - 67341.62, - 67319.99, - 67442.74, - 67620.0, - 67607.85, - 67556.92, - 67437.74, - 67376.73, - 67199.98, - 66664.01, - 66921.13, - 66767.88, - 67364.02, - 67371.99, - 67490.0, - 67596.42, - 67584.0, - 67572.27, - 67680.0, - 67720.01, - 67802.89, - 67928.47, - 68280.0, - 67840.0, - 67597.1, - 67349.4, - 67433.99, - 67756.13, - 67524.46, - 67851.0, - 67903.44, - 68078.65, - 67992.77, - 67788.76, - 67741.28, - 67781.46, - 67734.26, - 67682.09, - 67631.04, - 67676.6, - 67637.85, - 67650.0, - 67566.1, - 67697.26, - 67686.47, - 67684.0, - 67629.76, - 67512.0, - 67564.83, - 67638.0, - 67686.34, - 67740.02, - 67695.99, - 67766.07, - 67903.57, - 67931.76, - 67969.65, - 67831.93, - 67749.14, - 67713.06, - 67772.51, - 67702.08, - 67766.12, - 67833.06, - 67958.0, - 67926.81, - 67914.9, - 67892.83, - 67852.0, - 67771.78, - 67719.99, - 67689.05, - 67660.92, - 67740.3, - 67706.66, - 67774.16, - 67747.1, - 67735.89, - 67764.97, - 67794.0, - 67742.01, - 67813.37, - 67776.0, - 67791.31, - 67814.71, - 67777.24, - 67737.99, - 67675.6, - 67694.0, - 67691.8, - 67754.02, - 67898.0, - 67978.37, - 68014.18, - 67931.99, - 67974.01, - 67923.81, - 67865.97, - 67911.13, - 67904.0, - 67936.01, - 67933.98, - 67900.01, - 67855.02, - 67891.83, - 67876.9, - 67854.66, - 67875.99, - 67780.01, - 67773.17, - 67746.74, - 67697.28, - 67671.53, - 67681.03, - 67708.05, - 67710.03, - 67708.23, - 67590.0, - 67609.52, - 67616.28, - 67574.74, - 67561.39, - 67420.0, - 67371.0, - 67262.01, - 67223.26, - 67269.99, - 67327.99, - 67299.99, - 67268.57, - 67493.32, - 67592.0, - 67550.78, - 67438.9, - 67154.55, - 67249.74, - 67262.33, - 67216.0, - 67134.0, - 67032.0, - 66887.01, - 66927.37, - 66992.92, - 67082.99, - 67162.0, - 67208.21, - 67249.4, - 67188.1, - 67143.05, - 66991.86, - 67024.33, - 67031.77, - 67155.93, - 67152.16, - 67116.61, - 67001.0, - 66873.98, - 66826.36, - 66698.77, - 66841.39, - 66979.9, - 67090.79, - 67130.0, - 67157.46, - 67190.15, - 67218.48, - 67145.72, - 67176.12, - 67200.18, - 67096.0, - 67145.84, - 67266.01, - 67288.47, - 67314.01, - 67312.51, - 67344.57, - 67375.26, - 67438.76, - 67397.28, - 67396.26, - 67383.22, - 67347.54, - 67404.59, - 67381.24, - 67377.29, - 67518.02, - 67445.07, - 67405.19, - 67353.43, - 67389.05, - 67442.01, - 67459.38, - 67450.0, - 67414.19, - 67342.55, - 67363.4, - 67336.0, - 67307.88, - 67317.99, - 67379.29, - 67349.99, - 67361.39, - 67449.1, - 67478.99, - 67467.98, - 67499.0, - 67412.14, - 67421.76, - 67399.98, - 67422.21, - 67421.67, - 67509.98, - 67490.0, - 67525.56, - 67389.9, - 67316.35, - 67292.59, - 67336.15, - 67410.02, - 67420.43, - 67260.09, - 67344.6, - 67209.99, - 66954.0, - 67077.12, - 67125.74, - 67099.49, - 67198.47, - 67307.35, - 67609.16, - 67805.01, - 67937.63, - 67889.66, - 67731.99, - 67754.2, - 67888.0, - 67869.48, - 68157.17, - 68197.93, - 68194.46, - 68419.99, - 68248.17, - 68219.44, - 68368.26, - 68196.63, - 68182.95, - 68281.7, - 68242.4, - 68326.46, - 68290.28, - 68194.0, - 68066.54, - 68166.01, - 68075.65, - 68112.12, - 68246.84, - 68130.01, - 68246.27, - 68268.29, - 68390.01, - 68394.33, - 68565.61, - 68500.0, - 68516.22, - 68600.0, - 68618.19, - 68555.98, - 68725.99, - 68717.13, - 68707.1, - 68661.31, - 68773.72, - 68919.02, - 69015.68, - 69127.98, - 69143.0, - 69184.6, - 69028.81, - 69080.07, - 68908.38, - 68961.56, - 68996.01, - 68991.55, - 68936.01, - 68970.43, - 68875.81, - 68783.56, - 68834.0, - 68963.75, - 68989.99, - 68876.01, - 68928.0, - 68944.0, - 68925.0, - 68932.9, - 69030.0, - 69115.98, - 69087.78, - 69165.89, - 69080.0, - 68962.39, - 68934.67, - 68924.99, - 68911.59, - 68906.11, - 68988.36, - 68999.29, - 69004.89, - 68836.96, - 68897.99, - 68938.0, - 68860.02, - 68906.01, - 68816.56, - 68800.5, - 68911.31, - 68923.99, - 68876.71, - 68873.95, - 68853.36, - 68876.0, - 68840.01, - 68813.94, - 68799.22, - 68772.0, - 68765.61, - 68763.47, - 68790.01, - 68807.99, - 68818.2, - 68719.99, - 68753.68, - 68787.99, - 68767.92, - 68727.61, - 68747.83, - 68711.56, - 68712.61, - 68677.22, - 68627.99, - 68643.12, - 68616.75, - 68573.88, - 68534.99, - 68549.99, - 68562.39, - 68595.59, - 68660.7, - 68660.01, - 68635.29, - 68643.06, - 68600.33, - 68602.73, - 68585.88, - 68611.91, - 68574.01, - 68530.89, - 68574.83, - 68642.75, - 68620.0, - 68652.79, - 68667.03, - 68695.14, - 68679.8, - 68625.84, - 68662.98, - 68653.4, - 68650.06, - 68613.46, - 68653.39, - 68637.19, - 68714.99, - 68744.55, - 68788.0, - 68757.17, - 68760.01, - 68704.01, - 68708.63, - 68754.99, - 68775.99, - 68817.22, - 68900.01, - 68765.63, - 68728.61, - 68709.39, - 68696.85, - 68717.94, - 68732.01, - 68724.79, - 68706.99, - 68734.24, - 68800.01, - 68757.85, - 68743.8, - 68783.29, - 68761.83, - 68775.04, - 68734.12, - 68728.01, - 68754.0, - 68792.59, - 68756.71, - 68780.65, - 68760.07, - 68784.37, - 68773.49, - 68759.0, - 68760.73, - 68786.72, - 68755.11, - 68785.86, - 68788.76, - 68725.41, - 68703.99, - 68722.79, - 68722.79, - 68718.21, - 68719.63, - 68746.4, - 68715.35, - 68684.01, - 68690.82, - 68699.99, - 68625.91, - 68649.99, - 68650.0, - 68668.41, - 68645.95, - 68660.4, - 68639.69, - 68661.88, - 68661.88, - 68653.19, - 68715.99, - 68780.6, - 68724.1, - 68704.0, - 68722.91, - 68721.76, - 68772.1, - 68753.92, - 68785.61, - 68789.99, - 68822.58, - 68938.72, - 68904.0, - 68936.01, - 68984.0, - 68921.14, - 68884.77, - 68844.1, - 68876.65, - 68876.69, - 68864.0, - 68891.59, - 68933.18, - 68992.0, - 69007.99, - 69072.01, - 69140.0, - 69077.34, - 69050.0, - 69041.5, - 69073.98, - 69095.27, - 69062.18, - 69050.25, - 69109.98, - 69090.0, - 69070.01, - 69044.01, - 69112.05, - 69114.0, - 69216.0, - 69399.0, - 69410.81, - 69387.99, - 69345.14, - 69433.36, - 69498.03, - 69499.05, - 69520.71, - 69544.41, - 69437.46, - 69426.58, - 69415.53, - 69363.9, - 69237.64, - 69104.67, - 69020.0, - 69087.99, - 69158.97, - 69241.41, - 69278.07, - 69219.41, - 69203.99, - 69217.41, - 69174.71, - 69112.7, - 69099.99, - 69116.3, - 69179.99, - 69194.99, - 69156.38, - 69182.34, - 69170.01, - 69232.4, - 69172.0, - 68987.11, - 69020.01, - 68948.68, - 69040.1, - 69025.98, - 69030.01, - 69050.0, - 68978.02, - 69028.23, - 69020.0, - 69019.99, - 69044.02, - 68995.29, - 69007.99, - 69041.73, - 69064.8, - 69021.65, - 69050.0, - 69130.01, - 69180.0, - 69141.59, - 69177.48, - 69116.89, - 69120.0, - 69092.62, - 69090.0, - 69037.0, - 68968.01, - 68930.4, - 68903.46, - 68928.02, - 68919.98, - 69003.46, - 68989.31, - 68988.1, - 68975.56, - 68970.88, - 68938.58, - 68940.52, - 68939.99, - 68936.62, - 68958.78, - 68951.61, - 68992.24, - 68964.0, - 69054.0, - 69014.0, - 68993.09, - 68998.79, - 69014.1, - 69029.19, - 69085.11, - 69065.14, - 69109.11, - 69167.98, - 69184.88, - 69233.27, - 69214.38, - 69185.63, - 69174.0, - 69157.74, - 69136.01, - 69182.94, - 69210.68, - 69213.2, - 69234.0, - 69215.06, - 69154.01, - 69168.0, - 69163.01, - 69167.76, - 69154.04, - 69127.19, - 69139.99, - 69132.47, - 69174.01, - 69155.32, - 69176.97, - 69189.65, - 69188.71, - 69166.81, - 69140.01, - 69099.23, - 69099.87, - 69089.7, - 69105.4, - 69119.69, - 69138.8, - 69100.01, - 69092.55, - 69081.55, - 69079.83, - 69088.61, - 69098.98, - 69162.16, - 69126.87, - 69126.86, - 69150.0, - 69100.0, - 69050.01, - 69139.01, - 69116.36, - 69124.01, - 69090.0, - 69090.02, - 69118.99, - 69060.11, - 69067.22, - 69092.8, - 69115.01, - 69113.51, - 69118.51, - 69129.0, - 69248.66, - 69316.17, - 69294.98, - 69286.65, - 69349.98, - 69344.0, - 69310.21, - 69288.31, - 69259.24, - 69249.74, - 69268.26, - 69290.57, - 69245.41, - 69234.58, - 69232.35, - 69224.0, - 69208.66, - 69189.99, - 69192.08, - 69160.6, - 69187.87, - 69179.55, - 69157.31, - 69156.0, - 69159.01, - 69172.82, - 69212.99, - 69218.22, - 69222.35, - 69244.0, - 69201.54, - 69198.03, - 69179.46, - 69160.9, - 69192.14, - 69161.44, - 69161.41, - 69140.0, - 69114.0, - 69091.0, - 68931.59, - 68973.99, - 68950.79, - 68889.86, - 68880.76, - 68904.0, - 68919.98, - 68904.01, - 68908.42, - 68928.59, - 68962.56, - 68950.01, - 68937.37, - 68939.73, - 68949.99, - 69008.71, - 69021.0, - 69137.83, - 69102.61, - 69073.62, - 69000.01, - 68976.73, - 68950.0, - 68992.0, - 68995.61, - 69011.98, - 68955.67, - 68967.16, - 68998.66, - 68951.05, - 68981.11, - 68974.0, - 68951.07, - 68954.71, - 68941.59, - 68977.96, - 68983.99, - 68971.39, - 69033.99, - 69060.42, - 69056.64, - 69063.96, - 69088.59, - 69139.6, - 69121.41, - 69164.57, - 69170.01, - 69120.01, - 69100.01, - 69104.0, - 69103.07, - 69065.52, - 69084.0, - 69094.0, - 69080.4, - 69105.63, - 69127.78, - 69140.02, - 69140.01, - 69154.17, - 69145.43, - 69177.36, - 69400.01, - 69357.34, - 69348.5, - 69274.0, - 69300.0, - 69340.15, - 69280.01, - 69346.0, - 69467.02, - 69398.44, - 69300.02, - 69313.35, - 69269.39, - 69212.98, - 69191.98, - 69076.26, - 69114.0, - 69160.33, - 69197.03, - 69230.52, - 69238.1, - 69186.08, - 69109.36, - 69085.79, - 69043.99, - 69029.28, - 69048.0, - 69029.56, - 69062.04, - 69086.54, - 69100.01, - 69120.0, - 69130.0, - 69130.96, - 69110.0, - 69132.29, - 69140.52, - 69141.47, - 69177.39, - 69176.29, - 69222.4, - 69222.92, - 69218.69, - 69215.84, - 69221.62, - 69174.4, - 69148.35, - 69113.23, - 69113.23, - 69094.0, - 69113.99, - 69090.89, - 69107.98, - 69134.91, - 69129.99, - 69140.01, - 69065.51, - 69012.45, - 68984.39, - 69018.5, - 68985.69, - 69013.99, - 69028.58, - 68984.02, - 68979.99, - 68993.22, - 68994.59, - 68974.76, - 68966.63, - 69000.0, - 69053.89, - 69035.98, - 69052.0, - 68984.34, - 68983.07, - 69059.99, - 69040.76, - 69136.14, - 69125.93, - 69130.0, - 69140.01, - 69101.68, - 69069.94, - 69067.08, - 69096.0, - 69168.0, - 69156.34, - 69288.0, - 69260.16, - 69287.12, - 69339.99, - 69302.35, - 69264.44, - 69207.16, - 69200.0, - 69273.02, - 69264.25, - 69191.25, - 69111.9, - 68759.99, - 68819.71, - 68847.99, - 68926.43, - 68952.0, - 68924.0, - 68776.31, - 68770.91, - 68744.46, - 68753.43, - 68848.34, - 68912.12, - 68931.09, - 68846.05, - 68808.62, - 68834.02, - 68824.91, - 68829.54, - 68864.63, - 68880.98, - 68835.28, - 68848.15, - 68883.95, - 68883.52, - 68819.38, - 68791.85, - 68778.14, - 68754.0, - 68744.0, - 68738.89, - 68736.0, - 68738.28, - 68740.75, - 68812.13, - 68767.77, - 68778.14, - 68818.88, - 68806.68, - 68800.16, - 68839.74, - 68888.81, - 68880.23, - 68895.44, - 68884.01, - 68843.17, - 68884.97, - 68884.42, - 68890.01, - 68857.53, - 68871.99, - 68903.54, - 68866.91, - 68876.01, - 68858.55, - 68824.24, - 68798.07, - 68780.01, - 68770.62, - 68756.84, - 68720.66, - 68730.8, - 68721.43, - 68720.84, - 68655.16, - 68651.87, - 68568.79, - 68640.98, - 68595.37, - 68611.31, - 68425.57, - 68314.0, - 68386.44, - 68400.0, - 68452.0, - 68518.02, - 68566.99, - 68559.99, - 68598.79, - 68613.32, - 68639.55, - 68674.0, - 68700.0, - 68660.65, - 68656.55, - 68621.22, - 68613.29, - 68560.0, - 68511.56, - 68525.17, - 68500.0, - 68436.24, - 68405.81, - 68405.22, - 68355.01, - 68392.37, - 68463.97, - 68520.02, - 68552.57, - 68507.67, - 68484.01, - 68608.55, - 68598.71, - 68625.42, - 68593.17, - 68566.19, - 68648.15, - 68765.62, - 68721.41, - 68747.63, - 68770.63, - 68821.71, - 68763.99, - 68777.77, - 68740.91, - 68807.4, - 68780.62, - 68780.6, - 68775.19, - 69108.6, - 69138.0, - 69230.67, - 69098.15, - 69074.01, - 69125.56, - 69044.0, - 69140.08, - 69217.05, - 69184.01, - 69162.64, - 69108.13, - 69252.56, - 69152.65, - 69101.21, - 69116.93, - 69111.35, - 69075.99, - 69182.35, - 69096.35, - 69069.92, - 69046.81, - 69046.81, - 68994.0, - 68961.0, - 68919.81, - 68913.69, - 68832.2, - 68873.43, - 68846.68, - 68804.0, - 68824.31, - 68822.87, - 68841.4, - 68854.2, - 68819.32, - 68836.61, - 68822.21, - 68811.0, - 68787.59, - 68770.01, - 68752.4, - 68746.84, - 68729.99, - 68674.99, - 68692.96, - 68366.96, - 68434.01, - 68480.03, - 68548.76, - 68571.75, - 68572.12, - 68524.61, - 68561.25, - 68544.17, - 68591.78, - 68548.46, - 68538.53, - 68554.0, - 68535.28, - 68534.01, - 68478.85, - 68429.84, - 68439.99, - 68393.23, - 68460.59, - 68455.93, - 68413.57, - 68477.0, - 68482.62, - 68540.0, - 68553.32, - 68544.56, - 68707.0, - 68685.4, - 68647.46, - 68643.36, - 68713.99, - 68758.42, - 68755.84, - 68789.68, - 68789.99, - 68798.33, - 68732.3, - 68760.0, - 68689.27, - 68560.21, - 68587.2, - 68624.0, - 68569.4, - 68469.99, - 68560.61, - 68549.88, - 68576.73, - 68597.15, - 68610.3, - 68577.81, - 68611.67, - 68616.0, - 68615.04, - 68595.37, - 68524.63, - 68536.49, - 68575.74, - 68570.35, - 68542.13, - 68454.52, - 68481.13, - 68500.48, - 68489.4, - 68540.01, - 68578.32, - 68577.79, - 68629.99, - 68566.48, - 68615.78, - 68591.38, - 68549.52, - 68480.01, - 68496.95, - 68297.22, - 68349.06, - 68370.28, - 68418.97, - 68434.26, - 68401.58, - 68439.99, - 68420.58, - 68439.11, - 68446.67, - 68496.0, - 68574.11, - 68572.69, - 68627.34, - 68588.0, - 68604.04, - 68621.42, - 68601.3, - 68738.27, - 68855.79, - 68948.6, - 68815.12, - 68818.54, - 68723.16, - 68862.3, - 68901.55, - 68934.0, - 68998.86, - 68919.24, - 68987.11, - 68912.31, - 68970.36, - 68994.01, - 69073.99, - 69058.32, - 69166.32, - 69184.27, - 69144.26, - 69162.64, - 69488.18, - 69500.0, - 69615.01, - 69820.49, - 69882.5, - 69984.0, - 69790.01, - 69770.0, - 70088.02, - 70324.4, - 70318.56, - 70256.0, - 70312.61, - 70373.85, - 70520.0, - 70600.14, - 70568.01, - 70640.01, - 70400.0, - 70448.68, - 70310.02, - 70362.7, - 70322.31, - 70243.82, - 70225.16, - 70161.22, - 70284.0, - 70270.0, - 70325.64, - 70210.96, - 70071.34, - 70167.43, - 70234.58, - 70212.0, - 70190.65, - 70156.36, - 70168.0, - 70184.01, - 70140.0, - 70231.0, - 70135.75, - 70101.83, - 70107.7, - 70068.02, - 70049.0, - 70076.01, - 70014.99, - 69938.02, - 69966.85, - 69985.5, - 70066.19, - 70048.02, - 69883.0, - 69930.65, - 69936.9, - 69950.01, - 69940.85, - 69917.59, - 69836.0, - 69211.57, - 69373.86, - 69260.01, - 69468.0, - 69440.0, - 69463.98, - 69500.01, - 69621.67, - 69636.62, - 69620.0, - 69680.0, - 69614.0, - 69620.76, - 69720.0, - 69660.01, - 69677.01, - 69644.21, - 69725.95, - 69695.98, - 69680.0, - 69700.0, - 69736.77, - 69654.82, - 69699.07, - 69601.35, - 69691.98, - 69805.0, - 69652.01, - 69636.7, - 69652.02, - 69653.41, - 69625.4, - 69704.01, - 69658.88, - 69694.01, - 69635.86, - 69591.99, - 69570.98, - 69591.58, - 69527.58, - 69516.7, - 69514.55, - 69432.72, - 69406.99, - 69399.99, - 69380.48, - 69339.15, - 69370.31, - 69402.18, - 69446.25, - 69436.43, - 69386.42, - 69378.83, - 69395.87, - 69352.12, - 69354.38, - 69313.99, - 69309.62, - 69289.12, - 69268.87, - 69144.0, - 69202.99, - 69377.41, - 69403.46, - 69443.42, - 69443.68, - 69404.01, - 69427.05, - 69360.31, - 69506.98, - 69430.79, - 69317.02, - 68700.0, - 68668.0, - 68614.11, - 68572.2, - 68464.0, - 68714.28, - 68712.29, - 68799.2, - 68744.55, - 68779.33, - 68610.18, - 68658.62, - 68721.67, - 68696.0, - 68680.0, - 68636.68, - 68409.38, - 68473.96, - 68435.99, - 68461.65, - 68219.42, - 68173.06, - 67874.01, - 67840.01, - 67870.0, - 68064.13, - 68050.3, - 68120.01, - 68009.09, - 67884.36, - 67968.77, - 67824.0, - 67733.83, - 67500.01, - 67745.03, - 67636.0, - 67784.0, - 67758.3, - 67797.29, - 67733.98, - 67764.7, - 67924.0, - 67836.84, - 67835.14, - 67825.23, - 67836.25, - 67908.0, - 67949.9, - 67866.23, - 67936.09, - 68049.67, - 68010.58, - 67933.07, - 67953.78, - 67939.99, - 67914.0, - 67832.01, - 67864.99, - 67875.24, - 68032.01, - 68011.12, - 68010.0, - 67972.8, - 67924.1, - 67888.55, - 67928.01, - 67826.72, - 67828.07, - 67832.49, - 67805.58, - 67856.55, - 67795.97, - 67760.0, - 67693.32, - 67694.0, - 67632.67, - 67822.19, - 67923.99, - 67861.31, - 67947.86, - 68014.77, - 67939.45, - 68024.01, - 68072.0, - 68195.99, - 68143.4, - 68159.99, - 68094.22, - 68119.29, - 68120.0, - 68065.74, - 68104.0, - 68148.01, - 68157.25, - 68191.4, - 68405.84, - 68485.51, - 68374.11, - 68336.24, - 68439.23, - 68445.74, - 68720.74, - 68804.02, - 68672.41, - 68640.91, - 68569.21, - 68523.68, - 68483.13, - 68501.64, - 68592.01, - 68592.01, - 68530.01, - 68586.87, - 68636.03, - 68638.99, - 68570.01, - 68514.19, - 68372.73, - 68325.79, - 68443.99, - 68454.86, - 68384.34, - 68389.87, - 68315.99, - 68278.21, - 68260.0, - 68372.99, - 68406.64, - 68452.05, - 68559.99, - 68481.16, - 68300.0, - 68348.0, - 68413.34, - 68208.63, - 68312.01, - 68125.2, - 68170.0, - 68272.9, - 68423.24, - 68399.99, - 68188.01, - 68021.28, - 68034.0, - 67774.93, - 67869.45, - 67792.0, - 67830.81, - 67904.02, - 68046.75, - 68217.13, - 68156.34, - 68053.99, - 68068.02, - 67980.0, - 67814.7, - 67936.0, - 68033.93, - 67969.0, - 67834.0, - 67960.0, - 68096.76, - 67987.02, - 67985.66, - 67941.04, - 68027.19, - 68230.61, - 68250.34, - 68344.0, - 68414.33, - 68374.08, - 68416.5, - 68306.96, - 68340.01, - 68144.12, - 68162.37, - 67871.68, - 67825.27, - 67860.0, - 67791.08, - 67759.54, - 67817.01, - 67713.22, - 67699.0, - 67849.99, - 68048.18, - 67954.46, - 67896.44, - 67945.67, - 67972.39, - 68070.02, - 68094.0, - 67986.39, - 67899.99, - 67782.67, - 67864.02, - 67900.13, - 67938.7, - 67942.18, - 67860.0, - 67944.02, - 67830.0, - 67294.29, - 67479.9, - 67636.86, - 67712.7, - 67879.43, - 67989.15, - 68157.05, - 68241.16, - 68325.11, - 68249.9, - 68254.01, - 68318.08, - 68332.0, - 68370.39, - 68324.0, - 68484.15, - 68424.29, - 68343.36, - 68404.6, - 68468.58, - 68418.02, - 68399.99, - 68331.03, - 68379.88, - 68359.98, - 68284.01, - 68207.75, - 68235.63, - 68325.86, - 68314.48, - 68316.0, - 68300.0, - 68450.0, - 68420.01, - 68403.99, - 68492.01, - 68390.43, - 68390.01, - 68427.42, - 68416.02, - 68401.47, - 68543.99, - 68585.29, - 68572.53, - 68569.99, - 68600.0, - 68611.18, - 68561.86, - 68480.37, - 68554.4, - 68544.12, - 68580.0, - 68615.4, - 68590.0, - 68434.0, - 68413.42, - 68430.01, - 68460.0, - 68480.0, - 68452.24, - 68424.0, - 68444.92, - 68440.09, - 68397.43, - 68398.39, - 68400.01, - 68370.64, - 68373.99, - 68419.59, - 68418.17, - 68389.99, - 68490.0, - 68530.57, - 68549.99, - 68518.0, - 68518.89, - 68496.0, - 68540.0, - 68530.21, - 68440.0, - 68354.7, - 68369.99, - 68461.47, - 68428.02, - 68493.13, - 68671.97, - 68645.21, - 68594.9, - 68570.0, - 68582.13, - 68518.67, - 68520.01, - 68544.02, - 68631.19, - 68913.9, - 68766.44, - 68620.0, - 68628.0, - 68709.98, - 68721.99, - 68684.6, - 68742.19, - 68787.22, - 68813.99, - 68780.01, - 68763.54, - 68763.94, - 68748.5, - 68798.71, - 68854.67, - 68852.27, - 68844.0, - 68829.42, - 68786.99, - 68783.57, - 68824.01, - 68844.19, - 68854.0, - 68909.0, - 68872.0, - 68905.99, - 68882.08, - 68883.99, - 68837.05, - 68843.53, - 68731.67, - 68709.09, - 68595.8, - 68648.41, - 68704.0, - 68710.0, - 68725.0, - 68752.0, - 68741.35, - 68688.59, - 68656.0, - 68584.73, - 68625.27, - 68634.65, - 68605.3, - 68663.97, - 68611.94, - 68649.49, - 68612.1, - 68585.55, - 68515.99, - 68465.61, - 68543.99, - 68513.33, - 68498.33, - 68328.0, - 68346.0, - 68385.11, - 68360.0, - 68150.01, - 68208.85, - 68155.17, - 68201.23, - 68166.93, - 68136.01, - 67946.9, - 67866.5, - 67683.69, - 67762.77, - 67651.03, - 67883.03, - 67934.01, - 67873.99, - 67824.03, - 67853.99, - 67819.99, - 67883.99, - 67872.41, - 67963.0, - 67944.0, - 67867.16, - 67890.03, - 67738.62, - 67775.32, - 67715.1, - 67817.39, - 67860.1, - 67923.11, - 67849.03, - 67905.72, - 67925.96, - 67965.0, - 67991.0, - 67924.59, - 67992.59, - 68008.69, - 67940.03, - 67920.44, - 67899.68, - 67910.03, - 67963.99, - 67989.89, - 67919.79, - 67874.99, - 67851.82, - 67891.51, - 67879.98, - 67910.78, - 67860.0, - 67825.22, - 67867.99, - 67935.0, - 67819.01, - 67763.59, - 67786.69, - 67856.43, - 67944.34, - 67998.78, - 67908.86, - 67833.98, - 67715.1, - 67700.7, - 67780.93, - 67952.0, - 67976.71, - 67898.15, - 67934.99, - 67960.71, - 68196.0, - 67810.0, - 67842.02, - 67830.01, - 67687.09, - 67924.84, - 67832.04, - 67680.64, - 67907.58, - 67879.99, - 67874.99, - 67890.0, - 67887.03, - 67919.75, - 67866.28, - 67666.54, - 67694.87, - 67834.21, - 67713.44, - 67739.22, - 67717.59, - 67635.01, - 67670.27, - 67584.93, - 67565.43, - 67670.01, - 67810.0, - 67672.79, - 67418.0, - 67444.01, - 67450.01, - 67432.62, - 67394.01, - 67379.13, - 67252.18, - 67234.0, - 67196.17, - 67409.88, - 67461.0, - 67350.01, - 67499.78, - 67551.01, - 67599.99, - 67573.34, - 67627.0, - 67555.18, - 67503.19, - 67504.0, - 67531.0, - 67420.5, - 67436.0, - 67619.99, - 67650.0, - 67562.75, - 67525.71, - 67371.53, - 67513.99, - 67611.12, - 67583.5, - 67480.01, - 67464.02, - 67456.0, - 67379.99, - 67330.67, - 67356.0, - 67376.51, - 67416.22, - 67394.72, - 67364.02, - 67392.83, - 67427.74, - 67447.29, - 67533.97, - 67495.01, - 67554.89, - 67710.01, - 67603.16, - 67481.57, - 67367.95, - 67396.71, - 67330.01, - 67266.78, - 67313.25, - 67175.01, - 67285.82, - 67262.79, - 67240.01, - 67294.0, - 67338.14, - 67392.0, - 67383.0, - 67394.72, - 67377.24, - 67485.76, - 67488.75, - 67434.0, - 67423.22, - 67465.69, - 67505.49, - 67444.02, - 67559.1, - 67588.21, - 67597.62, - 67691.45, - 67670.03, - 67700.42, - 67642.92, - 67633.89, - 67624.07, - 67694.0, - 67789.77, - 67756.51, - 67729.82, - 67738.14, - 67709.99, - 67656.44, - 67664.51, - 67680.01, - 67704.01, - 67668.61, - 67660.81, - 67710.4, - 67710.4, - 67720.22, - 67663.31, - 67629.99, - 67654.68, - 67657.38, - 67663.71, - 67652.42, - 67720.0, - 67766.34, - 67759.15, - 67780.01, - 67740.01, - 67730.49, - 67710.54, - 67696.61, - 67719.99, - 67735.01, - 67559.99, - 67583.0, - 67514.0, - 67543.99, - 67710.0, - 67677.83, - 67652.98, - 67647.83, - 67672.85, - 67734.78, - 67745.46, - 67836.01, - 67789.45, - 67800.0, - 67852.59, - 67920.26, - 67886.7, - 67996.98, - 68072.72, - 68098.52, - 68140.01, - 68108.4, - 68059.99, - 68020.62, - 68008.42, - 67949.1, - 68004.82, - 67930.01, - 67950.57, - 67997.86, - 68016.0, - 68010.0, - 68032.02, - 68069.77, - 68023.28, - 68084.99, - 68132.0, - 68118.2, - 68070.62, - 68000.01, - 68041.92, - 68138.94, - 68154.0, - 68226.67, - 68388.91, - 68290.22, - 68220.0, - 68171.54, - 68154.0, - 68163.0, - 68099.53, - 68079.99, - 68046.16, - 68064.11, - 68084.99, - 68093.99, - 68092.0, - 68098.0, - 68102.27, - 68092.0, - 68116.94, - 68134.14, - 68100.0, - 67942.92, - 67944.25, - 67982.21, - 67821.88, - 67920.83, - 67794.12, - 67860.9, - 67963.0, - 67980.0, - 67845.01, - 67831.25, - 67807.45, - 67872.0, - 67885.82, - 67837.61, - 67754.88, - 67779.99, - 67840.65, - 67929.72, - 67972.2, - 67911.91, - 67586.26, - 67584.56, - 67605.98, - 67409.42, - 67207.65, - 67199.0, - 67229.02, - 67376.01, - 67440.07, - 67500.0, - 67560.17, - 67574.2, - 67602.74, - 67688.96, - 67610.73, - 67671.6, - 67720.0, - 67729.47, - 67654.0, - 67579.05, - 67633.13, - 67483.99, - 67582.46, - 67632.0, - 67658.08, - 67745.94, - 67721.0, - 67621.43, - 67605.01, - 67565.24, - 67664.08, - 67683.69, - 67762.2, - 67807.3, - 67923.79, - 67872.58, - 67909.75, - 67942.08, - 67933.61, - 67944.85, - 67969.2, - 67905.38, - 67923.79, - 68092.47, - 68050.22, - 67952.17, - 67964.97, - 67934.99, - 67862.99, - 67817.01, - 67864.6, - 67893.54, - 67952.21, - 67992.16, - 68016.01, - 68022.59, - 68004.0, - 68023.87, - 68228.0, - 68244.0, - 68159.8, - 68133.34, - 68072.93, - 68132.17, - 68199.88, - 68290.0, - 68279.96, - 68200.01, - 68124.0, - 68108.62, - 68233.38, - 68600.99, - 68451.99, - 68623.99, - 68659.2, - 68760.01, - 68480.01, - 68696.02, - 68710.0, - 68671.02, - 68688.0, - 68515.7, - 68505.63, - 68426.38, - 68290.0, - 68359.6, - 68317.22, - 68262.05, - 68271.16, - 68333.14, - 68354.0, - 68424.0, - 68510.53, - 68469.13, - 68420.0, - 68564.0, - 68494.88, - 68530.76, - 68584.57, - 68565.44, - 68419.5, - 68388.03, - 68419.99, - 68427.18, - 68438.88, - 68470.01, - 68455.38, - 68600.0, - 68597.59, - 68676.0, - 68704.99, - 68715.99, - 68864.04, - 68790.7, - 69104.76, - 69014.99, - 69143.99, - 69310.0, - 69413.28, - 69371.17, - 69467.57, - 69315.1, - 69264.0, - 69223.99, - 69138.39, - 69280.01, - 69351.42, - 69285.25, - 69247.0, - 69146.05, - 69294.66, - 69234.01, - 69290.01, - 69360.13, - 69259.73, - 69275.46, - 69210.0, - 69155.99, - 69048.15, - 68959.26, - 68999.5, - 68790.01, - 68720.25, - 68473.03, - 68566.26, - 68653.02, - 68360.0, - 68320.0, - 68189.99, - 68273.41, - 68400.12, - 68453.99, - 68428.75, - 68454.0, - 68509.24, - 68538.5, - 68467.28, - 68475.99, - 68469.37, - 68467.74, - 68357.3, - 68398.59, - 68338.66, - 68375.6, - 68452.0, - 68448.01, - 68391.47, - 68384.0, - 68474.1, - 68416.76, - 68395.81, - 68292.0, - 68294.0, - 68280.0, - 68339.4, - 68364.01, - 68320.01, - 68309.96, - 68356.02, - 68332.7, - 68309.79, - 68314.93, - 68278.91, - 68316.0, - 68385.38, - 68387.42, - 68481.03, - 68449.3, - 68479.43, - 68400.01, - 68364.01, - 68359.31, - 68376.0, - 68352.17, - 68344.0, - 68382.16, - 68360.0, - 68438.99, - 68368.85, - 68330.01, - 68330.0, - 68295.7, - 68326.03, - 68353.42, - 68393.2, - 68460.0, - 68589.54, - 68543.99, - 68626.19, - 68490.2, - 68460.56, - 68516.49, - 68530.0, - 68515.99, - 68476.01, - 68376.4, - 68405.42, - 68440.0, - 68487.79, - 68539.99, - 68618.31, - 68673.97, - 68602.29, - 68524.09, - 68526.15, - 68559.99, - 68593.99, - 68525.13, - 68522.06, - 68539.99, - 68530.0, - 68522.43, - 68512.12, - 68500.0, - 68507.74, - 68504.01, - 68511.59, - 68547.0, - 68579.99, - 68596.69, - 68601.96, - 68535.81, - 68628.89, - 68608.18, - 68626.9, - 68586.6, - 68580.0, - 68520.0, - 68486.01, - 68508.59, - 68542.3, - 68580.0, - 68501.2, - 68516.59, - 68459.81, - 68444.51, - 68470.02, - 68375.78, - 68309.55, - 68379.25, - 68325.48, - 68324.02, - 68407.68, - 68420.0, - 68393.99, - 68442.72, - 68427.92, - 68430.01, - 68303.58, - 68346.87, - 68344.01, - 68391.64, - 68326.8, - 68346.29, - 68337.38, - 68308.0, - 68277.12, - 68272.0, - 68289.96, - 68300.14, - 68327.09, - 68368.96, - 68388.75, - 68364.01, - 68321.39, - 68250.01, - 68170.01, - 68149.0, - 68102.3, - 68174.99, - 68240.34, - 68240.34, - 68271.24, - 68310.9, - 68264.13, - 68210.82, - 68199.72, - 68200.0, - 68265.73, - 68181.2, - 68162.0, - 68136.0, - 68123.01, - 68108.5, - 68174.99, - 67932.0, - 67949.6, - 67926.92, - 67913.46, - 67941.0, - 67984.0, - 67960.01, - 67920.01, - 67950.0, - 68080.23, - 68190.96, - 68201.0, - 68169.2, - 68154.77, - 68144.99, - 68137.43, - 68196.3, - 68244.98, - 68217.85, - 68237.93, - 68333.33, - 68289.56, - 68295.68, - 68411.61, - 68343.51, - 68380.05, - 68293.6, - 68360.42, - 68430.0, - 68408.01, - 68412.12, - 68400.48, - 68349.73, - 68424.19, - 68400.34, - 68385.4, - 68398.42, - 68525.75, - 68560.01, - 68877.0, - 68880.01, - 68855.46, - 68793.13, - 68708.0, - 68643.59, - 68772.99, - 68790.96, - 68714.77, - 68682.01, - 68760.01, - 68707.72, - 68201.0, - 68442.33, - 68420.0, - 68380.0, - 68260.12, - 68078.34, - 67929.2, - 68040.01, - 67821.49, - 67864.02, - 67745.42, - 67759.01, - 67785.01, - 67494.09, - 67356.01, - 67466.27, - 67425.01, - 67501.76, - 67410.01, - 67392.0, - 67313.89, - 67404.0, - 67432.83, - 67457.05, - 67376.0, - 67382.02, - 67428.21, - 67369.0, - 67316.81, - 67215.58, - 67210.01, - 66850.12, - 66825.01, - 66721.35, - 66881.66, - 67000.01, - 67088.01, - 66960.35, - 66947.56, - 67015.99, - 67135.0, - 67200.01, - 67315.27, - 67312.0, - 67276.52, - 67317.01, - 67395.0, - 67417.98, - 67370.0, - 67311.06, - 67304.09, - 67335.94, - 67330.01, - 67342.77, - 67368.0, - 67356.51, - 67382.01, - 67384.95, - 67344.93, - 67305.5, - 67179.99, - 67374.05, - 67419.04, - 67408.79, - 67355.25, - 67414.88, - 67361.49, - 67396.01, - 67430.69, - 67426.46, - 67428.36, - 67534.17, - 67544.0, - 67592.0, - 67854.26, - 67813.75, - 67926.78, - 67681.0, - 67788.05, - 67692.12, - 67701.01, - 67670.01, - 67635.01, - 67675.2, - 67668.02, - 67684.52, - 67714.1, - 67733.0, - 67630.02, - 67709.04, - 67690.0, - 67672.08, - 67710.0, - 67662.02, - 67606.62, - 67624.0, - 67582.68, - 67609.95, - 67551.01, - 67559.99, - 67648.59, - 67564.91, - 67605.97, - 67640.01, - 67637.99, - 67657.59, - 67644.83, - 67642.17, - 67610.01, - 67600.01, - 67623.8, - 67575.01, - 67587.31, - 67509.52, - 67554.11, - 67431.27, - 67441.18, - 67395.01, - 67312.8, - 67239.2, - 67312.02, - 67348.13, - 67496.0, - 67525.94, - 67576.21, - 67540.01, - 67647.88, - 67614.21, - 67586.61, - 67529.45, - 67511.97, - 67559.73, - 67612.01, - 67588.48, - 67603.06, - 67650.0, - 67677.54, - 67655.66, - 67681.01, - 67635.0, - 67621.56, - 67565.21, - 67560.0, - 67571.3, - 67578.09, - 67467.81, - 67491.22, - 67535.79, - 67550.79, - 67560.0, - 67600.05, - 67661.68, - 67639.25, - 67646.08, - 67639.02, - 67661.6, - 67678.03, - 67674.74, - 67684.01, - 67701.47, - 67707.78, - 67729.05, - 67727.58, - 67716.01, - 67686.75, - 67630.81, - 67623.25, - 67655.16, - 67693.39, - 67720.97, - 67748.66, - 67724.01, - 67726.17, - 67715.31, - 67758.8, - 67763.81, - 67708.01, - 67676.01, - 67682.13, - 67679.99, - 67699.79, - 67725.0, - 67693.63, - 67726.84, - 67702.45, - 67680.01, - 67637.14, - 67626.46, - 67659.89, - 67645.22, - 67630.01, - 67603.01, - 67633.48, - 67710.0, - 67737.48, - 67740.0, - 67700.0, - 67686.35, - 67688.01, - 67657.11, - 67665.98, - 67665.97, - 67660.0, - 67662.95, - 67690.2, - 67623.99, - 67665.76, - 67676.0, - 67689.98, - 67693.32, - 67668.0, - 67671.36, - 67664.43, - 67620.0, - 67634.99, - 67610.9, - 67588.23, - 67611.72, - 67668.0, - 67722.38, - 67688.94, - 67632.08, - 67631.01, - 67618.36, - 67629.12, - 67611.61, - 67622.53, - 67628.99, - 67642.0, - 67643.93, - 67731.68, - 67703.06, - 67683.01, - 67704.0, - 67733.0, - 67719.24, - 67712.73, - 67673.17, - 67686.8, - 67665.02, - 67679.54, - 67682.66, - 67703.1, - 67665.14, - 67709.99, - 67706.69, - 67718.69, - 67710.01, - 67733.02, - 67740.76, - 67719.01, - 67668.23, - 67694.79, - 67689.56, - 67683.89, - 67654.74, - 67644.01, - 67627.33, - 67647.86, - 67661.99, - 67679.5, - 67679.5, - 67655.06, - 67670.66, - 67683.89, - 67673.6, - 67680.5, - 67664.62, - 67664.62, - 67660.57, - 67694.0, - 67700.39, - 67694.01, - 67682.22, - 67703.7, - 67721.85, - 67701.77, - 67706.13, - 67728.47, - 67804.0, - 67782.82, - 67717.76, - 67791.9, - 67830.0, - 67788.77, - 67837.0, - 67811.69, - 67778.23, - 67796.68, - 67809.08, - 67759.83, - 67804.79, - 67777.68, - 67720.01, - 67690.2, - 67747.6, - 67755.01, - 67771.81, - 67803.79, - 67800.0, - 67865.04, - 67816.01, - 67805.58, - 67762.0, - 67785.03, - 67803.34, - 67810.0, - 67770.01, - 67759.01, - 67772.0, - 67809.85, - 67777.22, - 67777.43, - 67781.69, - 67791.77, - 67767.07, - 67774.93, - 67691.28, - 67695.01, - 67708.28, - 67676.41, - 67636.0, - 67680.01, - 67707.0, - 67668.23, - 67674.68, - 67686.16, - 67642.93, - 67700.23, - 67700.01, - 67656.87, - 67667.6, - 67644.01, - 67656.59, - 67666.25, - 67675.95, - 67665.01, - 67658.18, - 67652.02, - 67650.01, - 67706.2, - 67791.02, - 67773.41, - 67749.17, - 67759.27, - 67740.7, - 67765.94, - 67733.03, - 67750.61, - 67740.0, - 67759.0, - 67755.01, - 67739.45, - 67750.71, - 67759.0, - 67720.01, - 67720.61, - 67695.0, - 67725.0, - 67728.52, - 67710.01, - 67734.19, - 67782.64, - 67743.94, - 67762.95, - 67753.76, - 67723.43, - 67756.02, - 67700.01, - 67712.0, - 67725.75, - 67742.28, - 67753.37, - 67754.27, - 67772.0, - 67736.54, - 67744.0, - 67796.54, - 67759.01, - 67755.01, - 67720.66, - 67746.0, - 67781.04, - 67760.01, - 67768.0, - 67815.74, - 67814.98, - 67818.26, - 67742.37, - 67760.01, - 67771.12, - 67787.99, - 67796.27, - 67764.32, - 67824.0, - 67845.25, - 67792.64, - 67788.14, - 67776.04, - 67793.19, - 67778.21, - 67765.4, - 67816.42, - 67790.61, - 67782.07, - 67796.0, - 67791.23, - 67751.61, - 67745.11, - 67756.01, - 67726.91, - 67735.39, - 67748.0, - 67766.85, - 67758.53, - 67755.01, - 67753.87, - 67809.32, - 67794.95, - 67796.95, - 67788.02, - 67779.85, - 67814.77, - 67809.5, - 67884.08, - 67889.0, - 67864.01, - 67819.52, - 67805.87, - 67836.3, - 67775.86, - 67865.86, - 67863.13, - 67836.0, - 67814.4, - 67783.01, - 67775.02, - 67755.0, - 67737.4, - 67766.39, - 67790.33, - 67800.0, - 67811.0, - 67756.02, - 67748.0, - 67737.23, - 67752.29, - 67671.81, - 67683.06, - 67733.26, - 67772.1, - 67784.98, - 67795.53, - 67761.38, - 67795.06, - 67798.82, - 67799.99, - 67799.99, - 67802.59, - 67805.05, - 67789.48, - 67789.47, - 67771.8, - 67754.35, - 67754.5, - 67785.49, - 67787.77, - 67812.36, - 67824.17, - 67838.2, - 67844.2, - 67827.99, - 67844.2, - 67852.62, - 67867.6, - 67827.87, - 67818.76, - 67815.01, - 67808.01, - 67803.24, - 67796.0, - 67768.98, - 67756.0, - 67776.82, - 67794.0, - 67728.4, - 67775.67, - 67768.62, - 67787.45, - 67792.05, - 67794.0, - 67782.41, - 67808.79, - 67823.48, - 67794.0, - 67830.41, - 67816.11, - 67841.09, - 67825.18, - 67788.0, - 67804.04, - 67762.53, - 67746.0, - 67747.99, - 67740.01, - 67726.29, - 67750.0, - 67757.78, - 67761.17, - 67721.0, - 67721.99, - 67753.84, - 67756.55, - 67733.76, - 67752.09, - 67753.79, - 67774.05, - 67798.89, - 67809.52, - 67777.64, - 67747.02, - 67750.67, - 67759.68, - 67759.68, - 67735.93, - 67664.3, - 67658.99, - 67585.43, - 67601.54, - 67522.5, - 67415.58, - 67457.44, - 67524.58, - 67529.99, - 67543.99, - 67554.98, - 67491.46, - 67445.39, - 67426.81, - 67506.55, - 67490.0, - 67490.53, - 67546.19, - 67508.51, - 67464.6, - 67529.99, - 67500.01, - 67519.6, - 67539.99, - 67532.01, - 67572.79, - 67619.99, - 67646.99, - 67679.98, - 67709.99, - 68035.98, - 68250.0, - 68251.52, - 68093.48, - 68075.98, - 68144.99, - 67954.14, - 67979.86, - 68092.0, - 68071.0, - 68127.99, - 68067.44, - 68035.88, - 67912.83, - 67934.99, - 67826.44, - 67887.99, - 67945.38, - 68009.72, - 68076.0, - 68070.0, - 67967.01, - 68001.04, - 68065.0, - 68099.99, - 68190.97, - 68165.98, - 68107.99, - 68132.9, - 68135.99, - 68245.29, - 68235.0, - 68345.67, - 68426.93, - 68324.31, - 68198.61, - 68123.01, - 68193.76, - 68252.5, - 68192.01, - 68183.95, - 68132.68, - 68047.98, - 68063.99, - 68072.1, - 68091.76, - 68115.99, - 68098.38, - 68121.51, - 68127.75, - 68142.17, - 68199.99, - 68063.19, - 68085.0, - 68061.46, - 68022.77, - 68057.91, - 68093.68, - 68099.03, - 68032.0, - 68082.17, - 68099.05, - 68103.63, - 68091.95, - 68022.02, - 68030.41, - 67926.38, - 67984.01, - 67929.64, - 67860.74, - 67890.81, - 68016.01, - 67969.52, - 67900.0, - 67879.28, - 67568.81, - 67711.44, - 67690.01, - 67624.0, - 67516.66, - 67590.01, - 67623.98, - 67672.31, - 67754.62, - 67702.47, - 67701.2, - 67697.14, - 67739.97, - 67721.42, - 67646.46, - 67511.99, - 67525.0, - 67595.24, - 67675.34, - 67703.99, - 67708.33, - 67743.98, - 67762.89, - 67736.95, - 67685.81, - 67707.0, - 67677.63, - 67613.64, - 67664.43, - 67692.58, - 67740.0, - 67730.49, - 67763.47, - 67767.38, - 67800.02, - 67831.2, - 67838.6, - 67864.71, - 67883.17, - 67846.97, - 67858.93, - 67827.83, - 67808.06, - 67791.21, - 67871.81, - 67811.01, - 67829.7, - 67816.14, - 67855.56, - 67857.64, - 67835.21, - 67865.17, - 67908.0, - 67947.0, - 67971.01, - 67918.78, - 67895.48, - 67895.46, - 67885.88, - 67927.99, - 67977.91, - 67898.0, - 67891.56, - 67890.83, - 67879.99, - 67886.63, - 67862.69, - 67860.0, - 67845.01, - 67829.99, - 67783.96, - 67765.63, - 67715.0, - 67787.48, - 67832.38, - 67766.01, - 67725.01, - 67665.4, - 67707.01, - 67634.02, - 67683.79, - 67772.01, - 67812.01, - 67823.99, - 67892.85, - 67916.0, - 68140.0, - 68154.0, - 68230.79, - 68225.58, - 68330.08, - 68292.01, - 68175.44, - 68292.01, - 68471.99, - 68476.01, - 68630.01, - 68657.34, - 68686.46, - 68779.83, - 68759.94, - 68620.01, - 68522.64, - 68545.51, - 68456.35, - 68410.01, - 68464.94, - 68416.08, - 68223.98, - 68253.2, - 68285.2, - 68312.97, - 68262.13, - 68317.99, - 68400.0, - 68407.98, - 68434.25, - 68480.97, - 68364.53, - 68382.81, - 68347.12, - 68342.01, - 68327.53, - 68340.0, - 68443.84, - 68327.29, - 68459.99, - 68431.94, - 68423.61, - 68509.99, - 68575.81, - 68510.0, - 68479.99, - 68461.69, - 68501.65, - 68624.01, - 68598.85, - 68596.01, - 68686.0, - 68686.87, - 68763.11, - 68677.12, - 68646.1, - 68700.0, - 68683.28, - 68679.43, - 68827.99, - 68815.58, - 68932.29, - 69099.28, - 68998.52, - 69170.0, - 69166.22, - 69127.72, - 69049.99, - 69038.94, - 69120.01, - 69132.95, - 69083.93, - 69098.0, - 68959.45, - 68881.41, - 68850.0, - 68859.99, - 68912.91, - 68850.01, - 68850.0, - 68906.7, - 68963.16, - 68993.7, - 69026.9, - 69152.0, - 69114.22, - 69264.56, - 69329.51, - 69326.96, - 69292.99, - 69142.78, - 69205.39, - 69142.55, - 69153.22, - 69079.09, - 69091.97, - 68975.91, - 68921.98, - 69005.0, - 69084.01, - 69060.0, - 69042.34, - 69060.81, - 69089.99, - 69014.88, - 69116.0, - 69102.87, - 69086.9, - 69085.01, - 69100.32, - 69175.32, - 69131.17, - 69147.99, - 69111.0, - 69010.0, - 68939.96, - 68907.99, - 68900.0, - 69050.0, - 69071.94, - 69139.59, - 69185.04, - 69196.15, - 69137.01, - 69030.0, - 69101.23, - 69114.97, - 69129.99, - 69080.0, - 69119.18, - 69143.19, - 69243.85, - 69298.0, - 69424.01, - 69400.0, - 69323.15, - 69700.0, - 69649.99, - 69517.59, - 69687.0, - 69746.23, - 69687.9, - 69587.89, - 69555.8, - 69540.02, - 69611.11, - 69687.15, - 69912.01, - 69883.99, - 69987.99, - 70256.0, - 69913.13, - 69795.34, - 69719.74, - 69768.82, - 70065.28, - 69884.03, - 69740.01, - 69815.88, - 69430.0, - 69180.02, - 69198.74, - 69025.9, - 68880.0, - 68776.01, - 68880.4, - 69144.9, - 69160.0, - 69262.2, - 69144.0, - 69130.0, - 69220.01, - 69277.24, - 69240.0, - 69231.31, - 69297.94, - 69615.28, - 69495.29, - 69435.91, - 69352.02, - 69404.02, - 69260.0, - 69243.99, - 69059.17, - 69215.36, - 69157.0, - 69207.99, - 68975.41, - 69080.02, - 69007.0, - 68931.47, - 69076.1, - 69134.09, - 69151.98, - 69162.32, - 69264.01, - 69291.4, - 69339.07, - 69259.4, - 69240.01, - 69268.97, - 69311.99, - 69320.58, - 69162.99, - 69239.1, - 69247.52, - 69294.52, - 69372.99, - 69379.99, - 69377.11, - 69443.35, - 69300.02, - 69288.41, - 69168.82, - 69124.16, - 69123.05, - 69102.28, - 69163.4, - 69111.66, - 69061.26, - 69070.01, - 69060.01, - 69120.0, - 69100.0, - 69204.0, - 69277.26, - 69254.8, - 69437.02, - 69468.98, - 69490.0, - 69403.7, - 69335.29, - 69264.01, - 69245.87, - 69214.73, - 69211.99, - 69101.28, - 69191.85, - 69166.06, - 69025.8, - 69064.67, - 69058.94, - 69040.01, - 69060.0, - 69074.92, - 69140.01, - 69157.3, - 69147.01, - 69081.17, - 68973.82, - 68896.0, - 68876.0, - 68916.7, - 68917.56, - 68970.85, - 69133.21, - 69112.99, - 69070.2, - 69094.42, - 69058.83, - 69042.51, - 69015.78, - 68994.61, - 68966.5, - 68952.0, - 68939.78, - 68882.72, - 68916.61, - 68784.2, - 68750.96, - 68807.32, - 68808.74, - 68809.9, - 68873.45, - 68857.15, - 68838.33, - 68686.8, - 68770.19, - 68784.01, - 68945.41, - 68996.61, - 69001.62, - 69075.68, - 69079.8, - 69001.41, - 68950.49, - 69060.0, - 69070.01, - 69000.73, - 68998.02, - 69012.99, - 69138.28, - 69079.1, - 69074.0, - 69099.99, - 69182.68, - 69215.4, - 69176.15, - 69255.79, - 69266.79, - 69218.5, - 69280.78, - 69265.0, - 69145.42, - 69156.0, - 69129.35, - 69100.0, - 69111.62, - 69139.57, - 69208.0, - 69326.88, - 69332.21, - 69271.79, - 69239.11, - 69212.25, - 69202.04, - 69189.54, - 69230.36, - 69155.51, - 69170.2, - 69170.22, - 69107.69, - 69213.4, - 69250.0, - 69180.01, - 69243.6, - 69228.61, - 69265.0, - 69228.0, - 69164.44, - 69180.0, - 69118.2, - 69061.22, - 69060.0, - 69087.83, - 69115.68, - 69156.16, - 69112.4, - 69110.9, - 69087.59, - 69046.1, - 68999.77, - 69043.79, - 69006.19, - 68956.01, - 68816.21, - 68787.84, - 68882.62, - 68859.99, - 68914.45, - 68948.44, - 68985.45, - 69006.6, - 68907.96, - 69000.01, - 68931.07, - 68905.43, - 68975.99, - 68972.4, - 69052.2, - 69006.18, - 69028.8, - 68993.02, - 68952.13, - 68966.58, - 68994.28, - 69032.38, - 69074.29, - 69013.63, - 68918.21, - 68973.51, - 69110.79, - 69090.72, - 69063.42, - 69110.3, - 69075.0, - 69091.59, - 69095.93, - 69025.54, - 68920.0, - 68836.54, - 68733.54, - 68760.01, - 68780.14, - 68642.71, - 68653.21, - 68704.81, - 68781.39, - 68712.96, - 68723.61, - 68644.79, - 68647.79, - 68717.92, - 68772.65, - 68726.57, - 68845.02, - 68846.34, - 68848.5, - 68806.81, - 68895.29, - 68930.88, - 68940.38, - 68956.7, - 68915.45, - 68890.66, - 68940.84, - 68952.79, - 68900.01, - 68891.41, - 68908.44, - 68928.38, - 68994.68, - 68972.0, - 68892.0, - 68920.01, - 68963.99, - 68955.85, - 68984.18, - 68873.66, - 68977.09, - 69020.0, - 69063.33, - 69059.0, - 69102.8, - 69037.24, - 69071.78, - 68979.21, - 68925.81, - 68946.56, - 69071.78, - 68988.23, - 69230.79, - 69272.96, - 69420.17, - 69429.78, - 69323.52, - 69419.99, - 69548.0, - 69524.85, - 69705.09, - 69527.99, - 69819.99, - 69949.56, - 69827.59, - 70049.99, - 69750.0, - 69749.39, - 69665.26, - 69415.89, - 69536.99, - 69562.05, - 69704.0, - 69651.49, - 69606.61, - 69600.78, - 69829.54, - 70059.07, - 70116.63, - 69988.74, - 70047.56, - 70047.98, - 70150.0, - 70184.51, - 70477.01, - 70445.0, - 70592.03, - 70497.77, - 70517.77, - 70875.0, - 70831.57, - 70863.21, - 70776.01, - 70878.37, - 70950.01, - 70848.02, - 70771.88, - 70800.0, - 70683.99, - 70564.0, - 70685.99, - 70566.65, - 70576.93, - 70486.51, - 70419.15, - 70370.0, - 70416.2, - 70525.14, - 70625.34, - 70564.0, - 70683.96, - 70666.95, - 70759.99, - 70855.74, - 71040.01, - 70928.99, - 70912.38, - 70892.27, - 70865.73, - 70825.99, - 70773.16, - 70693.67, - 70630.0, - 70605.57, - 70572.0, - 70553.68, - 70607.66, - 70472.0, - 70450.01, - 70140.0, - 70336.01, - 70287.34, - 70236.6, - 70423.6, - 70281.69, - 70266.66, - 70306.76, - 70265.6, - 70168.67, - 70262.55, - 70342.1, - 70302.97, - 70346.46, - 70441.63, - 70500.02, - 70402.69, - 70391.89, - 70360.0, - 70423.32, - 70420.0, - 70393.94, - 70491.99, - 70470.0, - 70493.72, - 70455.01, - 70493.73, - 70580.0, - 70620.0, - 70640.93, - 70670.01, - 70699.79, - 70692.0, - 70669.29, - 70645.41, - 70635.75, - 70623.99, - 70551.09, - 70530.0, - 70592.0, - 70561.3, - 70569.32, - 70588.09, - 70563.24, - 70524.01, - 70521.2, - 70414.91, - 70520.0, - 70520.72, - 70540.01, - 70566.06, - 70598.99, - 70537.84, - 70563.05, - 70526.24, - 70481.4, - 70489.84, - 70629.99, - 70624.01, - 70769.99, - 70839.38, - 70732.51, - 70710.0, - 70841.68, - 70776.0, - 70837.34, - 70731.82, - 70674.7, - 70805.19, - 70910.82, - 71002.12, - 71034.47, - 71137.1, - 71003.64, - 71108.28, - 71058.01, - 70986.3, - 70847.99, - 70933.99, - 70776.02, - 70958.18, - 70958.33, - 70977.16, - 71086.48, - 70996.25, - 70960.3, - 70850.57, - 70850.0, - 70837.96, - 70925.99, - 70902.77, - 70824.3, - 70818.98, - 70832.65, - 70870.0, - 70881.41, - 70804.46, - 70818.0, - 70866.88, - 70864.35, - 70947.58, - 70867.99, - 70867.99, - 70948.99, - 70964.0, - 70994.2, - 71030.9, - 71080.41, - 71184.0, - 71208.25, - 71171.51, - 71225.99, - 71168.53, - 71107.39, - 70958.0, - 70900.12, - 70923.62, - 71037.84, - 71034.99, - 70950.01, - 70964.01, - 70891.59, - 70949.99, - 71000.0, - 70999.99, - 70939.99, - 70945.72, - 70874.21, - 70935.66, - 70939.91, - 70973.22, - 70920.0, - 71032.0, - 71093.01, - 71004.0, - 71072.01, - 71119.05, - 71178.19, - 71180.91, - 71147.99, - 71157.49, - 71214.24, - 71065.39, - 71090.15, - 71197.22, - 71346.91, - 71296.0, - 71192.19, - 71200.0, - 71120.51, - 71051.29, - 71061.88, - 71059.99, - 71126.86, - 71103.83, - 71088.0, - 71030.0, - 71039.9, - 70974.03, - 70906.67, - 70927.57, - 70902.19, - 70975.12, - 70902.21, - 70975.12, - 70980.01, - 70989.36, - 70984.0, - 70885.3, - 70839.46, - 70903.18, - 70861.39, - 70894.19, - 70847.19, - 70854.91, - 70840.68, - 70820.06, - 70803.1, - 70778.82, - 70814.26, - 70830.2, - 70777.88, - 70792.91, - 70856.09, - 70800.33, - 70732.36, - 70790.19, - 70861.92, - 70937.86, - 70956.01, - 70900.0, - 70946.8, - 70940.01, - 70971.99, - 71070.0, - 70962.0, - 70971.71, - 70880.36, - 70902.33, - 70847.99, - 70864.01, - 70778.0, - 70774.03, - 70762.99, - 70810.43, - 71021.27, - 71039.8, - 70904.81, - 70940.01, - 70993.44, - 71098.75, - 71016.51, - 71040.0, - 71140.01, - 71115.6, - 71004.53, - 70770.02, - 70823.8, - 70660.67, - 70740.0, - 70730.7, - 70652.0, - 70465.66, - 70443.41, - 70481.93, - 70665.86, - 70739.99, - 70823.79, - 70908.0, - 70912.12, - 70985.99, - 70980.75, - 70867.99, - 70935.0, - 70823.91, - 70895.59, - 71259.95, - 71246.2, - 71543.57, - 71449.63, - 71652.85, - 71548.0, - 71494.25, - 71461.22, - 71580.0, - 71537.1, - 71616.75, - 71645.19, - 71601.41, - 71663.12, - 71646.29, - 71656.02, - 71646.62, - 71516.74, - 71319.38, - 71394.24, - 71312.77, - 71518.8, - 71442.68, - 71539.99, - 71518.34, - 71431.68, - 71433.22, - 71538.83, - 71499.9, - 71493.33, - 71578.31, - 71672.01, - 71628.98, - 71600.77, - 71520.01, - 71322.86, - 71298.69, - 71160.39, - 71124.93, - 71211.99, - 71125.78, - 71060.02, - 70913.4, - 71063.99, - 71096.81, - 71101.22, - 70976.42, - 70929.64, - 70971.0, - 70969.78, - 70943.56, - 71006.79, - 71097.18, - 71159.98, - 71231.42, - 71310.0, - 71279.95, - 71190.91, - 71222.34, - 71231.49, - 71327.89, - 71323.86, - 71253.35, - 71245.15, - 71220.03, - 71220.0, - 71224.01, - 71236.0, - 71196.02, - 71194.47, - 71177.07, - 71133.93, - 71136.95, - 71056.23, - 71045.34, - 71043.77, - 71187.32, - 71134.68, - 71091.39, - 71095.83, - 71138.42, - 71180.6, - 71217.98, - 71200.45, - 71168.81, - 71117.9, - 71130.42, - 71172.44, - 71155.98, - 71239.99, - 71193.11, - 71169.75, - 71144.86, - 71156.05, - 71210.5, - 71274.0, - 71153.93, - 71111.25, - 70850.0, - 70916.49, - 71006.01, - 71076.06, - 71090.9, - 71121.85, - 71108.0, - 71135.73, - 71098.16, - 71175.18, - 71120.01, - 71139.37, - 71152.0, - 71116.97, - 71028.0, - 71029.37, - 71015.83, - 70991.99, - 71018.06, - 70960.01, - 70937.61, - 70955.98, - 71018.11, - 71079.12, - 71099.99, - 71153.26, - 71111.8, - 71145.97, - 71101.09, - 71139.99, - 71124.0, - 71134.41, - 71162.8, - 71204.6, - 71192.01, - 71188.05, - 71206.19, - 71197.42, - 71137.0, - 71152.53, - 71143.99, - 71182.17, - 71160.0, - 71180.4, - 71152.52, - 71152.52, - 71159.99, - 71163.84, - 71162.39, - 71125.47, - 71060.01, - 71119.19, - 71060.01, - 71026.61, - 71050.0, - 71013.33, - 70976.48, - 70948.01, - 70979.99, - 70951.77, - 70959.8, - 70970.15, - 71020.01, - 71056.0, - 71067.99, - 71093.64, - 71054.52, - 71008.0, - 70933.22, - 70874.22, - 70899.99, - 70873.41, - 70830.18, - 70906.13, - 70915.89, - 70885.47, - 70844.0, - 70858.3, - 70895.45, - 70927.99, - 70968.69, - 70982.79, - 70967.48, - 70977.33, - 70958.19, - 70833.86, - 70891.24, - 70848.98, - 70892.04, - 70863.46, - 70887.99, - 70888.17, - 70944.49, - 70920.27, - 70955.99, - 70963.68, - 70890.05, - 70881.78, - 70981.53, - 70943.49, - 70909.15, - 71016.81, - 71021.47, - 70978.72, - 70935.45, - 70875.79, - 70955.23, - 70913.83, - 70975.22, - 70905.01, - 70922.44, - 70899.22, - 70893.94, - 70929.12, - 70904.01, - 70950.0, - 71104.18, - 71078.96, - 70970.01, - 70976.01, - 70994.68, - 70985.3, - 70966.22, - 70949.98, - 70936.45, - 70969.99, - 70978.88, - 70912.64, - 70892.5, - 70900.45, - 70948.82, - 70944.14, - 70935.34, - 70940.0, - 70919.99, - 70923.98, - 70950.0, - 70957.66, - 70988.0, - 71068.79, - 71008.0, - 70973.21, - 70946.98, - 71030.58, - 71010.28, - 71045.19, - 71100.0, - 71131.15, - 71079.2, - 71079.18, - 71170.01, - 71196.01, - 71208.0, - 71173.59, - 71332.31, - 71372.01, - 71366.17, - 71223.66, - 71170.0, - 71208.42, - 71086.88, - 71094.89, - 71187.17, - 71187.66, - 71077.48, - 71112.32, - 71072.47, - 71050.0, - 71165.83, - 71247.74, - 71328.37, - 71493.21, - 71296.4, - 71355.73, - 71123.09, - 71109.11, - 71197.31, - 71182.83, - 71061.0, - 71219.05, - 71191.96, - 71269.98, - 71292.86, - 71359.98, - 71385.1, - 71459.99, - 71464.57, - 71400.0, - 71449.98, - 71402.46, - 71444.13, - 71452.91, - 71596.76, - 71554.89, - 71442.01, - 71470.63, - 71348.99, - 71284.0, - 71300.0, - 71364.0, - 71262.27, - 71128.67, - 71111.15, - 71064.39, - 71058.34, - 70866.01, - 70945.54, - 70914.99, - 71045.44, - 70963.26, - 70948.95, - 70852.5, - 70847.0, - 70996.0, - 71129.24, - 71164.0, - 71180.0, - 71132.01, - 71176.86, - 71074.78, - 71040.0, - 71096.09, - 71098.31, - 71150.01, - 70895.98, - 70909.99, - 70957.11, - 71003.3, - 71029.83, - 70984.36, - 71055.99, - 71057.14, - 71133.01, - 71104.06, - 71075.0, - 71003.21, - 70947.99, - 70900.01, - 70956.02, - 70934.37, - 70939.98, - 70915.32, - 70750.01, - 70731.19, - 70620.0, - 70544.17, - 70479.49, - 70350.94, - 70340.0, - 70411.98, - 70602.99, - 70657.0, - 70579.97, - 70662.61, - 70695.15, - 70620.94, - 70676.74, - 70695.77, - 70720.01, - 70756.43, - 70668.67, - 70749.62, - 70853.79, - 70740.0, - 70693.34, - 70814.34, - 70740.51, - 70752.61, - 70775.38, - 70740.82, - 70740.51, - 70743.45, - 70791.36, - 70788.86, - 70740.01, - 70680.39, - 70737.51, - 70830.0, - 70782.78, - 70816.88, - 70777.65, - 70787.99, - 70901.01, - 70956.01, - 70920.32, - 70878.19, - 70851.6, - 70777.99, - 70803.39, - 70788.0, - 70828.98, - 70827.99, - 70795.6, - 70783.13, - 70799.06, - 70772.58, - 70781.91, - 70770.2, - 70816.38, - 70872.39, - 70835.59, - 70879.99, - 70860.01, - 70833.9, - 70867.58, - 70875.48, - 70883.05, - 70840.01, - 70840.01, - 70826.4, - 70776.01, - 70749.57, - 70746.21, - 70720.41, - 70689.03, - 70787.74, - 70889.3, - 70880.0, - 70840.01, - 70872.06, - 70828.77, - 70785.06, - 70781.46, - 70781.32, - 70756.35, - 70766.51, - 70700.01, - 70713.95, - 70781.18, - 70827.75, - 70824.08, - 70818.74, - 70785.36, - 70816.81, - 70851.0, - 70943.57, - 70990.38, - 70920.05, - 70919.99, - 70933.12, - 70976.0, - 70960.49, - 70989.68, - 71129.99, - 71154.37, - 71181.2, - 71166.72, - 71124.96, - 71161.13, - 71160.0, - 71161.95, - 71117.44, - 71171.41, - 71252.01, - 71226.52, - 71196.0, - 71186.09, - 71207.92, - 71276.85, - 71279.66, - 71320.0, - 71278.39, - 71360.9, - 71369.65, - 71447.38, - 71317.85, - 71290.6, - 71347.93, - 71240.32, - 71222.82, - 71253.97, - 71246.06, - 71236.7, - 71310.17, - 71252.42, - 71197.0, - 71227.14, - 71272.44, - 71265.7, - 71211.59, - 71184.0, - 71204.26, - 71276.0, - 71267.28, - 71270.62, - 71169.0, - 71133.82, - 71119.21, - 71093.0, - 71070.08, - 71110.0, - 71096.2, - 71061.63, - 71079.99, - 71124.47, - 71150.0, - 71168.33, - 71130.0, - 71139.99, - 71115.25, - 71101.21, - 71122.0, - 71117.2, - 71060.51, - 71087.98, - 71115.59, - 71115.58, - 71100.38, - 71204.92, - 71170.01, - 71212.17, - 71202.09, - 71197.9, - 71248.98, - 71302.07, - 71286.81, - 71350.0, - 71359.04, - 71296.0, - 71252.11, - 71260.74, - 71234.63, - 71272.0, - 71330.69, - 71347.76, - 71396.51, - 71377.38, - 71410.0, - 71384.13, - 71346.97, - 71335.82, - 71320.53, - 71401.28, - 71542.1, - 71553.21, - 71526.22, - 71600.8, - 71649.89, - 71699.99, - 71932.77, - 71793.84, - 71880.0, - 71956.73, - 71680.88, - 71933.19, - 70937.98, - 70880.0, - 71020.63, - 70867.12, - 70991.01, - 71234.09, - 71173.9, - 71226.83, - 71192.02, - 71317.09, - 71346.0, - 71377.96, - 71209.75, - 71323.29, - 71542.12, - 71569.69, - 71549.78, - 71534.6, - 71410.96, - 71425.3, - 71373.19, - 71316.73, - 71277.19, - 71340.01, - 71262.67, - 71429.99, - 71413.45, - 71493.32, - 71445.21, - 71430.94, - 71300.0, - 71273.55, - 71317.59, - 71222.88, - 71104.0, - 71088.85, - 71051.03, - 71002.14, - 70945.0, - 71056.56, - 71128.16, - 71111.54, - 70964.99, - 70999.99, - 71076.47, - 71185.7, - 71192.76, - 71181.63, - 71022.96, - 71047.54, - 71040.98, - 70921.76, - 70882.23, - 70873.47, - 70743.58, - 70795.82, - 70665.33, - 70578.27, - 70400.01, - 70438.04, - 70400.11, - 70327.99, - 70260.01, - 70278.97, - 70188.0, - 69803.59, - 69111.0, - 69378.67, - 68649.99, - 68889.53, - 69279.36, - 69041.01, - 69092.0, - 69134.86, - 69225.13, - 69126.28, - 69195.59, - 69154.43, - 68950.0, - 68914.84, - 69087.87, - 68919.72, - 69000.01, - 69198.57, - 69299.53, - 69337.68, - 69447.99, - 69380.13, - 69334.75, - 69255.0, - 69164.32, - 69060.0, - 69091.99, - 69104.01, - 69050.03, - 69070.78, - 69142.96, - 69176.14, - 69202.91, - 69203.99, - 69204.14, - 69307.99, - 69203.08, - 69335.01, - 69360.11, - 69317.19, - 69358.52, - 69358.8, - 69300.01, - 69258.16, - 69291.33, - 69266.28, - 69223.85, - 69250.01, - 69248.01, - 69247.68, - 69310.0, - 69350.0, - 69327.91, - 69350.0, - 69352.17, - 69381.14, - 69356.38, - 69403.1, - 69452.44, - 69499.0, - 69436.52, - 69379.99, - 69391.33, - 69380.5, - 69428.04, - 69335.02, - 69368.0, - 69323.55, - 69351.86, - 69353.49, - 69375.83, - 69355.6, - 69315.58, - 69346.85, - 69339.99, - 69390.8, - 69367.86, - 69457.29, - 69398.3, - 69453.0, - 69476.73, - 69440.99, - 69405.43, - 69401.5, - 69412.01, - 69434.6, - 69339.99, - 69299.99, - 69349.49, - 69385.8, - 69424.49, - 69415.58, - 69441.68, - 69449.36, - 69467.86, - 69465.25, - 69434.01, - 69434.01, - 69422.53, - 69428.01, - 69395.59, - 69401.14, - 69416.51, - 69428.02, - 69441.85, - 69431.9, - 69422.59, - 69422.11, - 69431.95, - 69446.77, - 69483.15, - 69467.49, - 69494.78, - 69508.59, - 69507.83, - 69519.26, - 69516.98, - 69485.83, - 69467.47, - 69432.0, - 69444.02, - 69452.0, - 69418.99, - 69400.0, - 69356.33, - 69366.21, - 69324.69, - 69373.86, - 69352.58, - 69340.0, - 69279.84, - 69316.73, - 69280.13, - 69270.14, - 69266.2, - 69299.99, - 69319.73, - 69306.39, - 69280.0, - 69295.95, - 69262.97, - 69294.99, - 69312.99, - 69319.99, - 69327.87, - 69300.0, - 69334.4, - 69349.6, - 69381.36, - 69406.0, - 69374.81, - 69396.97, - 69374.8, - 69363.72, - 69333.81, - 69333.45, - 69358.21, - 69358.22, - 69392.07, - 69436.13, - 69484.01, - 69499.31, - 69500.03, - 69528.01, - 69557.64, - 69539.92, - 69535.13, - 69582.2, - 69519.98, - 69464.11, - 69469.25, - 69427.79, - 69424.9, - 69424.9, - 69412.9, - 69416.0, - 69395.75, - 69423.72, - 69463.99, - 69436.42, - 69407.06, - 69438.79, - 69453.24, - 69444.01, - 69439.99, - 69448.4, - 69429.48, - 69449.99, - 69457.42, - 69430.87, - 69449.99, - 69443.24, - 69440.0, - 69402.33, - 69426.03, - 69400.0, - 69390.0, - 69363.02, - 69408.0, - 69401.51, - 69404.5, - 69444.94, - 69480.45, - 69453.4, - 69511.09, - 69464.41, - 69488.36, - 69461.85, - 69486.02, - 69499.32, - 69440.0, - 69457.21, - 69380.52, - 69384.02, - 69333.08, - 69365.93, - 69287.99, - 69333.34, - 69384.41, - 69421.65, - 69361.15, - 69346.2, - 69340.01, - 69327.32, - 69302.78, - 69344.0, - 69366.49, - 69360.22, - 69356.45, - 69258.0, - 69270.0, - 69233.82, - 69243.65, - 69228.42, - 69296.0, - 69317.58, - 69341.74, - 69375.94, - 69375.93, - 69430.0, - 69373.11, - 69382.08, - 69400.78, - 69330.01, - 69329.94, - 69333.52, - 69378.0, - 69376.0, - 69405.6, - 69433.23, - 69411.37, - 69461.69, - 69448.01, - 69448.0, - 69480.01, - 69460.01, - 69446.41, - 69448.44, - 69470.0, - 69460.01, - 69455.4, - 69446.95, - 69430.01, - 69430.01, - 69470.0, - 69452.01, - 69399.27, - 69333.34, - 69368.01, - 69342.0, - 69349.99, - 69378.1, - 69390.84, - 69345.6, - 69378.08, - 69387.15, - 69385.84, - 69424.49, - 69442.53, - 69443.12, - 69443.7, - 69416.13, - 69372.41, - 69440.7, - 69462.65, - 69469.99, - 69415.9, - 69439.99, - 69460.0, - 69474.25, - 69479.99, - 69459.99, - 69464.0, - 69479.99, - 69440.38, - 69446.14, - 69452.88, - 69444.07, - 69454.89, - 69454.89, - 69478.56, - 69490.0, - 69477.24, - 69488.0, - 69473.87, - 69473.86, - 69470.01, - 69455.33, - 69455.37, - 69476.41, - 69476.41, - 69460.01, - 69459.44, - 69459.01, - 69460.0, - 69458.0, - 69445.05, - 69401.89, - 69368.0, - 69366.4, - 69377.27, - 69366.0, - 69380.0, - 69372.73, - 69346.77, - 69349.99, - 69375.8, - 69369.99, - 69400.0, - 69396.96, - 69384.17, - 69384.16, - 69384.16, - 69384.16, - 69396.96, - 69404.91, - 69401.08, - 69389.99, - 69387.08, - 69368.88, - 69311.5, - 69301.87, - 69328.62, - 69301.83, - 69334.47, - 69316.01, - 69347.71, - 69338.15, - 69331.43, - 69317.64, - 69325.7, - 69300.01, - 69323.86, - 69303.38, - 69292.99, - 69306.0, - 69335.13, - 69307.41, - 69316.63, - 69310.46, - 69291.31, - 69298.51, - 69300.0, - 69307.09, - 69276.25, - 69276.23, - 69249.99, - 69288.0, - 69320.01, - 69286.86, - 69280.61, - 69268.7, - 69272.0, - 69260.75, - 69256.47, - 69270.0, - 69250.0, - 69289.99, - 69326.09, - 69328.13, - 69316.71, - 69300.84, - 69296.1, - 69285.0, - 69298.0, - 69280.0, - 69261.0, - 69250.0, - 69240.92, - 69221.57, - 69200.0, - 69169.99, - 69189.4, - 69233.28, - 69176.0, - 69174.93, - 69198.92, - 69201.05, - 69196.01, - 69207.13, - 69171.37, - 69199.99, - 69197.99, - 69238.65, - 69243.97, - 69275.02, - 69275.02, - 69259.38, - 69252.86, - 69252.86, - 69259.38, - 69294.0, - 69290.01, - 69300.0, - 69274.87, - 69289.99, - 69290.0, - 69283.56, - 69277.98, - 69304.44, - 69274.87, - 69234.74, - 69241.16, - 69241.16, - 69306.1, - 69293.48, - 69300.46, - 69300.46, - 69342.76, - 69330.0, - 69315.38, - 69293.47, - 69293.85, - 69309.99, - 69347.99, - 69362.68, - 69360.95, - 69365.4, - 69336.0, - 69335.49, - 69342.75, - 69341.28, - 69389.99, - 69391.01, - 69414.35, - 69410.0, - 69361.21, - 69379.25, - 69386.78, - 69370.6, - 69383.74, - 69387.67, - 69346.99, - 69302.59, - 69280.03, - 69295.64, - 69283.46, - 69315.59, - 69343.44, - 69324.0, - 69317.87, - 69311.39, - 69319.82, - 69325.22, - 69330.0, - 69337.1, - 69355.9, - 69352.15, - 69344.01, - 69348.36, - 69350.99, - 69352.39, - 69359.77, - 69359.77, - 69359.77, - 69341.95, - 69359.75, - 69397.18, - 69364.99, - 69369.98, - 69339.17, - 69347.04, - 69353.62, - 69353.62, - 69347.04, - 69347.19, - 69343.0, - 69343.0, - 69343.0, - 69343.0, - 69355.99, - 69346.49, - 69363.98, - 69334.37, - 69333.0, - 69343.24, - 69340.0, - 69353.88, - 69342.49, - 69368.96, - 69389.0, - 69368.01, - 69365.01, - 69367.69, - 69375.99, - 69364.74, - 69364.75, - 69380.0, - 69380.0, - 69363.25, - 69479.04, - 69472.2, - 69527.45, - 69663.64, - 69733.51, - 69712.95, - 69660.23, - 69669.39, - 69645.94, - 69539.47, - 69497.83, - 69487.15, - 69331.46, - 69345.25, - 69393.03, - 69450.01, - 69462.93, - 69467.03, - 69480.0, - 69504.46, - 69474.32, - 69512.17, - 69499.99, - 69329.19, - 69383.96, - 69424.66, - 69459.99, - 69476.09, - 69469.99, - 69490.12, - 69480.0, - 69505.84, - 69540.0, - 69556.01, - 69478.0, - 69464.39, - 69491.61, - 69520.74, - 69516.01, - 69541.37, - 69528.01, - 69508.64, - 69511.99, - 69547.88, - 69570.86, - 69579.59, - 69592.03, - 69573.67, - 69612.92, - 69573.99, - 69580.0, - 69573.01, - 69573.01, - 69622.88, - 69604.17, - 69650.63, - 69685.26, - 69627.6, - 69601.98, - 69584.01, - 69580.01, - 69591.68, - 69609.19, - 69652.13, - 69656.54, - 69660.51, - 69619.35, - 69703.44, - 69770.69, - 69751.05, - 69772.46, - 69786.71, - 69770.03, - 69710.01, - 69700.02, - 69685.84, - 69734.73, - 69738.1, - 69741.89, - 69804.0, - 69806.8, - 69795.97, - 69816.0, - 69850.0, - 69786.03, - 69766.99, - 69693.33, - 69699.59, - 69712.0, - 69710.26, - 69652.0, - 69661.42, - 69661.4, - 69679.98, - 69661.25, - 69666.73, - 69633.49, - 69623.12, - 69620.84, - 69654.4, - 69699.99, - 69686.85, - 69734.69, - 69704.01, - 69706.85, - 69704.17, - 69712.29, - 69717.0, - 69670.01, - 69610.01, - 69688.01, - 69776.37, - 69767.9, - 69749.96, - 69706.57, - 69720.0, - 69700.35, - 69714.85, - 69677.67, - 69633.6, - 69659.99, - 69645.36, - 69658.11, - 69649.22, - 69627.66, - 69634.35, - 69610.58, - 69635.96, - 69608.37, - 69613.73, - 69663.62, - 69652.42, - 69660.01, - 69647.3, - 69647.3, - 69657.32, - 69657.32, - 69648.14, - 69606.28, - ] diff --git a/pdr_backend/ppss/base_ss.py b/pdr_backend/ppss/base_ss.py index f56daaca7..26eecb7a2 100644 --- a/pdr_backend/ppss/base_ss.py +++ b/pdr_backend/ppss/base_ss.py @@ -6,7 +6,6 @@ from pdr_backend.cli.arg_feed import ArgFeed from pdr_backend.cli.arg_feeds import ArgFeeds from pdr_backend.cli.arg_pair import ArgPair -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed class MultiFeedMixin: @@ -74,25 +73,6 @@ def exchange_pair_tups(self) -> Set[Tuple[str, str]]: """Return set of unique (exchange_str, pair_str) tuples""" return set((str(feed.exchange), str(feed.pair)) for feed in self.feeds) - @enforce_types - def filter_feeds_from_candidates( - self, cand_feeds: Dict[str, SubgraphFeed] - ) -> Dict[str, SubgraphFeed]: - result: Dict[str, SubgraphFeed] = {} - - allowed_tups = [ - (str(feed.exchange), str(feed.pair), str(feed.timeframe)) - for feed in self.feeds - ] - - for sg_key, sg_feed in cand_feeds.items(): - assert isinstance(sg_feed, SubgraphFeed) - - if (sg_feed.source, sg_feed.pair, sg_feed.timeframe) in allowed_tups: - result[sg_key] = sg_feed - - return result - class SingleFeedMixin: FEED_KEY = "" @@ -165,21 +145,3 @@ def timeframe_s(self) -> int: def timeframe_m(self) -> float: """Returns timeframe, in minutes""" return self.feed.timeframe.m if self.feed.timeframe else 0 - - @enforce_types - def get_feed_from_candidates( - self, cand_feeds: Dict[str, SubgraphFeed] - ) -> Union[None, SubgraphFeed]: - allowed_tup = ( - self.timeframe_str, - str(self.feed.exchange), - self.feed.pair, - ) - - for feed in cand_feeds.values(): - assert isinstance(feed, SubgraphFeed) - feed_tup = (feed.timeframe, feed.source, feed.pair) - if feed_tup == allowed_tup: - return feed - - return None diff --git a/pdr_backend/ppss/ppss.py b/pdr_backend/ppss/ppss.py index 615af8898..9aa448c0f 100644 --- a/pdr_backend/ppss/ppss.py +++ b/pdr_backend/ppss/ppss.py @@ -11,7 +11,6 @@ from pdr_backend.ppss.predictoor_ss import PredictoorSS, predictoor_ss_test_dict from pdr_backend.ppss.sim_ss import SimSS from pdr_backend.ppss.trader_ss import TraderSS -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed, mock_feed from pdr_backend.util.dictutil import recursive_update @@ -148,26 +147,6 @@ def __str__(self): # utilities for testing -@enforce_types -def mock_feed_ppss( - timeframe, - exchange, - pair, - tmpdir=None, -) -> Tuple[SubgraphFeed, PPSS]: - feed = mock_feed(timeframe, exchange, pair) - ppss = mock_ppss( - [ - { - "train_on": f"{exchange} {pair} c {timeframe}", - "predict": f"{exchange} {pair} c {timeframe}", - } - ], - tmpdir, - ) - return (feed, ppss) - - @enforce_types def mock_ppss( feedset_list: list, diff --git a/pdr_backend/ppss/predictoor_ss.py b/pdr_backend/ppss/predictoor_ss.py index 4a1d3da2a..a30e58bdd 100644 --- a/pdr_backend/ppss/predictoor_ss.py +++ b/pdr_backend/ppss/predictoor_ss.py @@ -14,7 +14,6 @@ AimodelSS, aimodel_ss_test_dict, ) -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed from pdr_backend.util.strutil import StrMixin @@ -50,40 +49,6 @@ def get_predict_train_feedset( timeframe_str, ) - @enforce_types - def get_feed_from_candidates( - self, - cand_feeds: Dict[str, SubgraphFeed], - ) -> Dict[str, SubgraphFeed]: - """ - @description - Filter down the input cand_feeds to the ones we're supposed to predict - - More precisely: return a set of feeds as the intersection of - (1) candidate feeds read from chain, ie the input SubgraphFeeds, - and (2) self's feeds to predict, ie input by PPSS - - @arguments - cand_feeds -- dict of [feed_addr] : SubgraphFeed - - @return - filtered_feeds -- dict of [feed_addr] : SubgraphFeed - """ - filtered_feeds: Dict[str, SubgraphFeed] = {} - - allowed_tups = [ - (str(feed.exchange), str(feed.pair), str(feed.timeframe)) - for feed in self.predict_train_feedsets.feeds - ] - - for feed_addr, feed in cand_feeds.items(): - assert isinstance(feed, SubgraphFeed) - - if (feed.source, feed.pair, feed.timeframe) in allowed_tups: - filtered_feeds[feed_addr] = feed - - return filtered_feeds - # ========================================================================= # utilities for testing diff --git a/pdr_backend/ppss/test/test_base_ss.py b/pdr_backend/ppss/test/test_base_ss.py index c4f258ab2..89abbbf87 100644 --- a/pdr_backend/ppss/test/test_base_ss.py +++ b/pdr_backend/ppss/test/test_base_ss.py @@ -4,7 +4,6 @@ from pdr_backend.cli.arg_feed import ArgFeed from pdr_backend.cli.arg_feeds import ArgFeeds from pdr_backend.ppss.base_ss import MultiFeedMixin, SingleFeedMixin -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed class MultiFeedMixinTest(MultiFeedMixin): @@ -72,102 +71,6 @@ def test_nested_multi_feed(): ss = NestedMultiFeedMixinTest(wrong_d) -@enforce_types -def test_multi_feed_filter(): - d = { - "feeds": ["kraken ETH/USDT 5m", "binanceus ETH/USDT,TRX/DAI 1h"], - } - ss = MultiFeedMixinTest(d) - - cand_feeds = { - "0x12345": SubgraphFeed( - "", - "0x12345", - "test", - 60, - 15, - "0xowner", - "BTC/ETH", - "1h", - "binance", - ) - } - - assert ss.filter_feeds_from_candidates(cand_feeds) == {} - - cand_feeds = { - "0x12345": SubgraphFeed( - "", - "0x12345", - "test", - 60, - 15, - "0xowner", - "ETH/USDT", - "5m", - "kraken", - ) - } - - assert ss.filter_feeds_from_candidates(cand_feeds) == cand_feeds - - cand_feeds = { - "0x12345": SubgraphFeed( - "", - "0x12345", - "test", - 60, - 15, - "0xowner", - "ETH/USDT", - "5m", - "kraken", - ), - "0x67890": SubgraphFeed( - "", - "0x67890", - "test", - 60, - 15, - "0xowner", - "ETH/USDT", - "1h", - "binanceus", - ), - } - - assert ss.filter_feeds_from_candidates(cand_feeds) == cand_feeds - - cand_feeds = { - "0x12345": SubgraphFeed( - "", - "0x12345", - "test", - 60, - 15, - "0xowner", - "ETH/USDT", - "5m", - "kraken", - ), - "0x67890": SubgraphFeed( - "", - "0x67890", - "test", - 60, - 15, - "0xowner", - "ETH/DAI", - "1h", - "binanceus", - ), - } - - assert ss.filter_feeds_from_candidates(cand_feeds) == { - "0x12345": cand_feeds["0x12345"] - } - - @enforce_types def test_single_feed(): d = {"feed": "kraken ETH/USDT h"} @@ -190,95 +93,3 @@ def test_single_feed(): assert ss.timeframe_ms == 3600000 assert ss.timeframe_s == 3600 assert ss.timeframe_m == 60 - - -@enforce_types -def test_single_feed_filter(): - d = {"feed": "kraken ETH/USDT 5m"} - ss = SingleFeedMixinTest(d) - - cand_feeds = { - "0x12345": SubgraphFeed( - "", - "0x12345", - "test", - 60, - 15, - "0xowner", - "BTC/ETH", - "1h", - "binance", - ) - } - - assert ss.get_feed_from_candidates(cand_feeds) is None - - cand_feeds = { - "0x12345": SubgraphFeed( - "", - "0x12345", - "test", - 60, - 15, - "0xowner", - "ETH/USDT", - "5m", - "kraken", - ) - } - - assert ss.get_feed_from_candidates(cand_feeds) == cand_feeds["0x12345"] - - cand_feeds = { - "0x12345": SubgraphFeed( - "", - "0x12345", - "test", - 60, - 15, - "0xowner", - "ETH/USDT", - "5m", - "kraken", - ), - "0x67890": SubgraphFeed( - "", - "0x67890", - "test", - 60, - 15, - "0xowner", - "ETH/USDT", - "1h", - "binanceus", - ), - } - - assert ss.get_feed_from_candidates(cand_feeds) == cand_feeds["0x12345"] - - cand_feeds = { - "0x12345": SubgraphFeed( - "", - "0x12345", - "test", - 60, - 15, - "0xowner", - "ETH/USDT", - "5m", - "kraken", - ), - "0x67890": SubgraphFeed( - "", - "0x67890", - "test", - 60, - 15, - "0xowner", - "ETH/DAI", - "1h", - "binanceus", - ), - } - - assert ss.get_feed_from_candidates(cand_feeds) == cand_feeds["0x12345"] diff --git a/pdr_backend/ppss/test/test_ppss.py b/pdr_backend/ppss/test/test_ppss.py index 472d3a25f..0c1b340a2 100644 --- a/pdr_backend/ppss/test/test_ppss.py +++ b/pdr_backend/ppss/test/test_ppss.py @@ -8,7 +8,6 @@ from pdr_backend.cli.predict_train_feedsets import PredictTrainFeedsets from pdr_backend.ppss.ppss import ( fast_test_yaml_str, - mock_feed_ppss, mock_ppss, PPSS, ) @@ -53,19 +52,6 @@ def _test_ppss(yaml_filename=None, yaml_str=None): assert "exchange_mgr_ss" in s -@enforce_types -def test_mock_feed_ppss(): - feed, ppss = mock_feed_ppss("5m", "binance", "BTC/USDT") - - assert feed.timeframe == "5m" - assert feed.source == "binance" - assert feed.pair == "BTC/USDT" - - predict_feed0 = ppss.predictoor_ss.predict_train_feedsets[0].predict - assert str(predict_feed0) == "binance BTC/USDT c 5m" - assert ppss.lake_ss.feeds_strs == ["binance BTC/USDT c 5m"] - - @enforce_types def test_mock_ppss_simple(): _ = mock_ppss(feedset_test_list()) diff --git a/pdr_backend/sim/sim_engine.py b/pdr_backend/sim/sim_engine.py index 2ab5f2884..d846e6c2e 100644 --- a/pdr_backend/sim/sim_engine.py +++ b/pdr_backend/sim/sim_engine.py @@ -91,7 +91,7 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): train_feeds = self.predict_train_feedset.train_on # X, ycont, and x_df are all expressed in % change wrt prev candle - X, ytran, yraw, _, _ = data_f.create_xy( + X, y, _, _ = data_f.create_xy( mergedohlcv_df, testshift, predict_feed, @@ -100,14 +100,14 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): st_, fin = 0, X.shape[0] - 1 X_train, X_test = X[st_:fin, :], X[fin : fin + 1, :] - ytran_train, _ = ytran[st_:fin], ytran[fin : fin + 1] + y_train, _ = y[st_:fin], y[fin : fin + 1] cur_high, cur_low = data_f.get_highlow(mergedohlcv_df, predict_feed, testshift) - cur_close = yraw[-2] + cur_close = y[-2] y_thr = cur_close - ytrue = ycont_to_ytrue(ytran, y_thr) + ytrue = ycont_to_ytrue(y, y_thr) ytrue_train, _ = ytrue[st_:fin], ytrue[fin : fin + 1] @@ -116,7 +116,7 @@ def run_one_iter(self, test_i: int, mergedohlcv_df: pl.DataFrame): or st.iter_number % pdr_ss.aimodel_ss.train_every_n_epochs == 0 ): model_f = AimodelFactory(pdr_ss.aimodel_ss) - self.model = model_f.build(X_train, ytrue_train, ytran_train, y_thr) + self.model = model_f.build(X_train, ytrue_train, y_train, y_thr) # current time recent_ut = UnixTimeMs(int(mergedohlcv_df["timestamp"].to_list()[-1])) diff --git a/pdr_backend/subgraph/subgraph_feed.py b/pdr_backend/subgraph/subgraph_feed.py deleted file mode 100644 index a0c595783..000000000 --- a/pdr_backend/subgraph/subgraph_feed.py +++ /dev/null @@ -1,100 +0,0 @@ -import logging -import random -from typing import Dict, Optional - -import ccxt -from enforce_typing import enforce_types - -from pdr_backend.cli.arg_pair import ArgPair -from pdr_backend.cli.arg_timeframe import ArgTimeframe -from pdr_backend.util.strutil import StrMixin - - -logger = logging.getLogger("subgraph_feed") - - -class SubgraphFeed(StrMixin): # pylint: disable=too-many-instance-attributes - # pylint: disable=too-many-positional-arguments - @enforce_types - def __init__( - self, - name: str, # eg 'Feed: binance | BTC/USDT | 5m' - address: str, # eg '0x123' - symbol: str, # eg 'binance-BTC/USDT-5m' - seconds_per_subscription: int, # eg 60 * 60 * 24 - owner: str, # eg '0x456' - pair: str, # eg 'BTC/USDT' - timeframe: str, # eg '5m' - source: str, # eg 'binance' - ): - self.name: str = name - self.address: str = address - self.symbol: str = symbol - self.seconds_per_subscription: int = seconds_per_subscription - self.owner: str = owner - self.pair: str = pair.replace("-", "/") - self.timeframe: str = timeframe - self.source: str = source - - @property - def seconds_per_epoch(self): - return ArgTimeframe(self.timeframe).s - - @property - def base(self): - return ArgPair(self.pair).base_str - - @property - def quote(self): - return ArgPair(self.pair).quote_str - - @enforce_types - def shortstr(self) -> str: - return f"Feed: {self.timeframe} {self.source} {self.pair} {self.address}" - - def ccxt_exchange(self, *args, **kwargs) -> ccxt.Exchange: - exchange_class = getattr(ccxt, self.source) - return exchange_class(*args, **kwargs) - - @enforce_types - def __str__(self) -> str: - return self.shortstr() - - -@enforce_types -def print_feeds(feeds: Dict[str, SubgraphFeed], label: Optional[str] = None): - label = label or "feeds" - logger.info("%s %s:", len(feeds), label) - if not feeds: - logger.warning("") - return - for feed in feeds.values(): - logger.info("%s", feed) - - -# ========================================================================= -# utilities for testing - - -@enforce_types -def _rnd_eth_addr() -> str: - """Generate a random address with Ethereum format.""" - addr = "0x" + "".join([str(random.randint(0, 9)) for i in range(40)]) - return addr - - -@enforce_types -def mock_feed(timeframe_str: str, exchange_str: str, pair_str: str) -> SubgraphFeed: - addr = _rnd_eth_addr() - name = f"Feed {addr} {pair_str}|{exchange_str}|{timeframe_str}" - feed = SubgraphFeed( - name=name, - address=addr, - symbol=f"SYM: {addr}", - seconds_per_subscription=86400, - owner="0xowner", - pair=pair_str, - timeframe=timeframe_str, - source=exchange_str, - ) - return feed diff --git a/pdr_backend/subgraph/test/test_subgraph_feed.py b/pdr_backend/subgraph/test/test_subgraph_feed.py deleted file mode 100644 index f09c64f5d..000000000 --- a/pdr_backend/subgraph/test/test_subgraph_feed.py +++ /dev/null @@ -1,81 +0,0 @@ -from enforce_typing import enforce_types - -from pdr_backend.subgraph.subgraph_feed import SubgraphFeed, mock_feed, print_feeds - - -@enforce_types -def test_feed(): - feed = SubgraphFeed( - "Contract Name", - "0x12345", - "SYM:TEST", - 60, - 15, - "0xowner", - "BTC/USDT", - "5m", - "binance", - ) - - assert feed.name == "Contract Name" - assert feed.address == "0x12345" - assert feed.symbol == "SYM:TEST" - assert feed.seconds_per_subscription == 60 - assert feed.owner == "0xowner" - assert feed.pair == "BTC/USDT" - assert feed.timeframe == "5m" - assert feed.source == "binance" - - assert feed.seconds_per_epoch == 5 * 60 - assert feed.quote == "USDT" - assert feed.base == "BTC" - - assert str(feed) == feed.shortstr() - s = str(feed) - for want_s in ["Feed", "5m", "BTC/USDT", "binance", feed.address]: - assert want_s in s - - -@enforce_types -def test_mock_feed(): - feed = mock_feed("5m", "binance", "BTC/USDT") - assert feed.timeframe == "5m" - assert feed.source == "binance" - assert feed.pair == "BTC/USDT" - assert feed.address[:2] == "0x" - assert len(feed.address) == 42 # ethereum sized address - - -@enforce_types -def test_feed__seconds_per_epoch(): - # 5m - feed = mock_feed("5m", "binance", "BTC/USDT") - assert feed.timeframe == "5m" - assert feed.seconds_per_epoch == 5 * 60 - - # 1h - feed = mock_feed("1h", "binance", "BTC/USDT") - assert feed.timeframe == "1h" - assert feed.seconds_per_epoch == 60 * 60 - - -@enforce_types -def test_feed__convert_pair(): - # start with '/', no convert needed - feed = mock_feed("5m", "binance", "BTC/USDT") - assert feed.pair == "BTC/USDT" - - # start with '-', convert to '/' - feed = mock_feed("5m", "binance", "BTC-USDT") - assert feed.pair == "BTC/USDT" - - -@enforce_types -def test_print_feeds(): - f1 = mock_feed("5m", "binance", "BTC/USDT") - f2 = mock_feed("1h", "kraken", "BTC/USDT") - feeds = {f1.address: f1, f2.address: f2} - - print_feeds(feeds) - print_feeds(feeds, label=None) - print_feeds(feeds, "my feeds") From 44d296f57cce57b0b917c03f94c885d97888ebef Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 17:33:39 +0100 Subject: [PATCH 11/44] all tests and linters pass --- pdr_backend/aimodel/aimodel_data_factory.py | 5 ++--- pdr_backend/cli/arg_feeds.py | 2 +- pdr_backend/ppss/base_ss.py | 2 +- pdr_backend/ppss/ppss.py | 2 +- pdr_backend/ppss/predictoor_ss.py | 2 +- pdr_backend/sim/sim_state.py | 16 ---------------- 6 files changed, 6 insertions(+), 23 deletions(-) diff --git a/pdr_backend/aimodel/aimodel_data_factory.py b/pdr_backend/aimodel/aimodel_data_factory.py index 5638bad54..8e31eca3b 100644 --- a/pdr_backend/aimodel/aimodel_data_factory.py +++ b/pdr_backend/aimodel/aimodel_data_factory.py @@ -58,7 +58,7 @@ def create_xy( predict_feed: ArgFeed, train_feeds: Optional[ArgFeeds] = None, do_fill_nans: bool = True, - ) -> Tuple[np.ndarray, np.ndarray, np.ndarray, pd.DataFrame, np.ndarray]: + ) -> Tuple[np.ndarray, np.ndarray, pd.DataFrame, np.ndarray]: """ @description Create X, y data for a regression setting @@ -134,8 +134,7 @@ def create_xy( x_list += [pd.Series(_slice(z, -shift - N_train - 1, -shift))] xrecent_list += [pd.Series(_slice(z, -shift, -shift + 1))] - ds1, ds11 = delayshift + 1, delayshift + 1 + 1 - x_col = hist_col + f":z(t-{ds1})" + x_col = hist_col + f":z(t-{delayshift+1})" xcol_list += [x_col] # convert x lists to dfs, all at once. Faster than building up df. diff --git a/pdr_backend/cli/arg_feeds.py b/pdr_backend/cli/arg_feeds.py index da54eaeb7..313927012 100644 --- a/pdr_backend/cli/arg_feeds.py +++ b/pdr_backend/cli/arg_feeds.py @@ -1,4 +1,4 @@ -from typing import Dict, List, Optional, Set, Union +from typing import List, Set, Union from enforce_typing import enforce_types diff --git a/pdr_backend/ppss/base_ss.py b/pdr_backend/ppss/base_ss.py index 26eecb7a2..3bdf7db5c 100644 --- a/pdr_backend/ppss/base_ss.py +++ b/pdr_backend/ppss/base_ss.py @@ -1,5 +1,5 @@ import copy -from typing import Dict, List, Optional, Set, Tuple, Union +from typing import List, Optional, Set, Tuple from enforce_typing import enforce_types diff --git a/pdr_backend/ppss/ppss.py b/pdr_backend/ppss/ppss.py index 9aa448c0f..c0ac96337 100644 --- a/pdr_backend/ppss/ppss.py +++ b/pdr_backend/ppss/ppss.py @@ -1,6 +1,6 @@ import os import tempfile -from typing import Optional, Tuple +from typing import Optional import yaml from enforce_typing import enforce_types diff --git a/pdr_backend/ppss/predictoor_ss.py b/pdr_backend/ppss/predictoor_ss.py index a30e58bdd..872c28619 100644 --- a/pdr_backend/ppss/predictoor_ss.py +++ b/pdr_backend/ppss/predictoor_ss.py @@ -1,4 +1,4 @@ -from typing import Dict, List, Optional +from typing import List, Optional from enforce_typing import enforce_types diff --git a/pdr_backend/sim/sim_state.py b/pdr_backend/sim/sim_state.py index a373d625a..172afd73c 100644 --- a/pdr_backend/sim/sim_state.py +++ b/pdr_backend/sim/sim_state.py @@ -18,19 +18,3 @@ def init_loop_attributes(self): # profits self.profits: List[float] = [] # [i] : trader_profit - - @staticmethod - def recent_metrics_names() -> List[str]: - return ["profit"] - - def recent_metrics( - self, extras: Optional[List[str]] = None - ) -> List[Union[int, float]]: - """Return most recent aimodel metrics + profit metrics""" - rm = { - "profit": self.profits[-1], - } - if extras and "prob_up" in extras: - rm["prob_up"] = self.probs_up[-1] - - return rm From 15d87af011b282eb8979388ac024a1446e87bfb5 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 17:39:45 +0100 Subject: [PATCH 12/44] revive coverage --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index a69bdba5a..91bb3b051 100644 --- a/setup.py +++ b/setup.py @@ -8,6 +8,7 @@ "black==24.10.0", "bumpversion", "ccxt==4.4.33", + "coverage", "dateparser==1.2.0", "enforce_typing", "imblearn", From f6c2430e376155109da5ac15d5dac565c48fc370 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 17:42:57 +0100 Subject: [PATCH 13/44] remove dependency --- pdr_backend/sim/test/conftest.py | 35 -------------------------------- 1 file changed, 35 deletions(-) diff --git a/pdr_backend/sim/test/conftest.py b/pdr_backend/sim/test/conftest.py index c782f3cb7..85d210df4 100644 --- a/pdr_backend/sim/test/conftest.py +++ b/pdr_backend/sim/test/conftest.py @@ -1,38 +1,3 @@ import logging import pytest -from selenium import webdriver # type: ignore[import-untyped] -from selenium.webdriver.chrome.options import Options # type: ignore[import-untyped] -from selenium.common.exceptions import WebDriverException # type: ignore[import-untyped] - -logger = logging.getLogger("dependencies") - - -def pytest_setup_options(): - options = Options() - options.add_argument("--headless") - options.add_argument("--disable-gpu") - - return options - - -@pytest.fixture -def check_chromedriver(): - try: - driver = webdriver.Chrome() - driver.quit() - except WebDriverException: - message = """ - It seems that you don't have chromedriver installed on your system. - Please install it by following the instructions at https://sites.google.com/a/chromium.org/chromedriver/. - For ubuntu, you can install it using the following command: sudo apt-get install chromium-chromedriver. - For Mac: - - you can install it using the following command: brew install chromedriver. - - go to chromedriver location and move it to /usr/local/bin/ using this command: sudo mv chromedriver /usr/local/bin/ - - change the file access mode to add execution permision using this command: sudo chmod +x /usr/local/bin/chromedriver - - if a popup appears when running the tests, click on open and test should pass from now on - For Windows, you can download the chromedriver from the link above and add it to your PATH. - If you have chromedriver installed, make sure it is in your PATH. - """ - - logger.error(message) From d6b9c96e3d1ff3439d6f801dd2d7e54c26bc28a7 Mon Sep 17 00:00:00 2001 From: trentmc Date: Mon, 27 Jan 2025 20:54:47 +0100 Subject: [PATCH 14/44] update readmes --- README.md | 4 +- READMEs/sim.md | 123 ++++++++++++++++++++++++ READMEs/trader.md | 234 ---------------------------------------------- ppss.yaml | 2 +- 4 files changed, 125 insertions(+), 238 deletions(-) create mode 100644 READMEs/sim.md delete mode 100644 READMEs/trader.md diff --git a/README.md b/README.md index 714d49671..a773e58eb 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,7 @@ ## Run bots (agents) -- **[Run trader bot](READMEs/trader.md)** - consume predictions, trade, make $ - -(If you're a predictoor or trader, you can safely ignore the rest of this README.) +- **[Run sim/trading](READMEs/sim.md)** - predict, trade, make $. Historical, live mock, or live real. ## Settings: PPSS diff --git a/READMEs/sim.md b/READMEs/sim.md new file mode 100644 index 000000000..f37fb303d --- /dev/null +++ b/READMEs/sim.md @@ -0,0 +1,123 @@ +# Run sim/trading + +Predict, trade, make $. Historical, live mock, or live real. This README shows how. + +Steps: +1. Install pdr-backend repo +2. Sim / mock trade, on historical data +3. Sim / mock trade, on live data +4. Trade on live real data +5. Optimize + + +## Install pdr-backend Repo + +Prerequisites: +- Python 3.12. Earlier _will_ fail, e.g. can't find `UTC`. [Details](https://blog.miguelgrinberg.com/post/it-s-time-for-a-change-datetime-utcnow-is-now-deprecated) +- Ubuntu or MacOS. _Not_ Windows. + + +In a new console: + +```console +# clone the repo and enter into it +git clone https://github.com/oceanprotocol/pdr-backend +cd pdr-backend + +# create & activate virtualenv +python -m venv venv +source venv/bin/activate + +# install modules in the environment +pip install -r requirements.txt + +# add pwd to bash path +export PATH=$PATH:. +``` + +## Sim / mock trade, on historical data + +Simulation allows us to quickly build intuition, and assess the performance of the data / predicting / trading strategy (backtest). + +Copy [`ppss.yaml`](../ppss.yaml) into your own file `my_ppss.yaml` and change parameters as you see fit. + +```console +cp ppss.yaml my_ppss.yaml +``` + +Be sure to set `tradetype` as `histmock`. This will simulate & mock-trade on historical data. + +Let's run the engine! In console: +```console +pdr sim my_ppss.yaml +``` + +What the engine does: +1. Set simulation parameters. +2. Grab historical price data from exchanges and stores in `lake_data/` dir. It re-uses any previously saved data. +3. Run through many 5 min epochs. At each epoch: + - Build a model or get predictions from chain + - Predict + - Trade + - Log to console and `logs/out_